texlive[66491] Master/texmf-dist: latex-dev (9mar23)

commits+karl at tug.org commits+karl at tug.org
Thu Mar 9 22:08:55 CET 2023


Revision: 66491
          http://tug.org/svn/texlive?view=revision&revision=66491
Author:   karl
Date:     2023-03-09 22:08:53 +0100 (Thu, 09 Mar 2023)
Log Message:
-----------
latex-dev (9mar23)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex-dev/base/README.md
    trunk/Master/texmf-dist/doc/latex-dev/base/alltt.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/cfgguide.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/cfgguide.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/changes.txt
    trunk/Master/texmf-dist/doc/latex-dev/base/classes.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/clsguide.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/clsguide.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/cmfonts.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/cyrguide.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/cyrguide.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/doc-code.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/doc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/docstrip.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/encguide.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/encguide.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/exscale.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/fix-cm.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/fntguide.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/fntguide.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/graphpap.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ifthen.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/inputenc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/lamport-manual.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/latexrelease.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/latexsym.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/lb2.err
    trunk/Master/texmf-dist/doc/latex-dev/base/lb2.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/letter.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/lgc2.err
    trunk/Master/texmf-dist/doc/latex-dev/base/lgc2.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/lppl.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltcmdhooks-code.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltcmdhooks-doc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltfilehook-code.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltfilehook-doc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/lthooks-code.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/lthooks-doc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltluatex.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltmarks-code.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltmarks-doc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews01.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews01.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews02.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews02.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews03.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews03.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews04.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews04.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews05.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews05.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews06.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews06.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews07.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews07.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews08.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews08.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews09.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews09.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews10.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews10.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews11.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews11.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews12.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews12.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews13.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews13.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews14.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews14.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews15.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews15.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews16.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews16.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews17.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews17.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews18.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews18.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews19.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews19.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews20.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews20.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews21.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews22.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews22.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews23.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews23.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews24.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews24.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews25.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews25.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews26.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews26.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews27.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews27.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews28.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews28.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews29.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews29.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews30.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews31.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews31.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews32.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews33.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews34.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews34.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews35.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews36.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews37.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews37.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltpara-code.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltpara-doc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltshipout-code.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltshipout-doc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltx3info.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltx3info.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltxdoc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/makeindx.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/modguide.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/modguide.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/nfssfont.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/proc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/slides.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/slifonts.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/source2e.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/source2e.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/syntonly.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/tlc2.err
    trunk/Master/texmf-dist/doc/latex-dev/base/tlc2.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/tulm.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/usrguide-historic.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/usrguide-historic.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/usrguide.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/usrguide.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/utf8ienc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/webcomp.pdf
    trunk/Master/texmf-dist/doc/latex-dev/latex-lab/README.md
    trunk/Master/texmf-dist/doc/latex-dev/latex-lab/changes.txt
    trunk/Master/texmf-dist/doc/latex-dev/latex-lab/documentmetadata-support-code.pdf
    trunk/Master/texmf-dist/doc/latex-dev/latex-lab/documentmetadata-support-doc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-footnotes.pdf
    trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-testphase.pdf
    trunk/Master/texmf-dist/source/latex-dev/base/alltt.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/alltt.ins
    trunk/Master/texmf-dist/source/latex-dev/base/classes.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/classes.ins
    trunk/Master/texmf-dist/source/latex-dev/base/cmextra.ins
    trunk/Master/texmf-dist/source/latex-dev/base/cmfonts.ins
    trunk/Master/texmf-dist/source/latex-dev/base/docstrip.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/docstrip.ins
    trunk/Master/texmf-dist/source/latex-dev/base/ec.ins
    trunk/Master/texmf-dist/source/latex-dev/base/exscale.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/exscale.ins
    trunk/Master/texmf-dist/source/latex-dev/base/fix-cm.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/fix-cm.ins
    trunk/Master/texmf-dist/source/latex-dev/base/fontdef.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/format.ins
    trunk/Master/texmf-dist/source/latex-dev/base/graphpap.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/graphpap.ins
    trunk/Master/texmf-dist/source/latex-dev/base/ifthen.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ifthen.ins
    trunk/Master/texmf-dist/source/latex-dev/base/inputenc.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/inputenc.ins
    trunk/Master/texmf-dist/source/latex-dev/base/latex209.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/latex209.ins
    trunk/Master/texmf-dist/source/latex-dev/base/latexrelease.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/latexrelease.ins
    trunk/Master/texmf-dist/source/latex-dev/base/latexsym.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/latexsym.ins
    trunk/Master/texmf-dist/source/latex-dev/base/letter.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/letter.ins
    trunk/Master/texmf-dist/source/latex-dev/base/ltalloc.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltbibl.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltboxes.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltclass.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltcmd.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltcntrl.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltcounts.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltdirchk.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/lterror.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltexpl.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltfilehook.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltfiles.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltfinal.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltfloat.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltfntcmd.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltfssaxes.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltfssbas.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltfsscmp.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltfssdcl.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltfssini.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltfsstrc.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/lthooks.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/lthyphen.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltidxglo.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltkeys.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltlength.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltlists.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltlogos.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltluatex.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltmath.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltoutenc.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltoutenc.ins
    trunk/Master/texmf-dist/source/latex-dev/base/ltoutput.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltpage.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltpageno.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltpar.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltpara.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltpictur.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltplain.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltsect.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltshipout.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltspace.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/lttab.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/lttextcomp.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltthm.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltvers.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltxdoc.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltxref.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/makeindx.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/makeindx.ins
    trunk/Master/texmf-dist/source/latex-dev/base/newdc.ins
    trunk/Master/texmf-dist/source/latex-dev/base/newlfont.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/nfssfont.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/nfssfont.ins
    trunk/Master/texmf-dist/source/latex-dev/base/olddc.ins
    trunk/Master/texmf-dist/source/latex-dev/base/oldlfont.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/preload.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/proc.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/proc.ins
    trunk/Master/texmf-dist/source/latex-dev/base/slides.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/slides.ins
    trunk/Master/texmf-dist/source/latex-dev/base/syntonly.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/syntonly.ins
    trunk/Master/texmf-dist/source/latex-dev/base/tulm.ins
    trunk/Master/texmf-dist/source/latex-dev/base/unpack.ins
    trunk/Master/texmf-dist/source/latex-dev/base/utf8ienc.dtx
    trunk/Master/texmf-dist/source/latex-dev/latex-lab/documentmetadata-support.dtx
    trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-footnotes.dtx
    trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-testphase.dtx
    trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab.ins
    trunk/Master/texmf-dist/tex/latex-dev/base/alltt.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/ansinew.def
    trunk/Master/texmf-dist/tex/latex-dev/base/applemac.def
    trunk/Master/texmf-dist/tex/latex-dev/base/article.cls
    trunk/Master/texmf-dist/tex/latex-dev/base/article.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/ascii.def
    trunk/Master/texmf-dist/tex/latex-dev/base/atbegshi-ltx.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/atveryend-ltx.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/bezier.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/bk10.clo
    trunk/Master/texmf-dist/tex/latex-dev/base/bk11.clo
    trunk/Master/texmf-dist/tex/latex-dev/base/bk12.clo
    trunk/Master/texmf-dist/tex/latex-dev/base/book.cls
    trunk/Master/texmf-dist/tex/latex-dev/base/book.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/cp1250.def
    trunk/Master/texmf-dist/tex/latex-dev/base/cp1252.def
    trunk/Master/texmf-dist/tex/latex-dev/base/cp1257.def
    trunk/Master/texmf-dist/tex/latex-dev/base/cp437.def
    trunk/Master/texmf-dist/tex/latex-dev/base/cp437de.def
    trunk/Master/texmf-dist/tex/latex-dev/base/cp850.def
    trunk/Master/texmf-dist/tex/latex-dev/base/cp852.def
    trunk/Master/texmf-dist/tex/latex-dev/base/cp858.def
    trunk/Master/texmf-dist/tex/latex-dev/base/cp865.def
    trunk/Master/texmf-dist/tex/latex-dev/base/decmulti.def
    trunk/Master/texmf-dist/tex/latex-dev/base/doc.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/docstrip.tex
    trunk/Master/texmf-dist/tex/latex-dev/base/exscale.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/fix-cm.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/fixltx2e.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/flafter.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/fleqn.clo
    trunk/Master/texmf-dist/tex/latex-dev/base/fleqn.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/fltrace.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/fontenc.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/fontmath.cfg
    trunk/Master/texmf-dist/tex/latex-dev/base/fontmath.ltx
    trunk/Master/texmf-dist/tex/latex-dev/base/fonttext.cfg
    trunk/Master/texmf-dist/tex/latex-dev/base/fonttext.ltx
    trunk/Master/texmf-dist/tex/latex-dev/base/graphpap.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/hyphen.ltx
    trunk/Master/texmf-dist/tex/latex-dev/base/idx.tex
    trunk/Master/texmf-dist/tex/latex-dev/base/ifthen.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/inputenc.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/lablst.tex
    trunk/Master/texmf-dist/tex/latex-dev/base/latex.ltx
    trunk/Master/texmf-dist/tex/latex-dev/base/latex209.def
    trunk/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/latexsym.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/latin1.def
    trunk/Master/texmf-dist/tex/latex-dev/base/latin10.def
    trunk/Master/texmf-dist/tex/latex-dev/base/latin2.def
    trunk/Master/texmf-dist/tex/latex-dev/base/latin3.def
    trunk/Master/texmf-dist/tex/latex-dev/base/latin4.def
    trunk/Master/texmf-dist/tex/latex-dev/base/latin5.def
    trunk/Master/texmf-dist/tex/latex-dev/base/latin9.def
    trunk/Master/texmf-dist/tex/latex-dev/base/lcyenc.dfu
    trunk/Master/texmf-dist/tex/latex-dev/base/leqno.clo
    trunk/Master/texmf-dist/tex/latex-dev/base/leqno.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/letter.cls
    trunk/Master/texmf-dist/tex/latex-dev/base/letter.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/ltluatex.lua
    trunk/Master/texmf-dist/tex/latex-dev/base/ltluatex.tex
    trunk/Master/texmf-dist/tex/latex-dev/base/ltnews.cls
    trunk/Master/texmf-dist/tex/latex-dev/base/ltxcheck.tex
    trunk/Master/texmf-dist/tex/latex-dev/base/ltxdoc.cfg
    trunk/Master/texmf-dist/tex/latex-dev/base/ltxdoc.cls
    trunk/Master/texmf-dist/tex/latex-dev/base/ly1enc.dfu
    trunk/Master/texmf-dist/tex/latex-dev/base/macce.def
    trunk/Master/texmf-dist/tex/latex-dev/base/makeidx.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/newlfont.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/next.def
    trunk/Master/texmf-dist/tex/latex-dev/base/nfssfont.tex
    trunk/Master/texmf-dist/tex/latex-dev/base/oldlfont.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/omlcmm.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/omlcmr.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/omlenc.def
    trunk/Master/texmf-dist/tex/latex-dev/base/omllcmm.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/omscmr.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/omscmsy.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/omsenc.def
    trunk/Master/texmf-dist/tex/latex-dev/base/omsenc.dfu
    trunk/Master/texmf-dist/tex/latex-dev/base/omslcmsy.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/omxcmex.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/omxlcmex.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/openbib.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmdh.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmfib.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmfr.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmr.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmss.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmtt.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmvtt.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/ot1enc.def
    trunk/Master/texmf-dist/tex/latex-dev/base/ot1enc.dfu
    trunk/Master/texmf-dist/tex/latex-dev/base/ot1lcmss.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/ot1lcmtt.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/ot2enc.dfu
    trunk/Master/texmf-dist/tex/latex-dev/base/ot4enc.def
    trunk/Master/texmf-dist/tex/latex-dev/base/preload.cfg
    trunk/Master/texmf-dist/tex/latex-dev/base/preload.ltx
    trunk/Master/texmf-dist/tex/latex-dev/base/proc.cls
    trunk/Master/texmf-dist/tex/latex-dev/base/proc.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/report.cls
    trunk/Master/texmf-dist/tex/latex-dev/base/report.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/sfonts.def
    trunk/Master/texmf-dist/tex/latex-dev/base/shortvrb.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/showidx.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/size10.clo
    trunk/Master/texmf-dist/tex/latex-dev/base/size11.clo
    trunk/Master/texmf-dist/tex/latex-dev/base/size12.clo
    trunk/Master/texmf-dist/tex/latex-dev/base/slides.cls
    trunk/Master/texmf-dist/tex/latex-dev/base/slides.def
    trunk/Master/texmf-dist/tex/latex-dev/base/slides.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/structuredlog.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/syntonly.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/t1cmdh.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/t1cmfib.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/t1cmfr.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/t1cmr.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/t1cmss.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/t1cmtt.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/t1cmvtt.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/t1enc.def
    trunk/Master/texmf-dist/tex/latex-dev/base/t1enc.dfu
    trunk/Master/texmf-dist/tex/latex-dev/base/t1enc.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/t1lcmss.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/t1lcmtt.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/t2aenc.dfu
    trunk/Master/texmf-dist/tex/latex-dev/base/t2benc.dfu
    trunk/Master/texmf-dist/tex/latex-dev/base/t2cenc.dfu
    trunk/Master/texmf-dist/tex/latex-dev/base/testpage.tex
    trunk/Master/texmf-dist/tex/latex-dev/base/textcomp-2018-08-11.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/textcomp.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/tracefnt.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/ts1cmr.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/ts1cmss.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/ts1cmtt.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/ts1cmvtt.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/ts1enc.def
    trunk/Master/texmf-dist/tex/latex-dev/base/ts1enc.dfu
    trunk/Master/texmf-dist/tex/latex-dev/base/tuenc.def
    trunk/Master/texmf-dist/tex/latex-dev/base/tulmdh.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/tulmr.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/tulmss.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/tulmssq.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/tulmtt.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/tulmvtt.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/ucmr.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/ucmss.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/ucmtt.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/ulasy.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/ullasy.fd
    trunk/Master/texmf-dist/tex/latex-dev/base/utf8-2018.def
    trunk/Master/texmf-dist/tex/latex-dev/base/utf8.def
    trunk/Master/texmf-dist/tex/latex-dev/base/utf8enc.dfu
    trunk/Master/texmf-dist/tex/latex-dev/base/x2enc.dfu
    trunk/Master/texmf-dist/tex/latex-dev/latex-lab/documentmetadata-support.ltx
    trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-footmisc.ltx
    trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-footnotes.ltx
    trunk/Master/texmf-dist/tex/latex-dev/latex-lab/new-or-latex-lab-testphase.ltx
    trunk/Master/texmf-dist/tex/latex-dev/latex-lab/phase-I-latex-lab-testphase.ltx
    trunk/Master/texmf-dist/tex/latex-dev/latex-lab/phase-II-latex-lab-testphase.ltx
    trunk/Master/texmf-dist/tex/latex-dev/latex-lab/tagpdf-latex-lab-testphase.ltx

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex-dev/latex-lab/blocks-code.pdf
    trunk/Master/texmf-dist/doc/latex-dev/latex-lab/blocks-code.tex
    trunk/Master/texmf-dist/doc/latex-dev/latex-lab/blocks-doc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/latex-lab/blocks-doc.tex
    trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-amsmath.pdf
    trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-block-tagging.pdf
    trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-mathpkg.pdf
    trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-mathtagging.pdf
    trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-mathtools.pdf
    trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-new-or-1.pdf
    trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-new-or-2.pdf
    trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-sec-tagging.pdf
    trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-toc-hyperref-changes.pdf
    trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-toc-kernel-changes.pdf
    trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-toc-tagging-functions.pdf
    trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-amsmath.dtx
    trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-block-tagging.dtx
    trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-mathpkg.dtx
    trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-mathtagging.dtx
    trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-mathtools.dtx
    trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-new-or-1.dtx
    trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-new-or-2.dtx
    trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-sec-tagging.dtx
    trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-toc-hyperref-changes.dtx
    trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-toc-kernel-changes.dtx
    trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-toc-tagging-functions.dtx
    trunk/Master/texmf-dist/tex/latex-dev/latex-lab/block-tagging-latex-lab-testphase.ltx
    trunk/Master/texmf-dist/tex/latex-dev/latex-lab/glyphtounicode-cmex.tex
    trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-amsmath.ltx
    trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-kernel-changes.sty
    trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-mathpkg.ltx
    trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-mathtagging.ltx
    trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-mathtools.ltx
    trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-block-tagging.sty
    trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-math.sty
    trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-new-or-1.sty
    trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-new-or-2.sty
    trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-sec-tagging.sty
    trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-toc-tagging.sty
    trunk/Master/texmf-dist/tex/latex-dev/latex-lab/math-latex-lab-testphase.ltx
    trunk/Master/texmf-dist/tex/latex-dev/latex-lab/new-or-1-latex-lab-testphase.ltx
    trunk/Master/texmf-dist/tex/latex-dev/latex-lab/phase-III-latex-lab-testphase.ltx
    trunk/Master/texmf-dist/tex/latex-dev/latex-lab/sec-tagging-latex-lab-testphase.ltx
    trunk/Master/texmf-dist/tex/latex-dev/latex-lab/toc-tagging-latex-lab-testphase.ltx

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-new-or.pdf
    trunk/Master/texmf-dist/doc/latex-dev/latex-lab/usage-of-footnotemark.txt
    trunk/Master/texmf-dist/doc/latex-dev/latex-lab/usage-of-footnotetext.txt
    trunk/Master/texmf-dist/doc/latex-dev/latex-lab/usage-of-kern-kern.txt
    trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-new-or.dtx
    trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-new-or.sty

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/README.md	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/README.md	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,7 +1,7 @@
 The LaTeX kernel
 ================
 
-Release 2023-06-01 pre-release 1
+Release 2023-06-01 pre-release 2
 
 Overview
 --------

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/alltt.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/cfgguide.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/cfgguide.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/cfgguide.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/cfgguide.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -41,7 +41,7 @@
 
 \author{\copyright~Copyright 1998, 2001, 2003 \LaTeX\ Project Team.\\
    All rights reserved.%
-   \footnote{This file may distributed and/or modified under the
+   \footnote{This file 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. See the source
     \texttt{cfgguide.tex} for full details.}%

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/changes.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/changes.txt	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/changes.txt	2023-03-09 21:08:53 UTC (rev 66491)
@@ -6,11 +6,28 @@
 are not part of the distribution.
 ================================================================================
 
+2023-01-30  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* ltpara.dtx (subsection{Providing hooks for paragraphs}):
+	Backout \parskip at top of minipage if it shouldn't be there
+	but is due to whatsits (gh/989)
+
+2023-01-16 Yukai Chou <muzimuzhi at gmail.com>
+
+	* ltnews.cls:
+	Added full release date yyyy-mm-dd to _all_ ltnews issues.
+	Added \publicationday{<day>} to specify day in a month in ltnews<n>.tex.
+	<day> defaults to 01.
+
 ================================================================================
 All changes above are only part of the development branch for the next release.
 ================================================================================
 
+2023-01-19  Josef Friedrich <josef at friedrich.rocks>
 
+	* ltluatex.dtx:
+	Remove unused local variable tex_setattribute (gh/978)
+
 2022-11-24  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
 
 	* ltdefns.dtx (subsubsection{Copying robust commands}):
@@ -196,7 +213,7 @@
 
 	* doc.dtx
 	recast Package Option declarations using \DeclareKeys
- 
+
 2022-06-10  Ulrike Fischer <Ulrike.Fischer at latex-project.org>
 
 	* cmfonts.fdd

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/classes.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/clsguide.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/clsguide.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/clsguide.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/clsguide.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -36,7 +36,7 @@
 
 \author{Copyright \copyright~1995--2006 The \LaTeX\ Project\\
    All rights reserved.%
-   \footnote{This file may distributed and/or modified under the
+   \footnote{This file 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. See the source
     \texttt{clsguide.tex} for full details.}%

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/cmfonts.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/cyrguide.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/cyrguide.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/cyrguide.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/cyrguide.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -34,7 +34,7 @@
 
 \author{\copyright~Copyright 1998--1999,\\ Vladimir Volovich,
         Werner Lemberg and \LaTeX\ Project Team.\\ All rights reserved.%
-        \footnote{This file may distributed and/or modified under the
+        \footnote{This file 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. See the source
          \texttt{cyrguide.tex} for full details.}%

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/doc-code.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/docstrip.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/encguide.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/encguide.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/encguide.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/encguide.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/exscale.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/fix-cm.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/fntguide.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/fntguide.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/fntguide.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/fntguide.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 %
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
@@ -46,7 +46,7 @@
   Team.\thanks{Thanks to Arash Esbati for documenting the
     newer NFSS features of 2020}\\
   All rights reserved.%
-  \footnote{This file may distributed and/or modified under the
+  \footnote{This file 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. See the source
    \texttt{fntguide.tex} for full details.}%

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/graphpap.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ifthen.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/inputenc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/lamport-manual.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/latexrelease.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/latexsym.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/lb2.err
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/lb2.err	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/lb2.err	2023-03-09 21:08:53 UTC (rev 66491)
@@ -363,10 +363,15 @@
 )
 \end{verbatim}
 
-
 \begin{list}{}{\setlength\leftmargin{0cm}\setlength\rightmargin{3cm}}
 \item[]
 
+Beide Ausgaben sind nur noch antiquarisch erhältlich. Das englische
+Original "`The \LaTeX{} Companion"' existiert in der dritten Ausgabe
+(Erscheinungsdatum Mai 2023).
+
+\item[]
+
 Diese Errata-Datei (\texttt{\jobname.err}) ist Teil der
 \LaTeX-Distribution und die neuste Version findet man auf der \LaTeX{}
 Project Webseite unter

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/lb2.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/letter.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/lgc2.err
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/lgc2.err	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/lgc2.err	2023-03-09 21:08:53 UTC (rev 66491)
@@ -330,7 +330,27 @@
 )
 \end{verbatim}
 
+Reprinted by Lehmanns in 2022:
 
+\begin{verbatim}
+ at book(Lehmanns:GMRRV2022,
+   author = {Michel Goossens and Frank Mittelbach and Sebastian Rahtz
+             and Denis Roegel and Herbert Vo{\ss}},
+   title = {The {\LaTeX} Graphics Companion},
+   edition = 2,
+   series = {Tools and Techniques for Computer Typesetting},
+   publisher = {Lehmanns Media},
+   address = {Köln},
+   year = {2022},
+   isbn = {978-3-96543-303-8 (softcover), 978-3-96543-299-4 (ebook)},
+   originalyear = {2007},
+   pagenums = {976},
+   bibliography = {yes},
+   index = {yes},
+)
+\end{verbatim}
+
+
 \begin{list}{}{\setlength\leftmargin{0cm}\setlength\rightmargin{3cm}}
 \item[]
 
@@ -378,7 +398,7 @@
 Contest period ends & Winner \\[4pt]
 2008/05 & Milan Vujtek            &  16 suggestions\\
 2010/05 &                         & \\
-\ldots  & contest no longer open
+\ldots  & -- contest no longer open --
 \end{tabular}
 \end{center}
 \end{list}

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/lgc2.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/lppl.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltcmdhooks-code.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltcmdhooks-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltfilehook-code.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltfilehook-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/lthooks-code.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/lthooks-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltluatex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltmarks-code.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltmarks-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,7 +1,7 @@
 % \iffalse meta-comment
 %
 % Copyright (C) 2006, 2009, 2011, 2014 Heiko Oberdiek
-% Copyright (C) 2014-2022
+% Copyright (C) 2014-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -113,22 +113,11 @@
    \renewcommand{\@evenfoot}{\@indiciafont\@indicia\hfill --\thepage}%
 }
 
-\newcommand*{\MonthJanuary}{01}
-\newcommand*{\MonthFebruary}{02}
-\newcommand*{\MonthMarch}{03}
-\newcommand*{\MonthApril}{04}
-\newcommand*{\MonthMay}{05}
-\newcommand*{\MonthJune}{06}
-\newcommand*{\MonthJuly}{07}
-\newcommand*{\MonthAugust}{08}
-\newcommand*{\MonthSeptember}{09}
-\newcommand*{\MonthOctober}{10}
-\newcommand*{\MonthNovember}{11}
-\newcommand*{\MonthDecember}{12}
 \newcommand*{\printissue}{%
   Issue %
   \texorpdfstring{\number\value{issue}}{\theissue}, %
-  \texorpdfstring{\@month\space\@year}{\@year/\@nameuse{Month\@month}}%
+  \texorpdfstring{\@month\space\@year\space(\publicationdate)}
+    {\@year/\@julianmonthtonum{\@month}}%
 }
 \let\l at part\l at section
 \let\l at section\l at subsection
@@ -303,6 +292,7 @@
   \loop
   \ifnum\value{issue}<\lastissue
     \stepcounter{issue}%
+    \publicationday{01}%
     \input{ltnews\theissue}%
   \repeat
   \stepcounter{issue}%

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews01.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews01.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews01.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews01.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews02.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews02.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews02.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews02.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews03.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews03.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews03.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews03.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews04.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews04.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews04.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews04.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews05.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews05.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews05.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews05.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews06.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews06.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews06.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews06.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews07.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews07.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews07.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews07.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews08.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews08.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews08.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews08.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews09.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews09.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews09.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews09.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews10.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews10.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews10.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews10.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews11.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews11.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews11.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews11.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews12.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews12.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews12.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews12.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews13.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews13.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews13.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews13.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews14.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews14.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews14.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews14.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews15.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews15.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews15.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews15.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews16.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews16.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews16.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews16.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews17.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews17.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews17.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews17.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews18.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews18.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews18.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews18.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews19.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews19.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews19.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews19.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -36,6 +36,7 @@
 
 \usepackage{lmodern,url}
 
+\publicationday{24}
 \publicationmonth{September}
 \publicationyear{2009}
 

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews20.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews20.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews20.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews20.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -36,6 +36,7 @@
 
 \usepackage{lmodern,url}
 
+\publicationday{27}
 \publicationmonth{June}
 \publicationyear{2011}
 

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews21.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews22.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews22.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews22.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews22.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2015-2022
+% Copyright (C) 2015-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews23.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews23.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews23.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews23.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2015-2022
+% Copyright (C) 2015-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews24.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews24.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews24.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews24.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2015-2022
+% Copyright (C) 2015-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews25.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews25.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews25.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews25.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2016-2022
+% Copyright (C) 2016-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews26.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews26.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews26.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews26.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2017-2022
+% Copyright (C) 2017-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews27.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews27.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews27.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews27.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2017-2022
+% Copyright (C) 2017-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -35,6 +35,7 @@
 
 \usepackage{lmodern,url,hologo}
 
+\publicationday{15}
 \publicationmonth{April}
 \publicationyear{2017}
 

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews28.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews28.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews28.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews28.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2017-2022
+% Copyright (C) 2017-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews29.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews29.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews29.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews29.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2018-2022
+% Copyright (C) 2018-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews30.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews31.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews31.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews31.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews31.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -119,6 +119,7 @@
 \fi
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
+\publicationday{02}
 \publicationmonth{February}
 \publicationyear{2020}
 

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews32.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews33.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews34.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews34.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews34.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews34.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -116,6 +116,7 @@
 \providecommand\tubcommand[1]{}
 \tubcommand{\input{tubltmac}}
 
+\publicationday{15}
 \publicationmonth{November}
 \publicationyear{2021}
 

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews35.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews36.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews37.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews37.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews37.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews37.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -122,6 +122,7 @@
 \providecommand\tubcommand[1]{}
 \tubcommand{\input{tubltmac}}
 
+% \publicationday{01} % change this if it's not released on 1st of a month
 \publicationmonth{June}
 \publicationyear{2023  --- DRAFT version for upcoming release}
 
@@ -144,6 +145,106 @@
 \section{Introduction}
 
 
+\section{New functionality offered as part of the
+  \enquote{\LaTeX{} Tagged PDF} project}
+
+We have now enabled new automatic tagging functionality for additional
+\LaTeX{} elements, among them most display environments, standard
+sectioning commands and content, figure and table listings. This can
+be activated through
+\begin{verbatim}
+\DocumentMetadata{testphase=phase-III}
+\end{verbatim}
+At this point in time tagging support is only available for a
+restricted set of documents, i.e., those that use one of the basic
+document classes (\texttt{article}, \texttt{report}, and
+\texttt{book}) and only use commands and environments described in
+Lamport's \LaTeX{} manual.
+
+Using other document classes or adding additional packages in the
+preamble may work (or may partially work) but at this stage it is not
+very likely, at least not for packages or classes that excessively
+alter internals of \LaTeX{}.
+
+Also note that there are still several environments and commands
+described in the \LaTeX{} manual that do not have tagging support yet,
+notably tabulars, floats, \texttt{tabbing} and the various math
+environment.  They will get this support as part of \texttt{phase-III}
+between now and the June release.
+
+A prototype for math tagging (including support for the \pkg{amsmath}
+environments) is already available, but it is mainly intended for
+experimentation and feedback and the resulting tagging is by no means
+the way we envision it to be eventually. If you like to try it out use
+the following line:
+\begin{verbatim}
+\DocumentMetadata{testphase={phase-III,math}}
+\end{verbatim}
+Note that the math tagging code at this point in time will clash with
+packages that redefine the \texttt{\$} (which then may lead to strange
+errors) and that packages that use math mode for non-mathematical
+constructs may result in surprising output as far as tagging is
+concerned. Feedback on which packages fail with the code in one or the
+other way would be appreciated.
+
+The \texttt{latex-lab} bundle contains various 
+(still untagged) documentation files about the new code that can
+be accessed with \verb|texdoc -l latex-lab|.
+
+Feedback is welcome! 
+Please use \url{https://github.com/latex3/latex2e/discussions/1010}.
+
+\section{Documentation improvements}
+
+
+\subsection{Displaying the exact release dates for \LaTeX{}}
+
+In some situations it is necessary to find out the exact release dates
+for older version of the \LaTeX{} format, for example, when you need
+to use different code in a package depending on the availablilty of a
+certain feature and you therefore want to use
+\cs{IfFormatAtLeastTF}\texttt\{\meta{date}\texttt\} or the
+rather horrible construction \verb/\@ifl at t@r\fmtversion{/\meta{date}\texttt\},
+if you
+want to cater for formats that are older than 2020.
+
+Or you know that your package is definitely not going to work with a
+format before a certain \meta{date}, in which case you could use
+\verb/\NeedsTeXFormat{LaTeX2e}[/\meta{date}\texttt] to ensure that any
+  user is alerted if their format is too old.
+
+The big problem is to know the exact \meta{date} to put into such
+commands and in the past that was not that easy to find. You could have 
+looked in the the file \file{changes.txt}, but that is hidden somewhere
+in your installation and if you try
+\verb*/texdoc -l changes.txt/ you get more than thirty results and the
+right file is by no means the first.
+
+Yukai Chou (\textsf{@muzimuzhi}) kindly provided a patch for this, so that we now have
+the exact dates for each \LaTeX{} format listed in an easy to remember
+place: in \file{ltnews.pdf} and that file conveniently also contains all major
+features and changes to \LaTeX{} over the years\Dash one of which is
+most likely the reason you need the \meta{date} date in the first
+place.
+
+It is given in parentheses in the newsletter title, thus this
+newsletter tells you that on
+%
+\makeatletter
+\mbox{\expandafter\@gobblenonyear\@year\@nil
+  -\@julianmonthtonum\@month-\two at digits\@day}
+\makeatother
+%
+the command
+\cs{NewEnvironmentCopy}, a new \texttt{shipout} hook, etc.\ was made
+available.  And looking into \file{ltnews.pdf} you can now easily find
+out that the \LaTeX3 programming layer was added on 2020-02-02
+(because the date was so nice) and not on the first of the month.
+%
+\githubissue{982}
+
+
+
 \section{New or improved commands}
 
 
@@ -190,6 +291,21 @@
 \githubissue{943}
 
 
+\subsection{Default definition for \cs{do}}
+
+The command \cs{do} with its nice public name is in reality an
+internal command inherited from plain \TeX{} for list
+processing. However, it only got a definition when
+\verb=\begin{document}= was executed, with a result that a user
+definition in the preamble was unconditionally overwritten at this
+point. To properly alert the user that this command is not freely
+available we now already provide a definition in the format so that
+\cs{newcommand} and friends produce a proper error message instead of
+providing a definition that doesn't last.
+%
+\githubissue{975}
+
+
 \subsection{\pkg{doc}: Support the \pkg{upquote} package}
 
 The default quote and backquote characters in typewriter fonts are
@@ -318,7 +434,26 @@
 \githubissue{967}
 
 
+\subsection{Improve spacing at top of \env{minipages}}
 
+A list and several other document elements add some vertical space in
+front of them. However this should not happen at the beginning of a
+box (such as a \env{minipage}) and normally it doesn't, because
+\TeX{} automatically drops such spaces at the start of a vertical
+list. However, if there is some invisible material, such as a
+\cs{color} command, some \pkg{hyperref} anchor, a \cs{write} or
+something else, then the list is no longer empty and \TeX{} no longer
+drops spaces, hence the difference.
+
+With the new paragraph handling introduced in 2021 it is now finally
+possible to detect and avoid this problem and apply appropriate
+counter measures so that from now on the spacing will be always
+correct.
+%
+\githubissue{989}
+
+
+
 \section{Changes to packages in the \pkg{amsmath} category}
 
 \section{Changes to packages in the \pkg{graphics} category}
@@ -326,6 +461,19 @@
 \section{Changes to packages in the \pkg{tools} category}
 
 
+\subsection{Fix handling of nested \env{multicols}}
+
+If \env{multicols} environments have been nested into each other (the
+inner one boxed) it could fail if the boxed environment appeared near a
+page break. The problem was that the output routine was called while
+the \cs{hsize} was still altered to fit the column width of the inner
+\env{multicols} --- thereby messing up the placement of columns of the
+page. This has now been fixed.
+%
+\githubissue{1002}
+
+
+
 %\medskip
 
 \begin{thebibliography}{9}

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltpara-code.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltpara-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltshipout-code.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltshipout-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltx3info.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltx3info.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltx3info.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltx3info.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltxdoc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/makeindx.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/modguide.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/modguide.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/modguide.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/modguide.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -42,7 +42,7 @@
 
 \author{\copyright~Copyright 1995, \LaTeX\ Project Team.\\
    All rights reserved.%
-   \footnote{This file may distributed and/or modified under the
+   \footnote{This file 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. See the source
      texttt{modguide.tex} for full details.}%

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/nfssfont.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/proc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/slides.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/slifonts.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/source2e.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/source2e.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/source2e.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/source2e.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/syntonly.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/tlc2.err
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/tlc2.err	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/tlc2.err	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,4 +1,4 @@
-\newcommand\erratafiledate{2022-01-03}
+\newcommand\erratafiledate{2023-01-08}
 
 \def\comando#1{\texttt{\string#1}}
 
@@ -359,7 +359,7 @@
 \end{center}
 
 Any mistake found and reported is a gain for all readers of our book.
-For this reason Addison-Wesley and the authors offer a prize (for 6
+For this reason Addison-Wesley and the authors offer a prize (for 5
 periods) to the eligible person who finds the largest
 number of bugs during that period (in case of a draw a random choice
 will be made between all those with the largest number of findings).
@@ -385,7 +385,7 @@
 2005/10 & Daniel Alonso i Alemany &  13 suggestions\\
 2006/04 & Michael Schutte         &   2 suggestions\\
 2008/05 & Brooks Moses            &   1 suggestion \\
-\ldots  & -- final draw eventually --
+        & -- final draw was 2008/05 --
 \end{tabular}
 \end{center}
 \end{list}
@@ -2185,7 +2185,9 @@
     |\dag| and |\ddag| are |\mathord|s not |\mathbin| as claimed in table
     8.13.
 
+    Frank: This is actually correct nowadays (maybe it wasn't in 2008)
 
+
 \seriouserroronpage{529}{table 8.12, l.3}{JGr}{2004/06/10}{2}
     \verb=\mathring{x}=  is missing its accent.
 
@@ -2202,6 +2204,9 @@
     aren't (as claimed in legend) synonyms of |\dagger|
     and |\ddagger| respectively.
 
+    Frank: This is actually correct nowadays (maybe it wasn't in 2008)
+
+
 \erroronpage{531}{table 8.15}{BMo/FMi}{2004/05/21}{2}
   The commands starting with |\var...| are only partially in blue to
   indicate their relationship with those commands missing the ``var'' in their
@@ -2236,10 +2241,6 @@
    Various deviations from alphabetical sort order of the table
    entries.
 
-\erroronpage{553}{para 3,  l.1}{EOl}{2022/01/02}{}
-   Missing letter: ``sup\u{p}ressing'' 
-
-
 \iffalse % more blue align stuff
 \erroronpage{534}{page}{FMi}{2004/04/23}{}
    Printing problem: blue color not properly aligned (horizontally).
@@ -2332,6 +2333,10 @@
  respectively %(ref: TB 14-3-252-259)
 
 
+\erroronpage{553}{para 3,  l.1}{EOl}{2022/01/02}{}
+   Missing letter: ``sup\u{p}ressing'' 
+
+
 \seriouserroronpage{553}{para 4}{UFi}{2004/06/03}{2}
 
  Replace with:  ``Another popular shorthand is |"-|, which indicates a

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/tlc2.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/tulm.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/usrguide-historic.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/usrguide-historic.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/usrguide-historic.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/usrguide-historic.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -36,7 +36,7 @@
 
 \author{\copyright~Copyright 1995--2022, \LaTeX\ Project Team.\\
    All rights reserved.%
-   \footnote{This file may distributed and/or modified under the
+   \footnote{This file 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. See the source
     \texttt{usrguide.tex} for full details.}%

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/usrguide.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/usrguide.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/usrguide.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/usrguide.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2020-2022
+% Copyright (C) 2020-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -36,7 +36,7 @@
 \title{\LaTeX\ for authors --- current version}
 \author{\copyright~Copyright 2020-2022, \LaTeX\ Project Team.\\
    All rights reserved.%
-   \footnote{This file may distributed and/or modified under the
+   \footnote{This file 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. See the source
     \texttt{usrguide.tex} for full details.}%

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/utf8ienc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/webcomp.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/latex-lab/README.md	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/latex-lab/README.md	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 # LaTeX laboratory
 
-Release 2023-05-01 pre-release 0
+Release 2023-06-01 pre-release 2
 
 ## Overview
 
@@ -38,5 +38,5 @@
 
 This README file is
 
-Copyright (C) 2021-2022
+Copyright (C) 2021-2023
 The LaTeX Project

Added: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/blocks-code.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/blocks-code.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/latex-lab/blocks-code.pdf	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/latex-lab/blocks-code.pdf	2023-03-09 21:08:53 UTC (rev 66491)

Property changes on: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/blocks-code.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/blocks-code.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/latex-lab/blocks-code.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex-dev/latex-lab/blocks-code.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,4 @@
+% this will typeset documentation + code
+
+\AtBeginDocument{\AlsoImplementation}
+\input{latex-lab-block-tagging.dtx}


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

Index: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/blocks-doc.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/latex-lab/blocks-doc.pdf	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/latex-lab/blocks-doc.pdf	2023-03-09 21:08:53 UTC (rev 66491)

Property changes on: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/blocks-doc.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/blocks-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/latex-lab/blocks-doc.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex-dev/latex-lab/blocks-doc.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,4 @@
+% this will typeset documentation + code
+
+\AtBeginDocument{\OnlyDescription}
+\input{latex-lab-block-tagging.dtx}


Property changes on: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/blocks-doc.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/changes.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/latex-lab/changes.txt	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/latex-lab/changes.txt	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,3 +1,41 @@
+2023-03-08  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* latex-lab-block-tagging.dtx:
+	Added the support for tagging  display blocks and corresponding environments
+	such as lists, quotes, verbatim, theorem-like envs, ...
+
+2023-03-07 Ulrike Fischer <Ulrike.Fischer at latex-project.org>
+
+	* tagpdf updated
+	* improved glyphtounicode support for luatex and math
+	* adapted toc and sec tagging code to new two-level paragraph handling
+	and block tagging code
+
+2023-02-16 Ulrike Fischer <Ulrike.Fischer at latex-project.org>
+
+	* latex-lab-sec-tagging.dtx: first, simple tagging of sectioning commands
+	* latex-lab-toc-tagging-functions.dtx, latex-lab-toc-kernel-changes.dtx,
+	latex-lab-toc-kernel-changes.dtx: Tagging of table of contents and similar
+	lists
+	* tagpdf and pdfmanagement updated in texmf tree.
+
+
+2023-02-04 Ulrike Fischer <Ulrike.Fischer at latex-project.org>
+
+    * latex-lab-footnotes.dtx: improve tagging of footnotes
+
+2022-12-11 Joseph Wright <Joseph.Wright at latex-project.org>
+
+	* latex-lab-mathcapture.dtx
+	 New file to implement grabbing of math mode context
+
+2022-04-11 Ulrike Fischer <Ulrike.Fischer at latex-project.org>
+
+	* documentmeta-support.dtx:
+	updated documentation
+	* moved output patches from pdfresources to latex-lab-new-or-1
+	* reorganized new-or: number subfiles as new-or-1, new-or-2 and load all with new-or.
+
 2022-07-22  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
 
 	* latex-lab-footnotes.dtx (subsection{Document-level commands}):

Modified: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/documentmetadata-support-code.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/documentmetadata-support-doc.pdf
===================================================================
(Binary files differ)

Added: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-amsmath.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-amsmath.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-amsmath.pdf	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-amsmath.pdf	2023-03-09 21:08:53 UTC (rev 66491)

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

Index: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-block-tagging.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-block-tagging.pdf	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-block-tagging.pdf	2023-03-09 21:08:53 UTC (rev 66491)

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

Added: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-mathpkg.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-mathpkg.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-mathpkg.pdf	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-mathpkg.pdf	2023-03-09 21:08:53 UTC (rev 66491)

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

Index: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-mathtagging.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-mathtagging.pdf	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-mathtagging.pdf	2023-03-09 21:08:53 UTC (rev 66491)

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

Index: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-mathtools.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-mathtools.pdf	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-mathtools.pdf	2023-03-09 21:08:53 UTC (rev 66491)

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

Index: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-new-or-1.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-new-or-1.pdf	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-new-or-1.pdf	2023-03-09 21:08:53 UTC (rev 66491)

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

Index: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-new-or-2.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-new-or-2.pdf	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-new-or-2.pdf	2023-03-09 21:08:53 UTC (rev 66491)

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

Added: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-sec-tagging.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-sec-tagging.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-sec-tagging.pdf	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-sec-tagging.pdf	2023-03-09 21:08:53 UTC (rev 66491)

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

Added: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-toc-hyperref-changes.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-toc-hyperref-changes.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-toc-hyperref-changes.pdf	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-toc-hyperref-changes.pdf	2023-03-09 21:08:53 UTC (rev 66491)

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

Index: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-toc-kernel-changes.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-toc-kernel-changes.pdf	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-toc-kernel-changes.pdf	2023-03-09 21:08:53 UTC (rev 66491)

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

Index: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-toc-tagging-functions.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-toc-tagging-functions.pdf	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-toc-tagging-functions.pdf	2023-03-09 21:08:53 UTC (rev 66491)

Property changes on: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-toc-tagging-functions.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/usage-of-footnotemark.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/latex-lab/usage-of-footnotemark.txt	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/latex-lab/usage-of-footnotemark.txt	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,186 +0,0 @@
-% 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
-  }
- 
-

Deleted: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/usage-of-footnotetext.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/latex-lab/usage-of-footnotetext.txt	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/latex-lab/usage-of-footnotetext.txt	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,842 +0,0 @@
-
-% ./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
-

Deleted: trunk/Master/texmf-dist/doc/latex-dev/latex-lab/usage-of-kern-kern.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/latex-lab/usage-of-kern-kern.txt	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/doc/latex-dev/latex-lab/usage-of-kern-kern.txt	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,80 +0,0 @@
-
-      \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
-

Modified: trunk/Master/texmf-dist/source/latex-dev/base/alltt.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/alltt.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/alltt.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/alltt.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/alltt.ins	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/alltt.ins	2023-03-09 21:08:53 UTC (rev 66491)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -48,7 +48,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/classes.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/classes.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/classes.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/classes.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/classes.ins	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/classes.ins	2023-03-09 21:08:53 UTC (rev 66491)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -48,7 +48,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/cmextra.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/cmextra.ins	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/cmextra.ins	2023-03-09 21:08:53 UTC (rev 66491)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -48,7 +48,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/cmfonts.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/cmfonts.ins	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/cmfonts.ins	2023-03-09 21:08:53 UTC (rev 66491)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -48,7 +48,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/docstrip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/docstrip.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/docstrip.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/docstrip.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/docstrip.ins	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/docstrip.ins	2023-03-09 21:08:53 UTC (rev 66491)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -52,7 +52,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ec.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ec.ins	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ec.ins	2023-03-09 21:08:53 UTC (rev 66491)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -48,7 +48,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/exscale.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/exscale.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/exscale.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/exscale.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/exscale.ins	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/exscale.ins	2023-03-09 21:08:53 UTC (rev 66491)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -48,7 +48,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/fix-cm.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/fix-cm.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/fix-cm.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/fix-cm.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/fix-cm.ins	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/fix-cm.ins	2023-03-09 21:08:53 UTC (rev 66491)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -48,7 +48,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/fontdef.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/fontdef.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/fontdef.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/format.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/format.ins	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/format.ins	2023-03-09 21:08:53 UTC (rev 66491)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -48,7 +48,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 
@@ -88,7 +88,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 2015-2022
+Copyright (C) 2015-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 
@@ -123,7 +123,7 @@
 
 This is a generated file.
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/graphpap.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/graphpap.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/graphpap.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/graphpap.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/graphpap.ins	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/graphpap.ins	2023-03-09 21:08:53 UTC (rev 66491)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -48,7 +48,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ifthen.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ifthen.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ifthen.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ifthen.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ifthen.ins	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ifthen.ins	2023-03-09 21:08:53 UTC (rev 66491)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -48,7 +48,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/inputenc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/inputenc.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/inputenc.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/inputenc.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/inputenc.ins	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/inputenc.ins	2023-03-09 21:08:53 UTC (rev 66491)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -48,7 +48,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/latex209.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/latex209.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/latex209.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/latex209.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/latex209.ins	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/latex209.ins	2023-03-09 21:08:53 UTC (rev 66491)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -48,7 +48,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/latexrelease.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/latexrelease.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/latexrelease.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/latexrelease.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/latexrelease.ins	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/latexrelease.ins	2023-03-09 21:08:53 UTC (rev 66491)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -48,7 +48,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/latexsym.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/latexsym.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/latexsym.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/latexsym.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/latexsym.ins	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/latexsym.ins	2023-03-09 21:08:53 UTC (rev 66491)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -48,7 +48,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 
@@ -87,7 +87,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/letter.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/letter.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/letter.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/letter.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/letter.ins	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/letter.ins	2023-03-09 21:08:53 UTC (rev 66491)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -48,7 +48,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltalloc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltalloc.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltalloc.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltbibl.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltbibl.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltbibl.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltboxes.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltboxes.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltboxes.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltclass.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltclass.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltclass.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltcmd.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltcmd.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltcmd.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -2,7 +2,7 @@
 %
 % Copyright (C) 1999 Frank Mittelbach, Chris Rowley, David Carlisle
 % Copyright (C) 2004-2008 Frank Mittelbach, The LaTeX3 Project
-% Copyright (C) 2009-2022
+% Copyright (C) 2009-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltcntrl.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltcntrl.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltcntrl.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltcounts.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltcounts.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltcounts.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltdirchk.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltdirchk.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltdirchk.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/lterror.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/lterror.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/lterror.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltexpl.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltexpl.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltexpl.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2019-2022
+% Copyright (C) 2019-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltfilehook.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltfilehook.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltfilehook.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2020-2022
+% Copyright (C) 2020-2023
 %     Frank Mittelbach, Phelype Oleinik & LaTeX Team
 %
 % This file is part of the LaTeX base system.

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltfiles.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltfiles.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltfiles.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -32,7 +32,7 @@
 %<*driver>
 % \fi
 \ProvidesFile{ltfiles.dtx}
-             [2022/05/27 v1.2r LaTeX Kernel (File Handling)]
+             [2023/01/05 v1.2s LaTeX Kernel (File Handling)]
 % \iffalse
 \documentclass{ltxdoc}
 \GetFileInfo{ltfiles.dtx}
@@ -417,6 +417,16 @@
   \ignorespaces}
 %    \end{macrocode}
 %
+%    Provide a global definition for \cs{do} as well, so that it is
+%    already defined in the preamble and not late as
+%    \verb=\begin{document}= overwriting some definition given by the
+%    unsuspecting user in the preamble.
+% \changes{v1.2s}{2023/01/05}{\cs{do} now with default definition in
+%    the kernel (gh/975)}
+%    \begin{macrocode}
+\let\do\noexpand
+%    \end{macrocode}
+%
 %    The \hook{begindocument} hook already existed in the kernel since
 %    1994 under the name \cs{atbegindocumenthook} the 
 %    additional ones are originally from the \pkg{etoolbox}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltfinal.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltfinal.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltfinal.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltfloat.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltfloat.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltfloat.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltfntcmd.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltfntcmd.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltfntcmd.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltfssaxes.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltfssaxes.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltfssaxes.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2019-2022
+% Copyright (C) 2019-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltfssbas.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltfssbas.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltfssbas.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltfsscmp.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltfsscmp.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltfsscmp.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltfssdcl.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltfssdcl.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltfssdcl.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltfssini.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltfssini.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltfssini.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltfsstrc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltfsstrc.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltfsstrc.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/lthooks.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/lthooks.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/lthooks.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2020-2022
+% Copyright (C) 2020-2023
 %       Frank Mittelbach, Phelype Oleinik & LaTeX Team
 %
 % This file is part of the LaTeX base system.

Modified: trunk/Master/texmf-dist/source/latex-dev/base/lthyphen.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/lthyphen.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/lthyphen.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltidxglo.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltidxglo.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltidxglo.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltkeys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltkeys.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltkeys.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2021-2022
+% Copyright (C) 2021-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltlength.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltlength.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltlength.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltlists.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltlists.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltlists.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltlogos.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltlogos.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltlogos.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltluatex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltluatex.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltluatex.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2015-2022
+% Copyright (C) 2015-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -28,7 +28,7 @@
 \ProvidesFile{ltluatex.dtx}
 %</driver>
 %<*tex>
-[2022/10/03 v1.2a
+[2023/01/19 v1.2b
 %</tex>
 %<plain>  LuaTeX support for plain TeX (core)
 %<*tex>
@@ -968,10 +968,10 @@
 %
 % Some Lua best practice: use local versions of functions where possible.
 % \changes{v1.1u}{2021/08/11}{Define missing local function}
+% \changes{v1.2b}{2023/01/19}{Remove unused local variable tex_setattribute}
 %    \begin{macrocode}
 local string_gsub      = string.gsub
 local tex_count        = tex.count
-local tex_setattribute = tex.setattribute
 local tex_setcount     = tex.setcount
 local texio_write_nl   = texio.write_nl
 local flush_list       = node.flush_list

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltmath.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltmath.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltmath.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltoutenc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltoutenc.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltoutenc.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltoutenc.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltoutenc.ins	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltoutenc.ins	2023-03-09 21:08:53 UTC (rev 66491)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -48,7 +48,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltoutput.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltoutput.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltoutput.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltpage.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltpage.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltpage.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltpageno.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltpageno.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltpageno.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltpar.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltpar.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltpar.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltpara.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltpara.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltpara.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-%% File: ltpara.dtx (C) Copyright 2020-2021
+%% File: ltpara.dtx (C) Copyright 2020-2023
 %       Frank Mittelbach, LaTeX Team
 %
 % It may be distributed and/or modified under the conditions of the
@@ -14,8 +14,8 @@
 %%% From File: ltpara.dtx
 %
 %    \begin{macrocode}
-\def\ltparaversion{v1.0k}
-\def\ltparadate{2022/05/13}
+\def\ltparaversion{v1.0l}
+\def\ltparadate{2023/01/30}
 %    \end{macrocode}
 %<*driver>
 \documentclass{l3doc}
@@ -729,6 +729,8 @@
 %    for error recovery and so altering \cs{tex_everypar:D}  all the
 %    time should be a tiny bit faster.
 %    \begin{macrocode}
+%<latexrelease>\IncludeInRelease{2023/06/01}
+%<latexrelease>       {\g_@@_standard_everypar_tl}{minipage~ fix}
 \tl_new:N \g_@@_standard_everypar_tl
 %    \end{macrocode}
 %    Here is now its definition:
@@ -769,7 +771,28 @@
 %    \begin{macrocode}
   \group_begin:
     \tex_everypar:D {}
-    \skip_zero:N \tex_parskip:D
+%    \end{macrocode}
+%    There has been a long-standing problem with \LaTeX's minipages in
+%    that invisible material at the beginning of a minipage (such as a
+%    \cs{color} setting) would result in \cs{parskip} being added in
+%    front of the first paragraph---something that is not done by
+%    \TeX{} if a vertical list is completely empty. As this is
+%    happening on a very low-level in the engine it wasn't really
+%    possible to find out if this \cs{parskip} was added or if a space
+%    we see in front of the current point is legitimate. However, with
+%    the new paragraph handling we are in a better position: while we
+%    still don't know if there is such a space or not, we do know
+%    if we have just created an empty paragraph. Thus, if we now set
+%    \cs{parskip} to \texttt{-}\cs{parskip} the two will cancel each other
+%    if present and if the first was ignored because the vertical list
+%    was empty, then the second will be ignored too because it is
+%    still empty. Of course, we don't want to cancel always but only
+%    at the start of a minipage and that is signaled with the
+%    \texttt{@minipage} switch.
+% \changes{v1.0l}{2023/01/30}{Backout \cs{parskip} at top of minipage (gh/989)}
+%    \begin{macrocode}
+    \skip_set:Nn \tex_parskip:D
+         { \if at minipage -\tex_parskip:D \else: \c_zero_skip \fi: }
     \tex_noindent:D
   \group_end:
 %    \end{macrocode}
@@ -800,7 +823,44 @@
   \@@_handle_indent:
 % \the \everypar           % <--- done differently below
 }
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{2021/06/01}
+%<latexrelease>       {\g_@@_standard_everypar_tl}{minipage~ fix}
+%<latexrelease>
+%<latexrelease>\tl_gset:Nn \g_@@_standard_everypar_tl {
+%<latexrelease>  \box_gset_to_last:N \g_para_indent_box
+%<latexrelease>  \group_begin:
+%<latexrelease>    \tex_par:D
+%<latexrelease>  \group_end:
+%<latexrelease>  \tex_everypar:D { \msg_error:nnnn { hooks }{ para-mode }{before}{vertical} }
+%<latexrelease>  \@kernel at before@para at before
+%<latexrelease>  \hook_use:n {para/before}
+%<latexrelease>  \group_begin:
+%<latexrelease>    \tex_everypar:D {}
+%<latexrelease>    \skip_zero:N \tex_parskip:D
+%<latexrelease>    \tex_noindent:D
+%<latexrelease>  \group_end:
+%<latexrelease>  \tex_everypar:D{\g_@@_standard_everypar_tl}
+%<latexrelease>  \@kernel at before@para at begin
+%<latexrelease>  \hook_use:n {para/begin}
+%<latexrelease>  \if_mode_horizontal: \else:
+%<latexrelease>    \msg_error:nnnn { hooks }{ para-mode }{begin}{vertical} \fi:
+%<latexrelease>  \@@_handle_indent:
+%<latexrelease>}
 %    \end{macrocode}
+%    We also have to add the \cs{everypar} toks register at the
+%    end. In case of rollback this is already allocated and we have to
+%    find out the correct number (hope this is correctly done)
+%    \begin{macrocode}
+%<latexrelease>\cs_set:Npn \@@_tmp:w #1#2#3#4#5 { }
+%<latexrelease>\tl_gput_right:Nx \g_@@_standard_everypar_tl {
+%<latexrelease>    \exp_not:N \the
+%<latexrelease>    \exp_not:N \toks
+%<latexrelease>    \exp_after:wN \@@_tmp:w \token_to_meaning:N \everypar
+%<latexrelease>    \c_space_tl
+%<latexrelease>}
+%<latexrelease>\EndIncludeInRelease
+%    \end{macrocode}
 %  \end{macro}
 %
 %  \begin{macro}[int]{\tex_everypar:D}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltpictur.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltpictur.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltpictur.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltplain.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltplain.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltplain.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltsect.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltsect.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltsect.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltshipout.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltshipout.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltshipout.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %%
-%% Copyright (C) 2020-2022
+%% Copyright (C) 2020-2023
 %%               Frank Mittelbach, LaTeX Team
 %%
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltspace.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltspace.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltspace.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/lttab.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/lttab.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/lttab.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/lttextcomp.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/lttextcomp.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/lttextcomp.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2019-2022
+% Copyright (C) 2019-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltthm.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltthm.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltthm.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltvers.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltvers.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltvers.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -115,7 +115,7 @@
    {2023-06-01}
 %</2ekernel|latexrelease>
 %<*2ekernel>
-\def\patch at level{-1}
+\def\patch at level{-2}
 %    \end{macrocode}
 %
 % \begin{macro}{\development at branch@name}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltxdoc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltxdoc.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltxdoc.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltxref.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltxref.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltxref.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/makeindx.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/makeindx.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/makeindx.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/makeindx.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/makeindx.ins	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/makeindx.ins	2023-03-09 21:08:53 UTC (rev 66491)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -48,7 +48,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/newdc.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/newdc.ins	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/newdc.ins	2023-03-09 21:08:53 UTC (rev 66491)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -48,7 +48,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/newlfont.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/newlfont.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/newlfont.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/nfssfont.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/nfssfont.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/nfssfont.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/nfssfont.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/nfssfont.ins	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/nfssfont.ins	2023-03-09 21:08:53 UTC (rev 66491)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -48,7 +48,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/olddc.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/olddc.ins	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/olddc.ins	2023-03-09 21:08:53 UTC (rev 66491)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -48,7 +48,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/oldlfont.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/oldlfont.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/oldlfont.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/preload.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/preload.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/preload.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/proc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/proc.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/proc.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/proc.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/proc.ins	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/proc.ins	2023-03-09 21:08:53 UTC (rev 66491)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -48,7 +48,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/slides.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/slides.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/slides.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/slides.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/slides.ins	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/slides.ins	2023-03-09 21:08:53 UTC (rev 66491)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -48,7 +48,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 
@@ -96,7 +96,7 @@
 
 This is a generated file.
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 
@@ -138,7 +138,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/syntonly.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/syntonly.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/syntonly.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/syntonly.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/syntonly.ins	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/syntonly.ins	2023-03-09 21:08:53 UTC (rev 66491)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -48,7 +48,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 1993-2022
+Copyright (C) 1993-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/tulm.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/tulm.ins	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/tulm.ins	2023-03-09 21:08:53 UTC (rev 66491)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 2016-2022
+%% Copyright (C) 2016-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -48,7 +48,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 2016-2022
+Copyright (C) 2016-2023
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/unpack.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/unpack.ins	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/unpack.ins	2023-03-09 21:08:53 UTC (rev 66491)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%

Modified: trunk/Master/texmf-dist/source/latex-dev/base/utf8ienc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/utf8ienc.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/base/utf8ienc.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/latex-lab/documentmetadata-support.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/latex-lab/documentmetadata-support.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/latex-lab/documentmetadata-support.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,7 +1,7 @@
 % \iffalse meta-comment
 %
 %% File: documentmetadata-support.dtx
-% Copyright (C) 2021-2022 The LaTeX Project
+% Copyright (C) 2021-2023 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
@@ -18,8 +18,8 @@
 % for those people who are interested or want to report an issue.
 %
 %    \begin{macrocode}
-\def\documentmetadatasupportversion{1.0b}
-\def\documentmetadatasupportdate{2022-14-04}
+\def\documentmetadatasupportversion{1.0c}
+\def\documentmetadatasupportdate{2023-01-07}
 %    \end{macrocode}
 %
 %
@@ -64,13 +64,19 @@
 %    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
+%    \cs{DocumentMetadata} is placed 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.
+%    
+%    \cs{DocumentMetadata} also loads and activates
+%    the new PDF management code from \pkg{pdfmanagement-testphase}.
+%    As this forces the loading of the \pkg{l3backend} files, a backend
+%    that can't be detected automatically like |dvipdfmx|,
+%    must be set in the first \cs{DocumentMetadata}.
 %
 %    From a process perspective \cs{DocumentMetadata} loads the
-%    \pkg{pdfmanagement} code the first time it is called and then
+%    \pkg{pdfmanagement-testphase} 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
@@ -84,10 +90,12 @@
 %
 %
 % Currently the following keys are implemented for \cs{DocumentMetadata}:
+% \DescribeMkey{backend}
 % \DescribeMkey{colorprofiles}
 % \DescribeMkey{debug}
 % \DescribeMkey{lang}
 % \DescribeMkey{pdfstandard}
+% \DescribeMkey{xmp}
 % \DescribeMkey{pdfversion}
 % \DescribeMkey{testphase}
 % \DescribeMkey{uncompress}
@@ -110,15 +118,34 @@
 %    \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.
+%      Note that using these
+%      key doesn't mean that the document actually follows the standard. \LaTeX{}
+%      can neither ensure nor check all requirements of a standard, and not everything
+%      it can do theoretically has already been implemented.
+%      When setting an A-standard a color profile is included and the
+%      \texttt{/OutputIntent} is set and javascript action in hyperref are suppressed.
+%      The |u| variants do not enforce unicode,
+%      but they will pass the information to hyperref. The |a| variants
+%      do \emph{not} enforce (or even test) a tagged pdf yet.
+%      
+%      Starting with version 0.95s of \pkg{pdfmanagement-testphase}
+%      it is also possible to use the values
+%      |X-4|, |X-4p|, |X-5g|, |X-5n|, |X-5pg|, |X-6|, |X-6n|, |X-6p|, |UA-1| for
+%      a PDF/X and PDF/UA standard. These keys currently set \emph{only} the relevant
+%      XMP-metadata.
+%
+%      |pdfstandard| can be used more than once to set overlapping standards, e.g:\\
+%      |pdfstandard=A-2b,pdfstandard=X-4,pdfstandard=UA-1|
+%      
+%      If XMP-metadata are added (see the following key \texttt{xmp}
+%      the needed conformance marker for the standards are set.
+%      
 %      More information can be found in the documentation
-%      of \pkg{l3pdfmeta}.
+%      of \pkg{l3pdfmeta}.   
 %
+%    \item[\texttt{xmp}] A boolean, if set to false no XMP metadata are added to the PDF.
+%    The initial value is true. Details are described in the documentation of \pkg{l3pdfmeta}.
+%    
 %    \item[\texttt{colorprofiles}] This allows to load icc-colorprofiles. Details
 %       are described in the documentation of \pkg{l3pdfmeta}.
 %
@@ -137,6 +164,16 @@
 %       additionally activate tagging of paragraphs with
 %       |\tagpdfsetup{paratagging}|. In the upcoming months it will
 %       also enable automatic tagging of other basic document elements.
+%    \item[\texttt{new-or-1}] This patches a few commands related
+%    to the output routine. The patches are needed for the tagging
+%    of paragraphs, for the tagging of header and footer and 
+%    to allow the PDF management to insert code which avoids that
+%    links happening at page breaks spills into the header and footer. 
+%    This code is automatically loaded if the \texttt{testphase} values
+%    \texttt{phase-I}, \texttt{phase-II} or \texttt{new-or} are used.%   
+%    \item[\texttt{new-or}] This loads more changes to the output routine required for the 
+%    tagging. It is not compatible with every class! The code is also loaded by the 
+%    \texttt{phase-II} value.
 %    \end{description}
 %    The |testphase| key can only be used in the first \cs{DocumentMetadata}.
 %

Added: trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-amsmath.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-amsmath.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-amsmath.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,131 @@
+% \iffalse meta-comment
+%
+%% File: latex-lab-amsmath.dtx
+%
+% Copyright (C) 2022,2023 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-amsmath.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+%
+% \title{The \texttt{latex-lab-amsmath} code\thanks{}}
+% \author{\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}
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Introduction}
+%
+% This file implements adaptations to the \pkg{amsmath} package needed for 
+% the tagging project. 
+%
+% \MaybeStop{\setlength\IndexMin{200pt}  \PrintIndex  }
+%
+% \section{The Implementation}
+%
+%    \begin{macrocode}
+%<@@=math>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%<*kernel>
+%    \end{macrocode}
+%
+% \subsection{File declaration}
+%    \begin{macrocode}
+\ProvidesFile{latex-lab-amsmath.ltx}
+        [2023-01-05 v0.1a amsmath adaptions]
+%    \end{macrocode}
+% \subsection{Tagpdf support}
+% To make the code independent from tagging being loaded and active
+% we load the \pkg{tagpdf-base} package:
+%
+%    \begin{macrocode}
+\RequirePackage{tagpdf-base}
+%    \end{macrocode}
+% 
+%    \begin{macrocode}
+\ExplSyntaxOn
+%    \end{macrocode}
+%
+% \subsection{\cs{intertext}}
+% The \cs{intertext} command errors with active tagging as it is processed twice
+% which leads to duplicated structures. 
+%    \begin{macrocode}
+\AddToHook{package/amsmath/after}
+ {
+    \def\intertext@{%
+      \def\intertext##1{%
+        \ifvmode\else\\\@empty\fi
+        \noalign{%
+          \penalty\postdisplaypenalty\vskip\belowdisplayskip
+          \vbox{
+%    \end{macrocode}
+% Stop tagging when measuring:
+%    \begin{macrocode}
+           \ifmeasuring@\tag_stop:\fi
+           \normalbaselines
+            \ifdim\linewidth=\columnwidth
+            \else \parshape\@ne \@totalleftmargin \linewidth
+            \fi
+%    \end{macrocode}
+% End the previous mc:
+%    \begin{macrocode}
+            \tag_mc_end_push:
+%    \end{macrocode}
+% We are already in a par so we change now to Span:
+%    \begin{macrocode}
+            \tagpdfsetup{paratag=Span}%
+            \noindent\ignorespaces##1\par
+%    \end{macrocode}
+% Restart the MC
+%    \begin{macrocode}
+            \tag_mc_begin_pop:n{}}%
+          \penalty\predisplaypenalty\vskip\abovedisplayskip%
+        }%
+    }}
+  }      
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\ExplSyntaxOff
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%</kernel>
+%    \end{macrocode}
+%
+% \Finale
+%


Property changes on: trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-amsmath.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-block-tagging.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-block-tagging.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-block-tagging.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,3821 @@
+% \iffalse meta-comment
+%
+%% File: latex-lab-block-tagging.dtx (C) Copyright 2021-2023 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
+%
+%
+%<*driver>
+\documentclass{l3doc}
+\usepackage{amstext}
+\EnableCrossrefs
+\CodelineIndex
+
+\usepackage{todonotes}
+
+\begin{document}
+  \DocInput{latex-lab-block-tagging.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+
+\def\ltblocksversion{v0.8a}
+\def\ltblocksdate{2023/03/08}
+
+%
+% \title{Prototype reimplementation of \LaTeXe{}'s block environments using templates}
+% \author{\LaTeX{} Project\thanks{Initial reimplementation of lists done by Bruno
+%    Le Floch, generalized second version with tagging support by Frank Mittelbach.}}
+% \date{\ltblocksversion\ \ltblocksdate}
+%
+% \maketitle
+%
+%
+% \newcommand{\xt}[1]{\textsl{\textsf{#1}}}
+% \newcommand{\TODO}[1]{\textbf{[TODO:} #1\textbf{]}}
+% \newcommand{\docclass}{document class \marginpar{\raggedright document class
+% customizations}}
+%
+% \providecommand\hook[1]{\texttt{#1}}
+% \providecommand\struct[1]{\texttt{<#1>}}
+%
+% \NewDocElement[envlike, idxtype=objecttype, idxgroup=object types,
+%    printtype=\textit{objecttype}] {ObjectType}{objecttype}
+%
+% \NewDocElement[envlike, idxtype=template, idxgroup=templates,
+%    printtype=\textit{templ.}] {Template}{template}
+%
+% \NewDocElement[envlike, idxtype=instance, idxgroup=instances,
+%    printtype=\textit{inst.}] {Instance}{instance}
+%
+% 
+% \newcommand\valuefrom[1]{\textrm{value from }\texttt{#1}}
+% \newcommand\key[1]{\texttt{#1}}
+% 
+% 
+% \NewDocumentCommand\fmi{sO{}m}
+%   {\IfBooleanTF{#1}{\todo[inline,#2]{#3}}^^A
+%                    {\todo[#2]{#3}}}
+%                    
+% \NewDocumentCommand\ufi{sO{}m}
+%   {\IfBooleanTF{#1}{\todo[inline,#2]{UFi:#3}}^^A
+%                    {\todo[#2]{UFi:#3}}}
+% \makeatletter
+% \renewenvironment{TemplateInterfaceDescription}[1]
+%   {
+%     \subsubsection{The~object~type~`#1'}
+%     \begingroup
+%     \@beginparpenalty\@M
+%     \description
+%     \def\TemplateArgument##1##2{\item[Arg:~##1]##2\par}
+%     \def\TemplateSemantics
+%       {
+%         \enddescription\endgroup
+%         \subsubsection*{Semantics:}
+%       }
+%   }
+%   {
+%     \par\bigskip
+%   }
+% \renewenvironment{TemplateDescription}[2]
+%   {\subsubsection{The \texttt{#1} template `#2'}^^A
+%     \paragraph*{Attributes:}^^A
+%     \begingroup
+%     \@beginparpenalty\@M
+%     \description
+%     \def\TemplateKey##1##2##3##4{^^A
+%         \item[\texttt{##1}~(\textit{\mdseries##2})]##3^^A
+%         \ifx\TemplateKey##4\TemplateKey\else
+%           \hfill\penalty500\hbox{}\hfill Default:~\texttt{##4}^^A
+%           \nobreak\hskip-\parfillskip\hskip0pt\relax
+%         \fi
+%         \par
+%       }^^A
+%     \def\TemplateSemantics{^^A
+%         \enddescription\endgroup
+%         \paragraph*{Semantics~\&~Comments:}^^A
+%       }^^A
+%   }
+%   { \par \bigskip }
+% \makeatother
+%
+% 
+% \begin{abstract}
+% \end{abstract}
+%
+%
+% \tableofcontents
+% \medskip
+%
+%
+% \begin{documentation}
+%
+%
+%
+% \section{Introduction}
+%
+% The list implementation in \LaTeXe{} serves a dual purpose: it
+% implements real lists such as \env{itemize} or \env{enumerate},
+% but it is also used as the basis for vertical blocks, i.e., to specify
+% the vertical spacing and paragraph handling after such block, e.g.,
+% in environments like \env{center}, \env{quote}, \env{verbatim}, or in
+% the theorem environments. They are all implemented as
+% \enquote{trivial} lists with a single (hidden) item.
+%
+% While this was convenient to get a consistent layout using a single
+% implementation it is not adequate if it comes to interpreting the
+% structure of a document, because environments based on \env{trivlist}
+% should not advertise themselves as being a \enquote{list} --- after all,
+% from a semantic point of view they aren't lists.
+%
+% The approach taking here is therefore to offer separate object
+% types: \xt{block} (horizontally or vertically oriented data that
+% needs some handling at the start and the end), \xt{para} (that deals
+% with different paragraph layouts), \xt{list} (that handles list
+% related parameters, and \xt{item} (for item layouts and handling), to address
+% the independent aspects and also offer the object type \xt{blockenv}
+% that ties them together as necessary.
+%
+% For example, a \env{quote} environment would make use of a (display)
+% \xt{block} and some \xt{para} handling while an standard
+% \env{enumerate} would make use of a display \xt{block}, a \xt{list},
+% and  an \xt{item} and \xt{para} instance.
+% An inline list (like \env{enumerate*} from the \pkg{enumitem}
+% package) would be using the same \xt{list} instance but a different
+% (horizontally oriented) \xt{block}.
+%
+% 
+% \section{Object types and templates for blocks and lists}
+%
+% \subsection{Object types}
+% 
+% \begin{TemplateInterfaceDescription}{block}
+%    \TemplateArgument{1}{key/value list to alter the default block parameters}
+%    \TemplateSemantics
+%    Handle the layout aspects of a block of data. In case of a
+%    \enquote{display} block (i.e., vertically oriented) the spacing
+%    and page breaking as well as the handling if the block starts a
+%    paragraph or ends one, that is, if text is immediately following
+%    the block without being separated by an empty line, then this
+%    text is considered to be in the same paragraph as the block.
+%
+%    In case of a horizontally oriented block it covers any special
+%    handling at the start and end of the block, e.g, extra spacing,
+%    prohibitying or encuraging line breaks, and so forth.
+% \end{TemplateInterfaceDescription}
+% 
+% \begin{TemplateInterfaceDescription}{para}
+%    \TemplateArgument{1}{key/value list to alter the default item parameters}
+%    \TemplateSemantics
+%    Sets up paragraph-specific parameters for H\&J, e.g., to
+%    implement justification variations, the behavior of \verb=\\=
+%    etc. The instances are used in higher-level templates, e.g., in a
+%    \xt{block}.
+% \end{TemplateInterfaceDescription}
+% 
+% \begin{TemplateInterfaceDescription}{list}
+%    \TemplateArgument{1}{key/value list to alter the default item parameters}
+%    \TemplateSemantics
+%    Handle the aspects related to list design, e.g., the use and
+%    formatting of counters, etc.
+%
+%    Note that this does not cover block-related aspects, i.e., a list
+%    instance could be used both for a display list or for an inline line.
+% \end{TemplateInterfaceDescription}
+% 
+% \begin{TemplateInterfaceDescription}{item}
+%    \TemplateArgument{1}{key/value list to alter the default item parameters}
+%    \TemplateSemantics
+%    A sub-type used as part of \xt{list} to easily cover alternative layout
+%    for list items.
+% \end{TemplateInterfaceDescription}
+%
+%
+% \begin{TemplateInterfaceDescription}{blockenv}
+%    \TemplateArgument{1}{key/value list to alter the default item parameters}
+%    \TemplateSemantics
+%    This object type is used to implement document-level
+%    environments. It defines a \xt{block} instance to handle the
+%    layout at the \enquote{edge} of the environment data, possibly
+%    some paragraph setup through a \xt{para} instance, potentially an
+%    \enquote{inner} instance for more complicated environments (such
+%    as lists), and possibly some additional setup code for certain
+%    environments.
+%
+%    It also defines how the \xt{blockenv} behaves with respect to
+%    nesting, e.g., does it change when nested and if so how many
+%    levels of nesting are supported, etc.
+%
+%    Finally, the object type defines how it appears in a tagged PDF
+%    document, what tag names are used, how they are rolemapped and
+%    whether it adds additional attributes, etc. 
+% \end{TemplateInterfaceDescription}
+%
+%
+%
+% \subsection{Templates}
+% 
+% 
+% \begin{TemplateDescription}{blockenv}{display}
+%
+%  \TemplateKey{env-name}{tokenlist}
+%              {Name of the environment used only in tracing}{}
+%  \TemplateKey{tag-name}{tokenlist}
+%              {Name of the tag in the PDF. If not explicitly given
+%               the name is defined by the \key{tagging-recipe}}{}
+%  \TemplateKey{tag-class}{tokenlist}
+%              {An explicit tag class attribute}{}
+%  \TemplateKey{tagging-recipe}{tokenlist}
+%              {Defines the way tagging is done. Currently the values
+%               \texttt{basic}, \texttt{standard}, and \texttt{list}
+%               are supported}{standard}
+%  \TemplateKey{level-increase}{boolean}{Does this \xt{blockenv}
+%               increase the block level if it is nested in an outer block?}{true}
+%  \TemplateKey{setup-code}{tokenlist}
+%              {Initial setup code. This is
+%               executed after legacy defaults (from \cs{@listi},
+%               \cs{@listii}, etc.) are used but before the block instance is called}{}
+%  \TemplateKey{block-instance}{tokenlist}{Part of the name of the
+%               \xt{block} instance that is called. The full name has
+%               a \texttt{-}\meta{level} appended}{displayblock}
+%  \TemplateKey{para-instance}{tokenlist}{}{}
+%  \TemplateKey{inner-level-counter}{tokenlist}{Name of an existing (!) counter
+%               that is incremented and used to determine final name
+%               of the \key{inner-instance} or empty if always the
+%               same inner instance should be used}{}
+%  \TemplateKey{max-inner-levels}{tokenlist}{Maximum number of nested
+%               environments of this kind. Only relevant if there is a
+%               \key{inner-level-counter} specified}{4}
+%  \TemplateKey{inner-instance-type}{tokenlist}{Opject type of the
+%    inner instance}{list}
+%  \TemplateKey{inner-instance}{tokenlist}{Name of the inner instance
+%               (if any).}{}
+%  \TemplateKey{para-flattened}{boolean}{\emph{describe}}{false}
+%  \TemplateKey{final-code}{tokenlist}{Final setup code}{\cs{ignorespaces}}
+%
+%    \TemplateSemantics
+%
+%    This \xt{blockenv} template supports the legacy list setting that
+%    are found in many document classes in the macros \cs{@listi},
+%    \cs{@listii}, up to \cs{@listvi}. It also uses the counter
+%    \cs{@listdepth} to track nesting of block, again mainly to
+%    support legacy setups (internally it gives it a more appropriate
+%    name but it remains accessible through the \LaTeXe{} name).
+%
+%
+%    It first checks that nothing is too deeply nested.
+%    If the level should increase then the increments the
+%    \cs{@listdepth} counter and
+%    calls the corresponding \cs{@list...} macro to update the legacy
+%    defaults. If \key{level-increase} is set to false this is bypassed.
+%
+%    It then sets up the
+%    tagging via the \key{tagging-recipe} setting and executes any
+%    code in \key{setup-code}.
+%
+%    Afterwards it calls the appropriate \xt{block} instance based on
+%    \key{block-instance} and current level, e.g.,
+%    \texttt{displayblock-1}.  Then it sets up paragraph parameters if
+%    a \key{para-instance} was specified (otherwise they stay as
+%    they are).
+%
+%    If a \key{inner-instance} was specified this is called next,
+%    or more precisely: if no \key{inner-level-counter} was
+%    specified the instance \key{inner-instance} is
+%    called.
+%
+%    Otherwise, the \key{inner-level-counter} is incremented and the
+%    instance with the name
+%    \key{inner-instance}\texttt{-}\key{inner-level-counter} is
+%    called.
+%
+%    Finally, the \key{final-code} is executed (by default
+%    \cs{ignorespaces}).
+%
+%
+% \end{TemplateDescription}
+%
+% The maximum number of \xt{blockenv}s that can be nested into each
+% other is is restricted by the \LaTeX{} counter
+% \texttt{maxblocklevels} with a default value of \texttt{6}. If this
+% value is increased then it is necessary to provide additional
+% instances, e.g., \texttt{displayblock-7}, etc. Decreasing is, of
+% course, always possible, then some of the instances defined are not
+% used and instead the user gets an error that there is too much
+% nesting going on.
+%
+% If the key \key{level-increase} is set to \texttt{false} then such
+% an environment doesn't alter the nesting level and therefore you can
+% nest those environments as often as you like (a typical example
+% would be \env{flushleft} anywhere in the nesting hierarchy, that
+% would have no effect on hitting the boundary).
+%  
+% 
+% \begin{TemplateDescription}{block}{display}
+%
+%  \TemplateKey{heading}{tokenlist}{\emph{not really used yet}}{}
+%  \TemplateKey{beginsep}{skip}{}{\cs{topsep}}
+%  \TemplateKey{begin-par-skip}{skip}{}{\cs{partopsep}}
+%  \TemplateKey{par-skip}{skip}{}{\cs{parsep}}
+%  \TemplateKey{end-skip}{skip}{}{\valuefrom{beginsep}}
+%  \TemplateKey{end-par-skip}{skip}{}{\valuefrom{begin-par-skip}}
+%  \TemplateKey{beginpenalty}{integer}{}{\cs{@beginparpenalty}}
+%  \TemplateKey{endpenalty}{integer}{}{\cs{@endparpenalty}}
+%  \TemplateKey{leftmargin}{length}{}{\cs{leftmargin}}
+%  \TemplateKey{rightmargin}{length}{}{\cs{rightmargin}}
+%  \TemplateKey{parindent}{length}{}{\cs{listparindent}}
+%
+%    \TemplateSemantics
+%
+%    The idea of a \key{heading} key needs some further
+%    thoughts. Maybe instead the object type should accept a second
+%    argument and receive input for such a headding from the document
+%    level instead.
+%
+%    The names of the keys need further thoughts and some
+%    decision. Right now it is a mixture of those with hyphens and
+%    those that match legacy register names (the way \pkg{enumitem}
+%    did its keys).
+%
+%    Also \key{parindent} conflicts with \key{indent-width}!
+% 
+% \end{TemplateDescription}
+%
+%  
+% \begin{TemplateDescription}{para}{std}
+%
+%  \TemplateKey{indent-width}{length}{}{\cs{parindent}}
+%  \TemplateKey{start-skip}{skip}{}{0pt}
+%  \TemplateKey{left-skip}{skip}{}{0pt}
+%  \TemplateKey{right-skip}{skip}{}{0pt}
+%  \TemplateKey{end-skip}{skip}{}{\cs{@flushglue}}
+%  \TemplateKey{fixed-word-spaces}{boolean}{}{false}
+%  \TemplateKey{final-hyphen-demerits}{integer}{}{5000}
+%  \TemplateKey{cr-cmd}{tokenlist}{}{\cs{@normalcr}}
+%  \TemplateKey{para-class}{tokenlist}{}{justify}
+%
+%    \TemplateSemantics
+% 
+% 
+% \end{TemplateDescription}
+%
+%  
+% 
+% \begin{TemplateDescription}{list}{std}
+%
+%  \TemplateKey{counter}{tokenlist}
+%              {Counter name to be used in a numbered list or empty,
+%               if the list is unnumbered}{}
+%  \TemplateKey{item-label}{tokenlist}
+%              {Label \enquote{string} for a fixed label or as
+%               generated from the current \key{counter} value}{}
+%  \TemplateKey{start}{integer}
+%              {Start value for the counter if the list is numbered,
+%               otherwise irrelevant}{1}
+%  \TemplateKey{resume}{boolean}
+%              {Should a numbered list be resumed from the last instance?}{false}
+%  \TemplateKey{item-instance}{instance}
+%              {Instance of type \texttt{item} to be used to format
+%               the label string}{basic}
+%  \TemplateKey{item-skip}{skip}{The space in front of an item in the
+%               list.\fmi{May need to be on a different template level}}{\cs{itemsep}}
+%  \TemplateKey{item-indent}{length}{Horizontal displacement of the item.}{0pt}
+%  \TemplateKey{item-penalty}{integer}
+%              {Penalty for breaking before an
+%               item (except the first)}{\cs{@itempenalty}}
+%  \TemplateKey{label-width}{length}
+%              {Width reserved for the formatted item label}{\cs{labelwidth}}
+%  \TemplateKey{label-sep}{length}
+%              {Horizontal separation between label and following text}{\cs{labelsep}}
+%  \TemplateKey{legacy-support}{boolean}
+%              {Is formatting the label via \cs{makelabel} supported?}{false}
+%
+%    \TemplateSemantics
+% 
+% 
+% \end{TemplateDescription}
+%
+%  
+% \begin{TemplateDescription}{item}{std}
+%
+%  \TemplateKey{counter-label}{function{1}}{\emph{unused}}{\cs{arabic}\{\#1\}}
+%  \TemplateKey{counter-ref}{function{1}}{\emph{unused}}{\valuefrom{counter-label}}
+%  \TemplateKey{label-ref}{function{1}}{\emph{unused}}{\#1}
+%  \TemplateKey{label-autoref}{function{1}}{\emph{unused}}{item~\#1}
+%  \TemplateKey{label-format}{function{1}}
+%       {Formatting of the label, questionable the way it is used}{\#1}
+%  \TemplateKey{label-strut}{boolean}{Add a \cs{strut} to the label?}{false}
+%  \TemplateKey{label-align}{choice}
+%              {Supported values \texttt{left},\texttt{center},
+%               \texttt{right}, and \texttt{parleft}. \emph{Only partly implemented}}{right}
+%  \TemplateKey{label-boxed}{boolean}
+%              {Should the label be boxed?}{true}
+%  \TemplateKey{next-line}{boolean}{}{false}
+%  \TemplateKey{text-font}{tokenlist}{\emph{unused}}{}
+%  \TemplateKey{compatibility}{boolean}{}{true}
+%
+%    \TemplateSemantics
+%
+%    This template is only rudimentary implemented at the moment. It
+%    probably needs other keys and the existing ones need a proper
+%    implementation.
+% 
+% \end{TemplateDescription}
+%
+%
+% \section{Tagging support}
+%
+% \subsection{Paragraph tags}
+%
+%  Paragraphs in \LaTeX{} can be nested, e.g., you can have a paragraph
+%  containing a display quote, which in turn consists of more than one
+%  (sub)paragraph, followed by some more text which all belongs to the
+%  same outer paragraph.
+%
+%  In the PDF model and in the HTML model that is not supported --- a
+%  limitation that conflicts with real live, given that such
+%  constructs are quite normal in spoken and written language.
+%
+%  The approach we take to resolve this is to model such \enquote{big}
+%  paragraphs with a structure named \struct{text-unit} and use \struct{text} (rollmapped to \struct{P})
+%  only for (portions of) the actual paragraph text in a way that the
+%  \struct{text}s are not nested. As a result we have for a simple
+%  paragraph the structures
+% \begin{tabbing}
+% \hspace*{1em}\=\hspace*{1em}\=\hspace*{1em}\=\hspace*{1em}\= \kill
+%    \>    \struct{text-unit}\\
+%    \>\>  \struct{text}\\
+%    \>\>\> The paragraph text \ldots\\
+%    \>\>  \struct{/text}\\
+%    \>    \struct{/text-unit}
+% \end{tabbing}
+% The \struct{text-unit} structure is rollmapped to \struct{Part} or possibly to
+% \struct{Div} so we get a valid PDF, but processors who care can identify
+% the complete paragraphs by looking for \struct{text-unit} tags.
+%
+% In the case of an element, such as a display quote or a display list
+%  inside the paragraph, we then have
+% \begin{tabbing}
+% \hspace*{1em}\=\hspace*{1em}\=\hspace*{1em}\=\hspace*{1em}\= \kill
+%    \>     \struct{text-unit}\\
+%    \>\>   \struct{text}\\
+%    \>\>\> The paragraph text before the display element \ldots\\
+%    \>\>   \struct{/text}\\
+%    \>\>   \struct{display element structure}\\
+%    \>\>\>  Content of the display structure possiblly involving inner \struct{text-unit} tags\\
+%    \>\>   \struct{/display element structure}\\
+%    \>\>   \struct{text}\\
+%    \>\>\> \ldots{} continuing the outer paragraph text\\
+%    \>\>   \struct{/text}\\
+%    \>     \struct{/text-unit}
+% \end{tabbing}
+% In other words such a display block is always embedded in a
+% \struct{text-unit} structure, possibly preceded by a \struct{text}\ldots\struct{/text} block
+% and possibly followed by one, though both such blocks are optional.
+%
+% Thus an \env{itemize} environment that has some introductory text
+% but no text immediately following the list
+% would be tagged as follows:
+% \begin{tabbing}
+% \hspace*{1em}\=\hspace*{1em}\=\hspace*{1em}\=\hspace*{1em}\=\hspace*{1em}\= \kill
+%    \>          \struct{text-unit}\\
+%    \>\>        \struct{text}\\
+%    \>\>\>      The intro text for the \env{itemize} environment \ldots\\
+%    \>\>        \struct{/text}\\
+%    \>\>        \struct{itemize}\\
+%    \>\>\>      \struct{LI}\\
+%    \>\>\>\>    \struct{Lbl} label \struct{/Lbl}\\
+%    \>\>\>\>    \struct{LBody}\\
+%    \>\>\>\>\>  The text of the first item involving \struct{text-unit} as necessary \ldots\\
+%    \>\>\>\>    \struct{/LBody}\\
+%    \>\>\>      \struct{/LI}\\
+%    \>\>\>      \struct{LI}\\
+%    \>\>\>\>    The second item \ldots{}\\
+%    \>\>\>      \struct{/LI}\\
+%    \>\>\>      \ldots{} further items \ldots\\
+%    \>\>        \struct{/itemize}\\
+%    \>          \struct{/text-unit}
+% \end{tabbing}
+% The \struct{itemize} is rollmapped to \struct{L}.
+%
+% For some display blocks, such as centered text, we use a simpler
+% strategy. Such blocks still ensure that they are inside a \struct{text-unit}
+% structure but their body  uses simple \struct{text} blocks and not
+% \struct{text-unit}\struct{text} inside, e.g., the input
+% \begin{verbatim}
+% This is a paragraph with some
+% \begin{center}
+%    centered lines
+%
+%    with a paragraph break between them
+% \end{center}
+% followed by some more text.
+% \end{verbatim}
+%  will be tagged as follows:
+% \begin{tabbing}
+% \hspace*{1em}\=\hspace*{1em}\=\hspace*{1em}\=\hspace*{1em}\=\hspace*{1em}\= \kill
+%    \>          \struct{text-unit}\\
+%    \>\>        \struct{text}\\
+%    \>\>\>      This is a paragraph with some\\
+%    \>\>        \struct{/text}\\
+%    \>\>        \struct{text /O /Layout /TextAlign/Center}\\
+%    \>\>\>      centered lines\\
+%    \>\>        \struct{/text}\\
+%    \>\>        \struct{text /O /Layout /TextAlign/Center}\\
+%    \>\>\>      with a paragraph break between them\\
+%    \>\>        \struct{/text}\\
+%    \>\>        \struct{text}\\
+%    \>\>\>      followed by some more text.\\
+%    \>          \struct{/text-unit}
+% \end{tabbing}
+% 
+%
+% \subsection{Tagging recipes}
+%
+% There are a number of different tagging recipes that implement
+% different tagging approaches. They are selected through the
+% \key{tagging-recipe} of the \xt{blockenv} template. Currently the
+% following values are implemented:
+% \begin{description}
+% \item[\texttt{basic}]
+%   This recipe does the following:
+%   \begin{itemize}
+%   \item
+%     Ensure that the \xt{blockenv} is inside a \struct{text-unit}
+%     structure, if necessary, start one. 
+%   \item
+%     If inside a \struct{text-unit}\struct{text}, then close the \struct{/text} but
+%     leave the \struct{text-unit} open.
+%
+%   \item
+%     Text inside the body of the environment starts with
+%     \struct{text-unit}\struct{text} if \key{para-flattened} is set to \texttt{false},
+%     otherwise just with \struct{text}.
+%
+%   \item
+%     At the end of the environment close \struct{/text} and possibly an
+%     inner \struct{/text-unit} if open.
+%
+%   \item
+%     Then look if the environment is followed by an empty line
+%     (\cs{par}). If so, close the outer \struct{/text-unit} and start any
+%     following text with \struct{text-unit}\struct{text}. Otherwise,
+%     don't and following text restarts with a just a \struct{text} (and no
+%     paragraph indentation)
+%   \end{itemize}
+%
+%
+% \item[\texttt{standard}]
+%  This recipe is like the \texttt{basic} one as far as handling
+%  \struct{text-unit} and \struct{text} is concerned. In addition
+%   \begin{itemize}
+%   \item
+%     it starts an inner tagging structure (i.e., which is therefore a
+%     child of the outer \struct{text-unit}).
+%   \item
+%     By default this structure is a \struct{Figure} unless overwritten
+%     by the key \key{tag-name}. If that key is used, a suitable
+%     rollmap needs to be provided for the name given.
+%   \item
+%     At the end of the environment that inner structure is closed
+%     again so that we are back on the \struct{text-unit} level from the outside.
+%   \item
+%     Then the lookahead for an empty line is done as described previously.
+%   \end{itemize}
+%
+%
+%
+% \item[\texttt{list}]
+%  This recipe is like the \texttt{standard} one except that
+%   \begin{itemize}
+%   \item
+%     the inner structure is a list (\struct{L}).
+%   \item
+%     Furthermore everything is set up so that we have list items
+%     (\struct{LI}) with suitable substructures (\struct{Lbl} for the item
+%     labels and \struct{LBody} for the item bodies).
+%   \item
+%     If the key \key{tag-name} is specified, this is used as the tag
+%     name for the whole list instead of \struct{L}. Of course, it
+%     should then have a suitable rollmap.
+%   \item
+%     If the key \key{tag-class} is specified then this is used as the
+%     class attribute. Again, this requires a suitable setup on the outside.
+%   \item
+%     At the end of the environment the \struct{/LBody}, \struct{/LI}, and
+%     \struct{/L} (or the tag name used) are closed.
+%   \item
+%     Then the lookahead for an empty line is done as described previously.
+%   \end{itemize}
+%
+%
+% \end{description}
+%
+%
+%
+%
+%
+%
+% \end{documentation}
+%
+% \StopEventually{\setlength\IndexMin{200pt}  \PrintIndex  }
+%
+%
+%
+% \begin{implementation}
+%
+% \section{The Implementation}
+%
+%
+%    \begin{macrocode}
+%<*package>
+%<@@=block>
+%    \end{macrocode}
+%
+%
+%    \begin{macrocode}
+\ProvidesPackage {latex-lab-testphase-block-tagging}
+                 [\ltblocksdate\space \ltblocksversion\space
+                            blockenv implementation]
+%    \end{macrocode}
+%
+%    We make use of templates:
+%    \begin{macrocode}
+\RequirePackage{xtemplate}
+%    \end{macrocode}
+%   Generell kernel changes, also loaded by the sec and toc code.
+%    \begin{macrocode}
+\RequirePackage{latex-lab-kernel-changes}
+%    \end{macrocode}
+%    \begin{macrocode}
+\ExplSyntaxOn
+%    \end{macrocode}
+%
+% \ufi{this variable(s) must be declared:}
+%    \begin{macrocode}
+\tl_new:N \l_@@_item_align_tl
+\tl_new:N\l_@@_legacy_env_params_tl
+%    \end{macrocode}
+
+% \subsection{Handling \cs{par} after the end of the list}
+%
+% An empty line (or a \cs{par}) after a list has semantic meaning as
+% it defines whether then following text is logically within the same
+% paragraph as the list (no empty line) or whether it starts a new
+% paragraph and the paragraph containing the list ends at the end of
+% the list (empty line after the list).
+% This is handled by \LaTeX{} using a legacy flag called
+% \texttt{@endpe} and set of commands inside the
+% generic \cs{end} (calling \cs{@doendpe}) and as part of the list
+% environments identifying themselves as \enquote{paragraph ending
+% environments} (by setting this flag).
+%
+% For the reimplementation of the list environments including support
+% of tagging we need to augment that mechanism slightly and add some
+% kernel hook(s) to add the tagging code if needed.
+%
+%
+%
+%
+%  \begin{macro}{\@doendpe}
+%    The original \LaTeXe{} command is augmented to allow for tagging.
+%    \begin{macrocode}
+\def\@doendpe{\@endpetrue
+  \def\par
+    {
+      \@restorepar
+      \clubpenalty\@clubpenalty
+%    \end{macrocode}
+%    At this point we add the tagging code that closes an open
+%    \struct{text-unit}, \struct{text} tag combination,
+%    if necessary:
+%    \begin{macrocode}
+      \__kernel_displayblock_doendpe:
+%    \end{macrocode}
+%
+%    The standard \cs{par} command (\cs{par_end:}) acts on
+%    \texttt{@endpe} and attempts to close a still open \texttt{text-unit}
+%    and this would be wrong if it was already closed above. So we
+%    have to reset the switch to false first.      
+%    \begin{macrocode}
+      \@endpefalse
+      \everypar{}
+      \par
+    }
+  \everypar{{\setbox\z@\lastbox}
+            \everypar{}
+            \@endpefalse
+  }
+}
+%    \end{macrocode}
+%
+%    By default we don't do any tagging:
+%    \begin{macrocode}
+\cs_new_eq:NN \__kernel_displayblock_doendpe: \prg_do_nothing:
+%    \end{macrocode}
+%    The flag itself should be set globally not locally.\fmi{verify
+%    that this claim is actually correct!}
+%    \begin{macrocode}
+\def\@endpetrue {\global\let\if at endpe\iftrue}
+\def\@endpefalse{\global\let\if at endpe\iffalse}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%
+% \subsection{Object and template interfaces}
+%
+%
+% \begin{objecttype}{blockenv, block, para, list, item}
+%   All object types expect a single
+%   key--value argument used to tweak template parameters specific to a
+%   given use in the document.  This section is devoted to template
+%   interfaces, and the template code is covered later.
+%    \begin{macrocode}
+\DeclareObjectType{blockenv}{1}
+\DeclareObjectType{block}{1}
+\DeclareObjectType{para}{1}
+\DeclareObjectType{list}{1}
+\DeclareObjectType{item}{1}
+%    \end{macrocode}
+% \end{objecttype}
+%
+%
+%
+%  \begin{template}{blockenv display}
+%    
+%    \begin{macrocode}
+\DeclareTemplateInterface{blockenv}{display}{1}
+{
+  env-name       : tokenlist ,
+  tag-name       : tokenlist ,
+  tag-class      : tokenlist ,
+  tagging-recipe : tokenlist = standard,
+  level-increase : boolean = true ,
+  setup-code     : tokenlist , 
+  block-instance : tokenlist = displayblock ,
+  para-instance  : tokenlist ,
+  inner-level-counter : tokenlist,
+  max-inner-levels    : tokenlist = 4,
+  inner-instance-type : tokenlist = list ,
+  inner-instance      : tokenlist ,
+  para-flattened : boolean = false ,
+  final-code     : tokenlist = \ignorespaces ,
+}
+%    \end{macrocode}
+%  \end{template}
+%
+%
+%  \begin{template}{block display}
+%    
+%    \begin{macrocode}
+\DeclareTemplateInterface{block}{display}{1}    
+{
+  heading        : tokenlist = ,                               %??
+  beginsep       : skip = \topsep ,
+  begin-par-skip : skip = \partopsep ,
+  par-skip       : skip = \parsep ,
+  end-skip       : skip = \KeyValue{beginsep} ,                % conflict with name below
+  end-par-skip   : skip = \KeyValue{begin-par-skip} ,
+  beginpenalty   : integer = \UseName{@beginparpenalty} ,
+  endpenalty     : integer = \UseName{@endparpenalty} ,
+  leftmargin     : length = \leftmargin ,
+  rightmargin    : length = \rightmargin ,
+  parindent      : length = \listparindent ,
+%  font            : tokenlist          % maybe add? (or more general for fonts and color)
+}
+%    \end{macrocode}
+%  \end{template}
+%
+%
+%  \begin{template}{para std}
+%    
+%    \begin{macrocode}
+\DeclareTemplateInterface{para}{std}{1}    
+{
+  indent-width          : length = \parindent ,
+  start-skip            : skip = 0pt  ,
+  left-skip             : skip = 0pt ,
+  right-skip            : skip = 0pt ,
+  end-skip              : skip = \@flushglue ,
+  fixed-word-spaces     : boolean = false ,
+  final-hyphen-demerits : integer = 5000 ,
+  cr-cmd                : tokenlist = \@normalcr ,
+  para-class            : tokenlist = justify ,                          
+}
+%    \end{macrocode}
+%  \end{template}
+%
+%
+%  \begin{template}{list std}
+%    
+%    \begin{macrocode}
+\DeclareTemplateInterface{list}{std}{1}     % optional
+{
+  counter         : tokenlist = ,
+  item-label      : tokenlist = ,
+  start           : integer = 1 ,
+  resume          : boolean = false ,
+  item-instance   : instance{item} = basic ,
+  item-skip       : skip = \itemsep ,
+  item-penalty    : integer = \UseName{@itempenalty} ,
+  item-indent     : length = 0pt ,         % was \itemindent 
+  label-width     : length = \labelwidth ,
+  label-sep       : length = \labelsep ,
+  legacy-support   : boolean = false ,
+}
+%    \end{macrocode}
+%  \end{template}
+%
+%
+% \begin{template}{item std}
+%
+%    \begin{macrocode}
+\DeclareTemplateInterface{item}{std}{1}
+  {
+    counter-label : function{1} = \arabic{#1} ,
+    counter-ref   : function{1} = \KeyValue{counter-label} ,
+    label-ref     : function{1} = #1 ,
+    label-autoref : function{1} = item~#1 ,
+    label-format  : function{1} = #1 ,
+    label-strut   : boolean = false ,
+    label-align   : choice {left,center,right,parleft} = right ,
+    label-boxed   : boolean = true ,
+    next-line     : boolean = false ,
+    text-font     : tokenlist ,
+    compatibility : boolean = true ,
+  }
+%    \end{macrocode}
+% \end{template}
+%
+%
+%
+%
+%
+%
+% \subsection{Useful helper commands}
+%
+% This section collects \pkg{expl3} commands that will be useful.
+%
+%  \begin{macro}{\@@_skip_set_to_last:N,\@@_skip_remove_last:}
+%    Set a skiip register to  the value of an immediately preceding
+%    skip or zero if there was none
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_skip_set_to_last:N #1 {
+  \skip_set:Nn #1 { \tex_lastskip:D }
+}
+%    \end{macrocode}
+%    Remove a skip previous skip if it is directly in front (not
+%    allowed in unrestricted vertical mode).
+%    \begin{macrocode}
+\cs_new_eq:NN \@@_skip_remove_last: \tex_unskip:D
+%    \end{macrocode}
+%  \end{macro}
+%    
+%  \begin{macro}{\tl_if_novalue:nTF}
+%    
+%    \begin{macrocode}
+\cs_generate_variant:Nn \tl_if_novalue:nTF { o }
+%    \end{macrocode}
+%  \end{macro}
+%    
+%    
+%  \begin{macro}{\tag_if_active:T}
+%    If tagging support is not loaded then we shouldn't try to execute
+%    any tagging related commands. Eventually this can go once the
+%    basic support is available in the kernel.
+%    \fmi{can vanish one day}   
+%    \begin{macrocode}
+\cs_if_exist:NF \tag_if_active:T
+   { \cs_new_eq:NN \tag_if_active:T \use_none:n }
+%    \end{macrocode}
+%  \end{macro}
+%
+% \subsubsection{Debugging}
+%
+%    
+%  \begin{variable}{\g_@@_debug_bool}
+%    
+%    \begin{macrocode}
+\bool_new:N \g_@@_debug_bool
+%    \end{macrocode}
+%  \end{variable}
+%
+%
+%  \begin{macro}{\@@_debug:n,\@@_debug_typeout:n}
+%    
+%    \begin{macrocode}
+\cs_new_eq:NN \@@_debug:n \use_none:n
+\cs_new_eq:NN \@@_debug_typeout:n \use_none:n
+%    \end{macrocode}
+%  \end{macro}
+%
+%  \begin{macro}{\block_debug_on:,\block_debug_off:,
+%                \@@_debug_gset:}
+%    \begin{macrocode}
+\cs_new_protected:Npn \block_debug_on:
+  {
+    \bool_gset_true:N \g_@@_debug_bool
+    \@@_debug_gset:
+  }
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\cs_new_protected:Npn \block_debug_off:
+  {
+    \bool_gset_false:N \g_@@_debug_bool
+    \@@_debug_gset:
+  }
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_debug_gset:
+  {
+    \cs_gset_protected:Npx \@@_debug:n ##1
+      { \bool_if:NT \g_@@_debug_bool {##1} }
+    \cs_gset_protected:Npx \@@_debug_typeout:n ##1
+      { \bool_if:NT \g_@@_debug_bool { \typeout{==>~ ##1} } }
+  }
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%  \begin{macro}{\DebugBlocksOn,\DebugBlocksOff}
+%    
+%    \begin{macrocode}
+\cs_new_protected:Npn \DebugBlocksOn  { \block_debug_on:  }
+\cs_new_protected:Npn \DebugBlocksOff { \block_debug_off: }
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+\DebugBlocksOff
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%
+% \subsection{Implementation of the document-level block environments}
+%
+%    Most such environments are pretty simple: they take an option
+%    argument and call a \texttt{blockenv} instance to do the work. At
+%    the end of environment we call \cs{endblockenv} to finish.
+%
+%
+% \subsubsection{Displayblock environments}
+%
+%
+%    There are two basic block environment which are similar to
+%    \LaTeXe{}'s \env{trivlist} except that there aren't degenerated
+%    lists and thus have no hidden \cs{item} inside.
+%
+%
+%  \begin{environment}{displayblock}
+%    
+%    \begin{macrocode}
+\NewDocumentEnvironment{displayblock}{ !O{} }
+  { \UseInstance{blockenv}{displayblock} {#1} }
+  { \endblockenv }
+%    \end{macrocode}
+% \end{environment}
+%
+%
+%
+%
+%  \begin{environment}{displayblockflattened}
+%    
+%    \begin{macrocode}
+\NewDocumentEnvironment{displayblockflattened}{ !O{} }
+  { \UseInstance{blockenv}{displayblockflattened} {#1} }
+  { \endblockenv }
+%    \end{macrocode}
+%  \end{environment}
+%
+%
+%
+%
+%
+%
+%
+%
+%  \begin{environment}{center,flushleft,flushright}
+%    
+%    \begin{macrocode}
+\AddToHook{begindocument/before}{
+  \RenewDocumentEnvironment{center} { !O{} }
+  { \UseInstance{blockenv}{center}{#1} }
+  { \endblockenv }
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+  \RenewDocumentEnvironment{flushright} { !O{} }
+  { \UseInstance{blockenv}{flushright}{#1} }
+  { \endblockenv }
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+  \RenewDocumentEnvironment{flushleft} { !O{} }
+  { \UseInstance{blockenv}{flushleft}{#1} }
+  { \endblockenv }
+}
+%    \end{macrocode}
+%
+%    
+%  \end{environment}
+%
+%
+%
+%
+% \subsubsection{Display quote environments}
+%
+%
+%  \begin{environment}{quote,quotation}
+%    
+%    \begin{macrocode}
+\AddToHook{begindocument/before}{
+  \RenewDocumentEnvironment{quote}{ !O{} }
+    { \UseInstance{blockenv}{quote} {#1} }
+    { \endblockenv }
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+  \RenewDocumentEnvironment{quotation}{ !O{} }
+    { \UseInstance{blockenv}{quotation} {#1} }
+    { \endblockenv }
+}
+%    \end{macrocode}
+% \end{environment}
+%
+%
+%
+%
+%
+%
+% \subsubsection{Verbatim environments}
+%
+%
+%  \begin{environment}{verbatim,verbatim*}
+%    
+%    \begin{macrocode}
+\AddToHook{begindocument/before}{
+  \RenewDocumentEnvironment{verbatim}{ !O{} }
+    { \UseInstance{blockenv}{verbatim} {#1}
+      \@xverbatim
+    }
+    { \endblockenv }
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+  \RenewDocumentEnvironment{verbatim*}{ !O{} }
+    { \UseInstance{blockenv}{verbatim} {#1}
+      \@setupverbvisiblespace\frenchspacing\@vobeyspaces
+      \@sxverbatim
+    }
+    { \endblockenv }
+}
+%    \end{macrocode}
+% \end{environment}
+%
+%
+%
+% \paragraph{Helper commands for verbatim}
+%
+%
+%  \begin{macro}{\legacyverbatimsetup}
+%    
+%    \begin{macrocode}
+%<@@=>  
+\def\legacyverbatimsetup{%
+  \language\l at nohyphenation
+  \@tempswafalse
+  \def\par{%
+    \if at tempswa
+      \leavevmode \null \@@par\penalty\interlinepenalty
+    \else
+      \@tempswatrue
+      \ifhmode\@@par\penalty\interlinepenalty\fi
+    \fi}%
+  \let\do\@makeother \dospecials
+  \obeylines \verbatim at font \@noligs
+  \everypar \expandafter{\the\everypar \unpenalty}%
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+  \tl_set:Nn \l__tag_para_main_tag_tl {codeline}
+  \tagtool{paratag=Code}%   oder faster: \tl_set:Nn\l__tag_para_tag_tl{Code}      
+  \@setupverbinvisiblespace
+  \frenchspacing \@vobeyspaces
+}
+%<@@=block>  
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%  \begin{macro}{\@setupverbinvisiblespace}
+%    In the \pdfTeX{} engine we need to use \cs{pdffakespace} chars
+%    for the invisible spaces.
+%    \begin{macrocode}
+\newcommand\@setupverbinvisiblespace{}
+\tag_if_active:T {
+  \bool_if:NF\g__tag_mode_lua_bool
+   {
+     \renewcommand\@setupverbinvisiblespace{\def\@xobeysp{\nobreakspace\pdffakespace}}
+   }
+}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%
+%
+% \subsubsection{Standard list environments}
+%
+%
+% \begin{environment}{itemize,enumerate,description}
+%
+%    For the standard lists everything is managed by the blockenv instance.
+%    \begin{macrocode}
+\AddToHook{begindocument/before}{
+  \RenewDocumentEnvironment{itemize}{!O{}}
+    { \UseInstance{blockenv}{itemize} {#1} }
+    { \endblockenv }
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+  \RenewDocumentEnvironment{enumerate}{!O{}}
+    { \UseInstance{blockenv}{enumerate} {#1} }
+    { \endblockenv }
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+  \RenewDocumentEnvironment{description}{!O{}}
+    { \UseInstance{blockenv}{description} {#1} }
+    { \endblockenv }
+}
+%    \end{macrocode}
+% \end{environment}
+%
+%
+%
+%
+%
+%
+% \begin{environment}{list}
+%
+%    The legacy 2e list environment is more complicated as we have to get the
+%    extra arguments accounted for.
+%    \begin{macrocode}
+\AddToHook{begindocument/before}{
+  \RenewDocumentEnvironment{list}{O{} m m }
+    {
+%    \end{macrocode}
+%    We do this by storing them away and then call the list
+%    instance. Inside this instance the \texttt{setup-code} key
+%    contains \cs{legacylistsetupcode}, which makes use of the stored values.
+%    \begin{macrocode}
+      \tl_set:Nn \@itemlabel {#2}
+      \tl_set:Nn \l_@@_legacy_env_params_tl {#3}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+      \UseInstance{blockenv}{list} {#1}
+    }
+    { \endblockenv }
+}
+%    \end{macrocode}
+%
+%    Again something that should probably elsewhere: the rolemapping.
+%    \begin{macrocode}
+\tag_if_active:T {
+  \tagpdfsetup{add-new-tag={tag=list,role=L}}
+}
+%    \end{macrocode}
+% \end{environment}
+%
+%
+%
+% \begin{variable}{\l_@@_env_params_tl}
+%    Declare the variable for the parameter argument; \cs{@itemlabel}
+%    is already declared in \LaTeXe{}.
+%    \begin{macrocode}
+\tl_new:N \l_@@_env_params_tl
+%    \end{macrocode}
+% \end{variable}
+%
+%
+%  \begin{macro}{\legacylistsetupcode}
+%    
+%    And here is the extra code for use in the list instance setup
+%    inside the key \texttt{setup-code}.
+%    \begin{macrocode}
+\cs_new:Npn \legacylistsetupcode {
+%    \end{macrocode}
+%    Reset values to defaults:
+%    \begin{macrocode}
+    \dim_zero:N \listparindent
+    \dim_zero:N \rightmargin
+    \dim_zero:N \itemindent
+%    \end{macrocode}
+%    
+%    By default a \env{list} environment is not numbered:
+%    \begin{macrocode}
+    \tl_set:Nn \@listctr {}
+    \legacy_if_set_false:n { @nmbrlist } % needed if lists are nested
+%    \end{macrocode}
+%    By default there is a simple definition for \cs{makelabel}. It can be
+%    overwritten in the second mandatory argument to the list
+%    environment (stored in \cs{l_@@_legacy_env_params_tl}) and 
+%    is used if the instance sets the compatibility key to true.
+%    \begin{macrocode}
+   \let\makelabel\@mklab % TODO: customize
+%    \end{macrocode}
+%    Now we use the argument with parameter settings to update some or
+%    all of the above defaults:
+%    \begin{macrocode}
+   \l_@@_legacy_env_params_tl
+%    \end{macrocode}
+%    As we don't know much about this list we can only make a guess about
+%    the nature of the list and the setting of the tag name (default
+%    \texttt{list} rolemapped to \texttt{L}) and any tag attributes
+%    may have to be overwritten in the optional key/value argument. But we do have some hints to play with.
+%    \begin{macrocode}
+    \legacy_if:nTF { @nmbrlist }
+      { \tl_set:Nn \l__tag_L_attr_class_tl {enumerate} }   % numbered list
+      { \tl_if_empty:NTF \@itemlabel
+          { \tl_set:Nn \l__tag_L_attr_class_tl {list}    } % no label
+          { \tl_set:Nn \l__tag_L_attr_class_tl {itemize} } % unnumbered, unordered
+      }
+}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%
+%
+%  \begin{environment}{trivlist}
+%    
+%    \begin{macrocode}
+\AddToHook{begindocument/before}{
+  \RenewDocumentEnvironment{trivlist}{ !O{} }
+                           { \list[#1]{}
+                             {
+                               \dim_zero:N \leftmargin
+                               \dim_zero:N \labelwidth
+                               \cs_set_eq:NN \makelabel \use:n
+                             }
+                           }
+    { \endblockenv }
+}
+%    \end{macrocode}
+%  \end{environment}
+%
+%
+% \subsubsection{Theorem-like environments}
+%
+% Theorem-like environments are defined in \LaTeX{} with the help of
+% \cs{newtheorem} declarations. Internally they use a list with a
+% single item. For now we keep this approach and only add appropriate
+% tagging support wihtin the internal commands.
+%
+%
+%  \begin{macro}{\@begintheorem,\@opargbegintheorem}
+%
+%    We use \struct{theorem-like} as the structure name and rollmap it
+% to a list (\struct{L}).
+%    \begin{macrocode}
+\tag_if_active:T {
+  \tagpdfsetup{add-new-tag={tag=theorem-like,role=L}}
+}
+%    \end{macrocode}
+%
+%    With that done, we only have to tell the \env{trivlist} what
+%    \key{tag-name} it should use.
+%    \begin{macrocode}
+\def\@begintheorem#1#2{\trivlist[tag-name=theorem-like]%
+   \item[\hskip \labelsep{\bfseries #1\ #2}]\itshape}
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+\def\@opargbegintheorem#1#2#3{\trivlist[tag-name=theorem-like]
+      \item[\hskip \labelsep{\bfseries #1\ #2\ (#3)}]\itshape}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%
+%
+%
+%
+% \subsection{Implementation of templates}
+%
+%
+% \subsubsection{Implementation of blockenv templates \ldots}
+%
+%
+%
+%  \begin{macro}{\g_block_nesting_depth_int}
+%    \LaTeXe{} already has a counter to record the nesting depth of
+%    blocks, but  we want our own name because it isn't really tied to
+%    \enquote{lists} any more. However, \cs{@listdepth} is really part
+%    of the legacy interface (for example \env{minipage} alters it to
+%    point to a different counter) so that we are stuck with using at
+%    least indirectly for now and the following line makes this look
+%    like an L3 integer variable but internally expands to \cs{@listdepth}:
+%    \begin{macrocode}
+\cs_new:Npn \g_block_nesting_depth_int { \@listdepth }  % a fake int
+                                                        % for now
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%  \begin{template}{blockenv display}
+%    
+%    \begin{macrocode}
+\DeclareTemplateCode{blockenv}{display}{1}
+{
+  env-name       = \l_@@_env_name_tl ,
+  tag-name       = \l_@@_tag_name_tl ,
+  tag-class      = \l_@@_tag_class_tl ,
+  tagging-recipe = \l_@@_tagging_recipe_tl ,
+  level-increase = \l_@@_level_incr_bool ,
+  setup-code     = \l_@@_setup_code_tl , 
+  block-instance = \l_@@_block_instance_tl ,
+  para-instance  = \l_@@_para_instance_tl ,
+  inner-level-counter = \l_@@_inner_level_counter_tl ,
+  max-inner-levels    = \l_@@_max_inner_levels_tl ,
+  inner-instance-type = \l_@@_inner_instance_type_tl ,
+  inner-instance      = \l_@@_inner_instance_tl ,
+  para-flattened = \l__tag_para_flattened_bool ,
+  final-code     = \l_@@_final_code_tl , 
+}
+{
+  \@@_debug_typeout:n{\l_@@_env_name_tl -env-start}
+%  
+  \tl_if_empty:nF {#1} { \SetTemplateKeys{blockenv}{display}{#1} }
+%
+%    \end{macrocode}
+%    We need to know later if we haved nested blockenvs inside
+%    a flattened environment. Whenever we  start a new blockenv we
+%    increment \cs{\l_@@_flattened_level_int} if it is already
+%    different from zero. If it is zero we increment it if flattening
+%    is requested.
+%    Thus a value of \texttt{0} means no flattening requested so far
+%    and \texttt{1} means this is the first blockenv requesting
+%    flattening. In either case we have to make sure that the blockenv
+%    is surrounded by a \texttt{text-unit} tag, while for any value above
+%    \texttt{1} we have to omit the \texttt{text-unit}.
+  %    \begin{macrocode}
+  \int_compare:nNnTF \l_@@_flattened_level_int > 0
+      {
+        \int_incr:N \l_@@_flattened_level_int
+      }
+      {
+        \bool_if:NT \l__tag_para_flattened_bool
+             {
+               \int_incr:N \l_@@_flattened_level_int
+             }
+      }
+%
+  \tl_if_empty:NF \l_@@_inner_level_counter_tl
+     {
+       \int_compare:nNnTF  \l_@@_inner_level_counter_tl >
+                           { \l_@@_max_inner_levels_tl - 1 }
+           { \@toodeep }
+           { \int_incr:N \l_@@_inner_level_counter_tl }  % not clean "o"?
+     }
+%    \end{macrocode}
+%    Legacy defaults are only roped in if the list level changes. For
+%    display blocks that remain on the same level the current values
+%    are kept.
+%    \begin{macrocode}
+  \bool_if:NT \l_@@_level_incr_bool
+     {
+       \int_compare:nNnTF  \g_block_nesting_depth_int >
+                           { \c at maxblocklevels - 1 } 
+           { \@toodeep }
+           {
+             \int_gincr:N \g_block_nesting_depth_int
+%    \end{macrocode}
+%    If there are no legacy defaults for that level then the next line
+%    does nothing, i.e., the current values (from the last level
+%    become the defaults for the next.
+%    \begin{macrocode}
+             \use:c { @list \int_to_roman:n { \g_block_nesting_depth_int } }
+           }
+     }
+%    \end{macrocode}
+%    If we are doing tagging we load one of the available recipes for
+%    tagging, which alters various kernel hooks to add appropriate
+%    tagging structures.
+%    \begin{macrocode}
+  \tag_if_active:T { \use:c { @@_recipe_ \l_@@_tagging_recipe_tl : } }
+%    \end{macrocode}
+%    Then run the setup code if any is given in the instance.
+%    \begin{macrocode}
+  \l_@@_setup_code_tl
+%    \end{macrocode}
+%    Next call a block instance at the appropriate level passing it
+%    any key/value list provided in the optional argument (keys that
+%    are not recognized are ignored---currently with an
+%    error).
+%    \begin{macrocode}
+  \@@_debug_typeout:n{use~ instance:~
+           \l_@@_block_instance_tl - \int_use:N \g_block_nesting_depth_int }
+  \UseInstance{block}
+              { \l_@@_block_instance_tl - \int_use:N
+                \g_block_nesting_depth_int }
+              {#1}
+%    \end{macrocode}
+%    After the block instance call the para and then inner (list)
+%    instance if either or both are
+%    specified (which may not be the case).
+%    \begin{macrocode}
+  \tl_if_empty:NF \l_@@_para_instance_tl 
+    {
+      \@@_debug_typeout:n{use~ para~ instance:~ \l_@@_para_instance_tl }
+%    \end{macrocode}
+%    For now we don't offer to alter instance parameters here so we
+%    pass an empty argument.
+%    \begin{macrocode}
+      \UseInstance{para}{ \l_@@_para_instance_tl } {}
+    }
+%    \end{macrocode}
+%    In the inner instance may have its own levels or none depending
+%    on which the instance name differs. Again we pass it the optional
+%    key/value list.
+%    \begin{macrocode}
+  \tl_if_empty:NF \l_@@_inner_instance_tl
+    {
+      \@@_debug_typeout:n{use~ instance:~ \l_@@_inner_instance_tl
+               \tl_if_empty:NF \l_@@_inner_level_counter_tl
+                       { - \int_use:N \l_@@_inner_level_counter_tl }}
+      \UseInstance{ \l_@@_inner_instance_type_tl }
+                  { \l_@@_inner_instance_tl
+                    \tl_if_empty:NF \l_@@_inner_level_counter_tl
+                       { - \int_use:N \l_@@_inner_level_counter_tl }  % not clean
+                                                                % use "o"?
+                  }
+                  {#1}
+    }
+%    \end{macrocode}
+%    We finish off with \cs{l_@@_final_code_tl} which defaults to
+%    \cs{ignorespaces} so that spaces between \verb=\begin{...}= and
+%    the start of the text are ignored.
+%    \begin{macrocode}
+  \l_@@_final_code_tl
+}
+%    \end{macrocode}
+%  \end{template}
+%
+%
+%  \begin{macro}{\l_@@_flattened_level_int}
+%    Count the levels of nested blockenvs starting with the first that
+%    is \enquote{flattened}.
+%    \begin{macrocode}
+\int_new:N \l_@@_flattened_level_int
+%    \end{macrocode}
+%  \end{macro}
+%
+%  \begin{macro}{\c at maxblocklevels}
+%    A counter to increase or decrease the number of supported
+%    level. If increased, one needs to suply additional level instances.
+%    \begin{macrocode}
+\newcounter{maxblocklevels}
+\setcounter{maxblocklevels}{6}
+%    \end{macrocode}
+%  \end{macro}
+%
+%  \begin{macro}{\endblockenv}
+%    The code executed when a blockenv ends is 99\% the same for all
+%    blockenvs (at least up to now). Small differences exist, though. They 
+%    are  accounted for first in the conditionals.
+%
+%    We make this a public command so that new block environments can
+%    be set up without the need to resort to L3 layer
+%    programming.\fmi{name is bad}
+%    \begin{macrocode}
+\cs_new:Npn \endblockenv {
+  \@@_debug_typeout:n{blockenv~ common~ ending \on at line}
+%    \end{macrocode}
+%    If this block was incrementing the level we have to decrement it
+%    now again:
+%    \begin{macrocode}
+  \bool_if:NT \l_@@_level_incr_bool
+    { \int_gdecr:N \g_block_nesting_depth_int }
+%    \end{macrocode}
+%    If this block was a list and there are still \cs{item} labels to
+%    be placed we move to horizontal mode to get them typeset.
+%    \begin{macrocode}
+  \legacy_if:nT { @inlabel }
+    {
+      \mode_leave_vertical: 
+      \legacy_if_gset_false:n { @inlabel }
+    }
+%    \end{macrocode}
+%    In a pure ``displayblock'' scenario \texttt{@newlist} will be
+%    always false and the code bypassed, but we may have an outer list
+%    followed immediately by a displayblock (with the \cs{item} missing)
+%    \begin{macrocode}
+  \legacy_if:nT { @newlist }
+    {
+      \@noitemerr
+      \legacy_if_gset_false:n { @newlist }
+    }
+  \mode_if_horizontal:TF
+       { \@@_skip_remove_last: \@@_skip_remove_last: \par }
+       { \@inmatherr{\end{\@currenvir}} }
+%    \end{macrocode}
+%    Once we are back in vertical mode we can add the appropriate
+%    closing tagging structure(s), if we are doing tagging.
+%    \begin{macrocode}
+  \__kernel_displayblock_end:
+%    \end{macrocode}
+%    What to do in terms of vertical spacing  in different situations
+%    is still somewhat open to debate, right now this is more or less
+%    implementing what \LaTeXe{} list environment have been
+%    doing.\fmi{some redesign/extensions here?}
+%    \begin{macrocode}
+%    \@@_debug_typeout:n{@noparlist =
+%                       \legacy_if:nTF { @noparlist }{true}{false}}
+  \legacy_if:nF { @noparlist }
+    {
+      \@@_skip_set_to_last:N \l_tmpa_skip
+      \dim_compare:nNnT \l_tmpa_skip > \c_zero_dim
+        {
+          \skip_vertical:n { - \l_tmpa_skip }
+          \skip_vertical:n { \l_tmpa_skip + \parskip - \@outerparskip }
+        }
+      \addpenalty \@endparpenalty
+      \addvspace \l_@@_topsepadd_skip
+%    \end{macrocode}
+%    \LaTeXe{} triggered the paragraph handling after a list at this
+%    point here, i.e., only if the list didn't start a paragraph. One
+%    can make a case for that, but it can be somewhat surprising to
+%    the user and there is a good argument that even such a list could
+%    be followed expanatory text that is part of the same paragraph
+%    and doesn't start a new one.\fmi{decide which logic we want to
+%    use! If the old logic is used we need to close the text-unit
+%    ourselves in the true branch}
+%    \begin{macrocode}
+%        \legacy_if_gset_true:n { @endpe }
+    }
+%    \end{macrocode}
+%    So this is for now always done. Probably \cs{l_@@_topsepadd_skip} above
+%    should be added only if the paragraph ends here and not if it
+%    continues, so this need some further cleanup.\fmi{decide}
+%    \begin{macrocode}
+  \legacy_if_gset_true:n { @endpe }
+}
+%    \end{macrocode}
+%
+%  \end{macro}
+%
+%
+%
+%  \begin{macro}{\__kernel_displayblock_end:}
+%    The kernel hook for tagging at the end of the block.
+%    \begin{macrocode}
+\cs_new:Npn \__kernel_displayblock_end: {
+  \@@_debug_typeout:n{\detokenize{__kernel_displayblock_end:}}
+}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%
+%
+%
+%
+%
+% \subsubsection{Implementation of para templates \ldots}
+%
+%  \begin{template}{para std}
+%    
+%    \begin{macrocode}
+\DeclareTemplateCode{para}{std}{1}
+{
+  indent-width      = \parindent ,
+  start-skip        = \l__par_start_skip ,              % name??
+  left-skip         = \leftskip  ,
+  right-skip        = \rightskip  ,
+  end-skip          = \parfillskip ,
+  fixed-word-spaces = \l__par_fixed_word_spaces_bool ,  % name??
+  final-hyphen-demerits = \finalhyphendemerits ,
+  cr-cmd                = \\ ,
+  para-class            = \l_tag_para_attr_class_tl ,                          
+}
+{
+  \tl_if_empty:nF {#1} { \SetTemplateKeys{para}{std}{#1} }
+  \skip_set:Nn \@rightskip \rightskip
+}
+%    \end{macrocode}
+%  \end{template}
+%
+%
+%
+%
+%
+% \subsubsection{Implementation of block templates \ldots}
+%
+%
+%
+%
+%
+% \begin{template}{block display}
+%    
+%    \begin{macrocode}
+\DeclareTemplateCode{block}{display}{1}
+{
+  heading         = \l_@@_heading_tl ,
+  beginsep        = \topsep ,
+  begin-par-skip  = \partopsep ,
+  par-skip        = \parsep ,
+  end-skip        = \l_@@_botsep_skip ,
+  end-par-skip    = \l_@@_parbotsep_skip ,
+  beginpenalty    = \@beginparpenalty ,
+  endpenalty      = \@endparpenalty ,
+  rightmargin     = \rightmargin ,
+  leftmargin      = \leftmargin ,
+  parindent       = \listparindent ,
+}
+{
+  \tl_if_empty:nF {#1} { \SetTemplateKeys{block}{display}{#1} }
+%    \end{macrocode}
+%  \fmi{generalize heading usage (or drop?)}
+%    \begin{macrocode}
+    \tl_if_blank:oF \l_@@_heading_tl
+      { \mode_leave_vertical: \textbf{\l_@@_heading_tl} } % TODO customize
+%    \end{macrocode}
+%    The code largely follows the logic of \LaTeXe{}'s \env{trivlist}
+%    implementation as far as it applicable for the \enquote{display
+%    block} but coded using the L3 programming layer. However, we keep
+%    all the legacy variables (e.g., \texttt{@noskipsec}) if there is
+%    some chance that they are set in classes or packages.
+%    \begin{macrocode}
+    \legacy_if:nT { @noskipsec } { \mode_leave_vertical: }
+    \skip_set:Nn \l_@@_topsepadd_skip { \topsep }
+    \mode_if_vertical:TF
+      {
+        \skip_add:Nn \l_@@_topsepadd_skip { \partopsep }
+%    \end{macrocode}
+%    At this point it is safe to add tagging structure(s) so we have
+%    a kernel-owned hook here for tagging. This is used to possibly
+%    start a paragraph structure (to surround the block, for example,
+%    in case of lists) and possibly do some other preparation for
+%    tagging the block.
+%    \begin{macrocode}
+        \__kernel_displayblock_beginpar_vmode:
+      }
+      {
+%    \end{macrocode}
+%    If we are in horizontal mode then the displayblock has to return
+%    to vertical mode now (after removing any immediately preceding
+%    skip or kern. But before we actually issue the\cs{par} we execute
+%    a kernel hook in which we can add tagging code. This hook is
+%    \enquote{weird} because by default it does nothing, but if
+%    tagging is wanted it takes an argument and grabs the following
+%    \cs{par} in order to put tagging code before and after the \cs{par}.
+%    \begin{macrocode}
+        \@@_skip_remove_last: \@@_skip_remove_last:
+        \__kernel_displayblock_beginpar_hmode:w \par 
+      }
+%    \end{macrocode}
+%    Now we are back to legacy list implementation \ldots
+%    \begin{macrocode}
+    \legacy_if:nTF { @inlabel }
+      {
+        \legacy_if_set_true:n { @noparitem }
+        \legacy_if_set_true:n { @noparlist }
+      }
+      {
+        \legacy_if:nT { @newlist } { \@noitemerr }
+        \legacy_if_set_false:n { @noparlist }
+        \skip_set_eq:NN \l_@@_effective_top_skip \l_@@_topsepadd_skip
+      }
+    \skip_add:Nn \l_@@_effective_top_skip { \parskip }
+%    \end{macrocode}
+%    Next lines set some paragraph defaults, this may get overwritten
+%    if there is a \key{para-instance} specified on the \xt{blockenv}.
+%    \begin{macrocode}
+    \skip_zero:N \leftskip
+    \skip_set_eq:NN \rightskip \@rightskip
+    \skip_set_eq:NN \parfillskip \@flushglue
+%    \end{macrocode}
+%    The next lines establish a parshape which is retained across
+%    paragraphs be executing \cs{para_end:} within a group and thus
+%    reestablishing the parshape for the next paragraph again. In case
+%    a list got started \cs{par} is ignored until we have seen an
+%    \cs{item} (or we have executed \cs{par} one thousand times.
+%    \begin{macrocode}
+    \int_zero:N \par at deathcycles
+    \@setpar
+      {
+        \legacy_if:nTF { @newlist }
+          {
+            \int_incr:N \par at deathcycles
+            \int_compare:nNnTF \par at deathcycles > { 1000 }
+                { \@noitemerr
+                  { \para_end: }
+                }
+          }
+          {
+            { \para_end: }
+          }
+      }
+    \skip_set_eq:NN \@outerparskip \parskip
+    \skip_set_eq:NN \parskip \parsep
+    \dim_set_eq:NN \parindent \listparindent
+    \dim_add:Nn \linewidth { - \rightmargin - \leftmargin }
+    \dim_add:Nn \@totalleftmargin { \leftmargin }
+    \tex_parshape:D 1 ~ \@totalleftmargin \linewidth
+%    \end{macrocode}
+%    This is the point where we are ready to add the tagging structure
+%    for the block, e.g., an \verb=<L>=, a \verb=<Figure>= or some
+%    other structure.
+%    \begin{macrocode}
+    \__kernel_displayblock_begin:
+%    \end{macrocode}
+%    Finally, we have to output the vertical separation and penalty at
+%    the start of the block  and make corrections for a change in
+%    \cs{parskip} and some other housekeeping, unless this block is inside a list and the list
+%    \cs{item} has not yet placed. In that case the vertical
+%    space and penalty us suppressed. This
+%    is controled through the legacy switches \texttt{@noparitem},
+%    \texttt{minipage}, and \texttt{@nobreak}.
+%    \begin{macrocode}
+    \legacy_if:nTF { @noparitem }
+      {
+        \legacy_if_set_false:n { @noparitem }
+        \hbox_gset:Nn \g_@@_labels_box
+          {
+            \skip_horizontal:n { - \leftmargin }
+            \hbox_unpack_drop:N \g_@@_labels_box
+            \skip_horizontal:n { \leftmargin }
+          }
+%    \end{macrocode}
+%    \fmi{document 2e logic used here}
+%    \begin{macrocode}
+        \legacy_if:nF { @minipage } % Why this chunk of code?
+          {
+            \@@_skip_set_to_last:N \l_@@_tmpa_skip
+            \skip_vertical:n { - \l_@@_tmpa_skip }
+            \skip_vertical:n { \l_@@_tmpa_skip + \@outerparskip - \parskip }
+          }
+      }
+      {
+        \legacy_if:nTF { @nobreak }
+          { \addvspace{\skip_eval:n{\@outerparskip-\parskip}} }
+          {
+            \addpenalty \@beginparpenalty
+            \addvspace \l_@@_effective_top_skip
+            \addvspace{-\parskip}
+          }
+      }
+}
+%    \end{macrocode}
+%
+%
+%    Extra keys to support enumitem conventions:
+%    \begin{macrocode}
+\keys_define:nn { template/block/display }
+{
+  ,topsep        .skip_set:N = \topsep
+  ,partopsep     .skip_set:N = \partopsep
+  ,listparindent .skip_set:N = \listparindent
+}
+%    \end{macrocode}
+% \end{template}
+%
+%
+%
+%  \begin{macro}{\__kernel_displayblock_begin:,
+%                \__kernel_displayblock_beginpar_hmode:w,
+%                \__kernel_displayblock_beginpar_vmode:}
+%    The internal kernel hooks for tagging.
+%    \begin{macrocode}
+\cs_new:Npn \__kernel_displayblock_begin: {
+  \@@_debug_typeout:n{\detokenize{__kernel_displayblock_begin:}}
+}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\cs_new:Npn \__kernel_displayblock_beginpar_hmode:w {
+  \@@_debug_typeout:n{\detokenize{__kernel_displayblock_beginpar_hmode:w}}
+}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\cs_new:Npn \__kernel_displayblock_beginpar_vmode: {
+  \@@_debug_typeout:n{\detokenize{__kernel_displayblock_beginpar_vmode:}}
+}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%
+%
+% \subsubsection{Implementation of list templates \ldots}
+%
+%
+%
+%  \begin{macro}{\@itemlabel,\@listctr}
+%    Both \cs{@itemlabel} and \cs{@listctr} from the \LaTeXe{} list
+%    implementation are used (or set) by various packages. We
+%    therefore use them too, so that these packages have a fighting
+%    chance to work with the new tagging-aware implementation for
+%    \env{list}.
+%    \begin{macrocode}
+\tl_new:N \@itemlabel         % should have a top-level definition
+\tl_new:N \@listctr           % should have a top-level definition
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%
+%
+%
+% \begin{template}{list std}
+%    
+%    This template implements numbered and unnumbered lists  and can
+%    be combined with display blocks or with inline blocks.
+%    \begin{macrocode}
+\DeclareTemplateCode{list}{std}{1}
+{
+  counter         = \l_@@_counter_tl,
+  item-label      = \l_@@_item_label_tl,
+  start           = \l_@@_counter_start_int ,
+  resume          = \l_@@_resume_bool ,
+  item-instance   = \@@_item_instance:n ,
+  item-skip       = \itemsep ,
+%  item-par-skip   = \parsep ,
+  item-penalty    = \@itempenalty ,
+  item-indent     = \itemindent ,
+  label-width     = \labelwidth ,
+  label-sep       = \labelsep ,
+  legacy-support  = \l_@@_legacy_support_bool , % FMi questionable
+}
+{
+  \@@_debug_typeout:n{template:list:std}
+%
+  \tl_if_empty:nF {#1} { \SetTemplateKeys{list}{std}{#1} }
+%    \end{macrocode}
+%    Has this list a counter name defined in the instance?
+%    \begin{macrocode}
+  \tl_if_empty:NTF \l_@@_counter_tl
+    {                                
+%    \end{macrocode}
+%    If not we check if \cs{@listctr} has a non-empty value to be used
+%    for the list counter.      
+%
+%    We better test for blank not empty in case somebody had defined
+%    \cs{@listctr} using \cs{renewcommand} or \cs{cs_set:Npn}.
+%    \begin{macrocode}
+     \tl_if_blank:oF \@listctr
+       {
+%    \end{macrocode}
+%    In that case \texttt{@nmbrlist} should have been set too, for
+%    example, through \cs{usecounter}, so we do not set it
+%    explicitly. However, we check if we should resume a previous list.
+%    \begin{macrocode}
+         \bool_if:NF \l_@@_resume_bool
+           {
+             \int_gset:cn{ c@ \@listctr }
+                 { \l_@@_counter_start_int - 1 }
+           } 
+       } 
+%    \end{macrocode}
+%    If \cs{@listctr} is not set then we have definitely an unnumbered list.
+%    \begin{macrocode}
+       { \@nmbrlistfalse } 
+    }
+%    \end{macrocode}
+%    If a counter is set in the list instance we use that
+%    one. This should be the name of a \LaTeX{} counter that is
+%    already allocated externally---no runtime check is made for this:
+%    if it is not declared one will get \enquote{no such counter}
+%    error when the list is used.
+%    \begin{macrocode}
+    {
+     \@nmbrlisttrue
+     \tl_set_eq:NN \@listctr \l_@@_counter_tl
+     \bool_if:NF \l_@@_resume_bool
+       {
+         \int_gset:cn{ c@ \@listctr }
+             { \l_@@_counter_start_int - 1 }
+       } 
+    }
+%    \end{macrocode}
+%    Does the current instance has an item label representation? This
+%    would be possible whether or not we have a numbered list. If yes,
+%    then we use this for \cs{@itemlabel}, otherwise we expect that
+%    \cs{@itemlabel} is provided from the outside, e.g., as part of
+%    the \env{list} environment argument.
+%    \begin{macrocode}
+  \tl_if_empty:NF \l_@@_item_label_tl
+    {
+      \tl_set_eq:NN \@itemlabel \l_@@_item_label_tl
+    }
+%    \end{macrocode}
+%    finally, we signal that we are at the start of a new list (which
+%    effects how the first \cs{item} is handled and how \cs{par}
+%    commands are interpreted.
+%    \begin{macrocode}
+    \legacy_if_gset_true:n { @newlist }
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+  \@@_debug_typeout:n{template:list:std~end}
+}
+%    \end{macrocode}
+%    
+%
+%    Extra keys to support enumitem conventions:
+%    \begin{macrocode}
+\keys_define:nn { template/list/std }
+{
+  ,nosep .code:n =
+    \dim_zero:N \itemsep
+    \dim_zero:N \parsep
+    \dim_zero:N \topsep
+    \dim_zero:N \l_@@_botsep_skip
+    \dim_zero:N \l_@@_parbotsep_skip
+  ,midsep    .skip_set:N = \topsep 
+}
+%    \end{macrocode}
+%
+%  \end{template}
+%
+%
+% \subsubsection{Implementation of \cs{item} template(s)}
+%
+%
+%
+% \begin{template}{item std}
+%   The item template has one hidden key \texttt{label} which is not available on the
+%    template for setting because it is only used to receive any
+%    optional data passed to the \cs{item} command. We therefore
+%    declare it with \cs{keys_define:nn} and ensure that the optional
+%    argument data to \cs{item} (if it is not a key/value list
+%    already) is passed to this \texttt{label} key.
+%    \begin{macrocode}
+\keys_define:nn { template/item/std }
+                { label .tl_set:N = \l_@@_label_given_tl }
+%    \end{macrocode}
+%
+% \fmi{alignment is mostly wrong (test short medium and multiline
+% labels)}
+%    \begin{macrocode}
+\DeclareTemplateCode{item}{std}{1}
+  {
+    counter-label   = \@@_counter_label:n ,
+    counter-ref     = \@@_counter_ref:n ,
+%    \end{macrocode}
+%    \fmi{next set of key not yet used}
+%    \begin{macrocode}
+    label-ref       = \@@_label_ref:n ,
+    label-autoref   = \@@_label_autoref:n ,
+    label-format    = \@@_label_format:n ,
+    label-strut     = \l_@@_label_strut_bool ,
+    label-boxed     = \l_@@_label_boxed_bool ,
+    next-line       = \l_@@_next_line_bool ,
+    text-font       = \l_@@_text_font_tl ,
+    compatibility   = \l_@@_item_compatibility_bool ,
+%    \end{macrocode}
+%    This probably needs a different implementation (and needs completing)\fmi{complete}
+%    \begin{macrocode}
+    label-align     = {
+      left    = \tl_set:Nn \l_@@_item_align_tl { \relax \hss } ,
+      center  = \tl_set:Nn \l_@@_item_align_tl { \hss \hss } ,
+      right   = \tl_set:Nn \l_@@_item_align_tl { \hss \relax } ,
+      parleft = \NOT_IMPLEMENTED ,
+    } ,
+  }
+%    \end{macrocode}
+% Then typeset the label at its natural width by applying
+% \cs{@@_make_label_box:n} to the label given or to a label constructed
+% from the counter.  If it is boxed and reasonably short, add padding to
+% make it at least of size \tn{labelwidth}, then add another layer of
+% box.  This way, when we unpack it in \cs{g_@@_labels_box} it correctly
+% remains boxed in those cases.  Afterwards, in the \texttt{nextline}
+% case add \tn{newline} if the label did not fit in the allotted space.
+%    \begin{macrocode}
+  {
+    \@@_debug_typeout:n{template:item:std}
+%    \end{macrocode}
+%    
+%    First deal with the key--value input, which in particular may
+%    provide a value for the label (the usual optional argument of
+%    \cs{item}). For this we set \cs{l_@@_label_given_tl} to
+%    \cs{c_novalue_tl} so that we can identify if an optional argument
+%    was given.
+%    \begin{macrocode}
+    \tl_set_eq:NN \l_@@_label_given_tl \c_novalue_tl
+    \tl_if_empty:nF{#1}{ \SetTemplateKeys{item}{std}{#1} }
+%    \end{macrocode}
+%    If no optional argument was given then \cs{l_@@_label_given_tl}
+%    is still equal to \cs{c_novalue_tl} and so we can distinuish
+%    that from \verb=\item[]=.
+%
+%    \begin{macrocode}
+    \tl_if_novalue:oTF \l_@@_label_given_tl
+      {
+%    \end{macrocode}
+%    The rest of the code for this template needs work and is both
+%    incomplete and partly wrong.\fmi{fix}
+%    \begin{macrocode}
+        \tl_if_blank:oF \@listctr { \@kernel at refstepcounter \@listctr }
+        \bool_if:NTF \l_@@_item_compatibility_bool   % not sure that conditional
+                                                     % makes sense
+          { \@@_make_label_box:n { \MakeLinkTarget[\@listctr]{}\@itemlabel } } % TODO ?
+          { \@@_make_label_box:n { \MakeLinkTarget[\@listctr]{}\@@_counter_label:n { \@listctr } } }
+      }
+      {
+        \@@_debug_typeout:n{item~ with~ optional}
+        \@@_make_label_box:n { \l_@@_label_given_tl } }
+    \bool_if:nT
+      {
+        \l_@@_label_boxed_bool
+        && \dim_compare_p:n { \box_wd:N \l_@@_one_label_box <= \linewidth } % TODO: is \linewidth correct?
+      }
+      {
+        \dim_compare:nNnT
+          { \box_wd:N \l_@@_one_label_box } < \labelwidth
+          {
+            \hbox_set_to_wd:Nnn \l_@@_one_label_box { \labelwidth }
+              {
+                \exp_after:wN \use_i:nn \l_@@_item_align_tl
+%    \end{macrocode}
+%    FMi: \LaTeXe{} keeps the label boxed inside (not unboxed). This
+%    means that the content stays rigid and does not vary based on
+%    glue setting in the line with the label.
+%    There are cases where we do want the unboxed version (I think
+%    enumitem offers that in some cases too) but it should probably
+%    not the default.
+%    \begin{macrocode}
+%                \hbox_unpack_drop:N \l_@@_one_label_box   %TODO: customize?
+                \box_use_drop:N \l_@@_one_label_box
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+                \exp_after:wN \use_ii:nn \l_@@_item_align_tl
+              }
+          }
+       \hbox_set:Nn \l_@@_one_label_box
+                    { \box_use_drop:N \l_@@_one_label_box }
+      }
+    \dim_compare:nNnTF { \box_wd:N \l_@@_one_label_box } > \labelwidth
+      { \bool_set_true:N \l_@@_long_label_bool }
+      { \bool_set_false:N \l_@@_long_label_bool }
+    \hbox_gset:Nn \g_@@_labels_box
+      {
+        \hbox_unpack_drop:N \g_@@_labels_box
+        \skip_horizontal:n { \itemindent - \labelsep - \labelwidth }
+        \hbox_unpack_drop:N \l_@@_one_label_box
+        \skip_horizontal:n { \labelsep }
+        \bool_if:NT \l_@@_next_line_bool
+          { \bool_if:NT \l_@@_long_label_bool { \nobreak \hfil \break } }
+        % version of \newline inside an hbox that will be unpacked
+      }
+    % \skip_set_eq:NN \parsep \l_@@_item_parsep_skip TODO??? FMi
+                                                           % what's that?
+    \dim_set_eq:NN \parindent \listparindent
+%    \end{macrocode}
+%    Placing the list label(s) is done when the paragraph for the
+%    \cs{item} is started, which executes \cs{@@_item_everypar:}
+%    inside \hook{para/begin}. By default this command does nothing, now we
+%    change it to attach the pending label or labels.
+%    \begin{macrocode}
+    \cs_set_eq:NN \@@_item_everypar: \@@_item_everypar_std:
+  }
+%    \end{macrocode}
+% \end{template}
+%
+%
+%
+%
+% \begin{variable}{\l_@@_one_label_box, \g_@@_labels_box}
+%   Each label is typeset in \cs{l_@@_one_label_box} to be measured.
+%   Once this is ready, it is put (boxed or unboxed) in
+%   \cs{g_@@_labels_box}, together with any pending labels (for the case
+%   where a list begins just after \tn{item}).  This is an analogue of
+%   \LaTeXe{}'s \tn{@labels}, but it is always unboxed before use, to
+%   support both boxed and unboxed labels.
+%    \begin{macrocode}
+\box_new:N \l_@@_one_label_box
+\box_new:N \g_@@_labels_box
+%    \end{macrocode}
+% \end{variable}
+%
+% \begin{variable}{\l_@@_long_label_bool}
+%   Track whether the \cs{l_@@_one_label_box} is larger than
+%   \tn{labelwidth}.
+%    \begin{macrocode}
+\bool_new:N \l_@@_long_label_bool
+%    \end{macrocode}
+% \end{variable}
+%
+% \begin{macro}{\@@_make_label_box:n, \@@_label_format:x}
+%   Make one label, wrapped in \cs{@@_label_format:n}, with an
+%   appropriate \tn{strut} and possibly \tn{makelabel} in compatibility
+%   mode (used for the \env{list} environment).
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_make_label_box:n #1
+  {
+    \hbox_set:Nn \l_@@_one_label_box
+      {
+%    \end{macrocode}
+%    If we do tagging then the contents of this box may need to be
+%    wrapped into a structure, e.g., \verb=<Lbl>=.
+%    \begin{macrocode}
+        \__kernel_list_label_begin:
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+        \@@_label_format:n
+          {
+            \bool_if:NT \l_@@_label_strut_bool { \strut }
+            \bool_if:NTF \l_@@_legacy_support_bool
+                         \makelabel
+                         \use:n 
+                 {#1}
+          }
+%    \end{macrocode}
+%    And what gets opened also needs closing:
+%    \begin{macrocode}
+        \__kernel_list_label_end:
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+%  
+%  \begin{macro}{\__kernel_list_label_begin:,
+%                \__kernel_list_label_end:}
+%    If we aren't doing tagging the kernel hooks do nothing.
+%    \begin{macrocode}
+\cs_new_eq:NN \__kernel_list_label_begin: \prg_do_nothing:
+\cs_new_eq:NN \__kernel_list_label_end:   \prg_do_nothing:
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%
+% \begin{macro}{\@@_item_everypar:, \@@_item_everypar_std:}
+%    The \cs{@@_item_everypar:} command is executed as part of \hook{para/begin}
+%    but most of the time does nothing, i.e., it has the following
+%    default definition.
+%    \begin{macrocode}
+\cs_new_eq:NN \@@_item_everypar: \prg_do_nothing:
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\AddToHook{para/begin}[lists]{\@@_item_everypar:}
+%    \end{macrocode}
+%
+%    Note that we have to make sure that the above code is executed
+%    after the hook chunk from \texttt{tagpdf} because the latter uses
+%    \texttt{@inlabel} to make a decision.
+%
+%    By the end of the day both should probably move into the kernel
+%    hook instead!
+%    \begin{macrocode}
+\DeclareHookRule{para/begin}{lists}{after}{tagpdf}
+%    \end{macrocode}
+%
+%
+%    What follows is the version that resets various legacy booleans and puts
+%    the label box in the right place and finally resets itself to do
+%    nothing next time. \cs{@@_item_everypar:} is set to this by the
+%    item template so that the next paragraph start runs the code below.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_item_everypar_std: {
+    \@@_debug_typeout:n{item~ everypar \on at line }
+    \legacy_if_set_false:n { @minipage }
+    \legacy_if_gset_false:n { @newlist }
+    \legacy_if:nT { @inlabel }
+       {
+         \legacy_if_gset_false:n { @inlabel }
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+         \box_if_empty:NT \g_para_indent_box { \kern - \itemindent }
+         \para_omit_indent:
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+         \box_use_drop:N \g_@@_labels_box
+%    \end{macrocode}
+%    After the labels are placed we start a paragraph structure (if
+%    appropriate). This is handled in the following kernel hook:
+%    \begin{macrocode}
+         \__kernel_list_label_after:
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+         \penalty \c_zero_int
+       }
+   \legacy_if:nTF { @nobreak }
+       {
+         \legacy_if_gset_false:n { @nobreak }
+         \int_set:Nn \clubpenalty { 10000 }
+       }
+       {
+         \int_set_eq:NN \clubpenalty \@clubpenalty
+%    \end{macrocode}
+%    Once the label(s) are typeset and we are past any special
+%    \texttt{@nobreak} handling we reset \cs{@@_item_everypar:} to do
+%    nothing.
+%    \begin{macrocode}
+         \cs_set_eq:NN \@@_item_everypar: \prg_do_nothing:
+       }
+}
+%    \end{macrocode}
+%
+% \end{macro}
+%
+%
+%  \begin{macro}{\__kernel_list_label_after:}
+%    
+%    \begin{macrocode}
+\cs_new_eq:NN \__kernel_list_label_after: \prg_do_nothing:
+%    \end{macrocode}
+%  \end{macro}
+%
+% \begin{variable}{\l_@@_tmpa_skip}
+%    \begin{macrocode}
+\skip_new:N \l_@@_tmpa_skip
+%    \end{macrocode}
+% \end{variable}
+%
+%
+%
+%
+%
+%
+%
+% \begin{variable}{\l_@@_topsepadd_skip, \l_@@_effective_top_skip}
+%   Variables equivalent to \LaTeXe{}'s \tn{@topsepadd} and \tn{@topsep}.
+%   Roughly equal to a mixture of \texttt{topsep}, \texttt{partopsep},
+%   and various \texttt{parskip} at different nesting levels in lists.
+%   The code is really elaborate when \texttt{@inlabel} is true.
+%    \begin{macrocode}
+\skip_new:N \l_@@_topsepadd_skip
+\skip_new:N \l_@@_effective_top_skip
+%    \end{macrocode}
+% \end{variable}
+%
+%
+%
+%
+%
+%
+%
+%
+%
+%
+%
+% \begin{macro}{\item}
+%   Here we already have all the building blocks.  Complain in math
+%   mode.  Distingusih between first item (do necessary tagging) and
+%    later items \cs{@@_inter_item:} to
+%   cleanly close what's before, then call \cs{@@_item_instance:n} (which
+%   calls \cs{UseInstance}\{item\}\marg{instance}) to prepare the
+%   upcoming item: it will be actually inserted only once some later
+%   material triggers \tn{everypar}.
+%    \begin{macrocode}
+\AddToHook{begindocument/before}{
+  \RenewDocumentCommand{\item}{ ={label}o }
+    {
+      \@inmatherr \item
+%    \end{macrocode}
+%    TODO: Test for being outside of a list needs updating!
+%    \begin{macrocode}
+      \tl_if_empty:oTF \@@_item_instance:n %%FMi?
+        { \msg_error:nnn { @@ } { item-in-nonlist } { \item[{#1}] } }
+        {
+          \legacy_if:nTF { @newlist }
+            { \__kernel_list_item_begin: }
+            { \@@_inter_item:            }
+%    \end{macrocode}
+%    To avoid unnecessary key/val processing we make a quick check if
+%    there was an optional argument.
+%    \begin{macrocode}
+          \tl_if_novalue:nTF {#1}          % avoids reparsing label={}
+            { \@@_item_instance:n { } }
+            { \@@_item_instance:n {#1} }
+%    \end{macrocode}
+%    Set the legacy switch that signals that we have a pending item label:
+%    \begin{macrocode}
+          \legacy_if_gset_true:n { @inlabel }
+          \ignorespaces
+        }
+    }
+}
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@@_inter_item:}
+%   Between items.  If the previous item had no content then we need to
+%   trigger \tn{everypar}. Otherwise we simply close the previous item
+%   with \tn{par} after removing some horizontal space.  Between items,
+%   there is a penalty and some space.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_inter_item: {
+  \legacy_if:nT { @inlabel }
+                { \indent \par } % case of \item\item
+%    \end{macrocode}
+%    \cs{par} may have a strange definition and may not get us back to
+%    vertical mode in one go, so we better do not treat the next line
+%    as an else case to the above conditional (for now).
+%    \begin{macrocode}
+   \mode_if_horizontal:T { \@@_skip_remove_last:
+                           \@@_skip_remove_last: \par }
+%    \end{macrocode}
+%    End any LI-tag, then start the next LI-tag (if doing tagging):
+%    \begin{macrocode}
+  \__kernel_list_item_end:
+  \__kernel_list_item_begin:
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+  \addpenalty \@itempenalty 
+  \addvspace \itemsep
+}
+%    \end{macrocode}
+% \end{macro}
+%
+%
+%  \begin{macro}{\__kernel_list_item_begin:,
+%                \__kernel_list_item_end:}
+%    
+%    \begin{macrocode}
+\cs_new_eq:NN \__kernel_list_item_begin: \prg_do_nothing:
+\cs_new_eq:NN \__kernel_list_item_end:   \prg_do_nothing:
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%
+%
+%
+%
+%
+%
+% \subsection{Tagging recipes}
+%
+%  \begin{macro}{\@@_recipe_basic:}
+%    The \texttt{basic} recipe simply ensures that the block is inside
+%    a \texttt{text-unit} structure and if necessary starts one. When the
+%    block ends and is followed by a blank line the \texttt{text-unit}
+%    structure is closed too, otherwise it remains open and further
+%    text starts with just a \struct{text} structure.
+%
+%    There is otherwise no inner structure so
+%    \cs{__kernel_displayblock_begin:} and
+%    \cs{__kernel_displayblock_end:} do nothing---blockenvs with inner
+%    structure use the \texttt{standard} or \texttt{list} recipe instead.
+%    \begin{macrocode}
+\cs_new:Npn \@@_recipe_basic: {
+  \cs_set_eq:NN \__kernel_displayblock_beginpar_hmode:w
+                                              \@@_beginpar_hmode:N
+  \cs_set_eq:NN \__kernel_displayblock_beginpar_vmode:
+                                              \@@_beginpar_vmode:
+  \let \__kernel_displayblock_begin:          \prg_do_nothing:
+  \let \__kernel_displayblock_end:            \prg_do_nothing:
+}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%  \begin{macro}{\@@_recipe_standard:}
+%    The \texttt{standard} recipe does the following:
+%    \begin{itemize}
+%    \item surround the block with a \texttt{text-unit}-structure if not already in a
+%       a \texttt{text-unit}. In the latter case end the
+%    MC and the \struct{text} but leave the \texttt{text-unit} open.
+%
+%    If we are producing flattened paragraphs, just close any
+%    \struct{text} but do not open a \texttt{text-unit}.
+%
+%    \item Then open an new (inner) structure (by default
+%    \texttt{Figure} but typically the one specified on the instance).
+%    \item At the end of the block close the the inner structure
+%    (\texttt{Figure} or explicit one)
+%    but leave the \texttt{text-unit} open to be either continued or closed due to a
+%    following \cs{par}.
+%    \end{itemize}
+%    \begin{macrocode}
+\cs_new:Npn \@@_recipe_standard:
+{
+  \cs_set_eq:NN \__kernel_displayblock_beginpar_hmode:w
+                                              \@@_beginpar_hmode:N
+  \cs_set_eq:NN \__kernel_displayblock_beginpar_vmode:
+                                              \@@_beginpar_vmode:
+  \cs_set_eq:NN \__kernel_displayblock_begin: \@@_inner_begin:
+  \cs_set_eq:NN \__kernel_displayblock_end:   \@@_inner_end:
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+  \tl_if_empty:NTF \l_@@_tag_name_tl
+     { \tl_set:Nn    \l_@@_tag_inner_tag_tl {Figure}          }
+     { \tl_set_eq:NN \l_@@_tag_inner_tag_tl \l_@@_tag_name_tl }
+} 
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%
+%  \begin{macro}{\l_@@_tag_inner_tag_tl}
+%    \begin{macrocode}
+\tl_new:N \l_@@_tag_inner_tag_tl
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%
+%  \begin{macro}{\@@_recipe_list:}
+%    The \texttt{list} recipe does the following.
+%    \begin{itemize}
+%    \item It opens a \struct{text-unit}-structure or keeps the current one open (only
+%      closing the MC).
+%    \item  It then starts a new structure rollmapped to  L-structure
+%      and arranges for handling list items, e.g., Li, Lbl and LBody
+%      structures.
+%    \item At the end it closes open list structures as needed but
+%      keeps the \struct{text-unit}-structure open to continue the paragraph after the
+%      list, if necessary.
+%    \end{itemize}
+%    \begin{macrocode}
+\cs_new:Npn \@@_recipe_list:
+{
+  \cs_set_eq:NN \__kernel_displayblock_beginpar_hmode:w
+                                              \@@_beginpar_hmode:N
+  \cs_set_eq:NN \__kernel_displayblock_beginpar_vmode:
+                                              \@@_beginpar_vmode:
+  \cs_set_eq:NN \__kernel_displayblock_begin: \@@_list_begin:
+  \cs_set_eq:NN \__kernel_displayblock_end:   \@@_list_end:
+%    \end{macrocode}
+%    The next two lines could be done globally, because they are only
+%    called if we do have \cs{item}s, i.e., if we are in a list. It is
+%    therefore also not necessary to reset them in other recipes
+%    (right now---this may change if we get more templates (like
+%    inline lists)). 
+%    \begin{macrocode}
+  \cs_set_eq:NN \__kernel_list_item_begin:    \@@_list_item_begin:
+  \cs_set_eq:NN \__kernel_list_item_end:      \@@_list_item_end:
+%    \end{macrocode}
+%    Handle the tag name and attribute classess using the key values
+%    from the current list instance.
+%    \begin{macrocode}
+  \tl_if_empty:NTF \l_@@_tag_name_tl
+     { \tl_set:Nn    \l__tag_L_tag_tl {L}               }
+     { \tl_set_eq:NN \l__tag_L_tag_tl \l_@@_tag_name_tl }
+  \tl_if_empty:NTF \l_@@_tag_class_tl
+     { \tl_set:Nn    \l__tag_L_attr_class_tl {}                 }
+     { \tl_set_eq:NN \l__tag_L_attr_class_tl \l_@@_tag_class_tl }
+}
+%    \end{macrocode}
+%  \end{macro}
+
+
+
+% \subsection{Blockenv instances}
+%
+%
+% \subsubsection{Basic instances}
+%
+%  \begin{instance}{blockenv displayblock}
+%    
+%    \begin{macrocode}
+\DeclareInstance{blockenv}{displayblock}{display}
+{
+  env-name       = displayblock,
+  tag-name       = ,
+  tag-class      = ,
+  tagging-recipe = standard,
+  inner-level-counter  = ,
+  level-increase = false,
+  setup-code     = ,
+  block-instance = displayblock ,
+  inner-instance = ,
+}
+%    \end{macrocode}
+%  \end{instance}
+%
+%
+%
+%  \begin{instance}{blockenv displayblockflattened}
+%    
+%    \begin{macrocode}
+\DeclareInstance{blockenv}{displayblockflattened}{display}
+{
+  env-name       = displayblockflattened,
+  tag-name       = ,
+  tag-class      = ,
+  tagging-recipe = basic,
+  inner-level-counter  = ,
+  level-increase = false,
+  setup-code     = ,
+  block-instance = displayblock ,
+  para-flattened = true ,
+  inner-instance = ,
+}
+%    \end{macrocode}
+%  \end{instance}
+%
+%
+%
+%  \begin{instance}{blockenv center}
+%    
+%    \begin{macrocode}
+\DeclareInstance{blockenv}{center}{display}
+{
+  env-name       = center,
+  tag-name       = ,
+  tag-class      = ,
+  tagging-recipe = basic,
+  inner-level-counter  = ,
+  level-increase = false,
+  setup-code     = ,
+  block-instance = displayblock ,
+  para-flattened = true ,
+  para-instance  = center ,
+  inner-instance = ,
+}
+%    \end{macrocode}
+%  \end{instance}
+%
+%
+%  \begin{instance}{blockenv flushleft}
+%    
+%    \begin{macrocode}
+\DeclareInstance{blockenv}{flushleft}{display}
+{
+  env-name       = flushleft,
+  tag-name       = ,
+  tag-class      = ,
+  tagging-recipe = basic,
+  inner-level-counter  = ,
+  level-increase = false,
+  setup-code     = ,
+  block-instance = displayblock ,
+  para-flattened = true ,
+  para-instance  = raggedright ,
+  inner-instance = ,
+}
+%    \end{macrocode}
+%  \end{instance}
+%
+%
+%
+%  \begin{instance}{blockenv flushright}
+%    
+%    \begin{macrocode}
+\DeclareInstance{blockenv}{flushright}{display}
+{
+  env-name       = flushleft,
+  tag-name       = ,
+  tag-class      = ,
+  tagging-recipe = basic,
+  inner-level-counter  = ,
+  level-increase = false,
+  setup-code     = ,
+  block-instance = displayblock ,
+  para-flattened = true ,
+  para-instance  = raggedleft ,
+  inner-instance = ,
+}
+%    \end{macrocode}
+%  \end{instance}
+%
+%
+%
+% \subsubsection{Blockquote instances}
+%
+%  \begin{instance}{blockenv quotation}
+%    
+%    \begin{macrocode}
+\tag_if_active:T {
+  \tagpdfsetup{add-new-tag={tag=quote,role=BlockQuote}}
+  \tagpdfsetup{add-new-tag={tag=quotation,role=BlockQuote}}
+}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\DeclareInstance{blockenv}{quotation}{display}
+{
+  env-name       = quotation,
+  tag-name       = quotation,
+  tag-class      = ,
+  tagging-recipe = standard,
+  inner-level-counter  = ,
+  level-increase = true,
+  setup-code     = ,
+  block-instance = quotationblock ,
+  inner-instance =  ,
+}
+%    \end{macrocode}
+%  \end{instance}
+%
+%
+%
+%  \begin{instance}{blockenv quote}
+%    
+%    \begin{macrocode}
+\DeclareInstance{blockenv}{quote}{display}
+{
+  env-name       = quote,
+  tag-name       = quote,
+  tag-class      = ,
+  tagging-recipe = standard,
+  inner-level-counter  = ,
+  level-increase = true,
+  setup-code     = ,
+  block-instance = quoteblock ,
+  inner-instance =  ,
+}
+%    \end{macrocode}
+%  \end{instance}
+%
+%    An alternative setup for quotations, using the displayblock instance and
+%    just overwrite a bit in the setup code.\fmi{I guess the setup
+%       code is still executed too early, have to check.}
+%    This would be less flexible but would ensure visual consistency,
+%    because the displayblock settings are used throughout.
+%    \begin{macrocode}
+% \DeclareInstance{blockenv}{quotation}{display}
+% {
+%   env-name       = quotation,
+%   tag-name       = ,
+%   tag-class      = ,
+%   tagging-recipe = blockquote,
+%   inner-level-counter  = ,
+%   level-increase = true,
+%   setup-code     = \setlength\rightmargin{\leftmargin}
+%                    \setlength\parsep{1.5em} ,
+%   block-instance = displayblock ,
+%   inner-instance =  ,
+% }
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+% \DeclareInstance{blockenv}{quote}{display}
+% {
+%   env-name       = quote,
+%   tag-name       = ,
+%   tag-class      = ,
+%   tagging-recipe = blockquote,
+%   inner-level-counter  = ,
+%   level-increase = true,
+%   setup-code     = \setlength\rightmargin{\leftmargin} ,
+%   block-instance = displayblock ,
+%   inner-instance =  ,
+% }
+%    \end{macrocode}
+%
+%
+% \subsubsection{Verbatim instances}
+%
+%  \begin{instance}{blockenv verbatim}
+%    
+%    \begin{macrocode}
+\tag_if_active:T {
+  \tagpdfsetup{add-new-tag={tag=verbatim,role=P}}
+  \tagpdfsetup{add-new-tag={tag=codeline,role=Sub}}
+%    \end{macrocode}
+%    Possible alternative for PDF 1.7:
+%    \begin{macrocode}
+%  \tagpdfsetup{add-new-tag={tag=verbatim,role=Div}}
+%  \tagpdfsetup{add-new-tag={tag=codeline,role=P}}
+}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\DeclareInstance{blockenv}{verbatim}{display}
+{
+  env-name       = verbatim,
+  tag-name       = verbatim,
+  tag-class      = ,
+  tagging-recipe = standard,
+  inner-level-counter  = ,
+  level-increase = false,
+  setup-code     = ,
+  block-instance = displayblock ,
+  inner-instance = ,
+  final-code     = \legacyverbatimsetup ,
+}
+%    \end{macrocode}
+%  \end{instance}
+%
+%
+% \subsubsection{Standard list instances}
+%
+%  \begin{instance}{blockenv itemize}
+%    
+%    \begin{macrocode}
+\DeclareInstance{blockenv}{itemize}{display}
+{
+  env-name       = itemize,
+  tag-name       = itemize,
+  tag-class      = itemize,
+  tagging-recipe = list,
+  inner-level-counter  = \@itemdepth,
+  level-increase = true,
+  max-inner-levels = 4,
+  setup-code     = ,
+  block-instance = list ,
+  inner-instance = itemize ,
+}
+%    \end{macrocode}
+%  \end{instance}
+%
+%
+%  \begin{instance}{blockenv enumerate}
+%    
+%    \begin{macrocode}
+\DeclareInstance{blockenv}{enumerate}{display}
+{
+  env-name            = enumerate,
+  tag-name            = enumerate,
+  tag-class           = enumerate,
+  tagging-recipe      = list,
+  level-increase      = true,
+  setup-code          = ,
+  block-instance      = list ,
+  inner-level-counter = \@enumdepth,
+  max-inner-levels    = 4,
+  inner-instance      = enum ,
+}
+%    \end{macrocode}
+%  \end{instance}
+%
+%
+%  \begin{instance}{blockenv description}
+%    
+%    \begin{macrocode}
+
+\DeclareInstance{blockenv}{description}{display}
+{
+  env-name       = description,
+  tag-name       = description,
+  tag-class      = description,
+  tagging-recipe = list,
+  inner-level-counter  = ,
+  level-increase = true,
+  setup-code     = ,
+  block-instance = list ,
+  inner-instance = description ,
+}
+%    \end{macrocode}
+%  \end{instance}
+%
+%
+%  \begin{instance}{blockenv list}
+%    The general (legacy) \env{list} environment does some of its
+%    setup in the \texttt{setup-code} key.
+%    \begin{macrocode}
+\DeclareInstance{blockenv}{list}{display}
+{
+  env-name       = list,
+  tag-name       = list,
+  tag-class      = ,
+  tagging-recipe = list,
+  level-increase = true,
+  setup-code     = \legacylistsetupcode ,
+  block-instance = list ,
+  inner-level-counter  = ,
+  inner-instance = legacy ,
+}
+%    \end{macrocode}
+%  \end{instance}
+%
+%
+%
+%
+% \subsection{Block instances}
+%
+% \subsubsection{Displayblock instances}
+%  
+%    We provide 6 nesting levels (as in \LaTeXe{}). If you want to
+%    provide more you need to change the \texttt{maxblocklevels}
+%    counter, offer further \texttt{displayblock-xx} instances but
+%    also define further (legacy) \cs{list\meta{romannumeral}} commands
+%    for the defaults. If not, then the settings from the previous
+%    level are reused automatically---which may or may not be good enough).
+%    \begin{macrocode}
+\setcounter{maxblocklevels}{6}
+%    \end{macrocode}
+%
+%  \begin{instance}{block displayblock-0,
+%                   block displayblock-1,
+%                   block displayblock-2,
+%                   block displayblock-3,
+%                   block displayblock-4,
+%                   block displayblock-5,
+%                   block displayblock-6 }
+%
+%    Here we need level zero as well in case a flattened displayblock
+%    (like the center env) it is used on top-level.
+%    \begin{macrocode}
+\DeclareInstance{block}{displayblock-0}{display}
+  {
+    leftmargin      = 0pt ,
+    parindent       = 0pt ,
+  } 
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\DeclareInstanceCopy{block}{displayblock-1}{displayblock-0}
+\DeclareInstanceCopy{block}{displayblock-2}{displayblock-0}
+\DeclareInstanceCopy{block}{displayblock-3}{displayblock-0}
+\DeclareInstanceCopy{block}{displayblock-4}{displayblock-0}
+\DeclareInstanceCopy{block}{displayblock-5}{displayblock-0}
+\DeclareInstanceCopy{block}{displayblock-6}{displayblock-0}
+%    \end{macrocode}
+%  \end{instance}
+%  
+%  
+% \subsubsection{Quote/quotationblock instances}
+%
+%  Quote and quotation are not flattened, i.e., they change levels,
+%    thus they start with level 1 not 0.
+%  
+%  \begin{instance}{block quoteblock-1,
+%                   block quoteblock-2,
+%                   block quoteblock-3,
+%                   block quoteblock-4,
+%                   block quoteblock-5,
+%                   block quoteblock-6 }
+%    Default layout is to indent equaly from both side.
+%    \begin{macrocode}
+\DeclareInstance{block}{quoteblock-1}{display}
+  { rightmargin = \KeyValue{leftmargin} }
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\DeclareInstanceCopy{block}{quoteblock-2}{quoteblock-1}
+\DeclareInstanceCopy{block}{quoteblock-3}{quoteblock-1}
+\DeclareInstanceCopy{block}{quoteblock-4}{quoteblock-1}
+\DeclareInstanceCopy{block}{quoteblock-5}{quoteblock-1}
+\DeclareInstanceCopy{block}{quoteblock-6}{quoteblock-1}
+%    \end{macrocode}
+%  \end{instance}
+%  
+%  \begin{instance}{block quotationblock-1,
+%                   block quotationblock-2,
+%                   block quotationblock-3,
+%                   block quotationblock-4,
+%                   block quotationblock-5,
+%                   block quotationblock-6 }
+%    Quotation additionally changes the parindent.
+%    \begin{macrocode}
+\DeclareInstance{block}{quotationblock-1}{display}
+  { parindent = 1.5em , rightmargin = \KeyValue{leftmargin} }
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\DeclareInstanceCopy{block}{quotationblock-2}{quotationblock-1}
+\DeclareInstanceCopy{block}{quotationblock-3}{quotationblock-1}
+\DeclareInstanceCopy{block}{quotationblock-4}{quotationblock-1}
+\DeclareInstanceCopy{block}{quotationblock-5}{quotationblock-1}
+\DeclareInstanceCopy{block}{quotationblock-6}{quotationblock-1}
+%    \end{macrocode}
+%  \end{instance}
+%  
+%
+% \subsubsection{Block instances for the standard lists}
+%
+%  \begin{instance}{block list-1,
+%                   block list-2,
+%                   block list-3,
+%                   block list-4,
+%                   block list-5,
+%                   block list-6 }
+%    The block instances for the various list environments use the
+%    same underlying instance (well by default) and nothing nothing
+%    needs to be set up specifically (because that is already done in
+%    the legacy \cs{list\meta{romannumeral}} unless a
+%    different layout is wanted.
+%    \begin{macrocode}
+\DeclareInstance{block}{list-1}{display}{
+%   heading          = ,
+%   beginsep         = \topsep ,
+%   begin-par-skip   = \partopsep ,
+%   par-skip         = \parsep ,
+%   end-skip         = \KeyValue{beginsep} ,
+%   end-par-skip     = \KeyValue{begin-par-skip} ,
+%   beginpenalty     = \UseName{@beginparpenalty} ,
+%   endpenalty       = \UseName{@endparpenalty} ,
+%   leftmargin       = \leftmargin ,
+%   rightmargin      = \rightmargin ,
+%   parindent        = \listparindent ,
+}
+\DeclareInstance{block}{list-2}{display}{}
+\DeclareInstance{block}{list-3}{display}{}
+\DeclareInstance{block}{list-4}{display}{}
+\DeclareInstance{block}{list-5}{display}{}
+\DeclareInstance{block}{list-6}{display}{}
+%    \end{macrocode}
+%  \end{instance}
+%  
+%
+%  
+% \subsection{List instances for the standard lists}
+%
+%    For all list instances we have to say what kind of label we want
+%    (\texttt{label-instance})  and how it should beformatted.
+%
+%  \begin{instance}{list itemize-1,
+%                   list itemize-2,
+%                   list itemize-3,
+%                   list itemize-4}
+%    For \env{itemize} environments this is all we need to do and we
+%    refer back to the external definitions rather than defining the
+%    \texttt{item-label} code in the instance to ensure that old
+%    documents still work.
+%
+%    \begin{macrocode}
+\DeclareInstance{list}{itemize-1}{std}{ item-label = \labelitemi }
+\DeclareInstance{list}{itemize-2}{std}{ item-label = \labelitemii }
+\DeclareInstance{list}{itemize-3}{std}{ item-label = \labelitemiii }
+\DeclareInstance{list}{itemize-4}{std}{ item-label = \labelitemiv }
+%    \end{macrocode}
+%  \end{instance}
+%  
+%  
+%  
+%  \begin{instance}{list enumerate-1,
+%                   list enumerate-2,
+%                   list enumerate-3,
+%                   list enumerate-4}
+%    \env{enumerate} environments are similar, except that we also
+%    have to say which counter to use on every level.
+%    \begin{macrocode}
+\DeclareInstance{list}{enum-1}{std}
+  { item-label = \labelenumi ,   counter = enumi }
+\DeclareInstance{list}{enum-2}{std}
+  { item-label = \labelenumii ,  counter = enumii }
+\DeclareInstance{list}{enum-3}{std}
+  { item-label = \labelenumiii , counter = enumiii }
+\DeclareInstance{list}{enum-4}{std}
+  { item-label = \labelenumiv ,  counter = enumiv }
+%    \end{macrocode}
+%  \end{instance}
+%  
+%  
+%
+%  \begin{instance}{list legacy}
+%    For the legacy \env{list} environment there is only one instance
+%    which is reused on all levels. This is done this way one because
+%    the legacy \env{list} environment sets all its
+%    parameters through its arguments. So this instances shouldn't
+%    really be touched. It sets the \texttt{legacy-support} key to
+%    true, which means that the list code uses \cs{makelabel} for
+%    formatting the label 
+%    \begin{macrocode}
+\DeclareInstance{list}{legacy}{std} {
+  item-instance = basic ,
+  legacy-support = true ,
+}
+%    \end{macrocode}
+%  \end{instance}
+%  
+%
+%  \begin{instance}{list description}
+%    The \env{description} lists also use only a single list instance
+%    with only one key not using the default:
+%    \begin{macrocode}
+\DeclareInstance{list}{description}{std} { item-instance = description }
+%    \end{macrocode}
+%  \end{instance}
+%
+%  
+% \subsection{Item instances}
+%
+%
+%  \begin{instance}{item basic, item description}
+%    There two item instances set up: \texttt{description} for use
+%    with the \env{description} environment and \texttt{basic} for use
+%    with all other lists (up to now).
+%    \begin{macrocode}
+\DeclareInstance{item}{basic}{std}
+  {
+    label-align = right ,
+  }
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\DeclareInstance{item}{description}{std}
+  {
+    label-format = \normalfont\bfseries #1 ,
+  }
+%    \end{macrocode}
+%  \end{instance}
+%
+%
+%
+% \subsection{Para instances}
+%
+%    \begin{macrocode}
+\tag_if_active:T
+{
+  \tagpdfsetup
+      {
+        newattribute = {justify}    {/O /Layout /TextAlign/Justify},
+        newattribute = {center}     {/O /Layout /TextAlign/Center},
+        newattribute = {raggedright}{/O /Layout /TextAlign/Start},
+        newattribute = {raggedleft} {/O /Layout /TextAlign/End},
+      }
+}
+%    \end{macrocode}
+%
+%  \begin{instance}{para center}
+%    \begin{macrocode}
+\DeclareInstance{para}{center}{std}
+{
+  indent-width          = 0pt ,                  
+  start-skip            = 0pt ,
+  left-skip             = \@flushglue ,
+  right-skip            = \@flushglue ,
+  end-skip              = \z at skip ,
+  final-hyphen-demerits = 0 ,
+  cr-cmd                = \@centercr ,
+  para-class            = center ,
+}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\DeclareInstance{para}{raggedright}{std}
+{
+  indent-width          = 0pt ,                  
+  start-skip            = 0pt ,
+  left-skip             = \z at skip ,
+  right-skip            = \@flushglue ,
+  end-skip              = \z at skip ,
+  final-hyphen-demerits = 0 ,
+  cr-cmd                = \@centercr ,
+  para-class            = raggedright ,
+}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\DeclareInstance{para}{raggedleft}{std}
+{
+  indent-width          = 0pt ,                  
+  start-skip            = 0pt ,
+  left-skip             = \@flushglue ,
+  right-skip            = \z at skip ,
+  end-skip              = \z at skip ,
+  final-hyphen-demerits = 0 ,
+  cr-cmd                = \@centercr ,
+  para-class            = raggedleft ,
+}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\DeclareInstance{para}{justify}{std}
+{
+%  indent-width          = 0pt ,                  
+  start-skip            = 0pt ,
+  left-skip             = \z at skip ,
+  right-skip            = \z at skip ,
+  end-skip              = \@flushglue ,
+  final-hyphen-demerits =  5000 ,
+  cr-cmd                = \@normalcr ,
+  para-class            = justify ,
+}
+%    \end{macrocode}
+%  \end{instance}
+%
+%
+%
+%
+%    \begin{macrocode}
+\DeclareRobustCommand\centering  {\UseInstance{para}{center}{}}
+\DeclareRobustCommand\raggedleft {\UseInstance{para}{raggedleft}{}}
+\DeclareRobustCommand\raggedright{\UseInstance{para}{raggedright}{}}
+\DeclareRobustCommand\justifying {\UseInstance{para}{justify}{}}
+
+\justifying
+%    \end{macrocode}
+%
+%
+%
+%
+%
+% \subsection{Tagging support}
+%
+% In this section we provide code to the various kernel hooks to support
+% the tagging of the different displayblock environments. 
+%
+%
+%
+%    All of the following definitions should only be made if tagging
+%    is active!
+%    \begin{macrocode}
+\tag_if_active:T {
+%    \end{macrocode}
+%
+%  \begin{macro}{\@@_beginpar_vmode:}
+%    When a block starts out in vertical mode, i.e., is not yet part of
+%    a paragraph, we have to start a paragraph
+%    structure. However, this is not the case if we are already
+%    flattening paragraphs, thus in this case we do nothing.
+%    We also do nothing if \texttt{@endpe} is currently true, because
+%    that means we are right now just after the end of a
+%    \texttt{blockenv} and in the process of looking if we have to end
+%    the current \texttt{text-unit}, i.e., it is already open.  
+%    \begin{macrocode}
+  \cs_set:Npn \@@_beginpar_vmode: {
+           \@@_debug_typeout:n
+              { @endpe = \legacy_if:nTF { @endpe }{true}{false}
+                \on at line }
+   \legacy_if:nTF { @endpe }
+      {
+        \legacy_if_gset_false:n { @endpe }
+      }
+%    \end{macrocode}
+%    We test for \texttt{<2} because  the first flattened environment
+%    has to surround itself with a \texttt{text-unit}. Only any inner ones
+%    then have to avoid adding another \texttt{text-unit}.
+%    \begin{macrocode}
+      {
+%    \typeout{-->G1~ (\int_use:N \l_@@_flattened_level_int)}
+        \int_compare:nNnT \l_@@_flattened_level_int < 2
+            {
+              \int_gincr:N \g__tag_para_main_begin_int
+              \tagstructbegin{tag=\l__tag_para_main_tag_tl}
+            }
+      }
+  }
+%    \end{macrocode}
+%  \end{macro}
+%
+%  \begin{macro}{\@@_beginpar_hmode:N}
+%    If the block is already part of a part  of a paragraph, i.e., when it has
+%    some text directly in front, then the first thing  to
+%    do is to return to vertical mode. However, that should be done
+%    without inserting a paragraph end tag, so before calling \cs{par}
+%    to do its normal work, we disable paragraph tagging and
+%    restarting afterwards again. The argument to this config point
+%    simply gobbles the \cs{par} following it in the code above (which
+%    is used when there is no tagging going on.
+%    \begin{macrocode}
+  \cs_set:Npn \@@_beginpar_hmode:N #1
+     {
+        \tag_mc_end:
+        \int_gincr:N \g__tag_para_end_int
+        \@@_debug_typeout:n{increment~ /P \on at line }
+        \bool_if:NT \l__tag_para_show_bool
+          { \tag_mc_begin:n{artifact}
+            \rlap{\color_select:n{red}\tiny\ \int_use:N\g__tag_para_end_int}
+            \tag_mc_end:
+          }
+        \tag_struct_end:
+        \tagpdfparaOff \par \tagpdfparaOn
+     }
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%
+%  \begin{macro}{\__kernel_displayblock_doendpe:}
+%    If a display block ends and is followed by a blank line we have to end the
+%    enclosing paragraph tagging structure.
+%    \begin{macrocode}
+\cs_set:Npn \__kernel_displayblock_doendpe: {
+     \bool_if:NT \l__tag_para_bool
+       {
+%    \end{macrocode}
+%    Given that restoring \cs{par} through the legacy \LaTeXe{} method
+%    can take a few iterations (for example, in case of nested lists,
+%    e.g., \verb=...\end{itemize} \item ...\par= it can happen that
+%    \cs{__kernel_displayblock_doendpe:} is called while
+%    \texttt{@endpe} is already handled and then we should not attempt
+%    to close a \texttt{text-unit} structure. So we need to check for this.
+%    \begin{macrocode}
+         \legacy_if:nT { @endpe }
+           {
+%    \end{macrocode}
+%    If the display block currently ending was \enquote{flattened}
+%    (i.e., uses simplified paragraphs that are not tagged by a
+%    combination of \texttt{text-unit} followed by \struct{text}, but simply
+%    with a \struct{text},
+%    then we don't have to do anything, because the \struct{text} is already closed.
+%    \begin{macrocode}
+             \@@_debug_typeout:n
+                { flattened= \bool_if:NTF
+                               \l__tag_para_flattened_bool {true}{false}
+                  \on at line }
+             \bool_if:NF \l__tag_para_flattened_bool
+               {
+                 \@@_debug_typeout:n{Structure-end~
+                       \l__tag_para_main_tag_tl\space after~ list \on at line }
+                 \int_gincr:N \g__tag_para_main_end_int      
+                 \tag_struct_end: %text-unit
+               }
+           }
+      }
+}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%  \begin{macro}{para/begin}
+%
+%    Paragraph tagging is mainly done using the paragraph hooks (will
+%    get moved eventually). The default hook setting is not good
+%    enough when lists get suppported: we need to delay starting the
+%    paragraph tagging if we still have to place the list label.
+%    We therefore remove the existing hook data and replace it with an
+%    augmented version (this will get combined eventually).
+%    \begin{macrocode}
+\RemoveFromHook{para/begin}[tagpdf]
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\AddToHook{para/begin}[tagpdf]{
+  \bool_if:NT \l__tag_para_bool {
+%    \end{macrocode}
+%    if we are still waiting to typeset the list label we do nothing
+%    (the paragraph tagging then happens when the list is finally
+%    typeset).
+%    \begin{macrocode}
+       \legacy_if:nF { @inlabel }
+         {
+%    \end{macrocode}
+%    Otherwise, we start a \struct{text} tag structure but only if we are not
+%    starting a paragraph immediately \emph{after} a list, in which
+%    case we only start a new MC (because the \struct{text} tag is still open from
+%    before the list --- one of the reasons why lists are always put
+%    \enquote{inside} paragraphs.
+%    \begin{macrocode}
+           \@@_debug_typeout:n
+              { @endpe = \legacy_if:nTF { @endpe }{true}{false}
+                \on at line }
+           \legacy_if:nF { @endpe }
+             {
+               \bool_if:NF \l__tag_para_flattened_bool
+                  {
+                    \int_gincr:N \g__tag_para_main_begin_int
+                    \tag_struct_begin:n{tag=\l__tag_para_main_tag_tl}
+                  }
+              }
+           \int_gincr:N \g__tag_para_begin_int
+           \@@_debug_typeout:n{increment~ P \on at line }
+           \tag_struct_begin:n
+               {
+                  tag=\l__tag_para_tag_tl
+                 ,attribute-class=\l_tag_para_attr_class_tl
+               }
+           \__tag_check_para_begin_show:nn {green}{\PARALABEL}    
+           \tag_mc_begin:n {}
+         }
+     }
+}
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+\tag_if_active:T {
+%  \tagpdfsetup{add-new-tag={tag=text-unit,role=Part}}
+}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\RemoveFromHook{para/end}[tagpdf]
+\AddToHook{para/end}
+  {
+    \bool_if:NT \l__tag_para_bool
+      {
+        \int_gincr:N \g__tag_para_end_int
+        \@@_debug_typeout:n{increment~ /P \on at line }
+        \tag_mc_end:
+        \__tag_check_para_end_show:nn {red}{}
+        \tag_struct_end:
+        \bool_if:NF \l__tag_para_flattened_bool
+         {
+           \int_gincr:N \g__tag_para_main_end_int
+           \tag_struct_end:
+         }
+      }
+  }
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\def\PARALABEL{NP-}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%  \begin{macro}{\para_end:}
+%    If we see a \cs{par} in vmode and a \texttt{text-unit} is still open
+%    we need to close that. For this we check if a request for
+%    \text{@endpe} was made (but the \cs{par} redefinition got lost
+%    due to (bad?) coding).
+%    \begin{macrocode}
+\cs_set_protected:Npn \para_end: {
+  \scan_stop:
+  \mode_if_horizontal:TF {
+    \mode_if_inner:F {
+         \tex_unskip:D
+         \hook_use:n{para/end}
+         \@kernel at after@para at end
+         \mode_if_horizontal:TF {
+           \if_int_compare:w 11 = \tex_lastnodetype:D
+             \tex_hskip:D \c_zero_dim
+           \fi:
+           \tex_par:D
+           \hook_use:n{para/after}
+           \@kernel at after@para at after
+         }
+         { \msg_error:nnnn { hooks }{ para-mode }{end}{horizontal} }
+    }
+  }
+  {
+    \__kernel_endpe_vmode:       % should do nothing if no tagging
+    \tex_par:D
+  }
+}
+\cs_set_eq:NN \par     \para_end:
+\cs_set_eq:NN \@@par   \para_end:
+\cs_set_eq:NN \endgraf \para_end:
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%  \begin{macro}{\begin}
+%    We need to do a little more than canceling \texttt{@endpe} now.
+%    \begin{macrocode}
+\DeclareRobustCommand*\begin[1]{%
+  \UseHook{env/#1/before}%
+  \@ifundefined{#1}%
+    {\def\reserved at a{\@latex at error{Environment #1 undefined}\@eha}}%
+    {\def\reserved at a{\def\@currenvir{#1}%
+        \edef\@currenvline{\on at line}%
+        \@execute at begin@hook{#1}%
+        \csname #1\endcsname}}%
+  \@ignorefalse
+  \begingroup
+    \__kernel_endpe_vmode:
+    \reserved at a}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%  \begin{macro}{\__kernel_endpe_vmode:}
+%    Close an open \texttt{text-unit} if \texttt{@endpe} is true and we
+%    are in vmode. Used in \cs{para_end:} and \cs{begin}.
+%    \begin{macrocode}
+\cs_new:Npn \__kernel_endpe_vmode: {
+    \if at endpe \ifvmode
+      \bool_if:NT \l__tag_para_bool
+	{
+	  \bool_if:NF \l__tag_para_flattened_bool
+	   {
+	     \int_gincr:N \g__tag_para_main_end_int
+	     \tag_struct_end:
+	   }
+	   \@endpefalse
+	}
+    \fi \fi
+}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%  \begin{macro}{\__kernel_list_label_after:}
+%    If starting the text-unit/text tags got delayed because of a pending label we
+%    have to do it after the label got typeset
+%    \begin{macrocode}
+\cs_set:Npn \__kernel_list_label_after: {
+   \bool_if:NT \l__tag_para_bool
+     {
+       \bool_if:NF \l__tag_para_flattened_bool
+            {
+%              \typeout{-->G3}
+              \int_gincr:N \g__tag_para_main_begin_int 
+              \tag_struct_begin:n{tag=\l__tag_para_main_tag_tl}
+            }
+       \int_gincr:N \g__tag_para_begin_int
+       \@@_debug_typeout:n{increment~ P \on at line }
+       \tag_struct_begin:n {
+          tag=\l__tag_para_tag_tl
+         ,attribute-class=\l_tag_para_attr_class_tl
+       }
+       \bool_if:NT \l__tag_para_show_bool
+            {
+              \tag_mc_begin:n {artifact}
+              \llap {\color_select:n {blue}\tiny Li-\int_use:N \g__tag_para_begin_int \ }
+              \tag_mc_end:
+            }
+       \tag_mc_begin:n {tag=P}
+     }
+}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%  \begin{macro}{\@@_inner_begin:}
+%    Start a block that has an inner structure if it isn't also a list.
+%    \begin{macrocode}
+\cs_new:Npn \@@_inner_begin: {
+  \tagstructbegin{tag=\l_@@_tag_inner_tag_tl}
+}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%  \begin{macro}{\@@_inner_end:}
+%    End a block (which isn't also a list).
+%    \begin{macrocode}
+\cs_new:Npn \@@_inner_end: {
+  \@@_debug_typeout:n{block-end \on at line}
+  \legacy_if:nT { @endpe }
+    {
+      \int_gincr:N \g__tag_para_main_end_int
+      \@@_debug_typeout:n{close~ /text-unit \on at line}
+      \tagstructend
+    }
+  \tagstructend        % end inner structure
+}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%
+%
+%
+%
+% \subsubsection{List tags}
+%
+%
+%    \begin{macrocode}
+\tl_new:N  \l__tag_L_tag_tl
+\tl_set:Nn \l__tag_L_tag_tl {L}
+
+\tl_new:N\l__tag_L_attr_class_tl
+\tl_set:Nn \l__tag_L_attr_class_tl {list}
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+\tag_if_active:T
+{
+  \tagpdfsetup
+      {
+        % default if unknown
+        newattribute = {list}{/O /List /ListNumbering/None},    
+        newattribute = {itemize}{/O /List /ListNumbering/Unordered},
+        newattribute = {enumerate}{/O /List /ListNumbering/Ordered},        
+        newattribute = {description}{/O /List /ListNumbering/Description},
+      }
+}
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+\def\LItag{LI}
+%    \end{macrocode}
+%
+%  \begin{macro}{\@@_list_begin:}
+%    Start a list \ldots
+%    \begin{macrocode}
+\cs_set:Npn \@@_list_begin: {
+  \tagstructbegin
+      {
+         tag=\l__tag_L_tag_tl
+        ,attribute-class=\l__tag_L_attr_class_tl
+      }
+}
+%    \end{macrocode}
+%  \end{macro}
+%
+%  \begin{macro}{\@@_list_item_begin:}
+%    Start tagging a list item.
+%    \begin{macrocode}
+\cs_set:Npn \@@_list_item_begin: { \tagstructbegin{tag=\LItag} }
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%  \begin{macro}{\__kernel_list_label_begin:}
+%    A list label needs a \texttt{Lbl} structure tag and an MC.
+%    \begin{macrocode}
+\cs_set:Npn \__kernel_list_label_begin: {
+%
+% FMi: this needs a different logic to decide when to make the label
+%    an artifact (after cleaning up the the \item code  ), therefore
+%    disabled for now
+%  \tl_if_empty:oTF \@itemlabel
+%     {
+%       \tag_mc_begin:n {artifact}
+%     }
+%     {
+       \tagstructbegin{tag=Lbl}
+       \tagmcbegin{tag=Lbl}
+%     }
+}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%
+%  \begin{macro}{\__kernel_list_label_end:}
+%    And when we are done with the label we have to close the MC and
+%    the \texttt{Lbl} structure. We then start the \texttt{LBody}. The
+%    material inside will be \enquote{paragraph} text and the tagging
+%    for that is handled by the normal para tagging. 
+%    \begin{macrocode}
+\cs_set:Npn \__kernel_list_label_end: {
+  \tagmcend                                    % end mc-Lbl or artifact
+% FMi: unconditionally for now
+%  \tl_if_empty:oF \@itemlabel
+         \tagstructend   % end   Lbl
+  \tagstructbegin{tag=\LBody}
+}
+\def\LBody{LBody}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%
+%  \begin{macro}{\@@_list_item_end:}
+%    When a list item ends we have to close \texttt{LBody} and
+%    \texttt{LI} but also a \struct{text} in the special case that the
+%    item material ends in a list (identifiable via \texttt{@endpe}).
+%    \begin{macrocode}
+\cs_set:Npn \@@_list_item_end: {
+  \legacy_if:nT { @endpe }
+    {
+      \int_gincr:N \g__tag_para_main_end_int
+      \tagstructend                           % text-unit
+%      \@@_debug_typeout:n{Structure-end~ P~ at~ item-end \on at line }
+    }
+  \tagstructend \tagstructend   % end LBody, LI
+}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%
+%  \begin{macro}{\@@_list_end:}
+%    Finally, at the list end we have to close the open
+%    \texttt{LBody}, \texttt{LI}, \texttt{L}, and possibly a
+%    \struct{text} if the last item ends with a list.
+%    \begin{macrocode}
+\cs_set:Npn \@@_list_end: {
+  \legacy_if:nT { @endpe }
+    {
+      \int_gincr:N \g__tag_para_main_end_int
+      \tagstructend                       % text-unit
+      \@@_debug_typeout:n{Structure-end~ P~ at~ list-end \on at line }
+    }
+  \tagstructend\tagstructend  % end LBody, LI
+  \tagstructend               % end L
+}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%
+%
+%
+%
+%    End of tagging related declarations.
+%    \begin{macrocode}
+}
+%    \end{macrocode}
+%
+%
+%
+%  
+%
+%  
+%
+%  
+%
+%    \begin{macrocode}
+%</package>
+%    \end{macrocode}
+%
+%
+%
+%    \begin{macrocode}
+%<*latex-lab>
+\ProvidesFile{block-tagging-latex-lab-testphase.ltx}
+        [\ltblocksdate\space \ltblocksversion\space
+                            blockenv implementation]
+\RequirePackage{latex-lab-testphase-block-tagging}
+%</latex-lab>
+%    \end{macrocode}
+%
+% \end{implementation}
+%
+%
+% \section{Documentation from first prototype implementations}
+%
+%
+% \subsection{Open questions}
+% \begin{itemize}
+% \item Existing questions --- moved to issues ---
+% \end{itemize}
+%
+% \subsection{Code cleanup}
+% \begin{itemize}
+% \item Actually implement what's announced.
+%
+% \item Encapsulate most uses of \cs[no-index]{legacy_if\dots} into
+%   commands with \texttt{expl3} syntax: we cannot rename these booleans
+%   for compatibility reasons but we can make the code cleaner
+%   nevertheless. --- made issue ---
+%
+% \item The \tn{topsep} and \tn{partopsep} business is tricky to
+%   reproduce exactly (see \tn{@topsepadd} and \tn{@topsep}) because of
+%   how it accumulates when lists are nested immediately.
+%
+% \end{itemize}
+%
+%
+%
+% \subsection{Tasks}
+% \begin{itemize}
+%
+% \item Change author to LaTeX Team once it's nice enough to deserve
+%   that label.
+%
+% \item Reproducing exactly the standard layouts and examples in the
+%   \pkg{enumitem} documentation.
+%
+% \item Hooks, but do not duplicate those that already exist as
+%   environment hooks.  Hence, mostly around items.
+%
+% \item Customization and interaction with LDB:
+%   \begin{itemize}
+%   \item Allow arbitrary nesting depth with automatically defined
+%     styles for labels, counters etc.
+%   \item Adapt everything to font size! (e.g. footnotes).
+%   \item How to model the inheritance from trivlist to list to
+%     enumerate?
+%   \end{itemize}
+%
+% \item Add key--value settings mimicking \pkg{enumitem}'s ability to
+%   set any four of five horizontal parameters and deduce the fifth by
+%   $\cs{leftmargin} + \cs{itemindent} = \cs{labelindent} +
+%   \cs{labelwidth} + \cs{labelsep}$.
+%
+% \item Provide good ways to customize how overlong labels are dealt with.
+%
+% \item Use the \texttt{.aux} file.
+%   \begin{itemize}
+%   \item Implement the \tn{ref} styles that \pkg{enumitem} provides.
+%   \item Reverse enumerations, important in publication lists and the
+%     like.  Somehow avoid needing 3 compilations for references to
+%     reverse enumerations to settle?
+%   \item Ability to calculate \tn{labelwidth} from the label contents.
+%     Share calculated parameters between multiple environments (cf.\
+%     \texttt{resume} option).
+%   \end{itemize}
+%
+% \item Related to grabbing the whole list environment, and input syntax
+%   variations:
+%   \begin{itemize}
+%   \item Other layouts: tabular (see \pkg{listliketab} vs
+%     \pkg{typed-checklist}), multicolumn and horizontally numbered (see
+%     \pkg{tasks}), inline lists, runin lists in the easy case where
+%     there is no intervening \tn{par}.
+%   \item Formatting the item text in a
+%     box or similar (requires grabbing the whole list).
+%   \item Filtering which items to show: hide certain items according to
+%     criteria (useful together with list reuse), see
+%     \pkg{typed-checklist}.
+%   \item Shorthands \tn{iitem} for automatic nested lists, or \cs{1},
+%     \cs{2} etc from \pkg{outlines}.
+%   \item Support markdown input like \pkg{asciilist}.
+%   \end{itemize}
+%
+% \item Check interaction with \texttt{babel} options such as
+%   \texttt{french} or \texttt{accadian} (see FrenchItemizeSpacing)
+%
+% \item RTL and vertical typesetting.
+% \end{itemize}
+%
+% \section{Plan of attack of first prototype}
+%
+% Typesetting list environments involves a rather large number of
+% parameters.  They can be affected by the context such as the total
+% list nesting level, the nesting level of the given type of list, and
+% the font size.  An environment like \texttt{enumerate} has two main
+% aspects.
+% \begin{itemize}
+% \item It has a certain layout in the page, with vertical and
+%   horizontal spacing around it.  This type of layout is shared with
+%   environments such as \texttt{quote}, \texttt{flushright}, or
+%   \texttt{tabbing}.  This common layout is implemented in \LaTeXe{}
+%   through \cs{trivlist} (or \cs{list}).
+% \item It defines how each \cs{item} should be typeset: how to
+%   construct the label, in particular the \texttt{counter} name, and
+%   how to format the content of the item.
+% \end{itemize}
+%
+% This suggests defining two object types, \xt{block} and \xt{item}
+% covering these two aspects.\footnote{Possibly also \xt{endblock} to
+% deal with decorations at the end?}  While the \xt{item} type will
+% perhaps have a single template, one could typeset a \xt{block} object
+% in several ways, for instance the standard \LaTeXe{} way or a fancy
+% colored box.
+%
+% The \xt{general} \xt{block} template should receive the following
+% parameters.  The \xt{plain} \xt{block} template is a restricted
+% template that freezes all item-related parameters to dummy values
+% (\texttt{counter}, \texttt{start}, \texttt{resume},
+% \texttt{label-width}, \texttt{label-sep} and all \texttt{item-*}).
+% The \xt{list} \xt{block} template is a restricted template\footnote{A
+% better approach could be to have a notion of inheritance for object
+% types, so that we end up with two different \emph{object types}.  Then
+% we can implement other template for the list object type: \xt{table}
+% for lists typeset as rows/columns of a table, \xt{inline} for lists
+% typeset in horizontal mode within a paragraph, and \xt{runin} for
+% run-in lists.} that omits the \texttt{heading} parameter and whose
+% default for \texttt{item-instance} is non-empty.
+% \begin{itemize}
+% \item Structural parameters: the \texttt{heading} to place before,
+%   \texttt{counter} name, \texttt{start} value, whether to
+%   \texttt{resume} a previous list, and the \texttt{item-instance} (an
+%   \xt{item} instance) to use when typesetting items.
+% \item Vertical spacing and penalties: \texttt{beginpenalty},
+%   \texttt{beginsep}, \texttt{begin-par-skip}, \texttt{item-penalty},
+%   \texttt{item-skip}, \texttt{item-par-skip}, \texttt{endpenalty},
+%   \texttt{end-skip}, \texttt{end-par-skip}.
+% \item Horizontal spacing: \texttt{rightmargin}, \texttt{leftmargin},
+%   \texttt{parindent}, \texttt{item-indent}, \texttt{label-width},
+%   \texttt{label-sep}.
+% \end{itemize}
+% A \docclass should edit these templates (or define restricted
+% templates) to set up default values that depend on \tn{g_block_nesting_depth_int},
+% namely how many lists are nested overall.\footnote{Does
+% \pkg{xtemplate} provide a way to specify default values that are only
+% evaluated once an instance is used?}  The document class should then
+% set up an instance of these templates for each environment, with
+% appropriate settings such as a \texttt{heading}, a suitable
+% \texttt{item-instance}, or making \texttt{margin-right} equal to
+% \texttt{margin-left} in a \texttt{quote} environment.
+%
+% The \xt{inline-list} \xt{block} template receives many fewer
+% parameters.  Note that \texttt{beginsep}, \texttt{item-skip},
+% \texttt{end-skip} are now \emph{horizontal} skips.
+% \begin{itemize}
+% \item Structural parameters: \texttt{counter}, \texttt{start},
+%   \texttt{resume}, \texttt{item-instance}.
+% \item Spacing and penalties: \texttt{beginpenalty},
+%   \texttt{beginsep}, \texttt{item-penalty}, \texttt{item-skip},
+%   \texttt{endpenalty}, \texttt{end-skip}.
+% \item Horizontal spacing: \texttt{label-width}, \texttt{label-sep}.
+% \end{itemize}
+%
+% The \xt{std} \xt{item} template should receive the following
+% parameters.  They depend on the type of list and its nesting level
+% among lists of such type, but typically not on the total nesting
+% level.
+% \begin{itemize}
+% \item Counter name (\texttt{counter}), shared with the parent
+%   \xt{list} \xt{block} template, but needed for incrementing.
+% \item Label construction: a function \texttt{counter-label} that
+%   produces the label from the counter name, used if \tn{item} is given
+%   without argument.
+% \item References: a function \texttt{counter-ref} for how the label
+%   should be referred to when it is constructed from the counter,
+%   \texttt{label-ref} and \texttt{label-autoref} used when \tn{item}
+%   has an optional argument.
+% \item Label formatting: \texttt{label-format} function,
+%   \texttt{label-strut} boolean.
+% \item Label alignment (\texttt{label-align}, \texttt{label-boxed},
+%   \texttt{next-line}).
+% \item Content parameters: \texttt{text-font}.
+% \item A \texttt{compatibility} boolean that controls for instance
+%   whether \tn{makelabel} is used.
+% \end{itemize}
+% The \docclass should set up an instance such as \xt{enumiii} for each
+% environment and nesting level.\footnote{This should be made easily
+% extendible to deeper levels.}
+%
+% A given environment will adjust some nesting levels, then call the
+% \xt{block} instance appropriate to the environment type, passing it
+% the \xt{item} instance appropriate to the environment and depth.
+% Additional context-dependence could be provided by \pkg{l3ldb}, but
+% the main context-dependence should not rely on it for simplicity
+% reasons and incidentally because \pkg{l3ldb} is not yet available.
+%
+%
+% \Finale
+%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput


Property changes on: trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-block-tagging.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-footnotes.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-footnotes.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-footnotes.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,7 +1,7 @@
 % \iffalse meta-comment
 %
 %% File: latex-lab-footnotes.dtx
-% Copyright (C) 2022 The LaTeX Project
+% Copyright (C) 2022-2023 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
@@ -53,11 +53,11 @@
 %    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
+%    some adjustments are mutually exclusive). This is achieved by
+%    providing 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
+%    can write to successfully (in case of multiple changes 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
@@ -64,8 +64,8 @@
 %    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
+%    for this to work, all packages altering the footnote setup should
+%    use the interfaces 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).
 %
@@ -81,7 +81,7 @@
 %    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
+%    definitions for the latter in all document classes and definitions
 %    for \cs{@makefnmark} only in very few.
 %
 %    Furthermore, to enable special footnote layouts or provide
@@ -114,7 +114,7 @@
 %
 %    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.
+%    other packages handling aspects of footnote formatting.
 %
 %
 % \subsection{Formatting the mark in the main text}
@@ -140,7 +140,7 @@
 %
 %      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.,
+%      prepend material at this point (not necessarily correctly, e.g.,
 %      they do not all check that they are in horizontal mode).
 %
 %      This hook is paired with hook \hook{fnmark/after}.
@@ -163,15 +163,15 @@
 %    \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.
+%      This is the place where \pkg{hyperref} would have added
+%      part of its code, i.e., after the \cs{nobreak} mentioned above.
+%      With the integration of hyperlinks in the tagging code
+%      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
+%      used by \pkg{memhfixc}, \pkg{scrlttr2}, and
 %      \pkg{footmisc}. Used, for example, to implement support for
 %      multiple marks in succession.
 %
@@ -227,9 +227,9 @@
 %    \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
+%      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
+%      (e.g., when running all footnotes as a single paragraph) and so
 %      this configuration point can cancel the action or do something
 %      else instead.
 %
@@ -261,17 +261,18 @@
 %
 %      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}.
+%      marking the mark as an Lbl. It does this using the command
+%      \cs{tag at FENoteLbl}.
 %
 %    \item[\cs{@makefntext at cfgpointii} (1 argument)]
 %
 %      This configuration point manages the formatting of the footnote
-%      text once the mark has been typeset. 
+%      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}.
+%      the command \cs{tag at FENotetext}.
 %
 %    \end{description}
 %
@@ -335,7 +336,7 @@
 %
 %      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
+%      \hook{fntext/before}. Some packages, e.g., \pkg{linguex}, have
 %      code in that position.
 %
 %    \end{description}
@@ -346,7 +347,7 @@
 % \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
+%    text 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:
@@ -381,8 +382,248 @@
 %    \end{itemize}
 %
 %
-% \section{Tagging support}
+% \section{Tagging and hyperlinking support}
 %
+% Footnotes consist of a \emph{footnotemark} (short: mark) that is typically placed in the text
+% as a superscript number like this\footnotemark[1], and a \emph{footnotetext}
+% (short: note) that is placed at the bottom of the page.
+% The \emph{footnotetext} normally repeats at the begin the mark as a visual clue.
+%
+% Tagging (and hyperlinking) has to connect the mark with the note.
+% For the tagging code, we assume that every mark has exactly one associated note,
+% and that every note is associated to at least one mark
+% and can have more associated marks.
+%
+% The mark doesn't need to be visible, e.g. the typesetted
+% mark\textsuperscript{1--3} denotes three marks, where the second is invisible.
+% Tagging should produce here probably three \texttt{Lbl} structures
+% (one without content), and an artifact for the range marker.
+% If such a range is used, links can only point to the notes 1 and 3 and
+% one has to suppress the linking for the second mark.
+% This means that links and tagging are also related
+% to the actual formatting of the footnote mark.
+% In the following this problem is mostly ignored for now, but
+% should not be forgotten and handled later.
+%
+% \subsection{Technical details for the tagging}
+%
+% The \emph{footnotemark} should create a \texttt{/Lbl} structure\footnote{to make it easier
+% to identify the role we use \texttt{/footnotemark} which we rolemap to \texttt{/Lbl}} that should contain a \texttt{/Ref} entry pointing
+% to the structure of the \emph{footnotetext}.
+%
+% The \emph{footnotetext} should create a \texttt{/FENote}\footnote{We tag it as \texttt{/footnote} and role map it.}
+%  structure with a \texttt{/Ref}
+% entry pointing to the structures of \emph{all} marks related to the note.
+% The mark at the begin of the
+% note is in a \texttt{/Lbl}\footnote{We tag it as \texttt{/footnotelabel}.}
+% structure but has to fulfil no special requirements.
+%
+% Structure objects and the underlying properties used by the tagging
+% code are initialized when the structure is opened. This means that one can not
+% directly add data to a future structure
+% but as structure objects are written at the end of the document it is
+% possible to update \texttt{/Ref} entries in an end document hook.
+%
+%
+% So tagging has to solve two problems:
+% \begin{itemize}
+% \item the mark and the footnote text must be surrounded by the correct structure
+%  and marked content commands. This is not trivial
+%  as there are various layouts (bottom, marginpar, minipage) and the tagging
+%  from the automatic paratagging must be taken into account if one want to avoid
+%  faulty nesting.
+%
+% \item It must detect which marks are related to which notes
+%  so that it can setup the \texttt{/Ref} cross-references.
+% \end{itemize}
+%
+%
+% \subsection{Requirements for links}
+%
+% Links should go from the mark to the note. Sometimes it has been requested
+% that links go back too, but as there
+% can be more than one mark connected to a note it is not clear how to decide to which mark it should go.
+% Using the keys from the PDF viewer to go back is normally better.
+%
+% Links are closely related to the references stored in the \texttt{/Ref}
+% entry of a mark and so are handled in the code together with them.
+% But there are subtle technical differences to take care of
+% as links and destinations are whatsits and so must be created at the correct time.
+%
+% It should be possible to suppress the links both globally and locally.\footnote{
+% Currently hyperref only offers the option to suppress the
+% footnote links globally
+% with the option \texttt{hyperfootnotes=false}. To suppress them locally
+% only the \texttt{NoHyper} environment is provided.}
+%
+%
+% \subsection{The algorithmus to connect marks and notes}
+%
+%
+% The connection is made by comparing the value of \cs{@thefnmark}.
+%
+% The standard mark commands (\cs{footnotemark} and \cs{footnote})
+% store the current value of \cs{@thefnmark}
+% with their own structure number as a key in a property.
+%
+% A following \cs{footnotetext} compares its own \cs{@thefnmark} with the values in
+% the prop. If there is a match it stores the structure numbers and removes the entries
+% from the properties (so in a normal document the property will never contain more than
+% a few entries).
+%
+% This works well as long as the \cs{footnotemark} commands are issued before the \cs{footnotetext} and
+% as long as nothing unusual is done to \cs{@thefnmark}.
+% It also works if a document uses more than one footnote series as long as they have distinct numbering
+% systems, but in case a distinction is needed it is possible to define
+% a new data structure and to switch locally to use this
+% container. The following three commands are used for this.
+%
+% The default property uses the name \texttt{default}
+%
+% \begin{function}{\fnote_new:nn}
+% \begin{syntax}
+% \cs{fnote_new:nn}\Arg{name}\Arg{key/value option}
+% \end{syntax}
+%
+% This commands set up the needed data structure. Currently this only
+% consists of a property which is used to store and manage the mark values.
+% There are no options yet.
+% \end{function}
+%
+% \begin{function}{\fnote_mark_gput:nn,\fnote_mark_gput:no,\fnote_mark_gput:oo}
+% \begin{syntax}
+% \cs{fnote_mark_gput:nn}\Arg{mark}\Arg{footnote type name}
+% \end{syntax}
+% This command stores the current structure number as key and the \meta{mark} as
+% value in the property associated with the \meta{footnote type name}
+% \end{function}
+%
+% \begin{function}{\fnote_mark_gpop:nnN}
+% \begin{syntax}
+% \cs{fnote_mark_gpop:nnN}\Arg{mark}\Arg{footnote type name}\meta{sequence}
+% \end{syntax}
+% This command stores the keys/structure numbers whose value are \meta{mark} in the
+% property associated with \meta{footnote type name} in the \meta{sequence}
+% and then remove them from the property. The content of the sequence can then be
+% used to create link targets and references.
+% \end{function}
+%
+%
+% \subsubsection{\cs{footref}}
+%
+% \cs{footref} use internally the same command to set the mark as \cs{footnotemark}, it only
+% defines \cs{@thefnmark} differently. This \cs{@thefnmark} is not suitable for the method described
+% above, as it contains a reference command it can't be used to match a note, also \cs{footref} can
+% be used after the note has already been set. \cs{footref} disables therefore the automatic detection.
+%
+% Instead the \cs{label} command is (currently with the help of a hook from the \texttt{nameref} package)
+% extended in the \cs{footnotetext} command to also store the structure number and \cs{footref} retrieves this
+% number to setup the reference and the link.
+%
+% The structure related to the \cs{footref} is added to the end of the \texttt{/Ref} array of the note and so the
+% \texttt{/Ref} array doesn't necessarly reflect the order of the marks in the document. It would probably
+% be possible to change this, but it is not clear if it actually matters and so it worth the additional coding
+% and processing.
+%
+% \subsubsection{\cs{footnotemark} after \cs{footnotetext}}
+%
+% The automatic detection doesn't work if a \cs{footnotemark} is issued after
+% the \cs{footnotetext} it refers to. There will be no error, but neither the link nor
+% the \texttt{/Ref} will connect both.
+%
+% The simple way to handle this is to use a label and \cs{footref}:
+%
+% \begin{verbatim}
+% \footnotetext{\label{fn:a}text} ... \footref{fn:a}
+% \end{verbatim}
+%
+% An alternative would be to extend the syntax of \cs{footnotemark} and
+% \cs{footnotetext} to allow to add a label which can then be used.
+% For example
+%
+% \begin{verbatim}
+% \footnotetext[label=fn:a]{text} ... \footnotemark[label=fn:a]
+% \end{verbatim}
+%
+% As both have already an optional argument, that requires the optional argument extension.
+%
+%
+% \subsection{Links}
+%
+% The structure numbers detected for the \texttt{/Ref} are also used for links:
+% even if tagging is not activated the tagging commands are defined through
+% the \pkg{tagpdf-base} package
+% and the structure commands increase the structure counter and this info can be used.
+%
+% A \cs{footnotetext} creates a bunch of destinations (in most cases this sums up to
+% two destinations): one for every structure number in the \texttt{/Ref} (used as target
+% by the mark commands) and one for the structure number of the footnotetest itself
+% (used as target by \cs{footref}s commands).
+%
+% \subsection{Implementation details}
+%
+% \subsection{Handling the mark}
+%
+% The mark in the text is handled by redefining the kernel configuration point
+% \cs{@kernel at process@makefnmark} to \cs{tag at FEMark}.
+% It takes one argument, \cs{@makefnmark}, the command which formats the
+% mark, and surrounds it by link and tagging commands.
+% At the point where \cs{@kernel at process@makefnmark} is issued \cs{@thefnmark} has already been
+% defined and can be used to setup the reference detections.
+%
+%
+% \subsection{Handling the footnotetext}
+%
+% The main part is done by redefining \cs{@kernel at process@footnotetext}. This configuration point takes two arguments, \cs{@footnotetext at cfgpoint} (by default \verb+\insert\footins+) and as second argument lots of code related to typesetting the notemark and the footnote text with the actual content of the footnote text somewhere in the middle.
+%
+% The redefinition of \cs{@kernel at process@footnotetext} surrounds the content with the structure command
+% and tries to detect to which mark the note is related.
+%
+% The actual typesetting of the note text is done
+% by \cs{@makefntext}/\cs{fnote_makefntext:n}. In the new implementation this contains two configuration
+% points, \cs{@makefntext at cfgpoint} and \cs{@makefntext at cfgpointii}. These are redefined to add the tagging commands around note mark and note text.
+%
+% \subsection{Footnotes in minipages}
+%
+% In minipages the \cs{footnote} command uses a special marker
+% (small italic letters by default) and puts the
+% footnote text at the bottom of the box. The \cs{footnotemark}
+% command uses the standard footnote counter and marker (and so typically
+% creates a superscript number).
+% It is meant to be used with a \cs{footnotetext} \emph{outside}
+% the minipage to create a footnote mark which refers to a footnote text
+% at the bottom of the page.
+% This means to repeat a footnote marker in a minipage you should use the \cs{footref} command.
+%
+% Tagging works quite similar to normal footnotes if the new definition is used
+% and if the minipage code is changed to use the new configuration point.
+% The main problem here is currently the tagging of the minipage itself.
+%
+% \section{TODOs}
+%
+% \begin{itemize}
+%
+% \item tagging destroys footnotes directly following the text with pdflatex.
+%
+% \item there is a dependency on nameref as it provides the hook in \cs{label}
+% used by the \cs{footref} code.
+%
+% \item there is a dependency to etoolbox as we patch \cs{\@iiiminipage}
+%
+% \item Special formatting of footnote marks in the text, e.g. if ranges or commas are
+% used require special care as they should normally mark up such text as artifacts and
+% perhaps have to insert empty structures to represent an invisible mark. This must be coordinated
+% with the relevant packages and classes.
+%
+% \item manyfoot doesn't work correctly and must be analyzed.
+%
+% \item Check if additional kernel configuration points are needed/possible
+% to avoid the redefinitions of \cs{@makefntext at cfgpoint} and \cs{@makefntext at cfgpointii}.
+%
+% \item \pkg{memoir} is not supported at all and errors when the code tries to patch
+% \cs{@makefntext}.
+% \end{itemize}
+%
 %  \emph{To be documented}
 %
 %
@@ -403,46 +644,171 @@
 % \subsection{File declaration}
 %    \begin{macrocode}
 \ProvidesFile{latex-lab-footnotes.ltx}
-        [2022-07-22 v0.6b changes to the footnote interfaces]
+        [2023-02-04 v0.7 changes to the footnote interfaces]
 %    \end{macrocode}
 %
+% \subsection{code not fully handled yet}
 %    \begin{macrocode}
-
+%
 % latex.ltx
+% not looked at yet
+% \@mpfootnotetext is probably no longer needed, or only to support other
+% classes and package. See below about the minipage code.
+%
+% \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}}
+% ========
+% used by the minipage footnote code.
+%
+% \def\@mpfn{footnote}
+% \def\thempfn{\thefootnote}
+% =========
+% this perhaps need some configuration options.
+%
+%\def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}
+%
+% =========
+%% alterations not covered:
+%
+% ./arabtex/afoot.sty  --- too different (and probably too old)
+%
+% =====
+% alterations of footnotetext not covered:
+%
+% ./revtex4-1/revtex4-1.cls  ./revtex/ltxutil.sty ./revtex/revtex4-2.cls ... (need analysis)
+% ./bigfoot/bigfoot.sty
+%
+% memoir needs checking too
+%
+% =====
+%
+% 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
 
-        % 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}
-
-
-
+% 1-4 = polyglossia for korean
+%
+%    \end{macrocode}
 %-------------------------------------
-
-
+%    \begin{macrocode}
 \ExplSyntaxOn
+%    \end{macrocode}
+% \subsection{Temporary variables}
+%    \begin{macrocode}
+\prop_new:N \l_@@_tmpa_prop
+\tl_new:N   \l_@@_tmpa_tl
+%    \end{macrocode}
+% \subsection{Public variables}
+%
+% A footnote mark will store its structure number (key) and the
+% expanded \cs{@thefnmark} in this prop so
+% that a following note can retrieve this info
+% if needed. It is possible to use more than one footnote series (type)
+% if needed (if different footnotes/note use the same
+% numbering system).
+% If this command is changed an accompanying property must be created
+% \begin{NOTE}{UF}
+% TODO: interface to create the property.\\
+% TODO: check and decide about the name of the tl
+% \end{NOTE}
+% \begin{macro}{\l_fnote_type_tl}
+%    \begin{macrocode}
+\tl_new:N  \l_fnote_type_tl
+\tl_set:Nn \l_fnote_type_tl {default}
+%    \end{macrocode}
+% \end{macro}
+% It must be possible to suppress the hyperlinking, both locally
+% and globally. hyperref's hyperfootnotes option should set the boolean.
+% \begin{macro}{\l_fnote_link_bool}
+%    \begin{macrocode}
+\bool_new:N       \l_fnote_link_bool
+\bool_set_true:N  \l_fnote_link_bool
+%    \end{macrocode}
+% \end{macro}
+% A hyperlink should have an changeable link type. This can
+% be e.g. used to change the color or the border.
+% \begin{macro}{\l_fnote_link_type_tl}
+%    \begin{macrocode}
+\tl_new:N  \l_fnote_link_type_tl
+\tl_set:Nn \l_fnote_link_type_tl {link}
+%    \end{macrocode}
+% \end{macro}
+%
+% \subsection{Internal variables}
+%
+% \begin{macro}{\l_@@_linktarget_tl}
+%  This command stores the name of a linktarget/destination
+%  when needed
+%    \begin{macrocode}
+\tl_new:N \l_@@_linktarget_tl
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\l_@@_currentlabel_tl}
+% This command is used to pass a label name around.
+%    \begin{macrocode}
+\tl_new:N \l_@@_currentlabel_tl
+%    \end{macrocode}
+% \end{macro}
 
-
+% \begin{macro}{\l_@@_currentrefs_seq}
+% This sequence stores the list of reference of a note
+%    \begin{macrocode}
+\seq_new:N  \l_@@_currentrefs_seq
+%    \end{macrocode}
+% \end{macro}
+%
+% The connection between the mark(s) in the text and the note
+% is either deduced automatically or done through an label.
+% The default is automatic, but we must be able to suppress it. For this we use a boolean.
+% \begin{macro}{\l_@@_autodetect_bool}
+%    \begin{macrocode}
+\bool_new:N       \l_@@_autodetect_bool
+\bool_set_true:N  \l_@@_autodetect_bool
+%    \end{macrocode}
+% \end{macro}
+% This is used to pass the structure number of the note around, e.g.
+% to a label inside the note.
+%    \begin{macrocode}
+\tl_new:N  \l_@@_currentstruct_tl
+\tl_set:Nn \l_@@_currentstruct_tl {1}
+%    \end{macrocode}
+%
+%
+% \subsection{Variants}
+%
+%    \begin{macrocode}
+\cs_generate_variant:Nn \ref_label:nn { Vn }
+\cs_generate_variant:Nn \ref_value:nn { Vn }
+\cs_generate_variant:Nn \prop_gput:Nnn {cxn}
+\cs_generate_variant:Nn \hook_gput_code:nnn{nne}
+\cs_generate_variant:Nn \tag_struct_use:n {e}
+%    \end{macrocode}
+%
+% \subsection{Updating \cs{@thefnmark}}
+% \begin{macro}{\fnote_step_fnmark:nn}
+% This command updates \cs{@thefnmark}. The first argument
+% is an optional integer expression, the second a counter name.
+% If the optional argument is not given it steps the counter.
+%    \begin{macrocode}
 \cs_new_protected:Npn \fnote_step_fnmark:nn #1#2 {
   \tl_if_novalue:nTF {#1}
     {
@@ -463,7 +829,12 @@
      \group_end:
     }
 }
-
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\fnote_set_fnmark:nn}
+% This is similar to the previous command, but it doesn't step the
+% counter but use the current value.
+%    \begin{macrocode}
 \cs_new_protected:Npn \fnote_set_fnmark:nn #1#2 {
   \tl_if_novalue:nTF {#1}
     {
@@ -476,25 +847,40 @@
      \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
-
-%-------------------------------------
-
-
-
+%    \end{macrocode}
+% \end{macro}
+%
+% \subsection{Hooks}
+%
+% Hooks in the footnotemark command.
+%    \begin{macrocode}
 \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
+%    \end{macrocode}
+% Hooks in the footnotetext command
+%    \begin{macrocode}
+\NewMirroredHookPair{fntext/before}{fntext/after}
+\NewHook{fntext}
+\NewHook{fntext/para}
+\NewHook{fntext/begin}
+\NewHook{fntext/end}
+%    \end{macrocode}
+%
+% \subsection{Debugging code}
+% the debugging code is just temporary
+%
+% For now we have debugging turned on by default
+%    \begin{macrocode}
+\bool_new:N        \g_fnote_debug_bool
+\bool_gset_true:N  \g_fnote_debug_bool
+%    \end{macrocode}
+% We log the hooks in the footnote mark command, but only once
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_debug_footnotemark:
+  {
+    \bool_if:NT \g_fnote_debug_bool
        {
          \LogHook{fnmark/before}
          \LogHook{fnmark}
@@ -503,9 +889,38 @@
          \LogHook{fnmark/after}
          \cs_gset_eq:NN \@@_debug_footnotemark: \prg_do_nothing:
        }
-}
-
-
+  }
+%    \end{macrocode}
+% Similar for the footnotetext
+%    \begin{macrocode}
+\cs_new_protected: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:
+       }
+  }
+%    \end{macrocode}
+%
+% \subsection{The new \cs{@footnotemark} command}
+% \begin{macro}{\fnote_footnotemark:}
+% This is the main command which will replace \cs{@footnotemark}.
+%    \begin{macrocode}
 \cs_new_protected:Npn \fnote_footnotemark: {
   \@@_debug_footnotemark:
 %-------
@@ -535,17 +950,20 @@
 %    \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
+%    finishing with \hook{fnmark/after}. However, in 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
+%    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: {
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@@_finish:,\@@_footnotemark_finish:}
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_finish: {
 % hyperref.sty
 % memhfixc.sty  --- could move fnmark/after
 % scrlttr2.cls  --- could vanish if footmisc uses a hook
@@ -561,57 +979,30 @@
 %-------
 }
 
-
 \cs_new_eq:NN \@@_footnotemark_finish: \@@_finish:
-
-
-  
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@kernel at process@makefnmark}
 % Not a public config point but the kernel hook to add tagging
+%    \begin{macrocode}
 \def \@kernel at process@makefnmark { }
-
-
-% alterations not covered:
+%    \end{macrocode}
+% \end{macro}
 %
-% ./arabtex/afoot.sty  --- too different (and probably too old)
-
-
-% Provide the name \LaTeXe{} is used to.
-
+% \begin{macro}{\@footnotemark}
+% At last provide the name \LaTeXe{} is used to.
+%    \begin{macrocode}
 \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).
+% \end{macro}
+%
+%
+% \subsection{The new \cs{@footnotetext} command}
+%
+%
+% \begin{macro}{\fnote_footnotetext:n}
 %    \begin{macrocode}
-         \cs_gset_eq:NN \@@_debug_footnotetext: \prg_do_nothing:
-       }
-  }
-
 \cs_new_protected:Npn \fnote_footnotetext:n #1 {
   \@@_debug_footnotetext:
 %-------
@@ -690,55 +1081,75 @@
   \UseHook{fntext/after}
 %-------
 }
-
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@footnotetext at cfgpoint}
 % default for config point (1 arg)
+%    \begin{macrocode}
 \cs_new_protected:Npn \@footnotetext at cfgpoint    { \insert\footins }
-
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@footnotetext at cfgpointii}
 % default for config point (1 arg)
+%    \begin{macrocode}
 \cs_new_protected:Npn \@footnotetext at cfgpointii  { \@makefntext }
-
-
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@footnotetext at cfgpointiii}
 % default for config point (0 args)
+%    \begin{macrocode}
 \cs_new_protected:Npn \@footnotetext at cfgpointiii { \rule\z@\footnotesep }
-
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@footnotetext at cfgpointiv}
 % default for config point (0 args)
+%    \begin{macrocode}
 \cs_new_protected:Npn \@footnotetext at cfgpointiv  { \@finalstrut\strutbox }
-
-
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@kernel at process@footnotetext}
 % kernel hook for tagging (2 args)
+%    \begin{macrocode}
 \cs_new_protected:Npn \@kernel at process@footnotetext {}
-
+%    \end{macrocode}
+% \end{macro}
+%
 % 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:
+%    with firstaid (or updating of the class).
+%    \begin{macrocode}
+\AddToHook{begindocument}
+  {
+    \cs_set_eq:NN \@footnotetext \fnote_footnotetext:n
+  }
+%    \end{macrocode}
 %
-% ./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
+% \subsection{The new \cs{@makefntext} command}
+%
+% \cs{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.
-
-
+%    \begin{macrocode}
 \newdimen\footnotemargin
 \footnotemargin\maxdimen         % no value given
 
-\AtBeginDocument{
-  \ifdim \footnotemargin=\maxdimen
-    \setlength\footnotemargin{1.8em}
-  \fi
-}     
+\AtBeginDocument
+  {
+    \ifdim \footnotemargin=\maxdimen
+      \setlength\footnotemargin{1.8em}
+    \fi
+  }
+%    \end{macrocode}
 
-
+% \begin{macro}{\fnote_makefntext:n}
+%    \begin{macrocode}
 \cs_new_protected:Npn \fnote_makefntext:n #1 {
 %    \end{macrocode}
 %    Some classes in their redefinition for \cs{@makefntext} have
@@ -765,36 +1176,45 @@
   \@makefntext at cfgpointii
       { #1 }
 }
-
-
-
-
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@makefntext at cfgpoint}
 % default for config point (1 arg)
+%    \begin{macrocode}
 \cs_new_protected:Npn \@makefntext at cfgpoint { \noindent }
-
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@makefntext at cfgpointii}
 % default for config point (1 arg)
+%    \begin{macrocode}
 \cs_new_protected:Npn \@makefntext at cfgpointii #1 { #1 }
 %    \end{macrocode}
+% \end{macro}
 %
+% \subsubsection{Making documents use the new \cs{@makefntext}}
 %
+%  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.
 %
-%    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 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.
 %
-%    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{macro}{\old at std@class at makefntext}
 %    \begin{macrocode}
 \newcommand\old at std@class at makefntext[1]{%
     \parindent 1em%
     \noindent
     \hb at xt@1.8em{\hss\@makefnmark}#1}
-
 %    \end{macrocode}
+% \end{macro}
+%
 %    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
@@ -822,7 +1242,6 @@
 %    \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
 
@@ -853,6 +1272,7 @@
 %\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 } }
@@ -869,10 +1289,11 @@
 %    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
@@ -879,15 +1300,16 @@
 %    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:
-     }
-}
+\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
@@ -898,63 +1320,112 @@
 %
 %    \end{macrocode}
 %
+% \subsection{Document-level commands}
 %
+% \begin{macro}{\footnotetext}
+%    \begin{macrocode}
+\DeclareDocumentCommand\footnotetext {om}
+  {
+    \fnote_set_fnmark:nn {#1} \@mpfn
+    \@footnotetext {#2}
+  }
+%    \end{macrocode}
+% \end{macro}
 %
 %
-% \subsection{Document-level commands}
+% \begin{macro}{\footnote}
+%    \begin{macrocode}
+\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:
+  }
+%    \end{macrocode}
+% \end{macro}
 %
-% \changes{v0.6b}{2022/07/22}{Make mandatory arguments of  \cs{footnote}
-%      and \cs{footnotetext} long (gh863)}
+
+% \begin{macro}{\footnotemark}
 %    \begin{macrocode}
+\DeclareDocumentCommand\footnotemark {o}
+  {
+    \fnote_step_fnmark:nn {#1} { footnote }
+    \@footnotemark
+  }
+%    \end{macrocode}
+% \end{macro}
 
-\DeclareDocumentCommand\footnotetext {o+m} {
-  \fnote_set_fnmark:nn {#1} \@mpfn
-  \@footnotetext {#2}
-}
-
-
-%-------------------------------------
-
-
-\DeclareDocumentCommand\footnote {o+m} {
-  \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{macro}{\footref}
+% \cs{footref} used the starred \cs{ref} in \cs{@thefnmark}
+% as the linking is handled by the tagging code inside
+% the \cs{@footnotemark}.
+% \cs{footref} should not try to link to its related related
+% note automatically but should instead use the label.
+% This is passed to \cs{@footnotemark} through
+% \cs{l__fnote_currentlabel_tl}.
+%
 %    \begin{macrocode}
-%<@@=>
+\DeclareDocumentCommand\footref {m}
+  {
+    \begingroup
+      \unrestored at protected@xdef\@thefnmark{\ref*{#1}}%
+    \endgroup
+    \bool_set_false:N  \l_@@_autodetect_bool
+    \tl_set:Nn \l_@@_currentlabel_tl {#1}
+    \@footnotemark
+    \bool_set_true:N  \l_@@_autodetect_bool
+  }
 %    \end{macrocode}
+% \end{macro}
 %
 %
+% \subsection{Firstaid for packages and classes}
 %
+% \subsection{Kernel patches}
+% Tagging of footnotes in minipages require a change in the minipage commands
+% We define at first a local configuration command for minipage footnotes.
 %
+% TODO remove the dependency to etoolbox, and need for the patch.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@mpfootnotetext at cfgpoint #1
+ {
+   \global\setbox\@mpfootins\vbox{%
+    \unvbox\@mpfootins
+    #1
+    }
+ }
+%    \end{macrocode}
+% Then we patch \cs{@iiiminipage}
+%   \begin{macrocode}
+\RequirePackage{etoolbox}
+\ExplSyntaxOff
+\patchcmd\@iiiminipage
+ {\let\@footnotetext\@mpfootnotetext}
+ {\let\@footnotetext at cfgpoint\@mpfootnotetext at cfgpoint}
+ {}{\ERROR}
+\ExplSyntaxOn 
+%    \end{macrocode}
 %
+% \subsubsection{\pkg{memoir}}
+% The \pkg{memoir} class redefines various internal commands to inject its
+% hooks and addtional code. The following reinstates the kernel command and
+% so probably breaks various options of \pkg{memoir}, but without the
+% changes it errors anyway. The \pkg{footmisc} package should be used to change
+% for example to para footnotes.
 %
-% \subsection{Firstaid for packages and classes}
+%    \begin{macrocode}
+\AddToHook{class/memoir/before}
+  { \let\new at std@class at makecol\@makecol }
+\AddToHook{class/memoir/after}
+  {
+    \cs_set_eq:NN  \@footnotemark \fnote_footnotemark:
+    \cs_set_eq:NN  \@makefntext\old at std@class at makefntext
+    \cs_set_eq:NN  \@makecol\new at std@class at makecol
+  }
+%    \end{macrocode}
 %
 % \subsubsection{\pkg{setspace}}
 %
@@ -967,157 +1438,411 @@
 %    \end{macrocode}
 %
 %
+% \subsubsection{\pkg{hyperref}}
 %
+%  hyperref has a hook which allows to disable its footnote
+%  related patches. As we will handle links directly in the code
+%  this is used.
 %
-% \subsubsection{\pkg{hyperref}}
+%    \begin{macrocode}
+\def\hyper at nopatch@footnote{}
+%    \end{macrocode}
+% We use the hyperref commands for now for links. To avoid
+% to have to test for hyperref we provide dummies.
+% TODO consider to use specials to get similar spacing.
+%    \begin{macrocode}
+\AtBeginDocument
+  {
+   \providecommand\hyper at linkstart{\@gobbletwo}
+   \providecommand\hyper at linkend{\@empty}
+  }
+%    \end{macrocode}
 %
-%    Prevent hyperref from redefining footnote stuff --- this is a
-%    temp solution.
+% It must be possible to suppress the hyperlinking, both locally
+% and globally. hyperref should set the boolean \cs{l_fnote_link_bool}.
+% For now we test for the hyperref boolean (so it can be suppressed only globally).
 %    \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:
-}
+\AtBeginDocument
+ {
+   \@ifpackageloaded{hyperref}
+     {
+       \legacy_if:nF{Hy at hyperfootnotes}{\bool_set_false:N \l_fnote_link_bool}
+     }
+     {
+       \bool_set_false:N \l_fnote_link_bool
+     }
+ }
+%    \end{macrocode}
+%
+% \subsection{Tagging and hyperlink code}
+% \subsubsection{Rolemap for structure tags}
+% We use role-mapping to get more speaking names
+% in the PDF and so ease debugging. These names are already
+% provided by tagpdf directly.
+%
+% \subsubsection{Extending the label system}
+% For \cs{footref} and (perhaps later for labeled footnotes)
+% we must extend the label system.
+% Beside the normal values we also need the structure number of the note.
+% We use the \pkg{nameref} hook until latex provides a hook for its label.
+% At first we define a suitable attribute, it uses as value the structure
+% number of the note as stored in \cs{l__fnote_currentstruct_tl}
+%    \begin{macrocode}
+\ref_attribute_gset:nnnn {fnote/struct}{1}{now}{\l_@@_currentstruct_tl}
+%    \end{macrocode}
+%
+% We add a hook to the \pkg{nameref} hook. By default it does nothing
+% \begin{macro}{\@@_label_hook:}
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_label_hook: {}
+\AddToHook{begindocument/before}
+  {
+    \RequirePackage{nameref}
+    \g at addto@macro\label at hook
+      {
+        \@@_label_hook:
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+% Inside a footnotetext we change the hook to store the structure number too.
+% nameref provides the name of label in \cs{label at name}.
+%    \begin{macrocode}
+\AddToHook{fntext/begin}
+ {
+   \cs_set_protected:Npn \@@_label_hook:
+    {
+      \ref_label:Vn \label at name {fnote/struct}
+    }
+ }
+%    \end{macrocode}
+%
+% \subsubsection{Storing and retrieving reference data}
+% To establish the connection between a mark and a note
+% the mark has to store its representation, and the
+% note has to analyse the stored representations to get
+% the structure numbers of its mark. This is done
+% with the public function to allow similar systems (e.g.
+% tabular notes, other footnote series) to make use of this.
+%
+%
+% \begin{macro}{\fnote_new:nn}
+% This sets up a new footnote type, the first argument
+% is the name, the second is meant for options. Currently
+% it does nothing at all.
+% It is not necessary to setup every footnote like
+% command as its own type!
+%
+%    \begin{macrocode}
+\cs_new_protected:Npn \fnote_new:nn #1 #2 % #1 name, #2 options
+ {
+   \prop_new:c { g_@@_currentmarks_ #1 _prop }
+ }
 
-
-
+\fnote_new:nn {default}{}
 %    \end{macrocode}
+% \end{macro}
 %
-% \subsection{Stuff that needs cleanup and documentation}
 %
+% \begin{macro}{\fnote_mark_gput:nn}
+% This commands takes as argument the representation of the mark
+% (e.g. \cs{@thefnmark} and the type (typically default should work)
 %    \begin{macrocode}
+\cs_new_protected:Npn \fnote_mark_gput:nn #1 #2 % #1 the representation of the mark, #2 type
+ {
+   \prop_gput:cxn { g_@@_currentmarks_ #2 _prop }
+     { \tag_get:n{struct_num} }
+     { #1 }
+ }
 
-
-%-------------------------------------
-
-% use of kerns to mark h-mode positions (unit sp)
+\cs_generate_variant:Nn \fnote_mark_gput:nn {no,oo}
+%    \end{macrocode}
+% \end{macro}
 %
-% 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
+% \begin{macro}{\fnote_mark_gpop:nnN}
+% This commands takes as argument the representation of the mark
+% (e.g. the content of\cs{@thefnmark}), the series (typically default should work)
+% and a sequence into which every structure number in the property
+% is stored that has the same value as the mark
+%    \begin{macrocode}
+\cs_new_protected:Npn \fnote_mark_gpop:nnN #1 #2 #3
+  {
+    \seq_clear:N #3
+    \prop_set_eq:Nc     \l_@@_tmpa_prop { g_@@_currentmarks_ #2 _prop }
+    \prop_map_inline:Nn \l_@@_tmpa_prop
+      {
+        \tl_if_eq:nnT {#1} { ##2 }
+          {
+%    \end{macrocode}
+% store the key (the structure number) in the seq
+%    \begin{macrocode}
+            \seq_put_right:Nn #3 { ##1 }
+%    \end{macrocode}
+% remove entry as used from the global prop
+%    \begin{macrocode}
+            \prop_gremove:cn { g_@@_currentmarks_ #2 _prop } {##1}
+          }
+      }
+  }
+\cs_generate_variant:Nn\fnote_mark_gpop:nnN  {ooN}
+%    \end{macrocode}
+% \end{macro}
 
-% 1-4 = polyglossia for korean
 
-%-------------------------------------
+% \subsubsection{Enabling tagging and links for the mark command}
+% To handle the mark in the text, we define a special command
+% which will surround \cs{@makefntext}.
+% At this time \cs{@thefnmark} is already set.
+%    \begin{macrocode}
+\cs_new_protected:Npn \tag at FEMark #1  %#1 content
+  {
+%    \end{macrocode}
+% end an open mc and start the structure.
+%    \begin{macrocode}
+    \tag_mc_end_push:
+    \tag_struct_begin:n { tag=footnotemark }
+%    \end{macrocode}
+%  The associated note is either auto detected
+%  or given by the user.
+%    \begin{macrocode}
+     \bool_if:NTF \l_@@_autodetect_bool
+      {
+%    \end{macrocode}
+%    For the auto detecting we store the structure number
+%    and \cs{@thefnmark} inside a prop and set
+%    the target name of the link to the current structure number.
+%    TODO: this should be usable for other footnote types
+%    which means the name of the prop shouldn't be fix.
+%    \begin{macrocode}
+        \fnote_mark_gput:oo {\@thefnmark}{\l_fnote_type_tl}
+        \tl_set:Nx \l_@@_linktarget_tl {footnote*.\tag_get:n{struct_num}}
+      }
+%    \end{macrocode}
+%  If there is no autodetecting we need some id,
+%  currently it is called \cs{l__fnote_currentlabel_tl}.
+%  the Ref is set by looking at the label value.
+%  We must also add the current structure number to the \ref of the FEnote.
+%  Both must be delayed as we don't know if the objects of the FEnote and the mark
+%  have already been created.
+%    \begin{macrocode}
+      {
+        \hook_gput_code:nne {tagpdf/finish/before} {tagpdf/footnote}
+         {
+           \exp_not:N\fnote_gput_refs:ee
+            { \tag_get:n{struct_num} }
+            { \ref_value:Vn\l_@@_currentlabel_tl {fnote/struct} }
+         }
+%    \end{macrocode}
+%    in this case we set the name of the linktarget in the note
+%    to the structure number of the text mark.
+%    \begin{macrocode}
+        \tl_set:Nx \l_@@_linktarget_tl {footnote*.\ref_value:Vn\l_@@_currentlabel_tl {fnote/struct}}
+      }
+%    \end{macrocode}
+% And now the actual content
+%    \begin{macrocode}
+     \tag_mc_begin:n{tag=Lbl}
+     %
+     \bool_if:NTF \l_fnote_link_bool
+      {
+        \exp_args:No
+           \hyper at linkstart
+           { \l_fnote_link_type_tl }
+           { \l_@@_linktarget_tl }
+           #1
+           \hyper at linkend
+      }
+      { #1 }
+    \tag_mc_end:
+    \tag_struct_end:
+    \tag_mc_begin_pop:n{}
+   }
+%    \end{macrocode}
+% At last set the kernel command to this one
+%    \begin{macrocode}
+\cs_set_eq:NN \@kernel at process@makefnmark \tag at FEMark
+%    \end{macrocode}
 
+% \subsubsection{The footnote text}
 
+% We need a public command to append values to the Ref keys
+% \begin{macro}{\@@_gput_ref:nn,\fnote_gput_refs:nn,\fnote_gput_refs:ee}
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_gput_ref:nn #1 #2 %#1 the structure number receiving the ref #2
+  {
+    \tag_if_active:T
+      {
+        \tag_struct_gput:nne {#1}{ref}{\tag_struct_object_ref:e { #2 }}
+      }
+  }
+\cs_new_protected:Npn \fnote_gput_refs:nn #1 #2 % pair of numbers
+  {
+    \@@_gput_ref:nn {#1}{#2}
+    \@@_gput_ref:nn {#2}{#1}
+  }
+\cs_generate_variant:Nn \fnote_gput_refs:nn {ee}
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+\tl_new:N \l_@@_dflt_struct_tl
+\tl_set:Nn \l_@@_dflt_struct_tl {1}
+%    \end{macrocode}
+% kernel hook for tagging (2 args)
+% this sets the structure around the whole text
+%
+%    \begin{macrocode}
+\cs_new_protected:Npn \tag at FENote #1#2 % #1 config point, \insert\footins  #2 content
+  {
+    \tag_mc_end_push:
+%    \end{macrocode}
+% test if a footnote is allowed, if not move up to the document structure.
+%    \begin{macrocode}
+    \tag_check_child:nnTF {FENote}{pdf2}
+      { 
+        \tag_struct_begin:n { tag=footnote }
+      }
+      {  
+        \tag_struct_begin:n { tag=footnote,parent=\l_@@_dflt_struct_tl }
+      }  
+%    \end{macrocode}
+% Store the current structure number for labels.
+%    \begin{macrocode}
+    \tl_set:Nx \l_@@_currentstruct_tl { \tag_get:n{struct_num} }
+%    \end{macrocode}
+% We want to move the label structure here. So we provide a container
+% It number is |\l__fnote_currentstruct_tl| plus 1.
+%    \begin{macrocode}
+    \tag_struct_begin:n { tag=footnotelabel }\tag_struct_end:
+%    \end{macrocode}
+% after we have opened the structure we can use the structure number to
+% try to detect the connected marks. As with the marks we assume that sometimes
+% no auto detection is done.
+%    \begin{macrocode}
+    \bool_if:NTF \l_@@_autodetect_bool
+      {
+%    \end{macrocode}
+% find open marks with identical \cs{@thefnmark}
+%    \begin{macrocode}
+        \fnote_mark_gpop:ooN { \@thefnmark }{ \l_fnote_type_tl } \l_@@_currentrefs_seq
+%    \end{macrocode}
+% Then we store the object numbers of the marks in the /Ref of the FENote structure:
+% and the number of the FEnote into the marks structure:
+%    \begin{macrocode}
+       \seq_map_inline:Nn \l_@@_currentrefs_seq
+         {
+           \fnote_gput_refs:ee {##1}{ \l_@@_currentstruct_tl }
+         }
+      }
+%    \end{macrocode}
+% If no auto detection is done
+% \begin{NOTE}{UF}
+% TODO: decide what to do here: some label in the optional argument?
+% or refer to \cs{footref}
+% \end{NOTE}
+%    \begin{macrocode}
+      {%no auto
 
-%-------------------------------------
-%  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} }{}
+      }
+%    \end{macrocode}
+% This finish the setup of the tagging structure.
+% Now we process the text. The destinations for the links are set with the label
+% so that we can be sure that we are in hmode.
+%    \begin{macrocode}
+      #1 {#2}
+    \tag_struct_end:
+    \tag_mc_begin_pop:n{}
+  }
+%    \end{macrocode}
+% At last set the kernel command to this one
+%    \begin{macrocode}
+\cs_set_eq:NN \@kernel at process@footnotetext \tag at FENote
+%    \end{macrocode}
+%
+% \cs{@makefntext at cfgpoint} is the configuration point responsible for
+% typesetting the mark in the note. We use it to surround
+% the mark with the needed tagging commands.
+%
+% TODO check if this should/can be kernel configuration points
+% or if an additional kernel configuration points are needed.
+% If yes, what about the paragraph start and the paratagging??
+%
+%    \begin{macrocode}
+\cs_set_protected:Npn \@makefntext at cfgpoint #1 %#1 code that typesets the mark.
+  {
+    \noindent
+    \tag_mc_end_push:
+    \tag at FENoteLbl { #1 }
+    \tag_mc_begin_pop:n{}
+  }
+%    \end{macrocode}
+% \cs{tag at FENoteLbl} creates the label in the note on the bottom.
+% It also adds link targets for the hyperlinking.
+%
+% \begin{macro}{\tag at FENoteLbl}
+%    \begin{macrocode}
+\cs_new_protected:Npn \tag at FENoteLbl #1
+  {
+%    \end{macrocode}
+% We create a link target for every related mark. The name is footnote* + structure number
+% of the mark. We also add a link target for the current structure (for footref)
+%    \begin{macrocode}
+     %\seq_show:N\l_@@_currentrefs_seq
+     \seq_map_inline:Nn\l_@@_currentrefs_seq {\MakeLinkTarget*{footnote*.##1}}
+     \MakeLinkTarget*{footnote*.\l_@@_currentstruct_tl}
+%    \end{macrocode}
+% now we add the tagging commands. We move the structure of the label to
+% to the container at the begin of the note.
+% \begin{NOTE}{UF}
+% check if the NonStruct is really needed. Perhaps we can simply move the mc.
+% \end{NOTE}
+%    \begin{macrocode}
+     \tag_struct_begin:n { tag=NonStruct,parent=\l_@@_currentstruct_tl +1 }
+      \tag_mc_begin:n { tag=Lbl }
        #1
-      \IfPackageLoadedTF{hyperref}{ \hyper at linkend }{}
       \tag_mc_end:
-      \tag_struct_end:
-      \tag_mc_begin_pop:n{}
-     }
-     { #1 }
-}
-
-% to be done next round around:
+     \tag_struct_end:
+  }
+%    \end{macrocode}
+% \end{macro}
 %
-% \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 }
-}
- 
+%  \cs{@makefntext at cfgpointii} is the
+%  configuration point around the actual note text.
+%
+%  TODO check if this should/can be kernel configuration points
+%    \begin{macrocode}
+\cs_set_protected:Npn \@makefntext at cfgpointii #1
+  {
+    \tag_mc_end_push:
+    \tag at FENotetext { #1 }
+    \tag_mc_begin_pop:n{}
+  }
+%    \end{macrocode}
+% \begin{macro}{\tag at FENotetext}
+%
+% This command currently only adds an MC chunk,
+%
+% TODO Should it set a mc or could it rely on the content?
+%    \begin{macrocode}
+\cs_new_protected:Npn \tag at FENotetext #1
+  {
+    \tag_mc_begin:n{}
+    #1
+    \tag_mc_end:
+  }
+%    \end{macrocode}
+% \end{macro}
 %-------------------------------------
 
-
+%    \begin{macrocode}
 \ExplSyntaxOff
 %</kernel>
 %    \end{macrocode}
+%    \begin{macrocode}
+%<@@=>
+%    \end{macrocode}
 %
-%
 % \section{Reimplementing the \pkg{footmisc} package}
 %
 %    \begin{macrocode}
@@ -1571,7 +2296,10 @@
 
 \ifFN at multiplefootnote
   \providecommand*{\multiplefootnotemarker}{3sp}
-  \providecommand*{\multfootsep}{,}
+% we tag the separator as artifact
+  \ExplSyntaxOn
+  \providecommand*{\multfootsep}{\tag_mc_end_push:\tag_mc_begin:n{artifact},\tag_mc_end:\tag_mc_begin_pop:n{}}
+  \ExplSyntaxOff
   \AddToHook{fnmark}      {\FN at mf@check}
   \AddToHook{fnmark/end}  {\FN at mf@prepare}
 %

Added: trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-mathpkg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-mathpkg.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-mathpkg.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,102 @@
+% \iffalse meta-comment
+%
+%% File: latex-lab-mathpkg.dtx
+%
+% Copyright (C) 2022,2023 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-mathpkg.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+%
+% \title{The \texttt{latex-lab-mathpkg} code\thanks{}}
+% \author{\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}
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Introduction}
+%
+% This file implements adaptions to various math packages needed for 
+% the tagging project. 
+%
+% \MaybeStop{\setlength\IndexMin{200pt}  \PrintIndex  }
+%
+% \section{The Implementation}
+%
+%    \begin{macrocode}
+%<@@=math>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%<*kernel>
+%    \end{macrocode}
+%
+% \subsection{File declaration}
+%    \begin{macrocode}
+\ProvidesFile{latex-lab-mathpkg.ltx}
+        [2023-01-05 v0.1a mathpkg adaptions]
+%    \end{macrocode}
+% \subsection{Tagpdf support}
+% To make the code independent from tagging being loaded and active
+% we load the \pkg{tagpdf-base} package:
+%
+%    \begin{macrocode}
+\RequirePackage{tagpdf-base}
+%    \end{macrocode}
+% 
+%
+%    \begin{macrocode}
+\AddToHook{package/breqn/after}{
+   \RegisterMathEnvironment{dmath}
+   \RegisterMathEnvironment{dgroup*}
+   \AddToHook{env/dmath/begin}{\tagpdfparaOff}
+   \AddToHook{env/dgroup*/begin}{\tagpdfparaOff}
+}
+%    \end{macrocode}
+%
+% Force loading of \pkg{amsmath} before \pkg{cases}.
+%    \begin{macrocode}
+\AddToHook {package/cases/before}{\RequirePackage{amsmath}}
+\AddToHook{package/cases/after}{
+  \RegisterMathEnvironment{subnumcases}
+}  
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+%</kernel>
+%    \end{macrocode}
+% \subsection{Wrapper files for testphase key}
+% \Finale
+%


Property changes on: trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-mathpkg.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-mathtagging.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-mathtagging.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-mathtagging.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,1277 @@
+% \iffalse meta-comment
+%
+%% File: latex-lab-mathtagging.dtx
+%
+% Copyright (C) 2022-2023 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.
+%
+%
+\def\ltmathtaggingdate{2023-03-08}
+\def\ltmathtaggingversion{v0.5a}
+%
+%<*driver>
+\documentclass{l3doc}
+\EnableCrossrefs
+\CodelineIndex 
+
+\usepackage{todonotes}
+
+\begin{document}
+  \DocInput{latex-lab-mathtagging.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+%
+% \title{The \texttt{latex-lab-mathtagging} code\thanks{}}
+% \author{Frank Mittelbach, Joseph Wright, \LaTeX{} Project}
+%
+% \maketitle
+%
+% \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}}
+%
+% ^^A \car {...} for marginal comments
+% ^^A \car*{...} for longer inline comments
+%
+% \NewDocumentCommand\car{sO{}m}
+%   {\IfBooleanTF{#1}{\todo[inline,color=blue!10,#2]{#3}}^^A
+%                    {\todo[color=blue!10,#2]{#3}}}
+%
+% \NewDocumentCommand\fmi{sO{}m}
+%   {\IfBooleanTF{#1}{\todo[inline,#2]{#3}}^^A
+%                    {\todo[#2]{#3}}}
+%
+%
+%
+% \begin{abstract}
+%    This is an experimental prototype. It captures math material
+%    (basically okay, but the interfaces for packages aren't yet
+%    there) and tags the material (which is not yet anywhere near the
+%    final state). That part is provided for experimentation and to
+%    gather feedback, etc.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Introduction}
+% \car*{Todo: update all the documentation! Both here and 
+%   (what little there is!) in the implementation section.}
+%
+% This file implements capture of all math mode material at the outer
+% level, i.e., a formula is captured in its entirety with inner text
+% blocks (possibly containing further math) absorbed as part of the
+% formula. For example,
+%\begin{verbatim}
+%      \[ a \in A \text{ for all $a<5$}  \]
+%\end{verbatim}
+% would only result in a single capture of the tokens
+% ``\verb*/a \in A \text{ for all $a<5$}/''.
+%
+% \subsection{Code level interfaces}
+%
+% \begin{function}{\math_register_env:n, \math_register_env:nn}
+%   \begin{syntax}
+%     \cs{math_register_env:n} \Arg{env}
+%     \cs{math_register_env:nn} \Arg{env} \Arg{options}
+%   \end{syntax}
+%   Registers the \meta{env} as a math environment which should be captured
+%   and made available. This is necessary for all top-level math mode
+%   environments: low-level errors may result if these are not correct
+%   set up. One or more key--value \meta{options} may also be given:
+%   \begin{itemize}
+%     \item[\texttt{arg-spec}] The argument specification taken by the
+%       beginning of the environment; this is used to remove non-mathematical
+%       material.
+%   \end{itemize}
+% \end{function}
+%
+% \begin{function}{\math_processor:n}
+%   \begin{syntax}
+%     \cs{math_processor:n} \Arg{tokens}
+%   \end{syntax}
+%   Declares that the captured math content should be passed to the
+%   \meta{tokens}, which will receive the environment type as |#1| and
+%   the content as |#2|.
+% \end{function}
+%
+% \subsection{Document level interfaces}
+%
+% \begin{function}{\RegisterMathEnvironment}
+%   \begin{syntax}
+%     \cs{RegisterMathEnvironment} \oarg{options} \Arg{env}
+%   \end{syntax}
+%   Registers the \meta{env} as a math environment which should be captured
+%   and made available. This is necessary for all top-level math mode
+%   environments: low-level errors may result if these are not correct
+%   set up. One or more key--value \meta{options} may also be given:
+%   \begin{itemize}
+%     \item[\texttt{arg-spec}] The argument specification taken by the
+%       beginning of the environment; this is used to remove non-mathematical
+%       material.
+%   \end{itemize}
+% \end{function}
+% 
+% \section{Known current bugs, etc.}
+%     \car*{New Section, now with subsections.\\
+%      As indicated, these lists are probably incomplete.\\
+%      Some of these have been addressed in a more recent branch.} 
+%
+% \subsection{Capture/grabbing problems}
+% 
+% \begin{enumerate}
+%   \item Incorrect grabbing of |$|-math when there is also 
+%      explicit |$|-math within a \textit{text environment} 
+%      that is itself within the math that should all be grabbed.
+%   \item Similar incorrect grabbing with |$$| also.
+%   \item The grabbing, for all the display environments (and |\) \]|), needs
+%       to deal with nesting: \pkg{amsmath} contains code for this. 
+%   \item 
+% \end{enumerate} 
+%
+% \subsection{Other problems}
+% 
+% \begin{enumerate} 
+%   \item 
+%      The presence of \cs{m at th} in association with \cs{ensuremath} 
+%      does not necessarily indicate fakemath.  This is because  
+%      wanting mathsurround to be zero is very reasonable and common, 
+%      \emph{even when the math is genuine} (and hence needs to be collected).
+%   \item User-defined environments can create problems; but this area, of 
+%      new, copied and changed environments, has not yet been developed. 
+% 
+%  \car*{Joseph wrote, inter alia:\\
+%      My thinking [regarding] \cs{RegisterMathEnvironment}\\
+%    - (New) Math environments should not be created-then-patched, but only
+%    generated by a [(future)] dedicated command (\cs{DeclareMathEnviornment}, 
+%    presumably)\\
+%    - Math environments created with \pkg{ltcmd} [commands] should not be copied, . . .\\
+%    - Package authors should be able to manually set up math environments with a public boolean.}
+%
+%   \item 
+% \end{enumerate} 
+%
+%
+% \subsection{Other ToDos}
+%
+% \begin{enumerate}
+%  \item Add (some of) the math display commands that were \enquote{lifted from 
+%    plain}, e.g., \cs{displaylines} \cs{eqalign}(??).
+%  \item 
+% \end{enumerate}
+%
+%
+% \car*{\cs{MaybeStop} (temporarily) not executed, as it is unknown on Chris' system.}
+% \iffalse
+%  \MaybeStop{\setlength\IndexMin{200pt}  \PrintIndex  }
+% \else
+%  \StopEventually{\setlength\IndexMin{200pt}  \PrintIndex  }
+% \fi
+%
+% \section{The Implementation}
+%
+%    \begin{macrocode}
+%<@@=math>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%<*kernel>
+%    \end{macrocode}
+%
+% \subsection{File declaration}
+%
+%    \car{Change description here?}
+%    \begin{macrocode}
+\ProvidesFile{latex-lab-mathtagging.ltx}
+             [\ltmathtaggingdate\space
+              \ltmathtaggingversion\space
+              Grab all the math(s) and tag it (experiments)]
+%    \end{macrocode}
+%
+%    Temp loading \ldots
+%    \begin{macrocode}
+\AddToHook{begindocument/before}{\RequirePackage{latex-lab-testphase-block-tagging}}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\ExplSyntaxOn
+%    \end{macrocode}
+%
+% \subsection{Setup}
+%
+% Loading \pkg{amsmath} is an absolute requirement: this avoids needing to
+% have conditional definitions and deals with how to define \cs{[}/\cs{]}
+% neatly.
+%    \begin{macrocode}
+\tl_gput_right:Nn \@kernel at before@begindocument
+  { \RequirePackage { amsmath } }
+%    \end{macrocode} 
+%
+%
+% \subsection{Data structures}
+%
+%
+%
+% \begin{variable}{\l_@@_collected_bool} 
+%   Tracks whether math mode material has been collected, which happens inside
+%   \pkg{amsmath} environments as well as those handled directly here.
+%
+%
+%    \begin{macrocode}
+\bool_new:N \l_@@_collected_bool
+%    \end{macrocode}
+% \end{variable}
+% 
+%  \car{Change first tl name below: `env' $=>$ `info'?\\
+%        Or do we need an extra storage tl?}
+%
+% \begin{variable}{\g_@@_grabbed_env_tl, \g_@@_grabbed_math_tl}
+%    \begin{macrocode}
+\tl_new:N \g_@@_grabbed_env_tl
+\tl_new:N \g_@@_grabbed_math_tl
+%    \end{macrocode}
+% \end{variable}
+%
+% \subsection{Interface commands}
+%
+% \begin{macro}
+%   {\@@_process:nn, \@@_process:Vn, \@@_process_auxi:nn, \@@_process_auxii:nn}
+%   A no-op place-holder; the internal wrapper means that it does not need to
+%   be concerned with internals.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_process:nn #1#2
+  {
+    \legacy_if:nF { measuring@ }
+      {
+        \tl_if_in:nnF {#2} { \m at th }
+          { \tl_trim_spaces_apply:nN {#2} \@@_process_auxi:nn {#1} }
+      }
+  }
+\cs_generate_variant:Nn \@@_process:nn { V }
+\cs_new_protected:Npn \@@_process_auxi:nn #1#2
+  {
+    \tl_gset:Nn \g_@@_grabbed_env_tl {#2}
+    \tl_gset:Nn \g_@@_grabbed_math_tl {#1}
+    \@@_process_auxii:nn {#2} {#1}
+  }
+\cs_new_protected:Npn \@@_process_auxii:nn #1#2 { }
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\math_processor:n}
+%   A simple installer
+%    \begin{macrocode}
+\cs_new_protected:Npn \math_processor:n #1
+  { \cs_set_protected:Npn \@@_process_auxii:nn ##1##2 {#1} }
+%    \end{macrocode}
+% \end{macro}
+%
+% \subsection{Content grabbing}
+%
+% \begin{macro}{\@@_grab_dollar:w}
+%   Grab up to a single |$|, for inline math mode, suppressing
+%   any processing if the first token is \tn{m at th}.
+%
+%    \fmi{what's that test doing?} 
+%
+%    \car{It is some kind of fix, to avoid the remote 
+%      possibility that the math is empty, making the code 
+%      produce an unwanted \texttt{\$\$}.} 
+% 
+%\car{cf.~the code for this in \cs{@ensuredmath}} 
+%
+%\car{It is harmless but unnecessary in the dollardollar grabbing below.}
+%
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_grab_dollar:w % $
+  #1 $
+  {
+%    \end{macrocode}
+%    \fmi{what's that test doing?}
+%    \begin{macrocode}
+    \tl_if_blank:nF {#1}
+      {
+        \@@_process:nn { math } {#1} % $
+% fairly simple this one
+        \tagmcend %end P-chunk, in code: \tag_mc_end_push:
+        \@kernel at math@begin
+        #1 $
+        \@kernel at math@end
+        \tagmcbegin{}  % restart P-chunk (whatsits in pdftex)
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_grab_dollardollar:w}
+%   And for the classical \TeX{} display structure.
+%    \begin{macrocode}
+
+\skip_new:N \l_@@_tmpa_skip
+  
+\cs_new_protected:Npn \@@_grab_dollardollar:w % $$
+  #1 $$
+  {
+    \tl_if_blank:nF {#1}
+      {
+        \@@_tag_dollardollar_display:nn { equation* }{#1}
+        #1
+        $$
+      }
+  }
+
+\cs_new_protected:Npn \@kernel at close@P {
+  \tagmcend %end P-chunk, in code: \tag_mc_end_push:
+        \int_gincr:N \g__tag_para_end_int
+        \bool_if:NT \l__tag_para_show_bool
+          { \tag_mc_begin:n{artifact}
+            \rlap{\color_select:n{red}\tiny\ \int_use:N\g__tag_para_end_int}
+            \tag_mc_end:
+          }
+        \tag_struct_end:
+}
+  
+
+
+\cs_new_protected:Npn \@@_tag_dollardollar_display:nn #1#2 {
+  \@@_process:nn {#1} {#2}
+  \@kernel at close@P
+  \@kernel at math@begin
+%        \skip_set:Nn \belowdisplayskip      {-\belowdisplayskip}
+%        \skip_set:Nn \belowdisplayshortskip {-\belowdisplayshortskip}
+%        \int_set:Nn \postdisplaypenalty {10000}
+%%
+%        \group_insert_after:N \@@_tag_dollardollar_display_end:
+}
+
+\cs_new_protected:Npn \@@_tag_dollardollar_display_end: {
+%  \typeout{== tag dollarldollar display end}
+%  \ShowTagging{struct-stack}
+  \tagpdfparaOff
+  \para_raw_end:
+  \tagpdfparaOn
+  \l_@@_tmpa_skip \lastskip  
+  \@kernel at math@end
+  \penalty \postdisplaypenalty
+  \skip_vertical:n { -\l_@@_tmpa_skip }
+%
+  \@doendpe             % this has no \end{...} to take care of it
+}
+
+
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@@_grab_inline:w}
+%   Collect inline math content and deal with the need to move to math mode.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_grab_inline:w % \(
+  #1 \)
+  {
+    \tl_if_blank:nF {#1}
+      {
+        \@@_process:nn { math } {#1}
+        $ #1 $
+      }
+    \bool_set_false:N \l_@@_collected_bool
+  }
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_grab_eqn:w}
+%   For the most common use of \cs{[}/\cs{]}: turn into an environment.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_grab_eqn:w % \[
+  #1 \]
+   {
+%     \typeout{collected? = \bool_if:NTF \l_@@_collected_bool {true}{false}}
+     \begin { equation* } #1 \end { equation* }
+   }
+%    \end{macrocode}
+% \end{macro}
+%
+% \subsection{Marking math environments}
+%
+% A general mechanism for math mode environments that do not grab their
+% content (\emph{cf.}~most \pkg{amsmath} environments).
+%
+% \begin{variable}{\l_@@_env_name_tl}
+%  To allow us to carry out \enquote{special effects}
+%    \begin{macrocode}
+\tl_new:N \l_@@_env_name_tl
+%    \end{macrocode}
+% \end{variable}
+%
+% Here we set up specialised handling of environments. The idea for the
+% \texttt{arg-spec} key is that if an environment takes arguments, we
+% don't worry during the main grabbing. Rather, we remove the arguments
+% from the grabbed content and forward only the payload. That is done by
+% (ab)using \pkg{ltcmd}.
+%    \begin{macrocode}
+\keys_define:nn { @@ }
+  {
+     arg-spec .code:n =
+       {
+         \ExpandArgs { c } \DeclareDocumentCommand
+           { @@_env \l_@@_env_name_tl _aux: }
+           {#1}
+           { \@@_env_forward:w }
+       }
+  }
+%    \end{macrocode}
+%
+% \begin{macro}{\math_register_env:nn}
+% \begin{macro}{\math_register_env:n}
+% \begin{macro}{\RegisterMathEnvironment}
+%   Set up to capture environment content and make available.
+% 
+%    \begin{macrocode}
+\cs_new_protected:Npn \math_register_env:nn #1#2
+  {
+    \tl_set:Nn \l_@@_env_name_tl {#1}
+    \keys_set:nn { @@ } {#2}
+    \cs_gset_eq:cc { @@_env_ #1 _begin: } {#1}
+    \cs_gset_eq:cc { @@_env_ #1 _end: } { end #1 }
+%
+    \ExpandArgs { nnx } \RenewDocumentEnvironment {#1} { b }
+      {
+%        \bool_set_true:N \exp_not:N \l_@@_collected_bool
+%        \cs_if_exist:cTF { @@_env #1 _aux: }
+%          {
+%            \exp_not:c { @@_env #1 _aux: }
+%              ####1 \exp_not:N \@@_env_end: {#1}
+%          }
+%          { \exp_not:N \@@_process:nn {#1} {####1} }
+        \exp_not:N \bool_if:NTF \exp_not:N \l_@@_collected_bool
+          {
+%            \typeout{===>B1}
+          }
+          {
+%            \typeout{===>B2}
+            \cs_if_exist:cTF { @@_env #1 _aux: }
+              {
+                \exp_not:c { @@_env #1 _aux: }
+                  ####1 \exp_not:N \@@_env_end: {#1}
+              }
+              { \exp_not:N \@@_process:nn {#1} {####1} }
+            \exp_not:n { \@kernel at math@registered at begin }
+            \bool_set_true:N \exp_not:N \l_@@_collected_bool
+          }
+%        \exp_not:N \tracingall  
+        \exp_not:c { @@_env_ #1 _begin: }
+        ####1
+        \exp_not:c { @@_env_ #1 _end: }
+%        \exp_not:c { @@_env_ #1 _end: }
+%        \exp_not:N \tracingnone
+%        \exp_not:n { \@kernel at math@registered at end }
+     }
+      {
+      }
+  }
+
+\cs_set_protected:Npn \__cs_tmp:w #1
+  {
+    \group_begin:
+      \exp_args:No \__cs_generate_internal_variant:n
+        { \tl_to_str:n {#1} }
+    \group_end:
+  }
+\__cs_tmp:w { nnxx }
+  
+  
+\cs_new_protected:Npn \math_register_halign_env:nn #1#2
+  {
+    \tl_set:Nn \l_@@_env_name_tl {#1}
+    \keys_set:nn { @@ } {#2}
+    \cs_gset_eq:cc { @@_env_ #1 _begin: } {#1}
+    \cs_gset_eq:cc { @@_env_ #1 _end: } { end #1 }
+%
+    \ExpandArgs { nnxx } \RenewDocumentEnvironment {#1} { b }
+      {
+%        \bool_set_true:N \exp_not:N \l_@@_collected_bool
+%        \cs_if_exist:cTF { @@_env #1 _aux: }
+%          {
+%            \exp_not:c { @@_env #1 _aux: }
+%              ####1 \exp_not:N \@@_env_end: {#1}
+%          }
+%          { \exp_not:N \@@_process:nn {#1} {####1} }
+        \exp_not:N \bool_if:NTF \exp_not:N \l_@@_collected_bool
+          {
+%            \typeout{===>B1}
+          }
+          {
+%            \typeout{===>B2}
+            \cs_if_exist:cTF { @@_env #1 _aux: }
+              {
+                \exp_not:c { @@_env #1 _aux: }
+                  ####1 \exp_not:N \@@_env_end: {#1}
+              }
+              { \exp_not:N \@@_process:nn {#1} {####1} }
+            \exp_not:n { \@kernel at math@registered at begin }
+            \bool_set_true:N \exp_not:N \l_@@_collected_bool
+          }
+%        \exp_not:N \tracingall  
+        \exp_not:c { @@_env_ #1 _begin: }
+        ####1
+%        \exp_not:c { @@_env_ #1 _end: }
+%        \exp_not:N \tracingnone
+     }
+      {
+        \exp_not:c { @@_env_ #1 _end: }
+      }
+  }
+
+\cs_new_protected:Npn \math_register_odd_env:nn #1#2
+  {
+    \tl_set:Nn \l_@@_env_name_tl {#1}
+    \keys_set:nn { @@ } {#2}
+    \cs_gset_eq:cc { @@_env_ #1 _begin: } {#1}
+    \cs_gset_eq:cc { @@_env_ #1 _end: } { end #1 }
+%
+    \ExpandArgs { nnxx } \RenewDocumentEnvironment {#1} { b }
+      {
+        \exp_not:N \bool_if:NTF \exp_not:N \l_@@_collected_bool
+          {
+%            \typeout{===>B1}
+          }
+          {
+%            \typeout{===>B2}
+            \cs_if_exist:cTF { @@_env #1 _aux: }
+              {
+                \exp_not:c { @@_env #1 _aux: }
+                  ####1 \exp_not:N \@@_env_end: {#1}
+              }
+              { \exp_not:N \@@_process:nn {#1} {####1} }
+            \exp_not:n { \@kernel at math@registered at begin }
+            \bool_set_true:N \exp_not:N \l_@@_collected_bool
+          }
+%        \exp_not:N \tracingall  
+        \exp_not:c { @@_env_ #1 _begin: }
+        ####1
+     }
+      {
+        \exp_not:c { @@_env_ #1 _end: }
+% needed if we don't have $$...$$        
+%        \exp_not:n { \typeout{---> @kernel at math@registered at end }}
+        \exp_not:n { \@kernel at math@registered at end }
+      }
+  }
+
+
+%  FMi: compare with block change!
+%
+%  \DeclareRobustCommand*\begin[1]{%
+%  \UseHook{env/#1/before}%
+%  \@ifundefined{#1}%
+%    {\def\reserved at a{\@latex at error{Environment #1 undefined}\@eha}}%
+%    {\def\reserved at a{\def\@currenvir{#1}%
+%        \edef\@currenvline{\on at line}%
+%        \@execute at begin@hook{#1}%
+%        \csname #1\endcsname}}%
+%  \@ignorefalse
+%  \begingroup
+%  \@endpefalse  % tmp!!! is it ok to drop this here?
+%  \reserved at a}
+
+
+\cs_new:Npn \@kernel at math@registered at begin {
+%  \ShowTagging{struct-stack} 
+%\typeout{==>A1}\ShowTagging{struct-stack,mc-current}
+  \mode_if_vertical:TF
+       {
+%         \legacy_if:nTF { @endpe }
+%           { \legacy_if_set_false:n { @endpe } }
+%           { \__block_list_beginpar_vmode: }
+%
+%         \typeout{==>~ at:~ \g__tag_struct_tag_tl}
+%         
+         \exp_args:Noo\str_if_eq:nnF \g__tag_struct_tag_tl { \l__tag_para_main_tag_tl }    % needs correction!
+             {
+%               \typeout{==>A2}
+               \__block_beginpar_vmode:
+             }              % needs correction!
+       }
+       {
+%         \typeout{==>A3}
+         \@kernel at close@P
+%         \tagmcend                      % needs correction!
+       }
+  \@kernel at math@begin
+  \tagpdfparaOff
+%  \typeout{==>MC1}\ShowTagging{mc-current}
+}
+
+\cs_new:Npn \@kernel at math@registered at end {
+%  \typeout{==>MC2}\ShowTagging{mc-current}
+  \para_raw_end:
+  \tagpdfparaOn
+  \@kernel at math@end
+%  \typeout{==>MC3}\ShowTagging{mc-current}
+  \@endpetrue
+}
+  
+\cs_new_protected:Npn \math_register_env:n #1
+  { \math_register_env:nn {#1} { } }
+\NewDocumentCommand \RegisterMathEnvironment { O{} m }
+  { \math_register_env:nn {#2} {#1} }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@@_env_forward:w}
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_env_forward:w #1 \@@_env_end: #2 
+  { \@@_process:nn {#2} {#1} }
+%    \end{macrocode}
+% \end{macro}
+% 
+% \subsection{Document commands} 
+%
+% \car*{Add one more here: \texttt{displaymath}, which
+%        is equivalent to \cs{[} , \cs{]}\\
+%        and hence to the basic \texttt{equation*}.\\
+%       Added in more recent branch.}
+%
+% \begin{macro}
+%   {\equation, \@@_equation_begin:, \equation*, \@@_equation_star_begin:}
+% \begin{macro}
+%   {\endequation, \@@_equation_end:, \endequation*, \@@_equation_star_end:}
+%   These environments are not set up by \pkg{amsmath} to collect their body,
+%   so we do that here. This has to be done \emph{after} we can be sure
+%   \pkg{amsmath} is loaded.
+%
+% \car*{Note that with \pkg{amsmath} loaded, \texttt{equation*} and \texttt{equation}\\
+%        are the two basics: they are used to define the other single-row\\
+%        display environments, etc.}
+%
+%    \begin{macrocode}
+\tl_gput_right:Nn \@kernel at before@begindocument
+  {
+    \math_register_env:n { equation }
+    \math_register_env:n { equation* }
+% at the moment register_env can only do display math
+%    \math_register_env:n { math }
+    \RenewDocumentEnvironment{math} {b}{$#1$}{}
+% and this one doesn't work either    
+%    \math_register_env:n { displaymath }
+    \RenewDocumentEnvironment{displaymath} {b}{\[#1\]}{}    
+  }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\(, \)}
+%  If math mode has not been collected, we need to  do that; otherwise, worry
+%  about whether we are in math mode or not. The closing command here can only
+%  occur inside a collected math block: otherwise it will be simply used as
+%  a delimiter.
+%    \begin{macrocode}
+\cs_gset_protected:Npn \( % \)
+  {
+    \bool_if:NTF \l_@@_collected_bool
+      {
+        \mode_if_math:TF
+          { \@badmath }
+          { $ }
+      }
+      {
+        \bool_set_true:N \l_@@_collected_bool
+        \@@_grab_inline:w
+      }
+  } % \(
+\cs_gset_protected:Npn \)
+  {
+    \mode_if_math:TF
+      { $ }
+      { \@badmath }
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\[, \]}
+%   Again, we need to watch for when \pkg{amsmath} is loaded after this code.
+%   The flag usage here is to cover the case where \cs{[}/\cs{]} is hidden
+%   inside another environment. In this case the grabbing happens on
+%    the outer level and should not be repeated.
+%    \begin{macrocode}
+\tl_gput_right:Nn \@kernel at before@begindocument
+  {
+    \cs_gset_protected:Npn \[ % \]
+       {
+        \bool_if:NTF \l_@@_collected_bool
+          { \begin { equation* } }
+          { \@@_grab_eqn:w }
+      } % \[
+    \cs_gset_protected:Npn \]
+      {
+        \bool_if:NTF \l_@@_collected_bool
+          { \end{ equation* } }
+          { \@badmath }
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+% 
+%
+% \begin{macro}{\ensuremath}
+%   A bit of nesting fun to make sure we collect only if required.
+%   \fmi{why does ensuremath need handling at all?}
+% 
+%   \car{Indeed!  Currently, this is setup to process the math that 
+%     it has anyways already captured as its argument; thus it is more 
+%     efficient than leaving the capture to be repeated by the \cs{everymath}}
+% 
+%    \begin{macrocode}
+%\cs_gset_protected:Npn \ensuremath #1
+%  {
+%    \mode_if_math:TF
+%      {#1}
+%      {
+%        \bool_if:NTF \l_@@_collected_bool
+%          { \@ensuredmath {#1} }
+%          {
+%            \bool_set_true:N \l_@@_collected_bool
+%            \@@_process:nn { math } {#1}
+%            \@ensuredmath {#1}
+%            \bool_set_false:N \l_@@_collected_bool
+%          }
+%      }
+%  }
+%    \end{macrocode}
+% \end{macro}
+%
+% \subsection{\cs{everymath} and \cs{everydisplay}}
+%
+% The business end for grabbing inline math and \enquote{raw} \TeX{}
+% display. Most display math mode is actually handled elsewhere, as we
+% have macro control.
+%    \begin{macrocode}
+
+\tl_new:N\tmpmathcontent
+
+  
+\def\@kernel at math@begin {
+%  \typeout{==>~math~begin}
+% needs different handling if we support nesting
+  \tl_gset:Nx\tmpmathcontent
+     {\exp_not:N\begin{\g__math_grabbed_env_tl}
+       \space
+       \exp_not:V\g__math_grabbed_math_tl
+       \space
+       \exp_not:N\end{\g__math_grabbed_env_tl} 
+    }
+  \tagstructbegin{tag=Formula,
+    AFinline-o=\tmpmathcontent,
+    title-o=\g__math_grabbed_env_tl,
+    actualtext=\tmpmathcontent
+%    alt=\tmpmathcontent
+  }
+% inner formula if multiple parts (not really implemented yet)
+  \grabaformulapartandstart
+% the above does:  
+%    \tagstructbegin{tag=Formula}\tagmcbegin{}
+%  or just
+% \tagmcbegin{}
+}
+\def\@kernel at math@end {
+%  \typeout{==>~math~end}
+%  \ShowTagging{struct-stack}
+  \tagmcend
+  \if at subformulas
+    \tagstructend
+  \else
+  \fi
+  \tagstructend
+%  \ShowTagging{struct-stack} 
+}
+  
+\exp_args:No \tex_everymath:D
+  {
+    \tex_the:D \tex_everymath:D
+    \bool_if:NF \l_@@_collected_bool
+      {
+        \bool_set_true:N \l_@@_collected_bool
+        \@@_grab_dollar:w
+      }
+  }
+\exp_args:No \tex_everydisplay:D
+  {
+    \tex_the:D \tex_everydisplay:D
+    \iftrue  % this may have to be a settable flag!
+%      {
+%        \typeout{==>~ in~ everydisplay}
+        \skip_set:Nn \belowdisplayskip      {-\belowdisplayskip}
+        \skip_set:Nn \belowdisplayshortskip {-\belowdisplayshortskip}
+        \int_set:Nn \postdisplaypenalty {10000}
+%
+        \group_insert_after:N \@@_tag_dollardollar_display_end:
+%      }
+    \fi
+    \bool_if:NF \l_@@_collected_bool
+      {
+        \bool_set_true:N \l_@@_collected_bool
+        \@@_grab_dollardollar:w
+      }
+  }
+%    \end{macrocode}
+%
+% \subsection{Modifying kernel environments}
+%
+%   We need to cover this even though it is, of course, not encouraged.
+%    \begin{macrocode}
+\math_register_env:n { eqnarray }
+\math_register_env:n { eqnarray* }
+%    \end{macrocode}
+%
+% Places where math mode is (ab)used.
+%    \begin{macrocode}
+\clist_map_inline:nn
+  { tabular }
+  {
+    \AddToHook{ env / #1 / begin }
+      { \bool_set_true:N \l_@@_collected_bool }
+  }
+%    \end{macrocode}
+%
+% \begin{macro}{\@@_m at th:, \m at th}
+%   Handle non-math use of math mode. At present nesting isn't supported as
+%   \cs{m at th} pops up in a few places that \emph{are} math mode!
+%    \begin{macrocode}
+\cs_new_eq:NN \@@_m at th: \m at th
+\cs_gset_protected:Npn \m at th
+  {
+    \bool_set_true:N \l_@@_collected_bool
+    \@@_m at th:
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+% \subsection{Modifying \pkg{amsmath}}
+%
+% \begin{macro}{\@@_amsmath_align@:nn}
+% \begin{macro}
+%   {
+%     \@@_amsmath_gather@:n ,
+%     \@@_amsmath_multline@:n
+%   }
+% \begin{macro}{\align@}
+% \begin{macro}{\gather@, \multline@}
+%   Mark up all of the display environments as the content is captured anyway.
+%   We then use an internal macro in each environment type to insert the
+%   processing code. Each of these is slightly different, so we cannot use a
+%   simple loop here. The test for \cs{split at tag} is required as the
+%   \texttt{split} environment internally uses \texttt{gather} \emph{when not
+%   within an \pkg{amsmath}} environment, for example inside \texttt{equation}.
+%   Without the precaution, we'd get two copies of the grabbed math, the second
+%   of which would start with \cs{split at tag}.
+%    \begin{macrocode}
+
+
+
+\tl_gput_right:Nn \@kernel at before@begindocument {
+%
+\renewenvironment{gather*}{%
+  \start at gather\st at rredtrue
+}
+{%
+% this redirection doesn't work if we alter "gather"!
+  %  \endgather
+% so replace it with its real meaning
+  \math at cr \black@\totwidth@ \egroup
+  $$\ignorespacesafterend
+}
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+\def\common at align@ending {
+  \math at cr \black@\totwidth@
+  \egroup
+  \ifingather@
+    \restorealignstate@
+    \egroup
+    \nonumber
+    \ifnum0=`{\fi\iffalse}\fi
+  \else
+    $$%
+  \fi
+  \ignorespacesafterend
+}
+\renewenvironment{alignat}{%
+  \start at align\z@\st at rredfalse
+}{%
+  \common at align@ending
+}
+\renewenvironment{alignat*}{%
+  \start at align\z@\st at rredtrue
+}{%
+  \common at align@ending
+}
+\renewenvironment{xalignat}{%
+  \start at align\@ne\st at rredfalse
+}{%
+  \common at align@ending
+}
+\renewenvironment{xalignat*}{%
+  \start at align\@ne\st at rredtrue
+}{%
+  \common at align@ending
+}
+\renewenvironment{xxalignat}{%
+  \start at align\tw@\st at rredtrue
+}{%
+  \common at align@ending
+}
+\renewenvironment{align}{%
+  \start at align\@ne\st at rredfalse\m at ne
+}{%
+  \common at align@ending
+}
+\renewenvironment{align*}{%
+  \start at align\@ne\st at rredtrue\m at ne
+}{%
+  \common at align@ending
+}
+\renewenvironment{flalign}{%
+  \start at align\tw@\st at rredfalse\m at ne
+}{%
+  \common at align@ending
+}
+\renewenvironment{flalign*}{%
+  \start at align\tw@\st at rredtrue\m at ne
+}{%
+  \common at align@ending
+}
+%
+\renewenvironment{multline*}{\start at multline\st at rredtrue}
+{%
+  \iftagsleft@ \@xp\lendmultline@ \else \@xp\rendmultline@ \fi
+  \ignorespacesafterend
+}
+%    \end{macrocode}
+%    Also for "false?"
+%    \begin{macrocode}
+\def\measuring at true{\let\ifmeasuring@\iftrue\tag_stop:}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%    
+  \math_register_halign_env:nn {align}{}
+  \math_register_halign_env:nn {align*}{}
+  \math_register_halign_env:nn {flalign}{}
+  \math_register_halign_env:nn {flalign*}{}
+  \math_register_halign_env:nn {gather}{}
+  \math_register_halign_env:nn {gather*}{}
+  \math_register_halign_env:nn {multline}{}
+  \math_register_halign_env:nn {multline*}{}
+  \math_register_halign_env:nn {xalignat}{}
+  \math_register_halign_env:nn {xalignat*}{}
+  \math_register_halign_env:nn {xxalignat}{}
+  %
+  \@namedef{maketag @ @ @} #1{%
+%    \typeout{--->maketag @ @ @}
+    \ifmeasuring@
+      \hbox{\m at th\normalfont#1}%
+    \else
+      \tagmcend \tagstructbegin{tag=Lbl}%
+      \tagmcbegin{tag=Lbl}%
+      \hbox{\m at th\normalfont#1}%
+      \tagmcend \tagstructend \tagmcbegin{}%
+    \fi
+  }
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+    \def\intertext@{%
+      \def\intertext##1{%
+        \ifvmode\else\\\@empty\fi
+        \noalign{%
+% we have to flip the sign on the skip because we flipped it on the outside
+          \penalty\postdisplaypenalty\vskip-\belowdisplayskip
+          \vbox{
+%    \end{macrocode}
+% Stop tagging when measuring:
+%    \begin{macrocode}
+           \ifmeasuring@\tag_stop:\fi
+           \normalbaselines
+            \ifdim\linewidth=\columnwidth
+            \else \parshape\@ne \@totalleftmargin \linewidth
+            \fi
+%    \end{macrocode}
+% End the previous mc:\fmi{if we use 2 levels of formulas this would
+%    need changing}
+%    \begin{macrocode}
+            \tag_mc_end_push:
+%    \end{macrocode}
+% We are already in a par so we change now to Span:\fmi{not true any longer}
+%    \begin{macrocode}
+            \tagpdfsetup{paratag=P}%
+            \tagpdfparaOn
+            \noindent\ignorespaces##1\par
+%    \end{macrocode}
+% Restart the MC
+%    \begin{macrocode}
+            \tag_mc_begin_pop:n{}}%
+          \penalty\predisplaypenalty\vskip\abovedisplayskip%
+        }%
+      }
+    }
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+\@namedef{math at cr @ @ @ gather}{%
+    \ifst at rred\nonumber\fi
+   &\relax
+    \make at display@tag
+%
+    \maybestartnewformulatag
+%
+    \ifst at rred\else\global\@eqnswtrue\fi
+    \global\advance\row@\@ne
+    \cr
+}
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+\@namedef{math at cr @ @ @ align}{%
+  \ifst at rred\nonumber\fi
+  \if at eqnsw \global\tag at true \fi
+  \global\advance\row@\@ne
+  \add at amps\maxfields@
+  \omit
+  \kern-\alignsep@
+  \iftag@
+    \setboxz at h{\@lign\strut@{\make at display@tag}}%
+    \place at tag
+  \fi
+%
+    \maybestartnewformulatag
+%
+  \ifst at rred\else\global\@eqnswtrue\fi
+  \global\lineht@\z@
+  \cr
+}
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+\def\restore at math@cr{\@namedef{math at cr @ @ @}{
+%
+    \maybestartnewformulatag
+%
+    \cr}}
+\restore at math@cr
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+%
+
+%  \begin{macro}{}
+%    
+%    \begin{macrocode}
+\cs_new:Npn \@@_split_at_nl_first:w #1 \\ #2 \\ #3 \s_stop
+  {
+    \quark_if_nil:nTF {#2}
+      { {#1} {  } }
+      {
+        \@@_split_chk_if_begin:ww #1 \begin \q_nil \s_mark
+          #2 \\ #3 \s_stop
+      }
+  }
+\cs_new:Npn \@@_split_chk_if_begin:ww #1 \begin #2 #3 \s_mark
+    #4 \\ \q_nil \\ \s_stop
+  {
+    \quark_if_nil:nTF {#2}
+      { {#1} {#4} }
+      {
+        \exp_after:wN \@@_split_collect_one_end:w
+          \@@_split_cleanup_begin_q_nil:w #1 \begin{#2} #3 \\ #4 \s_stop
+            { } { 1 }
+      }
+  }
+\cs_new:Npn \@@_split_cleanup_begin_q_nil:w #1 \begin \q_nil {#1}
+\cs_new:Npn \@@_split_collect_one_end:w #1 \end #2 #3 \s_stop #4 #5
+  {
+    \exp_args:Nf \@@_split_check_count_begins:nnnn
+      { \@@_split_count_begins:n { #4 #1 } } {#5}
+      { #4 #1 \end{#2} } {#3}
+  }
+\cs_new:Npn \@@_split_count_begins:n #1
+  { \int_eval:n { 0 \@@_split_count_begins:w #1 \begin \q_nil } }
+\cs_new:Npn \@@_split_count_begins:w #1 \begin #2
+  { \quark_if_nil:nF {#2} { +1 \@@_split_count_begins:w } }
+\cs_new:Npn \@@_split_check_count_begins:nnnn #1 #2 #3 #4
+  {
+    \int_compare:nNnTF {#1} = {#2}
+      {
+        \exp_last_unbraced:Nf \@@_split_final_cleanup:nn
+          { \split:n { \@@_split_guard:n {#3} #4 } }
+      }
+      {
+        \exp_args:No \use_ii_i:nn
+          { \exp_after:wN { \int_value:w \int_eval:n { #2 + 1 } } }
+          { \@@_split_collect_one_end:w #4 \s_stop {#3} }
+      }
+  }
+\cs_new:Npn \@@_split_final_cleanup:nn #1 #2
+  {
+      \exp:w \@@_split_final_cleanup:w #1
+        \@@_split_guard:n \q_nil \s_mark { }
+      {#2}
+  }
+\cs_new:Npn \@@_split_final_cleanup:w #1 \@@_split_guard:n #2 #3 \s_mark #4
+  {
+    \quark_if_nil:nTF {#2}
+      { \exp_end: { #4 #1 } }
+      { \@@_split_final_cleanup:w #3 \s_mark { #4 #1 #2 } }
+  }
+\NewDocumentCommand \splitnl { mm +m }
+  {
+    \tl_set:Nf \l_tmpa_tl { \split:n {#3} }
+    \show \l_tmpa_tl
+    \exp_after:wN \__splitnl_aux:nnNN \l_tmpa_tl #1 #2
+  }
+
+
+\cs_new:Npn \split:n #1 {
+    \@@_split_at_nl_first:w #1 \\ \q_nil \\ \s_stop }
+
+\cs_new:Npn \@@_split_at_nl:NN #1#2 {
+  \tl_set:Nf \l_tmpa_tl {
+      \exp_after:wN \@@_split_at_nl_first:w #1 \\ \q_nil \\ \s_stop }
+  \exp_after:wN \@@_split_at_nl_aux:nnNN \l_tmpa_tl #1 #2
+}
+
+\cs_new_protected:Npn \@@_split_at_nl_aux:nnNN #1 #2 #3 #4
+  {
+    \tl_gset:Nn #4 {#1}
+    \tl_gset:Nn #3 {#2}
+}
+
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%  \begin{macro}{\maybestartnewformulatag}
+%    
+%    \begin{macrocode}
+
+\newif\if at subformulas
+\tl_new:N \result  
+  
+\cs_new_protected:Npn\grabaformulapartandstart {
+  \@@_split_at_nl:NN  \g__math_grabbed_math_tl \result
+  \typeout{====>first-result=\meaning\result}
+  \typeout{====>first-tmpmathcontent=\meaning\g__math_grabbed_math_tl}
+  \tl_if_empty:NTF \g__math_grabbed_math_tl
+     {
+       \typeout{====>formula~ has~ no~ subparts}
+       \global\@subformulasfalse
+     }
+     {
+       \typeout{====>formula~ has~ subparts}
+       \global\@subformulastrue
+       \edef\resulttitle{\g__math_grabbed_env_tl\space (part)}
+       \tagstructbegin{tag=Formula,
+%    \end{macrocode}
+%    For now we don't put anything in /alt or /ActualText on subformulas
+%    \begin{macrocode}
+%         alt=\result,
+         title-o=\resulttitle
+       }
+    }
+    \tagmcbegin{}
+}
+
+\cs_new_protected:Npn\grabaformulapartandmayberestart {
+  \@@_split_at_nl:NN  \g__math_grabbed_math_tl \result
+  \typeout{====>result=\meaning\result}
+  \typeout{====>tmpmathcontent=\meaning\g__math_grabbed_math_tl}
+%  \tl_if_empty:NTF \g__math_grabbed_math_tl
+%     {
+%       \typeout{====>tmpmathcontent=empty}
+%     }
+%     {
+%       \typeout{====>tmpmathcontent=not-empty}
+       \edef\resulttitle{\g__math_grabbed_env_tl\space (part)}
+       \tagstructbegin{tag=Formula,
+         alt=\result,
+         title-o=\resulttitle
+       }
+%    }
+    \tagmcbegin{}
+}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%
+%
+%    \begin{macrocode}
+\def\maybestartnewformulatag {
+\if at subformulas
+ \ifmeasuring@\else
+%
+  \tl_if_empty:NF \g__math_grabbed_math_tl
+     {
+       \tagmcend 
+       \tagstructend
+       \grabaformulapartandmayberestart
+     }
+ \fi
+\fi
+}
+%    \end{macrocode}
+%
+%    The breqn packages changes catcodes and that isn't yet covered
+%    by our mechanism.
+%    \begin{macrocode}
+%\AddToHook{package/breqn/after}{
+%  \typeout{===>~ in~ hook}
+%  \math_register_halign_env:nn {dmath}{}
+%  \math_register_halign_env:nn {dgroup*}{}
+%}  
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+\ExplSyntaxOff
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+%<@@=>
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+%
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%</kernel>
+%    \end{macrocode}
+%
+% \Finale
+%
+% 
+


Property changes on: trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-mathtagging.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-mathtools.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-mathtools.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-mathtools.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,223 @@
+% \iffalse meta-comment
+%
+%% File: latex-lab-mathtools.dtx
+%
+% Copyright (C) 2022,2023 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-amsmath.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+%
+% \title{The \texttt{latex-lab-mathtools} code\thanks{}}
+% \author{\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}
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Introduction}
+%
+% This file implements adaptions to the \pkg{mathtools} package needed for 
+% the tagging project. 
+%
+% \MaybeStop{\setlength\IndexMin{200pt}  \PrintIndex  }
+%
+% \section{The Implementation}
+%
+%    \begin{macrocode}
+%<@@=math>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%<*kernel>
+%    \end{macrocode}
+%
+% \subsection{File declaration}
+%    \begin{macrocode}
+\ProvidesFile{latex-lab-mathtools.ltx}
+        [2023-01-05 v0.1a mathtools adaptions]
+%    \end{macrocode}
+% \subsection{Tagpdf support}
+% To make the code independent from tagging being loaded and active
+% we load the \pkg{tagpdf-base} package:
+%
+%    \begin{macrocode}
+\RequirePackage{tagpdf-base}
+%    \end{macrocode}
+% 
+% \subsection{\cs{shortintertext}}
+% Similar to the \cs{intertext} command from amsmath,
+% \cs{shortintertext} errors with active tagging as it is processed twice
+% which leads to duplicated structures. 
+% The fix is similar but is complicated as \pkg{mathtools} defines two version (and
+% an additional \cs{intertext} version) and package options to switch between the variants.
+% 
+% At first we redefine all the internal commands
+%    \begin{macrocode}
+\ExplSyntaxOn
+\tl_new:N\l_@@_mathtools_init_tl
+\AddToHook{package/mathtools/after}
+ {%
+   \cs_if_eq:NNTF\intertext@ \MT_intertext:
+     {
+       \tl_set:Nn \l_@@_mathtools_init_tl {\MT_orig_intertext_false:}
+     }
+     {
+       \tl_set:Nn \l_@@_mathtools_init_tl {\MT_orig_intertext_true:}
+     } 
+   \cs_if_eq:NNTF\shortintertext@ \MT_shortintertext:n
+     {
+       \tl_put_right:Nn \l_@@_mathtools_init_tl 
+         {\MT_orig_shortintertext_false:}
+     }    
+     {
+       \tl_put_right:Nn \l_@@_mathtools_init_tl 
+         {\MT_orig_shortintertext_true:}
+     }    
+   \def\MT_intertext: {%
+     \def\intertext##1{%
+       \ifvmode\else\\\@empty\fi
+       \noalign{%
+         \penalty\postdisplaypenalty\vskip\belowdisplayskip
+         \vskip-\lineskiplimit      % CCS
+         \vskip\normallineskiplimit % CCS
+         \vskip\l_MT_above_intertext_sep
+          \vbox{%
+%    \end{macrocode}
+% Stop tagging when measuring:
+%    \begin{macrocode}
+          \ifmeasuring@\tag_stop:\fi          
+          \normalbaselines
+            \ifdim
+              \ifdim\@totalleftmargin=\z@
+                \linewidth
+              \else
+                -\maxdimen
+              \fi
+            =\columnwidth
+           \else \parshape\@ne \@totalleftmargin \linewidth
+           \fi
+%    \end{macrocode}
+% End the previous mc:
+%    \begin{macrocode}
+           \tag_mc_end_push:
+%    \end{macrocode}
+% We are already in a par so we change now to Span:
+%    \begin{macrocode}
+            \tagpdfsetup{paratag=Span}
+            \noindent\ignorespaces##1\par
+%    \end{macrocode}
+% Restart the MC
+%    \begin{macrocode}
+           \tag_mc_begin_pop:n{}}%                  
+         \penalty\predisplaypenalty\vskip\abovedisplayskip%
+         \vskip-\lineskiplimit      % CCS
+         \vskip\normallineskiplimit % CCS
+         \vskip\l_MT_below_intertext_sep
+      }%
+    }%
+    \MH_let:NwN \shortintertext \shortintertext@
+   }
+%    \end{macrocode}
+%    \begin{macrocode}
+    \def\MT_orig_shortintertext:n #1{%
+      \ifvmode\else\\\@empty\fi
+      \noalign{%
+        \penalty\postdisplaypenalty\vskip\abovedisplayshortskip
+        \vbox{%
+          \ifmeasuring@\tag_stop:\fi    
+          \normalbaselines
+          \MH_if_dim:w
+            \MH_if_dim:w \@totalleftmargin=\z@
+              \linewidth
+            \MH_else:
+              -\maxdimen
+            \MH_fi:
+            =\columnwidth
+          \MH_else:
+            \parshape\@ne \@totalleftmargin \linewidth
+          \MH_fi:
+          \tag_mc_end_push:
+          \tagpdfsetup{paratag=Span}
+          \noindent\ignorespaces#1\par
+          \tag_mc_begin_pop:n{}}
+        \penalty\predisplaypenalty\vskip\abovedisplayshortskip%
+      }%
+    }
+    
+   \def\MT_shortintertext:n #1{%
+     \ifvmode\else\\\@empty\fi
+     \noalign{%
+       \penalty\postdisplaypenalty\vskip\abovedisplayshortskip
+       \vskip-\lineskiplimit
+       \vskip\normallineskiplimit
+       \vskip\l_MT_above_shortintertext_sep
+       \vbox{%
+       \ifmeasuring@\tag_stop:\fi    
+       \normalbaselines
+         \MH_if_dim:w
+           \MH_if_dim:w \@totalleftmargin=\z@
+             \linewidth
+           \MH_else:
+             -\maxdimen
+           \MH_fi:
+           =\columnwidth
+         \MH_else:
+           \parshape\@ne \@totalleftmargin \linewidth
+         \MH_fi:
+         \tag_mc_end_push:
+         \tagpdfsetup{paratag=Span}
+         \noindent\ignorespaces#1\par
+         \tag_mc_begin_pop:n{}}%
+       \penalty\predisplaypenalty\vskip\abovedisplayshortskip%
+       \vskip-\lineskiplimit
+       \vskip\normallineskiplimit
+       \vskip\l_MT_below_shortintertext_sep
+     }%
+   }    
+
+%    \end{macrocode}
+% end hook
+%    \begin{macrocode}   
+  \l_@@_mathtools_init_tl
+}  
+\ExplSyntaxOff
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%</kernel>
+%    \end{macrocode}
+%
+% \Finale
+%


Property changes on: trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-mathtools.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-new-or-1.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-new-or-1.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-new-or-1.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,159 @@
+% \iffalse meta-comment
+%
+%% File: latex-lab-new-or-1.dtx (C) Copyright 2020-2022 Frank Mittelbach
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% 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
+%
+%<*driver>
+\documentclass{l3doc}
+
+\EnableCrossrefs
+\CodelineIndex
+\begin{document}
+  \DocInput{latex-lab-new-or-1.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+% \providecommand\hook[1]{\texttt{#1}}
+%
+%
+%
+% \title{Temporary output patches for tagging and better link support}
+% \author{Frank Mittelbach \and Ulrike Fischer}
+%
+% \maketitle
+%
+% \section{Introduction}
+%
+%    This file contains a few patches of internal \LaTeX{} commands
+%    to support paragraph tagging across
+%    page boundaries (in \pdfTeX) and improve the behaviour of links across page breaks.
+%
+%    Until this get properly integrated with the kernel code this has
+%    to be taken as a prototype and code, interfaces as well as
+%    behavior may change without notice and certainly without any
+%    backwards compatibility!
+%
+%
+% \StopEventually{\setlength\IndexMin{200pt}  \PrintIndex  }
+%
+%
+% \section{The Implementation}
+%    \begin{macrocode}
+%<*code>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\ProvidesPackage{latex-lab-testphase-new-or-1}
+        [2022-11-94 v0.1a Temporary output patches for tagging and better link support]
+\RequirePackage{etoolbox}
+%    \end{macrocode}
+%
+%
+%  \subsection{Patching the OR}
+%  This adds hooks around header and footer, in \cs{@makecol} and in multicol.
+%  At first initialize some of the hooks. We use providecommand to avoid problems if
+%  the kernel changes here and provides them directly.
+%    \begin{macrocode}
+\providecommand\@kernel at before@head{}
+\providecommand\@kernel at before@foot{}
+\providecommand\@kernel at after@head{}
+\providecommand\@kernel at after@foot{}
+\providecommand\@mult at ptagging@hook{}% multicol
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+
+\patchcmd\@outputpage
+ {\vfil\color at hbox\normalcolor\hb at xt@\textwidth{\@thehead}\color at endbox}
+ {\vfil\@kernel at before@head\color at hbox\normalcolor\hb at xt@\textwidth{\@thehead}\color at endbox\@kernel at after@head}
+ {\typeout{Patching header in \string\@outputpage}}{\PATCHerror }
+
+
+\patchcmd\@outputpage
+ {\color at hbox\normalcolor\hb at xt@\textwidth{\@thefoot}\color at endbox}
+ {\@kernel at before@foot\color at hbox\normalcolor\hb at xt@\textwidth{\@thefoot}\color at endbox\@kernel at after@foot}
+ {\typeout{Patching footer in \string\@outputpage}}{\PATCHerror }
+%    \end{macrocode}
+%
+%  \begin{macro}{\@makecol}
+%    We have to patch \cs{@makecol} in two places:
+%    \begin{itemize}
+%    \item
+%      update 255 up front to add missing tmb/tme if necessary
+%    \item
+%      update the \cs{footins} stream if that one got split
+%    \end{itemize}
+%
+%   We patch \cs{@makecol}, if new-or-2 is loaded too it will overwrite that again.
+%    \begin{macrocode}
+  \providecommand\@kernel at before@footins{}
+  \providecommand\@kernel at before@cclv{}
+
+  \patchcmd\@makecol
+    {\vskip\skip\footins}
+    {\vskip\skip\footins\@kernel at before@footins}
+    {\typeout{Patching \string\@makecol\space for tagging}}{\PATCHerror }
+
+%for some reason patching with etoolbox only works in this order ...
+
+  \pretocmd\@makecol{\@kernel at before@cclv}
+   {\typeout{Patching \string\@makecol\space for tagging}}{\PATCHerror }
+%    \end{macrocode}
+%  \end{macro}
+%
+% \subsection{\pkg{multicol} adjustments}
+%
+%    The patches for pkg{multicol} are fairly minimal:
+%    \begin{itemize}
+%    \item At the start of the environment anything already on the
+%    page is picked up and stored in \cs{partial at page}, we may need to add
+%    a TMB to that (it should have a proper TME). This has to happen
+%    in the \enquote{main} stream context.
+%    \item
+%    \item
+%    \end{itemize}
+%
+%    \begin{macrocode}
+\AddToHook{package/multicol/after}
+    {% multicol needs later loading
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+  \patchcmd\page at sofar
+      {\setbox\z@\hbox{p}\global\dimen\tw@\dp\z@}%
+      {%
+        \setbox\z@\hbox{p}\global\dimen\tw@\dp\z@
+        \@mult at ptagging@hook
+      }%
+      {\typeout{Patching \string\page at sofar\space for tagging}}{\PATCHerror}%
+}
+%    \end{macrocode}
+%
+% \subsection{Interrupt hooks}
+% This requires the l3pdfannot module!
+% We add the code here and not in hyperref, as it should also work with links
+% created directly with the l3pdfannot commands. The file is only
+% loaded by the pdfmanagement, so no need to test if the commands exist.
+%    \begin{macrocode}
+\ExplSyntaxOn
+\def\@kernel at before@head{\pdfannot_link_off:}
+\def\@kernel at before@foot{\pdfannot_link_off:}
+\def\@kernel at after@head {\pdfannot_link_on:}
+\def\@kernel at after@foot {\pdfannot_link_on:}
+\ExplSyntaxOff
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%</code>
+%    \end{macrocode}
+%
+% \Finale
+%


Property changes on: trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-new-or-1.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-new-or-2.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-new-or-2.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-new-or-2.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,545 @@
+% \iffalse meta-comment
+%
+%% File: latex-lab-new-or-2.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-2.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+%
+% \title{The \texttt{latex-lab-testphase-new-or-2} 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}
+\ProvidesPackage{latex-lab-testphase-new-or-2}
+        [2022-11-04 v0.1c 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-dev/latex-lab/latex-lab-new-or-2.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-new-or.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-new-or.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-new-or.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,545 +0,0 @@
-% \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
-%

Added: trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-sec-tagging.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-sec-tagging.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-sec-tagging.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,810 @@
+% \iffalse meta-comment
+%
+%% File: sec-tagging.dtx (C) Copyright 2022-2023 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-sec-tagging.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+%
+% \title{The \textsf{sec-tagging} package\\
+% Changes related to the tagging of sectioning commands}
+% \author{\LaTeX{} Project\thanks{Initial implementation done by Ulrike Fischer}}
+% \date{v0.81 2023-02-12}
+%
+% \maketitle
+%
+% \newcommand{\xt}[1]{\textsl{\textsf{#1}}}
+% \newcommand{\TODO}[1]{\textbf{[TODO:} #1\textbf{]}}
+% \newcommand{\docclass}{document class \marginpar{\raggedright document class
+% customizations}}
+%
+% \providecommand\hook[1]{\texttt{#1}}
+%
+% \begin{abstract}
+% The following code implements a first draft for the tagging of sectioning commands.
+% \end{abstract}
+% 
+% \section{Limitations}
+% 
+% Sectioning commands are in not defined by the format but by the classes. 
+% Their implementation vary: some are defined with the help of \cs{@startsection}, 
+% some are like \cs{chapter} handcrafted, 
+% some build with the help of extension packages or as in the KOMA classes 
+% with class code that extends the \cs{@startsection} functionality.
+% 
+% The following code can therefore currently be used \emph{only} with the standard classes
+% or with classes which do not overwrite the changed definitions.
+% 
+% 
+% 
+% \section{Introduction}
+% 
+%  Tagging of sectioning commands consist of two parts:
+% 
+% \begin{itemize}
+%  \item The heading/title text of the section should be surrounded by a 
+%  heading tag, typically \texttt{Hn} with some value of \texttt{n}.
+%  The number of the section command can optionally be put in a \texttt{Lbl}. 
+%  The number of the \texttt{Hn} tag should reflect the \enquote{natural} level. 
+%  So in an article \cs{section} will use  \texttt{H1}, in a book \cs{chapter} will use
+%  \texttt{H1} and \cs{section} \texttt{H2}. 
+%  Titles of \cs{part} are a bit out of this system as they are normally
+%  not part of the hierarchy: often only some chapters are grouped under a part.
+%  Their title is therefore tagged as \texttt{Title}. 
+%  \item 
+%  The whole section should normally be surrounded by
+%  a \texttt{Sect} tag. Parts should be surrounded by \texttt{Part}. 
+%  It is a bit unclear if the headings should be inside or outside of these 
+%  structures---the best practice guide puts them outside---but on the whole 
+%  it sounds more logical to group the heading with the text inside the \texttt{Sect}.
+%  For the part this is actually required, as there can be only one \texttt{Title}
+%  in a structure, so the part title can't be at the same level as the 
+%  document \texttt{Title}.
+%  
+%  Starting such an enclosing \texttt{Sect} structure is rather easy, 
+%  but closing it requires code in various place, 
+%  for example the commands \cs{mainmatter}, \cs{backmatter}, 
+%  \cs{frontmatter} and \cs{appendix} should typically close everything. 
+%  Following sectioning commands should close all previous structures 
+%  with a level equal or higher than their own level.
+%  \end{itemize}
+%  
+%  \section{Technical details and problems}
+%  
+%  The implementation has to take care of various details.
+%  
+%  \begin{itemize}
+%  
+%  \item As sections in \LaTeX{} are not environments, the 
+%  \texttt{<Sect>} structures can be wrongly nested with other structures. For example
+%  if a document puts a sectioning command into a list or a trivlist or 
+%  a minipage then it can no longer close previous \texttt{<Sect>} structures correctly.
+%  The problem can be detected by checking the structure stack 
+%  and a warning can be issued, but the author then has to close the structures
+%  manually before the list or minipage. 
+%  
+%  Thus there have to be user interfaces to handle such cases.
+%  It should also be possible not to create all the \texttt{<Sect>} structures
+%  automatically but to tag only the headings so that the author can handle special
+%  cases manually. 
+%  
+%  \item If hyperref is used, targets for links should be inserted, either with
+%  \cs{refstepcounter} or manually with \cs{MakeLinkTarget}. These targets must be
+%  in the correct structure for the structure destinations. They replace some
+%  of the current patches in hyperref.
+%  
+%  \item With lualatex the mc-commands set attributes \emph{locally}, so the 
+%  commands must be at the right grouping level.
+%  \end{itemize}
+%  
+%  \subsection{Funktions and keys}
+%
+% \begin{function}{\tag_tool:n,\tagtool}
+% 
+% \end{function}
+%  
+%  \subsection{TODO}
+%  
+%  \begin{itemize}
+%   \item A dedicated command to close a sectioning unit should be provided. 
+%    
+%   \item A dedicated command to open a sectioning unit should be provided too. 
+%   
+%   \item It should also be possible to suppress the sectioning unit in sectioning commands
+%     to allow e.g. to put an epigraph or similar in front.
+%     
+%  \item The number in \cs{part} and  \cs{chapter} is currently not correctly 
+%  tagged as a \texttt{Lbl} as this requires to redefine the internal (class dependant)
+%  commands too.
+%     
+%  \end{itemize}
+%
+%    \begin{macrocode}
+%<*package>
+%    \end{macrocode}
+%
+% \section{Implementation}
+%    \begin{macrocode}
+\ProvidesExplPackage {latex-lab-testphase-sec-tagging} {2022-10-25} {0.8}
+  {Code related to the tagging of sectioning commands}
+%    \end{macrocode}
+%  
+% \subsection{Surrounding by \texttt{Sect} structures} 
+%  We use a stack to record the levels of the open \texttt{Sect}. The first item
+%  has level -100. A sectioning command will take a record from the stack. If its level is
+%  greater or equal it closes this structure and takes the next record from the stack.
+%  If the record has a smaller level then it puts it back and stops.
+%  The stack is compared with the main structure stack, if they don't match 
+%  it means we can't safely close the \texttt{Sect} and so we issue a warning 
+%  and do nothing. 
+%    
+% \subsubsection{Loading general kernel changes}
+% [kernel?]
+%  Also loaded in the toc-tagging code.
+%    \begin{macrocode}
+\RequirePackage{latex-lab-kernel-changes}
+%    \end{macrocode}
+%    \begin{macrocode}
+%</package>
+%    \end{macrocode}
+% \subsubsection{Glyphtounicode improvements}
+% 
+% As lualatex runs with legacy encodings in the test files, we enable and
+% load glyphtounicode. For the math we load additional definitions.
+% 
+%    \begin{macrocode}
+%<*kernelchange>
+\ifdefined\directlua
+ \pdfvariable gentounicode =1
+ \protected\def\pdfglyphtounicode {\pdfextension glyphtounicode } 
+ \input{glyphtounicode}
+\fi
+ \input{glyphtounicode-cmex}
+%</kernelchange>
+%    \end{macrocode}
+%
+% \subsubsection{updating \cs{@currentHref}}
+% [kernel?]
+%
+% We  must ensure that manual targets (e.g. in unnumbered sections)
+% correctly update \cs{@currentHref}. For this we extend the kernel definition of
+% \cs{MakeLinkTarget} 
+% 
+%    \begin{macrocode}
+%<*kernelchange>
+\ExplSyntaxOn
+\int_new:N\g__kernel_target_int
+\RenewDocumentCommand\MakeLinkTarget{sO{}m}
+ {%
+  \ifvmode
+    \special{}%
+  \else
+    \@savsf\spacefactor
+    \smash{}%
+    \spacefactor\@savsf
+  \fi
+  \int_gincr:N\g__kernel_target_int
+  \tl_gset:Nx \@currentHref {target*.\int_use:N\g__kernel_target_int}
+ }
+\ExplSyntaxOff 
+%</kernelchange> 
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%<*package>
+%    \end{macrocode}
+% \subsubsection{Tagging commands}
+%
+%
+% \begin{variable}{\g__tag_sec_stack_seq}
+% The stack holds the tag and the level.
+%    \begin{macrocode}
+\seq_new:N   \g__tag_sec_stack_seq
+\seq_gpush:Nn\g__tag_sec_stack_seq {{Document}{-100}}
+%    \end{macrocode}
+% \end{variable}
+% 
+% \begin{variable}{\l__tag_sec_Sect_bool}
+% This boolean controls if a Sect structure is opened. 
+%    \begin{macrocode}
+\bool_new:N     \l__tag_sec_Sect_bool
+\bool_set_true:N\l__tag_sec_Sect_bool
+%    \end{macrocode}
+% \end{variable}
+ 
+% 
+% \begin{macro}{\__tag_sec_begin:nn}
+% This starts a sectioning structure. 
+% Currently the tag is fix, either Sect or Part, depending on the level,
+% but this will perhaps change. The second argument is currently unused.
+%    \begin{macrocode}
+\cs_new_protected:Npn\__tag_sec_begin:nn #1 #2 %#1 level #2 keyval
+  {
+    \tag_struct_begin:n 
+      {
+         tag= {\int_compare:nNnTF {#1}={-1}{Part}{Sect}}
+        ,#2
+      } 
+    \seq_gpush:Nx \g__tag_sec_stack_seq {{\g__tag_struct_tag_tl}{#1}}    
+  }
+%    \end{macrocode}
+% \end{macro}
+% 
+% \begin{macro}{\__tag_sec_end:n}
+%    \begin{macrocode}
+\msg_new:nnn { tag } {wrong-sect-nesting}
+  {
+    The~structure~#1~can~not~be~closed.\\
+    It~is~not~equal~to~the~current~structure~#2~on~the~main~stack
+  }
+
+\cs_new_protected:Npn\__tag_sec_end:n #1 % #1 level
+  {
+    \seq_get:NN \g__tag_sec_stack_seq \l__tag_tmpa_tl
+    \int_compare:nNnT {#1}<{\exp_last_unbraced:NV\use_ii:nn\l__tag_tmpa_tl+1}
+      {
+        \seq_get:NN\g__tag_struct_tag_stack_seq \l__tag_tmpb_tl
+        \exp_args:Nee
+          \tl_if_eq:nnTF 
+            {\exp_last_unbraced:NV\use_i:nn\l__tag_tmpa_tl}
+            {\exp_last_unbraced:NV\use_i:nn\l__tag_tmpb_tl}
+            {
+              \seq_gpop:NN \g__tag_sec_stack_seq \l__tag_tmpa_tl
+              \tag_struct_end:
+              \__tag_sec_end:n {#1}        
+            }
+            { 
+              \msg_warning:nnxx {tag}{wrong-sect-nesting}
+               { \exp_last_unbraced:NV\use_i:nn \l__tag_tmpa_tl }
+               { \exp_last_unbraced:NV\use_i:nn \l__tag_tmpb_tl } 
+            }
+      }  
+  }  
+%    \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\__tag_tool_para_split:}
+% Runin-sectioning command must separate the heading from the following text. 
+% 
+%    \begin{macrocode}
+\cs_new_protected:Npn \__tag_tool_para_split:
+  {
+    \tag_mc_end:
+    \tag_struct_end:        
+    \tag_struct_begin:n{tag=\l__tag_para_tag_default_tl}
+    \tag_mc_begin:n{}
+    \__tag_setup_restore_para_default:
+  }
+%    \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\__tag_setup_restore_para_default:}
+% We change the para tagging in the sectioning code.
+% This here restores the default. Currently it only resets the 
+% the tag, but perhaps more will be needed later. 
+%    \begin{macrocode}
+\cs_new_protected:Npn \__tag_setup_restore_para_default:
+  {
+    \tl_set:Nn \l__tag_para_main_tag_tl {text-unit}
+    \tl_set_eq:NN\l__tag_para_tag_tl\l__tag_para_tag_default_tl
+  }
+%    \end{macrocode}
+% \end{macro}
+% 
+% \begin{macro}{\__tag_sec_end_display:}
+%    \begin{macrocode}
+\cs_new_protected:Npn \__tag_sec_end_display:
+  {
+    \tag_struct_end: %P = Hn
+    \__tag_setup_restore_para_default:
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+% Open sec structures should be closed at the end of the document. This should
+% be done before tagpdf closes the Document structure.
+%    \begin{macrocode}
+\hook_gput_code:nnn{tagpdf/finish/before}{tagpdf/sec}{\__tag_sec_end:n{-10}}
+\hook_gset_rule:nnnn {tagpdf/finish/before}{tagpdf/sec}{before}{tagpdf}  
+%    \end{macrocode}
+%
+% The commands \cs{mainmatter}, \cs{backmatter}, \cs{frontmatter} and
+% \cs{appendix} close all \texttt{Sect} and \texttt{Part} structures.
+%    \begin{macrocode}
+\AddToHook{cmd/frontmatter/before}{\__tag_sec_end:n{-10}}
+\AddToHook{cmd/mainmatter/before} {\__tag_sec_end:n{-10}}
+\AddToHook{cmd/backmatter/before} {\__tag_sec_end:n{-10}}
+\AddToHook{cmd/appendix/before}   {\__tag_sec_end:n{-10}}
+%    \end{macrocode}
+%
+% \subsection{Tagging tools}
+% We need to provide user and package level commands
+% 
+%    \begin{macrocode}
+\cs_if_free:NT \tag_tool:n
+ {
+   \cs_new_protected:Npn \tag_tool:n #1
+    {
+      \tag_if_active:T { \keys_set:nn {tag / tool}{#1} }
+    }
+   \cs_set_eq:NN\tagtool\tag_tool:n   
+ }   
+\keys_define:nn { tag / tool} 
+  {
+    ,sec-start-part .code:n = 
+      {
+        \bool_if:NT\l__tag_sec_Sect_bool
+          {
+            \__tag_sec_end:n   {-1} 
+            \__tag_sec_begin:nn{-1}{tag=Part}
+          }  
+         \tag_struct_begin:n{tag=part,title=#1}
+%    \end{macrocode}
+% We remap here the text-unit from the paragraph to NonStruct.
+% It would be better to suppress it completly as with the other
+% sectioning commands, but this would require to redefine \cs{@spart}
+% and \cs{@part}, as there is the grouping, and these commands are
+% all slightly different in the standard classes. So this is delayed 
+% to the time when sectioning commands are redefined with templates.
+%    \begin{macrocode}
+         \tl_set:Nn\l__tag_para_main_tag_tl {NonStruct}
+         \tl_set:Nn\l__tag_para_tag_tl {Span}
+      }
+    ,sec-stop-part .code:n = {\__tag_sec_end_display:}
+    ,sec-start-chapter .code:n =
+     {
+       \bool_if:NT\l__tag_sec_Sect_bool
+         {
+           \__tag_sec_end:n   {0} 
+           \__tag_sec_begin:nn{0}{tag=Sect}
+         }  
+        \tag_struct_begin:n{tag=chapter,title=#1}
+%    \end{macrocode}
+% similar to part we remap to NonStruct for now ...
+%    \begin{macrocode}
+        \tl_set:Nn\l__tag_para_main_tag_tl {NonStruct}
+        \tl_set:Nn\l__tag_para_tag_tl {Span}
+     }
+    ,sec-stop-chapter .meta:n = { sec-stop-part}  
+    ,sec-start .code:n = % #1 is a name like "section" 
+      {        
+        \bool_if:NT\l__tag_sec_Sect_bool
+          {       
+            \__tag_sec_end:n    {\use:c{toclevel@#1}+0} 
+            \__tag_sec_begin:nn {\use:c{toclevel@#1}+0}{tag=Sect}
+          }  
+        \tl_set:Nn\l__tag_para_tag_tl{#1}
+      } 
+    ,sec-start .value_required:n = true     
+    ,sec-split-para .code:n = {\__tag_tool_para_split:}
+    ,restore-para .code:n = {\__tag_setup_restore_para_default:}
+    ,sec-stop .code:n = 
+      {
+        \par\__tag_sec_end:n   {\use:c{toclevel@#1}+0}
+      }
+    ,sec-stop .value_required:n = true  
+    ,sec-add-grouping .bool_set:N = \l__tag_sec_Sect_bool
+  } 
+%    \end{macrocode}
+%
+%
+% \section{Sectioning commands}
+% 
+% \subsection{\cs{part} and \cs{chapter}}
+%
+% \cs{part} and \cs{chapter} are defined by the classes. 
+% To tag them we redefine the user commands. 
+% This will probably break with various classes and with titlesec.
+% The tagging inside relies on the para tagging.
+% We do not yet use keyval in the optional argument, as this requires latex-dev
+% and the naming of the keys and their key family is unclear.
+%    \begin{macrocode}
+\AddToHook{class/after}
+ {
+  \@ifundefined{chapter}
+    {
+%    \end{macrocode}
+% This redefines \cs{part} in article class.
+%    \begin{macrocode}
+     \RenewDocumentCommand\part{ s O{#3} m }
+      {
+        \if at noskipsec \leavevmode \fi
+        \par
+        \addvspace{4ex}%
+        \@afterindentfalse
+%    \end{macrocode}
+% This are the tagging commands needed at the begin. They open a Part structure
+% and the structure for the title of the heading.
+%    \begin{macrocode}
+        % tagging start commands
+        \tag_tool:n {sec-start-part=#2}
+        % end tagging start commands
+%    \end{macrocode}
+% This adds a  manual target if the part is unnumbered or starred.
+% It replaces the hyperref patches.
+%    \begin{macrocode}
+        \bool_lazy_any:nT  
+          {
+            { #1 } 
+            { 
+              \int_compare_p:nNn {\c at secnumdepth}<{-1} 
+            } 
+          }  
+          {
+            \MakeLinkTarget[part]{}
+          }
+%    \end{macrocode}
+% The main call to the underlying commands. 
+%    \begin{macrocode}
+        \IfBooleanTF 
+          {#1}
+          { \@spart {#3} }
+          { \@part [#2]{#3} }
+%    \end{macrocode}
+% and now the closing command for the tagging of the title.
+%    \begin{macrocode}
+       \tag_tool:n {sec-stop-part} 
+      }    
+    }
+%    \end{macrocode}
+% Redefinitions for book and report
+%    \begin{macrocode}
+    {  
+     \RenewDocumentCommand\chapter{ s O{#3} m }
+      {
+        \if at openright\cleardoublepage\else\clearpage\fi
+        \thispagestyle{plain}%
+        \global\@topnum\z@
+        \@afterindentfalse
+%    \end{macrocode}
+% This are the tagging commands needed at the begin. They open a Sect structure
+% and the structure for the title of the heading.
+%    \begin{macrocode}  
+        \tag_tool:n { sec-start-chapter= #2 }      
+%    \end{macrocode}
+% This adds a  manual target if the chapter is unnumbered or starred.
+% It replaces the hyperref patches.
+%    \begin{macrocode}        
+        \bool_lazy_any:nT  
+          {
+            { #1 } 
+            { 
+              \int_compare_p:nNn {\c at secnumdepth}<{0} 
+            } 
+            {
+              %in book target also needed in frontmatter
+              \bool_lazy_and_p:nn 
+                { \cs_if_exist_p:c { @mainmattertrue } } 
+                { ! \legacy_if_p:n { @mainmatter } }
+            }
+          }  
+          {
+            \MakeLinkTarget[chapter]{}
+            %todo public function for this update!
+            \tl_if_blank:VF \@currentHref
+              {
+                \prop_gput:Nxx \g__tag_struct_dest_num_prop {\@currentHref}{\tag_get:n{struct_num}}
+              }
+          }   
+%    \end{macrocode}
+% The main call to the underlying commands. 
+%    \begin{macrocode}               
+        \IfBooleanTF 
+          {#1}
+          { \@schapter {#3} }
+          { \@chapter [#2]{#3} }
+%    \end{macrocode}
+% and now the closing command for the tagging of the title.
+%    \begin{macrocode}          
+        \tag_tool:n {sec-stop-chapter} 
+      }
+%    \end{macrocode}
+% and similar for \cs{part}
+%    \begin{macrocode}
+     \RenewDocumentCommand\part{ s O{#3} m }
+      {
+        \if at openright
+          \cleardoublepage
+        \else
+          \clearpage
+        \fi
+        \thispagestyle{plain}%
+        \if at twocolumn
+          \onecolumn
+          \@tempswatrue
+        \else
+          \@tempswafalse
+        \fi
+        \null\vfil
+%    \end{macrocode}
+% This are the tagging commands needed at the begin. They open a Part structure
+% and the structure for the title of the heading.
+%    \begin{macrocode}     
+       \tag_tool:n {sec-start-part=#2}   
+%    \end{macrocode}
+% This adds a  manual target if the part is unnumbered or starred.
+% It replaces the hyperref patches.
+%    \begin{macrocode}        
+        \bool_lazy_any:nT  
+          {
+            { #1 } 
+            { 
+              \int_compare_p:nNn {\c at secnumdepth}<{-1} 
+            } 
+            {
+              %in book target also needed in frontmatter
+              \bool_lazy_and_p:nn 
+                { \cs_if_exist_p:c { @mainmattertrue } } 
+                { ! \legacy_if_p:n { @mainmatter } }
+            }
+          }  
+          {
+            \MakeLinkTarget[part]{}
+            \tl_if_blank:VF \@currentHref
+             {
+               \prop_gput:Nxx \g__tag_struct_dest_num_prop {\@currentHref}{\tag_get:n{struct_num}}
+             }
+          }
+%    \end{macrocode}
+% The main call to the underlying commands. 
+%    \begin{macrocode}          
+        \IfBooleanTF 
+          {#1}
+          { \@spart {#3} }
+          { \@part [#2]{#3} }
+%    \end{macrocode}
+% and now the closing command for the tagging of the title.
+%    \begin{macrocode}          
+        \tag_tool:n{sec-stop-part}  
+      }    
+    }
+ }        
+%    \end{macrocode}
+%
+% \subsection{Sectioning commands based on \cs{@startsection}}
+% 
+% The tagging of relies again on the para tagging: 
+% we simply exchange the tag name by the one given as \#1.
+% This assumes that a tag with the name of the sectioning type is defined.
+% We don't try to pass the title, this will be done together with 
+% the new keyval handling in the user command.
+% 
+% \subsubsection{Hyperref code}
+% hyperref has to insert anchors. If the sectioning is numbered this is done by 
+% \cs{refstepcounter} (and so in vmode). For unnumbered section hyperref 
+% injects the anchor in hmode before the text, it also inserts a 
+% kern to compensate the indent. 
+% 
+% This means that the target of numbered and unnumbered sectioning commands
+% differ, both regarding the location and in relation to the 
+% tagging structure: The anchor from the \cs{refstepcounter} is outside of
+% the structure created by the heading title if the para tags are used,
+% while the other anchors are inside and so the structure destinations are different.    
+% 
+% We unify this by suppressing the anchor from the refstepcounter.
+% Also we only go back if the indent is positive.
+% 
+% At first suppress all hyperref patches related to sectioning:
+%    \begin{macrocode}
+\def\hyper at nopatch@sectioning{}
+%    \end{macrocode}
+%
+% \begin{macro}{\@hyp at section@target at nnn}
+% A simple internal command. There is no need for something public,
+% as packages defining their own version of \cs{@startsection} will 
+% probably need something slightly different based on \cs{MakeLinkTarget}. 
+%    \begin{macrocode}
+\cs_new_protected:Npn \@hyp at section@target at nnn #1 #2 #3 %#1 optarg #2 name/counter, #3 indent
+ {
+   \makebox[0pt][l]
+     { 
+       \skip_set:Nn \@tempskipa {#3}
+       \dim_compare:nNnF {\@tempskipa}<{0pt}{\kern-\@tempskipa}
+       \MakeLinkTarget#1{#2}
+     }
+   \tl_if_blank:VF \@currentHref
+    {
+      \prop_gput:Nxx \g__tag_struct_dest_num_prop {\@currentHref}{\tag_get:n{struct_num}}
+    }  
+ }
+%    \end{macrocode}
+% \end{macro}
+% 
+% \subsection{Adaption of the heading commands}
+% We add to \cs{@startsection} the commands to open the \texttt{Sect}
+% structure and to change the para tag.
+%
+%    \begin{macrocode}
+\def\@startsection#1#2#3#4#5#6{%
+  \if at noskipsec \leavevmode \fi
+  \par
+  \@tempskipa #4\relax
+  \@afterindenttrue
+  \ifdim \@tempskipa <\z@
+    \@tempskipa -\@tempskipa \@afterindentfalse
+  \fi
+  \if at nobreak
+    \everypar{}%
+  \else
+    \addpenalty\@secpenalty\addvspace\@tempskipa
+  \fi
+  \tag_tool:n { sec-start=#1}%new
+  \@ifstar
+    {\@ssect{#3}{#4}{#5}{#6}}%
+    {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}  
+%    \end{macrocode}
+% To be able to correctly tag the number we need a special 
+% \cs{@hangfrom} variant. This is a bit tricky:
+% As the paragraph starts after the \cs{setbox} luatex attributes 
+% are not set yet and numbers are unmarked if one doesn't pay attention.
+% The code assumes that we are in vmode!
+%    \begin{macrocode}
+\cs_new_protected:Npn \@kernel at tag@hangfrom #1
+  {
+     \tagstructbegin{tag=\l__tag_para_tag_tl}
+     \tagstructbegin{tag=Lbl}
+     \setbox\@tempboxa
+       \hbox
+         {
+%    \end{macrocode}
+% In lua mode we have to set the attributes inside the box!
+%    \begin{macrocode}
+           \bool_lazy_and:nnT
+            {\tag_if_active_p:}
+            {\g__tag_mode_lua_bool}
+            {\tagmcbegin{tag=Lbl}}
+           {#1}
+         }
+%    \end{macrocode}
+% We stop tagging now, to avoid that the \cs{noindent} triggers
+% the paratagging. We do not disable paratagging completely, to 
+% avoid that the numbering goes wrong.
+%    \begin{macrocode}
+   \tag_stop:n{hangfrom}
+   \hangindent \wd\@tempboxa\noindent
+%    \end{macrocode}
+% Restart tagging and insert the box.
+%    \begin{macrocode}
+   \tag_start:n{hangfrom}
+   \tagmcbegin{}\box\@tempboxa\tagmcend\tagstructend\tagmcbegin{}}
+%    \end{macrocode}
+% This command is used to tag the numbers of runin. We do not try
+% to avoid the empty container from the paratagging, this would require
+% more changes. 
+%    \begin{macrocode}
+\cs_new_protected:Npn \@kernel at tag@svsec
+  {
+    \tag_mc_end_push:      
+    \tag_struct_begin:n{tag=Lbl}    
+    \tag_mc_begin:n{}      
+    \@svsec
+    \tag_mc_end:
+    \tag_struct_end:
+    \tag_mc_begin_pop:n{}
+  }  
+%    \end{macrocode}
+% \cs{@sect} is only changed to replace the hyperref patches
+% and to use the new \cs{@kernel at tag@hangfrom} and \cs{@kernel at tag@svsec}
+%    \begin{macrocode}
+\def\@sect#1#2#3#4#5#6[#7]#8{%  
+  \ifnum #2>\c at secnumdepth
+    \def\@svsec{\@hyp at section@target at nnn{[section]}{}{#3}}
+  \else
+    \LinkTargetOff
+    \refstepcounter{#1}%
+    \LinkTargetOn
+    \protected at edef\@svsec{\@hyp at section@target at nnn{}{#1}{#3}\@seccntformat{#1}\relax}%
+  \fi
+  \@tempskipa #5\relax
+  \ifdim \@tempskipa>\z@
+    \begingroup
+    \tagtool{para-flattened=true} % or \bool_set_true\l__tag_para_flattened_bool
+      #6{%
+         \ifnum #2>\c at secnumdepth
+          \@hangfrom {\hskip #3\relax\@svsec}%
+         \else 
+          \@kernel at tag@hangfrom{\hskip #3\relax\@svsec}%
+         \fi 
+          \interlinepenalty \@M #8\@@par}%
+    \endgroup
+    \csname #1mark\endcsname{#7}%
+    \addcontentsline{toc}{#1}{%
+      \ifnum #2>\c at secnumdepth \else
+        \protect\numberline{\csname the#1\endcsname}%
+      \fi
+      #7}%
+  \else
+    \def\@svsechd{%
+      #6{\hskip #3\relax
+      \ifnum #2>\c at secnumdepth
+       \@svsec
+      \else 
+       \@kernel at tag@svsec
+      \fi  #8}%
+      \csname #1mark\endcsname{#7}%
+      \addcontentsline{toc}{#1}{%
+        \ifnum #2>\c at secnumdepth \else
+          \protect\numberline{\csname the#1\endcsname}%
+        \fi
+        #7}}%
+  \fi
+  \@xsect{#5}}
+%    \end{macrocode}
+% similar for \cs{@ssect}
+%    \begin{macrocode}
+\def\@ssect#1#2#3#4#5{%
+  \@tempskipa #3\relax
+  \ifdim \@tempskipa>\z@
+    \begingroup
+    \tagtool{para-flattened=true}
+      #4{%
+        \@hangfrom{\hskip #1\relax\@hyp at section@target at nnn{[section]}{}{#1}}%
+          \interlinepenalty \@M #5\@@par}%
+    \endgroup
+  \else
+    \def\@svsechd{#4{\hskip #1\relax\@hyp at section@target at nnn{[section]}{}{#3}\relax #5}}%
+  \fi
+  \@xsect{#3}}  
+%    \end{macrocode}
+% At last \cs{@xsect} needs code in two places. For display headings it has to
+% restore the default para code, for run in headings it has to separated the 
+% heading from the following text.
+%    \begin{macrocode}
+\def\@xsect#1{%
+  \@tempskipa #1\relax
+  \ifdim \@tempskipa>\z@
+    \par \nobreak
+    \vskip \@tempskipa
+    \tag_tool:n {restore-para}
+    \@afterheading
+  \else
+    \@nobreakfalse
+    \global\@noskipsectrue
+    \everypar{%
+      \if at noskipsec
+        \global\@noskipsecfalse
+       {\setbox\z@\lastbox}%
+        \clubpenalty\@M
+        \begingroup \@svsechd \endgroup
+        \unskip
+        \tag_tool:n {sec-split-para}
+        \@tempskipa #1\relax
+        \hskip -\@tempskipa
+      \else
+        \clubpenalty \@clubpenalty
+        \everypar{}%
+      \fi}%
+  \fi
+  \ignorespaces}    
+%</package>  
+%    \end{macrocode}
+
+%    \begin{macrocode}
+%<*latex-lab>
+\ProvidesFile{sec-tagging-latex-lab-testphase.ltx}
+        [2023-02-12 v0.81 code related to the tagging of sectioning commands]        
+\RequirePackage{latex-lab-testphase-sec-tagging}
+%</latex-lab>
+%    \end{macrocode}


Property changes on: trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-sec-tagging.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-testphase.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-testphase.dtx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-testphase.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,7 +1,7 @@
 % \iffalse meta-comment
 %
 %% File: latex-lab-testphase.dtx
-% Copyright (C) 2021-2022 The LaTeX Project
+% Copyright (C) 2021-2023 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
@@ -51,14 +51,60 @@
 %
 %
 % \section{The Implementation}
+% new-or-1 contains the code for header and footer (tagging and
+% suppressing links) and is always loaded
+%    \begin{macrocode}
+%<*new-or-1> 
+\ProvidesFile{new-or-1-latex-lab-testphase.ltx}
+              [2022-11-04 v0.1a  latex-lab wrapper new-or-1]
+%</new-or-1>
+%    \end{macrocode}
+% new-or combines all new-or parts (currently 1+2)
+%    \begin{macrocode}
+%<*new-or> 
+\ProvidesFile{new-or-latex-lab-testphase.ltx}
+              [2022-11-04 v0.1a  latex-lab wrapper new-or]
+%</new-or>
+%    \end{macrocode}
+%    \begin{macrocode}
+%<*phase-I> 
+\ProvidesFile{phase-I-latex-lab-testphase.ltx}
+              [2023-02-04 v0.1b  latex-lab wrapper phase-I]
+%</phase-I>
+%    \end{macrocode}
+%    \begin{macrocode}
+%<*phase-II> 
+\ProvidesFile{phase-II-latex-lab-testphase.ltx}
+              [2022-11-04 v0.1a  latex-lab wrapper phase-II]
+%</phase-II>
+%    \end{macrocode}
+%    \begin{macrocode}
+%<*phase-III> 
+\ProvidesFile{phase-III-latex-lab-testphase.ltx}
+              [2023-03-06 v0.1a  latex-lab wrapper phase-III]
+\input{phase-II-latex-lab-testphase.ltx}
+\RequirePackage{latex-lab-testphase-block-tagging}
+\RequirePackage{latex-lab-testphase-sec-tagging}
+\RequirePackage{latex-lab-testphase-toc-tagging}             
+%</phase-III>
+%    \end{macrocode}
+%
+% this is only provided for compatibility
+%    \begin{macrocode}
+%<*tagpdf> 
+\ProvidesFile{tagpdf-latex-lab-testphase.ltx}
+              [2022-11-04 v0.1a  latex-lab wrapper tagpdf (deprecated)]
+%</tagpdf>
+%    \end{macrocode}
+%    \begin{macrocode}
+%<*tagpdf|phase-I|phase-II|new-or|new-or-1>
+\RequirePackage{latex-lab-testphase-new-or-1}
+%</tagpdf|phase-I|phase-II|new-or|new-or-1>
+%    \end{macrocode}  
 %  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}
- }
- {}
+\RequirePackage{latex-lab-testphase-new-or-2}
 %</tagpdf|phase-II|new-or>
 %    \end{macrocode}
 %    \begin{macrocode}
@@ -70,10 +116,10 @@
 \AddToDocumentProperties [document]{testphase/tagpdf}{loaded}
 %</tagpdf|phase-I|phase-II>
 %<tagpdf|phase-II>\tagpdfsetup{activate,paratagging,interwordspace}
+%<tagpdf|phase-II>\AddToDocumentProperties [document]{tagging/para}{active}
 %<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}
 %
@@ -80,5 +126,23 @@
 %    \begin{macrocode}
 %</tagpdf|phase-I|phase-II>
 %    \end{macrocode}
+% Wrapper files for math tagging:
+%    \begin{macrocode}
+%<*math-lab>
+\ProvidesFile{math-latex-lab-testphase.ltx}
+        [2023-01-07 v0.8 code related to the math tagging]
+\RequirePackage{latex-lab-testphase-math}
+%</math-lab>
+%    \end{macrocode}
+%    \begin{macrocode}
+%<*math-sty>
+\ProvidesPackage{latex-lab-testphase-math}
+        [2023-01-07 v0.8 code related to the math tagging]
+\input{latex-lab-mathtagging.ltx}
+\input{latex-lab-amsmath.ltx}
+\input{latex-lab-mathtools.ltx}
+\input{latex-lab-mathpkg.ltx}
+%</math-sty>
+%    \end{macrocode}
 % \Finale
 %

Added: trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-toc-hyperref-changes.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-toc-hyperref-changes.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-toc-hyperref-changes.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,203 @@
+% \iffalse meta-comment
+%
+%% File: toc-hyperref-changes.dtx (C) Copyright 2022-2023 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-toc-hyperref-changes.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+% \title{The \textsf{toc-hyperref-changes} package\\
+% Changes and additions to hyperref related to toc entries}
+% \author{\LaTeX{} Project\thanks{Initial implementation done by Ulrike Fischer}}
+% \date{Version 0.81 2023-02-10}
+%
+% \maketitle
+%
+% \newcommand{\xt}[1]{\textsl{\textsf{#1}}}
+% \newcommand{\TODO}[1]{\textbf{[TODO:} #1\textbf{]}}
+% \newcommand{\docclass}{document class \marginpar{\raggedright document class
+% customizations}}
+%
+% \providecommand\hook[1]{\texttt{#1}}
+%
+% \begin{abstract}
+% \end{abstract}
+%
+% \section{Introduction}
+%
+% The followings contains various change needed for hyperref for the new toc tagging
+% code. They should be only loaded if hyperref is used!
+%    \begin{macrocode}
+%<*package>
+%    \end{macrocode}
+%
+% \section{Changes for hyperref}
+% \subsection{\cs{contentsline},\cs{addcontentsline}}
+% The standard \cs{contentsline} and \cs{addcontentsline}
+% should also be used with hyperref (together
+% with more changes below) so we have to disable the redefinition in hyperref (this 
+% requires hyperref version 7.00v!
+%    \begin{macrocode}
+\def\hyper at nopatch@toc{}
+\AddToHook{package/hyperref/after}
+ {
+   \@ifpackagelater{hyperref}{2023-02-07}{}
+   {\PackageWarning{latex-lab-testphase-toc-tagging}{hyperref too old}{}}
+ }  
+%    \end{macrocode}
+%
+% \subsection{Add links to toc entries}
+%    \begin{macrocode}
+\ExplSyntaxOn
+\AddToHook{package/hyperref/after}
+ {
+   \AddToHook{contentsline/text/before}[hyp]
+     {
+       \tl_if_blank:VF \@contentsline at arg@two%text
+        {
+          \tl_if_blank:VF\@contentsline at arg@four%destination
+            {
+              \int_case:nnF {\Hy at linktoc}
+                {
+                  {0}{} %none
+                  {1}{\hyper at linkstart{link}{\@contentsline at arg@four}} %section
+                  {2}{} %page
+                }
+                {\hyper at linkstart{link}{\@contentsline at arg@four}} %all
+            }
+          }
+      }
+    \AddToHook{contentsline/text/after}[hyp]
+      {
+        \tl_if_blank:VF \@contentsline at arg@two
+         {
+           \tl_if_blank:VF\@contentsline at arg@four
+             {
+               \int_case:nnF {\Hy at linktoc}
+                 {
+                   {0}{} %none
+                   {1}{\hyper at linkend} %section
+                   {2}{} %page
+                 }
+                 {\hyper at linkend} %all
+             } % none
+           }
+       }
+
+    \AddToHook{contentsline/page/before}[hyp]
+      {
+        \tl_if_blank:VF \@contentsline at arg@three
+         {
+           \tl_if_blank:VF\@contentsline at arg@two
+             {
+               \int_case:nnF {\Hy at linktoc}
+                 {
+                   {0}{} %none
+                   {1}{} %section
+                   {2}{\hyper at linkstart{link}{\@contentsline at arg@four}} %page
+                 }
+                 {\hyper at linkstart{link}{\@contentsline at arg@four}} %all
+             } % none
+           }
+       }
+    \AddToHook{contentsline/page/after}[hyp]
+      {
+        \tl_if_blank:VF \@contentsline at arg@three
+         {
+           \tl_if_blank:VF\@contentsline at arg@four
+             {
+               \int_case:nnF {\Hy at linktoc}
+                 {
+                   {0}{} %none
+                   {1}{} %section
+                   {2}{\hyper at linkend} %page
+                 }
+                 {\hyper at linkend} %all
+             } % none
+           }
+       }
+    \AddToHook{cmd/addcontentsline/before}[hyp]
+     {%
+       \ExpandArgs{ooo}
+       \Hy at addcontentsline@addbookmark
+         {\addcontentsline at arg@one}
+         {\addcontentsline at arg@two}
+         {\addcontentsline at arg@three}%
+     }   
+   }    
+\ExplSyntaxOff
+%    \end{macrocode}
+% \subsection{Add bookmark code to \cs{addcontentsline}}
+%
+%    \begin{macrocode}
+\newcommand\Hy at addcontentsline@addbookmark[3]%#1 toc type, #2 level, #3 content
+  {%
+   \ifx\@currentHref\@empty
+    \Hy at Warning{%
+      No destination for bookmark of \string\addcontentsline,%
+      \MessageBreak destination is added%
+     }%
+    \phantomsection
+  \fi
+  \begingroup
+    \expandafter\ifx\csname toclevel@#2\endcsname\relax
+      \begingroup
+        \def\Hy at tempa{#1}%
+        \ifx\Hy at tempa\Hy at bookmarkstype
+          \Hy at WarningNoLine{%
+            bookmark level for unknown #2 defaults to 0%
+          }%
+        \else
+          \Hy at Info{bookmark level for unknown #2 defaults to 0}%
+        \fi
+      \endgroup
+      \expandafter\gdef\csname toclevel@#2\endcsname{0}%
+    \fi
+    \edef\Hy at toclevel{\csname toclevel@#2\endcsname}%
+    \Hy at writebookmark{\csname the#2\endcsname}%
+      {#3}%
+      {\@currentHref}%
+      {\Hy at toclevel}%
+      {#1}%
+    \ifHy at verbose
+      \begingroup
+        \def\Hy at tempa{#3}%
+        \@onelevel at sanitize\Hy at tempa
+        \let\temp at online\on at line
+        \let\on at line\@empty
+        \Hy at Info{%
+          bookmark\temp at online:\MessageBreak
+          thecounter {\csname the#2\endcsname}\MessageBreak
+          text {\Hy at tempa}\MessageBreak
+          reference {\@currentHref}\MessageBreak
+          toclevel {\Hy at toclevel}\MessageBreak
+          type {#1}%
+        }%
+      \endgroup
+    \fi
+   \endgroup
+  }
+%    \end{macrocode}
+%    \begin{macrocode}
+%</package>
+%    \end{macrocode}


Property changes on: trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-toc-hyperref-changes.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-toc-kernel-changes.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-toc-kernel-changes.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-toc-kernel-changes.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,443 @@
+% \iffalse meta-comment
+%
+%% File: toc-kernel-functions.dtx (C) Copyright 2022-2023 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-toc-kernel-changes.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+% \title{The \textsf{toc-kernel-changes} package\\
+% Changes and additions to the kernel related to tagging and links in toc entries}
+% \author{\LaTeX{} Project\thanks{Initial implementation done by Ulrike Fischer}}
+% \date{Version 0.81 2023-02-10}
+%
+% \maketitle
+%
+% \newcommand{\xt}[1]{\textsl{\textsf{#1}}}
+% \newcommand{\TODO}[1]{\textbf{[TODO:} #1\textbf{]}}
+% \newcommand{\docclass}{document class \marginpar{\raggedright document class
+% customizations}}
+%
+% \providecommand\hook[1]{\texttt{#1}}
+%
+% \begin{abstract}
+% \end{abstract}
+%
+% \section{Introduction}
+%
+% The followings contains various changes to kernel commands
+% needed for the tagging of table of contents and similar lists.
+% \section{General kernel and class changes}
+% 
+% Some of the changes can probably could go into the kernel. 
+% This are marked with [kernel?],
+% the other are marked with [latex-lab]. A few changes must be done in the classes.
+% They are marked as [class]. They are inserted with hooks here: this will break
+% if a non-standard class is used.
+%
+% \subsection{Providing the counter representation \cs{theHxx} generally}
+% [kernel?]
+%
+% The \cs{theHxx} representation allows to create a unique representation of a counter
+% that is for example used to create destination names. It will also be needed
+% to add |/Ref| keys to various tagging structures. It makes therefore sense
+% to provide it by default as soon as a counter is created. The |\@addtoreset| change
+% (taken also from hyperref) tries to ensure the counter stays unique if it is reset.
+%
+% At first we suppress the patches from hyperref:
+%    \begin{macrocode}
+%<*kernelchange>
+\def\hyper at nopatch@counter{}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\def\@definecounter#1{\expandafter\newcount\csname c@#1\endcsname
+     \setcounter{#1}\z@
+     \global\expandafter\let\csname cl@#1\endcsname\@empty
+     \@addtoreset{#1}{@ckpt}%
+     \global\expandafter\let\csname p@#1\endcsname\@empty
+     \expandafter\gdef\csname theH#1\endcsname{\the\value{#1}}%new
+     \expandafter
+     \gdef\csname the#1\expandafter\endcsname\expandafter
+          {\expandafter\@arabic\csname c@#1\endcsname}}
+\def\@addtoreset#1#2{\expandafter\@cons\csname cl@#2\endcsname {{#1}}%
+  \expandafter\gdef\csname theH#1\endcsname{\csname theH#2\endcsname.\the\value{#1}}%
+}
+%    \end{macrocode}
+% The following counters are defined in the kernel
+%    \begin{macrocode}
+\gdef\theHenumi{\the\value{enumi}}
+\gdef\theHenumii{\the\value{enumii}}
+\gdef\theHenumiii{\the\value{enumiii}}
+\gdef\theHenumiv{\the\value{enumiv}}
+\gdef\theHequation{\the\value{equation}}
+\gdef\theHfootnote{\the\value{footnote}}
+\gdef\theHmpfootnote{\the\value{mpfootnote}}
+%    \end{macrocode}
+%
+% \subsection{Providing and updating \cs{@currentHref}}
+% [kernel?]
+%
+%  \cs{@currentHref} contains the current unique representation of a counter.
+%  It is useful also without hyperref as it allows to connect with a |/Ref|
+%  key a toc entry with the heading it refers too. So \cs{refstepcounter}
+%  is extended to update the command. This is done at the begin so that the
+%  hyperref code can still adapt it later (using the cmd/refstepcounter/after hook
+%  would be too late, and could also break with cleverref.)
+%
+%  We also provide a kernel version that hyperref doesn't touch and so will never
+%  set a target.
+%    \begin{macrocode}
+\def\@currentHref{}
+\def\refstepcounter#1{\stepcounter{#1}%
+    \edef\@currentcounter{#1}%
+    \xdef\@currentHref {#1.\csname theH#1\endcsname}%
+    \protected at edef\@currentlabel
+       {\csname p@#1\expandafter\endcsname\csname the#1\endcsname}%
+}
+\let\@kernel at refstepcounter\refstepcounter
+%    \end{macrocode}
+%
+% \subsection{Assigning the headings level numbers}
+% [kernel?]
+%
+% The code for the toc must be able to compare the level of |subsection| against
+% |section|. So some numbers are needed. It uses for now the commands used by
+% |hyperref| for the bookmark levels. While headings are more a class thing, it
+% could make sense to provide a standard set already in the kernel.
+% The numbers are a bit different to the one in hyperref, but imho sensible.
+% 
+% Note for the future: 
+% once that heading stuff is turned into template 
+% instances the template should set that number.
+%    \begin{macrocode}
+\def\toclevel at part{-1}
+\def\toclevel at chapter{0}
+\def\toclevel at section{1}
+\def\toclevel at subsection{2}
+\def\toclevel at subsubsection{3}
+\def\toclevel at paragraph{4}
+\def\toclevel at subparagraph{5}
+\def\toclevel at figure{1}
+\def\toclevel at table{1}
+%</kernelchange>
+%    \end{macrocode}
+% \subsection{load kernel changes}
+%    \begin{macrocode}
+%<*package>
+\RequirePackage{latex-lab-kernel-changes}
+%    \end{macrocode}
+%
+% \subsection{\cs{contentsline} extension}
+% [latex-lab]
+% The tagging code must add code at the begin and end of \cs{contentsline}.
+% This code must have access to the arguments. We set it up as config point
+% for now.
+%    \begin{macrocode}
+\def\@contentsline at cfgpoint@before#1#2#3#4{}
+\def\@contentsline at cfgpoint@after#1#2#3#4{}
+\def\@contentsline at arg@one{}%level
+\def\@contentsline at arg@two{}%text
+\def\@contentsline at arg@three{}%page
+\def\@contentsline at arg@four{}%destination  
+\def\contentsline#1#2#3#4%
+  {%
+    \def\@contentsline at arg@one{#1}%level
+    \def\@contentsline at arg@two{#2}%text
+    \def\@contentsline at arg@three{#3}%page
+    \def\@contentsline at arg@four{#4}%destination  
+    \@contentsline at cfgpoint@before{#1}{#2}{#3}{#4}%
+    %\gdef\@contentsline at destination{#4}%
+    \csname l@#1\endcsname{#2}{#3}%
+    \@contentsline at cfgpoint@after{#1}{#2}{#3}{#4}%
+  }
+%    \end{macrocode}
+%
+% \subsection{\cs{addcontentsline} changes}
+% [latex-lab]
+%
+% \cs{addcontentsline} should always write the unique counter representation
+% \cs{@currentHref} so that we can create the |/Ref| key. At the same time
+% we need a hook, so that hyperref can add its bookmarks code. The generic hook
+% would be ok, but we need the arguments, so we store them first.
+%
+%    \begin{macrocode}
+\NewHook{cmd/addcontentsline/before}
+\def\addcontentsline#1#2#3{% toc extension, type, tag
+    \def\addcontentsline at arg@one{#1}% name??
+    \def\addcontentsline at arg@two{#2}%
+    \def\addcontentsline at arg@three{#3}%
+    \UseHook{cmd/addcontentsline/before}%
+    \addtocontents{#1}{%
+      \protect\contentsline{#2}{#3}{\thepage}{\@currentHref}\protected at file@percent
+    }}
+%    \end{macrocode}
+%
+% \subsection{\cs{@starttoc}}
+% [kernel?]
+%
+% We add a configuration point before and after reading the file
+% for the tagging.
+%    \begin{macrocode}
+\def\@starttoc at cfgpoint@before#1{}
+\def\@starttoc at cfgpoint@after#1{}
+\def\@starttoc#1{%
+  \begingroup
+    \makeatletter
+    \@starttoc at cfgpoint@before{#1}%
+    \@input{\jobname.#1}%
+    \@starttoc at cfgpoint@after{#1}
+    \if at filesw
+      \expandafter\newwrite\csname tf@#1\endcsname
+      \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax
+    \fi
+    \@nobreakfalse
+  \endgroup}
+%    \end{macrocode}
+%
+% \subsection{Formatting of the toc entries}
+%
+% \subsubsection{Kernel commands}
+% [latex-lab] or [kernel?]?
+%
+% We need hooks before and after the content and before and after the page number.
+% The number needs some thing so that it can be tagged as label.
+% The text and the page
+% hooks are used in manual \cs{l at xx} commands and in \cs{l at xx} defined by
+% \cs{@dottedtocline} or by other means.
+%    \begin{macrocode}
+\NewMirroredHookPair{contentsline/number/before}{contentsline/number/after}%
+\NewMirroredHookPair{contentsline/text/before}{contentsline/text/after}%
+\NewMirroredHookPair{contentsline/page/before}{contentsline/page/after}%
+%    \end{macrocode}
+%
+% The dot in the leader must be set as artifact.
+% But luatex requires that the mc are set outside the leaders.
+% So we need a config point.
+%
+% \cs{@dottedtocline} needs hooks and formatting commands.
+%    \begin{macrocode}
+\def\@dottedtocline at cfgpoint@leaders#1{#1}
+
+\def\@dottedtocline#1#2#3#4#5{%
+  \ifnum #1>\c at tocdepth \else
+    \vskip \z@ \@plus.2\p@
+    {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
+     \parindent #2\relax\@afterindenttrue
+     \interlinepenalty\@M
+     \leavevmode
+     \@tempdima #3\relax
+     \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
+     \UseHook{contentsline/text/before}%
+     \csname contentsline at text@#1 at format\endcsname{#4}%
+     \UseHook{contentsline/text/after}%
+     \nobreak
+     \@dottedtocline at cfgpoint@leaders{%
+       \leaders\hbox{$\m at th
+         \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
+          mu$}\hfill}%
+     \nobreak
+     \hb at xt@\@pnumwidth{\hfil\normalfont \normalcolor
+     \UseHook{contentsline/page/before}%
+     #5%
+     \UseHook{contentsline/page/after}%
+                        \kern-\p@\kern\p@}%
+     \par}%
+  \fi}
+%    \end{macrocode}
+%
+% \subsubsection{\cs{numberline}}
+% [kernel?]
+% Inside or outside the box?
+%    \begin{macrocode}
+\def\numberline#1{\hb at xt@\@tempdima{%
+  \UseHook{contentsline/number/before}%
+  #1\hfil
+  \UseHook{contentsline/number/after}%
+  }}
+%    \end{macrocode}
+%
+% \subsubsection{\cs{l at xx} in the classes}
+% Depending on the class we have to redefine also more commands
+% For other classes it should be documented what is needed.
+%    \begin{macrocode}
+\AddToHook{class/article/after}
+ {
+  \renewcommand*\l at part[2]{%
+  \ifnum \c at tocdepth >-2\relax
+    \addpenalty\@secpenalty
+    \addvspace{2.25em \@plus\p@}%
+    \setlength\@tempdima{3em}%
+    \begingroup
+      \parindent \z@ \rightskip \@pnumwidth
+      \parfillskip -\@pnumwidth
+      {\leavevmode
+       \large \bfseries
+       \UseHook{contentsline/text/before}%
+       \csname contentsline at text@-1 at format\endcsname{#1}%
+       \UseHook{contentsline/text/after}%
+       \hfil
+       \hb at xt@\@pnumwidth{\hss
+       \UseHook{contentsline/page/before}%
+       #2%
+       \UseHook{contentsline/page/after}%
+                          \kern-\p@\kern\p@}}\par
+       \nobreak
+    \endgroup
+  \fi}
+\renewcommand*\l at section[2]{%
+  \ifnum \c at tocdepth >\z@
+    \addpenalty\@secpenalty
+    \addvspace{1.0em \@plus\p@}%
+    \setlength\@tempdima{1.5em}%
+    \begingroup
+      \parindent \z@ \rightskip \@pnumwidth
+      \parfillskip -\@pnumwidth
+      \leavevmode \bfseries
+      \advance\leftskip\@tempdima
+      \hskip -\leftskip
+       \UseHook{contentsline/text/before}%
+       \csname contentsline at text@1 at format\endcsname{#1}%
+       \UseHook{contentsline/text/after}%
+       \nobreak\hfil
+      \nobreak\hb at xt@\@pnumwidth{\hss
+      \UseHook{contentsline/page/before}%
+       #2%
+      \UseHook{contentsline/page/after}%
+      \kern-\p@\kern\p@}\par
+    \endgroup
+  \fi}
+ }
+\AddToHook{class/report/after}
+ {
+    \renewcommand*\l at part[2]{%
+     \ifnum \c at tocdepth >-2\relax
+       \addpenalty{-\@highpenalty}%
+       \addvspace{2.25em \@plus\p@}%
+       \setlength\@tempdima{3em}%
+       \begingroup
+         \parindent \z@ \rightskip \@pnumwidth
+         \parfillskip -\@pnumwidth
+         {\leavevmode
+          \large \bfseries
+          \UseHook{contentsline/text/before}%
+          \csname contentsline at text@-1 at format\endcsname{#1}%
+          \UseHook{contentsline/text/after}%
+          \hfil
+          \hb at xt@\@pnumwidth{\hss
+          \UseHook{contentsline/page/before}%
+          #2%
+          \UseHook{contentsline/page/after}%
+                             \kern-\p@\kern\p@}}\par
+          \nobreak
+       \endgroup
+     \fi}
+   \renewcommand*\l at chapter[2]{%
+     \ifnum \c at tocdepth >\m at ne
+       \addpenalty{-\@highpenalty}%
+       \vskip 1.0em \@plus\p@
+       \setlength\@tempdima{1.5em}%
+       \begingroup
+         \parindent \z@ \rightskip \@pnumwidth
+         \parfillskip -\@pnumwidth
+         \leavevmode \bfseries
+         \advance\leftskip\@tempdima
+         \hskip -\leftskip
+         \UseHook{contentsline/text/before}%
+         \csname contentsline at text@0 at format\endcsname
+           {#1}%
+         \UseHook{contentsline/text/after}%
+          \nobreak\hfil
+         \nobreak\hb at xt@\@pnumwidth{\hss
+          \UseHook{contentsline/page/before}%
+          #2%
+          \UseHook{contentsline/page/after}%
+                                    \kern-\p@\kern\p@}\par
+         \penalty\@highpenalty
+       \endgroup
+     \fi}
+ }
+\AddToHook{class/book/after}
+ {
+    \renewcommand*\l at part[2]{%
+     \ifnum \c at tocdepth >-2\relax
+       \addpenalty{-\@highpenalty}%
+       \addvspace{2.25em \@plus\p@}%
+       \setlength\@tempdima{3em}%
+       \begingroup
+         \parindent \z@ \rightskip \@pnumwidth
+         \parfillskip -\@pnumwidth
+         {\leavevmode
+          \large \bfseries
+          \UseHook{contentsline/text/before}%
+          \csname contentsline at text@-1 at format\endcsname{#1}%
+          \UseHook{contentsline/text/after}%
+          \hfil
+          \hb at xt@\@pnumwidth{\hss
+          \UseHook{contentsline/page/before}%
+          #2%
+          \UseHook{contentsline/page/after}%
+                             \kern-\p@\kern\p@}}\par
+          \nobreak
+       \endgroup
+     \fi}
+   \renewcommand*\l at chapter[2]{%
+     \ifnum \c at tocdepth >\m at ne
+       \addpenalty{-\@highpenalty}%
+       \vskip 1.0em \@plus\p@
+       \setlength\@tempdima{1.5em}%
+       \begingroup
+         \parindent \z@ \rightskip \@pnumwidth
+         \parfillskip -\@pnumwidth
+         \leavevmode \bfseries
+         \advance\leftskip\@tempdima
+         \hskip -\leftskip
+         \UseHook{contentsline/text/before}%
+         \csname contentsline at text@0 at format\endcsname
+           {#1}%
+         \UseHook{contentsline/text/after}%
+          \nobreak\hfil
+         \nobreak\hb at xt@\@pnumwidth{\hss
+          \UseHook{contentsline/page/before}%
+          #2%
+          \UseHook{contentsline/page/after}%
+                                    \kern-\p@\kern\p@}\par
+         \penalty\@highpenalty
+       \endgroup
+     \fi}
+ }
+%    \end{macrocode}
+%    \begin{macrocode}
+%</package>
+%    \end{macrocode}
+
+%    \begin{macrocode}
+%<*latex-lab>
+\ProvidesFile{toc-tagging-latex-lab-testphase.ltx}
+        [2022-10-26 v0.8 code related to the tagging of toc and similar lists]
+
+\RequirePackage{latex-lab-testphase-toc-tagging}
+
+%</latex-lab>
+%    \end{macrocode}


Property changes on: trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-toc-kernel-changes.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-toc-tagging-functions.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-toc-tagging-functions.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-toc-tagging-functions.dtx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,365 @@
+% \iffalse meta-comment
+%
+%% File: toc-tagging-functions.dtx (C) Copyright 2022-2023 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-toc-tagging-functions.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+%
+% \title{The \textsf{toc-tagging-functions} package\\
+% Tagpdf functions related to the tagging of toc and similar lists}
+% \author{\LaTeX{} Project\thanks{Initial implementation done by Ulrike Fischer}}
+% \date{Version 0.81 2023-02-10}
+%
+% \maketitle
+%
+% \newcommand{\xt}[1]{\textsl{\textsf{#1}}}
+% \newcommand{\TODO}[1]{\textbf{[TODO:} #1\textbf{]}}
+% \newcommand{\docclass}{document class \marginpar{\raggedright document class
+% customizations}}
+%
+% \providecommand\hook[1]{\texttt{#1}}
+%
+% \begin{abstract}
+% \end{abstract}
+% 
+% Header for the testphase package
+%    \begin{macrocode}
+%<*header>
+\ProvidesExplPackage {latex-lab-testphase-toc-tagging} {2023-02-10} {0.81}
+  { commands related to the tagging of toc-like lists}
+%</header>  
+%    \end{macrocode}
+%
+% \section{Introduction}
+%
+% The followings contains various functions related to the tagging of the
+% table of contents and similar list. The functions will at some time
+% be moved inside the tagpdf code.
+%    \begin{macrocode}
+%<*package>
+%<@@=tag>
+%    \end{macrocode}
+% \section{Temporary variables}
+% \begin{macro}{\l_@@_toc_tmpa_tl}
+%    \begin{macrocode}
+\tl_new:N \l_@@_toc_tmpa_tl 
+%    \end{macrocode}
+% \end{macro}
+%
+% \section{General struct commands}
+% The following variables and commands are not restricted to toc, but
+% probably will be need in other places too.
+% \begin{variable}{\g_@@_struct_dest_num_prop}
+% This variable records for (some or all, not clear yet)
+% destination names the related structure number to allow
+% to reference them in a Ref. The key is the destination.
+% Moved into tagpdf!
+% \end{variable}
+%
+% We use \cs{refstepcounter} to store the relation between
+% destination names/\cs{@currentHref} and structure numbers
+%
+% TODO: the functions should be moved into tagpdf so that one
+% doesn't has to test if the prop exists or not.
+%    \begin{macrocode}
+\AddToHook{cmd/refstepcounter/after}
+ {
+   \tl_if_blank:VF \@currentHref
+    {
+      \prop_if_exist:NT \g_@@_struct_dest_num_prop
+        {
+         \prop_gput:Nxx \g_@@_struct_dest_num_prop {\@currentHref}{\tag_get:n{struct_num}}
+        } 
+    }
+ }
+\AddToHook{cmd/H at refstepcounter/after}
+ {
+   \tl_if_blank:VF \@currentHref
+    {
+      \prop_if_exist:NT \g_@@_struct_dest_num_prop
+        {
+          \prop_gput:Nxx \g_@@_struct_dest_num_prop {\@currentHref}{\tag_get:n{struct_num}}
+        }  
+    }
+ }
+%    \end{macrocode}
+% \begin{variable}{\g_@@_struct_ref_by_dest_prop}
+% This variable contains structures whose Ref key should be updated
+% at the end to point to structured related with this destination.
+% As this is probably need in other places too, it is not only a toc-variable.
+% Moved into tagpdf!
+% \end{variable}
+%
+% \begin{macro}{\g_@@_struct_ref_by_dest:}
+%  This command is executed and update the Ref keys
+%  of the structures listed in |\g_@@_struct_ref_by_dest_prop|.
+%  It is currently only relevant for the |TOCI|. But other structures
+%  could need that later too.
+%  The command is executed in the |tagpdf/finish/before| hook.
+%    \begin{macrocode}
+\msg_new:nnn { tag } {struct-dest-unknown}
+ {
+   Destination~#1~has~no~related~structure.\\
+   /Ref~for~structure~#2~not~updated
+ }
+
+\cs_new_protected:Npn \g_@@_struct_ref_by_dest:
+  {
+    \prop_map_inline:Nn\g_@@_struct_ref_by_dest_prop
+      {
+        \prop_get:NnNTF \g_@@_struct_dest_num_prop {##2} \l_@@_tmpa_tl
+          {
+            \@@_struct_gput_data_ref:ee
+              { ##1 }
+              { \tag_struct_object_ref:e{ \l_@@_tmpa_tl }}
+          }
+          {
+            \msg_warning:nnnn {tag}{struct-dest-unknown}{##2}{ ##1}
+          }
+      }
+  }
+\hook_gput_code:nnn {tagpdf/finish/before}{tagpdf/struct/Ref}{\g_@@_struct_ref_by_dest:}
+%    \end{macrocode}
+% \end{macro}
+%
+% \section{Toc code}
+% \begin{variable}{\g_@@_toc_level_int,\g_@@_toc_stack_seq}
+% |\g_@@_toc_level_int| records in a toc the current absolute level.
+% We must close open structures at the end of the toc, for this
+% we maintain a stack |\g_@@_toc_stack_seq|.
+%    \begin{macrocode}
+\int_new:N \g_@@_toc_level_int
+\seq_new:N \g_@@_toc_stack_seq
+%    \end{macrocode}
+% \end{variable}
+
+% \begin{macro}{\_tag_toc_starttoc_init:n}
+% The init code clears the stack, and set the level to -100
+% and start to TOC structure. We also disable paratagging.
+% The |/Title| is currently simply the type, but this could be done nicer.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_toc_starttoc_init:n #1
+ {
+    \bool_set_false:N \l_@@_para_bool
+    \seq_gclear:N \g_@@_toc_stack_seq
+    \int_gset:Nn  \g_@@_toc_level_int {-100}
+    \tag_struct_begin:n{tag=TOC,title=#1}
+ }
+%    \end{macrocode}
+% Now map it into the config point:
+%    \begin{macrocode}
+\cs_set_protected:Npn\@starttoc at cfgpoint@before#1
+  {
+    \@@_toc_starttoc_init:n{#1}
+  }
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@@_toc_starttoc_finalize:}
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_toc_starttoc_finalize:
+ {
+    \int_step_inline:nn
+      {\seq_count:N \g_@@_toc_stack_seq }
+      {\tag_struct_end:}
+    \tag_struct_end:
+    \seq_gclear:N \g_@@_toc_stack_seq
+ }
+%    \end{macrocode}
+% Now map it into the config point:
+%    \begin{macrocode}
+\cs_set_protected:Npn\@starttoc at cfgpoint@after#1
+  {
+    \@@_toc_starttoc_finalize:
+  }
+%    \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\@@_toc_end:n}
+% This commands ends all TOC on the stack with a level higher than the argument
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_toc_end:n #1 
+ {
+   \seq_get:NNT\g_@@_toc_stack_seq \l_@@_toc_tmpa_tl 
+     {
+       \bool_lazy_and:nnT
+         {
+           \str_if_eq_p:ee{\tl_head:N\l_@@_toc_tmpa_tl}{TOC}
+         }
+         {
+           \int_compare_p:nNn {#1}<{\tl_tail:N \l_@@_toc_tmpa_tl}
+         }
+         {
+           \seq_gpop:NN\g_@@_toc_stack_seq \l_@@_toc_tmpa_tl 
+           \tag_struct_end:
+           \@@_toc_end:n{#1}
+         }
+     }
+ }
+\cs_generate_variant:Nn \@@_toc_end:n {e} 
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@@_toc_contentsline_begin:nnn}
+% This is main command executed at the begin of a |\contentsline|.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_toc_contentsline_begin:nnn #1 #2 #3 %#1 level, #2 content, #3 destination
+  {
+   \tag_if_active:T
+     {
+%    \end{macrocode}
+% We detect the intended level by checking the value of |toclevel at ...|
+% (currently only provided by hyperref, but should be there always).
+% To be on the safe side we set it to 1 if not defined.
+%    \begin{macrocode}
+       \ExpandArgs{c}\providecommand { toclevel@#1 }{ 1 } %  just in case ...
+       \int_compare:nNnF { \use:c{toclevel@#1} } > {\use:c{c at tocdepth}}
+        {
+%    \end{macrocode}
+% if level goes up, start new sub TOC unless we are at the begin
+%    \begin{macrocode}
+          \bool_lazy_and:nnT
+            { \int_compare_p:nNn { \g_@@_toc_level_int } > {-100} }
+            { \int_compare_p:nNn { \use:c{toclevel@#1} }   > { \g_@@_toc_level_int } }
+            {
+              \seq_gpush:Nx \g_@@_toc_stack_seq {{TOC}\use:c{toclevel@#1}}
+              \tag_struct_begin:n{tag=TOC}
+            }
+%    \end{macrocode}
+% if level goes down close all TOC's with a higher level
+%    \begin{macrocode}
+          \int_compare:nNnT
+            { \use:c{toclevel@#1} } < { \g_@@_toc_level_int }
+            {
+              \@@_toc_end:e { \use:c{toclevel@#1} }
+            }
+%    \end{macrocode}
+%if same level do nothing
+% update toclevel to the current level.
+%    \begin{macrocode}
+          \int_gset:Nn \g_@@_toc_level_int { \use:c{toclevel@#1} }
+%    \end{macrocode}
+% now open the TOCI, the tagging of the
+% inner structure is left to the |\l at xxx| commands.
+% setting the title is not strictly necessary but looks nicer
+% but we have to remove the |\numberline|
+% \begin{NOTE}{UF}
+% perhaps keep the number? How to insert a space then
+% \end{NOTE}
+%    \begin{macrocode}
+          \group_begin:
+           \text_declare_expand_equivalent:Nn \numberline \use_none:n
+           \exp_args:Nx \tag_struct_begin:n{tag=TOCI,title={\text_purify:n {#2}}}
+%    \end{macrocode}
+% The TOCI structure should get a /Ref, so we put a request with its destination
+% name into the prop.
+% \begin{NOTE}{UF}
+% This only works with hyperref currently. Without hyperref we
+% need to store fake names.
+% \end{NOTE}
+%    \begin{macrocode}
+           \prop_gput:Nxx \g_@@_struct_ref_by_dest_prop
+             { \tag_get:n {struct_num} }{#3}
+           \seq_gpush:Nx \g_@@_toc_stack_seq {{TOCI}\use:c{toclevel@#1}}
+          \group_end:
+       }
+    }
+  }
+%    \end{macrocode}
+% Now map it into the config point:
+%    \begin{macrocode}
+\cs_set_protected:Npn\@contentsline at cfgpoint@before#1#2#3#4
+  {
+    \@@_toc_contentsline_begin:nnn {#1}{#2}{#4}
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@@_toc_contentsline_end:n}
+% This is the closing code of a |\contentsline|.
+% If the contentsline was actually printed, the code has to
+% close the TOCI structure and to update the stack.
+%    \begin{macrocode}
+\msg_new:nnn {tag}{toc-no-TOCI}{Missing~TOCI~structure~on~toc~stack}
+
+\cs_new_protected:Npn \@@_toc_contentsline_end:n #1 %#1 level name
+  {
+    \int_compare:nNnF { \use:c{toclevel@#1} } > {\use:c{c at tocdepth}}
+      {
+        \seq_gpop:NNT \g_@@_toc_stack_seq\l_@@_tmpa_tl
+          {
+            \str_if_eq:eeTF{\tl_head:N\l_@@_tmpa_tl}{TOCI}
+             {
+               \tag_struct_end:
+             }
+             {
+               \msg_warning:nn{tag}{toc-no-TOCI}
+             }  
+          }
+      }
+  }
+%    \end{macrocode}
+% Now we map it to the config point
+%    \begin{macrocode}
+\cs_set_protected:Npn \@contentsline at cfgpoint@after #1#2#3#4
+ {
+   \@@_toc_contentsline_end:n {#1}
+ }
+%    \end{macrocode}
+% \end{macro}
+%
+% \subsection{Tagging of the content}
+% This need discussion.
+%
+%    \begin{macrocode}
+\AddToHook{contentsline/text/before}[tagpdf]{%
+  \tag_struct_begin:n{tag=Reference}%
+  \tag_mc_begin:n{tag=Reference}}
+\AddToHook{contentsline/text/after}[tagpdf]{%
+  \tag_mc_end:}
+\AddToHook{contentsline/page/before}[tagpdf]{%
+  \tag_mc_begin:n{tag=Reference}}
+\AddToHook{contentsline/page/after}[tagpdf]{%
+  \tag_mc_end:
+  \tag_struct_end:} %Reference
+\AddToHook{contentsline/number/before}[tagpdf]{%
+  \tag_mc_end:
+  \tag_struct_begin:n{tag=Lbl}%
+  \tag_mc_begin:n{tag=Lbl}}
+\AddToHook{contentsline/number/after}[tagpdf]{%
+  \tag_mc_end:
+  \tag_struct_end:
+  \tag_mc_begin:n{tag=Reference}}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\def\@dottedtocline at cfgpoint@leaders#1{%
+ \tag_mc_begin:n{artifact}\nobreak#1\nobreak\tag_mc_end:}
+%    \end{macrocode}
+
+%
+%    \begin{macrocode}
+%</package>
+%    \end{macrocode}


Property changes on: trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab-toc-tagging-functions.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab.ins	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/source/latex-dev/latex-lab/latex-lab.ins	2023-03-09 21:08:53 UTC (rev 66491)
@@ -3,7 +3,7 @@
 %% driver files from the dtx file(s) in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 2021-2022 The LaTeX Project
+%% Copyright (C) 2021-2023 The LaTeX Project
 %%
 %%
 %% This file is part of the `LaTeX-lab Bundle' for LaTeX.
@@ -35,7 +35,7 @@
 
 This is a generated file.
 
-Copyright 2021,2022 LaTeX Project
+Copyright 2021-2023 LaTeX Project
 
 This file was generated from file(s) of the  `LaTeX-lab Bundle'.
 ------------------------------------------------------------------------------------
@@ -68,15 +68,48 @@
 % #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{phase-III-latex-lab-testphase.ltx}{\from{latex-lab-testphase.dtx}{phase-III}}}
 
+
 \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}}}
+\generate{\file{new-or-1-latex-lab-testphase.ltx}{\from{latex-lab-testphase.dtx}{new-or-1}}}
 
+\generate{\file{math-latex-lab-testphase.ltx}{\from{latex-lab-testphase.dtx}{math-lab}}}
+\generate{\file{latex-lab-testphase-math.sty}{\from{latex-lab-testphase.dtx}{math-sty}}}  
+
 % 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-testphase-new-or-2.sty}{\from{latex-lab-new-or-2.dtx}{code}}}
+\generate{\file{latex-lab-testphase-new-or-1.sty}{\from{latex-lab-new-or-1.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}}}
+\generate{\file{latex-lab-mathtagging.ltx}{\from{latex-lab-mathtagging.dtx}{kernel}}}
 
+\generate{\file{latex-lab-amsmath.ltx}{\from{latex-lab-amsmath.dtx}{kernel}}}
+\generate{\file{latex-lab-mathtools.ltx}{\from{latex-lab-mathtools.dtx}{kernel}}}
+\generate{\file{latex-lab-mathpkg.ltx}{\from{latex-lab-mathpkg.dtx}{kernel}}}
 
+\generate{\file{latex-lab-testphase-sec-tagging.sty}{\from{latex-lab-sec-tagging.dtx}{package}}}
+\generate{\file{sec-tagging-latex-lab-testphase.ltx}{\from{latex-lab-sec-tagging.dtx}{latex-lab}}}
+
+
+\generate{\file{latex-lab-testphase-toc-tagging.sty}{%
+  \from{latex-lab-toc-tagging-functions.dtx}{header}
+  \from{latex-lab-toc-kernel-changes.dtx}{package}
+  \from{latex-lab-toc-tagging-functions.dtx}{package}
+  \from{latex-lab-toc-hyperref-changes.dtx}{package}}}
+
+\generate{\file{toc-tagging-latex-lab-testphase.ltx}{%
+    \from{latex-lab-toc-kernel-changes.dtx}{latex-lab}}}
+    
+\generate{\file{latex-lab-kernel-changes.sty}
+  {\from{latex-lab-toc-kernel-changes.dtx}{kernelchange}
+   \from{latex-lab-sec-tagging.dtx}{kernelchange}
+  }}    
+
+
+\generate{\file{latex-lab-testphase-block-tagging.sty}{\from{latex-lab-block-tagging.dtx}{package}}}
+\generate{\file{block-tagging-latex-lab-testphase.ltx}{\from{latex-lab-block-tagging.dtx}{latex-lab}}}
+
 \endbatchfile

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/alltt.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/alltt.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/alltt.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ansinew.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ansinew.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ansinew.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/applemac.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/applemac.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/applemac.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/article.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/article.cls	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/article.cls	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/article.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/article.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/article.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ascii.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ascii.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ascii.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/atbegshi-ltx.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/atbegshi-ltx.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/atbegshi-ltx.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -42,7 +42,7 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 %%
-%% Copyright (C) 2020-2022
+%% Copyright (C) 2020-2023
 %%               Frank Mittelbach, LaTeX Team
 %%
 %%% From File: ltshipout.dtx

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/atveryend-ltx.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/atveryend-ltx.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/atveryend-ltx.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/bezier.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/bezier.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/bezier.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/bk10.clo
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/bk10.clo	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/bk10.clo	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/bk11.clo
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/bk11.clo	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/bk11.clo	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/bk12.clo
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/bk12.clo	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/bk12.clo	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/book.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/book.cls	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/book.cls	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/book.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/book.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/book.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/cp1250.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/cp1250.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/cp1250.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/cp1252.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/cp1252.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/cp1252.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/cp1257.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/cp1257.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/cp1257.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/cp437.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/cp437.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/cp437.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/cp437de.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/cp437de.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/cp437de.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/cp850.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/cp850.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/cp850.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/cp852.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/cp852.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/cp852.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/cp858.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/cp858.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/cp858.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/cp865.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/cp865.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/cp865.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/decmulti.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/decmulti.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/decmulti.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/doc.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/doc.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/doc.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/docstrip.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/docstrip.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/docstrip.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/exscale.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/exscale.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/exscale.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/fix-cm.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/fix-cm.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/fix-cm.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/fixltx2e.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/fixltx2e.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/fixltx2e.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/flafter.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/flafter.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/flafter.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/fleqn.clo
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/fleqn.clo	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/fleqn.clo	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/fleqn.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/fleqn.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/fleqn.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/fltrace.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/fltrace.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/fltrace.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/fontenc.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/fontenc.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/fontenc.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/fontmath.cfg
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/fontmath.cfg	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/fontmath.cfg	2023-03-09 21:08:53 UTC (rev 66491)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/fontmath.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/fontmath.ltx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/fontmath.ltx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/fonttext.cfg
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/fonttext.cfg	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/fonttext.cfg	2023-03-09 21:08:53 UTC (rev 66491)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/fonttext.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/fonttext.ltx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/fonttext.ltx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/graphpap.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/graphpap.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/graphpap.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/hyphen.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/hyphen.ltx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/hyphen.ltx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/idx.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/idx.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/idx.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ifthen.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ifthen.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ifthen.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/inputenc.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/inputenc.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/inputenc.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/lablst.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/lablst.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/lablst.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/latex.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/latex.ltx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/latex.ltx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -61,7 +61,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -706,7 +706,7 @@
 \def\fmtname{LaTeX2e}
 \edef\fmtversion
    {2023-06-01}
-\def\patch at level{-1}
+\def\patch at level{-2}
 \edef\development at branch@name{develop \the\year-\the\month-\the\day}
 \iffalse
 \def\reserved at a#1/#2/#3\@nil{%
@@ -6626,10 +6626,10 @@
 \def\@setpar#1{\def\par{#1}\def\@par{#1}}
 \def\@par{\let\par\@@par\par}
 \def\@restorepar{\def\par{\@par}}
-%% File: ltpara.dtx (C) Copyright 2020-2021
+%% File: ltpara.dtx (C) Copyright 2020-2023
 %%% From File: ltpara.dtx
-\def\ltparaversion{v1.0k}
-\def\ltparadate{2022/05/13}
+\def\ltparaversion{v1.0l}
+\def\ltparadate{2023/01/30}
 
 
 \ExplSyntaxOn
@@ -6650,7 +6650,8 @@
   \hook_use:n {para/before}
   \group_begin:
     \tex_everypar:D {}
-    \skip_zero:N \tex_parskip:D
+    \skip_set:Nn \tex_parskip:D
+         { \if at minipage -\tex_parskip:D \else: \c_zero_skip \fi: }
     \tex_noindent:D
   \group_end:
   \tex_everypar:D{\g__para_standard_everypar_tl}
@@ -7097,6 +7098,7 @@
   \global\let\do\noexpand
   \UseOneTimeHook{begindocument/end}%
   \ignorespaces}
+\let\do\noexpand
 \NewHook{begindocument}
 \NewHook{begindocument/before}
 \NewHook{begindocument/end}
@@ -15597,7 +15599,7 @@
 \declare at file@substitution{atveryend.sty}{atveryend-ltx.sty}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%
-%% Copyright (C) 2020-2022
+%% Copyright (C) 2020-2023
 %%               Frank Mittelbach, LaTeX Team
 %%
 %%% From File: ltshipout.dtx

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/latex209.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/latex209.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/latex209.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -15,7 +15,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -65,7 +65,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -6915,10 +6915,10 @@
 \let\@latex at note@no at line\@latex at info@no at line
 \EndIncludeInRelease
 %%% From File: ltpar.dtx
-%% File: ltpara.dtx (C) Copyright 2020-2021
+%% File: ltpara.dtx (C) Copyright 2020-2023
 %%% From File: ltpara.dtx
-\def\ltparaversion{v1.0k}
-\def\ltparadate{2022/05/13}
+\def\ltparaversion{v1.0l}
+\def\ltparadate{2023/01/30}
 
 
 \ExplSyntaxOn
@@ -6930,6 +6930,8 @@
 \let \@kernel at before@para at begin  \@empty
 \let \@kernel at after@para at end     \@empty
 \let \@kernel at after@para at after   \@empty
+\IncludeInRelease{2023/06/01}
+       {\g__para_standard_everypar_tl}{minipage~ fix}
 \tl_new:N \g__para_standard_everypar_tl
 \tl_gset:Nn \g__para_standard_everypar_tl {
   \box_gset_to_last:N \g_para_indent_box
@@ -6941,6 +6943,31 @@
   \hook_use:n {para/before}
   \group_begin:
     \tex_everypar:D {}
+    \skip_set:Nn \tex_parskip:D
+         { \if at minipage -\tex_parskip:D \else: \c_zero_skip \fi: }
+    \tex_noindent:D
+  \group_end:
+  \tex_everypar:D{\g__para_standard_everypar_tl}
+  \@kernel at before@para at begin
+  \hook_use:n {para/begin}
+  \if_mode_horizontal: \else:
+    \msg_error:nnnn { hooks }{ para-mode }{begin}{vertical} \fi:
+  \__para_handle_indent:
+}
+\EndIncludeInRelease
+\IncludeInRelease{2021/06/01}
+       {\g__para_standard_everypar_tl}{minipage~ fix}
+
+\tl_gset:Nn \g__para_standard_everypar_tl {
+  \box_gset_to_last:N \g_para_indent_box
+  \group_begin:
+    \tex_par:D
+  \group_end:
+  \tex_everypar:D { \msg_error:nnnn { hooks }{ para-mode }{before}{vertical} }
+  \@kernel at before@para at before
+  \hook_use:n {para/before}
+  \group_begin:
+    \tex_everypar:D {}
     \skip_zero:N \tex_parskip:D
     \tex_noindent:D
   \group_end:
@@ -6951,6 +6978,14 @@
     \msg_error:nnnn { hooks }{ para-mode }{begin}{vertical} \fi:
   \__para_handle_indent:
 }
+\cs_set:Npn \__para_tmp:w #1#2#3#4#5 { }
+\tl_gput_right:Nx \g__para_standard_everypar_tl {
+    \exp_not:N \the
+    \exp_not:N \toks
+    \exp_after:wN \__para_tmp:w \token_to_meaning:N \everypar
+    \c_space_tl
+}
+\EndIncludeInRelease
 \tex_everypar:D{\g__para_standard_everypar_tl}
 \newtoks \everypar
 
@@ -7497,6 +7532,7 @@
   \global\let\do\noexpand
   \UseOneTimeHook{begindocument/end}%
   \ignorespaces}
+\let\do\noexpand
 \NewHook{begindocument}
 \NewHook{begindocument/before}
 \NewHook{begindocument/end}
@@ -15463,7 +15499,7 @@
 \EndIncludeInRelease
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%
-%% Copyright (C) 2020-2022
+%% Copyright (C) 2020-2023
 %%               Frank Mittelbach, LaTeX Team
 %%
 %%% From File: ltshipout.dtx

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/latexsym.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/latexsym.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/latexsym.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/latin1.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/latin1.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/latin1.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/latin10.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/latin10.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/latin10.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/latin2.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/latin2.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/latin2.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/latin3.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/latin3.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/latin3.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/latin4.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/latin4.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/latin4.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/latin5.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/latin5.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/latin5.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/latin9.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/latin9.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/latin9.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/lcyenc.dfu
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/lcyenc.dfu	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/lcyenc.dfu	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/leqno.clo
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/leqno.clo	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/leqno.clo	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/leqno.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/leqno.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/leqno.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/letter.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/letter.cls	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/letter.cls	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/letter.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/letter.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/letter.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ltluatex.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ltluatex.lua	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ltluatex.lua	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 -- (but please observe conditions on bug reports sent to that address!)
 -- 
 -- 
--- Copyright (C) 2015-2022
+-- Copyright (C) 2015-2023
 -- The LaTeX Project and any individual authors listed elsewhere
 -- in this file.
 -- 
@@ -45,7 +45,6 @@
 local luatexbase = luatexbase
 local string_gsub      = string.gsub
 local tex_count        = tex.count
-local tex_setattribute = tex.setattribute
 local tex_setcount     = tex.setcount
 local texio_write_nl   = texio.write_nl
 local flush_list       = node.flush_list

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ltluatex.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ltluatex.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ltluatex.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -47,7 +47,7 @@
   #1#2[#3]{\endgroup\immediate\write-1{File: #1 #3}}
 \fi
 \ProvidesFile{ltluatex.tex}%
-[2022/10/03 v1.2a
+[2023/01/19 v1.2b
   LuaTeX support for plain TeX (core)
 ]
 \edef\etatcatcode{\the\catcode`\@}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ltnews.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ltnews.cls	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ltnews.cls	2023-03-09 21:08:53 UTC (rev 66491)
@@ -429,6 +429,30 @@
 \newcommand{\@year}{\ClassError{ltnews}
    {No \protect\publicationyear~given}\@eha}
 
+\newcommand{\publicationday}{\renewcommand{\@day}}
+\newcommand{\@day}{01} % most releases happen on 1st of a month
+
+\newcommand{\publicationdate}{%
+  % support draft ltnews, \publicationyear{2023 --- DRAFT ...}
+  \expandafter\@gobblenonyear\@year\@nil
+  -\@julianmonthtonum\@month-\two at digits\@day}
+
+\newcommand{\@julianmonthtonum}[1]{\@nameuse{@juliantonum#1}}
+\def\@juliantonumJanuary  {01}
+\def\@juliantonumFebruary {02}
+\def\@juliantonumMarch    {03}
+\def\@juliantonumApril    {04}
+\def\@juliantonumMay      {05}
+\def\@juliantonumJune     {06}
+\def\@juliantonumJuly     {07}
+\def\@juliantonumAugust   {08}
+\def\@juliantonumSeptember{09}
+\def\@juliantonumOctober  {10}
+\def\@juliantonumNovember {11}
+\def\@juliantonumDecember {12}
+
+\long\def\@gobblenonyear#1#2#3#4#5\@nil{#1#2#3#4}
+
 \newcommand{\publicationissue}{\renewcommand{\@issue}}
 \newcommand{\@issue}{\ClassError{ltnews}
    {No \protect\publicationissue~given}\@eha}
@@ -449,7 +473,8 @@
    \twocolumn[{%
       \parbox[t][7\baselineskip]{\textwidth}{%
          \@titlefont\@title\\[\medskipamount]
-         \normalfont\normalsize\issuename~\@issue, \@month~\@year
+         \normalfont\normalsize\issuename~\@issue,
+         \@month~\@year~(\publicationdate)%
       }%
    }]%
    \thispagestyle{titlepage}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ltxcheck.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ltxcheck.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ltxcheck.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ltxdoc.cfg
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ltxdoc.cfg	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ltxdoc.cfg	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ltxdoc.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ltxdoc.cls	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ltxdoc.cls	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ly1enc.dfu
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ly1enc.dfu	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ly1enc.dfu	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/macce.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/macce.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/macce.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/makeidx.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/makeidx.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/makeidx.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/newlfont.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/newlfont.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/newlfont.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/next.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/next.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/next.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/nfssfont.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/nfssfont.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/nfssfont.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/oldlfont.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/oldlfont.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/oldlfont.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/omlcmm.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/omlcmm.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/omlcmm.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/omlcmr.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/omlcmr.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/omlcmr.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/omlenc.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/omlenc.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/omlenc.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/omllcmm.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/omllcmm.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/omllcmm.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/omscmr.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/omscmr.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/omscmr.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/omscmsy.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/omscmsy.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/omscmsy.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/omsenc.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/omsenc.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/omsenc.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/omsenc.dfu
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/omsenc.dfu	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/omsenc.dfu	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/omslcmsy.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/omslcmsy.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/omslcmsy.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/omxcmex.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/omxcmex.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/omxcmex.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/omxlcmex.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/omxlcmex.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/omxlcmex.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/openbib.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/openbib.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/openbib.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmdh.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmdh.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmdh.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmfib.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmfib.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmfib.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmfr.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmfr.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmfr.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmr.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmr.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmr.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmss.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmss.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmss.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmtt.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmtt.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmtt.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmvtt.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmvtt.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmvtt.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ot1enc.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ot1enc.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ot1enc.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ot1enc.dfu
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ot1enc.dfu	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ot1enc.dfu	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ot1lcmss.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ot1lcmss.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ot1lcmss.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ot1lcmtt.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ot1lcmtt.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ot1lcmtt.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ot2enc.dfu
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ot2enc.dfu	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ot2enc.dfu	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ot4enc.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ot4enc.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ot4enc.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/preload.cfg
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/preload.cfg	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/preload.cfg	2023-03-09 21:08:53 UTC (rev 66491)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/preload.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/preload.ltx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/preload.ltx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/proc.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/proc.cls	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/proc.cls	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/proc.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/proc.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/proc.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/report.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/report.cls	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/report.cls	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/report.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/report.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/report.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/sfonts.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/sfonts.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/sfonts.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/shortvrb.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/shortvrb.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/shortvrb.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/showidx.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/showidx.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/showidx.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/size10.clo
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/size10.clo	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/size10.clo	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/size11.clo
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/size11.clo	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/size11.clo	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/size12.clo
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/size12.clo	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/size12.clo	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/slides.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/slides.cls	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/slides.cls	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/slides.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/slides.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/slides.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/slides.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/slides.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/slides.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/structuredlog.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/structuredlog.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/structuredlog.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/syntonly.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/syntonly.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/syntonly.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/t1cmdh.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/t1cmdh.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t1cmdh.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/t1cmfib.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/t1cmfib.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t1cmfib.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/t1cmfr.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/t1cmfr.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t1cmfr.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/t1cmr.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/t1cmr.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t1cmr.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/t1cmss.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/t1cmss.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t1cmss.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/t1cmtt.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/t1cmtt.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t1cmtt.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/t1cmvtt.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/t1cmvtt.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t1cmvtt.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/t1enc.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/t1enc.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t1enc.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/t1enc.dfu
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/t1enc.dfu	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t1enc.dfu	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/t1enc.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/t1enc.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t1enc.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/t1lcmss.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/t1lcmss.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t1lcmss.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/t1lcmtt.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/t1lcmtt.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t1lcmtt.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/t2aenc.dfu
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/t2aenc.dfu	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t2aenc.dfu	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/t2benc.dfu
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/t2benc.dfu	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t2benc.dfu	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/t2cenc.dfu
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/t2cenc.dfu	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t2cenc.dfu	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/testpage.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/testpage.tex	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/testpage.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2022
+% Copyright (C) 1993-2023
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/textcomp-2018-08-11.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/textcomp-2018-08-11.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/textcomp-2018-08-11.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/textcomp.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/textcomp.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/textcomp.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/tracefnt.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/tracefnt.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/tracefnt.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ts1cmr.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ts1cmr.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ts1cmr.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ts1cmss.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ts1cmss.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ts1cmss.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ts1cmtt.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ts1cmtt.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ts1cmtt.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ts1cmvtt.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ts1cmvtt.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ts1cmvtt.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ts1enc.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ts1enc.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ts1enc.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ts1enc.dfu
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ts1enc.dfu	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ts1enc.dfu	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/tuenc.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/tuenc.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/tuenc.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/tulmdh.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/tulmdh.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/tulmdh.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 2016-2022
+%% Copyright (C) 2016-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/tulmr.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/tulmr.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/tulmr.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 2016-2022
+%% Copyright (C) 2016-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/tulmss.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/tulmss.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/tulmss.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 2016-2022
+%% Copyright (C) 2016-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/tulmssq.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/tulmssq.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/tulmssq.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 2016-2022
+%% Copyright (C) 2016-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/tulmtt.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/tulmtt.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/tulmtt.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 2016-2022
+%% Copyright (C) 2016-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/tulmvtt.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/tulmvtt.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/tulmvtt.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 2016-2022
+%% Copyright (C) 2016-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ucmr.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ucmr.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ucmr.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ucmss.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ucmss.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ucmss.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ucmtt.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ucmtt.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ucmtt.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ulasy.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ulasy.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ulasy.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ullasy.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ullasy.fd	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ullasy.fd	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/utf8-2018.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/utf8-2018.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/utf8-2018.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/utf8.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/utf8.def	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/utf8.def	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/utf8enc.dfu
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/utf8enc.dfu	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/utf8enc.dfu	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/x2enc.dfu
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/x2enc.dfu	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/x2enc.dfu	2023-03-09 21:08:53 UTC (rev 66491)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2022
+%% Copyright (C) 1993-2023
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Added: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/block-tagging-latex-lab-testphase.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/latex-lab/block-tagging-latex-lab-testphase.ltx	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex-dev/latex-lab/block-tagging-latex-lab-testphase.ltx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,48 @@
+%%
+%% This is file `block-tagging-latex-lab-testphase.ltx',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% latex-lab-block-tagging.dtx  (with options: `latex-lab')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright 2021-2023 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-block-tagging.dtx (C) Copyright 2021-2023 LaTeX Project
+
+\def\ltblocksversion{v0.8a}
+\def\ltblocksdate{2023/03/08}
+
+\ProvidesFile{block-tagging-latex-lab-testphase.ltx}
+        [\ltblocksdate\space \ltblocksversion\space
+                            blockenv implementation]
+\RequirePackage{latex-lab-testphase-block-tagging}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%
+%% End of file `block-tagging-latex-lab-testphase.ltx'.


Property changes on: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/block-tagging-latex-lab-testphase.ltx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/documentmetadata-support.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/latex-lab/documentmetadata-support.ltx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/latex-lab/documentmetadata-support.ltx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright 2021,2022 LaTeX Project
+%% Copyright 2021-2023 LaTeX Project
 %% 
 %% This file was generated from file(s) of the  `LaTeX-lab Bundle'.
 %% ------------------------------------------------------------------------------------
@@ -33,8 +33,8 @@
 %% 
 %% 
 %% File: documentmetadata-support.dtx
-\def\documentmetadatasupportversion{1.0b}
-\def\documentmetadatasupportdate{2022-14-04}
+\def\documentmetadatasupportversion{1.0c}
+\def\documentmetadatasupportdate{2023-01-07}
 
 \RequirePackage{pdfmanagement-testphase}
 \ExplSyntaxOn\makeatletter

Added: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/glyphtounicode-cmex.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/latex-lab/glyphtounicode-cmex.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex-dev/latex-lab/glyphtounicode-cmex.tex	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,141 @@
+% A subset of glyhtounicode-cmr.tex
+%
+% Copyright (c) 2008,  Han The Thanh <thanh at river-valley.org>
+% Copyright (c) 2014,  Peter Selinger <selinger at mathstat.dal.ca>
+% Copyright (c) 2018,  Ross Moore <ross.moore at mq.edu.au>
+%                      
+
+%% Glyphs from the cmex fonts:
+
+\pdfglyphtounicode{angbracketleftBig}{27E8 FE02}
+\pdfglyphtounicode{angbracketleftBigg}{27E8 FE04}
+\pdfglyphtounicode{angbracketleftbig}{27E8 FE01}
+\pdfglyphtounicode{angbracketleftbigg}{27E8 FE03}
+\pdfglyphtounicode{angbracketrightBig}{27E9 FE02}
+\pdfglyphtounicode{angbracketrightBigg}{27E9 FE04}
+\pdfglyphtounicode{angbracketrightbig}{27E9 FE01}
+\pdfglyphtounicode{angbracketrightbigg}{27E9 FE03}
+\pdfglyphtounicode{arrowbt}{2193}
+\pdfglyphtounicode{arrowdblbt}{21D3}
+\pdfglyphtounicode{arrowdbltp}{21D1}
+\pdfglyphtounicode{arrowhookleft}{21AA}
+\pdfglyphtounicode{arrowhookright}{21A9}
+\pdfglyphtounicode{arrowtp}{2191}
+\pdfglyphtounicode{arrowvertex}{23D0}
+\pdfglyphtounicode{arrowvertexdbl}{20E6}%  was {ED12}% PUA
+\pdfglyphtounicode{backslashBig}{005C FE02}
+\pdfglyphtounicode{backslashBigg}{005C FE04}
+\pdfglyphtounicode{backslashbig}{005C FE01}
+\pdfglyphtounicode{backslashbigg}{005C FE03}
+\pdfglyphtounicode{braceex}{23AA}
+\pdfglyphtounicode{bracehtipdownleft}{23DF}% was {ED17}% PUA
+\pdfglyphtounicode{bracehtipdownright}{23DF}%  was {ED18}% PUA
+\pdfglyphtounicode{bracehtipupleft}{23DE}%  was {ED19}% PUA
+\pdfglyphtounicode{bracehtipupright}{23DE}%  was {ED1A}% PUA
+\pdfglyphtounicode{braceleftBig}{007B FE02}
+\pdfglyphtounicode{braceleftBigg}{007B FE04}
+\pdfglyphtounicode{braceleftbig}{007B FE01}
+\pdfglyphtounicode{braceleftbigg}{007B FE03}
+\pdfglyphtounicode{braceleftbt}{23A9}
+\pdfglyphtounicode{braceleftmid}{23A8}
+\pdfglyphtounicode{bracelefttp}{23A7}
+\pdfglyphtounicode{bracerightBig}{007D FE02}
+\pdfglyphtounicode{bracerightBigg}{007D FE04}
+\pdfglyphtounicode{bracerightbig}{007D FE01}
+\pdfglyphtounicode{bracerightbigg}{007D FE03}
+\pdfglyphtounicode{bracerightbt}{23AD}
+\pdfglyphtounicode{bracerightmid}{23AC}
+\pdfglyphtounicode{bracerighttp}{23AB}
+\pdfglyphtounicode{bracketleftBig}{005B FE02}
+\pdfglyphtounicode{bracketleftBigg}{005B FE04}
+\pdfglyphtounicode{bracketleftbig}{005B FE01}
+\pdfglyphtounicode{bracketleftbigg}{005B FE03}
+\pdfglyphtounicode{bracketleftbt}{23A3}
+\pdfglyphtounicode{bracketleftex}{23A2}
+\pdfglyphtounicode{bracketlefttp}{23A1}
+\pdfglyphtounicode{bracketrightBig}{005D FE02}
+\pdfglyphtounicode{bracketrightBigg}{005D FE04}
+\pdfglyphtounicode{bracketrightbig}{005D FE01}
+\pdfglyphtounicode{bracketrightbigg}{005D FE03}
+\pdfglyphtounicode{bracketrightbt}{23A6}
+\pdfglyphtounicode{bracketrightex}{23A5}
+\pdfglyphtounicode{bracketrighttp}{23A4}
+\pdfglyphtounicode{ceilingleftBig}{2308 FE02}
+\pdfglyphtounicode{ceilingleftBigg}{2308 FE04}
+\pdfglyphtounicode{ceilingleftbig}{2308 FE01}
+\pdfglyphtounicode{ceilingleftbigg}{2308 FE03}
+\pdfglyphtounicode{ceilingrightBig}{2309 FE02}
+\pdfglyphtounicode{ceilingrightBigg}{2309 FE04}
+\pdfglyphtounicode{ceilingrightbig}{2309 FE01}
+\pdfglyphtounicode{ceilingrightbigg}{2309 FE03}
+\pdfglyphtounicode{circledotdisplay}{2A00 FE02}
+\pdfglyphtounicode{circledottext}{2A00 FE01}
+\pdfglyphtounicode{circlemultiplydisplay}{2A02 FE02}
+\pdfglyphtounicode{circlemultiplytext}{2A02 FE01}
+\pdfglyphtounicode{circleplusdisplay}{2A01 FE02}
+\pdfglyphtounicode{circleplustext}{2A01 FE01}
+\pdfglyphtounicode{contintegraldisplay}{222E FE02}
+\pdfglyphtounicode{contintegraltext}{222E FE01}
+\pdfglyphtounicode{coproductdisplay}{2210 FE02}
+\pdfglyphtounicode{coproducttext}{2210 FE01}
+\pdfglyphtounicode{floorleftBig}{230A FE02}
+\pdfglyphtounicode{floorleftBigg}{230A FE04}
+\pdfglyphtounicode{floorleftbig}{230A FE01}
+\pdfglyphtounicode{floorleftbigg}{230A FE03}
+\pdfglyphtounicode{floorrightBig}{230B FE02}
+\pdfglyphtounicode{floorrightBigg}{230B FE04}
+\pdfglyphtounicode{floorrightbig}{230B FE01}
+\pdfglyphtounicode{floorrightbigg}{230B FE03}
+\pdfglyphtounicode{hatwide}{02C6 FE01}
+\pdfglyphtounicode{hatwider}{02C6 FE02}
+\pdfglyphtounicode{hatwidest}{02C6 FE03}
+\pdfglyphtounicode{integraldisplay}{222B FE02}
+\pdfglyphtounicode{integraltext}{222B FE01}
+\pdfglyphtounicode{intersectiondisplay}{22C2 FE02}
+\pdfglyphtounicode{intersectiontext}{22C2 FE01}
+\pdfglyphtounicode{logicalanddisplay}{22C0 FE02}
+\pdfglyphtounicode{logicalandtext}{22C0 FE01}
+\pdfglyphtounicode{logicalordisplay}{22C1 FE02}
+\pdfglyphtounicode{logicalortext}{22C1 FE01}
+\pdfglyphtounicode{mapsto}{21A6}
+\pdfglyphtounicode{parenleftBig}{0028 FE02}
+\pdfglyphtounicode{parenleftBigg}{0028 FE04}
+\pdfglyphtounicode{parenleftbig}{0028 FE01}
+\pdfglyphtounicode{parenleftbigg}{0028 FE03}
+\pdfglyphtounicode{parenleftbt}{239D}
+\pdfglyphtounicode{parenleftex}{239C}
+\pdfglyphtounicode{parenlefttp}{239B}
+\pdfglyphtounicode{parenrightBig}{0029 FE02}
+\pdfglyphtounicode{parenrightBigg}{0029 FE04}
+\pdfglyphtounicode{parenrightbig}{0029 FE01}
+\pdfglyphtounicode{parenrightbigg}{0029 FE03}
+\pdfglyphtounicode{parenrightbt}{23A0}
+\pdfglyphtounicode{parenrightex}{239F}
+\pdfglyphtounicode{parenrighttp}{239E}
+\pdfglyphtounicode{productdisplay}{220F FE02}
+\pdfglyphtounicode{producttext}{220F FE01}
+\pdfglyphtounicode{radicalBig}{221A FE02}
+\pdfglyphtounicode{radicalBigg}{221A FE04}
+\pdfglyphtounicode{radicalbig}{221A FE01}
+\pdfglyphtounicode{radicalbigg}{221A FE03}
+\pdfglyphtounicode{radicalbt}{23B7}%  was {221A}
+\pdfglyphtounicode{radicaltp}{231C}%  was {ED6A}% PUA
+\pdfglyphtounicode{radicalvertex}{20D3}%  was {ED6B}% PUA
+\pdfglyphtounicode{slashBig}{002F FE02}
+\pdfglyphtounicode{slashBigg}{002F FE04}
+\pdfglyphtounicode{slashbig}{002F FE01}
+\pdfglyphtounicode{slashbigg}{002F FE03}
+\pdfglyphtounicode{summationdisplay}{2211 FE02}
+\pdfglyphtounicode{summationtext}{2211 FE01}
+\pdfglyphtounicode{tie}{2040}
+\pdfglyphtounicode{tildewide}{02DC FE01}
+\pdfglyphtounicode{tildewider}{02DC FE02}
+\pdfglyphtounicode{tildewidest}{02DC FE03}
+\pdfglyphtounicode{uniondisplay}{22C3 FE02}
+\pdfglyphtounicode{unionmultidisplay}{2A04 FE02}
+\pdfglyphtounicode{unionmultitext}{2A04 FE01}
+\pdfglyphtounicode{unionsqdisplay}{2A06 FE02}
+\pdfglyphtounicode{unionsqtext}{2A06 FE01}
+\pdfglyphtounicode{uniontext}{22C3 FE01}
+\pdfglyphtounicode{vextenddouble}{20E6}%  was {ED79}% PUA
+\pdfglyphtounicode{vextendsingle}{20D3}%%% was {23D0}


Property changes on: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/glyphtounicode-cmex.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-amsmath.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-amsmath.ltx	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-amsmath.ltx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,64 @@
+%%
+%% This is file `latex-lab-amsmath.ltx',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% latex-lab-amsmath.dtx  (with options: `kernel')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright 2021-2023 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-amsmath.dtx
+\ProvidesFile{latex-lab-amsmath.ltx}
+        [2023-01-05 v0.1a amsmath adaptions]
+\RequirePackage{tagpdf-base}
+\ExplSyntaxOn
+\AddToHook{package/amsmath/after}
+ {
+    \def\intertext@{%
+      \def\intertext##1{%
+        \ifvmode\else\\\@empty\fi
+        \noalign{%
+          \penalty\postdisplaypenalty\vskip\belowdisplayskip
+          \vbox{
+           \ifmeasuring@\tag_stop:\fi
+           \normalbaselines
+            \ifdim\linewidth=\columnwidth
+            \else \parshape\@ne \@totalleftmargin \linewidth
+            \fi
+            \tag_mc_end_push:
+            \tagpdfsetup{paratag=Span}%
+            \noindent\ignorespaces##1\par
+            \tag_mc_begin_pop:n{}}%
+          \penalty\predisplaypenalty\vskip\abovedisplayskip%
+        }%
+    }}
+  }
+\ExplSyntaxOff
+\endinput
+%%
+%% End of file `latex-lab-amsmath.ltx'.


Property changes on: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-amsmath.ltx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-footmisc.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-footmisc.ltx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-footmisc.ltx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright 2021,2022 LaTeX Project
+%% Copyright 2021-2023 LaTeX Project
 %% 
 %% This file was generated from file(s) of the  `LaTeX-lab Bundle'.
 %% ------------------------------------------------------------------------------------
@@ -385,7 +385,9 @@
 
 \ifFN at multiplefootnote
   \providecommand*{\multiplefootnotemarker}{3sp}
-  \providecommand*{\multfootsep}{,}
+  \ExplSyntaxOn
+  \providecommand*{\multfootsep}{\tag_mc_end_push:\tag_mc_begin:n{artifact},\tag_mc_end:\tag_mc_begin_pop:n{}}
+  \ExplSyntaxOff
   \AddToHook{fnmark}      {\FN at mf@check}
   \AddToHook{fnmark/end}  {\FN at mf@prepare}
   \def\FN at mf@prepare{%

Modified: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-footnotes.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-footnotes.ltx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-footnotes.ltx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright 2021,2022 LaTeX Project
+%% Copyright 2021-2023 LaTeX Project
 %% 
 %% This file was generated from file(s) of the  `LaTeX-lab Bundle'.
 %% ------------------------------------------------------------------------------------
@@ -34,34 +34,31 @@
 %% 
 %% File: latex-lab-footnotes.dtx
 \ProvidesFile{latex-lab-footnotes.ltx}
-        [2022-07-22 v0.6b changes to the footnote interfaces]
+        [2023-02-04 v0.7 changes to the footnote interfaces]
+%% alterations not covered:
 
-
-        % 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
+\prop_new:N \l__fnote_tmpa_prop
+\tl_new:N   \l__fnote_tmpa_tl
+\tl_new:N  \l_fnote_type_tl
+\tl_set:Nn \l_fnote_type_tl {default}
+\bool_new:N       \l_fnote_link_bool
+\bool_set_true:N  \l_fnote_link_bool
+\tl_new:N  \l_fnote_link_type_tl
+\tl_set:Nn \l_fnote_link_type_tl {link}
+\tl_new:N \l__fnote_linktarget_tl
+\tl_new:N \l__fnote_currentlabel_tl
 
+\seq_new:N  \l__fnote_currentrefs_seq
+\bool_new:N       \l__fnote_autodetect_bool
+\bool_set_true:N  \l__fnote_autodetect_bool
+\tl_new:N  \l__fnote_currentstruct_tl
+\tl_set:Nn \l__fnote_currentstruct_tl {1}
+\cs_generate_variant:Nn \ref_label:nn { Vn }
+\cs_generate_variant:Nn \ref_value:nn { Vn }
+\cs_generate_variant:Nn \prop_gput:Nnn {cxn}
+\cs_generate_variant:Nn \hook_gput_code:nnn{nne}
+\cs_generate_variant:Nn \tag_struct_use:n {e}
 \cs_new_protected:Npn \fnote_step_fnmark:nn #1#2 {
   \tl_if_novalue:nTF {#1}
     {
@@ -75,7 +72,6 @@
      \group_end:
     }
 }
-
 \cs_new_protected:Npn \fnote_set_fnmark:nn #1#2 {
   \tl_if_novalue:nTF {#1}
     {
@@ -88,19 +84,20 @@
      \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
+\NewMirroredHookPair{fntext/before}{fntext/after}
+\NewHook{fntext}
+\NewHook{fntext/para}
+\NewHook{fntext/begin}
+\NewHook{fntext/end}
+\bool_new:N        \g_fnote_debug_bool
+\bool_gset_true:N  \g_fnote_debug_bool
+\cs_new_protected:Npn \__fnote_debug_footnotemark:
+  {
+    \bool_if:NT \g_fnote_debug_bool
        {
          \LogHook{fnmark/before}
          \LogHook{fnmark}
@@ -109,8 +106,26 @@
          \LogHook{fnmark/after}
          \cs_gset_eq:NN \__fnote_debug_footnotemark: \prg_do_nothing:
        }
-}
-
+  }
+\cs_new_protected: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_footnotemark: {
   \__fnote_debug_footnotemark:
   \UseHook{fnmark/before}
@@ -125,8 +140,7 @@
      \@makefnmark
   \__fnote_footnotemark_finish:
 }
-
-\cs_new:Npn \__fnote_finish: {
+\cs_new_protected:Npn \__fnote_finish: {
   \UseHook{fnmark/end}
   \ifhmode
     \spacefactor \@x at sf \relax
@@ -135,39 +149,8 @@
 }
 
 \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}
@@ -201,32 +184,24 @@
   }
   \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
-}
-
-
-
+\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
-}
+\AtBeginDocument
+  {
+    \ifdim \footnotemargin=\maxdimen
+      \setlength\footnotemargin{1.8em}
+    \fi
+  }
 
 \cs_new_protected:Npn \fnote_makefntext:n #1 {
   \@makefntext at cfgpoint
@@ -248,16 +223,12 @@
   \@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
 
@@ -289,140 +260,246 @@
   { \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:
-     }
-}
+\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\footnotetext {o+m} {
-  \fnote_set_fnmark:nn {#1} \@mpfn
-  \@footnotetext {#2}
-}
+\DeclareDocumentCommand\footnotemark {o}
+  {
+    \fnote_step_fnmark:nn {#1} { footnote }
+    \@footnotemark
+  }
 
-
-\DeclareDocumentCommand\footnote {o+m} {
-  \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
-}
-
+\DeclareDocumentCommand\footref {m}
+  {
+    \begingroup
+      \unrestored at protected@xdef\@thefnmark{\ref*{#1}}%
+    \endgroup
+    \bool_set_false:N  \l__fnote_autodetect_bool
+    \tl_set:Nn \l__fnote_currentlabel_tl {#1}
+    \@footnotemark
+    \bool_set_true:N  \l__fnote_autodetect_bool
+  }
+\cs_new_protected:Npn \@mpfootnotetext at cfgpoint #1
+ {
+   \global\setbox\@mpfootins\vbox{%
+    \unvbox\@mpfootins
+    #1
+    }
+ }
+\RequirePackage{etoolbox}
+\ExplSyntaxOff
+\patchcmd\@iiiminipage
+ {\let\@footnotetext\@mpfootnotetext}
+ {\let\@footnotetext at cfgpoint\@mpfootnotetext at cfgpoint}
+ {}{\ERROR}
+\ExplSyntaxOn
+\AddToHook{class/memoir/before}
+  { \let\new at std@class at makecol\@makecol }
+\AddToHook{class/memoir/after}
+  {
+    \cs_set_eq:NN  \@footnotemark \fnote_footnotemark:
+    \cs_set_eq:NN  \@makefntext\old at std@class at makefntext
+    \cs_set_eq:NN  \@makecol\new at std@class at makecol
+  }
 \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
+\def\hyper at nopatch@footnote{}
+\AtBeginDocument
+  {
+   \providecommand\hyper at linkstart{\@gobbletwo}
+   \providecommand\hyper at linkend{\@empty}
+  }
+\AtBeginDocument
+ {
+   \@ifpackageloaded{hyperref}
      {
-       \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{}
+       \legacy_if:nF{Hy at hyperfootnotes}{\bool_set_false:N \l_fnote_link_bool}
      }
+     {
+       \bool_set_false:N \l_fnote_link_bool
+     }
+ }
+\ref_attribute_gset:nnnn {fnote/struct}{1}{now}{\l__fnote_currentstruct_tl}
+\cs_new_protected:Npn \__fnote_label_hook: {}
+\AddToHook{begindocument/before}
+  {
+    \RequirePackage{nameref}
+    \g at addto@macro\label at hook
+      {
+        \__fnote_label_hook:
+      }
+  }
+\AddToHook{fntext/begin}
+ {
+   \cs_set_protected:Npn \__fnote_label_hook:
+    {
+      \ref_label:Vn \label at name {fnote/struct}
+    }
+ }
+\cs_new_protected:Npn \fnote_new:nn #1 #2 % #1 name, #2 options
+ {
+   \prop_new:c { g__fnote_currentmarks_ #1 _prop }
+ }
+
+\fnote_new:nn {default}{}
+\cs_new_protected:Npn \fnote_mark_gput:nn #1 #2 % #1 the representation of the mark, #2 type
+ {
+   \prop_gput:cxn { g__fnote_currentmarks_ #2 _prop }
+     { \tag_get:n{struct_num} }
      { #1 }
-}
+ }
 
+\cs_generate_variant:Nn \fnote_mark_gput:nn {no,oo}
+\cs_new_protected:Npn \fnote_mark_gpop:nnN #1 #2 #3
+  {
+    \seq_clear:N #3
+    \prop_set_eq:Nc     \l__fnote_tmpa_prop { g__fnote_currentmarks_ #2 _prop }
+    \prop_map_inline:Nn \l__fnote_tmpa_prop
+      {
+        \tl_if_eq:nnT {#1} { ##2 }
+          {
+            \seq_put_right:Nn #3 { ##1 }
+            \prop_gremove:cn { g__fnote_currentmarks_ #2 _prop } {##1}
+          }
+      }
+  }
+\cs_generate_variant:Nn\fnote_mark_gpop:nnN  {ooN}
 
+\cs_new_protected:Npn \tag at FEMark #1  %#1 content
+  {
+    \tag_mc_end_push:
+    \tag_struct_begin:n { tag=footnotemark }
+     \bool_if:NTF \l__fnote_autodetect_bool
+      {
+        \fnote_mark_gput:oo {\@thefnmark}{\l_fnote_type_tl}
+        \tl_set:Nx \l__fnote_linktarget_tl {footnote*.\tag_get:n{struct_num}}
+      }
+      {
+        \hook_gput_code:nne {tagpdf/finish/before} {tagpdf/footnote}
+         {
+           \exp_not:N\fnote_gput_refs:ee
+            { \tag_get:n{struct_num} }
+            { \ref_value:Vn\l__fnote_currentlabel_tl {fnote/struct} }
+         }
+        \tl_set:Nx \l__fnote_linktarget_tl {footnote*.\ref_value:Vn\l__fnote_currentlabel_tl {fnote/struct}}
+      }
+     \tag_mc_begin:n{tag=Lbl}
+     %
+     \bool_if:NTF \l_fnote_link_bool
+      {
+        \exp_args:No
+           \hyper at linkstart
+           { \l_fnote_link_type_tl }
+           { \l__fnote_linktarget_tl }
+           #1
+           \hyper at linkend
+      }
+      { #1 }
+    \tag_mc_end:
+    \tag_struct_end:
+    \tag_mc_begin_pop:n{}
+   }
 \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_new_protected:Npn \__fnote_gput_ref:nn #1 #2 %#1 the structure number receiving the ref #2
+  {
+    \tag_if_active:T
+      {
+        \tag_struct_gput:nne {#1}{ref}{\tag_struct_object_ref:e { #2 }}
+      }
+  }
+\cs_new_protected:Npn \fnote_gput_refs:nn #1 #2 % pair of numbers
+  {
+    \__fnote_gput_ref:nn {#1}{#2}
+    \__fnote_gput_ref:nn {#2}{#1}
+  }
+\cs_generate_variant:Nn \fnote_gput_refs:nn {ee}
+\tl_new:N \l__fnote_dflt_struct_tl
+\tl_set:Nn \l__fnote_dflt_struct_tl {1}
+\cs_new_protected:Npn \tag at FENote #1#2 % #1 config point, \insert\footins  #2 content
+  {
+    \tag_mc_end_push:
+    \tag_check_child:nnTF {FENote}{pdf2}
+      {
+        \tag_struct_begin:n { tag=footnote }
+      }
+      {
+        \tag_struct_begin:n { tag=footnote,parent=\l__fnote_dflt_struct_tl }
+      }
+    \tl_set:Nx \l__fnote_currentstruct_tl { \tag_get:n{struct_num} }
+    \tag_struct_begin:n { tag=footnotelabel }\tag_struct_end:
+    \bool_if:NTF \l__fnote_autodetect_bool
+      {
+        \fnote_mark_gpop:ooN { \@thefnmark }{ \l_fnote_type_tl } \l__fnote_currentrefs_seq
+       \seq_map_inline:Nn \l__fnote_currentrefs_seq
+         {
+           \fnote_gput_refs:ee {##1}{ \l__fnote_currentstruct_tl }
+         }
+      }
+      {%no auto
 
-\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
+      }
+      #1 {#2}
+    \tag_struct_end:
+    \tag_mc_begin_pop:n{}
+  }
+\cs_set_eq:NN \@kernel at process@footnotetext \tag at FENote
+\cs_set_protected:Npn \@makefntext at cfgpoint #1 %#1 code that typesets the mark.
+  {
+    \noindent
+    \tag_mc_end_push:
+    \tag at FENoteLbl { #1 }
+    \tag_mc_begin_pop:n{}
+  }
+\cs_new_protected:Npn \tag at FENoteLbl #1
+  {
+     %\seq_show:N\l__fnote_currentrefs_seq
+     \seq_map_inline:Nn\l__fnote_currentrefs_seq {\MakeLinkTarget*{footnote*.##1}}
+     \MakeLinkTarget*{footnote*.\l__fnote_currentstruct_tl}
+     \tag_struct_begin:n { tag=NonStruct,parent=\l__fnote_currentstruct_tl +1 }
+      \tag_mc_begin:n { tag=Lbl }
+       #1
       \tag_mc_end:
-      %\tag_struct_end: %alternative location for structure end but ends inside a P
-    }
-    { #1 }
-}
+     \tag_struct_end:
+  }
+\cs_set_protected:Npn \@makefntext at cfgpointii #1
+  {
+    \tag_mc_end_push:
+    \tag at FENotetext { #1 }
+    \tag_mc_begin_pop:n{}
+  }
+\cs_new_protected:Npn \tag at FENotetext #1
+  {
+    \tag_mc_begin:n{}
+    #1
+    \tag_mc_end:
+  }
 
-
 \ExplSyntaxOff
 \endinput
 %%

Added: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-kernel-changes.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-kernel-changes.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-kernel-changes.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,100 @@
+%%
+%% This is file `latex-lab-kernel-changes.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% latex-lab-toc-kernel-changes.dtx  (with options: `kernelchange')
+%% latex-lab-sec-tagging.dtx  (with options: `kernelchange')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright 2021-2023 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: toc-kernel-functions.dtx (C) Copyright 2022-2023 LaTeX Project
+\def\hyper at nopatch@counter{}
+\def\@definecounter#1{\expandafter\newcount\csname c@#1\endcsname
+     \setcounter{#1}\z@
+     \global\expandafter\let\csname cl@#1\endcsname\@empty
+     \@addtoreset{#1}{@ckpt}%
+     \global\expandafter\let\csname p@#1\endcsname\@empty
+     \expandafter\gdef\csname theH#1\endcsname{\the\value{#1}}%new
+     \expandafter
+     \gdef\csname the#1\expandafter\endcsname\expandafter
+          {\expandafter\@arabic\csname c@#1\endcsname}}
+\def\@addtoreset#1#2{\expandafter\@cons\csname cl@#2\endcsname {{#1}}%
+  \expandafter\gdef\csname theH#1\endcsname{\csname theH#2\endcsname.\the\value{#1}}%
+}
+\gdef\theHenumi{\the\value{enumi}}
+\gdef\theHenumii{\the\value{enumii}}
+\gdef\theHenumiii{\the\value{enumiii}}
+\gdef\theHenumiv{\the\value{enumiv}}
+\gdef\theHequation{\the\value{equation}}
+\gdef\theHfootnote{\the\value{footnote}}
+\gdef\theHmpfootnote{\the\value{mpfootnote}}
+\def\@currentHref{}
+\def\refstepcounter#1{\stepcounter{#1}%
+    \edef\@currentcounter{#1}%
+    \xdef\@currentHref {#1.\csname theH#1\endcsname}%
+    \protected at edef\@currentlabel
+       {\csname p@#1\expandafter\endcsname\csname the#1\endcsname}%
+}
+\let\@kernel at refstepcounter\refstepcounter
+\def\toclevel at part{-1}
+\def\toclevel at chapter{0}
+\def\toclevel at section{1}
+\def\toclevel at subsection{2}
+\def\toclevel at subsubsection{3}
+\def\toclevel at paragraph{4}
+\def\toclevel at subparagraph{5}
+\def\toclevel at figure{1}
+\def\toclevel at table{1}
+
+%% File: sec-tagging.dtx (C) Copyright 2022-2023 LaTeX Project
+\ifdefined\directlua
+ \pdfvariable gentounicode =1
+ \protected\def\pdfglyphtounicode {\pdfextension glyphtounicode }
+ \input{glyphtounicode}
+\fi
+ \input{glyphtounicode-cmex}
+\ExplSyntaxOn
+\int_new:N\g__kernel_target_int
+\RenewDocumentCommand\MakeLinkTarget{sO{}m}
+ {%
+  \ifvmode
+    \special{}%
+  \else
+    \@savsf\spacefactor
+    \smash{}%
+    \spacefactor\@savsf
+  \fi
+  \int_gincr:N\g__kernel_target_int
+  \tl_gset:Nx \@currentHref {target*.\int_use:N\g__kernel_target_int}
+ }
+\ExplSyntaxOff
+
+\endinput
+%%
+%% End of file `latex-lab-kernel-changes.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-kernel-changes.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-mathpkg.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-mathpkg.ltx	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-mathpkg.ltx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,51 @@
+%%
+%% This is file `latex-lab-mathpkg.ltx',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% latex-lab-mathpkg.dtx  (with options: `kernel')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright 2021-2023 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-mathpkg.dtx
+\ProvidesFile{latex-lab-mathpkg.ltx}
+        [2023-01-05 v0.1a mathpkg adaptions]
+\RequirePackage{tagpdf-base}
+\AddToHook{package/breqn/after}{
+   \RegisterMathEnvironment{dmath}
+   \RegisterMathEnvironment{dgroup*}
+   \AddToHook{env/dmath/begin}{\tagpdfparaOff}
+   \AddToHook{env/dgroup*/begin}{\tagpdfparaOff}
+}
+\AddToHook {package/cases/before}{\RequirePackage{amsmath}}
+\AddToHook{package/cases/after}{
+  \RegisterMathEnvironment{subnumcases}
+}
+\endinput
+%%
+%% End of file `latex-lab-mathpkg.ltx'.


Property changes on: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-mathpkg.ltx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-mathtagging.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-mathtagging.ltx	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-mathtagging.ltx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,657 @@
+%%
+%% This is file `latex-lab-mathtagging.ltx',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% latex-lab-mathtagging.dtx  (with options: `kernel')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright 2021-2023 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-mathtagging.dtx
+\def\ltmathtaggingdate{2023-03-08}
+\def\ltmathtaggingversion{v0.5a}
+\ProvidesFile{latex-lab-mathtagging.ltx}
+             [\ltmathtaggingdate\space
+              \ltmathtaggingversion\space
+              Grab all the math(s) and tag it (experiments)]
+\AddToHook{begindocument/before}{\RequirePackage{latex-lab-testphase-block-tagging}}
+\ExplSyntaxOn
+\tl_gput_right:Nn \@kernel at before@begindocument
+  { \RequirePackage { amsmath } }
+\bool_new:N \l__math_collected_bool
+\tl_new:N \g__math_grabbed_env_tl
+\tl_new:N \g__math_grabbed_math_tl
+\cs_new_protected:Npn \__math_process:nn #1#2
+  {
+    \legacy_if:nF { measuring@ }
+      {
+        \tl_if_in:nnF {#2} { \m at th }
+          { \tl_trim_spaces_apply:nN {#2} \__math_process_auxi:nn {#1} }
+      }
+  }
+\cs_generate_variant:Nn \__math_process:nn { V }
+\cs_new_protected:Npn \__math_process_auxi:nn #1#2
+  {
+    \tl_gset:Nn \g__math_grabbed_env_tl {#2}
+    \tl_gset:Nn \g__math_grabbed_math_tl {#1}
+    \__math_process_auxii:nn {#2} {#1}
+  }
+\cs_new_protected:Npn \__math_process_auxii:nn #1#2 { }
+\cs_new_protected:Npn \math_processor:n #1
+  { \cs_set_protected:Npn \__math_process_auxii:nn ##1##2 {#1} }
+\cs_new_protected:Npn \__math_grab_dollar:w % $
+  #1 $
+  {
+    \tl_if_blank:nF {#1}
+      {
+        \__math_process:nn { math } {#1} % $
+        \tagmcend %end P-chunk, in code: \tag_mc_end_push:
+        \@kernel at math@begin
+        #1 $
+        \@kernel at math@end
+        \tagmcbegin{}  % restart P-chunk (whatsits in pdftex)
+      }
+  }
+
+\skip_new:N \l__math_tmpa_skip
+
+\cs_new_protected:Npn \__math_grab_dollardollar:w % $$
+  #1 $$
+  {
+    \tl_if_blank:nF {#1}
+      {
+        \__math_tag_dollardollar_display:nn { equation* }{#1}
+        #1
+        $$
+      }
+  }
+
+\cs_new_protected:Npn \@kernel at close@P {
+  \tagmcend %end P-chunk, in code: \tag_mc_end_push:
+        \int_gincr:N \g__tag_para_end_int
+        \bool_if:NT \l__tag_para_show_bool
+          { \tag_mc_begin:n{artifact}
+            \rlap{\color_select:n{red}\tiny\ \int_use:N\g__tag_para_end_int}
+            \tag_mc_end:
+          }
+        \tag_struct_end:
+}
+
+\cs_new_protected:Npn \__math_tag_dollardollar_display:nn #1#2 {
+  \__math_process:nn {#1} {#2}
+  \@kernel at close@P
+  \@kernel at math@begin
+%%
+}
+
+\cs_new_protected:Npn \__math_tag_dollardollar_display_end: {
+  \tagpdfparaOff
+  \para_raw_end:
+  \tagpdfparaOn
+  \l__math_tmpa_skip \lastskip
+  \@kernel at math@end
+  \penalty \postdisplaypenalty
+  \skip_vertical:n { -\l__math_tmpa_skip }
+  \@doendpe             % this has no \end{...} to take care of it
+}
+
+\cs_new_protected:Npn \__math_grab_inline:w % \(
+  #1 \)
+  {
+    \tl_if_blank:nF {#1}
+      {
+        \__math_process:nn { math } {#1}
+        $ #1 $
+      }
+    \bool_set_false:N \l__math_collected_bool
+  }
+\cs_new_protected:Npn \__math_grab_eqn:w % \[
+  #1 \]
+   {
+     \begin { equation* } #1 \end { equation* }
+   }
+\tl_new:N \l__math_env_name_tl
+\keys_define:nn { __math }
+  {
+     arg-spec .code:n =
+       {
+         \ExpandArgs { c } \DeclareDocumentCommand
+           { __math_env \l__math_env_name_tl _aux: }
+           {#1}
+           { \__math_env_forward:w }
+       }
+  }
+\cs_new_protected:Npn \math_register_env:nn #1#2
+  {
+    \tl_set:Nn \l__math_env_name_tl {#1}
+    \keys_set:nn { __math } {#2}
+    \cs_gset_eq:cc { __math_env_ #1 _begin: } {#1}
+    \cs_gset_eq:cc { __math_env_ #1 _end: } { end #1 }
+    \ExpandArgs { nnx } \RenewDocumentEnvironment {#1} { b }
+      {
+        \exp_not:N \bool_if:NTF \exp_not:N \l__math_collected_bool
+          {
+          }
+          {
+            \cs_if_exist:cTF { __math_env #1 _aux: }
+              {
+                \exp_not:c { __math_env #1 _aux: }
+                  ####1 \exp_not:N \__math_env_end: {#1}
+              }
+              { \exp_not:N \__math_process:nn {#1} {####1} }
+            \exp_not:n { \@kernel at math@registered at begin }
+            \bool_set_true:N \exp_not:N \l__math_collected_bool
+          }
+        \exp_not:c { __math_env_ #1 _begin: }
+        ####1
+        \exp_not:c { __math_env_ #1 _end: }
+     }
+      {
+      }
+  }
+
+\cs_set_protected:Npn \__cs_tmp:w #1
+  {
+    \group_begin:
+      \exp_args:No \__cs_generate_internal_variant:n
+        { \tl_to_str:n {#1} }
+    \group_end:
+  }
+\__cs_tmp:w { nnxx }
+
+\cs_new_protected:Npn \math_register_halign_env:nn #1#2
+  {
+    \tl_set:Nn \l__math_env_name_tl {#1}
+    \keys_set:nn { __math } {#2}
+    \cs_gset_eq:cc { __math_env_ #1 _begin: } {#1}
+    \cs_gset_eq:cc { __math_env_ #1 _end: } { end #1 }
+    \ExpandArgs { nnxx } \RenewDocumentEnvironment {#1} { b }
+      {
+        \exp_not:N \bool_if:NTF \exp_not:N \l__math_collected_bool
+          {
+          }
+          {
+            \cs_if_exist:cTF { __math_env #1 _aux: }
+              {
+                \exp_not:c { __math_env #1 _aux: }
+                  ####1 \exp_not:N \__math_env_end: {#1}
+              }
+              { \exp_not:N \__math_process:nn {#1} {####1} }
+            \exp_not:n { \@kernel at math@registered at begin }
+            \bool_set_true:N \exp_not:N \l__math_collected_bool
+          }
+        \exp_not:c { __math_env_ #1 _begin: }
+        ####1
+     }
+      {
+        \exp_not:c { __math_env_ #1 _end: }
+      }
+  }
+
+\cs_new_protected:Npn \math_register_odd_env:nn #1#2
+  {
+    \tl_set:Nn \l__math_env_name_tl {#1}
+    \keys_set:nn { __math } {#2}
+    \cs_gset_eq:cc { __math_env_ #1 _begin: } {#1}
+    \cs_gset_eq:cc { __math_env_ #1 _end: } { end #1 }
+    \ExpandArgs { nnxx } \RenewDocumentEnvironment {#1} { b }
+      {
+        \exp_not:N \bool_if:NTF \exp_not:N \l__math_collected_bool
+          {
+          }
+          {
+            \cs_if_exist:cTF { __math_env #1 _aux: }
+              {
+                \exp_not:c { __math_env #1 _aux: }
+                  ####1 \exp_not:N \__math_env_end: {#1}
+              }
+              { \exp_not:N \__math_process:nn {#1} {####1} }
+            \exp_not:n { \@kernel at math@registered at begin }
+            \bool_set_true:N \exp_not:N \l__math_collected_bool
+          }
+        \exp_not:c { __math_env_ #1 _begin: }
+        ####1
+     }
+      {
+        \exp_not:c { __math_env_ #1 _end: }
+        \exp_not:n { \@kernel at math@registered at end }
+      }
+  }
+
+
+\cs_new:Npn \@kernel at math@registered at begin {
+  \mode_if_vertical:TF
+       {
+         \exp_args:Noo\str_if_eq:nnF \g__tag_struct_tag_tl { \l__tag_para_main_tag_tl }    % needs correction!
+             {
+               \__block_beginpar_vmode:
+             }              % needs correction!
+       }
+       {
+         \@kernel at close@P
+       }
+  \@kernel at math@begin
+  \tagpdfparaOff
+}
+
+\cs_new:Npn \@kernel at math@registered at end {
+  \para_raw_end:
+  \tagpdfparaOn
+  \@kernel at math@end
+  \@endpetrue
+}
+
+\cs_new_protected:Npn \math_register_env:n #1
+  { \math_register_env:nn {#1} { } }
+\NewDocumentCommand \RegisterMathEnvironment { O{} m }
+  { \math_register_env:nn {#2} {#1} }
+\cs_new_protected:Npn \__math_env_forward:w #1 \__math_env_end: #2
+  { \__math_process:nn {#2} {#1} }
+\tl_gput_right:Nn \@kernel at before@begindocument
+  {
+    \math_register_env:n { equation }
+    \math_register_env:n { equation* }
+    \RenewDocumentEnvironment{math} {b}{$#1$}{}
+    \RenewDocumentEnvironment{displaymath} {b}{\[#1\]}{}
+  }
+\cs_gset_protected:Npn \( % \)
+  {
+    \bool_if:NTF \l__math_collected_bool
+      {
+        \mode_if_math:TF
+          { \@badmath }
+          { $ }
+      }
+      {
+        \bool_set_true:N \l__math_collected_bool
+        \__math_grab_inline:w
+      }
+  } % \(
+\cs_gset_protected:Npn \)
+  {
+    \mode_if_math:TF
+      { $ }
+      { \@badmath }
+  }
+\tl_gput_right:Nn \@kernel at before@begindocument
+  {
+    \cs_gset_protected:Npn \[ % \]
+       {
+        \bool_if:NTF \l__math_collected_bool
+          { \begin { equation* } }
+          { \__math_grab_eqn:w }
+      } % \[
+    \cs_gset_protected:Npn \]
+      {
+        \bool_if:NTF \l__math_collected_bool
+          { \end{ equation* } }
+          { \@badmath }
+      }
+  }
+
+\tl_new:N\tmpmathcontent
+
+\def\@kernel at math@begin {
+  \tl_gset:Nx\tmpmathcontent
+     {\exp_not:N\begin{\g__math_grabbed_env_tl}
+       \space
+       \exp_not:V\g__math_grabbed_math_tl
+       \space
+       \exp_not:N\end{\g__math_grabbed_env_tl}
+    }
+  \tagstructbegin{tag=Formula,
+    AFinline-o=\tmpmathcontent,
+    title-o=\g__math_grabbed_env_tl,
+    actualtext=\tmpmathcontent
+  }
+  \grabaformulapartandstart
+}
+\def\@kernel at math@end {
+  \tagmcend
+  \if at subformulas
+    \tagstructend
+  \else
+  \fi
+  \tagstructend
+}
+
+\exp_args:No \tex_everymath:D
+  {
+    \tex_the:D \tex_everymath:D
+    \bool_if:NF \l__math_collected_bool
+      {
+        \bool_set_true:N \l__math_collected_bool
+        \__math_grab_dollar:w
+      }
+  }
+\exp_args:No \tex_everydisplay:D
+  {
+    \tex_the:D \tex_everydisplay:D
+    \iftrue  % this may have to be a settable flag!
+        \skip_set:Nn \belowdisplayskip      {-\belowdisplayskip}
+        \skip_set:Nn \belowdisplayshortskip {-\belowdisplayshortskip}
+        \int_set:Nn \postdisplaypenalty {10000}
+        \group_insert_after:N \__math_tag_dollardollar_display_end:
+    \fi
+    \bool_if:NF \l__math_collected_bool
+      {
+        \bool_set_true:N \l__math_collected_bool
+        \__math_grab_dollardollar:w
+      }
+  }
+\math_register_env:n { eqnarray }
+\math_register_env:n { eqnarray* }
+\clist_map_inline:nn
+  { tabular }
+  {
+    \AddToHook{ env / #1 / begin }
+      { \bool_set_true:N \l__math_collected_bool }
+  }
+\cs_new_eq:NN \__math_m at th: \m at th
+\cs_gset_protected:Npn \m at th
+  {
+    \bool_set_true:N \l__math_collected_bool
+    \__math_m at th:
+  }
+
+\tl_gput_right:Nn \@kernel at before@begindocument {
+\renewenvironment{gather*}{%
+  \start at gather\st at rredtrue
+}
+{%
+  %  \endgather
+  \math at cr \black@\totwidth@ \egroup
+  $$\ignorespacesafterend
+}
+\def\common at align@ending {
+  \math at cr \black@\totwidth@
+  \egroup
+  \ifingather@
+    \restorealignstate@
+    \egroup
+    \nonumber
+    \ifnum0=`{\fi\iffalse}\fi
+  \else
+    $$%
+  \fi
+  \ignorespacesafterend
+}
+\renewenvironment{alignat}{%
+  \start at align\z@\st at rredfalse
+}{%
+  \common at align@ending
+}
+\renewenvironment{alignat*}{%
+  \start at align\z@\st at rredtrue
+}{%
+  \common at align@ending
+}
+\renewenvironment{xalignat}{%
+  \start at align\@ne\st at rredfalse
+}{%
+  \common at align@ending
+}
+\renewenvironment{xalignat*}{%
+  \start at align\@ne\st at rredtrue
+}{%
+  \common at align@ending
+}
+\renewenvironment{xxalignat}{%
+  \start at align\tw@\st at rredtrue
+}{%
+  \common at align@ending
+}
+\renewenvironment{align}{%
+  \start at align\@ne\st at rredfalse\m at ne
+}{%
+  \common at align@ending
+}
+\renewenvironment{align*}{%
+  \start at align\@ne\st at rredtrue\m at ne
+}{%
+  \common at align@ending
+}
+\renewenvironment{flalign}{%
+  \start at align\tw@\st at rredfalse\m at ne
+}{%
+  \common at align@ending
+}
+\renewenvironment{flalign*}{%
+  \start at align\tw@\st at rredtrue\m at ne
+}{%
+  \common at align@ending
+}
+\renewenvironment{multline*}{\start at multline\st at rredtrue}
+{%
+  \iftagsleft@ \@xp\lendmultline@ \else \@xp\rendmultline@ \fi
+  \ignorespacesafterend
+}
+\def\measuring at true{\let\ifmeasuring@\iftrue\tag_stop:}
+  \math_register_halign_env:nn {align}{}
+  \math_register_halign_env:nn {align*}{}
+  \math_register_halign_env:nn {flalign}{}
+  \math_register_halign_env:nn {flalign*}{}
+  \math_register_halign_env:nn {gather}{}
+  \math_register_halign_env:nn {gather*}{}
+  \math_register_halign_env:nn {multline}{}
+  \math_register_halign_env:nn {multline*}{}
+  \math_register_halign_env:nn {xalignat}{}
+  \math_register_halign_env:nn {xalignat*}{}
+  \math_register_halign_env:nn {xxalignat}{}
+  %
+  \@namedef{maketag @ @ @} #1{%
+    \ifmeasuring@
+      \hbox{\m at th\normalfont#1}%
+    \else
+      \tagmcend \tagstructbegin{tag=Lbl}%
+      \tagmcbegin{tag=Lbl}%
+      \hbox{\m at th\normalfont#1}%
+      \tagmcend \tagstructend \tagmcbegin{}%
+    \fi
+  }
+    \def\intertext@{%
+      \def\intertext##1{%
+        \ifvmode\else\\\@empty\fi
+        \noalign{%
+          \penalty\postdisplaypenalty\vskip-\belowdisplayskip
+          \vbox{
+           \ifmeasuring@\tag_stop:\fi
+           \normalbaselines
+            \ifdim\linewidth=\columnwidth
+            \else \parshape\@ne \@totalleftmargin \linewidth
+            \fi
+            \tag_mc_end_push:
+            \tagpdfsetup{paratag=P}%
+            \tagpdfparaOn
+            \noindent\ignorespaces##1\par
+            \tag_mc_begin_pop:n{}}%
+          \penalty\predisplaypenalty\vskip\abovedisplayskip%
+        }%
+      }
+    }
+\@namedef{math at cr @ @ @ gather}{%
+    \ifst at rred\nonumber\fi
+   &\relax
+    \make at display@tag
+    \maybestartnewformulatag
+    \ifst at rred\else\global\@eqnswtrue\fi
+    \global\advance\row@\@ne
+    \cr
+}
+\@namedef{math at cr @ @ @ align}{%
+  \ifst at rred\nonumber\fi
+  \if at eqnsw \global\tag at true \fi
+  \global\advance\row@\@ne
+  \add at amps\maxfields@
+  \omit
+  \kern-\alignsep@
+  \iftag@
+    \setboxz at h{\@lign\strut@{\make at display@tag}}%
+    \place at tag
+  \fi
+    \maybestartnewformulatag
+  \ifst at rred\else\global\@eqnswtrue\fi
+  \global\lineht@\z@
+  \cr
+}
+\def\restore at math@cr{\@namedef{math at cr @ @ @}{
+    \maybestartnewformulatag
+    \cr}}
+\restore at math@cr
+}
+
+\cs_new:Npn \__math_split_at_nl_first:w #1 \\ #2 \\ #3 \s_stop
+  {
+    \quark_if_nil:nTF {#2}
+      { {#1} {  } }
+      {
+        \__math_split_chk_if_begin:ww #1 \begin \q_nil \s_mark
+          #2 \\ #3 \s_stop
+      }
+  }
+\cs_new:Npn \__math_split_chk_if_begin:ww #1 \begin #2 #3 \s_mark
+    #4 \\ \q_nil \\ \s_stop
+  {
+    \quark_if_nil:nTF {#2}
+      { {#1} {#4} }
+      {
+        \exp_after:wN \__math_split_collect_one_end:w
+          \__math_split_cleanup_begin_q_nil:w #1 \begin{#2} #3 \\ #4 \s_stop
+            { } { 1 }
+      }
+  }
+\cs_new:Npn \__math_split_cleanup_begin_q_nil:w #1 \begin \q_nil {#1}
+\cs_new:Npn \__math_split_collect_one_end:w #1 \end #2 #3 \s_stop #4 #5
+  {
+    \exp_args:Nf \__math_split_check_count_begins:nnnn
+      { \__math_split_count_begins:n { #4 #1 } } {#5}
+      { #4 #1 \end{#2} } {#3}
+  }
+\cs_new:Npn \__math_split_count_begins:n #1
+  { \int_eval:n { 0 \__math_split_count_begins:w #1 \begin \q_nil } }
+\cs_new:Npn \__math_split_count_begins:w #1 \begin #2
+  { \quark_if_nil:nF {#2} { +1 \__math_split_count_begins:w } }
+\cs_new:Npn \__math_split_check_count_begins:nnnn #1 #2 #3 #4
+  {
+    \int_compare:nNnTF {#1} = {#2}
+      {
+        \exp_last_unbraced:Nf \__math_split_final_cleanup:nn
+          { \split:n { \__math_split_guard:n {#3} #4 } }
+      }
+      {
+        \exp_args:No \use_ii_i:nn
+          { \exp_after:wN { \int_value:w \int_eval:n { #2 + 1 } } }
+          { \__math_split_collect_one_end:w #4 \s_stop {#3} }
+      }
+  }
+\cs_new:Npn \__math_split_final_cleanup:nn #1 #2
+  {
+      \exp:w \__math_split_final_cleanup:w #1
+        \__math_split_guard:n \q_nil \s_mark { }
+      {#2}
+  }
+\cs_new:Npn \__math_split_final_cleanup:w #1 \__math_split_guard:n #2 #3 \s_mark #4
+  {
+    \quark_if_nil:nTF {#2}
+      { \exp_end: { #4 #1 } }
+      { \__math_split_final_cleanup:w #3 \s_mark { #4 #1 #2 } }
+  }
+\NewDocumentCommand \splitnl { mm +m }
+  {
+    \tl_set:Nf \l_tmpa_tl { \split:n {#3} }
+    \show \l_tmpa_tl
+    \exp_after:wN \__splitnl_aux:nnNN \l_tmpa_tl #1 #2
+  }
+
+\cs_new:Npn \split:n #1 {
+    \__math_split_at_nl_first:w #1 \\ \q_nil \\ \s_stop }
+
+\cs_new:Npn \__math_split_at_nl:NN #1#2 {
+  \tl_set:Nf \l_tmpa_tl {
+      \exp_after:wN \__math_split_at_nl_first:w #1 \\ \q_nil \\ \s_stop }
+  \exp_after:wN \__math_split_at_nl_aux:nnNN \l_tmpa_tl #1 #2
+}
+
+\cs_new_protected:Npn \__math_split_at_nl_aux:nnNN #1 #2 #3 #4
+  {
+    \tl_gset:Nn #4 {#1}
+    \tl_gset:Nn #3 {#2}
+}
+
+
+\newif\if at subformulas
+\tl_new:N \result
+
+\cs_new_protected:Npn\grabaformulapartandstart {
+  \__math_split_at_nl:NN  \g__math_grabbed_math_tl \result
+  \typeout{====>first-result=\meaning\result}
+  \typeout{====>first-tmpmathcontent=\meaning\g__math_grabbed_math_tl}
+  \tl_if_empty:NTF \g__math_grabbed_math_tl
+     {
+       \typeout{====>formula~ has~ no~ subparts}
+       \global\@subformulasfalse
+     }
+     {
+       \typeout{====>formula~ has~ subparts}
+       \global\@subformulastrue
+       \edef\resulttitle{\g__math_grabbed_env_tl\space (part)}
+       \tagstructbegin{tag=Formula,
+         title-o=\resulttitle
+       }
+    }
+    \tagmcbegin{}
+}
+
+\cs_new_protected:Npn\grabaformulapartandmayberestart {
+  \__math_split_at_nl:NN  \g__math_grabbed_math_tl \result
+  \typeout{====>result=\meaning\result}
+  \typeout{====>tmpmathcontent=\meaning\g__math_grabbed_math_tl}
+       \edef\resulttitle{\g__math_grabbed_env_tl\space (part)}
+       \tagstructbegin{tag=Formula,
+         alt=\result,
+         title-o=\resulttitle
+       }
+    \tagmcbegin{}
+}
+\def\maybestartnewformulatag {
+\if at subformulas
+ \ifmeasuring@\else
+  \tl_if_empty:NF \g__math_grabbed_math_tl
+     {
+       \tagmcend
+       \tagstructend
+       \grabaformulapartandmayberestart
+     }
+ \fi
+\fi
+}
+\ExplSyntaxOff
+
+\endinput
+%%
+%% End of file `latex-lab-mathtagging.ltx'.


Property changes on: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-mathtagging.ltx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-mathtools.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-mathtools.ltx	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-mathtools.ltx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,152 @@
+%%
+%% This is file `latex-lab-mathtools.ltx',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% latex-lab-mathtools.dtx  (with options: `kernel')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright 2021-2023 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-mathtools.dtx
+\ProvidesFile{latex-lab-mathtools.ltx}
+        [2023-01-05 v0.1a mathtools adaptions]
+\RequirePackage{tagpdf-base}
+\ExplSyntaxOn
+\tl_new:N\l__math_mathtools_init_tl
+\AddToHook{package/mathtools/after}
+ {%
+   \cs_if_eq:NNTF\intertext@ \MT_intertext:
+     {
+       \tl_set:Nn \l__math_mathtools_init_tl {\MT_orig_intertext_false:}
+     }
+     {
+       \tl_set:Nn \l__math_mathtools_init_tl {\MT_orig_intertext_true:}
+     }
+   \cs_if_eq:NNTF\shortintertext@ \MT_shortintertext:n
+     {
+       \tl_put_right:Nn \l__math_mathtools_init_tl
+         {\MT_orig_shortintertext_false:}
+     }
+     {
+       \tl_put_right:Nn \l__math_mathtools_init_tl
+         {\MT_orig_shortintertext_true:}
+     }
+   \def\MT_intertext: {%
+     \def\intertext##1{%
+       \ifvmode\else\\\@empty\fi
+       \noalign{%
+         \penalty\postdisplaypenalty\vskip\belowdisplayskip
+         \vskip-\lineskiplimit      % CCS
+         \vskip\normallineskiplimit % CCS
+         \vskip\l_MT_above_intertext_sep
+          \vbox{%
+          \ifmeasuring@\tag_stop:\fi
+          \normalbaselines
+            \ifdim
+              \ifdim\@totalleftmargin=\z@
+                \linewidth
+              \else
+                -\maxdimen
+              \fi
+            =\columnwidth
+           \else \parshape\@ne \@totalleftmargin \linewidth
+           \fi
+           \tag_mc_end_push:
+            \tagpdfsetup{paratag=Span}
+            \noindent\ignorespaces##1\par
+           \tag_mc_begin_pop:n{}}%
+         \penalty\predisplaypenalty\vskip\abovedisplayskip%
+         \vskip-\lineskiplimit      % CCS
+         \vskip\normallineskiplimit % CCS
+         \vskip\l_MT_below_intertext_sep
+      }%
+    }%
+    \MH_let:NwN \shortintertext \shortintertext@
+   }
+    \def\MT_orig_shortintertext:n #1{%
+      \ifvmode\else\\\@empty\fi
+      \noalign{%
+        \penalty\postdisplaypenalty\vskip\abovedisplayshortskip
+        \vbox{%
+          \ifmeasuring@\tag_stop:\fi
+          \normalbaselines
+          \MH_if_dim:w
+            \MH_if_dim:w \@totalleftmargin=\z@
+              \linewidth
+            \MH_else:
+              -\maxdimen
+            \MH_fi:
+            =\columnwidth
+          \MH_else:
+            \parshape\@ne \@totalleftmargin \linewidth
+          \MH_fi:
+          \tag_mc_end_push:
+          \tagpdfsetup{paratag=Span}
+          \noindent\ignorespaces#1\par
+          \tag_mc_begin_pop:n{}}
+        \penalty\predisplaypenalty\vskip\abovedisplayshortskip%
+      }%
+    }
+
+   \def\MT_shortintertext:n #1{%
+     \ifvmode\else\\\@empty\fi
+     \noalign{%
+       \penalty\postdisplaypenalty\vskip\abovedisplayshortskip
+       \vskip-\lineskiplimit
+       \vskip\normallineskiplimit
+       \vskip\l_MT_above_shortintertext_sep
+       \vbox{%
+       \ifmeasuring@\tag_stop:\fi
+       \normalbaselines
+         \MH_if_dim:w
+           \MH_if_dim:w \@totalleftmargin=\z@
+             \linewidth
+           \MH_else:
+             -\maxdimen
+           \MH_fi:
+           =\columnwidth
+         \MH_else:
+           \parshape\@ne \@totalleftmargin \linewidth
+         \MH_fi:
+         \tag_mc_end_push:
+         \tagpdfsetup{paratag=Span}
+         \noindent\ignorespaces#1\par
+         \tag_mc_begin_pop:n{}}%
+       \penalty\predisplaypenalty\vskip\abovedisplayshortskip%
+       \vskip-\lineskiplimit
+       \vskip\normallineskiplimit
+       \vskip\l_MT_below_shortintertext_sep
+     }%
+   }
+
+  \l__math_mathtools_init_tl
+}
+\ExplSyntaxOff
+\endinput
+%%
+%% End of file `latex-lab-mathtools.ltx'.


Property changes on: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-mathtools.ltx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-block-tagging.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-block-tagging.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-block-tagging.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,1302 @@
+%%
+%% This is file `latex-lab-testphase-block-tagging.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% latex-lab-block-tagging.dtx  (with options: `package')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright 2021-2023 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-block-tagging.dtx (C) Copyright 2021-2023 LaTeX Project
+
+\def\ltblocksversion{v0.8a}
+\def\ltblocksdate{2023/03/08}
+
+\ProvidesPackage {latex-lab-testphase-block-tagging}
+                 [\ltblocksdate\space \ltblocksversion\space
+                            blockenv implementation]
+\RequirePackage{xtemplate}
+\RequirePackage{latex-lab-kernel-changes}
+\ExplSyntaxOn
+\tl_new:N \l__block_item_align_tl
+\tl_new:N\l__block_legacy_env_params_tl
+
+\def\@doendpe{\@endpetrue
+  \def\par
+    {
+      \@restorepar
+      \clubpenalty\@clubpenalty
+      \__kernel_displayblock_doendpe:
+      \@endpefalse
+      \everypar{}
+      \par
+    }
+  \everypar{{\setbox\z@\lastbox}
+            \everypar{}
+            \@endpefalse
+  }
+}
+\cs_new_eq:NN \__kernel_displayblock_doendpe: \prg_do_nothing:
+\def\@endpetrue {\global\let\if at endpe\iftrue}
+\def\@endpefalse{\global\let\if at endpe\iffalse}
+\DeclareObjectType{blockenv}{1}
+\DeclareObjectType{block}{1}
+\DeclareObjectType{para}{1}
+\DeclareObjectType{list}{1}
+\DeclareObjectType{item}{1}
+\DeclareTemplateInterface{blockenv}{display}{1}
+{
+  env-name       : tokenlist ,
+  tag-name       : tokenlist ,
+  tag-class      : tokenlist ,
+  tagging-recipe : tokenlist = standard,
+  level-increase : boolean = true ,
+  setup-code     : tokenlist ,
+  block-instance : tokenlist = displayblock ,
+  para-instance  : tokenlist ,
+  inner-level-counter : tokenlist,
+  max-inner-levels    : tokenlist = 4,
+  inner-instance-type : tokenlist = list ,
+  inner-instance      : tokenlist ,
+  para-flattened : boolean = false ,
+  final-code     : tokenlist = \ignorespaces ,
+}
+\DeclareTemplateInterface{block}{display}{1}
+{
+  heading        : tokenlist = ,                               %??
+  beginsep       : skip = \topsep ,
+  begin-par-skip : skip = \partopsep ,
+  par-skip       : skip = \parsep ,
+  end-skip       : skip = \KeyValue{beginsep} ,                % conflict with name below
+  end-par-skip   : skip = \KeyValue{begin-par-skip} ,
+  beginpenalty   : integer = \UseName{@beginparpenalty} ,
+  endpenalty     : integer = \UseName{@endparpenalty} ,
+  leftmargin     : length = \leftmargin ,
+  rightmargin    : length = \rightmargin ,
+  parindent      : length = \listparindent ,
+}
+\DeclareTemplateInterface{para}{std}{1}
+{
+  indent-width          : length = \parindent ,
+  start-skip            : skip = 0pt  ,
+  left-skip             : skip = 0pt ,
+  right-skip            : skip = 0pt ,
+  end-skip              : skip = \@flushglue ,
+  fixed-word-spaces     : boolean = false ,
+  final-hyphen-demerits : integer = 5000 ,
+  cr-cmd                : tokenlist = \@normalcr ,
+  para-class            : tokenlist = justify ,
+}
+\DeclareTemplateInterface{list}{std}{1}     % optional
+{
+  counter         : tokenlist = ,
+  item-label      : tokenlist = ,
+  start           : integer = 1 ,
+  resume          : boolean = false ,
+  item-instance   : instance{item} = basic ,
+  item-skip       : skip = \itemsep ,
+  item-penalty    : integer = \UseName{@itempenalty} ,
+  item-indent     : length = 0pt ,         % was \itemindent
+  label-width     : length = \labelwidth ,
+  label-sep       : length = \labelsep ,
+  legacy-support   : boolean = false ,
+}
+\DeclareTemplateInterface{item}{std}{1}
+  {
+    counter-label : function{1} = \arabic{#1} ,
+    counter-ref   : function{1} = \KeyValue{counter-label} ,
+    label-ref     : function{1} = #1 ,
+    label-autoref : function{1} = item~#1 ,
+    label-format  : function{1} = #1 ,
+    label-strut   : boolean = false ,
+    label-align   : choice {left,center,right,parleft} = right ,
+    label-boxed   : boolean = true ,
+    next-line     : boolean = false ,
+    text-font     : tokenlist ,
+    compatibility : boolean = true ,
+  }
+\cs_new_protected:Npn \__block_skip_set_to_last:N #1 {
+  \skip_set:Nn #1 { \tex_lastskip:D }
+}
+\cs_new_eq:NN \__block_skip_remove_last: \tex_unskip:D
+\cs_generate_variant:Nn \tl_if_novalue:nTF { o }
+\cs_if_exist:NF \tag_if_active:T
+   { \cs_new_eq:NN \tag_if_active:T \use_none:n }
+\bool_new:N \g__block_debug_bool
+\cs_new_eq:NN \__block_debug:n \use_none:n
+\cs_new_eq:NN \__block_debug_typeout:n \use_none:n
+\cs_new_protected:Npn \block_debug_on:
+  {
+    \bool_gset_true:N \g__block_debug_bool
+    \__block_debug_gset:
+  }
+\cs_new_protected:Npn \block_debug_off:
+  {
+    \bool_gset_false:N \g__block_debug_bool
+    \__block_debug_gset:
+  }
+\cs_new_protected:Npn \__block_debug_gset:
+  {
+    \cs_gset_protected:Npx \__block_debug:n ##1
+      { \bool_if:NT \g__block_debug_bool {##1} }
+    \cs_gset_protected:Npx \__block_debug_typeout:n ##1
+      { \bool_if:NT \g__block_debug_bool { \typeout{==>~ ##1} } }
+  }
+\cs_new_protected:Npn \DebugBlocksOn  { \block_debug_on:  }
+\cs_new_protected:Npn \DebugBlocksOff { \block_debug_off: }
+\DebugBlocksOff
+\NewDocumentEnvironment{displayblock}{ !O{} }
+  { \UseInstance{blockenv}{displayblock} {#1} }
+  { \endblockenv }
+\NewDocumentEnvironment{displayblockflattened}{ !O{} }
+  { \UseInstance{blockenv}{displayblockflattened} {#1} }
+  { \endblockenv }
+\AddToHook{begindocument/before}{
+  \RenewDocumentEnvironment{center} { !O{} }
+  { \UseInstance{blockenv}{center}{#1} }
+  { \endblockenv }
+  \RenewDocumentEnvironment{flushright} { !O{} }
+  { \UseInstance{blockenv}{flushright}{#1} }
+  { \endblockenv }
+  \RenewDocumentEnvironment{flushleft} { !O{} }
+  { \UseInstance{blockenv}{flushleft}{#1} }
+  { \endblockenv }
+}
+\AddToHook{begindocument/before}{
+  \RenewDocumentEnvironment{quote}{ !O{} }
+    { \UseInstance{blockenv}{quote} {#1} }
+    { \endblockenv }
+  \RenewDocumentEnvironment{quotation}{ !O{} }
+    { \UseInstance{blockenv}{quotation} {#1} }
+    { \endblockenv }
+}
+\AddToHook{begindocument/before}{
+  \RenewDocumentEnvironment{verbatim}{ !O{} }
+    { \UseInstance{blockenv}{verbatim} {#1}
+      \@xverbatim
+    }
+    { \endblockenv }
+  \RenewDocumentEnvironment{verbatim*}{ !O{} }
+    { \UseInstance{blockenv}{verbatim} {#1}
+      \@setupverbvisiblespace\frenchspacing\@vobeyspaces
+      \@sxverbatim
+    }
+    { \endblockenv }
+}
+\def\legacyverbatimsetup{%
+  \language\l at nohyphenation
+  \@tempswafalse
+  \def\par{%
+    \if at tempswa
+      \leavevmode \null \@@par\penalty\interlinepenalty
+    \else
+      \@tempswatrue
+      \ifhmode\@@par\penalty\interlinepenalty\fi
+    \fi}%
+  \let\do\@makeother \dospecials
+  \obeylines \verbatim at font \@noligs
+  \everypar \expandafter{\the\everypar \unpenalty}%
+  \tl_set:Nn \l__tag_para_main_tag_tl {codeline}
+  \tagtool{paratag=Code}%   oder faster: \tl_set:Nn\l__tag_para_tag_tl{Code}
+  \@setupverbinvisiblespace
+  \frenchspacing \@vobeyspaces
+}
+\newcommand\@setupverbinvisiblespace{}
+\tag_if_active:T {
+  \bool_if:NF\g__tag_mode_lua_bool
+   {
+     \renewcommand\@setupverbinvisiblespace{\def\@xobeysp{\nobreakspace\pdffakespace}}
+   }
+}
+\AddToHook{begindocument/before}{
+  \RenewDocumentEnvironment{itemize}{!O{}}
+    { \UseInstance{blockenv}{itemize} {#1} }
+    { \endblockenv }
+  \RenewDocumentEnvironment{enumerate}{!O{}}
+    { \UseInstance{blockenv}{enumerate} {#1} }
+    { \endblockenv }
+  \RenewDocumentEnvironment{description}{!O{}}
+    { \UseInstance{blockenv}{description} {#1} }
+    { \endblockenv }
+}
+\AddToHook{begindocument/before}{
+  \RenewDocumentEnvironment{list}{O{} m m }
+    {
+      \tl_set:Nn \@itemlabel {#2}
+      \tl_set:Nn \l__block_legacy_env_params_tl {#3}
+      \UseInstance{blockenv}{list} {#1}
+    }
+    { \endblockenv }
+}
+\tag_if_active:T {
+  \tagpdfsetup{add-new-tag={tag=list,role=L}}
+}
+\tl_new:N \l__block_env_params_tl
+\cs_new:Npn \legacylistsetupcode {
+    \dim_zero:N \listparindent
+    \dim_zero:N \rightmargin
+    \dim_zero:N \itemindent
+    \tl_set:Nn \@listctr {}
+    \legacy_if_set_false:n { @nmbrlist } % needed if lists are nested
+   \let\makelabel\@mklab % TODO: customize
+   \l__block_legacy_env_params_tl
+    \legacy_if:nTF { @nmbrlist }
+      { \tl_set:Nn \l__tag_L_attr_class_tl {enumerate} }   % numbered list
+      { \tl_if_empty:NTF \@itemlabel
+          { \tl_set:Nn \l__tag_L_attr_class_tl {list}    } % no label
+          { \tl_set:Nn \l__tag_L_attr_class_tl {itemize} } % unnumbered, unordered
+      }
+}
+\AddToHook{begindocument/before}{
+  \RenewDocumentEnvironment{trivlist}{ !O{} }
+                           { \list[#1]{}
+                             {
+                               \dim_zero:N \leftmargin
+                               \dim_zero:N \labelwidth
+                               \cs_set_eq:NN \makelabel \use:n
+                             }
+                           }
+    { \endblockenv }
+}
+\tag_if_active:T {
+  \tagpdfsetup{add-new-tag={tag=theorem-like,role=L}}
+}
+\def\@begintheorem#1#2{\trivlist[tag-name=theorem-like]%
+   \item[\hskip \labelsep{\bfseries #1\ #2}]\itshape}
+\def\@opargbegintheorem#1#2#3{\trivlist[tag-name=theorem-like]
+      \item[\hskip \labelsep{\bfseries #1\ #2\ (#3)}]\itshape}
+\cs_new:Npn \g_block_nesting_depth_int { \@listdepth }  % a fake int
+                                                        % for now
+\DeclareTemplateCode{blockenv}{display}{1}
+{
+  env-name       = \l__block_env_name_tl ,
+  tag-name       = \l__block_tag_name_tl ,
+  tag-class      = \l__block_tag_class_tl ,
+  tagging-recipe = \l__block_tagging_recipe_tl ,
+  level-increase = \l__block_level_incr_bool ,
+  setup-code     = \l__block_setup_code_tl ,
+  block-instance = \l__block_block_instance_tl ,
+  para-instance  = \l__block_para_instance_tl ,
+  inner-level-counter = \l__block_inner_level_counter_tl ,
+  max-inner-levels    = \l__block_max_inner_levels_tl ,
+  inner-instance-type = \l__block_inner_instance_type_tl ,
+  inner-instance      = \l__block_inner_instance_tl ,
+  para-flattened = \l__tag_para_flattened_bool ,
+  final-code     = \l__block_final_code_tl ,
+}
+{
+  \__block_debug_typeout:n{\l__block_env_name_tl -env-start}
+  \tl_if_empty:nF {#1} { \SetTemplateKeys{blockenv}{display}{#1} }
+  %    \begin{macrocode}
+  \int_compare:nNnTF \l__block_flattened_level_int > 0
+      {
+        \int_incr:N \l__block_flattened_level_int
+      }
+      {
+        \bool_if:NT \l__tag_para_flattened_bool
+             {
+               \int_incr:N \l__block_flattened_level_int
+             }
+      }
+  \tl_if_empty:NF \l__block_inner_level_counter_tl
+     {
+       \int_compare:nNnTF  \l__block_inner_level_counter_tl >
+                           { \l__block_max_inner_levels_tl - 1 }
+           { \@toodeep }
+           { \int_incr:N \l__block_inner_level_counter_tl }  % not clean "o"?
+     }
+  \bool_if:NT \l__block_level_incr_bool
+     {
+       \int_compare:nNnTF  \g_block_nesting_depth_int >
+                           { \c at maxblocklevels - 1 }
+           { \@toodeep }
+           {
+             \int_gincr:N \g_block_nesting_depth_int
+             \use:c { @list \int_to_roman:n { \g_block_nesting_depth_int } }
+           }
+     }
+  \tag_if_active:T { \use:c { __block_recipe_ \l__block_tagging_recipe_tl : } }
+  \l__block_setup_code_tl
+  \__block_debug_typeout:n{use~ instance:~
+           \l__block_block_instance_tl - \int_use:N \g_block_nesting_depth_int }
+  \UseInstance{block}
+              { \l__block_block_instance_tl - \int_use:N
+                \g_block_nesting_depth_int }
+              {#1}
+  \tl_if_empty:NF \l__block_para_instance_tl
+    {
+      \__block_debug_typeout:n{use~ para~ instance:~ \l__block_para_instance_tl }
+      \UseInstance{para}{ \l__block_para_instance_tl } {}
+    }
+  \tl_if_empty:NF \l__block_inner_instance_tl
+    {
+      \__block_debug_typeout:n{use~ instance:~ \l__block_inner_instance_tl
+               \tl_if_empty:NF \l__block_inner_level_counter_tl
+                       { - \int_use:N \l__block_inner_level_counter_tl }}
+      \UseInstance{ \l__block_inner_instance_type_tl }
+                  { \l__block_inner_instance_tl
+                    \tl_if_empty:NF \l__block_inner_level_counter_tl
+                       { - \int_use:N \l__block_inner_level_counter_tl }  % not clean
+                                                                % use "o"?
+                  }
+                  {#1}
+    }
+  \l__block_final_code_tl
+}
+\int_new:N \l__block_flattened_level_int
+\newcounter{maxblocklevels}
+\setcounter{maxblocklevels}{6}
+\cs_new:Npn \endblockenv {
+  \__block_debug_typeout:n{blockenv~ common~ ending \on at line}
+  \bool_if:NT \l__block_level_incr_bool
+    { \int_gdecr:N \g_block_nesting_depth_int }
+  \legacy_if:nT { @inlabel }
+    {
+      \mode_leave_vertical:
+      \legacy_if_gset_false:n { @inlabel }
+    }
+  \legacy_if:nT { @newlist }
+    {
+      \@noitemerr
+      \legacy_if_gset_false:n { @newlist }
+    }
+  \mode_if_horizontal:TF
+       { \__block_skip_remove_last: \__block_skip_remove_last: \par }
+       { \@inmatherr{\end{\@currenvir}} }
+  \__kernel_displayblock_end:
+  \legacy_if:nF { @noparlist }
+    {
+      \__block_skip_set_to_last:N \l_tmpa_skip
+      \dim_compare:nNnT \l_tmpa_skip > \c_zero_dim
+        {
+          \skip_vertical:n { - \l_tmpa_skip }
+          \skip_vertical:n { \l_tmpa_skip + \parskip - \@outerparskip }
+        }
+      \addpenalty \@endparpenalty
+      \addvspace \l__block_topsepadd_skip
+    }
+  \legacy_if_gset_true:n { @endpe }
+}
+\cs_new:Npn \__kernel_displayblock_end: {
+  \__block_debug_typeout:n{\detokenize{__kernel_displayblock_end:}}
+}
+\DeclareTemplateCode{para}{std}{1}
+{
+  indent-width      = \parindent ,
+  start-skip        = \l__par_start_skip ,              % name??
+  left-skip         = \leftskip  ,
+  right-skip        = \rightskip  ,
+  end-skip          = \parfillskip ,
+  fixed-word-spaces = \l__par_fixed_word_spaces_bool ,  % name??
+  final-hyphen-demerits = \finalhyphendemerits ,
+  cr-cmd                = \\ ,
+  para-class            = \l_tag_para_attr_class_tl ,
+}
+{
+  \tl_if_empty:nF {#1} { \SetTemplateKeys{para}{std}{#1} }
+  \skip_set:Nn \@rightskip \rightskip
+}
+\DeclareTemplateCode{block}{display}{1}
+{
+  heading         = \l__block_heading_tl ,
+  beginsep        = \topsep ,
+  begin-par-skip  = \partopsep ,
+  par-skip        = \parsep ,
+  end-skip        = \l__block_botsep_skip ,
+  end-par-skip    = \l__block_parbotsep_skip ,
+  beginpenalty    = \@beginparpenalty ,
+  endpenalty      = \@endparpenalty ,
+  rightmargin     = \rightmargin ,
+  leftmargin      = \leftmargin ,
+  parindent       = \listparindent ,
+}
+{
+  \tl_if_empty:nF {#1} { \SetTemplateKeys{block}{display}{#1} }
+    \tl_if_blank:oF \l__block_heading_tl
+      { \mode_leave_vertical: \textbf{\l__block_heading_tl} } % TODO customize
+    \legacy_if:nT { @noskipsec } { \mode_leave_vertical: }
+    \skip_set:Nn \l__block_topsepadd_skip { \topsep }
+    \mode_if_vertical:TF
+      {
+        \skip_add:Nn \l__block_topsepadd_skip { \partopsep }
+        \__kernel_displayblock_beginpar_vmode:
+      }
+      {
+        \__block_skip_remove_last: \__block_skip_remove_last:
+        \__kernel_displayblock_beginpar_hmode:w \par
+      }
+    \legacy_if:nTF { @inlabel }
+      {
+        \legacy_if_set_true:n { @noparitem }
+        \legacy_if_set_true:n { @noparlist }
+      }
+      {
+        \legacy_if:nT { @newlist } { \@noitemerr }
+        \legacy_if_set_false:n { @noparlist }
+        \skip_set_eq:NN \l__block_effective_top_skip \l__block_topsepadd_skip
+      }
+    \skip_add:Nn \l__block_effective_top_skip { \parskip }
+    \skip_zero:N \leftskip
+    \skip_set_eq:NN \rightskip \@rightskip
+    \skip_set_eq:NN \parfillskip \@flushglue
+    \int_zero:N \par at deathcycles
+    \@setpar
+      {
+        \legacy_if:nTF { @newlist }
+          {
+            \int_incr:N \par at deathcycles
+            \int_compare:nNnTF \par at deathcycles > { 1000 }
+                { \@noitemerr
+                  { \para_end: }
+                }
+          }
+          {
+            { \para_end: }
+          }
+      }
+    \skip_set_eq:NN \@outerparskip \parskip
+    \skip_set_eq:NN \parskip \parsep
+    \dim_set_eq:NN \parindent \listparindent
+    \dim_add:Nn \linewidth { - \rightmargin - \leftmargin }
+    \dim_add:Nn \@totalleftmargin { \leftmargin }
+    \tex_parshape:D 1 ~ \@totalleftmargin \linewidth
+    \__kernel_displayblock_begin:
+    \legacy_if:nTF { @noparitem }
+      {
+        \legacy_if_set_false:n { @noparitem }
+        \hbox_gset:Nn \g__block_labels_box
+          {
+            \skip_horizontal:n { - \leftmargin }
+            \hbox_unpack_drop:N \g__block_labels_box
+            \skip_horizontal:n { \leftmargin }
+          }
+        \legacy_if:nF { @minipage } % Why this chunk of code?
+          {
+            \__block_skip_set_to_last:N \l__block_tmpa_skip
+            \skip_vertical:n { - \l__block_tmpa_skip }
+            \skip_vertical:n { \l__block_tmpa_skip + \@outerparskip - \parskip }
+          }
+      }
+      {
+        \legacy_if:nTF { @nobreak }
+          { \addvspace{\skip_eval:n{\@outerparskip-\parskip}} }
+          {
+            \addpenalty \@beginparpenalty
+            \addvspace \l__block_effective_top_skip
+            \addvspace{-\parskip}
+          }
+      }
+}
+\keys_define:nn { template/block/display }
+{
+  ,topsep        .skip_set:N = \topsep
+  ,partopsep     .skip_set:N = \partopsep
+  ,listparindent .skip_set:N = \listparindent
+}
+\cs_new:Npn \__kernel_displayblock_begin: {
+  \__block_debug_typeout:n{\detokenize{__kernel_displayblock_begin:}}
+}
+\cs_new:Npn \__kernel_displayblock_beginpar_hmode:w {
+  \__block_debug_typeout:n{\detokenize{__kernel_displayblock_beginpar_hmode:w}}
+}
+\cs_new:Npn \__kernel_displayblock_beginpar_vmode: {
+  \__block_debug_typeout:n{\detokenize{__kernel_displayblock_beginpar_vmode:}}
+}
+\tl_new:N \@itemlabel         % should have a top-level definition
+\tl_new:N \@listctr           % should have a top-level definition
+\DeclareTemplateCode{list}{std}{1}
+{
+  counter         = \l__block_counter_tl,
+  item-label      = \l__block_item_label_tl,
+  start           = \l__block_counter_start_int ,
+  resume          = \l__block_resume_bool ,
+  item-instance   = \__block_item_instance:n ,
+  item-skip       = \itemsep ,
+  item-penalty    = \@itempenalty ,
+  item-indent     = \itemindent ,
+  label-width     = \labelwidth ,
+  label-sep       = \labelsep ,
+  legacy-support  = \l__block_legacy_support_bool , % FMi questionable
+}
+{
+  \__block_debug_typeout:n{template:list:std}
+  \tl_if_empty:nF {#1} { \SetTemplateKeys{list}{std}{#1} }
+  \tl_if_empty:NTF \l__block_counter_tl
+    {
+     \tl_if_blank:oF \@listctr
+       {
+         \bool_if:NF \l__block_resume_bool
+           {
+             \int_gset:cn{ c@ \@listctr }
+                 { \l__block_counter_start_int - 1 }
+           }
+       }
+       { \@nmbrlistfalse }
+    }
+    {
+     \@nmbrlisttrue
+     \tl_set_eq:NN \@listctr \l__block_counter_tl
+     \bool_if:NF \l__block_resume_bool
+       {
+         \int_gset:cn{ c@ \@listctr }
+             { \l__block_counter_start_int - 1 }
+       }
+    }
+  \tl_if_empty:NF \l__block_item_label_tl
+    {
+      \tl_set_eq:NN \@itemlabel \l__block_item_label_tl
+    }
+    \legacy_if_gset_true:n { @newlist }
+  \__block_debug_typeout:n{template:list:std~end}
+}
+\keys_define:nn { template/list/std }
+{
+  ,nosep .code:n =
+    \dim_zero:N \itemsep
+    \dim_zero:N \parsep
+    \dim_zero:N \topsep
+    \dim_zero:N \l__block_botsep_skip
+    \dim_zero:N \l__block_parbotsep_skip
+  ,midsep    .skip_set:N = \topsep
+}
+\keys_define:nn { template/item/std }
+                { label .tl_set:N = \l__block_label_given_tl }
+\DeclareTemplateCode{item}{std}{1}
+  {
+    counter-label   = \__block_counter_label:n ,
+    counter-ref     = \__block_counter_ref:n ,
+    label-ref       = \__block_label_ref:n ,
+    label-autoref   = \__block_label_autoref:n ,
+    label-format    = \__block_label_format:n ,
+    label-strut     = \l__block_label_strut_bool ,
+    label-boxed     = \l__block_label_boxed_bool ,
+    next-line       = \l__block_next_line_bool ,
+    text-font       = \l__block_text_font_tl ,
+    compatibility   = \l__block_item_compatibility_bool ,
+    label-align     = {
+      left    = \tl_set:Nn \l__block_item_align_tl { \relax \hss } ,
+      center  = \tl_set:Nn \l__block_item_align_tl { \hss \hss } ,
+      right   = \tl_set:Nn \l__block_item_align_tl { \hss \relax } ,
+      parleft = \NOT_IMPLEMENTED ,
+    } ,
+  }
+  {
+    \__block_debug_typeout:n{template:item:std}
+    \tl_set_eq:NN \l__block_label_given_tl \c_novalue_tl
+    \tl_if_empty:nF{#1}{ \SetTemplateKeys{item}{std}{#1} }
+    \tl_if_novalue:oTF \l__block_label_given_tl
+      {
+        \tl_if_blank:oF \@listctr { \@kernel at refstepcounter \@listctr }
+        \bool_if:NTF \l__block_item_compatibility_bool   % not sure that conditional
+                                                     % makes sense
+          { \__block_make_label_box:n { \MakeLinkTarget[\@listctr]{}\@itemlabel } } % TODO ?
+          { \__block_make_label_box:n { \MakeLinkTarget[\@listctr]{}\__block_counter_label:n { \@listctr } } }
+      }
+      {
+        \__block_debug_typeout:n{item~ with~ optional}
+        \__block_make_label_box:n { \l__block_label_given_tl } }
+    \bool_if:nT
+      {
+        \l__block_label_boxed_bool
+        && \dim_compare_p:n { \box_wd:N \l__block_one_label_box <= \linewidth } % TODO: is \linewidth correct?
+      }
+      {
+        \dim_compare:nNnT
+          { \box_wd:N \l__block_one_label_box } < \labelwidth
+          {
+            \hbox_set_to_wd:Nnn \l__block_one_label_box { \labelwidth }
+              {
+                \exp_after:wN \use_i:nn \l__block_item_align_tl
+                \box_use_drop:N \l__block_one_label_box
+                \exp_after:wN \use_ii:nn \l__block_item_align_tl
+              }
+          }
+       \hbox_set:Nn \l__block_one_label_box
+                    { \box_use_drop:N \l__block_one_label_box }
+      }
+    \dim_compare:nNnTF { \box_wd:N \l__block_one_label_box } > \labelwidth
+      { \bool_set_true:N \l__block_long_label_bool }
+      { \bool_set_false:N \l__block_long_label_bool }
+    \hbox_gset:Nn \g__block_labels_box
+      {
+        \hbox_unpack_drop:N \g__block_labels_box
+        \skip_horizontal:n { \itemindent - \labelsep - \labelwidth }
+        \hbox_unpack_drop:N \l__block_one_label_box
+        \skip_horizontal:n { \labelsep }
+        \bool_if:NT \l__block_next_line_bool
+          { \bool_if:NT \l__block_long_label_bool { \nobreak \hfil \break } }
+        % version of \newline inside an hbox that will be unpacked
+      }
+    % \skip_set_eq:NN \parsep \l__block_item_parsep_skip TODO??? FMi
+                                                           % what's that?
+    \dim_set_eq:NN \parindent \listparindent
+    \cs_set_eq:NN \__block_item_everypar: \__block_item_everypar_std:
+  }
+\box_new:N \l__block_one_label_box
+\box_new:N \g__block_labels_box
+\bool_new:N \l__block_long_label_bool
+\cs_new_protected:Npn \__block_make_label_box:n #1
+  {
+    \hbox_set:Nn \l__block_one_label_box
+      {
+        \__kernel_list_label_begin:
+        \__block_label_format:n
+          {
+            \bool_if:NT \l__block_label_strut_bool { \strut }
+            \bool_if:NTF \l__block_legacy_support_bool
+                         \makelabel
+                         \use:n
+                 {#1}
+          }
+        \__kernel_list_label_end:
+      }
+  }
+\cs_new_eq:NN \__kernel_list_label_begin: \prg_do_nothing:
+\cs_new_eq:NN \__kernel_list_label_end:   \prg_do_nothing:
+\cs_new_eq:NN \__block_item_everypar: \prg_do_nothing:
+\AddToHook{para/begin}[lists]{\__block_item_everypar:}
+\DeclareHookRule{para/begin}{lists}{after}{tagpdf}
+\cs_new_protected:Npn \__block_item_everypar_std: {
+    \__block_debug_typeout:n{item~ everypar \on at line }
+    \legacy_if_set_false:n { @minipage }
+    \legacy_if_gset_false:n { @newlist }
+    \legacy_if:nT { @inlabel }
+       {
+         \legacy_if_gset_false:n { @inlabel }
+         \box_if_empty:NT \g_para_indent_box { \kern - \itemindent }
+         \para_omit_indent:
+         \box_use_drop:N \g__block_labels_box
+         \__kernel_list_label_after:
+         \penalty \c_zero_int
+       }
+   \legacy_if:nTF { @nobreak }
+       {
+         \legacy_if_gset_false:n { @nobreak }
+         \int_set:Nn \clubpenalty { 10000 }
+       }
+       {
+         \int_set_eq:NN \clubpenalty \@clubpenalty
+         \cs_set_eq:NN \__block_item_everypar: \prg_do_nothing:
+       }
+}
+\cs_new_eq:NN \__kernel_list_label_after: \prg_do_nothing:
+\skip_new:N \l__block_tmpa_skip
+\skip_new:N \l__block_topsepadd_skip
+\skip_new:N \l__block_effective_top_skip
+\AddToHook{begindocument/before}{
+  \RenewDocumentCommand{\item}{ ={label}o }
+    {
+      \@inmatherr \item
+      \tl_if_empty:oTF \__block_item_instance:n %%FMi?
+        { \msg_error:nnn { __block } { item-in-nonlist } { \item[{#1}] } }
+        {
+          \legacy_if:nTF { @newlist }
+            { \__kernel_list_item_begin: }
+            { \__block_inter_item:            }
+          \tl_if_novalue:nTF {#1}          % avoids reparsing label={}
+            { \__block_item_instance:n { } }
+            { \__block_item_instance:n {#1} }
+          \legacy_if_gset_true:n { @inlabel }
+          \ignorespaces
+        }
+    }
+}
+\cs_new_protected:Npn \__block_inter_item: {
+  \legacy_if:nT { @inlabel }
+                { \indent \par } % case of \item\item
+   \mode_if_horizontal:T { \__block_skip_remove_last:
+                           \__block_skip_remove_last: \par }
+  \__kernel_list_item_end:
+  \__kernel_list_item_begin:
+  \addpenalty \@itempenalty
+  \addvspace \itemsep
+}
+\cs_new_eq:NN \__kernel_list_item_begin: \prg_do_nothing:
+\cs_new_eq:NN \__kernel_list_item_end:   \prg_do_nothing:
+\cs_new:Npn \__block_recipe_basic: {
+  \cs_set_eq:NN \__kernel_displayblock_beginpar_hmode:w
+                                              \__block_beginpar_hmode:N
+  \cs_set_eq:NN \__kernel_displayblock_beginpar_vmode:
+                                              \__block_beginpar_vmode:
+  \let \__kernel_displayblock_begin:          \prg_do_nothing:
+  \let \__kernel_displayblock_end:            \prg_do_nothing:
+}
+\cs_new:Npn \__block_recipe_standard:
+{
+  \cs_set_eq:NN \__kernel_displayblock_beginpar_hmode:w
+                                              \__block_beginpar_hmode:N
+  \cs_set_eq:NN \__kernel_displayblock_beginpar_vmode:
+                                              \__block_beginpar_vmode:
+  \cs_set_eq:NN \__kernel_displayblock_begin: \__block_inner_begin:
+  \cs_set_eq:NN \__kernel_displayblock_end:   \__block_inner_end:
+  \tl_if_empty:NTF \l__block_tag_name_tl
+     { \tl_set:Nn    \l__block_tag_inner_tag_tl {Figure}          }
+     { \tl_set_eq:NN \l__block_tag_inner_tag_tl \l__block_tag_name_tl }
+}
+\tl_new:N \l__block_tag_inner_tag_tl
+\cs_new:Npn \__block_recipe_list:
+{
+  \cs_set_eq:NN \__kernel_displayblock_beginpar_hmode:w
+                                              \__block_beginpar_hmode:N
+  \cs_set_eq:NN \__kernel_displayblock_beginpar_vmode:
+                                              \__block_beginpar_vmode:
+  \cs_set_eq:NN \__kernel_displayblock_begin: \__block_list_begin:
+  \cs_set_eq:NN \__kernel_displayblock_end:   \__block_list_end:
+  \cs_set_eq:NN \__kernel_list_item_begin:    \__block_list_item_begin:
+  \cs_set_eq:NN \__kernel_list_item_end:      \__block_list_item_end:
+  \tl_if_empty:NTF \l__block_tag_name_tl
+     { \tl_set:Nn    \l__tag_L_tag_tl {L}               }
+     { \tl_set_eq:NN \l__tag_L_tag_tl \l__block_tag_name_tl }
+  \tl_if_empty:NTF \l__block_tag_class_tl
+     { \tl_set:Nn    \l__tag_L_attr_class_tl {}                 }
+     { \tl_set_eq:NN \l__tag_L_attr_class_tl \l__block_tag_class_tl }
+}
+
+\DeclareInstance{blockenv}{displayblock}{display}
+{
+  env-name       = displayblock,
+  tag-name       = ,
+  tag-class      = ,
+  tagging-recipe = standard,
+  inner-level-counter  = ,
+  level-increase = false,
+  setup-code     = ,
+  block-instance = displayblock ,
+  inner-instance = ,
+}
+\DeclareInstance{blockenv}{displayblockflattened}{display}
+{
+  env-name       = displayblockflattened,
+  tag-name       = ,
+  tag-class      = ,
+  tagging-recipe = basic,
+  inner-level-counter  = ,
+  level-increase = false,
+  setup-code     = ,
+  block-instance = displayblock ,
+  para-flattened = true ,
+  inner-instance = ,
+}
+\DeclareInstance{blockenv}{center}{display}
+{
+  env-name       = center,
+  tag-name       = ,
+  tag-class      = ,
+  tagging-recipe = basic,
+  inner-level-counter  = ,
+  level-increase = false,
+  setup-code     = ,
+  block-instance = displayblock ,
+  para-flattened = true ,
+  para-instance  = center ,
+  inner-instance = ,
+}
+\DeclareInstance{blockenv}{flushleft}{display}
+{
+  env-name       = flushleft,
+  tag-name       = ,
+  tag-class      = ,
+  tagging-recipe = basic,
+  inner-level-counter  = ,
+  level-increase = false,
+  setup-code     = ,
+  block-instance = displayblock ,
+  para-flattened = true ,
+  para-instance  = raggedright ,
+  inner-instance = ,
+}
+\DeclareInstance{blockenv}{flushright}{display}
+{
+  env-name       = flushleft,
+  tag-name       = ,
+  tag-class      = ,
+  tagging-recipe = basic,
+  inner-level-counter  = ,
+  level-increase = false,
+  setup-code     = ,
+  block-instance = displayblock ,
+  para-flattened = true ,
+  para-instance  = raggedleft ,
+  inner-instance = ,
+}
+\tag_if_active:T {
+  \tagpdfsetup{add-new-tag={tag=quote,role=BlockQuote}}
+  \tagpdfsetup{add-new-tag={tag=quotation,role=BlockQuote}}
+}
+\DeclareInstance{blockenv}{quotation}{display}
+{
+  env-name       = quotation,
+  tag-name       = quotation,
+  tag-class      = ,
+  tagging-recipe = standard,
+  inner-level-counter  = ,
+  level-increase = true,
+  setup-code     = ,
+  block-instance = quotationblock ,
+  inner-instance =  ,
+}
+\DeclareInstance{blockenv}{quote}{display}
+{
+  env-name       = quote,
+  tag-name       = quote,
+  tag-class      = ,
+  tagging-recipe = standard,
+  inner-level-counter  = ,
+  level-increase = true,
+  setup-code     = ,
+  block-instance = quoteblock ,
+  inner-instance =  ,
+}
+\tag_if_active:T {
+  \tagpdfsetup{add-new-tag={tag=verbatim,role=P}}
+  \tagpdfsetup{add-new-tag={tag=codeline,role=Sub}}
+}
+\DeclareInstance{blockenv}{verbatim}{display}
+{
+  env-name       = verbatim,
+  tag-name       = verbatim,
+  tag-class      = ,
+  tagging-recipe = standard,
+  inner-level-counter  = ,
+  level-increase = false,
+  setup-code     = ,
+  block-instance = displayblock ,
+  inner-instance = ,
+  final-code     = \legacyverbatimsetup ,
+}
+\DeclareInstance{blockenv}{itemize}{display}
+{
+  env-name       = itemize,
+  tag-name       = itemize,
+  tag-class      = itemize,
+  tagging-recipe = list,
+  inner-level-counter  = \@itemdepth,
+  level-increase = true,
+  max-inner-levels = 4,
+  setup-code     = ,
+  block-instance = list ,
+  inner-instance = itemize ,
+}
+\DeclareInstance{blockenv}{enumerate}{display}
+{
+  env-name            = enumerate,
+  tag-name            = enumerate,
+  tag-class           = enumerate,
+  tagging-recipe      = list,
+  level-increase      = true,
+  setup-code          = ,
+  block-instance      = list ,
+  inner-level-counter = \@enumdepth,
+  max-inner-levels    = 4,
+  inner-instance      = enum ,
+}
+
+\DeclareInstance{blockenv}{description}{display}
+{
+  env-name       = description,
+  tag-name       = description,
+  tag-class      = description,
+  tagging-recipe = list,
+  inner-level-counter  = ,
+  level-increase = true,
+  setup-code     = ,
+  block-instance = list ,
+  inner-instance = description ,
+}
+\DeclareInstance{blockenv}{list}{display}
+{
+  env-name       = list,
+  tag-name       = list,
+  tag-class      = ,
+  tagging-recipe = list,
+  level-increase = true,
+  setup-code     = \legacylistsetupcode ,
+  block-instance = list ,
+  inner-level-counter  = ,
+  inner-instance = legacy ,
+}
+\setcounter{maxblocklevels}{6}
+\DeclareInstance{block}{displayblock-0}{display}
+  {
+    leftmargin      = 0pt ,
+    parindent       = 0pt ,
+  }
+\DeclareInstanceCopy{block}{displayblock-1}{displayblock-0}
+\DeclareInstanceCopy{block}{displayblock-2}{displayblock-0}
+\DeclareInstanceCopy{block}{displayblock-3}{displayblock-0}
+\DeclareInstanceCopy{block}{displayblock-4}{displayblock-0}
+\DeclareInstanceCopy{block}{displayblock-5}{displayblock-0}
+\DeclareInstanceCopy{block}{displayblock-6}{displayblock-0}
+\DeclareInstance{block}{quoteblock-1}{display}
+  { rightmargin = \KeyValue{leftmargin} }
+\DeclareInstanceCopy{block}{quoteblock-2}{quoteblock-1}
+\DeclareInstanceCopy{block}{quoteblock-3}{quoteblock-1}
+\DeclareInstanceCopy{block}{quoteblock-4}{quoteblock-1}
+\DeclareInstanceCopy{block}{quoteblock-5}{quoteblock-1}
+\DeclareInstanceCopy{block}{quoteblock-6}{quoteblock-1}
+\DeclareInstance{block}{quotationblock-1}{display}
+  { parindent = 1.5em , rightmargin = \KeyValue{leftmargin} }
+\DeclareInstanceCopy{block}{quotationblock-2}{quotationblock-1}
+\DeclareInstanceCopy{block}{quotationblock-3}{quotationblock-1}
+\DeclareInstanceCopy{block}{quotationblock-4}{quotationblock-1}
+\DeclareInstanceCopy{block}{quotationblock-5}{quotationblock-1}
+\DeclareInstanceCopy{block}{quotationblock-6}{quotationblock-1}
+\DeclareInstance{block}{list-1}{display}{
+}
+\DeclareInstance{block}{list-2}{display}{}
+\DeclareInstance{block}{list-3}{display}{}
+\DeclareInstance{block}{list-4}{display}{}
+\DeclareInstance{block}{list-5}{display}{}
+\DeclareInstance{block}{list-6}{display}{}
+\DeclareInstance{list}{itemize-1}{std}{ item-label = \labelitemi }
+\DeclareInstance{list}{itemize-2}{std}{ item-label = \labelitemii }
+\DeclareInstance{list}{itemize-3}{std}{ item-label = \labelitemiii }
+\DeclareInstance{list}{itemize-4}{std}{ item-label = \labelitemiv }
+\DeclareInstance{list}{enum-1}{std}
+  { item-label = \labelenumi ,   counter = enumi }
+\DeclareInstance{list}{enum-2}{std}
+  { item-label = \labelenumii ,  counter = enumii }
+\DeclareInstance{list}{enum-3}{std}
+  { item-label = \labelenumiii , counter = enumiii }
+\DeclareInstance{list}{enum-4}{std}
+  { item-label = \labelenumiv ,  counter = enumiv }
+\DeclareInstance{list}{legacy}{std} {
+  item-instance = basic ,
+  legacy-support = true ,
+}
+\DeclareInstance{list}{description}{std} { item-instance = description }
+\DeclareInstance{item}{basic}{std}
+  {
+    label-align = right ,
+  }
+\DeclareInstance{item}{description}{std}
+  {
+    label-format = \normalfont\bfseries #1 ,
+  }
+\tag_if_active:T
+{
+  \tagpdfsetup
+      {
+        newattribute = {justify}    {/O /Layout /TextAlign/Justify},
+        newattribute = {center}     {/O /Layout /TextAlign/Center},
+        newattribute = {raggedright}{/O /Layout /TextAlign/Start},
+        newattribute = {raggedleft} {/O /Layout /TextAlign/End},
+      }
+}
+\DeclareInstance{para}{center}{std}
+{
+  indent-width          = 0pt ,
+  start-skip            = 0pt ,
+  left-skip             = \@flushglue ,
+  right-skip            = \@flushglue ,
+  end-skip              = \z at skip ,
+  final-hyphen-demerits = 0 ,
+  cr-cmd                = \@centercr ,
+  para-class            = center ,
+}
+\DeclareInstance{para}{raggedright}{std}
+{
+  indent-width          = 0pt ,
+  start-skip            = 0pt ,
+  left-skip             = \z at skip ,
+  right-skip            = \@flushglue ,
+  end-skip              = \z at skip ,
+  final-hyphen-demerits = 0 ,
+  cr-cmd                = \@centercr ,
+  para-class            = raggedright ,
+}
+\DeclareInstance{para}{raggedleft}{std}
+{
+  indent-width          = 0pt ,
+  start-skip            = 0pt ,
+  left-skip             = \@flushglue ,
+  right-skip            = \z at skip ,
+  end-skip              = \z at skip ,
+  final-hyphen-demerits = 0 ,
+  cr-cmd                = \@centercr ,
+  para-class            = raggedleft ,
+}
+\DeclareInstance{para}{justify}{std}
+{
+  start-skip            = 0pt ,
+  left-skip             = \z at skip ,
+  right-skip            = \z at skip ,
+  end-skip              = \@flushglue ,
+  final-hyphen-demerits =  5000 ,
+  cr-cmd                = \@normalcr ,
+  para-class            = justify ,
+}
+\DeclareRobustCommand\centering  {\UseInstance{para}{center}{}}
+\DeclareRobustCommand\raggedleft {\UseInstance{para}{raggedleft}{}}
+\DeclareRobustCommand\raggedright{\UseInstance{para}{raggedright}{}}
+\DeclareRobustCommand\justifying {\UseInstance{para}{justify}{}}
+
+\justifying
+\tag_if_active:T {
+  \cs_set:Npn \__block_beginpar_vmode: {
+           \__block_debug_typeout:n
+              { @endpe = \legacy_if:nTF { @endpe }{true}{false}
+                \on at line }
+   \legacy_if:nTF { @endpe }
+      {
+        \legacy_if_gset_false:n { @endpe }
+      }
+      {
+        \int_compare:nNnT \l__block_flattened_level_int < 2
+            {
+              \int_gincr:N \g__tag_para_main_begin_int
+              \tagstructbegin{tag=\l__tag_para_main_tag_tl}
+            }
+      }
+  }
+  \cs_set:Npn \__block_beginpar_hmode:N #1
+     {
+        \tag_mc_end:
+        \int_gincr:N \g__tag_para_end_int
+        \__block_debug_typeout:n{increment~ /P \on at line }
+        \bool_if:NT \l__tag_para_show_bool
+          { \tag_mc_begin:n{artifact}
+            \rlap{\color_select:n{red}\tiny\ \int_use:N\g__tag_para_end_int}
+            \tag_mc_end:
+          }
+        \tag_struct_end:
+        \tagpdfparaOff \par \tagpdfparaOn
+     }
+\cs_set:Npn \__kernel_displayblock_doendpe: {
+     \bool_if:NT \l__tag_para_bool
+       {
+         \legacy_if:nT { @endpe }
+           {
+             \__block_debug_typeout:n
+                { flattened= \bool_if:NTF
+                               \l__tag_para_flattened_bool {true}{false}
+                  \on at line }
+             \bool_if:NF \l__tag_para_flattened_bool
+               {
+                 \__block_debug_typeout:n{Structure-end~
+                       \l__tag_para_main_tag_tl\space after~ list \on at line }
+                 \int_gincr:N \g__tag_para_main_end_int
+                 \tag_struct_end: %text-unit
+               }
+           }
+      }
+}
+\RemoveFromHook{para/begin}[tagpdf]
+\AddToHook{para/begin}[tagpdf]{
+  \bool_if:NT \l__tag_para_bool {
+       \legacy_if:nF { @inlabel }
+         {
+           \__block_debug_typeout:n
+              { @endpe = \legacy_if:nTF { @endpe }{true}{false}
+                \on at line }
+           \legacy_if:nF { @endpe }
+             {
+               \bool_if:NF \l__tag_para_flattened_bool
+                  {
+                    \int_gincr:N \g__tag_para_main_begin_int
+                    \tag_struct_begin:n{tag=\l__tag_para_main_tag_tl}
+                  }
+              }
+           \int_gincr:N \g__tag_para_begin_int
+           \__block_debug_typeout:n{increment~ P \on at line }
+           \tag_struct_begin:n
+               {
+                  tag=\l__tag_para_tag_tl
+                 ,attribute-class=\l_tag_para_attr_class_tl
+               }
+           \__tag_check_para_begin_show:nn {green}{\PARALABEL}
+           \tag_mc_begin:n {}
+         }
+     }
+}
+\tag_if_active:T {
+}
+\RemoveFromHook{para/end}[tagpdf]
+\AddToHook{para/end}
+  {
+    \bool_if:NT \l__tag_para_bool
+      {
+        \int_gincr:N \g__tag_para_end_int
+        \__block_debug_typeout:n{increment~ /P \on at line }
+        \tag_mc_end:
+        \__tag_check_para_end_show:nn {red}{}
+        \tag_struct_end:
+        \bool_if:NF \l__tag_para_flattened_bool
+         {
+           \int_gincr:N \g__tag_para_main_end_int
+           \tag_struct_end:
+         }
+      }
+  }
+\def\PARALABEL{NP-}
+\cs_set_protected:Npn \para_end: {
+  \scan_stop:
+  \mode_if_horizontal:TF {
+    \mode_if_inner:F {
+         \tex_unskip:D
+         \hook_use:n{para/end}
+         \@kernel at after@para at end
+         \mode_if_horizontal:TF {
+           \if_int_compare:w 11 = \tex_lastnodetype:D
+             \tex_hskip:D \c_zero_dim
+           \fi:
+           \tex_par:D
+           \hook_use:n{para/after}
+           \@kernel at after@para at after
+         }
+         { \msg_error:nnnn { hooks }{ para-mode }{end}{horizontal} }
+    }
+  }
+  {
+    \__kernel_endpe_vmode:       % should do nothing if no tagging
+    \tex_par:D
+  }
+}
+\cs_set_eq:NN \par     \para_end:
+\cs_set_eq:NN \__blockpar   \para_end:
+\cs_set_eq:NN \endgraf \para_end:
+\DeclareRobustCommand*\begin[1]{%
+  \UseHook{env/#1/before}%
+  \@ifundefined{#1}%
+    {\def\reserved at a{\@latex at error{Environment #1 undefined}\@eha}}%
+    {\def\reserved at a{\def\@currenvir{#1}%
+        \edef\@currenvline{\on at line}%
+        \@execute at begin@hook{#1}%
+        \csname #1\endcsname}}%
+  \@ignorefalse
+  \begingroup
+    \__kernel_endpe_vmode:
+    \reserved at a}
+\cs_new:Npn \__kernel_endpe_vmode: {
+    \if at endpe \ifvmode
+      \bool_if:NT \l__tag_para_bool
+{
+  \bool_if:NF \l__tag_para_flattened_bool
+   {
+     \int_gincr:N \g__tag_para_main_end_int
+     \tag_struct_end:
+   }
+   \@endpefalse
+}
+    \fi \fi
+}
+\cs_set:Npn \__kernel_list_label_after: {
+   \bool_if:NT \l__tag_para_bool
+     {
+       \bool_if:NF \l__tag_para_flattened_bool
+            {
+              \int_gincr:N \g__tag_para_main_begin_int
+              \tag_struct_begin:n{tag=\l__tag_para_main_tag_tl}
+            }
+       \int_gincr:N \g__tag_para_begin_int
+       \__block_debug_typeout:n{increment~ P \on at line }
+       \tag_struct_begin:n {
+          tag=\l__tag_para_tag_tl
+         ,attribute-class=\l_tag_para_attr_class_tl
+       }
+       \bool_if:NT \l__tag_para_show_bool
+            {
+              \tag_mc_begin:n {artifact}
+              \llap {\color_select:n {blue}\tiny Li-\int_use:N \g__tag_para_begin_int \ }
+              \tag_mc_end:
+            }
+       \tag_mc_begin:n {tag=P}
+     }
+}
+\cs_new:Npn \__block_inner_begin: {
+  \tagstructbegin{tag=\l__block_tag_inner_tag_tl}
+}
+\cs_new:Npn \__block_inner_end: {
+  \__block_debug_typeout:n{block-end \on at line}
+  \legacy_if:nT { @endpe }
+    {
+      \int_gincr:N \g__tag_para_main_end_int
+      \__block_debug_typeout:n{close~ /text-unit \on at line}
+      \tagstructend
+    }
+  \tagstructend        % end inner structure
+}
+\tl_new:N  \l__tag_L_tag_tl
+\tl_set:Nn \l__tag_L_tag_tl {L}
+
+\tl_new:N\l__tag_L_attr_class_tl
+\tl_set:Nn \l__tag_L_attr_class_tl {list}
+\tag_if_active:T
+{
+  \tagpdfsetup
+      {
+        % default if unknown
+        newattribute = {list}{/O /List /ListNumbering/None},
+        newattribute = {itemize}{/O /List /ListNumbering/Unordered},
+        newattribute = {enumerate}{/O /List /ListNumbering/Ordered},
+        newattribute = {description}{/O /List /ListNumbering/Description},
+      }
+}
+\def\LItag{LI}
+\cs_set:Npn \__block_list_begin: {
+  \tagstructbegin
+      {
+         tag=\l__tag_L_tag_tl
+        ,attribute-class=\l__tag_L_attr_class_tl
+      }
+}
+\cs_set:Npn \__block_list_item_begin: { \tagstructbegin{tag=\LItag} }
+\cs_set:Npn \__kernel_list_label_begin: {
+       \tagstructbegin{tag=Lbl}
+       \tagmcbegin{tag=Lbl}
+}
+\cs_set:Npn \__kernel_list_label_end: {
+  \tagmcend                                    % end mc-Lbl or artifact
+         \tagstructend   % end   Lbl
+  \tagstructbegin{tag=\LBody}
+}
+\def\LBody{LBody}
+\cs_set:Npn \__block_list_item_end: {
+  \legacy_if:nT { @endpe }
+    {
+      \int_gincr:N \g__tag_para_main_end_int
+      \tagstructend                           % text-unit
+    }
+  \tagstructend \tagstructend   % end LBody, LI
+}
+\cs_set:Npn \__block_list_end: {
+  \legacy_if:nT { @endpe }
+    {
+      \int_gincr:N \g__tag_para_main_end_int
+      \tagstructend                       % text-unit
+      \__block_debug_typeout:n{Structure-end~ P~ at~ list-end \on at line }
+    }
+  \tagstructend\tagstructend  % end LBody, LI
+  \tagstructend               % end L
+}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%
+%% End of file `latex-lab-testphase-block-tagging.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-block-tagging.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-math.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-math.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-math.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,45 @@
+%%
+%% This is file `latex-lab-testphase-math.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% latex-lab-testphase.dtx  (with options: `math-sty')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright 2021-2023 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
+
+\ProvidesPackage{latex-lab-testphase-math}
+        [2023-01-07 v0.8 code related to the math tagging]
+\input{latex-lab-mathtagging.ltx}
+\input{latex-lab-amsmath.ltx}
+\input{latex-lab-mathtools.ltx}
+\input{latex-lab-mathpkg.ltx}
+\endinput
+%%
+%% End of file `latex-lab-testphase-math.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-math.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-new-or-1.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-new-or-1.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-new-or-1.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,83 @@
+%%
+%% This is file `latex-lab-testphase-new-or-1.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% latex-lab-new-or-1.dtx  (with options: `code')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright 2021-2023 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-1.dtx (C) Copyright 2020-2022 Frank Mittelbach
+\ProvidesPackage{latex-lab-testphase-new-or-1}
+        [2022-11-94 v0.1a Temporary output patches for tagging and better link support]
+\RequirePackage{etoolbox}
+\providecommand\@kernel at before@head{}
+\providecommand\@kernel at before@foot{}
+\providecommand\@kernel at after@head{}
+\providecommand\@kernel at after@foot{}
+\providecommand\@mult at ptagging@hook{}% multicol
+
+\patchcmd\@outputpage
+ {\vfil\color at hbox\normalcolor\hb at xt@\textwidth{\@thehead}\color at endbox}
+ {\vfil\@kernel at before@head\color at hbox\normalcolor\hb at xt@\textwidth{\@thehead}\color at endbox\@kernel at after@head}
+ {\typeout{Patching header in \string\@outputpage}}{\PATCHerror }
+
+\patchcmd\@outputpage
+ {\color at hbox\normalcolor\hb at xt@\textwidth{\@thefoot}\color at endbox}
+ {\@kernel at before@foot\color at hbox\normalcolor\hb at xt@\textwidth{\@thefoot}\color at endbox\@kernel at after@foot}
+ {\typeout{Patching footer in \string\@outputpage}}{\PATCHerror }
+  \providecommand\@kernel at before@footins{}
+  \providecommand\@kernel at before@cclv{}
+
+  \patchcmd\@makecol
+    {\vskip\skip\footins}
+    {\vskip\skip\footins\@kernel at before@footins}
+    {\typeout{Patching \string\@makecol\space for tagging}}{\PATCHerror }
+
+
+  \pretocmd\@makecol{\@kernel at before@cclv}
+   {\typeout{Patching \string\@makecol\space for tagging}}{\PATCHerror }
+\AddToHook{package/multicol/after}
+    {% multicol needs later loading
+  \patchcmd\page at sofar
+      {\setbox\z@\hbox{p}\global\dimen\tw@\dp\z@}%
+      {%
+        \setbox\z@\hbox{p}\global\dimen\tw@\dp\z@
+        \@mult at ptagging@hook
+      }%
+      {\typeout{Patching \string\page at sofar\space for tagging}}{\PATCHerror}%
+}
+\ExplSyntaxOn
+\def\@kernel at before@head{\pdfannot_link_off:}
+\def\@kernel at before@foot{\pdfannot_link_off:}
+\def\@kernel at after@head {\pdfannot_link_on:}
+\def\@kernel at after@foot {\pdfannot_link_on:}
+\ExplSyntaxOff
+\endinput
+%%
+%% End of file `latex-lab-testphase-new-or-1.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-new-or-1.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-new-or-2.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-new-or-2.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-new-or-2.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,169 @@
+%%
+%% This is file `latex-lab-testphase-new-or-2.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% latex-lab-new-or-2.dtx  (with options: `code')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright 2021-2023 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-2.dtx
+\ProvidesPackage{latex-lab-testphase-new-or-2}
+        [2022-11-04 v0.1c 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-2.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-new-or-2.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-new-or.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-new-or.sty	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-new-or.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -1,169 +0,0 @@
-%%
-%% 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'.

Added: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-sec-tagging.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-sec-tagging.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-sec-tagging.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,412 @@
+%%
+%% This is file `latex-lab-testphase-sec-tagging.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% latex-lab-sec-tagging.dtx  (with options: `package')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright 2021-2023 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: sec-tagging.dtx (C) Copyright 2022-2023 LaTeX Project
+\ProvidesExplPackage {latex-lab-testphase-sec-tagging} {2022-10-25} {0.8}
+  {Code related to the tagging of sectioning commands}
+\RequirePackage{latex-lab-kernel-changes}
+\seq_new:N   \g__tag_sec_stack_seq
+\seq_gpush:Nn\g__tag_sec_stack_seq {{Document}{-100}}
+\bool_new:N     \l__tag_sec_Sect_bool
+\bool_set_true:N\l__tag_sec_Sect_bool
+
+\cs_new_protected:Npn\__tag_sec_begin:nn #1 #2 %#1 level #2 keyval
+  {
+    \tag_struct_begin:n
+      {
+         tag= {\int_compare:nNnTF {#1}={-1}{Part}{Sect}}
+        ,#2
+      }
+    \seq_gpush:Nx \g__tag_sec_stack_seq {{\g__tag_struct_tag_tl}{#1}}
+  }
+\msg_new:nnn { tag } {wrong-sect-nesting}
+  {
+    The~structure~#1~can~not~be~closed.\\
+    It~is~not~equal~to~the~current~structure~#2~on~the~main~stack
+  }
+
+\cs_new_protected:Npn\__tag_sec_end:n #1 % #1 level
+  {
+    \seq_get:NN \g__tag_sec_stack_seq \l__tag_tmpa_tl
+    \int_compare:nNnT {#1}<{\exp_last_unbraced:NV\use_ii:nn\l__tag_tmpa_tl+1}
+      {
+        \seq_get:NN\g__tag_struct_tag_stack_seq \l__tag_tmpb_tl
+        \exp_args:Nee
+          \tl_if_eq:nnTF
+            {\exp_last_unbraced:NV\use_i:nn\l__tag_tmpa_tl}
+            {\exp_last_unbraced:NV\use_i:nn\l__tag_tmpb_tl}
+            {
+              \seq_gpop:NN \g__tag_sec_stack_seq \l__tag_tmpa_tl
+              \tag_struct_end:
+              \__tag_sec_end:n {#1}
+            }
+            {
+              \msg_warning:nnxx {tag}{wrong-sect-nesting}
+               { \exp_last_unbraced:NV\use_i:nn \l__tag_tmpa_tl }
+               { \exp_last_unbraced:NV\use_i:nn \l__tag_tmpb_tl }
+            }
+      }
+  }
+
+\cs_new_protected:Npn \__tag_tool_para_split:
+  {
+    \tag_mc_end:
+    \tag_struct_end:
+    \tag_struct_begin:n{tag=\l__tag_para_tag_default_tl}
+    \tag_mc_begin:n{}
+    \__tag_setup_restore_para_default:
+  }
+
+\cs_new_protected:Npn \__tag_setup_restore_para_default:
+  {
+    \tl_set:Nn \l__tag_para_main_tag_tl {text-unit}
+    \tl_set_eq:NN\l__tag_para_tag_tl\l__tag_para_tag_default_tl
+  }
+\cs_new_protected:Npn \__tag_sec_end_display:
+  {
+    \tag_struct_end: %P = Hn
+    \__tag_setup_restore_para_default:
+  }
+\hook_gput_code:nnn{tagpdf/finish/before}{tagpdf/sec}{\__tag_sec_end:n{-10}}
+\hook_gset_rule:nnnn {tagpdf/finish/before}{tagpdf/sec}{before}{tagpdf}
+\AddToHook{cmd/frontmatter/before}{\__tag_sec_end:n{-10}}
+\AddToHook{cmd/mainmatter/before} {\__tag_sec_end:n{-10}}
+\AddToHook{cmd/backmatter/before} {\__tag_sec_end:n{-10}}
+\AddToHook{cmd/appendix/before}   {\__tag_sec_end:n{-10}}
+\cs_if_free:NT \tag_tool:n
+ {
+   \cs_new_protected:Npn \tag_tool:n #1
+    {
+      \tag_if_active:T { \keys_set:nn {tag / tool}{#1} }
+    }
+   \cs_set_eq:NN\tagtool\tag_tool:n
+ }
+\keys_define:nn { tag / tool}
+  {
+    ,sec-start-part .code:n =
+      {
+        \bool_if:NT\l__tag_sec_Sect_bool
+          {
+            \__tag_sec_end:n   {-1}
+            \__tag_sec_begin:nn{-1}{tag=Part}
+          }
+         \tag_struct_begin:n{tag=part,title=#1}
+         \tl_set:Nn\l__tag_para_main_tag_tl {NonStruct}
+         \tl_set:Nn\l__tag_para_tag_tl {Span}
+      }
+    ,sec-stop-part .code:n = {\__tag_sec_end_display:}
+    ,sec-start-chapter .code:n =
+     {
+       \bool_if:NT\l__tag_sec_Sect_bool
+         {
+           \__tag_sec_end:n   {0}
+           \__tag_sec_begin:nn{0}{tag=Sect}
+         }
+        \tag_struct_begin:n{tag=chapter,title=#1}
+        \tl_set:Nn\l__tag_para_main_tag_tl {NonStruct}
+        \tl_set:Nn\l__tag_para_tag_tl {Span}
+     }
+    ,sec-stop-chapter .meta:n = { sec-stop-part}
+    ,sec-start .code:n = % #1 is a name like "section"
+      {
+        \bool_if:NT\l__tag_sec_Sect_bool
+          {
+            \__tag_sec_end:n    {\use:c{toclevel@#1}+0}
+            \__tag_sec_begin:nn {\use:c{toclevel@#1}+0}{tag=Sect}
+          }
+        \tl_set:Nn\l__tag_para_tag_tl{#1}
+      }
+    ,sec-start .value_required:n = true
+    ,sec-split-para .code:n = {\__tag_tool_para_split:}
+    ,restore-para .code:n = {\__tag_setup_restore_para_default:}
+    ,sec-stop .code:n =
+      {
+        \par\__tag_sec_end:n   {\use:c{toclevel@#1}+0}
+      }
+    ,sec-stop .value_required:n = true
+    ,sec-add-grouping .bool_set:N = \l__tag_sec_Sect_bool
+  }
+\AddToHook{class/after}
+ {
+  \@ifundefined{chapter}
+    {
+     \RenewDocumentCommand\part{ s O{#3} m }
+      {
+        \if at noskipsec \leavevmode \fi
+        \par
+        \addvspace{4ex}%
+        \@afterindentfalse
+        % tagging start commands
+        \tag_tool:n {sec-start-part=#2}
+        % end tagging start commands
+        \bool_lazy_any:nT
+          {
+            { #1 }
+            {
+              \int_compare_p:nNn {\c at secnumdepth}<{-1}
+            }
+          }
+          {
+            \MakeLinkTarget[part]{}
+          }
+        \IfBooleanTF
+          {#1}
+          { \@spart {#3} }
+          { \@part [#2]{#3} }
+       \tag_tool:n {sec-stop-part}
+      }
+    }
+    {
+     \RenewDocumentCommand\chapter{ s O{#3} m }
+      {
+        \if at openright\cleardoublepage\else\clearpage\fi
+        \thispagestyle{plain}%
+        \global\@topnum\z@
+        \@afterindentfalse
+        \tag_tool:n { sec-start-chapter= #2 }
+        \bool_lazy_any:nT
+          {
+            { #1 }
+            {
+              \int_compare_p:nNn {\c at secnumdepth}<{0}
+            }
+            {
+              %in book target also needed in frontmatter
+              \bool_lazy_and_p:nn
+                { \cs_if_exist_p:c { @mainmattertrue } }
+                { ! \legacy_if_p:n { @mainmatter } }
+            }
+          }
+          {
+            \MakeLinkTarget[chapter]{}
+            %todo public function for this update!
+            \tl_if_blank:VF \@currentHref
+              {
+                \prop_gput:Nxx \g__tag_struct_dest_num_prop {\@currentHref}{\tag_get:n{struct_num}}
+              }
+          }
+        \IfBooleanTF
+          {#1}
+          { \@schapter {#3} }
+          { \@chapter [#2]{#3} }
+        \tag_tool:n {sec-stop-chapter}
+      }
+     \RenewDocumentCommand\part{ s O{#3} m }
+      {
+        \if at openright
+          \cleardoublepage
+        \else
+          \clearpage
+        \fi
+        \thispagestyle{plain}%
+        \if at twocolumn
+          \onecolumn
+          \@tempswatrue
+        \else
+          \@tempswafalse
+        \fi
+        \null\vfil
+       \tag_tool:n {sec-start-part=#2}
+        \bool_lazy_any:nT
+          {
+            { #1 }
+            {
+              \int_compare_p:nNn {\c at secnumdepth}<{-1}
+            }
+            {
+              %in book target also needed in frontmatter
+              \bool_lazy_and_p:nn
+                { \cs_if_exist_p:c { @mainmattertrue } }
+                { ! \legacy_if_p:n { @mainmatter } }
+            }
+          }
+          {
+            \MakeLinkTarget[part]{}
+            \tl_if_blank:VF \@currentHref
+             {
+               \prop_gput:Nxx \g__tag_struct_dest_num_prop {\@currentHref}{\tag_get:n{struct_num}}
+             }
+          }
+        \IfBooleanTF
+          {#1}
+          { \@spart {#3} }
+          { \@part [#2]{#3} }
+        \tag_tool:n{sec-stop-part}
+      }
+    }
+ }
+\def\hyper at nopatch@sectioning{}
+\cs_new_protected:Npn \@hyp at section@target at nnn #1 #2 #3 %#1 optarg #2 name/counter, #3 indent
+ {
+   \makebox[0pt][l]
+     {
+       \skip_set:Nn \@tempskipa {#3}
+       \dim_compare:nNnF {\@tempskipa}<{0pt}{\kern-\@tempskipa}
+       \MakeLinkTarget#1{#2}
+     }
+   \tl_if_blank:VF \@currentHref
+    {
+      \prop_gput:Nxx \g__tag_struct_dest_num_prop {\@currentHref}{\tag_get:n{struct_num}}
+    }
+ }
+\def\@startsection#1#2#3#4#5#6{%
+  \if at noskipsec \leavevmode \fi
+  \par
+  \@tempskipa #4\relax
+  \@afterindenttrue
+  \ifdim \@tempskipa <\z@
+    \@tempskipa -\@tempskipa \@afterindentfalse
+  \fi
+  \if at nobreak
+    \everypar{}%
+  \else
+    \addpenalty\@secpenalty\addvspace\@tempskipa
+  \fi
+  \tag_tool:n { sec-start=#1}%new
+  \@ifstar
+    {\@ssect{#3}{#4}{#5}{#6}}%
+    {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
+\cs_new_protected:Npn \@kernel at tag@hangfrom #1
+  {
+     \tagstructbegin{tag=\l__tag_para_tag_tl}
+     \tagstructbegin{tag=Lbl}
+     \setbox\@tempboxa
+       \hbox
+         {
+           \bool_lazy_and:nnT
+            {\tag_if_active_p:}
+            {\g__tag_mode_lua_bool}
+            {\tagmcbegin{tag=Lbl}}
+           {#1}
+         }
+   \tag_stop:n{hangfrom}
+   \hangindent \wd\@tempboxa\noindent
+   \tag_start:n{hangfrom}
+   \tagmcbegin{}\box\@tempboxa\tagmcend\tagstructend\tagmcbegin{}}
+\cs_new_protected:Npn \@kernel at tag@svsec
+  {
+    \tag_mc_end_push:
+    \tag_struct_begin:n{tag=Lbl}
+    \tag_mc_begin:n{}
+    \@svsec
+    \tag_mc_end:
+    \tag_struct_end:
+    \tag_mc_begin_pop:n{}
+  }
+\def\@sect#1#2#3#4#5#6[#7]#8{%
+  \ifnum #2>\c at secnumdepth
+    \def\@svsec{\@hyp at section@target at nnn{[section]}{}{#3}}
+  \else
+    \LinkTargetOff
+    \refstepcounter{#1}%
+    \LinkTargetOn
+    \protected at edef\@svsec{\@hyp at section@target at nnn{}{#1}{#3}\@seccntformat{#1}\relax}%
+  \fi
+  \@tempskipa #5\relax
+  \ifdim \@tempskipa>\z@
+    \begingroup
+    \tagtool{para-flattened=true} % or \bool_set_true\l__tag_para_flattened_bool
+      #6{%
+         \ifnum #2>\c at secnumdepth
+          \@hangfrom {\hskip #3\relax\@svsec}%
+         \else
+          \@kernel at tag@hangfrom{\hskip #3\relax\@svsec}%
+         \fi
+          \interlinepenalty \@M #8\@@par}%
+    \endgroup
+    \csname #1mark\endcsname{#7}%
+    \addcontentsline{toc}{#1}{%
+      \ifnum #2>\c at secnumdepth \else
+        \protect\numberline{\csname the#1\endcsname}%
+      \fi
+      #7}%
+  \else
+    \def\@svsechd{%
+      #6{\hskip #3\relax
+      \ifnum #2>\c at secnumdepth
+       \@svsec
+      \else
+       \@kernel at tag@svsec
+      \fi  #8}%
+      \csname #1mark\endcsname{#7}%
+      \addcontentsline{toc}{#1}{%
+        \ifnum #2>\c at secnumdepth \else
+          \protect\numberline{\csname the#1\endcsname}%
+        \fi
+        #7}}%
+  \fi
+  \@xsect{#5}}
+\def\@ssect#1#2#3#4#5{%
+  \@tempskipa #3\relax
+  \ifdim \@tempskipa>\z@
+    \begingroup
+    \tagtool{para-flattened=true}
+      #4{%
+        \@hangfrom{\hskip #1\relax\@hyp at section@target at nnn{[section]}{}{#1}}%
+          \interlinepenalty \@M #5\@@par}%
+    \endgroup
+  \else
+    \def\@svsechd{#4{\hskip #1\relax\@hyp at section@target at nnn{[section]}{}{#3}\relax #5}}%
+  \fi
+  \@xsect{#3}}
+\def\@xsect#1{%
+  \@tempskipa #1\relax
+  \ifdim \@tempskipa>\z@
+    \par \nobreak
+    \vskip \@tempskipa
+    \tag_tool:n {restore-para}
+    \@afterheading
+  \else
+    \@nobreakfalse
+    \global\@noskipsectrue
+    \everypar{%
+      \if at noskipsec
+        \global\@noskipsecfalse
+       {\setbox\z@\lastbox}%
+        \clubpenalty\@M
+        \begingroup \@svsechd \endgroup
+        \unskip
+        \tag_tool:n {sec-split-para}
+        \@tempskipa #1\relax
+        \hskip -\@tempskipa
+      \else
+        \clubpenalty \@clubpenalty
+        \everypar{}%
+      \fi}%
+  \fi
+  \ignorespaces}
+
+\endinput
+%%
+%% End of file `latex-lab-testphase-sec-tagging.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-sec-tagging.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-toc-tagging.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-toc-tagging.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-toc-tagging.sty	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,565 @@
+%%
+%% This is file `latex-lab-testphase-toc-tagging.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% latex-lab-toc-tagging-functions.dtx  (with options: `header')
+%% latex-lab-toc-kernel-changes.dtx  (with options: `package')
+%% latex-lab-toc-tagging-functions.dtx  (with options: `package')
+%% latex-lab-toc-hyperref-changes.dtx  (with options: `package')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright 2021-2023 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: toc-tagging-functions.dtx (C) Copyright 2022-2023 LaTeX Project
+\ProvidesExplPackage {latex-lab-testphase-toc-tagging} {2023-02-10} {0.81}
+  { commands related to the tagging of toc-like lists}
+%% File: toc-kernel-functions.dtx (C) Copyright 2022-2023 LaTeX Project
+\RequirePackage{latex-lab-kernel-changes}
+\def\@contentsline at cfgpoint@before#1#2#3#4{}
+\def\@contentsline at cfgpoint@after#1#2#3#4{}
+\def\@contentsline at arg@one{}%level
+\def\@contentsline at arg@two{}%text
+\def\@contentsline at arg@three{}%page
+\def\@contentsline at arg@four{}%destination
+\def\contentsline#1#2#3#4%
+  {%
+    \def\@contentsline at arg@one{#1}%level
+    \def\@contentsline at arg@two{#2}%text
+    \def\@contentsline at arg@three{#3}%page
+    \def\@contentsline at arg@four{#4}%destination
+    \@contentsline at cfgpoint@before{#1}{#2}{#3}{#4}%
+    %\gdef\@contentsline at destination{#4}%
+    \csname l@#1\endcsname{#2}{#3}%
+    \@contentsline at cfgpoint@after{#1}{#2}{#3}{#4}%
+  }
+\NewHook{cmd/addcontentsline/before}
+\def\addcontentsline#1#2#3{% toc extension, type, tag
+    \def\addcontentsline at arg@one{#1}% name??
+    \def\addcontentsline at arg@two{#2}%
+    \def\addcontentsline at arg@three{#3}%
+    \UseHook{cmd/addcontentsline/before}%
+    \addtocontents{#1}{%
+      \protect\contentsline{#2}{#3}{\thepage}{\@currentHref}\protected at file@percent
+    }}
+\def\@starttoc at cfgpoint@before#1{}
+\def\@starttoc at cfgpoint@after#1{}
+\def\@starttoc#1{%
+  \begingroup
+    \makeatletter
+    \@starttoc at cfgpoint@before{#1}%
+    \@input{\jobname.#1}%
+    \@starttoc at cfgpoint@after{#1}
+    \if at filesw
+      \expandafter\newwrite\csname tf@#1\endcsname
+      \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax
+    \fi
+    \@nobreakfalse
+  \endgroup}
+\NewMirroredHookPair{contentsline/number/before}{contentsline/number/after}%
+\NewMirroredHookPair{contentsline/text/before}{contentsline/text/after}%
+\NewMirroredHookPair{contentsline/page/before}{contentsline/page/after}%
+\def\@dottedtocline at cfgpoint@leaders#1{#1}
+
+\def\@dottedtocline#1#2#3#4#5{%
+  \ifnum #1>\c at tocdepth \else
+    \vskip \z@ \@plus.2\p@
+    {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
+     \parindent #2\relax\@afterindenttrue
+     \interlinepenalty\@M
+     \leavevmode
+     \@tempdima #3\relax
+     \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
+     \UseHook{contentsline/text/before}%
+     \csname contentsline at text@#1 at format\endcsname{#4}%
+     \UseHook{contentsline/text/after}%
+     \nobreak
+     \@dottedtocline at cfgpoint@leaders{%
+       \leaders\hbox{$\m at th
+         \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
+          mu$}\hfill}%
+     \nobreak
+     \hb at xt@\@pnumwidth{\hfil\normalfont \normalcolor
+     \UseHook{contentsline/page/before}%
+     #5%
+     \UseHook{contentsline/page/after}%
+                        \kern-\p@\kern\p@}%
+     \par}%
+  \fi}
+\def\numberline#1{\hb at xt@\@tempdima{%
+  \UseHook{contentsline/number/before}%
+  #1\hfil
+  \UseHook{contentsline/number/after}%
+  }}
+\AddToHook{class/article/after}
+ {
+  \renewcommand*\l at part[2]{%
+  \ifnum \c at tocdepth >-2\relax
+    \addpenalty\@secpenalty
+    \addvspace{2.25em \@plus\p@}%
+    \setlength\@tempdima{3em}%
+    \begingroup
+      \parindent \z@ \rightskip \@pnumwidth
+      \parfillskip -\@pnumwidth
+      {\leavevmode
+       \large \bfseries
+       \UseHook{contentsline/text/before}%
+       \csname contentsline at text@-1 at format\endcsname{#1}%
+       \UseHook{contentsline/text/after}%
+       \hfil
+       \hb at xt@\@pnumwidth{\hss
+       \UseHook{contentsline/page/before}%
+       #2%
+       \UseHook{contentsline/page/after}%
+                          \kern-\p@\kern\p@}}\par
+       \nobreak
+    \endgroup
+  \fi}
+\renewcommand*\l at section[2]{%
+  \ifnum \c at tocdepth >\z@
+    \addpenalty\@secpenalty
+    \addvspace{1.0em \@plus\p@}%
+    \setlength\@tempdima{1.5em}%
+    \begingroup
+      \parindent \z@ \rightskip \@pnumwidth
+      \parfillskip -\@pnumwidth
+      \leavevmode \bfseries
+      \advance\leftskip\@tempdima
+      \hskip -\leftskip
+       \UseHook{contentsline/text/before}%
+       \csname contentsline at text@1 at format\endcsname{#1}%
+       \UseHook{contentsline/text/after}%
+       \nobreak\hfil
+      \nobreak\hb at xt@\@pnumwidth{\hss
+      \UseHook{contentsline/page/before}%
+       #2%
+      \UseHook{contentsline/page/after}%
+      \kern-\p@\kern\p@}\par
+    \endgroup
+  \fi}
+ }
+\AddToHook{class/report/after}
+ {
+    \renewcommand*\l at part[2]{%
+     \ifnum \c at tocdepth >-2\relax
+       \addpenalty{-\@highpenalty}%
+       \addvspace{2.25em \@plus\p@}%
+       \setlength\@tempdima{3em}%
+       \begingroup
+         \parindent \z@ \rightskip \@pnumwidth
+         \parfillskip -\@pnumwidth
+         {\leavevmode
+          \large \bfseries
+          \UseHook{contentsline/text/before}%
+          \csname contentsline at text@-1 at format\endcsname{#1}%
+          \UseHook{contentsline/text/after}%
+          \hfil
+          \hb at xt@\@pnumwidth{\hss
+          \UseHook{contentsline/page/before}%
+          #2%
+          \UseHook{contentsline/page/after}%
+                             \kern-\p@\kern\p@}}\par
+          \nobreak
+       \endgroup
+     \fi}
+   \renewcommand*\l at chapter[2]{%
+     \ifnum \c at tocdepth >\m at ne
+       \addpenalty{-\@highpenalty}%
+       \vskip 1.0em \@plus\p@
+       \setlength\@tempdima{1.5em}%
+       \begingroup
+         \parindent \z@ \rightskip \@pnumwidth
+         \parfillskip -\@pnumwidth
+         \leavevmode \bfseries
+         \advance\leftskip\@tempdima
+         \hskip -\leftskip
+         \UseHook{contentsline/text/before}%
+         \csname contentsline at text@0 at format\endcsname
+           {#1}%
+         \UseHook{contentsline/text/after}%
+          \nobreak\hfil
+         \nobreak\hb at xt@\@pnumwidth{\hss
+          \UseHook{contentsline/page/before}%
+          #2%
+          \UseHook{contentsline/page/after}%
+                                    \kern-\p@\kern\p@}\par
+         \penalty\@highpenalty
+       \endgroup
+     \fi}
+ }
+\AddToHook{class/book/after}
+ {
+    \renewcommand*\l at part[2]{%
+     \ifnum \c at tocdepth >-2\relax
+       \addpenalty{-\@highpenalty}%
+       \addvspace{2.25em \@plus\p@}%
+       \setlength\@tempdima{3em}%
+       \begingroup
+         \parindent \z@ \rightskip \@pnumwidth
+         \parfillskip -\@pnumwidth
+         {\leavevmode
+          \large \bfseries
+          \UseHook{contentsline/text/before}%
+          \csname contentsline at text@-1 at format\endcsname{#1}%
+          \UseHook{contentsline/text/after}%
+          \hfil
+          \hb at xt@\@pnumwidth{\hss
+          \UseHook{contentsline/page/before}%
+          #2%
+          \UseHook{contentsline/page/after}%
+                             \kern-\p@\kern\p@}}\par
+          \nobreak
+       \endgroup
+     \fi}
+   \renewcommand*\l at chapter[2]{%
+     \ifnum \c at tocdepth >\m at ne
+       \addpenalty{-\@highpenalty}%
+       \vskip 1.0em \@plus\p@
+       \setlength\@tempdima{1.5em}%
+       \begingroup
+         \parindent \z@ \rightskip \@pnumwidth
+         \parfillskip -\@pnumwidth
+         \leavevmode \bfseries
+         \advance\leftskip\@tempdima
+         \hskip -\leftskip
+         \UseHook{contentsline/text/before}%
+         \csname contentsline at text@0 at format\endcsname
+           {#1}%
+         \UseHook{contentsline/text/after}%
+          \nobreak\hfil
+         \nobreak\hb at xt@\@pnumwidth{\hss
+          \UseHook{contentsline/page/before}%
+          #2%
+          \UseHook{contentsline/page/after}%
+                                    \kern-\p@\kern\p@}\par
+         \penalty\@highpenalty
+       \endgroup
+     \fi}
+ }
+
+%% File: toc-tagging-functions.dtx (C) Copyright 2022-2023 LaTeX Project
+\tl_new:N \l__tag_toc_tmpa_tl
+\AddToHook{cmd/refstepcounter/after}
+ {
+   \tl_if_blank:VF \@currentHref
+    {
+      \prop_if_exist:NT \g__tag_struct_dest_num_prop
+        {
+         \prop_gput:Nxx \g__tag_struct_dest_num_prop {\@currentHref}{\tag_get:n{struct_num}}
+        }
+    }
+ }
+\AddToHook{cmd/H at refstepcounter/after}
+ {
+   \tl_if_blank:VF \@currentHref
+    {
+      \prop_if_exist:NT \g__tag_struct_dest_num_prop
+        {
+          \prop_gput:Nxx \g__tag_struct_dest_num_prop {\@currentHref}{\tag_get:n{struct_num}}
+        }
+    }
+ }
+\msg_new:nnn { tag } {struct-dest-unknown}
+ {
+   Destination~#1~has~no~related~structure.\\
+   /Ref~for~structure~#2~not~updated
+ }
+
+\cs_new_protected:Npn \g__tag_struct_ref_by_dest:
+  {
+    \prop_map_inline:Nn\g__tag_struct_ref_by_dest_prop
+      {
+        \prop_get:NnNTF \g__tag_struct_dest_num_prop {##2} \l__tag_tmpa_tl
+          {
+            \__tag_struct_gput_data_ref:ee
+              { ##1 }
+              { \tag_struct_object_ref:e{ \l__tag_tmpa_tl }}
+          }
+          {
+            \msg_warning:nnnn {tag}{struct-dest-unknown}{##2}{ ##1}
+          }
+      }
+  }
+\hook_gput_code:nnn {tagpdf/finish/before}{tagpdf/struct/Ref}{\g__tag_struct_ref_by_dest:}
+\int_new:N \g__tag_toc_level_int
+\seq_new:N \g__tag_toc_stack_seq
+
+\cs_new_protected:Npn \__tag_toc_starttoc_init:n #1
+ {
+    \bool_set_false:N \l__tag_para_bool
+    \seq_gclear:N \g__tag_toc_stack_seq
+    \int_gset:Nn  \g__tag_toc_level_int {-100}
+    \tag_struct_begin:n{tag=TOC,title=#1}
+ }
+\cs_set_protected:Npn\@starttoc at cfgpoint@before#1
+  {
+    \__tag_toc_starttoc_init:n{#1}
+  }
+\cs_new_protected:Npn \__tag_toc_starttoc_finalize:
+ {
+    \int_step_inline:nn
+      {\seq_count:N \g__tag_toc_stack_seq }
+      {\tag_struct_end:}
+    \tag_struct_end:
+    \seq_gclear:N \g__tag_toc_stack_seq
+ }
+\cs_set_protected:Npn\@starttoc at cfgpoint@after#1
+  {
+    \__tag_toc_starttoc_finalize:
+  }
+
+\cs_new_protected:Npn \__tag_toc_end:n #1
+ {
+   \seq_get:NNT\g__tag_toc_stack_seq \l__tag_toc_tmpa_tl
+     {
+       \bool_lazy_and:nnT
+         {
+           \str_if_eq_p:ee{\tl_head:N\l__tag_toc_tmpa_tl}{TOC}
+         }
+         {
+           \int_compare_p:nNn {#1}<{\tl_tail:N \l__tag_toc_tmpa_tl}
+         }
+         {
+           \seq_gpop:NN\g__tag_toc_stack_seq \l__tag_toc_tmpa_tl
+           \tag_struct_end:
+           \__tag_toc_end:n{#1}
+         }
+     }
+ }
+\cs_generate_variant:Nn \__tag_toc_end:n {e}
+\cs_new_protected:Npn \__tag_toc_contentsline_begin:nnn #1 #2 #3 %#1 level, #2 content, #3 destination
+  {
+   \tag_if_active:T
+     {
+       \ExpandArgs{c}\providecommand { toclevel@#1 }{ 1 } %  just in case ...
+       \int_compare:nNnF { \use:c{toclevel@#1} } > {\use:c{c at tocdepth}}
+        {
+          \bool_lazy_and:nnT
+            { \int_compare_p:nNn { \g__tag_toc_level_int } > {-100} }
+            { \int_compare_p:nNn { \use:c{toclevel@#1} }   > { \g__tag_toc_level_int } }
+            {
+              \seq_gpush:Nx \g__tag_toc_stack_seq {{TOC}\use:c{toclevel@#1}}
+              \tag_struct_begin:n{tag=TOC}
+            }
+          \int_compare:nNnT
+            { \use:c{toclevel@#1} } < { \g__tag_toc_level_int }
+            {
+              \__tag_toc_end:e { \use:c{toclevel@#1} }
+            }
+          \int_gset:Nn \g__tag_toc_level_int { \use:c{toclevel@#1} }
+          \group_begin:
+           \text_declare_expand_equivalent:Nn \numberline \use_none:n
+           \exp_args:Nx \tag_struct_begin:n{tag=TOCI,title={\text_purify:n {#2}}}
+           \prop_gput:Nxx \g__tag_struct_ref_by_dest_prop
+             { \tag_get:n {struct_num} }{#3}
+           \seq_gpush:Nx \g__tag_toc_stack_seq {{TOCI}\use:c{toclevel@#1}}
+          \group_end:
+       }
+    }
+  }
+\cs_set_protected:Npn\@contentsline at cfgpoint@before#1#2#3#4
+  {
+    \__tag_toc_contentsline_begin:nnn {#1}{#2}{#4}
+  }
+\msg_new:nnn {tag}{toc-no-TOCI}{Missing~TOCI~structure~on~toc~stack}
+
+\cs_new_protected:Npn \__tag_toc_contentsline_end:n #1 %#1 level name
+  {
+    \int_compare:nNnF { \use:c{toclevel@#1} } > {\use:c{c at tocdepth}}
+      {
+        \seq_gpop:NNT \g__tag_toc_stack_seq\l__tag_tmpa_tl
+          {
+            \str_if_eq:eeTF{\tl_head:N\l__tag_tmpa_tl}{TOCI}
+             {
+               \tag_struct_end:
+             }
+             {
+               \msg_warning:nn{tag}{toc-no-TOCI}
+             }
+          }
+      }
+  }
+\cs_set_protected:Npn \@contentsline at cfgpoint@after #1#2#3#4
+ {
+   \__tag_toc_contentsline_end:n {#1}
+ }
+\AddToHook{contentsline/text/before}[tagpdf]{%
+  \tag_struct_begin:n{tag=Reference}%
+  \tag_mc_begin:n{tag=Reference}}
+\AddToHook{contentsline/text/after}[tagpdf]{%
+  \tag_mc_end:}
+\AddToHook{contentsline/page/before}[tagpdf]{%
+  \tag_mc_begin:n{tag=Reference}}
+\AddToHook{contentsline/page/after}[tagpdf]{%
+  \tag_mc_end:
+  \tag_struct_end:} %Reference
+\AddToHook{contentsline/number/before}[tagpdf]{%
+  \tag_mc_end:
+  \tag_struct_begin:n{tag=Lbl}%
+  \tag_mc_begin:n{tag=Lbl}}
+\AddToHook{contentsline/number/after}[tagpdf]{%
+  \tag_mc_end:
+  \tag_struct_end:
+  \tag_mc_begin:n{tag=Reference}}
+\def\@dottedtocline at cfgpoint@leaders#1{%
+ \tag_mc_begin:n{artifact}\nobreak#1\nobreak\tag_mc_end:}
+
+%% File: toc-hyperref-changes.dtx (C) Copyright 2022-2023 LaTeX Project
+\def\hyper at nopatch@toc{}
+\AddToHook{package/hyperref/after}
+ {
+   \@ifpackagelater{hyperref}{2023-02-07}{}
+   {\PackageWarning{latex-lab-testphase-toc-tagging}{hyperref too old}{}}
+ }
+\ExplSyntaxOn
+\AddToHook{package/hyperref/after}
+ {
+   \AddToHook{contentsline/text/before}[hyp]
+     {
+       \tl_if_blank:VF \@contentsline at arg@two%text
+        {
+          \tl_if_blank:VF\@contentsline at arg@four%destination
+            {
+              \int_case:nnF {\Hy at linktoc}
+                {
+                  {0}{} %none
+                  {1}{\hyper at linkstart{link}{\@contentsline at arg@four}} %section
+                  {2}{} %page
+                }
+                {\hyper at linkstart{link}{\@contentsline at arg@four}} %all
+            }
+          }
+      }
+    \AddToHook{contentsline/text/after}[hyp]
+      {
+        \tl_if_blank:VF \@contentsline at arg@two
+         {
+           \tl_if_blank:VF\@contentsline at arg@four
+             {
+               \int_case:nnF {\Hy at linktoc}
+                 {
+                   {0}{} %none
+                   {1}{\hyper at linkend} %section
+                   {2}{} %page
+                 }
+                 {\hyper at linkend} %all
+             } % none
+           }
+       }
+
+    \AddToHook{contentsline/page/before}[hyp]
+      {
+        \tl_if_blank:VF \@contentsline at arg@three
+         {
+           \tl_if_blank:VF\@contentsline at arg@two
+             {
+               \int_case:nnF {\Hy at linktoc}
+                 {
+                   {0}{} %none
+                   {1}{} %section
+                   {2}{\hyper at linkstart{link}{\@contentsline at arg@four}} %page
+                 }
+                 {\hyper at linkstart{link}{\@contentsline at arg@four}} %all
+             } % none
+           }
+       }
+    \AddToHook{contentsline/page/after}[hyp]
+      {
+        \tl_if_blank:VF \@contentsline at arg@three
+         {
+           \tl_if_blank:VF\@contentsline at arg@four
+             {
+               \int_case:nnF {\Hy at linktoc}
+                 {
+                   {0}{} %none
+                   {1}{} %section
+                   {2}{\hyper at linkend} %page
+                 }
+                 {\hyper at linkend} %all
+             } % none
+           }
+       }
+    \AddToHook{cmd/addcontentsline/before}[hyp]
+     {%
+       \ExpandArgs{ooo}
+       \Hy at addcontentsline@addbookmark
+         {\addcontentsline at arg@one}
+         {\addcontentsline at arg@two}
+         {\addcontentsline at arg@three}%
+     }
+   }
+\ExplSyntaxOff
+\newcommand\Hy at addcontentsline@addbookmark[3]%#1 toc type, #2 level, #3 content
+  {%
+   \ifx\@currentHref\@empty
+    \Hy at Warning{%
+      No destination for bookmark of \string\addcontentsline,%
+      \MessageBreak destination is added%
+     }%
+    \phantomsection
+  \fi
+  \begingroup
+    \expandafter\ifx\csname toclevel@#2\endcsname\relax
+      \begingroup
+        \def\Hy at tempa{#1}%
+        \ifx\Hy at tempa\Hy at bookmarkstype
+          \Hy at WarningNoLine{%
+            bookmark level for unknown #2 defaults to 0%
+          }%
+        \else
+          \Hy at Info{bookmark level for unknown #2 defaults to 0}%
+        \fi
+      \endgroup
+      \expandafter\gdef\csname toclevel@#2\endcsname{0}%
+    \fi
+    \edef\Hy at toclevel{\csname toclevel@#2\endcsname}%
+    \Hy at writebookmark{\csname the#2\endcsname}%
+      {#3}%
+      {\@currentHref}%
+      {\Hy at toclevel}%
+      {#1}%
+    \ifHy at verbose
+      \begingroup
+        \def\Hy at tempa{#3}%
+        \@onelevel at sanitize\Hy at tempa
+        \let\temp at online\on at line
+        \let\on at line\@empty
+        \Hy at Info{%
+          bookmark\temp at online:\MessageBreak
+          thecounter {\csname the#2\endcsname}\MessageBreak
+          text {\Hy at tempa}\MessageBreak
+          reference {\@currentHref}\MessageBreak
+          toclevel {\Hy at toclevel}\MessageBreak
+          type {#1}%
+        }%
+      \endgroup
+    \fi
+   \endgroup
+  }
+\endinput
+%%
+%% End of file `latex-lab-testphase-toc-tagging.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-toc-tagging.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/math-latex-lab-testphase.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/latex-lab/math-latex-lab-testphase.ltx	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex-dev/latex-lab/math-latex-lab-testphase.ltx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,42 @@
+%%
+%% This is file `math-latex-lab-testphase.ltx',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% latex-lab-testphase.dtx  (with options: `math-lab')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright 2021-2023 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
+
+\ProvidesFile{math-latex-lab-testphase.ltx}
+        [2023-01-07 v0.8 code related to the math tagging]
+\RequirePackage{latex-lab-testphase-math}
+\endinput
+%%
+%% End of file `math-latex-lab-testphase.ltx'.


Property changes on: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/math-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-dev/latex-lab/new-or-1-latex-lab-testphase.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/latex-lab/new-or-1-latex-lab-testphase.ltx	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex-dev/latex-lab/new-or-1-latex-lab-testphase.ltx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,42 @@
+%%
+%% This is file `new-or-1-latex-lab-testphase.ltx',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% latex-lab-testphase.dtx  (with options: `new-or-1')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright 2021-2023 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
+
+\ProvidesFile{new-or-1-latex-lab-testphase.ltx}
+              [2022-11-04 v0.1a  latex-lab wrapper new-or-1]
+\RequirePackage{latex-lab-testphase-new-or-1}
+\endinput
+%%
+%% End of file `new-or-1-latex-lab-testphase.ltx'.


Property changes on: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/new-or-1-latex-lab-testphase.ltx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/new-or-latex-lab-testphase.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/latex-lab/new-or-latex-lab-testphase.ltx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/latex-lab/new-or-latex-lab-testphase.ltx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright 2021,2022 LaTeX Project
+%% Copyright 2021-2023 LaTeX Project
 %% 
 %% This file was generated from file(s) of the  `LaTeX-lab Bundle'.
 %% ------------------------------------------------------------------------------------
@@ -34,11 +34,10 @@
 %% 
 %% File: latex-lab-testphase.dtx
 
-\IfFileExists{latex-lab-testphase-new-or.sty}
- {
-   \RequirePackage{latex-lab-testphase-new-or}
- }
- {}
+\ProvidesFile{new-or-latex-lab-testphase.ltx}
+              [2022-11-04 v0.1a  latex-lab wrapper new-or]
+\RequirePackage{latex-lab-testphase-new-or-1}
+\RequirePackage{latex-lab-testphase-new-or-2}
 \endinput
 %%
 %% End of file `new-or-latex-lab-testphase.ltx'.

Modified: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/phase-I-latex-lab-testphase.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/latex-lab/phase-I-latex-lab-testphase.ltx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/latex-lab/phase-I-latex-lab-testphase.ltx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright 2021,2022 LaTeX Project
+%% Copyright 2021-2023 LaTeX Project
 %% 
 %% This file was generated from file(s) of the  `LaTeX-lab Bundle'.
 %% ------------------------------------------------------------------------------------
@@ -34,11 +34,13 @@
 %% 
 %% File: latex-lab-testphase.dtx
 
+\ProvidesFile{phase-I-latex-lab-testphase.ltx}
+              [2023-02-04 v0.1b  latex-lab wrapper phase-I]
+\RequirePackage{latex-lab-testphase-new-or-1}
 \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
 %%

Modified: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/phase-II-latex-lab-testphase.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/latex-lab/phase-II-latex-lab-testphase.ltx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/latex-lab/phase-II-latex-lab-testphase.ltx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright 2021,2022 LaTeX Project
+%% Copyright 2021-2023 LaTeX Project
 %% 
 %% This file was generated from file(s) of the  `LaTeX-lab Bundle'.
 %% ------------------------------------------------------------------------------------
@@ -34,16 +34,15 @@
 %% 
 %% File: latex-lab-testphase.dtx
 
-\IfFileExists{latex-lab-testphase-new-or.sty}
- {
-   \RequirePackage{latex-lab-testphase-new-or}
- }
- {}
+\ProvidesFile{phase-II-latex-lab-testphase.ltx}
+              [2022-11-04 v0.1a  latex-lab wrapper phase-II]
+\RequirePackage{latex-lab-testphase-new-or-1}
+\RequirePackage{latex-lab-testphase-new-or-2}
 \RequirePackage{tagpdf}
 \AddToDocumentProperties [document]{testphase/tagpdf}{loaded}
 \tagpdfsetup{activate,paratagging,interwordspace}
+\AddToDocumentProperties [document]{tagging/para}{active}
 \AddToDocumentProperties [document]{tagging}{active}
-\AddToDocumentProperties [document]{tagging/para}{active}
 \AddToDocumentProperties [document]{tagging/interwordspace}{active}
 \endinput
 %%

Added: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/phase-III-latex-lab-testphase.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/latex-lab/phase-III-latex-lab-testphase.ltx	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex-dev/latex-lab/phase-III-latex-lab-testphase.ltx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,45 @@
+%%
+%% This is file `phase-III-latex-lab-testphase.ltx',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% latex-lab-testphase.dtx  (with options: `phase-III')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright 2021-2023 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
+
+\ProvidesFile{phase-III-latex-lab-testphase.ltx}
+              [2023-03-06 v0.1a  latex-lab wrapper phase-III]
+\input{phase-II-latex-lab-testphase.ltx}
+\RequirePackage{latex-lab-testphase-block-tagging}
+\RequirePackage{latex-lab-testphase-sec-tagging}
+\RequirePackage{latex-lab-testphase-toc-tagging}
+\endinput
+%%
+%% End of file `phase-III-latex-lab-testphase.ltx'.


Property changes on: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/phase-III-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-dev/latex-lab/sec-tagging-latex-lab-testphase.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/latex-lab/sec-tagging-latex-lab-testphase.ltx	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex-dev/latex-lab/sec-tagging-latex-lab-testphase.ltx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,42 @@
+%%
+%% This is file `sec-tagging-latex-lab-testphase.ltx',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% latex-lab-sec-tagging.dtx  (with options: `latex-lab')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright 2021-2023 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: sec-tagging.dtx (C) Copyright 2022-2023 LaTeX Project
+
+\ProvidesFile{sec-tagging-latex-lab-testphase.ltx}
+        [2023-02-12 v0.81 code related to the tagging of sectioning commands]
+\RequirePackage{latex-lab-testphase-sec-tagging}
+\endinput
+%%
+%% End of file `sec-tagging-latex-lab-testphase.ltx'.


Property changes on: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/sec-tagging-latex-lab-testphase.ltx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/tagpdf-latex-lab-testphase.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/latex-lab/tagpdf-latex-lab-testphase.ltx	2023-03-09 21:05:33 UTC (rev 66490)
+++ trunk/Master/texmf-dist/tex/latex-dev/latex-lab/tagpdf-latex-lab-testphase.ltx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright 2021,2022 LaTeX Project
+%% Copyright 2021-2023 LaTeX Project
 %% 
 %% This file was generated from file(s) of the  `LaTeX-lab Bundle'.
 %% ------------------------------------------------------------------------------------
@@ -34,16 +34,15 @@
 %% 
 %% File: latex-lab-testphase.dtx
 
-\IfFileExists{latex-lab-testphase-new-or.sty}
- {
-   \RequirePackage{latex-lab-testphase-new-or}
- }
- {}
+\ProvidesFile{tagpdf-latex-lab-testphase.ltx}
+              [2022-11-04 v0.1a  latex-lab wrapper tagpdf (deprecated)]
+\RequirePackage{latex-lab-testphase-new-or-1}
+\RequirePackage{latex-lab-testphase-new-or-2}
 \RequirePackage{tagpdf}
 \AddToDocumentProperties [document]{testphase/tagpdf}{loaded}
 \tagpdfsetup{activate,paratagging,interwordspace}
+\AddToDocumentProperties [document]{tagging/para}{active}
 \AddToDocumentProperties [document]{tagging}{active}
-\AddToDocumentProperties [document]{tagging/para}{active}
 \AddToDocumentProperties [document]{tagging/interwordspace}{active}
 \endinput
 %%

Added: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/toc-tagging-latex-lab-testphase.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/latex-lab/toc-tagging-latex-lab-testphase.ltx	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex-dev/latex-lab/toc-tagging-latex-lab-testphase.ltx	2023-03-09 21:08:53 UTC (rev 66491)
@@ -0,0 +1,44 @@
+%%
+%% This is file `toc-tagging-latex-lab-testphase.ltx',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% latex-lab-toc-kernel-changes.dtx  (with options: `latex-lab')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright 2021-2023 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: toc-kernel-functions.dtx (C) Copyright 2022-2023 LaTeX Project
+
+\ProvidesFile{toc-tagging-latex-lab-testphase.ltx}
+        [2022-10-26 v0.8 code related to the tagging of toc and similar lists]
+
+\RequirePackage{latex-lab-testphase-toc-tagging}
+
+\endinput
+%%
+%% End of file `toc-tagging-latex-lab-testphase.ltx'.


Property changes on: trunk/Master/texmf-dist/tex/latex-dev/latex-lab/toc-tagging-latex-lab-testphase.ltx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property


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