texlive[74557] Master/texmf-dist: footmisc (10mar25)
commits+karl at tug.org
commits+karl at tug.org
Mon Mar 10 21:06:06 CET 2025
Revision: 74557
https://tug.org/svn/texlive?view=revision&revision=74557
Author: karl
Date: 2025-03-10 21:06:05 +0100 (Mon, 10 Mar 2025)
Log Message:
-----------
footmisc (10mar25)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/footmisc/README.md
trunk/Master/texmf-dist/doc/latex/footmisc/changes.txt
trunk/Master/texmf-dist/doc/latex/footmisc/footmisc-code.pdf
trunk/Master/texmf-dist/doc/latex/footmisc/footmisc-doc.pdf
trunk/Master/texmf-dist/source/latex/footmisc/footmisc.dtx
trunk/Master/texmf-dist/source/latex/footmisc/footmisc.ins
trunk/Master/texmf-dist/tex/latex/footmisc/footmisc.sty
Added Paths:
-----------
trunk/Master/texmf-dist/tex/latex/footmisc/footmisc-2022-02-14.sty
Modified: trunk/Master/texmf-dist/doc/latex/footmisc/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/footmisc/README.md 2025-03-10 20:05:54 UTC (rev 74556)
+++ trunk/Master/texmf-dist/doc/latex/footmisc/README.md 2025-03-10 20:06:05 UTC (rev 74557)
@@ -17,7 +17,7 @@
-----
Copyright (C) 1995-2011 Robin Fairbairns<br />
-Copyright (C) 2018-2023 Frank Mittelbach<br />
+Copyright (C) 2018-2025 Frank Mittelbach<br />
<https://latex-project.org/> <br />
Modified: trunk/Master/texmf-dist/doc/latex/footmisc/changes.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/footmisc/changes.txt 2025-03-10 20:05:54 UTC (rev 74556)
+++ trunk/Master/texmf-dist/doc/latex/footmisc/changes.txt 2025-03-10 20:06:05 UTC (rev 74557)
@@ -1,3 +1,8 @@
+2025-03-10 Frank Mittelbach <Frank.Mittelbach at latex-project.org>
+
+ * footmisc.dtx:
+ Make use of the new sockets in LaTeX 2025-06-01
+
2024-12-24 Frank Mittelbach <Frank.Mittelbach at latex-project.org>
* footmisc.dtx (subsection{The requirements of \cs{@footnotetext}}):
Modified: trunk/Master/texmf-dist/doc/latex/footmisc/footmisc-code.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/footmisc/footmisc-doc.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/source/latex/footmisc/footmisc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/footmisc/footmisc.dtx 2025-03-10 20:05:54 UTC (rev 74556)
+++ trunk/Master/texmf-dist/source/latex/footmisc/footmisc.dtx 2025-03-10 20:06:05 UTC (rev 74557)
@@ -1,7 +1,7 @@
% \iffalse meta-comment
%
%% File: footmisc.dtx (C) Copyright 1995-2011 Robin Fairbairns
-%% (C) Copyright 2018-2024 Frank Mittelbach
+%% (C) Copyright 2018-2025 Frank Mittelbach
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -35,10 +35,11 @@
%<+package>\providecommand\DeclareCurrentRelease[2]{}
%<+package>
%<+package>\DeclareRelease{v5}{2011-06-06}{footmisc-2011-06-06.sty}
-%<+package>\DeclareCurrentRelease{}{2022-02-14}
+%<+package>\DeclareRelease{v6}{2022-02-14}{footmisc-2022-02-14.sty}
+%<+package>\DeclareCurrentRelease{}{2025-03-10}
%<package>\ProvidesPackage{footmisc}%
%<*!debugins>
- [2024/12/24 v6.0g
+ [2025/03/10 v7.0a
%</!debugins>
%<package> a miscellany of footnote facilities%
%<*dtx>
@@ -83,6 +84,7 @@
% simply \AtBeginDocument{\AlsoImplementation}
\OnlyDescription
%\AlsoImplementation
+\CodelineIndex
\setcounter{StandardModuleDepth}{1}
\begin{document}
\DocInput{footmisc.dtx}
@@ -113,7 +115,7 @@
%
% \noindent Program: \texttt{footmisc.dtx}\par
% \noindent Copyright 1995--2011 Robin Fairbairns\par
-% \noindent Copyright 2018--2023 Robin Fairbairns, Frank Mittelbach
+% \noindent Copyright 2018--2025 Robin Fairbairns, Frank Mittelbach
%
% This program is offered under the terms
% of the \LaTeX{} Project Public License, version 1.3c of this license or
@@ -403,7 +405,7 @@
% a somewhat strange discrepancy: on most pages the
% footnotes are attached a distance of \cs{skip}\cs{footins} from the
% main text, even if that page is run short (i.e., with
-% \cs{raggedbottom} in force). However, whenever the is some
+% \cs{raggedbottom} in force). However, whenever there is some
% infinite stretch at the end of the page, e.g., from using \cs{newpage} or
% \cs{clearpage} the footnotes are pushed to the bottom (in particular
% on the last page of a document or chapter).
@@ -484,7 +486,7 @@
% \end{tabular}
% \end{center}
% By default, \cs{mpfootnoterule} and \cs{pagefootnoterule} retain the
-% original definition of \cs{footnoterule} (which nay have been
+% original definition of \cs{footnoterule} (which may have been
% modified by a \texttt{norule} option), while \cs{splitfootnoterule}
% becomes a full-width rule.
%
@@ -609,7 +611,7 @@
% \textsf{footmisc} can be used --- this will change over time.
% \end{description}
%
-% \StopEventually{}
+% \MaybeStop{\PrintIndex}
%
% \section{Code: Preliminaries}
%
@@ -624,6 +626,16 @@
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
% \end{macrocode}
%
+% Version 7 makes use of the new sockets in the \LaTeX{} output
+% routine, which are available starting with release 2025-06. So if
+% this file runs with an earlier kernel, we use version 6 instead and
+% the current file ends with the next line.
+% \changes{v7.0a}{2025/03/10}{Make use of the new sockets in \LaTeX{} 2025-06-01}
+% \begin{macrocode}
+\IfFormatAtLeastF{2025-06-01}{\input{footmisc-2022-02-14.sty}\endinput}
+% \end{macrocode}
+% The rest is the code for version 7.
+%
% We need a token register in case we have to patch \cs{@makecol}:
% \begin{macrocode}
\newtoks\FN at temptoken
@@ -1040,405 +1052,61 @@
\ProcessOptions
% \end{macrocode}
%
-% \section{Hacking kernel commands}
+% \section{Interfacing with the output routine}
%
-% Various standard commands (some of them internal ones) need to be
-% hacked to achieve our effects, and we do all of this now, according
-% to flags set in option processing.
+% \changes{v7.0a}{2025/03/10}{Make use of the new sockets in \LaTeX{} 2025-06-01}
%
-% \subsection{The output routine part}
+% The different strategies for footnote placements in relationship to
+% floast are implemented using the socket
+% \texttt{build/column/outputbox}. This is done based on the flags set
+% in option processing.
%
-% We interface with \cs{@makecol} from the kernel. Eventually this
-% should move directly into the kernel.
+% We also have to handle \LaTeX's bottom skip bug and the handling of
+% paragraph footnotes if requested.
%
-% In order for other packages to prepend or append code to
-% \cs{@makecol}, they can use the generic command hooks
-% \texttt{cmd/@makecol/before} and \texttt{cmd/@makecol/after}, so
-% there is nothing we need to do here.
+% \subsection{Handling paragraph footnotes}
%
-%
-%
-% \begin{macro}{\@makecol}
-% \cs{@makecol} is shortened a lot, basically all the hardwired
-% code in the middle has moved into a configuration point.
+% If the \texttt{para} option is given we implement that by providing
+% a plug for the socket \texttt{build/column/footnotes}.
% \begin{macrocode}
-\def \@makecol {%
- \@kernel at before@cclv
- \setbox\@outputbox \box\@cclv
+\ifFN at para
+ \NewSocketPlug{build/column/footnotes}{para}{%
+ \global\setbox\footins\vbox{\FN at makefootnoteparagraph}%
+ }
+ \AssignSocketPlug{build/column/footnotes}{para}
+\fi
% \end{macrocode}
-% The only real addition is the next command which either does
-% nothing or removes an infinite glue from the bottom of the
-% \cs{@outputbox}.
-% \begin{macrocode}
- \@outputbox at removebskip
-% \end{macrocode}
-% Any ``here'' floats in the \cs{@outputbox} are now handled so we
-% recycle their registers and put them back to the \cs{@freelist}.
-% \begin{macrocode}
- \let\@elt\relax
- \xdef\@freelist{\@freelist\@midlist}%
- \global \let \@midlist \@empty
-% \end{macrocode}
-% Here we have the configurable part.
-% \fmi{Interface to configuration points will change in the future}
-% \begin{macrocode}
- \@makecol at appendblocks
-% \end{macrocode}
-% The we deal with any \cs{enlargethispage} or run the normal code
-% to build a column.
-% \begin{macrocode}
- \ifvbox\@kludgeins
- \@makespecialcolbox
- \else
- \@makenormalcolbox
- \fi
- \global \maxdepth \@maxdepth
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\@outputbox at depth}
-% We need to know the depth of \cs{@outputbox} once in a
-% while. Rather than using a temp dimen (as it was done in the
-% past), we give it a proper register.
-% \begin{macrocode}
-\newdimen\@outputbox at depth
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@makenormalcolbox}
-% Taken out of \cs{@makecol} for readability.
-% \begin{macrocode}
-\def \@makenormalcolbox {%
- \setbox\@outputbox \vbox to\@colht {%
- \@texttop
- \@outputbox at depth \dp\@outputbox
- \unvbox \@outputbox
- \vskip -\@outputbox at depth
- \@textbottom
- }%
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\@makespecialcolbox}
-% Make the colbox when \cs{enlargethispage} was used.
-% \begin{macrocode}
-\def \@makespecialcolbox {%
- \@outputbox at append {\vskip-\@outputbox at depth}%
- \@tempdima \@colht
- \ifdim \wd\@kludgeins>\z@
- \advance \@tempdima -\ht\@outputbox
- \advance \@tempdima \pageshrink
- \setbox\@outputbox \vbox to \@colht {%
- \unvbox\@outputbox
- \vskip \@tempdima
- \@textbottom
- }%
- \else
- \advance \@tempdima -\ht\@kludgeins
- \setbox \@outputbox \vbox to \@colht {%
- \vbox to \@tempdima {%
- \unvbox\@outputbox
- \@textbottom}%
- \vss}%
- \fi
- {\setbox \@tempboxa \box \@kludgeins}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\@outputbox at removebskip}
%
-% This is really a bug fix for the kernel, but perhaps one has to
-% make it optional because it is in there since day one). If
-% \cs{raggedbottom} is in force, footnotes get attached to the main
-% galley at a distance of \cs{footskip} on all pages except on
-% those that are ended by \cs{newpage} or \cs{clearpage} where the
-% \cs{vfil} from \cs{newpage} pushes the footnotes to the very bottom.
+% \subsection{Not fixing the \LaTeX{} bottom skip bug}
%
-% This is kind of a weird difference to a page ending with
-% \cs{pagebreak}---in that case the page is also run
-% short, but the footnotes are not pushed to the bottom.
-%
-% This is fixed by \cs{@outputbox at removebskip} but only if the
-% switch \texttt{FN at fixskip} is set to true (which is done whenever
-% \pkg{footmisc} is called with with an option specifying the
-% footnote placement, i.e., not in the default case).
+% If we don't want to fix \LaTeX's bottom skip bug (for compatibility with
+% old documents) we do this by simply making two commands do nothing:
% \begin{macrocode}
-\ifFN at fixskip
- \def\@outputbox at removebskip{%
-% \end{macrocode}
-% We first test if we are in a \cs{raggedbottom} layout. If not we
-% do nothing, but we don't disable the code because
-% \cs{raggedbottom} may get used only for some parts of the
-% document.
-% \begin{macrocode}
- \ifx\@textbottom\relax \else
-% \end{macrocode}
-% We then append some negative glue at the end of \cs{@outputbox}
-% provided it has a glue stretch order of 1 or more (i.e., contains
-% a \texttt{fil} or \texttt{fill} part).
-% \begin{macrocode}
- \@outputbox at append{%
- \@tempskipa\lastskip
- \ifnum \gluestretchorder\@tempskipa>\z@
- \vskip-\@tempskipa
-% \end{macrocode}
-% \begin{macro}{\@outputbox at reinsertbskip}
-% We also record the value so that it can be reinserted
-% elsewhere. As we have to do this globally, we also need to
-% explicitly reset it if we don't find any such glue.
-% \begin{macrocode}
- \xdef\@outputbox at reinsertbskip
- {\noexpand\@outputbox at append{\vskip\the\@tempskipa}}%
- \else
- \global\let\@outputbox at reinsertbskip\relax
- \fi
- }%
- \fi
- }
-% \end{macrocode}
-% We need a trivial top-level definition for
-% \cs{@outputbox at reinsertbskip} in case the first page has no
-% bottom glue and the command gets called.
-% \begin{macrocode}
-\let\@outputbox at reinsertbskip\relax
-% \end{macrocode}
-% If nothing should get fixed we set both commands to \cs{relax}.
-% \begin{macrocode}
-\else
- \let\@outputbox at removebskip \relax
+\ifFN at fixskip \else
+ \let\@outputbox at removebskip \relax
\let\@outputbox at reinsertbskip\relax
\fi
% \end{macrocode}
-% \end{macro}
-% \end{macro}
%
%
-% \begin{macro}{\@kernel at before@cclv}
-% \begin{macro}{\@kernel at before@footins}
-% These two commands are internal kernel hooks intended for tagging
-% support in case that is active. By default they do nothing (and
-% may have been defined already by \cs{DocumentMetadata}).
-% \begin{macrocode}
-\providecommand\@kernel at before@cclv{}
-\providecommand\@kernel at before@footins{}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
%
+% \subsection{The configuration of the \texttt{build/column/outputbox}
+% socket based on options}
%
%
-%
-% \subsection{The output routine configuration components}
-%
-% Here we provide the components that are used to define
-% \cs{@makecol at appendblocks}.
-%
-%
-% \begin{macro}{\@outputbox at append}
-%
-% This general purpose command alters the \cs{@outputbox} box by
-% appending material to it. As this is a box typesetting operation
-% we make sure that the last line of the box reflects the true
-% depth of the last line (in case that is needed later). We also
-% expose the current depth of \cs{@outputbox} as
-% \cs{@outputbox at depth} before unboxing so that its value can be
-% used by \verb=#1= if wanted.
-% \begin{macrocode}
-\def\@outputbox at append #1{%
- \setbox\@outputbox \vbox {%
- \boxmaxdepth \@maxdepth
- \@outputbox at depth\dp\@outputbox % if needed in #1
- \unvbox \@outputbox
- #1%
- }%
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-%
-% \begin{macro}{\@outputbox at appendfootnotes}
-%
-% This command appends the footnotes to the \cs{@outputbox} (if
-% there are any). If not then it does nothing.
-% \begin{macrocode}
-\def\@outputbox at appendfootnotes {%
- \ifvoid\footins \else
-% \end{macrocode}
-% First come two configuration points: what to do if we are in a split
-% footnote situation and a second one that does some manipulation
-% of the \cs{footins} box before it gets appended.
-% \fmi{this code will get revised as part of CP handling in the future}
-% \begin{macrocode}
- \@makecol at handlesplitfootnotes
- \@makecol at preparefootinshook
-% \end{macrocode}
-% Then the footnotes are appended:
-% \begin{macrocode}
- \@outputbox at append{%
- \vskip \skip\footins
- \@kernel at before@footins
- \color at begingroup
- \normalcolor
- \footnoterule
-% \end{macrocode}
-% Support for \pkg{pdfcolfoot}, eventually this can go once color
-% is properly supported.
-% \begin{macrocode}
- \csname pdfcolfoot at current\endcsname
- \unvbox \footins
- \color at endgroup
- }%
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-%
-% \begin{macro}{\@outputbox at attachfloats}
-% \begin{macro}{\@outputbox at attachtopfloats}
-% \begin{macro}{\@outputbox at attachbottomfloats}
-% Attaching top and bottom floats can usually be done in one go,
-% but for special layouts we might want more control so we provide
-% also separate commands.
-% There are packages out there that patch \cs{@combinefloats} so we
-% are careful to call it rather than give it a new name.
-% \changes{v6.0e}{2023/05/26}{Fix an incompatibility with marginfix package (gh/10)}
-% \begin{macrocode}
-\def \@outputbox at attachfloats {\@combinefloats}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\def \@outputbox at attachtopfloats {%
- \ifx \@toplist\@empty \else \@cflt \fi
-}
-\def \@outputbox at attachbottomfloats {%
- \ifx \@botlist\@empty \else \@cflb \fi
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-%
-%
-%
-% \begin{macro}{\@makecol at handlesplitfootnotes}
-% \begin{macro}{\@makecol at splitfootnotemessagehook}
-% This is only an early draft and doesn't do much.
-% Contains incomplete preparation for tagging commented out.
-% \fmi{Interfaces and code will change in the future}
-% \begin{macrocode}
-\def\@makecol at handlesplitfootnotes {%
-% \ifx\splitfootnote at continuation\@empty \else
-% \setbox\footins\vbox{\splitfootnote at continuation\unvbox\footins}%
-% \global\let\splitfootnote at continuation\@empty
-% \fi
- \ifnum\insertpenalties>\z@
- \@makecol at splitfootnotemessagehook
-% \setbox\footins\vbox{\unvbox\footins --- END at split}%
-% \gdef\splitfootnote at continuation {--- START after split}%
- \fi
-}
-%\def\splitfootnote at continuation{}
-% \end{macrocode}
-% This could issue warning if split footnotes are encountered.
-% \begin{macrocode}
-\let \@makecol at splitfootnotemessagehook \@empty
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-%
-%
-% \begin{macro}{\@makecol at preparefootinshook}
-%
-% Configuration point to support manipulation of footins box
-% (result needs to be moved back in there). Used by the
-% \texttt{para} option.
-% \fmi{Interface will change in the future}
-% \begin{macrocode}
-\let \@makecol at preparefootinshook \@empty
-% \end{macrocode}
-%
-% Footnote box layout for para footnotes;
-% this would also be the hook to support dblfootnotes (from the
-% \texttt{dblfnote} package if we integrate that).
-% \begin{macrocode}
-\ifFN at para
- \def\@makecol at preparefootinshook {%
- \global\setbox\footins\vbox{\FN at makefootnoteparagraph}%
- }
-\fi
-% \end{macrocode}
-% \end{macro}
-%
-% \fmi{Some temp interfaces until configuration points are available.}
-%
-% \begin{macro}{\@if at flushbottom@TF}
-% Test for \cs{flushbottom} (currently not used).
-% \begin{macrocode}
-\def\@if at flushbottom@TF{%
- \ifx\@textbottom\relax
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\@if at footnotes@TF}
-% Test if footnotes are present on the current page.
-% \begin{macrocode}
-\def\@if at footnotes@TF{%
- \ifvoid\footins
- \expandafter\@secondoftwo
- \else
- \expandafter\@firstoftwo
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\@if at bfloats@TF}
-% Test if bottom floats are around.
-% \begin{macrocode}
-\def\@if at bfloats@TF{%
- \ifx \@botlist\@empty
- \expandafter\@secondoftwo
- \else
- \expandafter\@firstoftwo
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-%
-%
-% \subsection{The \cs{@makecol} configuration based on options}
-%
-%
% Placement of footnotes in relation to main galley and floats is
% covered by the value of \cs{FN at bottomcases} (type of bottom option)
-% and the status of the switch \texttt{@abovefloats}.
+% and the status of the switch \texttt{@abovefloats}. Depending on
+% their settings we assign different plugs (already defined in
+% \LaTeX{}) to the socket \texttt{build/column/outputbox}.
%
+% \changes{v7.0a}{2025/03/10}{Make use of the new sockets in \LaTeX{} 2025-06-01}
% \begin{macrocode}
\ifcase \FN at bottomcases\relax
%---------------------------------------------------------
% 0 = undefined
%---------------------------------------------------------
-\ERROR
+ \ERROR
\or
%---------------------------------------------------------
% 1 = bottom option given
@@ -1450,16 +1118,9 @@
\ifFN at abovefloats
%---------------------------------------------------------
% \end{macrocode}
-% If footnotes above floats floats both are at the bottom:
+% If footnotes above floats then both are at the bottom:
% \begin{macrocode}
- \def\@makecol at appendblocks {%
- \@if at footnotes@TF
- {\@outputbox at append{\vfill}}%
- {\@if at bfloats@TF{\@outputbox at append{\vfill}}%
- {\@outputbox at reinsertbskip}}%
- \@outputbox at appendfootnotes
- \@outputbox at attachfloats
- }
+ \AssignSocketPlug {build/column/outputbox}{space-footnotes-floats}
%---------------------------------------------------------
\else
% \end{macrocode}
@@ -1466,13 +1127,7 @@
% Otherwise only the footnotes are at the very bottom and floats
% stay close to the text:
% \begin{macrocode}
- \def\@makecol at appendblocks {%
- \@outputbox at attachfloats
- \@if at footnotes@TF
- {\@outputbox at append{\vfill}}%
- {\@outputbox at reinsertbskip}%
- \@outputbox at appendfootnotes
- }
+ \AssignSocketPlug {build/column/outputbox}{floats-space-footnotes}
\fi
\or
%---------------------------------------------------------
@@ -1483,13 +1138,7 @@
% \end{macrocode}
% Footnotes first then space then floats at bottom:
% \begin{macrocode}
- \def\@makecol at appendblocks {%
- \@outputbox at appendfootnotes
- \@if at bfloats@TF
- {\@outputbox at append{\vfill}}%
- {\@outputbox at reinsertbskip}%
- \@outputbox at attachfloats
- }
+ \AssignSocketPlug {build/column/outputbox}{footnotes-space-floats}
%---------------------------------------------------------
\else
% \end{macrocode}
@@ -1496,14 +1145,7 @@
% If \texttt{belowfloats} was given too, then the excess space ends
% up directly below the text
% \begin{macrocode}
- \def\@makecol at appendblocks {%
- \@if at footnotes@TF
- {\@outputbox at append{\vfill}}%
- {\@if at bfloats@TF{\@outputbox at append{\vfill}}%
- {\@outputbox at reinsertbskip}}%
- \@outputbox at attachfloats
- \@outputbox at appendfootnotes
- }
+ \AssignSocketPlug {build/column/outputbox}{space-floats-footnotes}
%---------------------------------------------------------
\fi
\or
@@ -1521,29 +1163,13 @@
% \begin{macrocode}
\ifFN at abovefloats
%---------------------------------------------------------
- \def\@makecol at appendblocks {%
- \@outputbox at appendfootnotes
- \@outputbox at attachfloats
-% \end{macrocode}
-% We do, however, reinsert the bottom skip from \cs{newpage} if it
-% was taken out earlier. This is, strictly speaking, not necessary
-% in most cases, but it is a \cs{vfil} while \cs{raggedbottom} is
-% only generating \verb=\vspace{0pt plus .0001fil}=, so if you have
-% several \cs{vfil} on the page before the \cs{newpage} you would
-% alter the space distribution if one is taken out.
-% \begin{macrocode}
- \@outputbox at reinsertbskip
- }
+ \AssignSocketPlug {build/column/outputbox}{footnotes-floats}
\else
%---------------------------------------------------------
% \end{macrocode}
% Same thing but with blocks swapped.
% \begin{macrocode}
- \def\@makecol at appendblocks {%
- \@outputbox at attachfloats
- \@outputbox at appendfootnotes
- \@outputbox at reinsertbskip
-}
+ \AssignSocketPlug {build/column/outputbox}{floats-footnotes}
%---------------------------------------------------------
\fi
\else
@@ -1555,7 +1181,7 @@
% can't happen'' in the \TeX{} program code. If they execute then code
% is badly broken.
% \begin{macrocode}
-\ERROR
+ \ERROR
\fi
% \end{macrocode}
@@ -1576,22 +1202,26 @@
% so we do this here:
% \begin{macrocode}
\newif\ifFN at setspace
-\@ifpackageloaded{setspace}{%
- \FN at setspacetrue
- \@ifclassloaded{memoir}{%
+\@ifpackageloaded{setspace}%
+ {%
+ \FN at setspacetrue
+ \@ifclassloaded{memoir}%
% \end{macrocode}
-% we're seeing \textsf{memoir}'s emulation of \textsf{setspace}
+% We're seeing \textsf{memoir}'s emulation of \textsf{setspace}
% \begin{macrocode}
- \let\FN at baselinestretch\m at m@singlespace
- }{%
+ {%
+ \let\FN at baselinestretch\m at m@singlespace
+ }%
% \end{macrocode}
-% we're seeing \textsf{setspace} in its own right
+% We're seeing \textsf{setspace} in its own right
% \begin{macrocode}
- \let\FN at baselinestretch\setspace at singlespace
+ {%
+ \let\FN at baselinestretch\setspace at singlespace
+ }%
}%
-}{%
- \FN at setspacefalse
-}
+ {%
+ \FN at setspacefalse
+ }
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -2483,7 +2113,21 @@
}
% \end{macrocode}
%
+%
+% This is only needed until the first aid is in \LaTeX{} or the
+% package is fixed.
% \begin{macrocode}
+\AddToHook{file/marginfix.sty/after}[footmisc]{%
+ \FirstAidNeededT{marginfix}{sty}%
+ {2020/05/06 v1.2 Fix Margin Paragraphs}%
+ {\let \@outputbox at attachfloats \@combinefloats}%
+}
+\DeclareHookRule{file/marginfix.sty/after}{firstaid}{voids}{footmisc}
+% \end{macrocode}
+%
+%
+%
+% \begin{macrocode}
\endinput
%</package>
% \end{macrocode}
Modified: trunk/Master/texmf-dist/source/latex/footmisc/footmisc.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/footmisc/footmisc.ins 2025-03-10 20:05:54 UTC (rev 74556)
+++ trunk/Master/texmf-dist/source/latex/footmisc/footmisc.ins 2025-03-10 20:06:05 UTC (rev 74557)
@@ -4,7 +4,7 @@
%% LaTeX or TeX.
%%
%% Copyright (c) 1995-2011 Robin Fairbairns
-%% Copyright (c) 2018-2023 Robin Fairbairns, Frank Mittelbach
+%% Copyright (c) 2018-2025 Robin Fairbairns, Frank Mittelbach
%%
%%
%% This file is part of the footmisc Bundle for LaTeX.
@@ -37,7 +37,7 @@
This is a generated file.
Copyright (c) 1995-2011 Robin Fairbairns
-Copyright (c) 2018-2023 Robin Fairbairns, Frank Mittelbach
+Copyright (c) 2018-2025 Robin Fairbairns, Frank Mittelbach
This file was generated from file(s) of the LaTeX `footmisc Bundle'.
--------------------------------------------------------------------
Added: trunk/Master/texmf-dist/tex/latex/footmisc/footmisc-2022-02-14.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/footmisc/footmisc-2022-02-14.sty (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/footmisc/footmisc-2022-02-14.sty 2025-03-10 20:06:05 UTC (rev 74557)
@@ -0,0 +1,794 @@
+%%
+%% This is file `footmisc.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% footmisc.dtx (with options: `package')
+%%
+%% This is a generated file.
+%%
+%% Copyright (c) 1995-2011 Robin Fairbairns
+%% Copyright (c) 2018-2023 Robin Fairbairns, Frank Mittelbach
+%%
+%% This file was generated from file(s) of the LaTeX `footmisc Bundle'.
+%% --------------------------------------------------------------------
+%%
+%% 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 work has the LPPL maintenance status 'maintained'.
+%%
+%% This file may only be distributed together with a copy of the LaTeX
+%% `footmisc Bundle'. You may however distribute the `footmisc Bundle'
+%% without such generated files.
+%%
+%% The newest sources can be found below
+%%
+%% https://github.com/FrankMittelbach/fmitex-footmisc/
+%%
+%% where one can also log issues in case there are any.
+%%
+%% File: footmisc.dtx (C) Copyright 1995-2011 Robin Fairbairns
+%% (C) Copyright 2018-2024 Frank Mittelbach
+\NeedsTeXFormat{LaTeX2e}
+\providecommand\DeclareRelease[3]{}
+\providecommand\DeclareCurrentRelease[2]{}
+
+\DeclareRelease{v5}{2011-06-06}{footmisc-2011-06-06.sty}
+\DeclareCurrentRelease{}{2022-02-14}
+\ProvidesPackage{footmisc}%
+ [2024/12/24 v6.0g
+ a miscellany of footnote facilities%
+ ]
+
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+\newtoks\FN at temptoken
+\providecommand\protected at writeaux{%
+ \protected at write\@auxout
+}
+\def\l at advance@macro{\@@dvance at macro\edef}
+\def\@@dvance at macro#1#2#3{\expandafter\@tempcnta#2\relax
+ \advance\@tempcnta#3\relax
+ #1#2{\the\@tempcnta}%
+}
+\let\@advance at macro\l at advance@macro
+\newdimen\footnotemargin
+\footnotemargin1.8em\relax
+\DeclareOption{symbol}{\renewcommand\thefootnote{\fnsymbol{footnote}}}
+\newif\ifFN at robust \FN at robustfalse
+\DeclareOption{symbol*}{%
+ \renewcommand\thefootnote{\@fnsymbol\c at footnote}%
+ \FN at robusttrue
+ \AtEndOfPackage{\setfnsymbol{lamport*-robust}}%
+}
+\newif\ifFN at para \FN at parafalse
+\DeclareOption{para}{\ifFN at sidefn
+ \PackageError{footmisc}{Option "\CurrentOption" incompatible with
+ option "side"}%
+ {I shall ignore "\CurrentOption"}%
+ \else
+ \FN at paratrue
+ \fi
+}
+\newif\ifFN at sidefn \FN at sidefnfalse
+\DeclareOption{side}{\ifFN at para
+ \PackageError{footmisc}{Option "\CurrentOption" incompatible with
+ option "para"}%
+ {I shall ignore "\CurrentOption"}%
+ \else
+ \FN at sidefntrue
+ \fi
+}
+\let\footnotelayout\@empty
+\DeclareOption{ragged}{%
+ \@ifundefined{RaggedRight}%
+ {\renewcommand\footnotelayout{\linepenalty50 \raggedright}}%
+ {\renewcommand\footnotelayout{\linepenalty50 \RaggedRight}}%
+}
+\newif\ifFN at perpage
+\FN at perpagefalse
+\DeclareOption{perpage}{%
+ \FN at perpagetrue
+}
+\newif\ifFN at fixskip \FN at fixskipfalse
+
+\let\FN at bottomcases\thr@@
+\newif\ifFN at abovefloats \FN at abovefloatstrue
+\DeclareOption{bottom}{%
+ \let\FN at bottomcases\@ne
+ \FN at abovefloatsfalse
+ \FN at fixskiptrue
+}
+\DeclareOption{bottomfloats}{%
+ \let\FN at bottomcases\tw@
+ \FN at abovefloatstrue \FN at fixskiptrue
+}
+\DeclareOption{abovefloats}{\FN at abovefloatstrue \FN at fixskiptrue}
+\DeclareOption{belowfloats}{\FN at abovefloatsfalse \FN at fixskiptrue}
+\DeclareOption{marginal}{%
+ \footnotemargin-0.8em\relax
+}
+\DeclareOption{flushmargin}{%
+ \footnotemargin0pt\relax
+}
+\newif\ifFN at hangfoot \FN at hangfootfalse
+\DeclareOption{hang}{%
+ \FN at hangfoottrue
+}
+\newcommand*\hangfootparskip{0.5\baselineskip}
+\newcommand*\hangfootparindent{0em}%
+\DeclareOption{norule}{%
+ \renewcommand\footnoterule{}%
+ \advance\skip\footins 4\p@\@plus2\p@\relax
+}
+\DeclareOption{splitrule}{%
+ \gdef\split at prev{0}
+ \let\pagefootnoterule\footnoterule
+ \let\mpfootnoterule\footnoterule
+ \def\splitfootnoterule{\kern-3\p@ \hrule \kern2.6\p@}
+ \def\footnoterule{\relax
+ \ifx \@listdepth\@mplistdepth
+ \mpfootnoterule
+ \else
+ \ifnum\split at prev=\z@
+ \pagefootnoterule
+ \else
+ \splitfootnoterule
+ \fi
+ \xdef\split at prev{\the\insertpenalties}%
+ \fi
+ }%
+}
+\newif\ifFN at stablefootnote \FN at stablefootnotefalse
+\DeclareOption{stable}{\FN at stablefootnotetrue}
+\newif\ifFN at multiplefootnote \FN at multiplefootnotefalse
+\DeclareOption{multiple}{\FN at multiplefootnotetrue}
+\ProcessOptions
+\def \@makecol {%
+ \@kernel at before@cclv
+ \setbox\@outputbox \box\@cclv
+ \@outputbox at removebskip
+ \let\@elt\relax
+ \xdef\@freelist{\@freelist\@midlist}%
+ \global \let \@midlist \@empty
+ \@makecol at appendblocks
+ \ifvbox\@kludgeins
+ \@makespecialcolbox
+ \else
+ \@makenormalcolbox
+ \fi
+ \global \maxdepth \@maxdepth
+}
+\newdimen\@outputbox at depth
+\def \@makenormalcolbox {%
+ \setbox\@outputbox \vbox to\@colht {%
+ \@texttop
+ \@outputbox at depth \dp\@outputbox
+ \unvbox \@outputbox
+ \vskip -\@outputbox at depth
+ \@textbottom
+ }%
+}
+\def \@makespecialcolbox {%
+ \@outputbox at append {\vskip-\@outputbox at depth}%
+ \@tempdima \@colht
+ \ifdim \wd\@kludgeins>\z@
+ \advance \@tempdima -\ht\@outputbox
+ \advance \@tempdima \pageshrink
+ \setbox\@outputbox \vbox to \@colht {%
+ \unvbox\@outputbox
+ \vskip \@tempdima
+ \@textbottom
+ }%
+ \else
+ \advance \@tempdima -\ht\@kludgeins
+ \setbox \@outputbox \vbox to \@colht {%
+ \vbox to \@tempdima {%
+ \unvbox\@outputbox
+ \@textbottom}%
+ \vss}%
+ \fi
+ {\setbox \@tempboxa \box \@kludgeins}%
+}
+\ifFN at fixskip
+ \def\@outputbox at removebskip{%
+ \ifx\@textbottom\relax \else
+ \@outputbox at append{%
+ \@tempskipa\lastskip
+ \ifnum \gluestretchorder\@tempskipa>\z@
+ \vskip-\@tempskipa
+ \xdef\@outputbox at reinsertbskip
+ {\noexpand\@outputbox at append{\vskip\the\@tempskipa}}%
+ \else
+ \global\let\@outputbox at reinsertbskip\relax
+ \fi
+ }%
+ \fi
+ }
+\let\@outputbox at reinsertbskip\relax
+\else
+ \let\@outputbox at removebskip \relax
+ \let\@outputbox at reinsertbskip\relax
+\fi
+\providecommand\@kernel at before@cclv{}
+\providecommand\@kernel at before@footins{}
+\def\@outputbox at append #1{%
+ \setbox\@outputbox \vbox {%
+ \boxmaxdepth \@maxdepth
+ \@outputbox at depth\dp\@outputbox % if needed in #1
+ \unvbox \@outputbox
+ #1%
+ }%
+}
+\def\@outputbox at appendfootnotes {%
+ \ifvoid\footins \else
+ \@makecol at handlesplitfootnotes
+ \@makecol at preparefootinshook
+ \@outputbox at append{%
+ \vskip \skip\footins
+ \@kernel at before@footins
+ \color at begingroup
+ \normalcolor
+ \footnoterule
+ \csname pdfcolfoot at current\endcsname
+ \unvbox \footins
+ \color at endgroup
+ }%
+ \fi
+}
+\def \@outputbox at attachfloats {\@combinefloats}
+\def \@outputbox at attachtopfloats {%
+ \ifx \@toplist\@empty \else \@cflt \fi
+}
+\def \@outputbox at attachbottomfloats {%
+ \ifx \@botlist\@empty \else \@cflb \fi
+}
+\def\@makecol at handlesplitfootnotes {%
+ \ifnum\insertpenalties>\z@
+ \@makecol at splitfootnotemessagehook
+ \fi
+}
+\let \@makecol at splitfootnotemessagehook \@empty
+\let \@makecol at preparefootinshook \@empty
+\ifFN at para
+ \def\@makecol at preparefootinshook {%
+ \global\setbox\footins\vbox{\FN at makefootnoteparagraph}%
+ }
+\fi
+\def\@if at flushbottom@TF{%
+ \ifx\@textbottom\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+\def\@if at footnotes@TF{%
+ \ifvoid\footins
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\@firstoftwo
+ \fi
+}
+\def\@if at bfloats@TF{%
+ \ifx \@botlist\@empty
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\@firstoftwo
+ \fi
+}
+\ifcase \FN at bottomcases\relax
+\ERROR
+\or
+ \ifFN at abovefloats
+ \def\@makecol at appendblocks {%
+ \@if at footnotes@TF
+ {\@outputbox at append{\vfill}}%
+ {\@if at bfloats@TF{\@outputbox at append{\vfill}}%
+ {\@outputbox at reinsertbskip}}%
+ \@outputbox at appendfootnotes
+ \@outputbox at attachfloats
+ }
+ \else
+ \def\@makecol at appendblocks {%
+ \@outputbox at attachfloats
+ \@if at footnotes@TF
+ {\@outputbox at append{\vfill}}%
+ {\@outputbox at reinsertbskip}%
+ \@outputbox at appendfootnotes
+ }
+ \fi
+\or
+ \ifFN at abovefloats
+ \def\@makecol at appendblocks {%
+ \@outputbox at appendfootnotes
+ \@if at bfloats@TF
+ {\@outputbox at append{\vfill}}%
+ {\@outputbox at reinsertbskip}%
+ \@outputbox at attachfloats
+ }
+ \else
+ \def\@makecol at appendblocks {%
+ \@if at footnotes@TF
+ {\@outputbox at append{\vfill}}%
+ {\@if at bfloats@TF{\@outputbox at append{\vfill}}%
+ {\@outputbox at reinsertbskip}}%
+ \@outputbox at attachfloats
+ \@outputbox at appendfootnotes
+ }
+ \fi
+\or
+ \ifFN at abovefloats
+ \def\@makecol at appendblocks {%
+ \@outputbox at appendfootnotes
+ \@outputbox at attachfloats
+ \@outputbox at reinsertbskip
+ }
+ \else
+ \def\@makecol at appendblocks {%
+ \@outputbox at attachfloats
+ \@outputbox at appendfootnotes
+ \@outputbox at reinsertbskip
+}
+ \fi
+\else
+\ERROR
+\fi
+
+\newif\ifFN at setspace
+\@ifpackageloaded{setspace}{%
+ \FN at setspacetrue
+ \@ifclassloaded{memoir}{%
+ \let\FN at baselinestretch\m at m@singlespace
+ }{%
+ \let\FN at baselinestretch\setspace at singlespace
+ }%
+}{%
+ \FN at setspacefalse
+}
+\ifFN at para
+ \long\def\FN at footnotetext#1{%
+ \insert\footins{%
+ \ifFN at setspace
+ \let\baselinestretch\FN at baselinestretch
+ \fi
+ \reset at font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox
+ \floatingpenalty\@MM
+ \hsize\columnwidth
+ \@parboxrestore
+ \def\@currentcounter{footnote}%
+ \protected at edef\@currentlabel{\csname p at footnote\endcsname\@thefnmark}%
+ \color at begingroup
+ \setbox\FN at tempboxa\hbox{%
+ \@makefntext{\ignorespaces#1\strut
+ \penalty-10\relax
+ \hskip\footglue
+ }% end of \@makefntext parameter
+ }% end of \hbox
+ \dp\FN at tempboxa\z@
+ \ht\FN at tempboxa\dimexpr\wd\FN at tempboxa *%
+ \footnotebaselineskip / \columnwidth\relax
+ \box\FN at tempboxa
+ \color at endgroup
+ }%
+ \FN at mf@prepare
+ }
+\else
+ \ifFN at sidefn
+ \long\def\FN at footnotetext#1{%
+ \marginpar{%
+ \ifFN at setspace
+ \let\baselinestretch\FN at baselinestretch
+ \fi
+ \reset at font\footnotesize
+ \def\@currentcounter{footnote}%
+ \protected at edef\@currentlabel{%
+ \csname p at footnote\endcsname\@thefnmark
+ }%
+ \color at begingroup
+ \@makefntext{%
+ \ignorespaces#1%
+ }%
+ \color at endgroup
+ }%
+ \FN at mf@prepare
+ }%
+ \else
+ \long\def\FN at footnotetext#1{%
+ \insert\footins{%
+ \ifFN at setspace
+ \let\baselinestretch\FN at baselinestretch
+ \fi
+ \reset at font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox
+ \floatingpenalty\@MM
+ \hsize\columnwidth
+ \@parboxrestore
+ \def\@currentcounter{footnote}%
+ \protected at edef\@currentlabel{%
+ \csname p at footnote\endcsname\@thefnmark
+ }%
+ \color at begingroup
+ \@makefntext{%
+ \rule\z@\footnotesep
+ \ignorespaces#1\@finalstrut\strutbox
+ }%
+ \color at endgroup
+ }%
+ \FN at mf@prepare
+ }%
+ \fi
+\fi
+\ifFN at para
+ \let\FN at tempboxa\@tempboxa
+ \newbox\FN at tempboxb
+ \newbox\FN at tempboxc
+ \newskip\footglue \footglue=1em plus.3em minus.3em
+ \long\def\@makefntext#1{\leavevmode
+ \@makefnmark\nobreak
+ \hskip.5em\relax#1%
+ }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \newdimen\footnotebaselineskip
+ {%
+ \footnotesize
+ \global
+ \footnotebaselineskip=\normalbaselineskip
+ }
+
+ \long\def\FN at makefootnoteparagraph{\unvbox\footins \FN at makehboxofhboxes
+ \setbox\FN at tempboxa=\hbox{\unhbox\FN at tempboxa \FN at removehboxes}%
+ \FN at setfootnoteparawidth
+ \@parboxrestore
+ \baselineskip=\footnotebaselineskip
+ \noindent
+ \rule{\z@}{\footnotesep}%
+ \unhbox\FN at tempboxa\par
+ }
+ \def\FN at makehboxofhboxes{\setbox\FN at tempboxa=\hbox{}%
+ \loop
+ \setbox\FN at tempboxb=\lastbox
+ \ifhbox\FN at tempboxb
+ \setbox\FN at tempboxa=\hbox{\box\FN at tempboxb\unhbox\FN at tempboxa}%
+ \repeat
+ }
+ \def\FN at removehboxes{\setbox\FN at tempboxa=\lastbox
+ \ifhbox
+ \FN at tempboxa{\FN at removehboxes}%
+ \unhbox\FN at tempboxa
+ \fi
+ }
+\fi
+\@ifpackageloaded{multicol}
+ {\def\FN at setfootnoteparawidth
+ {\hsize\ifnum\doublecol at number>\@ne
+ \textwidth
+ \else \columnwidth \fi}}
+ {\def\FN at setfootnoteparawidth{\hsize\columnwidth}}
+\ifFN at perpage
+ \RequirePackage{perpage}
+ \MakePerPage{footnote}
+ \def\@stpelt#1{\global\csname c@#1\endcsname \m at ne
+ \stepcounter{#1}%
+ \pp at fix@MakePerPage{#1}%
+ }
+ \def\pp at fix@MakePerPage#1{%
+ \ifnum \value{#1}>\z@
+ \addtocounter{#1}\m at ne\fi
+ }
+ \def\pp at cl@end at iii\stepcounter#1\pp at fix@MakePerPage#2{}
+\fi
+\ifFN at para
+\else
+ \long\def\@makefntext#1{%
+ \ifFN at hangfoot
+ \bgroup
+ \setbox\@tempboxa\hbox{%
+ \ifdim\footnotemargin>0pt
+ \hb at xt@\footnotemargin{\@makefnmark\hss}%
+ \else
+ \@makefnmark
+ \fi
+ }%
+ \leftmargin\wd\@tempboxa
+ \rightmargin\z@
+ \linewidth \columnwidth
+ \advance \linewidth -\leftmargin
+ \parshape \@ne \leftmargin \linewidth
+ \@totalleftmargin \leftmargin
+ \footnotesize
+ \@setpar{{\@@par}}%
+ \leavevmode
+ \llap{\box\@tempboxa}%
+ \parskip\hangfootparskip\relax
+ \parindent\hangfootparindent\relax
+ \else
+ \parindent1em
+ \noindent
+ \ifdim\footnotemargin>\z@
+ \hb at xt@ \footnotemargin{\hss\@makefnmark}%
+ \else
+ \ifdim\footnotemargin=\z@
+ \llap{\@makefnmark}%
+ \else
+ \llap{\hb at xt@ -\footnotemargin{\@makefnmark\hss}}%
+ \fi
+ \fi
+ \fi
+ \footnotelayout#1%
+ \ifFN at hangfoot
+ \par\egroup
+ \fi
+ }
+\fi
+\ifFN at multiplefootnote
+ \providecommand*{\multiplefootnotemarker}{3sp}
+ \providecommand*{\multfootsep}{,}
+ \newcommand*\FN at footnotemark{%
+ \leavevmode
+ \ifhmode
+ \edef\@x at sf{\the\spacefactor}%
+ \FN at mf@check
+ \nobreak
+ \fi
+ \@makefnmark
+ \FN at mf@prepare
+ \ifhmode\spacefactor\@x at sf\fi
+ \relax
+ }
+ \def\FN at mf@prepare{%
+ \kern-\multiplefootnotemarker
+ \kern\multiplefootnotemarker\relax
+ }
+ \def\FN at mf@check{%
+ \ifdim\lastkern=\multiplefootnotemarker\relax
+ \edef\@x at sf{\the\spacefactor}%
+ \unkern
+ \textsuperscript{\multfootsep}%
+ \spacefactor\@x at sf\relax
+ \fi
+ }
+\else
+ \let\FN at mf@prepare\relax
+ \let\FN at footnotemark\@footnotemark
+\fi
+\ifFN at stablefootnote
+\let\FN at sf@@footnote\footnote
+\def\footnote{\ifx\protect\@typeset at protect
+ \expandafter\FN at sf@@footnote
+ \else
+ \expandafter\FN at sf@gobble at opt
+ \fi
+}
+\edef\FN at sf@gobble at opt{\noexpand\protect
+ \expandafter\noexpand\csname FN at sf@gobble at opt \endcsname}
+\expandafter\def\csname FN at sf@gobble at opt \endcsname{%
+ \@ifnextchar[%]
+ \FN at sf@gobble at twobracket
+ \@gobble
+}
+\def\FN at sf@gobble at twobracket[#1]#2{}
+\let\FN at sf@@footnotemark\footnotemark
+\def\footnotemark{\ifx\protect\@typeset at protect
+ \expandafter\FN at sf@@footnotemark
+ \else
+ \expandafter\FN at sf@gobble at optonly
+ \fi
+}
+\edef\FN at sf@gobble at optonly{\noexpand\protect
+ \expandafter\noexpand\csname FN at sf@gobble at optonly \endcsname}
+\expandafter\def\csname FN at sf@gobble at optonly \endcsname{%
+ \@ifnextchar[%]
+ \FN at sf@gobble at bracket
+ {}%
+}
+\def\FN at sf@gobble at bracket[#1]{}
+\fi
+\newcommand\setfnsymbol[1]{%
+ \@bsphack
+ \@ifundefined{FN at fnsymbol@#1}%
+ {%
+ \PackageError{footmisc}{Symbol style "#1" not known}%
+ \@eha
+ }{%
+ \expandafter\let\expandafter\@fnsymbol\csname
+ FN at fnsymbol@#1\endcsname
+ }%
+ \@esphack
+}
+\let\FN at fnsymbol@lamport\@fnsymbol
+\newif\if at tempswb
+\DeclareDocumentCommand\DefineFNsymbols {smO{text}m}{%
+ \expandafter\ifx\csname FN at fnsymbol@#2\endcsname\relax
+ \PackageInfo{footmisc}{Declaring symbol style #2}%
+ \else
+ \PackageWarning{footmisc}{Redeclaring symbol style #2}%
+ \fi
+ \toks@{}%
+ \def\@tempb{\end}%
+ \FN at build@symboldef#4\end
+ \def\@tempc{math}%
+ \def\@tempd{#3}%
+ \expandafter\xdef\csname FN at fnsymbol@#2\endcsname##1{%
+ \ifx\@tempc\@tempd
+ \noexpand\ensuremath
+ \else
+ \noexpand\nfss at text
+ \fi
+ {%
+ \noexpand\ifcase##1%
+ \the\toks@
+ \noexpand\else
+ \IfBooleanTF#1{\noexpand\@ctrerr}%
+ {\noexpand\FN at orange##1}%
+ \noexpand\fi
+ }%
+ }%
+}
+\def\FN at build@symboldef#1{%
+ \def\@tempa{#1}%
+ \ifx\@tempa\@tempb
+ \else
+ \toks@\expandafter{\the\toks@\or#1}%
+ \expandafter\FN at build@symboldef
+ \fi
+}
+\DeclareDocumentCommand\DefineFNsymbolsTM {smm}{%
+ \expandafter\ifx\csname FN at fnsymbol@#2\endcsname\relax
+ \PackageInfo{footmisc}{Declaring symbol style #2}%
+ \else
+ \PackageWarning{footmisc}{Redeclaring symbol style #2}%
+ \fi
+ \toks@{}%
+ \def\@tempb{\end}%
+ \FN at build@symboldefTM#3\end\@null
+ \expandafter\xdef\csname FN at fnsymbol@#2\endcsname##1{%
+ \noexpand\ifcase##1%
+ \the\toks@
+ \noexpand\else
+ \IfBooleanTF#1{\noexpand\@ctrerr}%
+ {\noexpand\FN at orange##1}%
+ \noexpand\fi
+ }%
+}
+\def\FN at build@symboldefTM#1#2{%
+ \def\@tempa{#1}%
+ \ifx\@tempa\@tempb
+ \else
+ \toks@\expandafter{\the\toks@\or\TextOrMath{#1}{#2}}%
+ \expandafter\FN at build@symboldefTM
+ \fi
+}
+\def\FN at orange#1{%
+ \ifFN at robust
+ \@arabic#1%
+ \@bsphack
+ \PackageInfo{footmisc}{Footnote number \number#1 out of range}%
+ \protect\@fnsymbol at orange
+ \@esphack
+ \else \@ctrerr \fi
+}
+\global\let\@diagnose at fnsymbol@orange\relax
+\AtEndDocument{\@diagnose at fnsymbol@orange}
+\def\@fnsymbol at orange{%
+ \gdef\@diagnose at fnsymbol@orange{%
+ \PackageWarningNoLine{footmisc}{Some footnote number(s)
+ were out of range
+ \MessageBreak
+ see log for details%
+ }%
+ }%
+}
+\DefineFNsymbolsTM{bringhurst}{%
+ \textasteriskcentered *%
+ \textdagger \dagger
+ \textdaggerdbl \ddagger
+ \textsection \mathsection
+ \textbardbl \|%
+ \textparagraph \mathparagraph
+}%
+\DefineFNsymbolsTM{chicago}{%
+ \textasteriskcentered *%
+ \textdagger \dagger
+ \textdaggerdbl \ddagger
+ \textsection \mathsection
+ \textbardbl \|%
+ \#\#%
+}%
+\DefineFNsymbolsTM{wiley}{%
+ \textasteriskcentered *%
+ {\textasteriskcentered\textasteriskcentered}{**}%
+ \textdagger \dagger
+ \textdaggerdbl \ddagger
+ \textsection \mathsection
+ \textparagraph \mathparagraph
+ \textbardbl \|%
+}%
+\DefineFNsymbolsTM{lamport-robust}{%
+ \textasteriskcentered *%
+ \textdagger \dagger
+ \textdaggerdbl \ddagger
+ \textsection \mathsection
+ \textparagraph \mathparagraph
+ \textbardbl \|%
+ {\textasteriskcentered\textasteriskcentered}{**}%
+ {\textdagger\textdagger}{\dagger\dagger}%
+ {\textdaggerdbl\textdaggerdbl}{\ddagger\ddagger}%
+}
+\DefineFNsymbolsTM*{lamport*}{%
+ \textasteriskcentered *%
+ \textdagger \dagger
+ \textdaggerdbl \ddagger
+ \textsection \mathsection
+ \textparagraph \mathparagraph
+ \textbardbl \|%
+ {\textasteriskcentered\textasteriskcentered}{**}%
+ {\textdagger\textdagger}{\dagger\dagger}%
+ {\textdaggerdbl\textdaggerdbl}{\ddagger\ddagger}%
+ {\textsection\textsection}{\mathsection\mathsection}%
+ {\textparagraph\textparagraph}{\mathparagraph\mathparagraph}%
+ {\textasteriskcentered\textasteriskcentered\textasteriskcentered}{***}%
+ {\textdagger\textdagger\textdagger}{\dagger\dagger\dagger}%
+ {\textdaggerdbl\textdaggerdbl\textdaggerdbl}{\ddagger\ddagger\ddagger}%
+ {\textsection\textsection\textsection}%%
+ {\mathsection\mathsection\mathsection}%
+ {\textparagraph\textparagraph\textparagraph}%%
+ {\mathparagraph\mathparagraph\mathparagraph}%
+}
+\setfnsymbol{lamport*}
+\DefineFNsymbolsTM{lamport*-robust}{%
+ \textasteriskcentered *%
+ \textdagger \dagger
+ \textdaggerdbl \ddagger
+ \textsection \mathsection
+ \textparagraph \mathparagraph
+ \textbardbl \|%
+ {\textasteriskcentered\textasteriskcentered}{**}%
+ {\textdagger\textdagger}{\dagger\dagger}%
+ {\textdaggerdbl\textdaggerdbl}{\ddagger\ddagger}%
+ {\textsection\textsection}{\mathsection\mathsection}%
+ {\textparagraph\textparagraph}{\mathparagraph\mathparagraph}%
+ {\textasteriskcentered\textasteriskcentered\textasteriskcentered}{***}%
+ {\textdagger\textdagger\textdagger}{\dagger\dagger\dagger}%
+ {\textdaggerdbl\textdaggerdbl\textdaggerdbl}{\ddagger\ddagger\ddagger}%
+ {\textsection\textsection\textsection}%%
+ {\mathsection\mathsection\mathsection}%
+ {\textparagraph\textparagraph\textparagraph}%%
+ {\mathparagraph\mathparagraph\mathparagraph}%
+}
+\newcommand\mpfootnotemark{%
+ \@ifnextchar[%
+ \@xmpfootnotemark
+ {%
+ \stepcounter\@mpfn
+ \protected at xdef\@thefnmark{\thempfn}%
+ \@footnotemark
+ }%
+}
+\def\@xmpfootnotemark[#1]{%
+ \begingroup
+ \csname c@\@mpfn\endcsname #1\relax
+ \unrestored at protected@xdef\@thefnmark{\thempfn}%
+ \endgroup
+ \@footnotemark
+}
+\@ifpackageloaded{hyperref}{%
+ \let\H@@footnotetext\FN at footnotetext
+ \let\H@@footnotemark\FN at footnotemark
+}{%
+ \let \@footnotetext \FN at footnotetext
+ \let\@footnotemark \FN at footnotemark
+}
+\endinput
+%%
+%% End of file `footmisc.sty'.
Property changes on: trunk/Master/texmf-dist/tex/latex/footmisc/footmisc-2022-02-14.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/footmisc/footmisc.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/footmisc/footmisc.sty 2025-03-10 20:05:54 UTC (rev 74556)
+++ trunk/Master/texmf-dist/tex/latex/footmisc/footmisc.sty 2025-03-10 20:06:05 UTC (rev 74557)
@@ -9,7 +9,7 @@
%% This is a generated file.
%%
%% Copyright (c) 1995-2011 Robin Fairbairns
-%% Copyright (c) 2018-2023 Robin Fairbairns, Frank Mittelbach
+%% Copyright (c) 2018-2025 Robin Fairbairns, Frank Mittelbach
%%
%% This file was generated from file(s) of the LaTeX `footmisc Bundle'.
%% --------------------------------------------------------------------
@@ -35,19 +35,21 @@
%% where one can also log issues in case there are any.
%%
%% File: footmisc.dtx (C) Copyright 1995-2011 Robin Fairbairns
-%% (C) Copyright 2018-2024 Frank Mittelbach
+%% (C) Copyright 2018-2025 Frank Mittelbach
\NeedsTeXFormat{LaTeX2e}
\providecommand\DeclareRelease[3]{}
\providecommand\DeclareCurrentRelease[2]{}
\DeclareRelease{v5}{2011-06-06}{footmisc-2011-06-06.sty}
-\DeclareCurrentRelease{}{2022-02-14}
+\DeclareRelease{v6}{2022-02-14}{footmisc-2022-02-14.sty}
+\DeclareCurrentRelease{}{2025-03-10}
\ProvidesPackage{footmisc}%
- [2024/12/24 v6.0g
+ [2025/03/10 v7.0a
a miscellany of footnote facilities%
]
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+\IfFormatAtLeastF{2025-06-01}{\input{footmisc-2022-02-14.sty}\endinput}
\newtoks\FN at temptoken
\providecommand\protected at writeaux{%
\protected at write\@auxout
@@ -150,207 +152,55 @@
\newif\ifFN at multiplefootnote \FN at multiplefootnotefalse
\DeclareOption{multiple}{\FN at multiplefootnotetrue}
\ProcessOptions
-\def \@makecol {%
- \@kernel at before@cclv
- \setbox\@outputbox \box\@cclv
- \@outputbox at removebskip
- \let\@elt\relax
- \xdef\@freelist{\@freelist\@midlist}%
- \global \let \@midlist \@empty
- \@makecol at appendblocks
- \ifvbox\@kludgeins
- \@makespecialcolbox
- \else
- \@makenormalcolbox
- \fi
- \global \maxdepth \@maxdepth
-}
-\newdimen\@outputbox at depth
-\def \@makenormalcolbox {%
- \setbox\@outputbox \vbox to\@colht {%
- \@texttop
- \@outputbox at depth \dp\@outputbox
- \unvbox \@outputbox
- \vskip -\@outputbox at depth
- \@textbottom
- }%
-}
-\def \@makespecialcolbox {%
- \@outputbox at append {\vskip-\@outputbox at depth}%
- \@tempdima \@colht
- \ifdim \wd\@kludgeins>\z@
- \advance \@tempdima -\ht\@outputbox
- \advance \@tempdima \pageshrink
- \setbox\@outputbox \vbox to \@colht {%
- \unvbox\@outputbox
- \vskip \@tempdima
- \@textbottom
- }%
- \else
- \advance \@tempdima -\ht\@kludgeins
- \setbox \@outputbox \vbox to \@colht {%
- \vbox to \@tempdima {%
- \unvbox\@outputbox
- \@textbottom}%
- \vss}%
- \fi
- {\setbox \@tempboxa \box \@kludgeins}%
-}
-\ifFN at fixskip
- \def\@outputbox at removebskip{%
- \ifx\@textbottom\relax \else
- \@outputbox at append{%
- \@tempskipa\lastskip
- \ifnum \gluestretchorder\@tempskipa>\z@
- \vskip-\@tempskipa
- \xdef\@outputbox at reinsertbskip
- {\noexpand\@outputbox at append{\vskip\the\@tempskipa}}%
- \else
- \global\let\@outputbox at reinsertbskip\relax
- \fi
- }%
- \fi
- }
-\let\@outputbox at reinsertbskip\relax
-\else
- \let\@outputbox at removebskip \relax
- \let\@outputbox at reinsertbskip\relax
-\fi
-\providecommand\@kernel at before@cclv{}
-\providecommand\@kernel at before@footins{}
-\def\@outputbox at append #1{%
- \setbox\@outputbox \vbox {%
- \boxmaxdepth \@maxdepth
- \@outputbox at depth\dp\@outputbox % if needed in #1
- \unvbox \@outputbox
- #1%
- }%
-}
-\def\@outputbox at appendfootnotes {%
- \ifvoid\footins \else
- \@makecol at handlesplitfootnotes
- \@makecol at preparefootinshook
- \@outputbox at append{%
- \vskip \skip\footins
- \@kernel at before@footins
- \color at begingroup
- \normalcolor
- \footnoterule
- \csname pdfcolfoot at current\endcsname
- \unvbox \footins
- \color at endgroup
- }%
- \fi
-}
-\def \@outputbox at attachfloats {\@combinefloats}
-\def \@outputbox at attachtopfloats {%
- \ifx \@toplist\@empty \else \@cflt \fi
-}
-\def \@outputbox at attachbottomfloats {%
- \ifx \@botlist\@empty \else \@cflb \fi
-}
-\def\@makecol at handlesplitfootnotes {%
- \ifnum\insertpenalties>\z@
- \@makecol at splitfootnotemessagehook
- \fi
-}
-\let \@makecol at splitfootnotemessagehook \@empty
-\let \@makecol at preparefootinshook \@empty
\ifFN at para
- \def\@makecol at preparefootinshook {%
+ \NewSocketPlug{build/column/footnotes}{para}{%
\global\setbox\footins\vbox{\FN at makefootnoteparagraph}%
- }
+ }
+ \AssignSocketPlug{build/column/footnotes}{para}
\fi
-\def\@if at flushbottom@TF{%
- \ifx\@textbottom\relax
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
-}
-\def\@if at footnotes@TF{%
- \ifvoid\footins
- \expandafter\@secondoftwo
- \else
- \expandafter\@firstoftwo
- \fi
-}
-\def\@if at bfloats@TF{%
- \ifx \@botlist\@empty
- \expandafter\@secondoftwo
- \else
- \expandafter\@firstoftwo
- \fi
-}
+\ifFN at fixskip \else
+ \let\@outputbox at removebskip \relax
+ \let\@outputbox at reinsertbskip\relax
+\fi
\ifcase \FN at bottomcases\relax
-\ERROR
+ \ERROR
\or
\ifFN at abovefloats
- \def\@makecol at appendblocks {%
- \@if at footnotes@TF
- {\@outputbox at append{\vfill}}%
- {\@if at bfloats@TF{\@outputbox at append{\vfill}}%
- {\@outputbox at reinsertbskip}}%
- \@outputbox at appendfootnotes
- \@outputbox at attachfloats
- }
+ \AssignSocketPlug {build/column/outputbox}{space-footnotes-floats}
\else
- \def\@makecol at appendblocks {%
- \@outputbox at attachfloats
- \@if at footnotes@TF
- {\@outputbox at append{\vfill}}%
- {\@outputbox at reinsertbskip}%
- \@outputbox at appendfootnotes
- }
+ \AssignSocketPlug {build/column/outputbox}{floats-space-footnotes}
\fi
\or
\ifFN at abovefloats
- \def\@makecol at appendblocks {%
- \@outputbox at appendfootnotes
- \@if at bfloats@TF
- {\@outputbox at append{\vfill}}%
- {\@outputbox at reinsertbskip}%
- \@outputbox at attachfloats
- }
+ \AssignSocketPlug {build/column/outputbox}{footnotes-space-floats}
\else
- \def\@makecol at appendblocks {%
- \@if at footnotes@TF
- {\@outputbox at append{\vfill}}%
- {\@if at bfloats@TF{\@outputbox at append{\vfill}}%
- {\@outputbox at reinsertbskip}}%
- \@outputbox at attachfloats
- \@outputbox at appendfootnotes
- }
+ \AssignSocketPlug {build/column/outputbox}{space-floats-footnotes}
\fi
\or
\ifFN at abovefloats
- \def\@makecol at appendblocks {%
- \@outputbox at appendfootnotes
- \@outputbox at attachfloats
- \@outputbox at reinsertbskip
- }
+ \AssignSocketPlug {build/column/outputbox}{footnotes-floats}
\else
- \def\@makecol at appendblocks {%
- \@outputbox at attachfloats
- \@outputbox at appendfootnotes
- \@outputbox at reinsertbskip
-}
+ \AssignSocketPlug {build/column/outputbox}{floats-footnotes}
\fi
\else
-\ERROR
+ \ERROR
\fi
\newif\ifFN at setspace
-\@ifpackageloaded{setspace}{%
- \FN at setspacetrue
- \@ifclassloaded{memoir}{%
- \let\FN at baselinestretch\m at m@singlespace
- }{%
- \let\FN at baselinestretch\setspace at singlespace
+\@ifpackageloaded{setspace}%
+ {%
+ \FN at setspacetrue
+ \@ifclassloaded{memoir}%
+ {%
+ \let\FN at baselinestretch\m at m@singlespace
+ }%
+ {%
+ \let\FN at baselinestretch\setspace at singlespace
+ }%
}%
-}{%
- \FN at setspacefalse
-}
+ {%
+ \FN at setspacefalse
+ }
\ifFN at para
\long\def\FN at footnotetext#1{%
\insert\footins{%
@@ -789,6 +639,12 @@
\let \@footnotetext \FN at footnotetext
\let\@footnotemark \FN at footnotemark
}
+\AddToHook{file/marginfix.sty/after}[footmisc]{%
+ \FirstAidNeededT{marginfix}{sty}%
+ {2020/05/06 v1.2 Fix Margin Paragraphs}%
+ {\let \@outputbox at attachfloats \@combinefloats}%
+}
+\DeclareHookRule{file/marginfix.sty/after}{firstaid}{voids}{footmisc}
\endinput
%%
%% End of file `footmisc.sty'.
More information about the tex-live-commits
mailing list.