texlive[63515] Master: latex-lab now part of latex2e (8jun22)

commits+karl at tug.org commits+karl at tug.org
Wed Jun 8 22:43:50 CEST 2022


Revision: 63515
          http://tug.org/svn/texlive?view=revision&revision=63515
Author:   karl
Date:     2022-06-08 22:43:50 +0200 (Wed, 08 Jun 2022)
Log Message:
-----------
latex-lab now part of latex2e (8jun22)

Modified Paths:
--------------
    trunk/Master/tlpkg/bin/tlpkg-ctan-check
    trunk/Master/tlpkg/tlpsrc/collection-latex.tlpsrc

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/latex-lab/
    trunk/Master/texmf-dist/doc/latex/latex-lab/README.md
    trunk/Master/texmf-dist/doc/latex/latex-lab/changes.txt
    trunk/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-code.pdf
    trunk/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-code.tex
    trunk/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-doc.pdf
    trunk/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-doc.tex
    trunk/Master/texmf-dist/doc/latex/latex-lab/latex-lab-footnotes.pdf
    trunk/Master/texmf-dist/doc/latex/latex-lab/latex-lab-new-or.pdf
    trunk/Master/texmf-dist/doc/latex/latex-lab/latex-lab-testphase.pdf
    trunk/Master/texmf-dist/doc/latex/latex-lab/usage-of-footnotemark.txt
    trunk/Master/texmf-dist/doc/latex/latex-lab/usage-of-footnotetext.txt
    trunk/Master/texmf-dist/doc/latex/latex-lab/usage-of-kern-kern.txt
    trunk/Master/texmf-dist/source/latex/latex-lab/
    trunk/Master/texmf-dist/source/latex/latex-lab/documentmetadata-support.dtx
    trunk/Master/texmf-dist/source/latex/latex-lab/latex-lab-footnotes.dtx
    trunk/Master/texmf-dist/source/latex/latex-lab/latex-lab-new-or.dtx
    trunk/Master/texmf-dist/source/latex/latex-lab/latex-lab-testphase.dtx
    trunk/Master/texmf-dist/source/latex/latex-lab/latex-lab.ins
    trunk/Master/texmf-dist/tex/latex/latex-lab/
    trunk/Master/texmf-dist/tex/latex/latex-lab/documentmetadata-support.ltx
    trunk/Master/texmf-dist/tex/latex/latex-lab/latex-lab-footmisc.ltx
    trunk/Master/texmf-dist/tex/latex/latex-lab/latex-lab-footnotes.ltx
    trunk/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-new-or.sty
    trunk/Master/texmf-dist/tex/latex/latex-lab/new-or-latex-lab-testphase.ltx
    trunk/Master/texmf-dist/tex/latex/latex-lab/phase-I-latex-lab-testphase.ltx
    trunk/Master/texmf-dist/tex/latex/latex-lab/phase-II-latex-lab-testphase.ltx
    trunk/Master/texmf-dist/tex/latex/latex-lab/tagpdf-latex-lab-testphase.ltx
    trunk/Master/tlpkg/tlpsrc/latex-lab.tlpsrc

Added: trunk/Master/texmf-dist/doc/latex/latex-lab/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/latex-lab/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/latex-lab/README.md	2022-06-08 20:43:50 UTC (rev 63515)
@@ -0,0 +1,42 @@
+# LaTeX laboratory
+
+Release 2022-06-01 pre-release 4
+
+## Overview
+
+This bundle holds optional files that are loaded in certain situations
+by kernel code (if available). For example, the new (as of 2021/12)
+`\DocumentMetadata` command in the kernel loads a file from here holding
+the real payload. While this code is still in development and the use
+is experimental and mainly for the tagging project, the code is stored
+outside the format so that there can be intermediate releases not
+affecting the production use of LaTeX.
+
+
+Once the code is finalized and properly tested it will eventually move
+to the kernel and the corresponding file in this bundle will
+vanish. Note that none of these files are directly user accessible in
+documents (i.e., they aren't packages) so the process is transparent
+to documents already using the new functionality.
+
+
+## Current support code in the bundle
+
+### Support for `\DocumentMetadata`
+
+### New output routine code (under development)
+
+ - so far there is a first implementation of footnote support
+
+
+## License
+
+The license is LPPL 1.3c.
+
+
+## Copyright
+
+This README file is
+
+Copyright (C) 2021-2022
+The LaTeX Project


Property changes on: trunk/Master/texmf-dist/doc/latex/latex-lab/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/latex-lab/changes.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/latex-lab/changes.txt	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/latex-lab/changes.txt	2022-06-08 20:43:50 UTC (rev 63515)
@@ -0,0 +1,27 @@
+2022-05-28 Joseph Wright <Joseph.Wright at latex-project.org>
+
+	* latex-lab-prototype.dtx
+	 Removed
+
+2022-14-04 Ulrike Fischer <Ulrike.Fischer at latex-project.org>
+
+	* documentmeta-support.dtx:
+	add key A-4 for first steps to support pdf/A-4
+
+2022-03-08 Joseph Wright <Joseph.Wright at latex-project.org>
+
+	* latex-lab-prototype.dtx
+	 New file re-implementing ideas from on xtemplate.dtx using updated
+	 keyval support
+
+2021-12-30 Ulrike Fischer <Ulrike.Fischer at latex-project.org>
+
+	* documentmeta-support.dtx:
+	cleaned up keys and bundle name
+    * added latex-lab-testphase.dtx for wrappers for the testphase
+    key.
+
+2021-12-16 Frank Mittelbach <Frank.Mittelbach at latex-project.org>
+
+	* README.md:
+	Add the bundle to support project work.


Property changes on: trunk/Master/texmf-dist/doc/latex/latex-lab/changes.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-code.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-code.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-code.pdf	2022-06-08 20:41:20 UTC (rev 63514)
+++ trunk/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-code.pdf	2022-06-08 20:43:50 UTC (rev 63515)

Property changes on: trunk/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-code.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-code.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-code.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-code.tex	2022-06-08 20:43:50 UTC (rev 63515)
@@ -0,0 +1,4 @@
+% this will typeset documentation + code
+
+\AtBeginDocument{\AlsoImplementation}
+\input{documentmetadata-support.dtx}


Property changes on: trunk/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-doc.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-doc.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-doc.pdf	2022-06-08 20:41:20 UTC (rev 63514)
+++ trunk/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-doc.pdf	2022-06-08 20:43:50 UTC (rev 63515)

Property changes on: trunk/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-doc.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-doc.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-doc.tex	2022-06-08 20:43:50 UTC (rev 63515)
@@ -0,0 +1,6 @@
+% this will typeset only documentation but not the code
+
+\AtBeginDocument{\OnlyDescription
+                 \let\tableofcontents\relax
+                 }
+\input{documentmetadata-support.dtx}


Property changes on: trunk/Master/texmf-dist/doc/latex/latex-lab/documentmetadata-support-doc.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/latex-lab/latex-lab-footnotes.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/latex-lab/latex-lab-footnotes.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/latex-lab/latex-lab-footnotes.pdf	2022-06-08 20:41:20 UTC (rev 63514)
+++ trunk/Master/texmf-dist/doc/latex/latex-lab/latex-lab-footnotes.pdf	2022-06-08 20:43:50 UTC (rev 63515)

Property changes on: trunk/Master/texmf-dist/doc/latex/latex-lab/latex-lab-footnotes.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/latex-lab/latex-lab-new-or.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/latex-lab/latex-lab-new-or.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/latex-lab/latex-lab-new-or.pdf	2022-06-08 20:41:20 UTC (rev 63514)
+++ trunk/Master/texmf-dist/doc/latex/latex-lab/latex-lab-new-or.pdf	2022-06-08 20:43:50 UTC (rev 63515)

Property changes on: trunk/Master/texmf-dist/doc/latex/latex-lab/latex-lab-new-or.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/latex-lab/latex-lab-testphase.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/latex-lab/latex-lab-testphase.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/latex-lab/latex-lab-testphase.pdf	2022-06-08 20:41:20 UTC (rev 63514)
+++ trunk/Master/texmf-dist/doc/latex/latex-lab/latex-lab-testphase.pdf	2022-06-08 20:43:50 UTC (rev 63515)

Property changes on: trunk/Master/texmf-dist/doc/latex/latex-lab/latex-lab-testphase.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/latex-lab/usage-of-footnotemark.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/latex-lab/usage-of-footnotemark.txt	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/latex-lab/usage-of-footnotemark.txt	2022-06-08 20:43:50 UTC (rev 63515)
@@ -0,0 +1,186 @@
+% packages that alter \@footnotemark ...
+
+
+% bibarts
+
+\let\ba at footnmark=\@footnotemark
+\def\@footnotemark{\ifhmode{\nobreak \hskip 0.04em plus 0.01em}\else\leavevmode\fi\ba at footnmark}%
+
+
+% ./bxjscls/bxjsja-minimal.def
+
+\def\bxjs at cjk@loaded{%
+  \def\@footnotemark{%
+    \leavevmode
+    \ifhmode
+      \edef\@x at sf{\the\spacefactor}%
+      \ifdim\lastkern>\z@\ifdim\lastkern<5sp\relax
+         \unkern\unkern
+         \ifdim\lastskip>\z@ \unskip \fi
+      \fi\fi
+      \nobreak
+    \fi
+    \@makefnmark
+    \ifhmode \spacefactor\@x at sf \fi
+    \relax}%
+  \let\bxjs at cjk@loaded\relax
+}
+
+% ./arabtex/afoot.sty
+
+\let \a@@footnotemark \@footnotemark
+
+\def \a at footnotemark {% inside Arabic environment
+\iftrans \unskip \unskip \nobreak \@makefnmark \fi 
+\ifarab \a at spacefalse \putwordb at x \@makefnmark \a at spacetrue \fi }
+
+% ./hyperref/hyperref.sty
+
+  \def\@footnotemark{%
+    \leavevmode
+    \ifhmode\edef\@x at sf{\the\spacefactor}\nobreak\fi
+    \stepcounter{Hfootnote}%
+    \global\let\Hy at saved@currentHref\@currentHref
+    \hyper at makecurrent{Hfootnote}%
+    \global\let\Hy at footnote@currentHref\@currentHref
+    \global\let\@currentHref\Hy at saved@currentHref
+    \hyper at linkstart{link}{\Hy at footnote@currentHref}%
+    \@makefnmark
+    \hyper at linkend
+    \ifhmode\spacefactor\@x at sf\fi
+    \relax
+  }%
+
+
+% ./hypdvips/hypdvips.sty
+
+  \def\@footnotemark{%
+    \leavevmode
+    \ifhmode\edef\@x at sf{\the\spacefactor}\nobreak\fi
+    \stepcounter{Hfootnote}%
+    \global\let\Hy at saved@currentHref\@currentHref
+    \hyper at makecurrent{Hfootnote}%
+    \global\let\Hy at footnote@currentHref\@currentHref
+    \global\let\@currentHref\Hy at saved@currentHref
+    \ifHy at draft%
+      \@makefnmark%
+    \else%
+      \pp at hyperfootnote%
+    \fi%
+    \ifhmode\spacefactor\@x at sf\fi
+    \relax
+    }
+
+  \newcommand{\pp at hyperfootnote}{%
+    \ifx\pp at activerect\pp at true%
+      \@makefnmark%
+    \else%
+      \ifpp at smallfootnotes%
+        \let\pp at backup@@thefnmark\@thefnmark%
+        \renewcommand{\@thefnmark}{\pdf at rect{\pp at backup@@thefnmark}}%
+        \Hy at colorlink\@footnotecolor%
+        \@makefnmark%
+        \Hy at endcolorlink%
+        \pdfmark{%
+          pdfmark=/ANN,%
+          linktype=footnote,%
+          Subtype=/Link,%
+          AcroHighlight=\@pdfhighlight,%
+          Border=\@pdfborder,%
+          BorderStyle=\@pdfborderstyle,%
+          Color=\@footnotebordercolor,%
+          Dest=\Hy at footnote@currentHref,%
+          Raw=H.B%
+          }%
+      \let\@thefnmark\pp at backup@@thefnmark%
+      \else%
+        \pdfmark[\@makefnmark]{%
+          pdfmark=/ANN,%
+          linktype=footnote,%
+          Subtype=/Link,%
+          AcroHighlight=\@pdfhighlight,%
+          Border=\@pdfborder,%
+          BorderStyle=\@pdfborderstyle,%
+          Color=\@footnotebordercolor,%
+          Dest=\Hy at footnote@currentHref%
+          }%
+      \fi%
+    \fi%
+    }
+
+
+% ./memoir/memhfixc.sty
+
+\ifHy at hyperfootnotes
+ \def\@footnotemark{%
+    \leavevmode
+    \ifhmode\edef\@x at sf{\the\spacefactor}%
+      \m at mmf@check% <--- added
+    \nobreak\fi
+    \stepcounter{Hfootnote}%
+    \global\let\Hy at saved@currentHref\@currentHref
+    \hyper at makecurrent{Hfootnote}%
+    \global\let\Hy at footnote@currentHref\@currentHref
+    \global\let\@currentHref\Hy at saved@currentHref
+    \hyper at linkstart{link}{\Hy at footnote@currentHref}%
+    \@makefnmark
+    \hyper at linkend
+    \m at mmf@prepare% <--- added
+    \ifhmode\spacefactor\@x at sf\fi
+    \relax
+  }%
+\fi
+
+
+% caption3.sty
+
+% this is altering the top-level when inside a float
+
+
+% ./koma-script/scrlttr2.cls
+
+\newcommand*{\scr at footnotemark}{%
+  \leavevmode
+  \ifhmode\edef\@x at sf{\the\spacefactor}\FN at mf@check\nobreak\fi
+  \@makefnmark
+  \csname FN at mf@prepare\endcsname
+  \ifhmode\spacefactor\@x at sf\fi
+  \relax}
+
+% tested against this ...
+
+\newcommand*{\scr at saved@footnotemark}{%
+  \leavevmode
+  \ifhmode\edef\@x at sf{\the\spacefactor}\nobreak\fi
+  \@makefnmark
+  \ifhmode\spacefactor\@x at sf\fi
+  \relax}
+
+
+% ./chextras/chextras.sty
+
+\ifstd at notes\else
+ \let\std at footnotemark\@footnotemark
+ \def\alt at footnotemark{\unskip\thinspace\std at footnotemark}
+ \let\@footnotemark\alt at footnotemark
+
+% footmisx.sty
+
+  \newcommand*\@footmisxnotemark{%
+    \leavevmode
+    \ifhmode
+      \edef\@x at sf{\the\spacefactor}%
+      \FN at mf@check
+      \nobreak
+    \fi
+    \@footmicx at makefnmark
+    \ifFN at pp@towrite
+      \FN at pp@writetemp
+      \FN at pp@towritefalse
+    \fi
+    \FN at mf@prepare
+    \ifhmode\spacefactor\@x at sf\fi
+    \relax
+  }
+ 
+


Property changes on: trunk/Master/texmf-dist/doc/latex/latex-lab/usage-of-footnotemark.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/latex-lab/usage-of-footnotetext.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/latex-lab/usage-of-footnotetext.txt	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/latex-lab/usage-of-footnotetext.txt	2022-06-08 20:43:50 UTC (rev 63515)
@@ -0,0 +1,842 @@
+
+% ./bibarts/bibarts.sty
+
+\let\ba at footnotetext=\@footnotetext
+\long\def\@footnotetext#1{\ba at footnotetext{%
+   \global\let\thisto at ba=-%
+   \global\let\thisti at ba=-%
+   \global\let\thisp at ba=-%
+   \global\let\thisvol at ba=-%
+   \global\let\thiss at ba=-%
+   \global\let\thisn at ba=-%
+   \global\let\pos at ba=0%
+    \kern 0.1em\nulskip at ba{\@footnotetrue\ignorespaces
+    #1\nulskip at ba\ba at textmode}\global\let\lastto at ba=\thisto at ba
+   \global\let\lastti at ba=\thisti at ba
+   \global\let\lastp at ba=\thisp at ba
+   \global\let\lastvol at ba=\thisvol at ba
+   \global\let\lasts at ba=\thiss at ba
+   \global\let\lastn at ba=\thisn at ba}}%
+
+
+% ./fnbreak/fnbreak.sty
+
+  \let\fnb at orig@footnotetext\@footnotetext
+  \long\def\@footnotetext#1{\fnb at orig@footnotetext{\fnb at fnstart#1\fnb at fnend}}%
+
+
+% ./revtex4-1/revtex4-1.cls  ./revtex/ltxutil.sty ./revtex/revtex4-2.cls ...
+
+\long\def\@footnotetext{%
+ \insert\footins\bgroup
+  \make at footnotetext
+}%
+\long\def\@mpfootnotetext{%
+ \minipagefootnote at pick
+  \make at footnotetext
+}%
+\long\def\make at footnotetext#1{%
+  \set at footnotefont
+  \set at footnotewidth
+  \@parboxrestore
+  \protected at edef\@currentlabel{%
+   \csname p@\@mpfn\endcsname\@thefnmark
+  }%
+  \color at begingroup
+   \@makefntext{%
+    \rule\z@\footnotesep\ignorespaces#1%
+    \@finalstrut\strutbox\vadjust{\vskip\z at skip}%
+   }%
+  \color at endgroup
+ \minipagefootnote at drop
+}%
+
+
+% ./nrc/nrc1.cls  ./nrc/nrc2.cls
+
+% this is missing the \par at the end and \@currentcounter
+
+\long\def\@footnotetext#1{%
+  \insert\footins{%
+    \reset at font\smallt
+    \interlinepenalty\interfootnotelinepenalty
+    \splittopskip\footnotesep
+    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+    \hsize\columnwidth \@parboxrestore
+    \protected at edef\@currentlabel{%
+       \csname p at footnote\endcsname\@thefnmark
+    }%
+    \color at begingroup
+      \@makefntext{%
+        \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox
+      }%
+    \color at endgroup
+  }%
+}%
+
+%-------------------------------------
+
+% ./bigfoot/bigfoot.sty
+
+  \def\@footnotetext{\Footnotetextdefault{}}%
+
+%-------------------------------------
+
+
+% ./uafthesis/uafthesis.cls
+
+% this is missing the \par at the end and \@currentcounter
+
+%% this little gem provides for single-spaced footnotes
+\long\def\@footnotetext#1{\insert\footins{%
+    \ssp
+    \reset at font\footnotesize
+    \interlinepenalty\interfootnotelinepenalty
+    \splittopskip\footnotesep
+    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+    \hsize\columnwidth \@parboxrestore
+   \edef\@currentlabel{\csname p at footnote\endcsname\@thefnmark}\@makefntext
+    {\rule{\z@}{\footnotesep}\ignorespaces
+      #1\strut}}}
+
+%-------------------------------------
+
+
+
+% ./resphilosophica/resphilosophica.cls
+
+% I wonder if this \, is really intended below ...
+
+\long\def\@footnotetext#1{%
+  \insert\footins{%
+    \normalfont\footnotesize
+    \interlinepenalty\interfootnotelinepenalty
+    \splittopskip\footnotesep \splitmaxdepth \dp\strutbox
+    \floatingpenalty\@MM \hsize\columnwidth
+    \@parboxrestore \parindent\normalparindent \sloppy
+    \protected at edef\@currentlabel{%
+      \csname p at footnote\endcsname\@thefnmark}%
+    \@makefntext{%
+      \,\rule\z@\footnotesep\ignorespaces#1\unskip\strut\par}}}
+
+%-------------------------------------
+
+
+
+% ./setspace/setspace.sty
+
+% this is missing the \par at the end and \@currentcounter
+
+\long\def\@footnotetext#1{%
+  \insert\footins{%
+% GT:  Next line added.  Hook desired here!
+    \def\baselinestretch {\setspace at singlespace}%
+    \reset at font\footnotesize
+    \interlinepenalty\interfootnotelinepenalty
+    \splittopskip\footnotesep
+    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+    \hsize\columnwidth
+    \@parboxrestore
+    \protected at edef\@currentlabel{%
+      \csname p at footnote\endcsname\@thefnmark
+    }%
+    \color at begingroup
+      \@makefntext{%
+        \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+    \color at endgroup}}
+
+%-------------------------------------
+
+
+
+% ./linguex/linguex.sty
+
+
+\let\predefinedfootnotetext=\@footnotetext
+\long\def\@footnotetext#1{\@noftnotefalse\predefinedfootnotetext{#1}%
+         \@noftnotetrue}
+
+
+%-------------------------------------
+
+
+% ./fnpara/fnpara.sty
+
+\long\def\@footnotetext#1{\insert\footins{%
+    \reset at font\footnotesize
+    \interlinepenalty\interfootnotelinepenalty
+    \splittopskip\footnotesep
+    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+    \hsize\columnwidth \@parboxrestore
+    \protected at edef\@currentlabel{%
+       \csname p at footnote\endcsname\@thefnmark
+    }%
+    \color at begingroup
+    \setbox0=\hbox{%
+      \@makefntext{%
+        \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox
+        \penalty -10
+        \hskip\footglue
+      }%
+    }%
+    \dp0=0pt \ht0=\fudgefactor\wd0 \box0
+    \color at endgroup}}
+
+%-------------------------------------
+
+
+% ./footmisc/footmisc.sty (para option)
+
+% this is missing the \par at the end and \@currentcounter
+
+  \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
+      \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
+  }
+
+%-------------------------------------
+
+
+% ./footmisc/footmisc.sty (normal)
+
+% this is missing the \par at the end and \@currentcounter
+
+    \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
+        \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
+    }%
+
+
+
+%-------------------------------------
+
+
+% ./footmisc/footmisc.sty (side option)
+
+    \long\def\FN at footnotetext#1{%
+      \marginpar{%
+        \ifFN at setspace
+          \let\baselinestretch\FN at baselinestretch
+        \fi
+        \reset at font\footnotesize
+        \protected at edef\@currentlabel{%
+          \csname p at footnote\endcsname\@thefnmark
+        }%
+        \color at begingroup
+          \@makefntext{%
+            \ignorespaces#1%
+          }%
+        \color at endgroup
+      }%
+      \FN at mf@prepare
+    }%
+
+
+
+%-------------------------------------
+
+
+
+% ./bxjscls/bxjsarticle.cls ./bxjscls/bxjsbook.cls ...
+
+\long\def\@footnotetext{%
+  \insert\footins\bgroup
+    \normalfont\footnotesize
+    \interlinepenalty\interfootnotelinepenalty
+    \splittopskip\footnotesep
+    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+    \hsize\columnwidth \@parboxrestore
+    \protected at edef\@currentlabel{%
+       \csname p at footnote\endcsname\@thefnmark
+    }%
+    \color at begingroup
+      \@makefntext{%
+        \rule\z@\footnotesep\ignorespaces}%
+      \futurelet\jsc at next\jsc at fo@t}
+\def\jsc at fo@t{\ifcat\bgroup\noexpand\jsc at next \let\jsc at next\jsc at f@@t
+                                \else \let\jsc at next\jsc at f@t\fi \jsc at next}
+\def\jsc at f@@t{\bgroup\aftergroup\jsc@@foot\let\jsc at next}
+\def\jsc at f@t#1{#1\jsc@@foot}
+\def\jsc@@foot{\@finalstrut\strutbox\color at endgroup\egroup
+  \ifx\pltx at foot@penalty\@undefined\else
+    \ifhmode\null\fi
+    \ifnum\pltx at foot@penalty=\z@\else
+      \penalty\pltx at foot@penalty
+      \pltx at foot@penalty\z@
+    \fi
+  \fi}
+
+
+not covered so far supports \footnote{ catcode changes ...} but also
+\foonote A  --- the latter is questionable I would say
+
+
+%-------------------------------------
+
+
+% ./fn2end/fn2end.sty
+
+obsolete I guess, ignored in evaluation
+
+
+%-------------------------------------
+
+
+% ./hyperref/hyperref.sty
+
+  \long\def\@footnotetext#1{%
+    \H@@footnotetext{%
+      \ifHy at nesting
+        \expandafter\ltx at firstoftwo
+      \else
+        \expandafter\ltx at secondoftwo
+      \fi
+      {%
+        \expandafter\hyper@@anchor\expandafter{%
+          \Hy at footnote@currentHref
+        }{\ignorespaces #1}%
+      }{%
+        \Hy at raisedlink{%
+          \expandafter\hyper@@anchor\expandafter{%
+            \Hy at footnote@currentHref
+          }{\relax}%
+        }%
+        \let\@currentHref\Hy at footnote@currentHref
+        \let\@currentlabelname\@empty
+        \ignorespaces #1%
+      }%
+    }%
+  }%
+
+
+Handling of anchors (in nested context) I guess. This needs to be
+married with the anchor setting that the tagging currently does and
+the latter improved/adjusted
+
+
+%-------------------------------------
+
+% ./biblatex-gb7714-2015/gb7714-2015ms.bbx ./biblatex-gb7714-2015/gb7714-2015mx.bbx ...
+
+    \long\def\@footnotetext##1{\insert\footins{%
+    \reset at font\footnotesize
+    \interlinepenalty\interfootnotelinepenalty
+    \splittopskip\footnotesep
+    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+    \hsize\columnwidth \@parboxrestore
+    \protected at edef\@currentlabel{%
+       \csname p at footnote\endcsname\@thefnmark
+    }%
+    \color at begingroup
+    \leftskip \footbibmargin%增加的左侧缩进
+      \@makefntext{%
+        \rule\z@\footnotesep\ignorespaces##1\@finalstrut\strutbox%
+        }%
+    \color at endgroup}}%
+
+fits the structure
+%-------------------------------------
+
+
+% ./amscls/amsbook.cls ./amscls/amsproc.cls ./amscls/amsart.cls ...
+
+\long\def\@footnotetext#1{%
+  \insert\footins{%
+    \normalfont\footnotesize
+    \interlinepenalty\interfootnotelinepenalty
+    \splittopskip\footnotesep \splitmaxdepth \dp\strutbox
+    \floatingpenalty\@MM \hsize\columnwidth
+    \@parboxrestore \parindent\normalparindent \sloppy
+    \protected at edef\@currentlabel{%
+      \csname p at footnote\endcsname\@thefnmark}%
+    \@makefntext{%
+      \rule\z@\footnotesep\ignorespaces#1\unskip\strut\par}}}
+
+fits the structure
+%-------------------------------------
+
+
+% ./umich-thesis/umich-thesis.cls
+
+% change LaTeX's footnotes to get vertical spacing correct
+\skip\footins \baselinestretch2\skip\footins
+\long\def\@footnotetext#1{%
+  \insert\footins{%
+    \def\baselinestretch {\setspace at singlespace}%
+    \reset at font\footnotesize
+    \interlinepenalty\interfootnotelinepenalty
+    \splittopskip\footnotesep
+    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+    \hsize\columnwidth
+    \@parboxrestore
+    \vskip 1.2\baselineskip
+    \protected at edef\@currentlabel{%
+      \csname p at footnote\endcsname\@thefnmark
+    }%
+    \color at begingroup
+      \@makefntext{%
+        \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+    \color at endgroup}}
+
+fits the structure
+%-------------------------------------
+
+
+% ./nostarch/nostarch.cls
+
+\long\def\@footnotetext#1{\insert\footins{%
+    \reset at font\footnotesize
+    \interlinepenalty\interfootnotelinepenalty
+    \splittopskip\footnotesep
+    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+    \hsize\columnwidth \@parboxrestore
+    \protected at edef\@currentlabel{%
+       \csname p at footnote\endcsname\@thefnmark
+    }%
+    \color at begingroup
+      \@makefntext{%
+        \rule\z@{13.5pt}\ignorespaces#1}%
+    \color at endgroup}}%
+
+fixed \footsep, probably very old
+fits the structure
+%-------------------------------------
+
+
+
+% ./coursepaper/coursepaper.cls
+
+\long\def\@footnotetext#1{%
+  \insert\footins{%
+    \def\baselinestretch {1}%
+    \reset at font\footnotesize
+    \interlinepenalty\interfootnotelinepenalty
+    \splittopskip\footnotesep
+    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+    \hsize\columnwidth
+    \@parboxrestore
+    \protected at edef\@currentlabel{%
+      \csname p at footnote\endcsname\@thefnmark
+    }%
+    \color at begingroup
+      \@makefntext{%
+        \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+    \color at endgroup}}
+
+fits the structure
+%-------------------------------------
+
+
+
+% ./ucthesis/ucthesis.cls
+
+% Single-space footnotes.
+\long\def\@footnotetext#1{\insert\footins{\ssp\reset at font\footnotesize
+    \interlinepenalty\interfootnotelinepenalty
+    \splittopskip\footnotesep
+    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+    \hsize\columnwidth \@parboxrestore
+   \edef\@currentlabel{\csname p at footnote\endcsname\@thefnmark}\@makefntext
+    {\rule{\z@}{\footnotesep}\ignorespaces
+      #1\strut}}}
+
+fits the structure
+%-------------------------------------
+
+
+
+% ./jura/jura.cls
+
+\long\def\@footnotetext#1{\insert\footins{%
+    \linespread{\J at FootnoteSpread}\reset at font\footnotesize
+    \interlinepenalty\interfootnotelinepenalty
+    \splittopskip\footnotesep
+    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+    \hsize\columnwidth \@parboxrestore
+    \protected at edef\@currentlabel{%
+       \csname p at footnote\endcsname\@thefnmark
+    }%
+    \color at begingroup
+      \@makefntext{%
+        \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+    \color at endgroup}}%
+
+fits the structure
+%-------------------------------------
+
+
+% ./asaetr/asaesub.sty
+
+2.09
+
+%-------------------------------------
+
+
+% ./lineno/fnlineno.sty
+
+%% |\FNLN@@text| stores the `\@footnotetext' found, 
+%% we might check if it is `\FNLN at ltx@fntext' ... %% TODO
+\let\FNLN@@text\@footnotetext
+\def\@footnotetext{%
+    \ifLineNumbers  \expandafter \FNLN at text
+    \else           \expandafter \FNLN@@text
+    \fi}
+
+
+\def \FNLN at text {%                      %% 2010/12/31 arg read later
+    \vadjust{\penalty-\FNLN at M@swap at codepen}%
+%% Standard \LaTeX's `\@footnotetext' expands `\@thefnmark' 
+%% to produce the footnote mark at the page bottom, 
+%% right after it has been determined for the mark 
+%% in the main text. \emph{Here} the footnote text 
+%% will be typeset only when \emph{other} footnote marks
+%% may have been formed for typesetting the main text 
+%% paragraph before. 
+%% %%% (TODO clearer wording)
+%% In the \strong{footnote list} 
+%% macro |\FNLN at list|, the (\dqtd{`&\protect'ed})
+%% \emph{current} expansion <mark> of `\@thefnmark' 
+%% is stored as an item preceding the footnote text 
+%% <text>. One footnote entry in `\FNLN at list' 
+%% thus has the form \lq`<mark>\@lt<text>\@lt'\rq.
+%% \LaTeX's internal `\g at addto@macro' is used to \emph{append} 
+%% an entry to the list (at the right). The OTR will later 
+%% take the entries from the left of the list. 
+%% 
+%% The argument of the auxiliary/temporary `\@tempa' 
+%% will contain the footnote text and thus must be able to 
+%% carry `\par' tokens. We therefore need a `\long' version of 
+%% `\protected at edef':
+   \let\@@protect\protect
+   \let\protect\@unexpandable at protect
+   \afterassignment\restore at protect
+   \long \edef \@tempa ##1{%
+        \noexpand\g at addto@macro \noexpand\FNLN at list {%
+            \@thefnmark \noexpand\@lt ##1\noexpand \@lt}}%
+%% ... issuing 
+%%     \lq`\g at addto@macro\FNLN at list{<mark>\elt<text>\@lt}'\rq\ ...
+   \@tempa                              %% reads arg
+}
+%% Here we initialize |\FNLN at list|:
+\let\FNLN at list\@empty
+
+
+
+probably continues working but needs separate checking
+
+%-------------------------------------
+
+
+
+% ./jurabib/jurabib.sty
+
+      \long\def\@footnotetext#1{%
+           \Orig at tabularx@footnotetext{%
+              \jb at fntrue
+              #1%
+              \setcounter{jb at cites@in at footnote}{0}%
+           }%
+      }%
+
+      \let\jbsaved at footnotetext\@footnotetext
+      \long\def\@footnotetext#1{%
+         \begingroup
+          \jb at fntrue
+          \jbsaved at footnotetext{#1}%
+          \setcounter{jb at cites@in at footnote}{0}%
+         \endgroup
+      }%
+
+
+first is table notes, second
+fits the structure
+%-------------------------------------
+
+
+
+% ./york-thesis/york-thesis.cls
+
+\long\def\@footnotetext#1{%
+ \insert\footins{%
+  \def\baselinestretch {1}%
+  \reset at font\footnotesize
+  \interlinepenalty\interfootnotelinepenalty
+  \splittopskip\footnotesep
+  \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+  \hsize\columnwidth
+  \@parboxrestore
+  \protected at edef\@currentlabel{%
+    \csname p at footnote\endcsname\@thefnmark}%
+  \color at begingroup
+    \@makefntext{%
+      \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+  \color at endgroup}}
+
+fits the structure
+%-------------------------------------
+
+
+% ./ucdavisthesis/ucdavisthesis.cls
+
+\long\def\@footnotetext#1{\insert\footins{\renewcommand\baselinestretch{1}
+    \footnotesize
+    \interlinepenalty\interfootnotelinepenalty
+    \splittopskip\footnotesep
+    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+    \hsize\columnwidth \@parboxrestore
+   \edef\@currentlabel{\csname p at footnote\endcsname\@thefnmark}\@makefntext
+    {\rule{\z@}{\footnotesep}\ignorespaces
+      #1\strut}\renewcommand\baselinestretch{\@spacing}}}
+
+looks old ...
+fits the structure
+%-------------------------------------
+
+
+% ./ledmac/afoot.sty
+
+fairly old and buggy in some aspects
+
+%%% Make the LaTeX \cs{footnote} catcode-safe, like in Plain TeX.
+
+\def \@footnotetext {%        new, do not yet read footnote text
+  \insert \footins \bgroup
+  \ifx \footglue \undefined %  prepare normal footnote
+    \interlinepenalty \interfootnotelinepenalty \floatingpenalty \@MM
+    \splittopskip \footnotesep \splitmaxdepth \dp \strutbox
+  \else
+    \global\long\def \@makefntext ##1{{$^{\@thefnmark }$}##1\nobreak }%
+    \setbox0=\hbox \bgroup % fnpara.sty is present
+    \floatingpenalty=20000 \footnotesize
+  \fi
+  \edef\@currentlabel{\csname p at footnote\endcsname\@thefnmark}%
+  \a at fntext }
+
+
+%-------------------------------------
+
+
+% ./toptesi/toptesi.sty
+
+
+\long\def\@footnotetext#1{\insert\footins{\linespread{1}\footnotesize
+    \interlinepenalty\interfootnotelinepenalty
+    \splittopskip\footnotesep
+    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+    \hsize\columnwidth \@parboxrestore
+   \edef\@currentlabel{\csname p at footnote\endcsname\@thefnmark}%
+   \@makefntext{\rule{\z@}{\footnotesep}\ignorespaces#1\strut}}}
+
+
+fits the structure
+%-------------------------------------
+
+
+% ./gb4e/gb4e.sty
+
+\let\@gbsaved at footnotetext=\@footnotetext
+\long\def\@footnotetext#1{%
+    \@noftnotefalse\setcounter{fnx}{0}%
+    \@gbsaved at footnotetext{#1}%
+    \@noftnotetrue}
+
+fits the structure
+%-------------------------------------
+
+
+
+% ./koma-script/scrlttr2.cls ./koma-script/scrextend.sty ./koma-script/scrreprt.cls ...
+
+same bug as footmisc: the @prepare is in the wrong place
+
+fits the structure
+%-------------------------------------
+
+
+
+% ./tabu/tabu.sty
+
+not checked what that does
+
+
+%-------------------------------------
+
+
+% ./uwthesis/uwthesis.cls
+
+does chapter notes -- ignore for now
+
+%-------------------------------------
+
+
+% ./tools/multicol.sty
+
+\long\def\mult at footnotetext#1{\begingroup
+         \columnwidth\textwidth
+         \orig at footnotetext{#1}\endgroup}
+
+
+fits the structure, but need to think what makes sense here as this a
+temporary redefinition for the environment only
+
+%-------------------------------------
+
+
+% ./fancyvrb/fancyvrb.sty
+
+\long\def\V at footnotetext{%
+  \afterassignment\V@@footnotetext
+  \let\@tempa}
+\def\V@@footnotetext{%
+  \insert\footins\bgroup
+  \csname reset at font\endcsname
+  \footnotesize
+  \interlinepenalty\interfootnotelinepenalty
+  \splittopskip\footnotesep
+  \splitmaxdepth\dp\strutbox
+  \floatingpenalty \@MM
+  \hsize\columnwidth
+  \@parboxrestore
+  \def\@currentcounter{footnote}%
+  \edef\@currentlabel{\csname p at footnote\endcsname\@thefnmark}%
+  \@makefntext{}%
+  \rule{\z@}{\footnotesep}%
+  \bgroup
+  \aftergroup\V@@@footnotetext
+  \ignorespaces}
+\def\V@@@footnotetext{\strut\egroup}
+
+
+another one of the footnote commands that do not read they argument as an argument
+
+%-------------------------------------
+
+
+% ./savefnmark/savefnmark.sty
+
+obsolete
+
+%-------------------------------------
+
+
+% ./changebar/changebar.sty
+
+\let\ltx at footnotetext\@footnotetext
+\long\def\cb at footnotetext#1{%
+  \cb at trace@stack{end footnote on page \the\c at page}%
+  \cb at pop\cb at currentstack
+  \ifnum\cb at topleft=\cb at nil
+    \ltx at footnotetext{#1}%
+  \else
+    \cb at push\cb at currentstack
+    \edef\cb at temp{\the\cb at curbarwd}%
+    \ltx at footnotetext{\cb at start[\cb at temp]#1\cb at end}%
+  \fi}
+\let\@footnotetext\cb at footnotetext
+
+
+% ./eledmac/eledmac.sty
+
+\apptocmd{\@footnotetext}{\m at mmf@prepare}{}{}
+\pretocmd{\@footnotetext}{%
+  \ifnumberedpar@
+    \edtext{}{\l at dbfnote{#1}}%
+  \else
+  }{}{}
+\apptocmd{\@footnotetext}{\fi}{}{}%
+
+
+% ./yafoot/dblfnote.sty
+
+\long\def\dfn at footnotetext#1{{\setbox\dfn at boxa\vbox{
+        \let\insert\dfn at gobble
+        \columnwidth\DFNcolumnwidth \hbadness\c at DFNsloppiness
+        \def\@makefnmark{\smash{\dfn at makefnmark}}
+        \dfn at latex@footnotetext{#1}\par \boxmaxdepth\dfn at fnmaxdp}%
+        \dfn at dima\ht\dfn at boxa \advance\dfn at dima\dp\dfn at boxa
+        \ifdim\dfn at dima>\z@\else
+                \dfn at dima1sp\relax
+                \setbox\dfn at boxa\vbox{\vbox to1sp{\unvbox\dfn at boxa\vfil}}\fi
+        \global\setbox\dfn at ins\vbox{\boxmaxdepth\dfn at fnmaxdp
+                \ifvoid\dfn at ins\else
+                        \unvbox\dfn at ins \allowbreak \nointerlineskip \fi
+                \ifdfn at allowcbreak \unvbox \else \box \fi \dfn at boxa}%
+        \setbox\dfn at boxa\copy\dfn at ins
+        \dfn at split{.5\ht\dfn at boxa}\dfn at boxa\dfn at boxb\dfn at fnmaxdp\footnotesep
+        \advance\@tempdima\@tempdimb \@tempdimb\@tempdima
+        \advance\@tempdima-\dfn at fnht \global\dfn at fnht\@tempdimb
+        \insert\footins{\floatingpenalty\@MM \vbox to\@tempdima{}}%
+        \xdef\dfn at list{\dfn at list\@elt{\number\dfn at dima}{\number\@tempdima}}}}
+\let\dfn at latex@footnotetext\@footnotetext
+\let\@footnotetext\dfn at footnotetext
+
+
+% ./ftnxtra/ftnxtra.sty
+
+not checked what this does
+
+
+% ./acmart/acmart.cls
+
+\if at ACM@sigchiamode
+\long\def\@footnotetext#1{\marginpar{%
+    \reset at font\small
+    \interlinepenalty\interfootnotelinepenalty
+    \protected at edef\@currentlabel{%
+       \csname p at footnote\endcsname\@thefnmark
+    }%
+    \color at begingroup
+      \@makefntext{%
+        \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+    \color at endgroup}}%
+\fi
+
+
+% ./memoir/memoir.cls
+
+ this needs some further analysis
+


Property changes on: trunk/Master/texmf-dist/doc/latex/latex-lab/usage-of-footnotetext.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/latex-lab/usage-of-kern-kern.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/latex-lab/usage-of-kern-kern.txt	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/latex-lab/usage-of-kern-kern.txt	2022-06-08 20:43:50 UTC (rev 63515)
@@ -0,0 +1,80 @@
+
+      \ifdim\lastkern>\z@\ifdim\lastkern<5sp\relax
+./bxjscls/bxjsja-minimal.def
+
+
+
+    \ifdim\lastkern=-3sp \unkern
+      \ifdim\lastkern=3sp \kern-3sp
+    {\kern\MT at outer@kern\kern3sp\kern-3sp\relax}%
+./microtype/letterspace.sty
+
+
+    \ifdim\lastkern=-3sp \unkern
+      \ifdim\lastkern=3sp \kern-3sp
+    {\kern\MT at outer@kern\kern3sp\kern-3sp\relax}%
+./microtype/microtype-pdftex.def
+
+ 
+    \ifdim\lastkern=-3sp \unkern
+      \ifdim\lastkern=3sp \kern-3sp
+    {\kern\MT at outer@kern\kern3sp\kern-3sp\relax}%
+./microtype/microtype-luatex.def
+
+
+
+\providecommand*{\multiplefootnotemarker}{3sp}
+./eledmac/eledmac.sty
+
+
+
+\providecommand*{\multiplefootnotemarker}{3sp}
+./reledmac/reledmac.sty
+
+
+\edef\CJK at kern{\kern -2sp\kern 2sp}
+\edef\CJK at CJK{\kern -1sp\kern 1sp}
+./cjk/texinput/CJK.sty
+
+
+\edef\ruby at kern{\kern -5sp\kern 5sp}
+./cjk/texinput/ruby.sty
+
+
+%     hyphenation between pinyin syllables. Values 1sp-3sp are already used
+\edef\py at sp{\kern -4sp\kern 4sp}
+./cjk/texinput/pinyin.sty
+
+
+\providecommand*{\multiplefootnotemarker}{3sp}
+./tufte-latex/tufte-common.def
+
+
+
+\newcommand*{\multiplefootnotemarker}{3sp}
+./memoir/memoir.cls
+
+
+\providecommand*{\multiplefootnotemarker}{3sp}
+./parnotes/parnotes.sty
+
+
+\providecommand*{\multiplefootnotemarker}{3sp}
+./lwarp/lwarp-footmisc.sty
+
+
+  \bgroup \kern-3sp\kern3sp % kerns so I can test for beginning of list
+./examdesign/examdesign.cls
+
+
+    \kern-1sp \kern1sp }
+    \kern-2sp \kern2sp }
+    \kern-3sp \kern3sp }
+    \kern-4sp \kern4sp }
+./polyglossia/gloss-korean.ldf
+
+
+
+\NewDocumentCommand \@sidenotes at multisign { } {3sp}
+./sidenotes/sidenotes.sty
+


Property changes on: trunk/Master/texmf-dist/doc/latex/latex-lab/usage-of-kern-kern.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/latex-lab/documentmetadata-support.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/latex-lab/documentmetadata-support.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/latex-lab/documentmetadata-support.dtx	2022-06-08 20:43:50 UTC (rev 63515)
@@ -0,0 +1,418 @@
+% \iffalse meta-comment
+%
+%% File: documentmetadata-support.dtx
+% Copyright (C) 2021-2022 The LaTeX Project
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    https://www.latex-project.org/lppl.txt
+%
+%
+% The development version of the bundle can be found below
+%
+%    https://github.com/latex3/latex2e
+%
+% for those people who are interested or want to report an issue.
+%
+%    \begin{macrocode}
+\def\documentmetadatasupportversion{1.0b}
+\def\documentmetadatasupportdate{2022-14-04}
+%    \end{macrocode}
+%
+%
+%<*driver>
+\documentclass{l3doc}
+\EnableCrossrefs
+\CodelineIndex
+\begin{document}
+  \DocInput{documentmetadata-support.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+%
+%\NewDocElement[macrolike = false ,
+%		 toplevel  = true,
+%                idxtype   =  key  ,
+%                noprint   = true  ,
+%                idxgroup  = metadata keys ,
+%                printtype = \textit{key}
+%               ]{Mkey}{mkey}
+%
+%
+% \title{The \texttt{documentmetadata-support} code\thanks{This file
+%      has version \documentmetadatasupportversion\ dated
+%      \documentmetadatasupportdate,  \copyright\ \LaTeX\
+%    Project.}}
+% \author{Frank Mittelbach, Ulrike Fischer, \LaTeX{} Project}
+%
+% \maketitle
+%
+%
+% \section{Introduction}
+%
+%    The kernel command \cs{DocumentMetadata}, which can be used as
+%    the very first declaration in a document (i.e., before
+%    \cs{documentclass}), defines metadata and other configuration
+%    data that applies to the document as a whole (using a key/value
+%    syntax).
+%
+%    While the underlying functionality is still under
+%    development (e.g., further keys will be added over time and keys
+%    marked temporary may vanish again) the code for
+%    \cs{DocumentMetadata} is place in a separate bundle, so that it
+%    is easier to update it without the need to build a full \LaTeX{}
+%    release. Over time the functionality will move fully into the
+%    kernel.
+%
+%    From a process perspective \cs{DocumentMetadata} loads the
+%    \pkg{pdfmanagement} code the first time it is called and then
+%    redefines itself to only manage key/value pairs in case it is
+%    called more than once. In particular, this means that a document
+%    without a \cs{DocumentMetadata} declaration has no code available
+%    for extended management of PDF output as needed for various
+%    features developed as part of the multi-year ``Tagged PDF''
+%    project~\cite{blueprint}.
+%
+%
+%
+% \section{Currently supported key/values}
+%
+%
+% Currently the following keys are implemented for \cs{DocumentMetadata}:
+% \DescribeMkey{colorprofiles}
+% \DescribeMkey{debug}
+% \DescribeMkey{lang}
+% \DescribeMkey{pdfstandard}
+% \DescribeMkey{pdfversion}
+% \DescribeMkey{testphase}
+% \DescribeMkey{uncompress}
+%
+% \begin{description}
+%    \item[\texttt{backend}] Passes the backend name to expl3. This is
+%      needed only if the needed backend can't be automatically
+%      determined or if the workflow used requires a special backend.
+%
+%^^A    This will probably be extended to  pass the value also to
+%^^A      packages.
+%
+%    \item[\texttt{pdfversion}] Sets the PDF version explicitly, e.g., \texttt{pdfversion=1.7}
+%    \item[\texttt{uncompress}] (no value) Forces an uncompressed pdf
+%      --- mainly for debugging purposes.
+%
+%    \item[\texttt{lang}] Explicitly sets the Lang entry in the Catalog,
+%     e.g., \texttt{lang=de-DE}. If not given the default value used is |en-US|.
+%
+%    \item[\texttt{pdfstandard}] Choice key to set the pdf standard.
+%      Currently |A-1b|, |A-2a|, |A-2b|, |A-2u|, |A-3a|, |A-3b|, |A-3u| and |A-4| are accepted as
+%      values. The casing is irrelevant, |a-1b| works too.
+%      The underlying code to ensure the requirements (as far as they
+%      can be ensured) is still incomplete, but a color profile is included and the
+%      \texttt{/OutputIntent} is set. The |u| variants for example do not force unicode,
+%      but they will pass the information to hyperref and hyperxmp. The |a| variants
+%      do \emph{not} enforce (or even test) a tagged pdf yet. The |A-4| support is
+%      currently incomplete.
+%      More information can be found in the documentation
+%      of \pkg{l3pdfmeta}.
+%
+%    \item[\texttt{colorprofiles}] This allows to load icc-colorprofiles. Details
+%       are described in the documentation of \pkg{l3pdfmeta}.
+%
+%    \item[\texttt{testphase}] This key is used to load testphase code. The values it accepts
+%    and their effect will change over time, when testphase packages are added or
+%    removed or when the code is moved into the kernel.
+%     \begin{description}
+%    \item[\texttt{phase-I}]
+%       This value loads code implementing the first phase of the project~\cite{blueprint}, i.e., it
+%       will load the tagpdf package. It will also activate tagging by issuing
+%       |\tagpdfsetup{activate,interwordspace}|. This phase
+%       is frozen.
+%    \item[\texttt{phase-II}]
+%       This is the current development phase.
+%       Currently it differs from \texttt{phase-I} only in one point: It will
+%       additionally activate tagging of paragraphs with
+%       |\tagpdfsetup{paratagging}|. In the upcoming months it will
+%       also enable automatic tagging of other basic document elements.
+%    \end{description}
+%    The |testphase| key can only be used in the first \cs{DocumentMetadata}.
+%
+%    \item[\texttt{debug}] This key activates some debug options. It takes a list of key-values
+%    as value. Currently the following keys are known:
+%     \begin{description}
+%     \item[\texttt{para}] with the default and only value |show|. It will activate the |paratagging-show|
+%       option of \pkg{tagpdf},
+%     \item[\texttt{log}]  with the values as described in the documentation \pkg{tagpdf},
+%     \item[\texttt{uncompress}] which does the same as |uncompress| as main key
+%     \item[\texttt{pdfmanagement}] a boolean which allows to deactivate the pdfmanagement.
+%     \item[\texttt{firstaidoff}] This accepts a comma lists of keywords and disables the patches
+%       related to them. More information can be found in the documentation of
+%       \pkg{pdfmanagement-firstaid}.
+%    \end{description}
+% \end{description}
+%
+% \bibliographystyle{plain}
+%
+% \begin{thebibliography}{9}
+%
+% \bibitem{blueprint} Frank Mittelbach and Chris Rowley:
+%   \emph{\LaTeX{} Tagged PDF\,---\,A blueprint for a large project}.
+%   \url{https://latex-project.org/publications/indexbyyear/2020/}
+%
+% \end{thebibliography}
+%
+%
+%
+% \MaybeStop{\setlength\IndexMin{200pt}  \PrintIndex  }
+%
+% \begin{implementation}
+%
+% \section{The Implementation}
+%
+%
+%    \begin{macrocode}
+%<@@=pdfmanagement>
+%<*code>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+
+\RequirePackage{pdfmanagement-testphase}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\ExplSyntaxOn\makeatletter
+%    \end{macrocode}
+
+
+
+%  \begin{macro}{\DocumentMetadata}
+%
+%    \cs{DocumentMetadata} should not be used after
+%    \cs{documentclass} so we error in this case.
+%    It can be used more than once
+%     but follow-up calls should not do the initialization code.
+%    \begin{macrocode}
+\cs_set_protected:Npn \DocumentMetadata #1
+  {
+    \cs_if_eq:NNTF \documentclass \@twoclasseserror
+      { \msg_error:nn { meta } { after-class } }
+      {
+%    \end{macrocode}
+%
+%    The wanted backend must be detected first, we read the init
+%    key and then force the loading of the backend.
+%    The backend can contain management commands, so the boolean should
+%    be set to true first.
+%    \begin{macrocode}
+        \bool_gset_true:N \g_@@_active_bool
+        \keys_set_groups:nnn { document / metadata} {init}{ #1 }
+        %if no backend has been loaded force it now:
+        \str_if_exist:NF \c_sys_backend_str
+          {
+            \sys_load_backend:n {}
+          }
+%    \end{macrocode}
+%    Now we load the extra backend code:
+%    \begin{macrocode}
+        \ExplSyntaxOn\makeatletter
+          \file_input:n {l3backend-testphase-\c_sys_backend_str.def}
+        \ExplSyntaxOff\makeatother
+%    \end{macrocode}
+%    Set the default language (this requires that the backend has been loaded),
+%    process the rest of the keys,
+%    and setup the generic driver.
+%    \begin{macrocode}
+        \keys_set_filter:nnn  { document / metadata } { init } { lang=en-US, #1 }
+        \bool_if:NT \g_@@_active_bool
+          {
+            \PassOptionsToPackage{customdriver=hgeneric-testphase}{hyperref}
+          }
+%    \end{macrocode}
+%    \cs{pdfmanagement_add:nnn} has collected values in this hook.
+%    \begin{macrocode}
+        \hook_use_once:n {pdfmanagement/add}
+%    \end{macrocode}
+%    Now we redefine \cs{DocumentMetadata} so that it only process the
+%    keys on any further calls.
+%
+%     We need to update the hyperref option if the active status changes.
+%    \begin{macrocode}
+        \cs_set_protected:Npn \DocumentMetadata ##1
+          {
+            \keys_set_filter:nnn  { document / metadata } { init } { ##1 }
+            \str_remove_all:cn {opt at hyperref.sty}{customdriver=hgeneric-testphase}
+            \bool_if:NT \g__pdfmanagement_active_bool
+             {
+               \PassOptionsToPackage{customdriver=hgeneric-testphase}{hyperref}
+             }
+          }
+%    \end{macrocode}
+% Load more modules, the testphase code and the firstaid code. The code is only
+% loaded in the first \cs{DocumentMetadata} call!
+%    \begin{macrocode}
+        \g_@@_testphase_tl
+        \RequirePackage{pdfmanagement-firstaid}
+      }
+  }
+%    \end{macrocode}
+%  \end{macro}
+
+
+
+
+%    \begin{macrocode}
+%FMi defined elsewhere
+%FMi
+%FMi \clist_new:N \g_@@_firstaidoff_clist
+%FMi \tl_new:N \g_@@_testphase_tl
+% UFi should the definition move to here?
+\keys_define:nn { document / metadata }
+  {
+    backend .choices:nn =
+      { dvipdfmx , dvips , dvisvgm , luatex , pdftex , pdfmode , xdvipdfmx , xetex }
+      {
+        \sys_load_backend:n {#1}
+      },
+    backend .groups:n = { init } ,
+  }
+
+\keys_define:nn { document / metadata }
+  {
+    ,pdfversion .code:n =
+      {
+        \pdf_version_gset:n { #1 }
+        \AddToDocumentProperties[document]{pdfversion}{#1}
+      }
+    ,uncompress .code:n =
+      {
+        \pdf_uncompress:
+      }
+    ,uncompress .value_forbidden:n = true
+    ,lang .code:n =
+      {
+        \pdfmanagement_add:nnn {Catalog} {Lang}{(#1)}
+        \AddToDocumentProperties[document]{lang}{#1}
+      }
+    %,xmpmeta .bool_gset:N = \g_pdfmeta_xmp_bool %see pdfmeta unused and undefined for now!
+    % this uses internal command from pdfmeta, it should probably move there ...
+    ,pdfstandard .code:n =
+      {
+        \exp_args:Nnx
+        \keys_set:nn {document / metadata} {_pdfstandard=\str_uppercase:n{#1}}
+      }
+    ,_pdfstandard .choices:nn =
+      {A-1B,A-2A,A-2B,A-2U,A-3A,A-3B,A-3U,A-4}
+      {
+        \prop_if_exist:cT { g__pdfmeta_standard_pdf/#1_prop }
+          {
+            \prop_gset_eq:Nc \g__pdfmeta_standard_prop { g__pdfmeta_standard_pdf/#1 _prop }
+          }
+        \AddToDocumentProperties [document]{pdfstandard}{#1}
+      }
+    ,_pdfstandard / unknown .code:n =
+      {
+        \msg_warning:nnn{pdf}{unknown-standard}{#1}
+      }
+    ,testphase .multichoice:
+    ,testphase / tagpdf .code:n =
+      {
+        \tl_gput_right:Nn\g_@@_testphase_tl
+          {
+            \file_if_exist_input:nF {tagpdf-latex-lab-testphase.ltx}
+              {
+                \RequirePackage{tagpdf}
+                \AddToDocumentProperties [document]{testphase/tagpdf}{loaded}
+                \tagpdfsetup{activate,paratagging,interwordspace}
+                \AddToDocumentProperties [document]{tagging}{active}
+                \AddToDocumentProperties [document]{tagging/para}{active}
+                \AddToDocumentProperties [document]{tagging/interwordspace}{active}
+              }
+          }
+      }
+    ,testphase / unknown .code:n =
+      {
+        \tl_gput_right:Nn\g_@@_testphase_tl
+           {
+             \AddToDocumentProperties [document]{testphase/#1}{loaded}
+             \file_if_exist_input:nF {#1-latex-lab-testphase.ltx}
+              {
+                 \msg_warning:nnn{meta}{latex-lab-pkg-missing}{#1}
+                 \AddToDocumentProperties [document]{testphase/#1}{missing}
+              }
+           }
+      }
+    ,activate .multichoice:
+    ,activate / tagging .code:n =
+      {
+        \PackageWarning{pdfmanagement-testphase}
+         {The~activate~key~is~deprecated.\MessageBreak
+          Tagging~is~activated~with~'testphase=tagpdf'~directly}{}
+      }
+    ,debug .code:n =
+      {
+        \keys_set:nn { document / metadata / debug } {#1}
+      }
+    ,debug / para .code:n =
+      {
+        \AddToHook
+          {
+            package/tagpdf/after
+          }
+          {
+             \tagpdfsetup{paratagging-show}
+          }
+      }
+    ,debug / log .code:n =
+      {
+        \AddToHook
+          {
+           package/tagpdf/after
+          }
+          {
+             \tagpdfsetup{log=#1}
+          }
+      }
+    ,debug / uncompress .code:n =
+      {
+        \pdf_uncompress:
+      }
+    ,debug / pdfmanagement .bool_gset:N = \g_@@_active_bool
+    ,debug / firstaidoff .clist_gset:N = \g_@@_firstaidoff_clist
+  }
+
+
+%    \end{macrocode}
+% \subsection{Messages}
+%    \begin{macrocode}
+%UFi is meta the right module name here?
+\prop_gput:Nnn \g_msg_module_type_prop { meta } { LaTeX }
+\prop_gput:Nnn \g_msg_module_name_prop { meta } { DocumentMetadata }
+
+\msg_new:nnn { meta } { after-class }
+             {
+                \token_to_str:N \DocumentMetadata \c_space_tl
+                should~be~used~only~before~\token_to_str:N\documentclass
+             }
+\msg_new:nnn { meta } { latex-lab-pkg-missing }
+             {
+               LaTeX-lab~package~'#1'~not~found.
+              }
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\ExplSyntaxOff\makeatother
+%    \end{macrocode}
+%
+%
+%    \begin{macrocode}
+%</code>
+%    \end{macrocode}
+%
+% \end{implementation}
+%
+% \Finale
+%


Property changes on: trunk/Master/texmf-dist/source/latex/latex-lab/documentmetadata-support.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/latex-lab/latex-lab-footnotes.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/latex-lab/latex-lab-footnotes.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/latex-lab/latex-lab-footnotes.dtx	2022-06-08 20:43:50 UTC (rev 63515)
@@ -0,0 +1,1822 @@
+% \iffalse meta-comment
+%
+%% File: latex-lab-footnotes.dtx
+% Copyright (C) 2022 The LaTeX Project
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    https://www.latex-project.org/lppl.txt
+%
+%
+% The development version of the bundle can be found below
+%
+%    https://github.com/latex3/latex2e/required/latex-lab
+%
+% for those people who are interested or want to report an issue.
+%
+%<*driver>
+\documentclass{l3doc}
+\EnableCrossrefs
+\CodelineIndex
+\begin{document}
+  \DocInput{latex-lab-footnotes.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+%
+% \title{The \texttt{latex-lab-footnotes} code\thanks{}}
+% \author{Frank Mittelbach, \LaTeX{} Project}
+%
+% \maketitle
+%
+% \newcommand\fmi[1]{\begin{quote} TODO: \itshape #1\end{quote}}
+% \newcommand\NEW[1]{\marginpar{\mbox{}\hfill\fbox{New: #1}}}
+% \providecommand\class[1]{\texttt{#1.cls}}
+% \providecommand\pkg[1]{\texttt{#1}}
+% \providecommand\hook[1]{\texttt{#1}}
+%
+% \begin{abstract}
+%   \emph{to be written}
+% \end{abstract}
+%
+% \tableofcontents
+%
+%
+% \section{Introduction}
+%
+%    This code reimplements the footnote interfaces for \LaTeX{}
+%    offering configurable methods for layout and functionality
+%    adjustments that avoid overwriting each other when used in
+%    classes as well as in packages (as far as possible --- obviously
+%    some adjustments are mutally exclusive). This is achieved by
+%    providing a a larger number of hooks (for areas where different
+%    packages/classes can easily coexist with their adjustments) and a
+%    number of configuration points to which only one class or package
+%    can write to successfully (in case of multiple changes the the
+%    last one wins). The latter are for special functionality, e.g.,
+%    if footnote text is typeset as a single paragraph, it can't be configured
+%    the same time to be typeset vertically with one footnote below
+%    each other.
+%
+%    The interfaces are  set up to support tagged PDF, but in order
+%    for this to work, all packages altering the fontnote setup should
+%    use the inferfaces provided here and not do it through the
+%    legacy methods (though there is some support for the latter as
+%    well, but if will not work in a cases).
+%
+% \subsection{Configuration methods}
+%
+%    Historically, the footnote setup in \LaTeX{} was done by
+%    providing definitions for \cs{@makefnmark} (format the footnote
+%    mark in running text and in front of the footnote text) and
+%    \cs{@makefntext} (formatting the footnote text and placing a mark
+%    in front of it).
+%
+%    There was a default definition for \cs{@makefnmark} in the format
+%    that was used by most document classes,
+%    but \cs{@makefntext} had to be defined in the class itself because
+%    the format didn't provide a default. As a result you will find
+%    definitions for the latter in all document classes and defintions
+%    for \cs{@makefnmark} only in very few.
+%
+%    Furthermore, to enable special footnote layouts or provide
+%    additional functionality a few packages (and a few classes)
+%    overwrote other internal commands of \LaTeX's footnote
+%    mechanism. The commands affected in this way are mainly
+%    \cs{@footnotemark} and \cs{@footnotetext}. These overwrites could
+%    not be used in combination, so either the packages/classes had to
+%    be aware of being loaded together (which they sometimes did or
+%    tried to) or they would fail by overwriting each other
+%    unconditionally.
+%
+%    The present rewrite is an attempt to improve this situation, but
+%    of course, it will only work if all packages/classes make use of
+%    the new interfaces. Fortunately, the number of problematical
+%    packages altering these internal commands are fairly small so
+%    arranging for updates is a realistic goal --- to achieve properly
+%    tagged PDF it is a requirement.
+%
+%
+%
+% \section{Hooks and configuration points}
+%
+%    Note: the configuration points do not have an interface mechanism
+%    yet and all their names are temporary right now.
+%    Also note that configuration points are of interest only to very
+%    few specialized packages, mainly \pkg{footmisc}, and packages
+%    providing similar functionality---the current documentation is
+%    therefore fairly sketchy.
+%
+%    In contrast the hooks are of interest to many classes to provide
+%    their layout alterations in a way that it works smoothly with
+%    other packages handling aspects of foonote formatting.
+%
+%
+% \subsection{Formatting the mark in the main text}
+%
+%    This implements formatting the mark\footnote{Like this one.} and
+%    its relation to surrounding text, e.g., if several marks appear
+%    in the same place, etc.
+%
+%
+% \subsubsection{Configuration points}
+%
+%    None: everything is implemented through a single definition for
+%    \cs{@footnotemark} that offers a number of hooks that can be used
+%    by packages to implement handling of multiple marks and the
+%    formatting of marks.
+%
+%
+% \subsubsection{Hooks}
+%
+%    The hooks to customize the marks in the text are the following:
+%    \begin{description}
+%    \item[\hook{fnmark/before}]
+%
+%      Executed at the very beginning of \cs{footnotemark}. Currently
+%      there are two packages (\pkg{bibarts} and \pkg{chextras}) that
+%      prepend material at this point (not ncessarily correctly, e.g.,
+%      they do not all check that they are in horizontal mode).
+%
+%      This hook is paired with hook \hook{fnmark/after}.
+%
+%    \item[\hook{fnmark}]
+%
+%      Executed in horizontal mode and after the current space factor
+%      has been saved away for reuse. This is where currently code for multiple
+%      marks does its preparation (as done by \pkg{footmisc} and
+%      others).
+%
+%      The hook is only executed in hmode, i.e., not if the mark is
+%      generated in math --- maybe that means the multiple handling
+%      should happen later?
+%
+%      After the hook \cs{nobreak} is executed, so any
+%      ``material'' added in the hook is tied to the following mark
+%      unless it contains its own permissible penalty.
+%
+%    \item[\hook{fnmark/begin}]
+%
+%      This hook is executed directly in front of the typeset mark.
+%      This is the place where \pkg{hyperref} adds part of its code,
+%      i.e., after the \cs{nobreak} mentioned above. With a closer
+%      integration of \pkg{hyperref} this hook may not be necessary at
+%      all.
+%
+%    \item[\hook{fnmark/end}]
+%
+%      This hook is executed directly after the typeset mark. It is
+%      used by \pkg{hyperref}, \pkg{memhfixc}, \pkg{scrlttr2}, and
+%      \pkg{footmisc}. Used, for example, to implement support for
+%      multiple marks in succession.
+%
+%      It is \emph{not} a reversed hook.
+%
+%
+%    \item[\hook{fnmark/after}]
+%
+%      This hook is executed at the very end of the \cs{footnotemark} command.
+%
+%      It is a reversed  hook to pair with \hook{fnmark/before}
+%    \end{description}
+%
+%
+%
+%
+% \subsubsection{Additional configuration possibilities}
+%
+%    The actual formatting is done through \cs{@makefnmark} --- no
+%    special customization support for now.
+%
+%
+%
+% \subsection{Formatting the footnote text}
+%
+%    This implements the formatting of the footnote text the way it
+%    appears at the bottom of the page (default case), or possibly
+%    elsewhere, e.g. in the margin.
+%
+% \subsubsection{Configuration points}
+%
+%    To cater for different layout configurations there are four
+%    configuration points which can be set only by one package or
+%    class, if two packages/classes set them they are mutually
+%    incompatible.
+%    These are:
+%    \begin{description}
+%    \item[\cs{@footnotetext at cfgpoint} (1 argument)]
+%
+%      This receives all material that is to be processed (or stored)
+%      including color protection code and what have you.  The default
+%      definition is to run \cs{insert}\cs{footins}.
+%
+%    \item[\cs{@footnotetext at cfgpointii}  (1 argument)]
+%
+%      The default definition runs \cs{@makefntext} which contains
+%      various hooks for customization. For most scenarios this is
+%      sufficient. However, when running all footnotes as a single
+%      paragraph at the bottom, then each footnote needs to be
+%      prepared prior to storing in the insert and this configuration
+%      point allows running extra code to do that.
+%
+%    \item[\cs{@footnotetext at cfgpointiii} (no argument)]
+%
+%      By default this configuration point adds a strut to the
+%      footnote material. so that consecutive footnotes are properly
+%      spaced vertically. In some use cases this is not appropriate
+%      (e.g., when running all footnotes s a single paragraph) and so
+%      this configuration point can cancel the action or do something
+%      else instead.
+%
+%      The configuration point is executed near the start of the
+%      argument for the configuration point
+%      \cs{@footnotetext at cfgpointii}.
+%
+%    \item[\cs{@footnotetext at cfgpointiv} (no argument)]
+%
+%      This configuration point is executed at the very end of the
+%      argument passed to  \cs{@footnotetext at cfgpointii}.
+%      By default it adds a final strut as long as we are still in
+%      horizontal mode (i.e., processing the footnote text paragraph.
+%      When running several footnotes in one paragraph some additional
+%      material (some horizontal glue) needs adding at this point.
+%
+%    \end{description}
+%    The configuration point \cs{@footnotetext at cfgpointii} runs
+%    \cs{@makefntext} and this command contains two further
+%    configuration points (and a few hooks):
+%    \begin{description}
+%    \item[\cs{@makefntext at cfgpoint} (1 argument)]
+%
+%      This configuration point receives the material to typeset the
+%      footnote mark. By default, all it does is running \cs{indent}
+%      to get a paragraph indentation (if one is set up---in most
+%      layouts it is 0~points)  and then typesets the mark, but in
+%      some designs it executes more elaborate code.
+%
+%      If tagging is produced this configuration point is also
+%      responsible for surrounding the mark with the appropriate tags
+%      marking the mark as an Lbl. It does this using the command \cs{tag at FELbl}.
+%
+%    \item[\cs{@makefntext at cfgpointii} (1 argument)]
+%
+%      This configuration point manages the formatting of the footnote
+%      text once the mark has been typeset. 
+%
+%      If tagging is produced this configuration point is also
+%      responsible for surrounding the mark with the appropriate tags
+%      marking the mark as an MC of type FENote. It does this using
+%      the command \cs{tag at FENote}.
+%
+%    \end{description}
+%
+%
+%    The above configuration points are sufficient to implement all
+%    commonly used footnote layouts assuming L-R typesetting. For R-L
+%    typesetting they or may or may not need some extension (though
+%    that is not clear right now).
+%
+%
+%
+% \subsubsection{Hooks}
+%
+%    \begin{description}
+%    \item[\hook{fntext/before}]
+%
+%      Executed at the very beginning of \cs{footnotetext}. Currently
+%      there is on package (\pkg{linguex}) that
+%      prepends material at this point.
+%
+%      This hook is paired with hook \hook{fnmark/after}.
+%
+%    \item[\hook{fntext}]
+%
+%      Executed at the beginning of the material passed to the first
+%      configuration point.  Typically used to set any baseline
+%      stretch for the footnote text, e.g., by \pkg{setspace},
+%      \pkg{footmisc}, \class{uathesis} and others. Could be done in a
+%      later hook but is a bit more efficient here.
+%
+%      After the hook has run, the font is established, i.e., it can't
+%      be used to set a different font size.
+%
+%    \item[\hook{fntext/para}]
+%
+%      After the font is set default paragraph parameters are set up
+%      including \cs{interlinepenalty}, \cs{hsize}, \cs{parindent} and
+%      a number of others, as some of them depend on the font
+%      size. Then the \hook{fntext/para} is run. If one wants to
+%      change the font size, it is probably necessary to reset these
+%      other parameters too, e.g., \cs{parindent}, which can be done
+%      here.
+%
+%      The configuration point \cs{@footnotetext at cfgpointii} normally
+%      runs the command \cs{@makefntext} or some code that eventually
+%      runs this command, and this then produces the footnote mark (in
+%      front of the footnote text) and the formatted footnote text. In
+%      front of both the mark and the footnote text some classes have
+%      placed paragraph parameter adjustments in their redefinition of
+%      \cs{@makefntext}. However, there is no need to place it there
+%      it could equally well go into the \hook{fntext/para} hook. We
+%      therefore do not provide another hook at this point.
+%
+%    \item[\hook{fntext/begin} \& \hook{fntext/end}]
+%
+%      The footnote text itself is surrounded by the hooks
+%      \hook{fntext/begin} and \hook{fntext/end}. The two hooks are
+%      not paired as they are typically used independently.
+%
+%    \item[\hook{fntext/after}]
+%
+%      At the very end of \cs{footnotetext} we execute the hook
+%      \hook{fntext/after} which is a reversed hook paired with
+%      \hook{fntext/before}. Some packages, e.g., \pkg{linuex}, have
+%      code in that position.
+%
+%    \end{description}
+%
+%
+%
+%
+% \subsubsection{Additional configuration possibilities}
+%
+%    The formatting of the footnote mark in front of the footnote
+%    texts is influenced by the setting of the dimen parameter
+%    \cs{footnotemargin}. By default its value is 1.8em in the current
+%    text font (or \texttt{-}\cs{maxdimen} when the para option is
+%    chosen). The following rules apply:
+%    \begin{itemize}
+%    \item
+%
+%      If it has the value \texttt{-}\cs{maxdimen} then the mark is
+%      generated by \cs{@makefnmark}.
+%
+%    \item
+%
+%      Otherwise, if the value is
+%      negative then the mark is placed into an \cs{llap} left aligned
+%      in a box of size \texttt{-}\cs{footnotemargin}.
+%
+%    \item
+%
+%      If the value is zero an \cs{llap} is used without an inner box.
+%
+%    \item
+%
+%      If the value is greater zero (but less than \cs{maxdimen}) the
+%      mark is placed right aligned into a box of size
+%      \cs{footnotemargin}.
+%
+%    \item
+%
+%      The value \cs{maxdimen} is used as a marker to indicate that
+%      no value was given and that the default should be used,
+%      i.e. 1.8em or \texttt{-}\cs{maxdimen} depending on the chosen
+%      option.
+%    \end{itemize}
+%
+%
+% \section{Tagging support}
+%
+%  \emph{To be documented}
+%
+%
+%
+%
+% \MaybeStop{\setlength\IndexMin{200pt}  \PrintIndex  }
+%
+%
+% \section{The Implementation}
+%
+%    All this is very rough and misses a lot of documentation.
+%
+%    \begin{macrocode}
+%<*kernel>
+%<@@=fnote>
+%    \end{macrocode}
+%
+% \subsection{File declaration}
+%    \begin{macrocode}
+\ProvidesFile{latex-lab-footnotes.ltx}
+        [2022-03-10 v0.6a changes to the footnote interfaces]
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+
+% latex.ltx
+
+        % not looked at yet
+
+\long\def\@mpfootnotetext#1{%
+  \global\setbox\@mpfootins\vbox{%
+    \unvbox\@mpfootins
+    \reset at font\footnotesize
+    \hsize\columnwidth
+    \@parboxrestore
+    \def\@currentcounter{mpfootnote}%
+    \protected at edef\@currentlabel
+         {\csname p at mpfootnote\endcsname\@thefnmark}%
+    \color at begingroup
+      \@makefntext{%
+        \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+    \par
+    \color at endgroup}}
+
+
+\def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}
+
+
+
+\def\@mpfn{footnote}
+\def\thempfn{\thefootnote}
+
+
+
+%-------------------------------------
+
+
+\ExplSyntaxOn
+
+
+\cs_new_protected:Npn \fnote_step_fnmark:nn #1#2 {
+  \tl_if_novalue:nTF {#1}
+    {
+      \stepcounter {#2}
+      \protected at xdef \@thefnmark { \use:c { the#2 } }
+    }
+    {
+     \group_begin:
+%    \end{macrocode}
+%    Note that this is a local assignment even though \LaTeX{}
+%    counters are normally globally changed. This is the way it was in
+%    2e and so far we haven't changed it. The alternative would be to
+%    store the current value and restore it after \cs{@thefnmark} is
+%    altered.
+%    \begin{macrocode}
+        \int_set:cn { c@#2 }{ #1 }
+        \unrestored at protected@xdef \@thefnmark { \use:c { the#2 } }
+     \group_end:
+    }
+}
+
+\cs_new_protected:Npn \fnote_set_fnmark:nn #1#2 {
+  \tl_if_novalue:nTF {#1}
+    {
+      \protected at xdef \@thefnmark { \use:c { the#2 } }
+    }
+    {
+     \group_begin:
+        \int_set:cn { c@#2 }{ #1 }
+        \unrestored at protected@xdef \@thefnmark { \use:c { the#2 } }
+     \group_end:
+    }
+}
+
+%-------------------------------------
+
+% the debugging code is just temp
+\bool_new:N \g_fnote_debug_bool
+\bool_gset_true:N  \g_fnote_debug_bool   % for now we have debugging turned on by default
+
+%-------------------------------------
+
+
+
+\NewMirroredHookPair{fnmark/before}{fnmark/after}
+\NewHook{fnmark}
+\NewHook{fnmark/begin}
+\NewHook{fnmark/end}
+
+
+\cs_new:Npn \@@_debug_footnotemark: {
+  \bool_if:NT \g_fnote_debug_bool
+       {
+         \LogHook{fnmark/before}
+         \LogHook{fnmark}
+         \LogHook{fnmark/begin}
+         \LogHook{fnmark/end}
+         \LogHook{fnmark/after}
+         \cs_gset_eq:NN \@@_debug_footnotemark: \prg_do_nothing:
+       }
+}
+
+
+\cs_new_protected:Npn \fnote_footnotemark: {
+  \@@_debug_footnotemark:
+%-------
+% bibarts
+% chextras  --- actually in the wrong place does an \unskip
+  \UseHook{fnmark/before}
+%-------
+  \leavevmode
+  \ifhmode
+    \edef\@x at sf{\the\spacefactor}
+%-------
+% bxjsja-minimal.def   --- what they do could be done at ``bibarts''
+%                         (a bit less efficient)
+% memhfixc.sty
+% footmisc.sty
+    \UseHook{fnmark}
+%-------
+    \nobreak
+  \fi
+%-------
+% hyperref.sty
+  \UseHook{fnmark/begin}
+%-------
+  \@kernel at process@makefnmark
+     \@makefnmark
+%-------
+%    \end{macrocode}
+%    If a footnote mark is placed by its own then it should finish by
+%    executing \hook{fnmark/end}, resetting the space  factor, and
+%    finishing with \hook{fnmark/after}. However, inf a complete
+%    footnote these actions have to happen only after we have handled
+%    the footnote text (e.g., by placing it into an \cs{insert}. In
+%    such a situation \cs{_@@_footmark_finish:} below does nothing
+%    and the action is carried out later.
+%    \begin{macrocode}
+  \@@_footnotemark_finish:
+}
+
+
+\cs_new:Npn \@@_finish: {
+% hyperref.sty
+% memhfixc.sty  --- could move fnmark/after
+% scrlttr2.cls  --- could vanish if footmisc uses a hook
+% footmisc.sty
+  \UseHook{fnmark/end}
+%-------
+  \ifhmode
+    \spacefactor \@x at sf \relax
+  \fi
+%
+%-------
+  \UseHook{fnmark/after}
+%-------
+}
+
+
+\cs_new_eq:NN \@@_footnotemark_finish: \@@_finish:
+
+
+  
+% Not a public config point but the kernel hook to add tagging
+\def \@kernel at process@makefnmark { }
+
+
+% alterations not covered:
+%
+% ./arabtex/afoot.sty  --- too different (and probably too old)
+
+
+% Provide the name \LaTeXe{} is used to.
+
+\cs_set_eq:NN  \@footnotemark \fnote_footnotemark:
+
+
+
+%-------------------------------------
+
+\NewMirroredHookPair{fntext/before}{fntext/after}
+\NewHook{fntext}
+\NewHook{fntext/para}
+\NewHook{fntext/begin}
+\NewHook{fntext/end}
+
+
+\cs_new:Npn \@@_debug_footnotetext: {
+  \bool_if:NT \g_fnote_debug_bool
+       {
+         \cs_log:N\@footnotetext at cfgpoint
+         \cs_log:N\@footnotetext at cfgpointii
+         \cs_log:N\@footnotetext at cfgpointiii
+         \cs_log:N\@footnotetext at cfgpointiv
+         \cs_log:N\@makefntext at cfgpoint
+         \cs_log:N\@makefntext at cfgpointii
+         \LogHook{fntext/before}
+         \LogHook{fntext}
+         \LogHook{fntext/para}
+         \LogHook{fntext/begin}
+         \LogHook{fntext/end}
+         \LogHook{fntext/after}
+%    \end{macrocode}
+%    Show the info only once (if at all).
+%    \begin{macrocode}
+         \cs_gset_eq:NN \@@_debug_footnotetext: \prg_do_nothing:
+       }
+  }
+
+\cs_new_protected:Npn \fnote_footnotetext:n #1 {
+  \@@_debug_footnotetext:
+%-------
+% ./linguex/linguex.sty
+  \UseHook{fntext/before}
+%-------
+  \@kernel at process@footnotetext
+  \@footnotetext at cfgpoint {  % config point
+%-------
+% resetting baselinestretch ... (could be done further down)
+% ./uafthesis/uafthesis.cls
+% ./setspace/setspace.sty
+% ./footmisc/footmisc.sty (normal)
+    \UseHook{fntext}
+%-------
+    \reset at font
+    \footnotesize
+%-------
+% some classes use a different font size, e.g.,
+% ./nrc/nrc1.cls  ./nrc/nrc2.cls
+% but those could be done in fntext/para instead
+%-------
+%    \end{macrocode}
+%    In case of sidenotes the next settings are pointless, but as they
+%    do not hurt (except for the \cs{hsize} setting) and are needed
+%    for all other cases we make them here and overwrite them for side notes
+%    \begin{macrocode}
+    \interlinepenalty\interfootnotelinepenalty
+    \splittopskip\footnotesep
+    \splitmaxdepth \dp\strutbox
+    \floatingpenalty \@MM
+    \hsize\columnwidth
+    \@parboxrestore
+    \parindent 1em     % typical default used in \@makefntext moved up here
+    \def\@currentcounter{footnote}
+    \protected at edef \@currentlabel { \p at footnote \@thefnmark }
+%-------
+% for altering para parameters ...
+% code for resphilosophica came earlier but it could go here.
+% Has the advantage that one can also overwrite \cs{@currentcounter}
+% and \cs{@currentlabel} is that is necessary.
+%
+% ./resphilosophica/resphilosophica.cls
+    \UseHook{fntext/para}
+%-------
+    \color at begingroup
+%-------
+% fnpara wants to replace \@makefntext{...} and para and side option of footmisc etc too ...
+% so we make this a config point
+%-------
+      \@footnotetext at cfgpointii       % config point
+        {
+%-------
+% ./resphilosophica/resphilosophica.cls
+%-------
+          \@footnotetext at cfgpointiii  % config point
+%-------
+% bibarts
+% fnbreak.sty
+          \UseHook{fntext/begin}
+%-------
+          \ignorespaces
+          #1
+%-------
+% bibarts
+% fnbreak.sty
+          \UseHook{fntext/end}
+%-------
+          \@footnotetext at cfgpointiv   % config point
+        }
+      \par
+    \color at endgroup
+  }
+%-------
+% ./linguex/linguex.sty
+  \UseHook{fntext/after}
+%-------
+}
+
+% default for config point (1 arg)
+\cs_new_protected:Npn \@footnotetext at cfgpoint    { \insert\footins }
+
+% default for config point (1 arg)
+\cs_new_protected:Npn \@footnotetext at cfgpointii  { \@makefntext }
+
+
+% default for config point (0 args)
+\cs_new_protected:Npn \@footnotetext at cfgpointiii { \rule\z@\footnotesep }
+
+% default for config point (0 args)
+\cs_new_protected:Npn \@footnotetext at cfgpointiv  { \@finalstrut\strutbox }
+
+
+% kernel hook for tagging (2 args)
+\cs_new_protected:Npn \@kernel at process@footnotetext {}
+
+% Provide the name \LaTeXe{} is used to and do this unconditionally
+%   (no patching of class code if any). This means that if a class provides it own
+%    definition that gets lost and if necessary needs to be handled
+%    with firstaid (or updating of the class.
+
+\AddToHook{begindocument}{
+  \cs_set_eq:NN \@footnotetext \fnote_footnotetext:n
+}
+
+% alterations not covered:
+%
+% ./revtex4-1/revtex4-1.cls  ./revtex/ltxutil.sty ./revtex/revtex4-2.cls ... (need analysis)
+% ./bigfoot/bigfoot.sty
+
+
+
+% \footnotemargin is the logic implemented by footmisc. Perhaps we
+% don't want to do this like that in the kernel but for now I have
+% used this interface unchanged.
+
+
+\newdimen\footnotemargin
+\footnotemargin\maxdimen         % no value given
+
+\AtBeginDocument{
+  \ifdim \footnotemargin=\maxdimen
+    \setlength\footnotemargin{1.8em}
+  \fi
+}     
+
+
+\cs_new_protected:Npn \fnote_makefntext:n #1 {
+%    \end{macrocode}
+%    Some classes in their redefinition for \cs{@makefntext} have
+%    places some paragraph parameters at this point, but those can
+%    equally well go into the hook \hook{fntext/para}. We therefore do
+%    not provide a further hook at this point.
+%    \begin{macrocode}
+  \@makefntext at cfgpoint
+      {
+        \ifdim\footnotemargin>\z@
+          \hb at xt@ \footnotemargin{\hss\@makefnmark}
+        \else
+          \ifdim\footnotemargin=\z@
+            \llap{\@makefnmark}
+          \else
+          \ifdim\footnotemargin=-\maxdimen
+               \@makefnmark
+            \else
+               \llap{\hb at xt@ -\footnotemargin{\@makefnmark\hss}}
+            \fi
+          \fi
+        \fi
+      }
+  \@makefntext at cfgpointii
+      { #1 }
+}
+
+
+
+
+% default for config point (1 arg)
+\cs_new_protected:Npn \@makefntext at cfgpoint { \noindent }
+
+% default for config point (1 arg)
+\cs_new_protected:Npn \@makefntext at cfgpointii #1 { #1 }
+%    \end{macrocode}
+%
+%
+%
+%    If the definition for \cs{@makefntext} is that of the standard
+%    classes then replace it with \cs{fnote_makefntext:n}, otherwise
+%    try to patch the definition.
+%
+%    Here is the the definition the way it is in
+%    \texttt{classes.dtx}. Notice that (for saving space) there is no
+%    space after \texttt{em} to terminate the assignment. We need to
+%    mimic that, otherwise a test would return false even if the
+%    definition has not been modified.
+%
+%    \begin{macrocode}
+\newcommand\old at std@class at makefntext[1]{%
+    \parindent 1em%
+    \noindent
+    \hb at xt@1.8em{\hss\@makefnmark}#1}
+
+%    \end{macrocode}
+%    Here is the messy code for patching. Note that this is only there
+%    to help classes along that aren't updated yet so it does some
+%    minimal patching to hopefully add configuration points in the
+%    right place.
+%
+%    What it does is roughly the
+%    following: It look for a definition of \cs{@makefntext} of the form
+%\begin{verbatim}
+%  {AAA \hbox BBB { CCC } DDD #1 EEE }
+%\end{verbatim}
+%    where ``BBB'' is something like \texttt{to 1em} or similar. It then
+%    replaces that with
+%\begin{verbatim}
+%  {AAA \@makefntext at cfgpoint{\hbox BBB { CCC }} DDD
+%       \@makefntext at cfgpointii{#1} EEE }
+%\end{verbatim}
+%    The patching is not very careful, i.e., it assumes there is only
+%    one \verb=#1= in the replacement text and that a \cs{hbox} found
+%    is the right one to patch. But that is enough to cater for all
+%    definitions of \cs{@makefntext} out there in the TL distribution.
+%
+%    If \cs{hbox} is not found it tries the same looking for
+%    \cs{hb at xt@} which is what some classes use and if that is not
+%    found either it assume that this is a version that uses
+%    \cs{@makefnmark} without surrounding it in a box and if that
+%    fails it gives up with an \cs{ERROR} (which needs to get a proper definition).
+%    \begin{macrocode}
+
+\tl_new:N \l_@@_patch_tl
+\cs_new_eq:NN \@@_tmp:w \ERROR
+
+\cs_new_protected:Npn \@@_patch:
+  {
+    \tl_set:No \l_@@_patch_tl { \@makefntext { \@makefntext at cfgpointii{##1} } }
+    \tl_if_in:NnTF \l_@@_patch_tl { \hbox }
+      { \cs_set_eq:NN \@@_tmp:w \@@_patch_hbox:w }
+      {
+        \tl_if_in:NnTF \l_@@_patch_tl { \hb at xt@ }
+          { \cs_set_eq:NN \@@_tmp:w \@@_patch_hb at xt@:w }
+          {
+            \tl_if_in:NnTF \l_@@_patch_tl { \@makefnmark }
+              { \cs_set_eq:NN \@@_tmp:w \@@_patch_ at makefnmark:w }
+              { \ERROR
+                \cs_set_eq:NN \@@_tmp:w \exp_stop_f: }
+          }
+      }
+    \tl_set:Nf \l_@@_patch_tl
+      { \exp_after:wN \@@_tmp:w \l_@@_patch_tl }
+    \cs_set:Npn \@@_tmp:w { \long \def \@makefntext ####1 }
+    \exp_after:wN \@@_tmp:w \exp_after:wN { \l_@@_patch_tl }
+  }
+%    \end{macrocode}
+%
+%    If \cs{@makefntext} contains \cs{hbox} then grab ``AAA'' as
+%    \verb=#1= and ``BBB'' (up to the open \verb={=)  and return it as
+%\begin{verbatim}
+%   AAA  \@makefntext at processX { \hbox BBB }
+%\end{verbatim}
+%    \begin{macrocode}
+\cs_new:Npn \@@_patch_hbox:w #1 \hbox #2 #
+  { \exp_stop_f: #1 \@makefntext at processX { \hbox #2 } }
+%    \end{macrocode}
+%    Same for the other cases.
+%    \begin{macrocode}
+\cs_new:Npn \@@_patch_hb at xt@:w #1 \hb at xt@ #2 #
+  { \exp_stop_f: #1 \@makefntext at processX { \hb at xt@ #2 } }
+\cs_new:Npn \@@_patch_ at makefnmark:w #1 \@makefnmark
+  { \exp_stop_f: #1 \@makefntext at processX { \use:n } { \@makefnmark } }
+%    \end{macrocode}
+%
+%    The code provided by Bruno above expects 2 arguments but we need a
+%    different structure so this is a simple reshuffling. Would be
+%    better if we can patch the right structure in directly, but I'm
+%    not a patch person, so this is the simple way out for now:
+%    
+%    \begin{macrocode}
+\cs_new:Npn \@makefntext at processX #1#2{\@makefntext at cfgpoint{#1{#2}}}
+%    \end{macrocode}
+%    At \verb=\begin{document}= check if the current definition is
+%    that of the standard classes and if so replace it by
+%    \cs{fnote_makefntext:n} otherwise try and patch the definition
+%    using the approach above.
+%    \begin{macrocode}
+
+\AddToHook{begindocument}{
+  \cs_if_eq:NNTF \@makefntext \old at std@class at makefntext
+     {
+       \cs_set_eq:NN \@makefntext \fnote_makefntext:n
+     }
+     {
+       \@@_patch:
+     }
+}
+
+
+% possibly add the following to check for multiple \hbox in
+% the definition:
+%
+% \seq_set_split:NnV \l_@@_patch_seq { \hbox } \l_@@_patch_tl
+% \int_compare:nT { \seq_count:N \l_@@_patch_seq } > 2 \ERROR
+%
+%    \end{macrocode}
+%
+%
+%
+%
+% \subsection{Document-level commands}
+%
+%    \begin{macrocode}
+
+\DeclareDocumentCommand\footnotetext {om} {
+  \fnote_set_fnmark:nn {#1} \@mpfn
+  \@footnotetext {#2}
+}
+
+
+%-------------------------------------
+
+
+\DeclareDocumentCommand\footnote {om} {
+  \fnote_step_fnmark:nn {#1} \@mpfn
+  \cs_set_eq:NN \@@_footnotemark_finish: \prg_do_nothing:
+  \@footnotemark
+  \cs_set_eq:NN \@@_footnotemark_finish: \@@_finish:
+  \@footnotetext {#2}
+  \@@_footnotemark_finish:
+}
+
+%-------------------------------------
+
+
+\DeclareDocumentCommand\footnotemark {o} {
+  \fnote_step_fnmark:nn {#1} { footnote }
+  \@footnotemark
+}
+
+
+%-------------------------------------
+
+\DeclareDocumentCommand\footref {m}{%
+  \begingroup
+    \unrestored at protected@xdef\@thefnmark{\ref{#1}}%
+  \endgroup
+  \@footnotemark
+}
+
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+%<@@=>
+%    \end{macrocode}
+%
+%
+%
+%
+%
+%
+% \subsection{Firstaid for packages and classes}
+%
+% \subsubsection{\pkg{setspace}}
+%
+%    It should not overwrite it any longer but use a hook, so for now we
+%    do just that here.
+%    \begin{macrocode}
+\AddToHook{package/setspace/after}
+   {\let \@footnotetext \fnote_footnotetext:n
+    \AddToHook{fntext}[setspace]{\let\baselinestretch\setspace at singlespace}}
+%    \end{macrocode}
+%
+%
+%
+%
+% \subsubsection{\pkg{hyperref}}
+%
+%    Prevent hyperref from redefining footnote stuff --- this is a
+%    temp solution.
+%    \begin{macrocode}
+\AddToHook{package/hyperref/after}{
+  \let\H@@footnotetext\fnote_footnotetext:n
+  \let\H@@footnotemark\fnote_footnotemark:
+  \let \@footnotetext \fnote_footnotetext:n
+  \let \@footnotemark \fnote_footnotemark:
+}
+
+
+
+%    \end{macrocode}
+%
+% \subsection{Stuff that needs cleanup and documentation}
+%
+%    \begin{macrocode}
+
+
+%-------------------------------------
+
+% use of kerns to mark h-mode positions (unit sp)
+%
+% 1 = CJK
+% 2 = CJK
+% 3 = multiple footnotes (footmisc, koma, eledmac, tufte, memoir,
+%    parnotes, sidenotes)
+% 3 = outer kern in letter spacing (letterspace)
+% 3 = beginning of list (examdesign.cls)
+% 4 = CJK pigin
+% 5 = CJK ruby
+
+% 1-4 = polyglossia for korean
+
+%-------------------------------------
+
+
+
+%-------------------------------------
+%  Tagging
+%-------------------------------------
+
+% hyperref support only when loaded (improve integration)
+
+\newcounter{absfootnote}
+\AddToHook{fnmark/begin}{\stepcounter{absfootnote}}  % too simple (fails with opt args)
+
+
+
+% this is rubbish and should be handled better:
+
+\cs_new_protected:Npn \tag_if_loaded:TF  { \cs_if_exist:NTF \tag_struct_begin:n }
+
+
+
+\cs_new_protected:Npn \tag at FEMark #1 {
+  \tag_if_loaded:TF
+     {
+       \tag_mc_end_push:
+       \exp_args:Nx
+       \tag_struct_begin:n{tag=Lbl,ref=fn.\the\c at absfootnote}
+       \tag_mc_begin:n{tag=Lbl}
+       \IfPackageLoadedTF{hyperref}{ \hyper at linkstart
+         {link}{fn.\the\c at absfootnote} }{}
+       #1
+      \IfPackageLoadedTF{hyperref}{ \hyper at linkend }{}
+      \tag_mc_end:
+      \tag_struct_end:
+      \tag_mc_begin_pop:n{}
+     }
+     { #1 }
+}
+
+% to be done next round around:
+%
+% \the\c at absfootnote should be replaced directly by some command with default meaning
+% \the\c at absfootnote so that the actual reference can be changed from the outside.
+%
+% there are several instances that are curently hardwired.
+
+\cs_set_eq:NN \@kernel at process@makefnmark \tag at FEMark
+
+
+
+% kernel hook for tagging (2 args)
+\cs_set:Npn \@kernel at process@footnotetext #1#2 {
+  \tag_if_loaded:TF
+    {
+      \tag_mc_end_push:
+      \tag_struct_begin:n { tag=FENote,label=fn.\the\c at absfootnote }
+      #1 {#2}
+      \tag_struct_end:
+      \tag_mc_begin_pop:n{}
+    }
+    { #1 {#2} }
+}
+
+
+
+\cs_set:Npn \@makefntext at cfgpoint #1 {
+  \noindent
+  \cs_if_exist:NT \tag_struct_begin:n { \tag_mc_end_push: }
+  \tag at FELbl { #1 }
+}
+
+\cs_set:Npn \@makefntext at cfgpointii #1 {
+  \tag at FENote { #1 }
+  \cs_if_exist:NT \tag_struct_begin:n { \tag_mc_begin_pop:n{} }
+}
+
+
+
+
+\cs_new_protected:Npn \tag at FELbl #1 {
+  \tag_if_loaded:TF
+    {
+      % target should perhaps be raised ...
+      \IfPackageLoadedTF{hyperref}{ \hypertarget{fn.\the\c at absfootnote}{} }{}
+      %\tag_struct_begin:n { tag=FENote,label=fn.\the\c at absfootnote } %alternativ location for structure
+      \tag_struct_begin:n { tag=Lbl }
+        \tag_mc_begin:n { tag=Lbl }
+          #1
+        \tag_mc_end:
+      \tag_struct_end:
+    }
+    { #1 }
+}
+
+\cs_new_protected:Npn \tag at FENote #1 {
+  \tag_if_loaded:TF
+    {
+      \tag_mc_begin:n{tag=FENote}
+      #1
+      \tag_mc_end:
+      %\tag_struct_end: %alternative location for structure end but ends inside a P
+    }
+    { #1 }
+}
+ 
+%-------------------------------------
+
+
+\ExplSyntaxOff
+%</kernel>
+%    \end{macrocode}
+%
+%
+% \section{Reimplementing the \pkg{footmisc} package}
+%
+%    \begin{macrocode}
+%<*footmisc>
+%%
+%% Copyright (c) 1995-2011 Robin Fairbairns
+%% Copyright (c) 2018-2022 Robin Fairbairns, Frank Mittelbach
+%%
+%% This file is part of the `latex-lab 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'.
+%%
+%%
+%% File: footmisc.dtx (C) Copyright 1995-2011 Robin Fairbairns
+%%                    (C) Copyright 2018-2022 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{latex-lab-footmisc}%
+        [2022/03/08 v6.0d
+     a miscellany of footnote facilities -- latex-lab version%
+                   ]
+
+\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
+\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}{%
+%    \end{macrocode}
+%    Options are executed in the order of declaration, thus no point in
+%    checking for side option as footmisc did in the past
+%    \begin{macrocode}
+%    \PackageError{footmisc}{Option "\CurrentOption" incompatible with
+%                            option "side"}%
+%                 {I shall ignore "\CurrentOption"}%
+  \FN at paratrue
+  \setlength\footnotemargin{-\maxdimen}    % default when para is used
+}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\DeclareOption{side}{\ifFN at para
+    \PackageError{footmisc}{Option "\CurrentOption" incompatible with
+                            option "para"}%
+                 {I shall ignore "\CurrentOption"}%
+  \else
+    \def\@footnotetext at cfgpoint {\marginpar}
+    \AddToHook{fntext/para}{%
+      \hsize\marginparwidth     % correct the default \hsize
+      \footnotesep\z@           % don't add a default separation
+    }
+    \def\@footnotetext at cfgpointii  {\@makefntext}
+    \def\@footnotetext at cfgpointiii {}
+    \def\@footnotetext at cfgpointiv  {}
+  \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
+%    \end{macrocode}
+%    This version of \pkg{footmisc} can assume that the new OR code is
+%    already available, thus nothing needs loading at this
+%    point. However, as long as we use this code also in a package
+%    version that can be loaded by other package while we are in a
+%    transition phase it is not clear whether not the kernel code is
+%    already available for other packages.
+%    \begin{macrocode}
+%\@ifundefined{@kernel at before@cclv}
+%  {\input{latex-lab-new-or.ltx}}{}
+%    \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 cfgpointii {%
+     \global\setbox\footins\vbox{\FN at makefootnoteparagraph}%
+    }
+\fi
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\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
+%    \end{macrocode}
+%
+%
+%
+%    \begin{macrocode}
+\ifcase \FN at bottomcases\relax
+\ERROR
+\or
+  \ifFN at abovefloats
+    \def\@makecol at cfgpoint {%
+       \@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 cfgpoint {%
+       \@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 cfgpoint {%
+        \@outputbox at appendfootnotes
+        \@if at bfloats@TF
+            {\@outputbox at append{\vfill}}%
+            {\@outputbox at reinsertbskip}%
+        \@outputbox at attachfloats
+     }
+  \else
+     \def\@makecol at cfgpoint {%
+       \@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 cfgpoint {%
+       \@outputbox at appendfootnotes
+       \@outputbox at attachfloats
+       \@outputbox at reinsertbskip
+    }
+  \else
+    \def\@makecol at cfgpoint {%
+       \@outputbox at attachfloats
+       \@outputbox at appendfootnotes
+       \@outputbox at reinsertbskip
+}
+  \fi
+\else
+\ERROR
+\fi
+
+% next can be dropped when cleaned up
+\newif\ifFN at setspace
+\@ifpackageloaded{setspace}%
+ {%
+   \FN at setspacetrue
+   \@ifclassloaded{memoir}%
+     {%
+       \AddToHook{fntext}{\let\baselinestretch\m at m@singlespace}%
+       \let\FN at baselinestretch\m at m@singlespace
+     }%
+     {%
+%       \AddToHook{fntext}{\let\baselinestretch\setspace at singlespace}%
+       \let\FN at baselinestretch\setspace at singlespace
+     }%
+ }%
+ {%
+   \FN at setspacefalse
+ }
+
+
+
+\ifFN at para
+  \def\@footnotetext at cfgpoint {\insert\footins}
+
+  \long\def\@footnotetext at cfgpointii #1{%
+    \setbox\FN at tempboxa\hbox{\@makefntext{#1}}%
+    \dp\FN at tempboxa\z@
+    \ht\FN at tempboxa
+      \dimexpr\wd\FN at tempboxa *%
+              \footnotebaselineskip /\columnwidth\relax
+    \box\FN at tempboxa
+  }
+
+
+  \def\@footnotetext at cfgpointiii {}
+  \def\@footnotetext at cfgpointiv {% config point
+           \strut
+           \penalty-10\relax
+           \hskip\footglue
+  }
+\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
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \newdimen\footnotebaselineskip
+
+  % establish late:
+
+\AddToHook{begindocument/before} {%
+  {%
+    \footnotesize
+    \global\footnotebaselineskip=\normalbaselineskip
+  }%
+}
+%    \end{macrocode}
+%    The coding is based on David Kastrup's improvement to Don Knuth's
+%    original implementation. You find in the \TeX{}book if you own
+%    the latest edition.
+%    \begin{macrocode}
+
+  \long\def\FN at makefootnoteparagraph{%
+    \FN at setfootnoteparawidth
+    \@parboxrestore
+    \baselineskip=\footnotebaselineskip
+    \unvbox\footins \FN at removehboxes
+    \RawParEnd
+  }
+  \def\FN at removehboxes{\setbox\FN at tempboxa\lastbox
+    \ifhbox\FN at tempboxa{\FN at removehboxes}%
+      \unhbox\FN at tempboxa
+    \else
+      \RawNoindent
+      \rule\z@\footnotesep
+    \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}
+%    \end{macrocode}
+%    Fix a bug in perpage \ldots
+%    \begin{macrocode}
+  \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
+  }
+%    \end{macrocode}
+%    The above code may look a bit odd: the \cs{stepcounter} sets the
+%    counter to zero and then we alter it if it is not zero.  The
+%    reason is that \cs{stepcounter} resets other counters and when
+%    perpage is loaded this results in updating counters on the reset
+%    list to 1 (or to a higher starting value if \cs{MakePerPage} is
+%    used with an optional argument, which is precisely the problem
+%    here. By subtracting 1 in that case we set it back to 1 lower
+%    than the starting value.
+%
+%    But to make this fully work we also need to update a support
+%    command in \pkg{perpage}:
+%    \begin{macrocode}
+  \def\pp at cl@end at iii\stepcounter#1\pp at fix@MakePerPage#2{}
+\fi
+
+
+\ifFN at para
+
+% This can use the default interface, except that a negative value for
+% \footnotemargin makes little sense, so we test for this and warn if
+% necessary. But -\maxdimen is ok again, so would need to be a litte bit more elaborate.
+%
+
+%\AddToHook{fntext/para}{
+%  \ifdim \footnotemargin >\z@ \else
+%    \PackageWarningNoline{footmisc}{Option 'para' needs positive \noexpand\footnotemargin}%
+%    \footnotemargin 1.8em\relax
+%  \fi
+%}
+
+
+\AddToHook{fntext/begin}{\nobreak \hspace{.2em}}
+
+
+
+
+\else
+
+  \ifFN at hangfoot
+    \long\def\@makefntext#1{%
+      \bgroup
+        \setbox\@tempboxa\hbox{%
+          \ifdim\footnotemargin>\z@
+            \hb at xt@\footnotemargin{\@makefnmark\hss}%
+          \else
+            \@makefnmark
+          \fi
+        }%
+        \leftmargin\wd\@tempboxa
+        \rightmargin\z@
+        \linewidth \columnwidth
+        \advance \linewidth -\leftmargin
+        \parshape \@ne \leftmargin \linewidth
+        \footnotesize
+        \@setpar{{\@@par}}%
+        \leavevmode
+        \llap{\box\@tempboxa}%
+        \parskip\hangfootparskip\relax
+        \parindent\hangfootparindent\relax
+        \footnotelayout#1%
+        \par
+      \egroup
+    }
+
+ \else
+
+% This is now using the default interface:
+%
+% \long\def\@makefntext#1{%
+%      \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
+%    \footnotelayout#1%
+%  }
+
+ \fi
+\fi
+
+
+
+
+\ifFN at multiplefootnote
+  \providecommand*{\multiplefootnotemarker}{3sp}
+  \providecommand*{\multfootsep}{,}
+  \AddToHook{fnmark}      {\FN at mf@check}
+  \AddToHook{fnmark/end}  {\FN at mf@prepare}
+%
+  \def\FN at mf@prepare{%
+    \kern-\multiplefootnotemarker
+    \kern\multiplefootnotemarker\relax
+  }
+  \def\FN at mf@check{%
+    \ifdim\lastkern=\multiplefootnotemarker\relax
+%?? is that necessary or even correct ??
+      \edef\@x at sf{\the\spacefactor}%
+%?? shouldn't that be 2 unkerns ?? (none would also be ok)
+      \unkern  % new
+      \unkern
+      \textsuperscript{\multfootsep}%
+      \spacefactor\@x at sf\relax
+    \fi
+  }
+\else
+  \let\FN at mf@prepare\relax
+\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
+}
+%    \end{macrocode}
+%    TEMP PATCHES FOR TESTING
+%    \begin{macrocode}
+
+\endinput
+%</footmisc>
+%    \end{macrocode}
+% \Finale
+%


Property changes on: trunk/Master/texmf-dist/source/latex/latex-lab/latex-lab-footnotes.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/latex-lab/latex-lab-new-or.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/latex-lab/latex-lab-new-or.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/latex-lab/latex-lab-new-or.dtx	2022-06-08 20:43:50 UTC (rev 63515)
@@ -0,0 +1,545 @@
+% \iffalse meta-comment
+%
+%% File: latex-lab-new-or.dtx
+% Copyright (C) 2022 The LaTeX Project
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    https://www.latex-project.org/lppl.txt
+%
+%
+% The development version of the bundle can be found below
+%
+%    https://github.com/latex3/latex2e/required/latex-lab
+%
+% for those people who are interested or want to report an issue.
+%
+%<*driver>
+\documentclass{l3doc}
+\EnableCrossrefs
+\CodelineIndex
+\begin{document}
+  \DocInput{latex-lab-new-or.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+%
+% \title{The \texttt{latex-lab-new-or} code\thanks{}}
+% \author{Frank Mittelbach, \LaTeX{} Project}
+%
+% \maketitle
+%
+% \newcommand\fmi[1]{\begin{quote} TODO: \itshape #1\end{quote}}
+% \newcommand\NEW[1]{\marginpar{\mbox{}\hfill\fbox{New: #1}}}
+% \providecommand\pkg[1]{\texttt{#1}}
+%
+% \begin{abstract}
+% \end{abstract}
+%
+% \section{Introduction}
+%
+%    This code implements changes to the output routine.
+%
+%
+%
+%
+% \section{Hooks and configuration points}
+%
+%    Note: the configuration points do not have an interface mechanism
+%    yet and all their names are temporary right now.
+%
+%
+% \subsubsection{Configuration points}
+%
+%    To cater for different layouts with respect to text, footnotes,
+%    and bottom-floats placements there are two configuration points for
+%    now.
+%    \begin{description}
+%    \item[\cs{@makecol at cfgpoint} (0 arguments)]
+%
+%      In this configuration point the \cs{@outputbox} (holding the
+%      galley text for the current column or page) is augmented by
+%      attaching floats and footnote areas together with appropriate
+%      spacing. Before the code is run any existing glue at the bottom
+%      of the \cs{@outputbox} is removed and stored in a safe
+%      place. If needed, it can be reinserted with one of the helper
+%      commands.
+%
+%      To support setting this up the following helper commands are available:
+%      \begin{description}
+%      \item[\cs{@outputbox at append} (1 argument)]
+%
+%        This general purpose command alters the \cs{@outputbox} box by
+%        appending material to it.
+%
+%      \item[\cs{@outputbox at appendfootnotes} (0 arguments)]
+%
+%        This command appends the footnotes to the \cs{@outputbox} (if
+%        there are any). If not, then it does nothing.
+%
+%      \item[\cs{@outputbox at attachfloats} (0 arguments)]
+%      \item[\cs{@outputbox at attachtopfloats} (0 arguments)]
+%      \item[\cs{@outputbox at attachbottomfloats} (0 arguments)]
+%   
+%        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.
+%
+%      \item[\cs{@outputbox at reinsertbskip} (0 arguments)]
+%
+%        Reinsert the bottom skip of the \cs{@outputbox} that was
+%        saved before.   
+%   
+%      \item[Testing for existence of material]
+%
+%        There are a number of helpers to run conditional code
+%        depending on whether or not there are footnotes or bottom
+%        floats. They are \cs{@if at footnotes@TF} and
+%        \cs{@if at bfloats@TF}
+%        (names are likely to change).
+%   
+%      \end{description}
+%      This configuration point needs an appropriate definition; a
+%      default is already given in the kernel.
+%
+%    \item[\cs{@makecol at cfgpointii} (0 arguments)]
+%
+%       This configuration point is used to manipulate the footnote
+%        material inside \cs{box}\cs{footins}. It if contains code, it
+%        is supposed to do some processing of that box and then write
+%        the result back into it (and nothing else!). By default it
+%        does nothing.
+%
+%    \end{description}
+%
+% \StopEventually{\setlength\IndexMin{200pt}  \PrintIndex  }
+%
+%
+% \section{The Implementation}
+%
+%    \begin{macrocode}
+%<*code>
+%    \end{macrocode}
+%
+% \subsection{File declaration}
+%    \begin{macrocode}
+\ProvidesFile{latex-lab-new-or.ltx}
+        [2022-03-09 v0.1b changes to the output routine]
+%    \end{macrocode}
+% \subsection{\cs{@makecol} reimplementation}
+%
+%    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.
+%
+%
+%  \begin{macro}{\@makecol}
+%    \cs{@makecol} is shortened a lot, basically all the hardwired
+%    code in the middle has moved into a configuration point.
+%    \begin{macrocode}
+\def \@makecol {%
+  \@kernel at before@cclv
+  \setbox\@outputbox \box\@cclv
+%    \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 cfgpoint
+%    \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 one we only
+%    automatically make in new documents using \cs{DocumentMetadata}.
+%  \fmi{may make optional for legacy docs}
+%    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.
+%
+%    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.
+%
+%    In \pkg{footmisc} \cs{@outputbox at removebskip} is only applied when
+%    \pkg{footmisc} is called with with an option specifying the
+%    footnote placement, i.e., not  in the default case.
+%    In new documents we apply it always.
+%    \begin{macrocode}
+\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}
+%  \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 output routine configuration components}
+%
+%    Here we provide the components that are used to define
+%    \cs{@makecol at cfgpoint}.
+%
+%
+%  \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{%
+%  \if!\detokenize{#1}!\else
+     \setbox\@outputbox \vbox {%
+       \boxmaxdepth \@maxdepth
+       \@outputbox at depth\dp\@outputbox      % if needed in #1
+       \unvbox \@outputbox
+       #1%
+     }%
+%  \fi
+}
+%    \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 cfgpointii
+%    \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.
+%    \begin{macrocode}
+\let \@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 cfgpointii}
+%
+%    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 cfgpointii \@empty
+%    \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}
+%
+%
+%  \begin{macro}{\@makecol at cfgpoint}
+%
+%    Here is only the configuration for the default case for now,
+%    others are provided by \pkg{footmisc}.
+%
+%    \begin{macrocode}
+    \def\@makecol at cfgpoint {%
+       \@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
+    }
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+% \section  {Replacement for the \pkg{footmisc} package}
+%
+%    The replacement for \pkg{footmisc}. If the new code is used, we must replace
+%    the package if it is loaded by the user:
+%    \begin{macrocode}
+\declare at file@substitution{footmisc.sty}{latex-lab-footmisc.ltx}
+%    \end{macrocode}
+%
+%
+%
+% \section {Temp stuff that is related but should go to the kernel}
+%
+%    \begin{macrocode}
+\input{latex-lab-footnotes.ltx}
+%    \end{macrocode}
+%
+%
+%    \begin{macrocode}
+%</code>
+%    \end{macrocode}
+%
+% \Finale
+%


Property changes on: trunk/Master/texmf-dist/source/latex/latex-lab/latex-lab-new-or.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/latex-lab/latex-lab-testphase.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/latex-lab/latex-lab-testphase.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/latex-lab/latex-lab-testphase.dtx	2022-06-08 20:43:50 UTC (rev 63515)
@@ -0,0 +1,84 @@
+% \iffalse meta-comment
+%
+%% File: latex-lab-testphase.dtx
+% Copyright (C) 2021-2022 The LaTeX Project
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    https://www.latex-project.org/lppl.txt
+%
+%
+% The development version of the bundle can be found below
+%
+%    https://github.com/latex3/latex2e/required/latex-lab
+%
+% for those people who are interested or want to report an issue.
+%
+%<*driver>
+\documentclass{l3doc}
+\EnableCrossrefs
+\CodelineIndex
+\begin{document}
+  \DocInput{latex-lab-testphase.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+
+% \title{The \texttt{latex-lab-testphase} code\thanks{}}
+% \author{Ulrike Fischer \LaTeX{} Project}
+%
+% \maketitle
+%
+%
+% \begin{abstract}
+% \end{abstract}
+%
+% \section{Introduction}
+%
+%    This code implements small files which can be loaded with the |testphase|
+%    key of \cs{DocumentMetadata}. This will be extended to allow user to load
+%    well defined parts of the tagged PDF project.
+%    Currently the values |phase-I|, |phase-II| and |new-or| are provided.
+%    |tagpdf| is an undocumented alias for |phase-II| which is kept for compability.
+%
+%
+% \StopEventually{\setlength\IndexMin{200pt}  \PrintIndex  }
+%
+%
+% \section{The Implementation}
+%  New output routine code is loaded in phase-II and new-or:
+%    \begin{macrocode}
+%<*tagpdf|phase-II|new-or>
+\IfFileExists{latex-lab-testphase-new-or.sty}
+ {
+   \RequirePackage{latex-lab-testphase-new-or}
+ }
+ {}
+%</tagpdf|phase-II|new-or>
+%    \end{macrocode}
+%    \begin{macrocode}
+%<*tagpdf|phase-I|phase-II>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\RequirePackage{tagpdf}
+\AddToDocumentProperties [document]{testphase/tagpdf}{loaded}
+%</tagpdf|phase-I|phase-II>
+%<tagpdf|phase-II>\tagpdfsetup{activate,paratagging,interwordspace}
+%<phase-I>\tagpdfsetup{activate,interwordspace}
+%<*tagpdf|phase-I|phase-II>
+\AddToDocumentProperties [document]{tagging}{active}
+\AddToDocumentProperties [document]{tagging/para}{active}
+\AddToDocumentProperties [document]{tagging/interwordspace}{active}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%</tagpdf|phase-I|phase-II>
+%    \end{macrocode}
+% \Finale
+%


Property changes on: trunk/Master/texmf-dist/source/latex/latex-lab/latex-lab-testphase.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/latex-lab/latex-lab.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/latex-lab/latex-lab.ins	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/latex-lab/latex-lab.ins	2022-06-08 20:43:50 UTC (rev 63515)
@@ -0,0 +1,82 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the dtx file(s) in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright (C) 2021-2022 The LaTeX Project
+%%
+%%
+%% This file is part of the `LaTeX-lab Bundle' for LaTeX.
+%% -------------------------------------------------------------------
+%%
+%% 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
+%%    http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008 or later.
+%%
+%% In particular, NO PERMISSION is granted to modify the contents of this
+%% file since it contains the legal notices that are placed in the files
+%% it generates.
+%%
+%%
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\input docstrip
+
+\keepsilent
+
+\usedir{tex/latex/contrib/latex-lab}
+
+\preamble
+
+This is a generated file.
+
+Copyright 2021,2022 LaTeX Project
+
+This file was generated from file(s) of the  `LaTeX-lab 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
+   http://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 may only be distributed together with a copy of the LaTeX
+`LaTeX-lab Bundle'. You may however distribute the `LaTeX-lab Bundle'
+without such generated files.
+
+The newest sources can be found below
+
+   https://github.com/latex3/latex2e/required/latex-lab
+
+where one can also log issues in case there are any.
+
+
+\endpreamble
+
+
+\generate{\file{documentmetadata-support.ltx}{\from{documentmetadata-support.dtx}{code}}}
+
+% files that should be loadable with the testphase key should use the naming scheme
+% #1-latex-lab-testphase.ltx
+\generate{\file{phase-I-latex-lab-testphase.ltx}{\from{latex-lab-testphase.dtx}{phase-I}}}
+\generate{\file{phase-II-latex-lab-testphase.ltx}{\from{latex-lab-testphase.dtx}{phase-II}}}
+
+\generate{\file{tagpdf-latex-lab-testphase.ltx}{\from{latex-lab-testphase.dtx}{tagpdf}}}
+\generate{\file{new-or-latex-lab-testphase.ltx}{\from{latex-lab-testphase.dtx}{new-or}}}
+
+% support files (the new-or code is a private package to make life easier)
+
+\generate{\file{latex-lab-testphase-new-or.sty}{\from{latex-lab-new-or.dtx}{code}}}
+\generate{\file{latex-lab-footmisc.ltx}{\from{latex-lab-footnotes.dtx}{footmisc}}}
+\generate{\file{latex-lab-footnotes.ltx}{\from{latex-lab-footnotes.dtx}{kernel}}}
+
+
+\endbatchfile

Added: trunk/Master/texmf-dist/tex/latex/latex-lab/documentmetadata-support.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/latex-lab/documentmetadata-support.ltx	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/latex-lab/documentmetadata-support.ltx	2022-06-08 20:43:50 UTC (rev 63515)
@@ -0,0 +1,206 @@
+%%
+%% This is file `documentmetadata-support.ltx',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% documentmetadata-support.dtx  (with options: `code')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright 2021,2022 LaTeX Project
+%% 
+%% This file was generated from file(s) of the  `LaTeX-lab 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
+%%    http://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 may only be distributed together with a copy of the LaTeX
+%% `LaTeX-lab Bundle'. You may however distribute the `LaTeX-lab Bundle'
+%% without such generated files.
+%% 
+%% The newest sources can be found below
+%% 
+%%    https://github.com/latex3/latex2e/required/latex-lab
+%% 
+%% where one can also log issues in case there are any.
+%% 
+%% 
+%% File: documentmetadata-support.dtx
+\def\documentmetadatasupportversion{1.0b}
+\def\documentmetadatasupportdate{2022-14-04}
+
+\RequirePackage{pdfmanagement-testphase}
+\ExplSyntaxOn\makeatletter
+
+\cs_set_protected:Npn \DocumentMetadata #1
+  {
+    \cs_if_eq:NNTF \documentclass \@twoclasseserror
+      { \msg_error:nn { meta } { after-class } }
+      {
+        \bool_gset_true:N \g__pdfmanagement_active_bool
+        \keys_set_groups:nnn { document / metadata} {init}{ #1 }
+        %if no backend has been loaded force it now:
+        \str_if_exist:NF \c_sys_backend_str
+          {
+            \sys_load_backend:n {}
+          }
+        \ExplSyntaxOn\makeatletter
+          \file_input:n {l3backend-testphase-\c_sys_backend_str.def}
+        \ExplSyntaxOff\makeatother
+        \keys_set_filter:nnn  { document / metadata } { init } { lang=en-US, #1 }
+        \bool_if:NT \g__pdfmanagement_active_bool
+          {
+            \PassOptionsToPackage{customdriver=hgeneric-testphase}{hyperref}
+          }
+        \hook_use_once:n {pdfmanagement/add}
+        \cs_set_protected:Npn \DocumentMetadata ##1
+          {
+            \keys_set_filter:nnn  { document / metadata } { init } { ##1 }
+            \str_remove_all:cn {opt at hyperref.sty}{customdriver=hgeneric-testphase}
+            \bool_if:NT \g__pdfmanagement_active_bool
+             {
+               \PassOptionsToPackage{customdriver=hgeneric-testphase}{hyperref}
+             }
+          }
+        \g__pdfmanagement_testphase_tl
+        \RequirePackage{pdfmanagement-firstaid}
+      }
+  }
+
+\keys_define:nn { document / metadata }
+  {
+    backend .choices:nn =
+      { dvipdfmx , dvips , dvisvgm , luatex , pdftex , pdfmode , xdvipdfmx , xetex }
+      {
+        \sys_load_backend:n {#1}
+      },
+    backend .groups:n = { init } ,
+  }
+
+\keys_define:nn { document / metadata }
+  {
+    ,pdfversion .code:n =
+      {
+        \pdf_version_gset:n { #1 }
+        \AddToDocumentProperties[document]{pdfversion}{#1}
+      }
+    ,uncompress .code:n =
+      {
+        \pdf_uncompress:
+      }
+    ,uncompress .value_forbidden:n = true
+    ,lang .code:n =
+      {
+        \pdfmanagement_add:nnn {Catalog} {Lang}{(#1)}
+        \AddToDocumentProperties[document]{lang}{#1}
+      }
+    %,xmpmeta .bool_gset:N = \g_pdfmeta_xmp_bool %see pdfmeta unused and undefined for now!
+    % this uses internal command from pdfmeta, it should probably move there ...
+    ,pdfstandard .code:n =
+      {
+        \exp_args:Nnx
+        \keys_set:nn {document / metadata} {_pdfstandard=\str_uppercase:n{#1}}
+      }
+    ,_pdfstandard .choices:nn =
+      {A-1B,A-2A,A-2B,A-2U,A-3A,A-3B,A-3U,A-4}
+      {
+        \prop_if_exist:cT { g__pdfmeta_standard_pdf/#1_prop }
+          {
+            \prop_gset_eq:Nc \g__pdfmeta_standard_prop { g__pdfmeta_standard_pdf/#1 _prop }
+          }
+        \AddToDocumentProperties [document]{pdfstandard}{#1}
+      }
+    ,_pdfstandard / unknown .code:n =
+      {
+        \msg_warning:nnn{pdf}{unknown-standard}{#1}
+      }
+    ,testphase .multichoice:
+    ,testphase / tagpdf .code:n =
+      {
+        \tl_gput_right:Nn\g__pdfmanagement_testphase_tl
+          {
+            \file_if_exist_input:nF {tagpdf-latex-lab-testphase.ltx}
+              {
+                \RequirePackage{tagpdf}
+                \AddToDocumentProperties [document]{testphase/tagpdf}{loaded}
+                \tagpdfsetup{activate,paratagging,interwordspace}
+                \AddToDocumentProperties [document]{tagging}{active}
+                \AddToDocumentProperties [document]{tagging/para}{active}
+                \AddToDocumentProperties [document]{tagging/interwordspace}{active}
+              }
+          }
+      }
+    ,testphase / unknown .code:n =
+      {
+        \tl_gput_right:Nn\g__pdfmanagement_testphase_tl
+           {
+             \AddToDocumentProperties [document]{testphase/#1}{loaded}
+             \file_if_exist_input:nF {#1-latex-lab-testphase.ltx}
+              {
+                 \msg_warning:nnn{meta}{latex-lab-pkg-missing}{#1}
+                 \AddToDocumentProperties [document]{testphase/#1}{missing}
+              }
+           }
+      }
+    ,activate .multichoice:
+    ,activate / tagging .code:n =
+      {
+        \PackageWarning{pdfmanagement-testphase}
+         {The~activate~key~is~deprecated.\MessageBreak
+          Tagging~is~activated~with~'testphase=tagpdf'~directly}{}
+      }
+    ,debug .code:n =
+      {
+        \keys_set:nn { document / metadata / debug } {#1}
+      }
+    ,debug / para .code:n =
+      {
+        \AddToHook
+          {
+            package/tagpdf/after
+          }
+          {
+             \tagpdfsetup{paratagging-show}
+          }
+      }
+    ,debug / log .code:n =
+      {
+        \AddToHook
+          {
+           package/tagpdf/after
+          }
+          {
+             \tagpdfsetup{log=#1}
+          }
+      }
+    ,debug / uncompress .code:n =
+      {
+        \pdf_uncompress:
+      }
+    ,debug / pdfmanagement .bool_gset:N = \g__pdfmanagement_active_bool
+    ,debug / firstaidoff .clist_gset:N = \g__pdfmanagement_firstaidoff_clist
+  }
+
+\prop_gput:Nnn \g_msg_module_type_prop { meta } { LaTeX }
+\prop_gput:Nnn \g_msg_module_name_prop { meta } { DocumentMetadata }
+
+\msg_new:nnn { meta } { after-class }
+             {
+                \token_to_str:N \DocumentMetadata \c_space_tl
+                should~be~used~only~before~\token_to_str:N\documentclass
+             }
+\msg_new:nnn { meta } { latex-lab-pkg-missing }
+             {
+               LaTeX-lab~package~'#1'~not~found.
+              }
+\ExplSyntaxOff\makeatother
+\endinput
+%%
+%% End of file `documentmetadata-support.ltx'.


Property changes on: trunk/Master/texmf-dist/tex/latex/latex-lab/documentmetadata-support.ltx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/latex-lab/latex-lab-footmisc.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/latex-lab/latex-lab-footmisc.ltx	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/latex-lab/latex-lab-footmisc.ltx	2022-06-08 20:43:50 UTC (rev 63515)
@@ -0,0 +1,630 @@
+%%
+%% This is file `latex-lab-footmisc.ltx',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% latex-lab-footnotes.dtx  (with options: `footmisc')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright 2021,2022 LaTeX Project
+%% 
+%% This file was generated from file(s) of the  `LaTeX-lab 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
+%%    http://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 may only be distributed together with a copy of the LaTeX
+%% `LaTeX-lab Bundle'. You may however distribute the `LaTeX-lab Bundle'
+%% without such generated files.
+%% 
+%% The newest sources can be found below
+%% 
+%%    https://github.com/latex3/latex2e/required/latex-lab
+%% 
+%% where one can also log issues in case there are any.
+%% 
+%% 
+%% File: latex-lab-footnotes.dtx
+%%
+%% Copyright (c) 1995-2011 Robin Fairbairns
+%% Copyright (c) 2018-2022 Robin Fairbairns, Frank Mittelbach
+%%
+%% This file is part of the `latex-lab 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'.
+%%
+%%
+%% File: footmisc.dtx (C) Copyright 1995-2011 Robin Fairbairns
+%%                    (C) Copyright 2018-2022 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{latex-lab-footmisc}%
+        [2022/03/08 v6.0d
+     a miscellany of footnote facilities -- latex-lab version%
+                   ]
+
+\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
+\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}{%
+  \FN at paratrue
+  \setlength\footnotemargin{-\maxdimen}    % default when para is used
+}
+\DeclareOption{side}{\ifFN at para
+    \PackageError{footmisc}{Option "\CurrentOption" incompatible with
+                            option "para"}%
+                 {I shall ignore "\CurrentOption"}%
+  \else
+    \def\@footnotetext at cfgpoint {\marginpar}
+    \AddToHook{fntext/para}{%
+      \hsize\marginparwidth     % correct the default \hsize
+      \footnotesep\z@           % don't add a default separation
+    }
+    \def\@footnotetext at cfgpointii  {\@makefntext}
+    \def\@footnotetext at cfgpointiii {}
+    \def\@footnotetext at cfgpointiv  {}
+  \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
+\ifFN at para
+  \def\@makecol at cfgpointii {%
+     \global\setbox\footins\vbox{\FN at makefootnoteparagraph}%
+    }
+\fi
+\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
+\ifcase \FN at bottomcases\relax
+\ERROR
+\or
+  \ifFN at abovefloats
+    \def\@makecol at cfgpoint {%
+       \@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 cfgpoint {%
+       \@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 cfgpoint {%
+        \@outputbox at appendfootnotes
+        \@if at bfloats@TF
+            {\@outputbox at append{\vfill}}%
+            {\@outputbox at reinsertbskip}%
+        \@outputbox at attachfloats
+     }
+  \else
+     \def\@makecol at cfgpoint {%
+       \@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 cfgpoint {%
+       \@outputbox at appendfootnotes
+       \@outputbox at attachfloats
+       \@outputbox at reinsertbskip
+    }
+  \else
+    \def\@makecol at cfgpoint {%
+       \@outputbox at attachfloats
+       \@outputbox at appendfootnotes
+       \@outputbox at reinsertbskip
+}
+  \fi
+\else
+\ERROR
+\fi
+
+\newif\ifFN at setspace
+\@ifpackageloaded{setspace}%
+ {%
+   \FN at setspacetrue
+   \@ifclassloaded{memoir}%
+     {%
+       \AddToHook{fntext}{\let\baselinestretch\m at m@singlespace}%
+       \let\FN at baselinestretch\m at m@singlespace
+     }%
+     {%
+       \let\FN at baselinestretch\setspace at singlespace
+     }%
+ }%
+ {%
+   \FN at setspacefalse
+ }
+
+\ifFN at para
+  \def\@footnotetext at cfgpoint {\insert\footins}
+
+  \long\def\@footnotetext at cfgpointii #1{%
+    \setbox\FN at tempboxa\hbox{\@makefntext{#1}}%
+    \dp\FN at tempboxa\z@
+    \ht\FN at tempboxa
+      \dimexpr\wd\FN at tempboxa *%
+              \footnotebaselineskip /\columnwidth\relax
+    \box\FN at tempboxa
+  }
+
+  \def\@footnotetext at cfgpointiii {}
+  \def\@footnotetext at cfgpointiv {% config point
+           \strut
+           \penalty-10\relax
+           \hskip\footglue
+  }
+\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
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \newdimen\footnotebaselineskip
+
+  % establish late:
+
+\AddToHook{begindocument/before} {%
+  {%
+    \footnotesize
+    \global\footnotebaselineskip=\normalbaselineskip
+  }%
+}
+
+  \long\def\FN at makefootnoteparagraph{%
+    \FN at setfootnoteparawidth
+    \@parboxrestore
+    \baselineskip=\footnotebaselineskip
+    \unvbox\footins \FN at removehboxes
+    \RawParEnd
+  }
+  \def\FN at removehboxes{\setbox\FN at tempboxa\lastbox
+    \ifhbox\FN at tempboxa{\FN at removehboxes}%
+      \unhbox\FN at tempboxa
+    \else
+      \RawNoindent
+      \rule\z@\footnotesep
+    \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
+
+
+
+\AddToHook{fntext/begin}{\nobreak \hspace{.2em}}
+
+\else
+
+  \ifFN at hangfoot
+    \long\def\@makefntext#1{%
+      \bgroup
+        \setbox\@tempboxa\hbox{%
+          \ifdim\footnotemargin>\z@
+            \hb at xt@\footnotemargin{\@makefnmark\hss}%
+          \else
+            \@makefnmark
+          \fi
+        }%
+        \leftmargin\wd\@tempboxa
+        \rightmargin\z@
+        \linewidth \columnwidth
+        \advance \linewidth -\leftmargin
+        \parshape \@ne \leftmargin \linewidth
+        \footnotesize
+        \@setpar{{\@@par}}%
+        \leavevmode
+        \llap{\box\@tempboxa}%
+        \parskip\hangfootparskip\relax
+        \parindent\hangfootparindent\relax
+        \footnotelayout#1%
+        \par
+      \egroup
+    }
+
+ \else
+
+
+ \fi
+\fi
+
+\ifFN at multiplefootnote
+  \providecommand*{\multiplefootnotemarker}{3sp}
+  \providecommand*{\multfootsep}{,}
+  \AddToHook{fnmark}      {\FN at mf@check}
+  \AddToHook{fnmark/end}  {\FN at mf@prepare}
+  \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  % new
+      \unkern
+      \textsuperscript{\multfootsep}%
+      \spacefactor\@x at sf\relax
+    \fi
+  }
+\else
+  \let\FN at mf@prepare\relax
+\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
+}
+
+\endinput
+%%
+%% End of file `latex-lab-footmisc.ltx'.


Property changes on: trunk/Master/texmf-dist/tex/latex/latex-lab/latex-lab-footmisc.ltx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/latex-lab/latex-lab-footnotes.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/latex-lab/latex-lab-footnotes.ltx	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/latex-lab/latex-lab-footnotes.ltx	2022-06-08 20:43:50 UTC (rev 63515)
@@ -0,0 +1,429 @@
+%%
+%% This is file `latex-lab-footnotes.ltx',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% latex-lab-footnotes.dtx  (with options: `kernel')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright 2021,2022 LaTeX Project
+%% 
+%% This file was generated from file(s) of the  `LaTeX-lab 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
+%%    http://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 may only be distributed together with a copy of the LaTeX
+%% `LaTeX-lab Bundle'. You may however distribute the `LaTeX-lab Bundle'
+%% without such generated files.
+%% 
+%% The newest sources can be found below
+%% 
+%%    https://github.com/latex3/latex2e/required/latex-lab
+%% 
+%% where one can also log issues in case there are any.
+%% 
+%% 
+%% File: latex-lab-footnotes.dtx
+\ProvidesFile{latex-lab-footnotes.ltx}
+        [2022-03-10 v0.6a changes to the footnote interfaces]
+
+
+        % not looked at yet
+
+\long\def\@mpfootnotetext#1{%
+  \global\setbox\@mpfootins\vbox{%
+    \unvbox\@mpfootins
+    \reset at font\footnotesize
+    \hsize\columnwidth
+    \@parboxrestore
+    \def\@currentcounter{mpfootnote}%
+    \protected at edef\@currentlabel
+         {\csname p at mpfootnote\endcsname\@thefnmark}%
+    \color at begingroup
+      \@makefntext{%
+        \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+    \par
+    \color at endgroup}}
+
+\def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}
+
+\def\@mpfn{footnote}
+\def\thempfn{\thefootnote}
+
+
+\ExplSyntaxOn
+
+\cs_new_protected:Npn \fnote_step_fnmark:nn #1#2 {
+  \tl_if_novalue:nTF {#1}
+    {
+      \stepcounter {#2}
+      \protected at xdef \@thefnmark { \use:c { the#2 } }
+    }
+    {
+     \group_begin:
+        \int_set:cn { c@#2 }{ #1 }
+        \unrestored at protected@xdef \@thefnmark { \use:c { the#2 } }
+     \group_end:
+    }
+}
+
+\cs_new_protected:Npn \fnote_set_fnmark:nn #1#2 {
+  \tl_if_novalue:nTF {#1}
+    {
+      \protected at xdef \@thefnmark { \use:c { the#2 } }
+    }
+    {
+     \group_begin:
+        \int_set:cn { c@#2 }{ #1 }
+        \unrestored at protected@xdef \@thefnmark { \use:c { the#2 } }
+     \group_end:
+    }
+}
+
+
+\bool_new:N \g_fnote_debug_bool
+\bool_gset_true:N  \g_fnote_debug_bool   % for now we have debugging turned on by default
+
+
+\NewMirroredHookPair{fnmark/before}{fnmark/after}
+\NewHook{fnmark}
+\NewHook{fnmark/begin}
+\NewHook{fnmark/end}
+
+\cs_new:Npn \__fnote_debug_footnotemark: {
+  \bool_if:NT \g_fnote_debug_bool
+       {
+         \LogHook{fnmark/before}
+         \LogHook{fnmark}
+         \LogHook{fnmark/begin}
+         \LogHook{fnmark/end}
+         \LogHook{fnmark/after}
+         \cs_gset_eq:NN \__fnote_debug_footnotemark: \prg_do_nothing:
+       }
+}
+
+\cs_new_protected:Npn \fnote_footnotemark: {
+  \__fnote_debug_footnotemark:
+  \UseHook{fnmark/before}
+  \leavevmode
+  \ifhmode
+    \edef\@x at sf{\the\spacefactor}
+    \UseHook{fnmark}
+    \nobreak
+  \fi
+  \UseHook{fnmark/begin}
+  \@kernel at process@makefnmark
+     \@makefnmark
+  \__fnote_footnotemark_finish:
+}
+
+\cs_new:Npn \__fnote_finish: {
+  \UseHook{fnmark/end}
+  \ifhmode
+    \spacefactor \@x at sf \relax
+  \fi
+  \UseHook{fnmark/after}
+}
+
+\cs_new_eq:NN \__fnote_footnotemark_finish: \__fnote_finish:
+
+\def \@kernel at process@makefnmark { }
+
+
+
+\cs_set_eq:NN  \@footnotemark \fnote_footnotemark:
+
+
+\NewMirroredHookPair{fntext/before}{fntext/after}
+\NewHook{fntext}
+\NewHook{fntext/para}
+\NewHook{fntext/begin}
+\NewHook{fntext/end}
+
+\cs_new:Npn \__fnote_debug_footnotetext: {
+  \bool_if:NT \g_fnote_debug_bool
+       {
+         \cs_log:N\@footnotetext at cfgpoint
+         \cs_log:N\@footnotetext at cfgpointii
+         \cs_log:N\@footnotetext at cfgpointiii
+         \cs_log:N\@footnotetext at cfgpointiv
+         \cs_log:N\@makefntext at cfgpoint
+         \cs_log:N\@makefntext at cfgpointii
+         \LogHook{fntext/before}
+         \LogHook{fntext}
+         \LogHook{fntext/para}
+         \LogHook{fntext/begin}
+         \LogHook{fntext/end}
+         \LogHook{fntext/after}
+         \cs_gset_eq:NN \__fnote_debug_footnotetext: \prg_do_nothing:
+       }
+  }
+
+\cs_new_protected:Npn \fnote_footnotetext:n #1 {
+  \__fnote_debug_footnotetext:
+  \UseHook{fntext/before}
+  \@kernel at process@footnotetext
+  \@footnotetext at cfgpoint {  % config point
+    \UseHook{fntext}
+    \reset at font
+    \footnotesize
+    \interlinepenalty\interfootnotelinepenalty
+    \splittopskip\footnotesep
+    \splitmaxdepth \dp\strutbox
+    \floatingpenalty \@MM
+    \hsize\columnwidth
+    \@parboxrestore
+    \parindent 1em     % typical default used in \@makefntext moved up here
+    \def\@currentcounter{footnote}
+    \protected at edef \@currentlabel { \p at footnote \@thefnmark }
+    \UseHook{fntext/para}
+    \color at begingroup
+      \@footnotetext at cfgpointii       % config point
+        {
+          \@footnotetext at cfgpointiii  % config point
+          \UseHook{fntext/begin}
+          \ignorespaces
+          #1
+          \UseHook{fntext/end}
+          \@footnotetext at cfgpointiv   % config point
+        }
+      \par
+    \color at endgroup
+  }
+  \UseHook{fntext/after}
+}
+
+\cs_new_protected:Npn \@footnotetext at cfgpoint    { \insert\footins }
+
+\cs_new_protected:Npn \@footnotetext at cfgpointii  { \@makefntext }
+
+\cs_new_protected:Npn \@footnotetext at cfgpointiii { \rule\z@\footnotesep }
+
+\cs_new_protected:Npn \@footnotetext at cfgpointiv  { \@finalstrut\strutbox }
+
+\cs_new_protected:Npn \@kernel at process@footnotetext {}
+
+
+\AddToHook{begindocument}{
+  \cs_set_eq:NN \@footnotetext \fnote_footnotetext:n
+}
+
+
+
+\newdimen\footnotemargin
+\footnotemargin\maxdimen         % no value given
+
+\AtBeginDocument{
+  \ifdim \footnotemargin=\maxdimen
+    \setlength\footnotemargin{1.8em}
+  \fi
+}
+
+\cs_new_protected:Npn \fnote_makefntext:n #1 {
+  \@makefntext at cfgpoint
+      {
+        \ifdim\footnotemargin>\z@
+          \hb at xt@ \footnotemargin{\hss\@makefnmark}
+        \else
+          \ifdim\footnotemargin=\z@
+            \llap{\@makefnmark}
+          \else
+          \ifdim\footnotemargin=-\maxdimen
+               \@makefnmark
+            \else
+               \llap{\hb at xt@ -\footnotemargin{\@makefnmark\hss}}
+            \fi
+          \fi
+        \fi
+      }
+  \@makefntext at cfgpointii
+      { #1 }
+}
+
+\cs_new_protected:Npn \@makefntext at cfgpoint { \noindent }
+
+\cs_new_protected:Npn \@makefntext at cfgpointii #1 { #1 }
+\newcommand\old at std@class at makefntext[1]{%
+    \parindent 1em%
+    \noindent
+    \hb at xt@1.8em{\hss\@makefnmark}#1}
+
+
+\tl_new:N \l__fnote_patch_tl
+\cs_new_eq:NN \__fnote_tmp:w \ERROR
+
+\cs_new_protected:Npn \__fnote_patch:
+  {
+    \tl_set:No \l__fnote_patch_tl { \@makefntext { \@makefntext at cfgpointii{##1} } }
+    \tl_if_in:NnTF \l__fnote_patch_tl { \hbox }
+      { \cs_set_eq:NN \__fnote_tmp:w \__fnote_patch_hbox:w }
+      {
+        \tl_if_in:NnTF \l__fnote_patch_tl { \hb at xt@ }
+          { \cs_set_eq:NN \__fnote_tmp:w \__fnote_patch_hb at xt@:w }
+          {
+            \tl_if_in:NnTF \l__fnote_patch_tl { \@makefnmark }
+              { \cs_set_eq:NN \__fnote_tmp:w \__fnote_patch_ at makefnmark:w }
+              { \ERROR
+                \cs_set_eq:NN \__fnote_tmp:w \exp_stop_f: }
+          }
+      }
+    \tl_set:Nf \l__fnote_patch_tl
+      { \exp_after:wN \__fnote_tmp:w \l__fnote_patch_tl }
+    \cs_set:Npn \__fnote_tmp:w { \long \def \@makefntext ####1 }
+    \exp_after:wN \__fnote_tmp:w \exp_after:wN { \l__fnote_patch_tl }
+  }
+\cs_new:Npn \__fnote_patch_hbox:w #1 \hbox #2 #
+  { \exp_stop_f: #1 \@makefntext at processX { \hbox #2 } }
+\cs_new:Npn \__fnote_patch_hb at xt@:w #1 \hb at xt@ #2 #
+  { \exp_stop_f: #1 \@makefntext at processX { \hb at xt@ #2 } }
+\cs_new:Npn \__fnote_patch_ at makefnmark:w #1 \@makefnmark
+  { \exp_stop_f: #1 \@makefntext at processX { \use:n } { \@makefnmark } }
+\cs_new:Npn \@makefntext at processX #1#2{\@makefntext at cfgpoint{#1{#2}}}
+
+\AddToHook{begindocument}{
+  \cs_if_eq:NNTF \@makefntext \old at std@class at makefntext
+     {
+       \cs_set_eq:NN \@makefntext \fnote_makefntext:n
+     }
+     {
+       \__fnote_patch:
+     }
+}
+
+
+\DeclareDocumentCommand\footnotetext {om} {
+  \fnote_set_fnmark:nn {#1} \@mpfn
+  \@footnotetext {#2}
+}
+
+
+\DeclareDocumentCommand\footnote {om} {
+  \fnote_step_fnmark:nn {#1} \@mpfn
+  \cs_set_eq:NN \__fnote_footnotemark_finish: \prg_do_nothing:
+  \@footnotemark
+  \cs_set_eq:NN \__fnote_footnotemark_finish: \__fnote_finish:
+  \@footnotetext {#2}
+  \__fnote_footnotemark_finish:
+}
+
+
+\DeclareDocumentCommand\footnotemark {o} {
+  \fnote_step_fnmark:nn {#1} { footnote }
+  \@footnotemark
+}
+
+
+\DeclareDocumentCommand\footref {m}{%
+  \begingroup
+    \unrestored at protected@xdef\@thefnmark{\ref{#1}}%
+  \endgroup
+  \@footnotemark
+}
+
+\AddToHook{package/setspace/after}
+   {\let \@footnotetext \fnote_footnotetext:n
+    \AddToHook{fntext}[setspace]{\let\baselinestretch\setspace at singlespace}}
+\AddToHook{package/hyperref/after}{
+  \let\H@@footnotetext\fnote_footnotetext:n
+  \let\H@@footnotemark\fnote_footnotemark:
+  \let \@footnotetext \fnote_footnotetext:n
+  \let \@footnotemark \fnote_footnotemark:
+}
+
+
+
+
+
+
+
+
+\newcounter{absfootnote}
+\AddToHook{fnmark/begin}{\stepcounter{absfootnote}}  % too simple (fails with opt args)
+
+
+\cs_new_protected:Npn \tag_if_loaded:TF  { \cs_if_exist:NTF \tag_struct_begin:n }
+
+\cs_new_protected:Npn \tag at FEMark #1 {
+  \tag_if_loaded:TF
+     {
+       \tag_mc_end_push:
+       \exp_args:Nx
+       \tag_struct_begin:n{tag=Lbl,ref=fn.\the\c at absfootnote}
+       \tag_mc_begin:n{tag=Lbl}
+       \IfPackageLoadedTF{hyperref}{ \hyper at linkstart
+         {link}{fn.\the\c at absfootnote} }{}
+       #1
+      \IfPackageLoadedTF{hyperref}{ \hyper at linkend }{}
+      \tag_mc_end:
+      \tag_struct_end:
+      \tag_mc_begin_pop:n{}
+     }
+     { #1 }
+}
+
+
+\cs_set_eq:NN \@kernel at process@makefnmark \tag at FEMark
+
+\cs_set:Npn \@kernel at process@footnotetext #1#2 {
+  \tag_if_loaded:TF
+    {
+      \tag_mc_end_push:
+      \tag_struct_begin:n { tag=FENote,label=fn.\the\c at absfootnote }
+      #1 {#2}
+      \tag_struct_end:
+      \tag_mc_begin_pop:n{}
+    }
+    { #1 {#2} }
+}
+
+\cs_set:Npn \@makefntext at cfgpoint #1 {
+  \noindent
+  \cs_if_exist:NT \tag_struct_begin:n { \tag_mc_end_push: }
+  \tag at FELbl { #1 }
+}
+
+\cs_set:Npn \@makefntext at cfgpointii #1 {
+  \tag at FENote { #1 }
+  \cs_if_exist:NT \tag_struct_begin:n { \tag_mc_begin_pop:n{} }
+}
+
+\cs_new_protected:Npn \tag at FELbl #1 {
+  \tag_if_loaded:TF
+    {
+      % target should perhaps be raised ...
+      \IfPackageLoadedTF{hyperref}{ \hypertarget{fn.\the\c at absfootnote}{} }{}
+      %\tag_struct_begin:n { tag=FENote,label=fn.\the\c at absfootnote } %alternativ location for structure
+      \tag_struct_begin:n { tag=Lbl }
+        \tag_mc_begin:n { tag=Lbl }
+          #1
+        \tag_mc_end:
+      \tag_struct_end:
+    }
+    { #1 }
+}
+
+\cs_new_protected:Npn \tag at FENote #1 {
+  \tag_if_loaded:TF
+    {
+      \tag_mc_begin:n{tag=FENote}
+      #1
+      \tag_mc_end:
+      %\tag_struct_end: %alternative location for structure end but ends inside a P
+    }
+    { #1 }
+}
+
+
+\ExplSyntaxOff
+\endinput
+%%
+%% End of file `latex-lab-footnotes.ltx'.


Property changes on: trunk/Master/texmf-dist/tex/latex/latex-lab/latex-lab-footnotes.ltx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-new-or.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-new-or.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-new-or.sty	2022-06-08 20:43:50 UTC (rev 63515)
@@ -0,0 +1,169 @@
+%%
+%% This is file `latex-lab-testphase-new-or.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% latex-lab-new-or.dtx  (with options: `code')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright 2021,2022 LaTeX Project
+%% 
+%% This file was generated from file(s) of the  `LaTeX-lab 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
+%%    http://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 may only be distributed together with a copy of the LaTeX
+%% `LaTeX-lab Bundle'. You may however distribute the `LaTeX-lab Bundle'
+%% without such generated files.
+%% 
+%% The newest sources can be found below
+%% 
+%%    https://github.com/latex3/latex2e/required/latex-lab
+%% 
+%% where one can also log issues in case there are any.
+%% 
+%% 
+%% File: latex-lab-new-or.dtx
+\ProvidesFile{latex-lab-new-or.ltx}
+        [2022-03-09 v0.1b changes to the output routine]
+\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 cfgpoint
+  \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}%
+}
+\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
+\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 cfgpointii
+     \@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
+}
+\let \@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 cfgpointii \@empty
+\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
+}
+    \def\@makecol at cfgpoint {%
+       \@outputbox at appendfootnotes
+       \@outputbox at attachfloats
+       \@outputbox at reinsertbskip
+    }
+\declare at file@substitution{footmisc.sty}{latex-lab-footmisc.ltx}
+\input{latex-lab-footnotes.ltx}
+\endinput
+%%
+%% End of file `latex-lab-testphase-new-or.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-new-or.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/latex-lab/new-or-latex-lab-testphase.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/latex-lab/new-or-latex-lab-testphase.ltx	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/latex-lab/new-or-latex-lab-testphase.ltx	2022-06-08 20:43:50 UTC (rev 63515)
@@ -0,0 +1,44 @@
+%%
+%% This is file `new-or-latex-lab-testphase.ltx',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% latex-lab-testphase.dtx  (with options: `new-or')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright 2021,2022 LaTeX Project
+%% 
+%% This file was generated from file(s) of the  `LaTeX-lab 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
+%%    http://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 may only be distributed together with a copy of the LaTeX
+%% `LaTeX-lab Bundle'. You may however distribute the `LaTeX-lab Bundle'
+%% without such generated files.
+%% 
+%% The newest sources can be found below
+%% 
+%%    https://github.com/latex3/latex2e/required/latex-lab
+%% 
+%% where one can also log issues in case there are any.
+%% 
+%% 
+%% File: latex-lab-testphase.dtx
+
+\IfFileExists{latex-lab-testphase-new-or.sty}
+ {
+   \RequirePackage{latex-lab-testphase-new-or}
+ }
+ {}
+\endinput
+%%
+%% End of file `new-or-latex-lab-testphase.ltx'.


Property changes on: trunk/Master/texmf-dist/tex/latex/latex-lab/new-or-latex-lab-testphase.ltx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/latex-lab/phase-I-latex-lab-testphase.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/latex-lab/phase-I-latex-lab-testphase.ltx	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/latex-lab/phase-I-latex-lab-testphase.ltx	2022-06-08 20:43:50 UTC (rev 63515)
@@ -0,0 +1,45 @@
+%%
+%% This is file `phase-I-latex-lab-testphase.ltx',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% latex-lab-testphase.dtx  (with options: `phase-I')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright 2021,2022 LaTeX Project
+%% 
+%% This file was generated from file(s) of the  `LaTeX-lab 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
+%%    http://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 may only be distributed together with a copy of the LaTeX
+%% `LaTeX-lab Bundle'. You may however distribute the `LaTeX-lab Bundle'
+%% without such generated files.
+%% 
+%% The newest sources can be found below
+%% 
+%%    https://github.com/latex3/latex2e/required/latex-lab
+%% 
+%% where one can also log issues in case there are any.
+%% 
+%% 
+%% File: latex-lab-testphase.dtx
+
+\RequirePackage{tagpdf}
+\AddToDocumentProperties [document]{testphase/tagpdf}{loaded}
+\tagpdfsetup{activate,interwordspace}
+\AddToDocumentProperties [document]{tagging}{active}
+\AddToDocumentProperties [document]{tagging/para}{active}
+\AddToDocumentProperties [document]{tagging/interwordspace}{active}
+\endinput
+%%
+%% End of file `phase-I-latex-lab-testphase.ltx'.


Property changes on: trunk/Master/texmf-dist/tex/latex/latex-lab/phase-I-latex-lab-testphase.ltx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/latex-lab/phase-II-latex-lab-testphase.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/latex-lab/phase-II-latex-lab-testphase.ltx	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/latex-lab/phase-II-latex-lab-testphase.ltx	2022-06-08 20:43:50 UTC (rev 63515)
@@ -0,0 +1,50 @@
+%%
+%% This is file `phase-II-latex-lab-testphase.ltx',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% latex-lab-testphase.dtx  (with options: `phase-II')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright 2021,2022 LaTeX Project
+%% 
+%% This file was generated from file(s) of the  `LaTeX-lab 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
+%%    http://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 may only be distributed together with a copy of the LaTeX
+%% `LaTeX-lab Bundle'. You may however distribute the `LaTeX-lab Bundle'
+%% without such generated files.
+%% 
+%% The newest sources can be found below
+%% 
+%%    https://github.com/latex3/latex2e/required/latex-lab
+%% 
+%% where one can also log issues in case there are any.
+%% 
+%% 
+%% File: latex-lab-testphase.dtx
+
+\IfFileExists{latex-lab-testphase-new-or.sty}
+ {
+   \RequirePackage{latex-lab-testphase-new-or}
+ }
+ {}
+\RequirePackage{tagpdf}
+\AddToDocumentProperties [document]{testphase/tagpdf}{loaded}
+\tagpdfsetup{activate,paratagging,interwordspace}
+\AddToDocumentProperties [document]{tagging}{active}
+\AddToDocumentProperties [document]{tagging/para}{active}
+\AddToDocumentProperties [document]{tagging/interwordspace}{active}
+\endinput
+%%
+%% End of file `phase-II-latex-lab-testphase.ltx'.


Property changes on: trunk/Master/texmf-dist/tex/latex/latex-lab/phase-II-latex-lab-testphase.ltx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/latex-lab/tagpdf-latex-lab-testphase.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/latex-lab/tagpdf-latex-lab-testphase.ltx	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/latex-lab/tagpdf-latex-lab-testphase.ltx	2022-06-08 20:43:50 UTC (rev 63515)
@@ -0,0 +1,50 @@
+%%
+%% This is file `tagpdf-latex-lab-testphase.ltx',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% latex-lab-testphase.dtx  (with options: `tagpdf')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright 2021,2022 LaTeX Project
+%% 
+%% This file was generated from file(s) of the  `LaTeX-lab 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
+%%    http://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 may only be distributed together with a copy of the LaTeX
+%% `LaTeX-lab Bundle'. You may however distribute the `LaTeX-lab Bundle'
+%% without such generated files.
+%% 
+%% The newest sources can be found below
+%% 
+%%    https://github.com/latex3/latex2e/required/latex-lab
+%% 
+%% where one can also log issues in case there are any.
+%% 
+%% 
+%% File: latex-lab-testphase.dtx
+
+\IfFileExists{latex-lab-testphase-new-or.sty}
+ {
+   \RequirePackage{latex-lab-testphase-new-or}
+ }
+ {}
+\RequirePackage{tagpdf}
+\AddToDocumentProperties [document]{testphase/tagpdf}{loaded}
+\tagpdfsetup{activate,paratagging,interwordspace}
+\AddToDocumentProperties [document]{tagging}{active}
+\AddToDocumentProperties [document]{tagging/para}{active}
+\AddToDocumentProperties [document]{tagging/interwordspace}{active}
+\endinput
+%%
+%% End of file `tagpdf-latex-lab-testphase.ltx'.


Property changes on: trunk/Master/texmf-dist/tex/latex/latex-lab/tagpdf-latex-lab-testphase.ltx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check	2022-06-08 20:41:20 UTC (rev 63514)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2022-06-08 20:43:50 UTC (rev 63515)
@@ -451,7 +451,8 @@
     latex-brochure
     latex-course latex-doc-ptr latex-firstaid-dev
     latex-fonts latex-for-undergraduates
-    latex-git-log latex-graphics-companion latex-graphics-dev latex-lab-dev
+    latex-git-log latex-graphics-companion latex-graphics-dev
+    latex-lab latex-lab-dev
     latex-make latex-mr latex-notes-zh-cn
     latex-papersize latex-refsheet
     latex-tools-dev latex-uni8

Modified: trunk/Master/tlpkg/tlpsrc/collection-latex.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-latex.tlpsrc	2022-06-08 20:41:20 UTC (rev 63514)
+++ trunk/Master/tlpkg/tlpsrc/collection-latex.tlpsrc	2022-06-08 20:43:50 UTC (rev 63515)
@@ -42,6 +42,7 @@
 depend latex
 depend latex-bin
 depend latex-fonts
+depend latex-lab
 depend latexconfig
 depend letltxmacro
 depend ltxcmds

Added: trunk/Master/tlpkg/tlpsrc/latex-lab.tlpsrc
===================================================================


More information about the tex-live-commits mailing list.