texlive[61598] Master/texmf-dist: latex-dev (13jan22)

commits+karl at tug.org commits+karl at tug.org
Thu Jan 13 22:03:33 CET 2022


Revision: 61598
          http://tug.org/svn/texlive?view=revision&revision=61598
Author:   karl
Date:     2022-01-13 22:03:32 +0100 (Thu, 13 Jan 2022)
Log Message:
-----------
latex-dev (13jan22)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/README.md
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/amsbsy.pdf
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/amscd.pdf
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/amsgen.pdf
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/amsldoc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/amsldoc.tex
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/amsmath.pdf
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/amsopn.pdf
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/amstext.pdf
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/amsxtra.pdf
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/changes.txt
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/subeqn.pdf
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/technote.pdf
    trunk/Master/texmf-dist/doc/latex-dev/amsmath/testmath.pdf
    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.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/ltcmdhooks-doc.tex
    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/ltfilehook-doc.tex
    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/lthooks-doc.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltluatex.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/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/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/ltpara-code.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltpara-doc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltpara-doc.tex
    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/ltshipout-doc.tex
    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/manifest.txt
    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.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/usrguide.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/usrguide3.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/usrguide3.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/graphics/README.md
    trunk/Master/texmf-dist/doc/latex-dev/graphics/changes.txt
    trunk/Master/texmf-dist/doc/latex-dev/graphics/color.pdf
    trunk/Master/texmf-dist/doc/latex-dev/graphics/drivers.pdf
    trunk/Master/texmf-dist/doc/latex-dev/graphics/epsfig.pdf
    trunk/Master/texmf-dist/doc/latex-dev/graphics/graphics.pdf
    trunk/Master/texmf-dist/doc/latex-dev/graphics/graphicx.pdf
    trunk/Master/texmf-dist/doc/latex-dev/graphics/grfguide.pdf
    trunk/Master/texmf-dist/doc/latex-dev/graphics/grfguide.tex
    trunk/Master/texmf-dist/doc/latex-dev/graphics/keyval.pdf
    trunk/Master/texmf-dist/doc/latex-dev/graphics/lscape.pdf
    trunk/Master/texmf-dist/doc/latex-dev/graphics/rotating.pdf
    trunk/Master/texmf-dist/doc/latex-dev/graphics/rotex.pdf
    trunk/Master/texmf-dist/doc/latex-dev/graphics/trig.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/README.md
    trunk/Master/texmf-dist/doc/latex-dev/tools/afterpage.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/array.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/bm.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/calc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/changes.txt
    trunk/Master/texmf-dist/doc/latex-dev/tools/dcolumn.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/delarray.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/enumerate.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/fileerr.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/fontsmpl.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/ftnright.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/hhline.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/indentfirst.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/layout.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/longtable.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/multicol.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/rawfonts.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/shellesc.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/showkeys.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/somedefs.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/tabularx.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/theorem.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/tools-overview.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/tools-overview.tex
    trunk/Master/texmf-dist/doc/latex-dev/tools/trace.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/varioref.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/verbatim.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/xr.pdf
    trunk/Master/texmf-dist/doc/latex-dev/tools/xspace.pdf
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amsbsy.dtx
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amsbsy.ins
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amscd.dtx
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amscd.ins
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amsgen.dtx
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amsgen.ins
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amsmath.dtx
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amsmath.ins
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amsopn.dtx
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amsopn.ins
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amstext.dtx
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amstext.ins
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amsxtra.dtx
    trunk/Master/texmf-dist/source/latex-dev/amsmath/amsxtra.ins
    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/doc.dtx
    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/ltcmdhooks.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/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/graphics/color.dtx
    trunk/Master/texmf-dist/source/latex-dev/graphics/drivers.dtx
    trunk/Master/texmf-dist/source/latex-dev/graphics/epsfig.dtx
    trunk/Master/texmf-dist/source/latex-dev/graphics/graphics.dtx
    trunk/Master/texmf-dist/source/latex-dev/graphics/graphics.ins
    trunk/Master/texmf-dist/source/latex-dev/graphics/graphicx.dtx
    trunk/Master/texmf-dist/source/latex-dev/graphics/keyval.dtx
    trunk/Master/texmf-dist/source/latex-dev/graphics/lscape.dtx
    trunk/Master/texmf-dist/source/latex-dev/graphics/rotating.dtx
    trunk/Master/texmf-dist/source/latex-dev/graphics/trig.dtx
    trunk/Master/texmf-dist/source/latex-dev/tools/afterpage.dtx
    trunk/Master/texmf-dist/source/latex-dev/tools/afterpage.ins
    trunk/Master/texmf-dist/source/latex-dev/tools/array.dtx
    trunk/Master/texmf-dist/source/latex-dev/tools/bm.dtx
    trunk/Master/texmf-dist/source/latex-dev/tools/bm.ins
    trunk/Master/texmf-dist/source/latex-dev/tools/calc.dtx
    trunk/Master/texmf-dist/source/latex-dev/tools/dcolumn.dtx
    trunk/Master/texmf-dist/source/latex-dev/tools/delarray.dtx
    trunk/Master/texmf-dist/source/latex-dev/tools/enumerate.dtx
    trunk/Master/texmf-dist/source/latex-dev/tools/fileerr.dtx
    trunk/Master/texmf-dist/source/latex-dev/tools/fontsmpl.dtx
    trunk/Master/texmf-dist/source/latex-dev/tools/ftnright.dtx
    trunk/Master/texmf-dist/source/latex-dev/tools/hhline.dtx
    trunk/Master/texmf-dist/source/latex-dev/tools/indentfirst.dtx
    trunk/Master/texmf-dist/source/latex-dev/tools/layout.dtx
    trunk/Master/texmf-dist/source/latex-dev/tools/longtable.dtx
    trunk/Master/texmf-dist/source/latex-dev/tools/longtable.ins
    trunk/Master/texmf-dist/source/latex-dev/tools/multicol.dtx
    trunk/Master/texmf-dist/source/latex-dev/tools/multicol.ins
    trunk/Master/texmf-dist/source/latex-dev/tools/rawfonts.dtx
    trunk/Master/texmf-dist/source/latex-dev/tools/shellesc.dtx
    trunk/Master/texmf-dist/source/latex-dev/tools/showkeys.dtx
    trunk/Master/texmf-dist/source/latex-dev/tools/somedefs.dtx
    trunk/Master/texmf-dist/source/latex-dev/tools/tabularx.dtx
    trunk/Master/texmf-dist/source/latex-dev/tools/tabularx.ins
    trunk/Master/texmf-dist/source/latex-dev/tools/theorem.dtx
    trunk/Master/texmf-dist/source/latex-dev/tools/tools.ins
    trunk/Master/texmf-dist/source/latex-dev/tools/trace.dtx
    trunk/Master/texmf-dist/source/latex-dev/tools/varioref.dtx
    trunk/Master/texmf-dist/source/latex-dev/tools/varioref.ins
    trunk/Master/texmf-dist/source/latex-dev/tools/verbatim.dtx
    trunk/Master/texmf-dist/source/latex-dev/tools/xr.dtx
    trunk/Master/texmf-dist/source/latex-dev/tools/xspace.dtx
    trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsbsy.sty
    trunk/Master/texmf-dist/tex/latex-dev/amsmath/amscd.sty
    trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsgen.sty
    trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsmath.sty
    trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsopn.sty
    trunk/Master/texmf-dist/tex/latex-dev/amsmath/amstext.sty
    trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsxtra.sty
    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/ltxcheck.tex
    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/source2edoc.cls
    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/graphics/color.sty
    trunk/Master/texmf-dist/tex/latex-dev/graphics/dvipdf.def
    trunk/Master/texmf-dist/tex/latex-dev/graphics/dvipsnam.def
    trunk/Master/texmf-dist/tex/latex-dev/graphics/dvipsone.def
    trunk/Master/texmf-dist/tex/latex-dev/graphics/dviwin.def
    trunk/Master/texmf-dist/tex/latex-dev/graphics/emtex.def
    trunk/Master/texmf-dist/tex/latex-dev/graphics/epsfig.sty
    trunk/Master/texmf-dist/tex/latex-dev/graphics/graphics.sty
    trunk/Master/texmf-dist/tex/latex-dev/graphics/graphicx.sty
    trunk/Master/texmf-dist/tex/latex-dev/graphics/keyval.sty
    trunk/Master/texmf-dist/tex/latex-dev/graphics/lscape.sty
    trunk/Master/texmf-dist/tex/latex-dev/graphics/pctex32.def
    trunk/Master/texmf-dist/tex/latex-dev/graphics/pctexhp.def
    trunk/Master/texmf-dist/tex/latex-dev/graphics/pctexps.def
    trunk/Master/texmf-dist/tex/latex-dev/graphics/pctexwin.def
    trunk/Master/texmf-dist/tex/latex-dev/graphics/rotating.sty
    trunk/Master/texmf-dist/tex/latex-dev/graphics/tcidvi.def
    trunk/Master/texmf-dist/tex/latex-dev/graphics/trig.sty
    trunk/Master/texmf-dist/tex/latex-dev/graphics/truetex.def
    trunk/Master/texmf-dist/tex/latex-dev/tools/.tex
    trunk/Master/texmf-dist/tex/latex-dev/tools/afterpage.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/array.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/bm.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/calc.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/dcolumn.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/delarray.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/e.tex
    trunk/Master/texmf-dist/tex/latex-dev/tools/enumerate.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/fontsmpl.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/fontsmpl.tex
    trunk/Master/texmf-dist/tex/latex-dev/tools/ftnright.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/h.tex
    trunk/Master/texmf-dist/tex/latex-dev/tools/hhline.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/indentfirst.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/layout.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/longtable.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/multicol.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/q.tex
    trunk/Master/texmf-dist/tex/latex-dev/tools/r.tex
    trunk/Master/texmf-dist/tex/latex-dev/tools/rawfonts.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/s.tex
    trunk/Master/texmf-dist/tex/latex-dev/tools/shellesc.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/showkeys.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/somedefs.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/tabularx.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/thb.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/thc.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/thcb.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/theorem.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/thm.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/thmb.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/thp.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/trace.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/varioref.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/verbatim.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/verbtest.tex
    trunk/Master/texmf-dist/tex/latex-dev/tools/x.tex
    trunk/Master/texmf-dist/tex/latex-dev/tools/xr.sty
    trunk/Master/texmf-dist/tex/latex-dev/tools/xspace.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex-dev/base/doc-code.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/doc-code.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews35.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/ltnews35.tex
    trunk/Master/texmf-dist/doc/latex-dev/graphics/mathcolor.pdf
    trunk/Master/texmf-dist/source/latex-dev/base/ltkeys.dtx
    trunk/Master/texmf-dist/source/latex-dev/base/ltmeta.dtx
    trunk/Master/texmf-dist/source/latex-dev/graphics/mathcolor.dtx
    trunk/Master/texmf-dist/tex/latex-dev/base/doc-2016-02-15.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/doc-2021-06-01.sty
    trunk/Master/texmf-dist/tex/latex-dev/base/ltxdoc.cfg
    trunk/Master/texmf-dist/tex/latex-dev/graphics/mathcolor.ltx
    trunk/Master/texmf-dist/tex/latex-dev/tools/multicol-2019-10-01.sty

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex-dev/base/latexchanges.pdf
    trunk/Master/texmf-dist/doc/latex-dev/base/latexchanges.tex
    trunk/Master/texmf-dist/doc/latex-dev/base/tex2.txt
    trunk/Master/texmf-dist/doc/latex-dev/base/texpert.txt
    trunk/Master/texmf-dist/tex/latex-dev/base/doc-v3beta.sty

Modified: trunk/Master/texmf-dist/doc/latex-dev/amsmath/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/amsmath/README.md	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/amsmath/README.md	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,7 +1,7 @@
 The amsmath bundle for LaTeX
 ============================
 
-Release 2022-06-01 pre-release 0
+Release 2022-06-01 pre-release 1
 
 Overview
 --------
@@ -77,5 +77,5 @@
 -----
 
 <p>Copyright (C) 2001-2004, 2007, 2008, 2010, 2011, 2013 American Mathematical Society. <br />
-<p>Copyright (C) 2016-2021 The LaTeX Project and American Mathematical Society. <br />
+<p>Copyright (C) 2016-2022 The LaTeX Project and American Mathematical Society. <br />
 

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

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

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

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

Modified: trunk/Master/texmf-dist/doc/latex-dev/amsmath/amsldoc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/amsmath/amsldoc.tex	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/amsmath/amsldoc.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 %
 % Copyright (C) 1995, 2000, 2013 American Mathematical Society.
-% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+% Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
 %
 % This work may be distributed and/or modified under the
 % conditions of the LaTeX Project Public License, either version 1.3c

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

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

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

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

Modified: trunk/Master/texmf-dist/doc/latex-dev/amsmath/changes.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/amsmath/changes.txt	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/amsmath/changes.txt	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,3 +1,7 @@
+2021-11-18  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* All *.dtx: Replaced \StopEventually by \MaybeStop
+
 ================================================================================
 All changes above are only part of the development branch for the next release.
 ================================================================================

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

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

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

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/README.md	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/README.md	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,7 +1,7 @@
 The LaTeX kernel
 ================
 
-Release 2022-06-01 pre-release 0
+Release 2022-06-01 pre-release 1
 
 Overview
 --------
@@ -10,10 +10,15 @@
 a minimal LaTeX system also needs the files contained in the
 
 - LaTeX team documentation (`doc`)
+- L3 programming layer (`l3kernel`)
+- L3 backend interfaces (`l3backend`)
+- L3 unicode support (`unicode-data`)
+
 - Packages which must be available (`required`). These are
   - Essential tools (`tools`)
   - Core graphics and color support (`graphics`)
   - Key mathematics support (`amsmath`)
+  - First aid for external packages (`firstaid`)
 
 This file contains a small set of pointers to other more complete
 documentation on installing and using a LaTeX system.
@@ -36,10 +41,6 @@
    with one line of information about the contents
 - `legal.txt` and `lppl.txt` (LaTeX Project Public License) describe the
    LaTeX copyright, warranty and copying restrictions.
-- `texpert.txt` contains information about the system that may still be
-   useful for TeX experts
-- `tex2.txt` contains important information for users of extremely
-   old versions of TeX (pre 1990)
 - `bugs.txt` describes how to submit a bug report for LaTeX
 
 Other documentation files include files with names of the form:

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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/cfgguide.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/changes.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/changes.txt	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/changes.txt	2022-01-13 21:03:32 UTC (rev 61598)
@@ -5,12 +5,143 @@
 completeness or accuracy and it contains some references to files that
 are not part of the distribution.
 ================================================================================
+2021-12-30 Ulrike Fischer <Ulrike.Fischer at latex-project.org>
 
+	* ltmeta.dtx:
+	Adapted bundle name to new name `LaTeX-lab'
+
+2022-01-06  Joseph Wright  <Joseph.Wright-project.org>
+
+	* ltexpl.dtx (section{Document-level command names for expl3 functions}):
+	Adjust document-level names for \exp_args:Nc and the like
+
+2021-12-31 Phelype Oleinik  <phelype.oleinik at latex-project.org>
+
+	* ltcmd.dtx (subsubsection{Showing the definition of a command}):
+	Make \ShowCommand stop for interaction with ltcmd (gh/739)
+
+2021-12-28  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* ltexpl.dtx (section{Document-level command names for expl3 functions}):
+	Added document-level names for \exp_args:Nc and the like
+	for use with \NewDocumentCommand, etc. (gh/735)
+
+2021-12-27  Marcel Krüger  <Marcel.Krueger at latex-project.org>
+
+	* ltluatex.dtx:
+	Added \newluacmd and \newprotectedluacmd for easy allocation of Lua command ids.
+
+2021-12-13  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* ltmeta.dtx:
+	First version of this module added implementing an interface to
+	\DocumentMetadata. At the moment the actual code is outside the
+	format and only loaded if the command is called.
+
+2021-12-13  David Carlisle  <David.Carlisle at latex-project.org>
+
+	* utf8ienc.dtx:  Use hex 80 not A0 to test for single byte UTF-8 github/730
+
+2021-12-12  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* ltoutenc.dtx (subsection{Definitions for the TU encoding}):
+	\DeclareUnicodeAccent now makes the encoding argument implicit
+	as it is already done for other Unicode encoding commands.
+	Also added \DeclareUnicodeCommand and \DeclareUnicodeSymbol (gh/253).
+
+2021-12-12  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* doc.dtx (subsection[Dealing with the change history]):
+	Implement option recordchangedates to show dates  in the change log
+	if that option is used (gh/531).
+
+2021-12-11  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* ltdirchk.dtx (section{Initialization}):
+	Add comment lines into latex.ltx to indicate temp definitions that
+	are later overwritten (gh/725).
+
+2021-12-10  David Carlisle  <David.Carlisle at latex-project.org>
+
+	* utf8ienc.dtx: Add inputenc UTF-8 support for for Digraphs U_01C4-U+01CC
+
+2021-12-09  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* proc.dtx (subsection{The page style}):
+	Support twoside by providing an appropriate footer line (gh/704).
+
+2021-12-08  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* lttextcomp.dtx (section{Sub-encodings}):
+	Describe correctly (I hope) how sub-encodings work for TS1.
+
+2021-11-30  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* ltexpl.dtx:
+	Added \fpeval, \inteval, \dimeval, and \skipeval (gh711)
+
+2021-11-18  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* All *.dtx: Replaced \StopEventually by \MaybeStop
+
+2021-11-30 Joseph Wright <joseph.wright at latex-project.org>
+
+  * ltclasses.dtx
+	New option handling routine using ltkeys
+
+2021-11-26 Joseph Wright <joseph.wright at latex-project.org>
+
+  * ltkeys.dtx
+	New file to integrate keyval option processing into the kernel
+
+2021-11-17  Marcel Krüger  <Marcel.Krueger at latex-project.org>
+
+	* ltluatex.dtx:
+	Classify [hv]pack_quality callbacks as exclusive
+	Never pass true to the engine for LuaTeX list callbacks
+
+2021-11-15  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* build.lua (textfiles):
+	Dropped a few obsolete documentation files (nobody installs manually these
+	days and the advice given was no longer current).
+
+	* latexchanges.tex:
+	We no longer maintain this file; instead everything is documented in ltnewsXX
+	and in the changes.txt files so we zap this file too because the double book
+	keeping always means one or the other is out of date.
+
+2021-11-14  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* doc.dtx: Replaced doc.dtx with V3 version.
+	The old doc can be reactivated with \usepackage{doc}[=v2].
+	Hyperref usage (on by default) can be turned off with
+        \usepackage[hyperref=false]{doc}.
+	New options etc are documented: use texdoc doc
+	(code documentation only partly done).
+
+2021-11-12  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* ltxdoc.dtx (section{Configuration file}):
+	Added our default .cfg for extraction.
+	Added option "nocfg" to bypass a system cfg.
+
+
 ================================================================================
 All changes above are only part of the development branch for the next release.
 ================================================================================
 
 #########################
+# 2021-11-15 PL1 Release
+#########################
+
+2021-12-02 Joseph Wright <Joseph.Wright at latex-project.org>
+
+  * ltcmd.dtx
+  Insert correct default values for optional arguments into the end
+  of environments
+
+#########################
 # 2021-11-15 Release
 #########################
 
@@ -150,7 +281,7 @@
 	* ltluatex.dtx:
 	Define missing local copy of flush_list in ltluatex.lua found
 	by Michal Vlasák.
-  
+
 2021-08-10  Phelype Oleinik  <phelype.oleinik at latex-project.org>
 
 	* ltvers.dtx (section{Version Identification}):

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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/clsguide.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/cyrguide.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

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

Index: trunk/Master/texmf-dist/doc/latex-dev/base/doc-code.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/doc-code.pdf	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/doc-code.pdf	2022-01-13 21:03:32 UTC (rev 61598)

Property changes on: trunk/Master/texmf-dist/doc/latex-dev/base/doc-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/base/doc-code.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/doc-code.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/doc-code.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -0,0 +1,4 @@
+% this will typeset documentation + code
+
+\AtBeginDocument{\AlsoImplementation}
+\input{doc.dtx}


Property changes on: trunk/Master/texmf-dist/doc/latex-dev/base/doc-code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/encguide.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/fntguide.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 %
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
@@ -12,7 +12,7 @@
 % 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
+%    https://www.latex-project.org/lppl.txt
 % and version 1.3c or later is part of all distributions of LaTeX
 % version 2008 or later.
 %
@@ -33,16 +33,21 @@
 
 \documentclass{ltxguide}[1995/11/28]
 
-\usepackage{varioref}
 
+\setcounter{totalnumber}{8}
+\setcounter{topnumber}{8}
+
+\usepackage[trace]{fewerfloatpages}
+\usepackage{booktabs,varioref}
+
 \title{\LaTeXe{} font selection}
 
 \author{\copyright~Copyright 1995--2021, \LaTeX\ Project
   Team.\thanks{Thanks to Arash Esbati for documenting the
     newer NFSS features of 2020}\\
-   All rights reserved.}
+  All rights reserved.}
 
-\date{March 2021}
+\date{December 2021}
 
 \begin{document}
 
@@ -160,7 +165,7 @@
 local \TeX{} Users Group, or the international \TeX{} Users Group.
 Addresses and other details can be found at:
 \begin{quote}\small\label{addrs}
-  \texttt{http://www.tug.org/lugs.html}
+  \texttt{https://www.tug.org/lugs.html}
 \end{quote}
 
 
@@ -288,6 +293,9 @@
 e.g., ``demi-bold'' is normally just another name for ``semi-bold'', so
 should get |sb| assigned, etc.
 
+
+\newpage
+
 \NEWdescription{2020/02/02}
 The most common values for the font shape are:
 \begin{center}
@@ -343,27 +351,29 @@
    Overfull \hbox (3.80855pt too wide) in paragraph at lines 314--318
    []\OT1/cmr/m/n/10 Normally [] and [] will be iden-ti-cal,
 \end{verbatim}
-The author commands for fonts set the five attributes:
-\begin{center}
-  \hspace*{-1em}%
-  \begin{tabular}{rcl}
-    \emph{Author command} & \emph{Attribute}
+The author commands for fonts set the five attributes as shown in table~\vref{tab:attributes}.
+\begin{table}[!tbp]
+  \centering
+  \begin{tabular}{@{}r@{\hspace{3pt}}c@{\hspace{1pt}}c@{}}
+    \toprule
+    \multicolumn{1}{c}{\emph{Author command}} & \emph{Attribute}
                           & \emph{Value in} |article| \emph{class} \\
+    \midrule
     |\textnormal{..}| or |\normalfont| & family & |cmr|     \\
                                        & series & |m|       \\
-                                       & shape  & |n|       \\[1pt]
+                                       & shape  & |n|       \\ \midrule%[2pt]
     |\textrm{..}| or |\rmfamily|       & family & |cmr|     \\
     |\textsf{..}| or |\sffamily|       & family & |cmss|    \\
     |\texttt{..}| or |\ttfamily|       & family & |cmtt|    \\
     |\textmd{..}| or |\mdseries|       & series & |m|       \\
-    |\textbf{..}| or |\bfseries|       & series & |bx|      \\[1pt]
+    |\textbf{..}| or |\bfseries|       & series & |bx|      \\ \midrule%[2pt]
     |\textit{..}| or |\itshape|        & shape  & |it|      \\
     |\textsl{..}| or |\slshape|        & shape  & |sl|      \\
     |\textsc{..}| or |\scshape|        & shape  & |sc|      \\
     |\textssc{..}| or |\sscshape|      & shape  & |ssc|     \\
     |\textsw{..}| or |\swshape|        & shape  & |sw|      \\
-    |\textulc{..}| or |\ulcshape|      & shape  & |ulc| (virtual) $\to$ |n|, |it|, |sl| or |ssc| \\
-    |\textup{..}| or |\upshape|        & shape  & |up|  (virtual) $\to$ |n| or |sc|    \\[1pt]
+    |\textulc{..}| or |\ulcshape|      & shape  & |ulc| (virtual) $\to$ |n|, |it|, |sl| or |ssc|     \\
+    |\textup{..}| or |\upshape|        & shape  & | up| (virtual) $\to$ |n| or |sc     |\phantom{, , } \\\midrule%[2pt]
     |\tiny|                            & size   & |5pt|     \\
     |\scriptsize|                      & size   & |7pt|     \\
     |\footnotesize|                    & size   & |8pt|     \\
@@ -373,9 +383,11 @@
     |\Large|                           & size   & |14.4pt|  \\
     |\LARGE|                           & size   & |17.28pt| \\
     |\huge|                            & size   & |20.74pt| \\
-    |\Huge|                            & size   & |24.88pt|
+    |\Huge|                            & size   & |24.88pt| \\
+    \bottomrule
   \end{tabular}
-\end{center}
+  \caption{Author font commands and their effects (article class)}\label{tab:attributes}
+\end{table}
 The values used by these commands are determined by the document class,
 using the parameters defined in Section~\ref{Sec:text.param}.
 
@@ -386,6 +398,10 @@
 turned into \TeX{} font names.  This is described in
 Section~\ref{Sec:install}.
 
+
+\newpage
+
+
 \subsection{Selection commands}
 
 The low-level commands used to select a text font are as follows.
@@ -392,10 +408,10 @@
 
 \begin{decl}
   |\fontencoding| \arg{encoding} \\
-  |\fontfamily|  \arg{family} \\
-  |\fontseries| \arg{series} \\
+  |\fontfamily|  \arg{family} \qquad
+  |\fontseries| \arg{series} \qquad
   |\fontshape| \arg{shape} \\
-  |\fontsize| \arg{size} \arg{baselineskip} \\
+  |\fontsize| \arg{size} \arg{baselineskip} \qquad
   |\linespread| \arg{factor}
 \end{decl}
 
@@ -439,14 +455,14 @@
 The current values of the font attributes are held in internal macros.
 
 \begin{decl}
-  |\f at encoding| \\
-  |\f at family| \\
-  |\f at series| \\
-  |\f at shape|  \\
-  |\f at size| \\
+  |\f at encoding| \quad
+  |\f at family| \quad
+  |\f at series| \quad
+  |\f at shape|  \quad
+  |\f at size| \quad
   |\f at baselineskip| \\
-  |\tf at size| \\
-  |\sf at size| \\
+  |\tf at size| \quad
+  |\sf at size| \quad
   |\ssf at size|
 \end{decl}
 
@@ -482,9 +498,9 @@
 \end{verbatim}
 
 \begin{decl}
-  |\encodingdefault| \\
-  |\familydefault|   \\
-  |\seriesdefault|   \\
+  |\encodingdefault| \qquad
+  |\familydefault|   \qquad
+  |\seriesdefault|   \qquad
   |\shapedefault|
 \end{decl}
 The encoding, family, series and shape of the main body font.  By
@@ -493,8 +509,8 @@
 will change the main body font of the document.
 
 \begin{decl}
-  |\rmdefault| \\
-  |\sfdefault| \\
+  |\rmdefault| \qquad
+  |\sfdefault| \qquad
   |\ttdefault|
 \end{decl}
 The families selected by |\textrm|, |\rmfamily|, |\textsf|, |\sffamily|,
@@ -502,7 +518,7 @@
 |cmtt|.
 
 \begin{decl}
-  |\bfdefault| \\
+  |\bfdefault| \qquad
   |\mddefault|
 \end{decl}
 The series selected by |\textbf|, |\bfseries|, |\textmd| and
@@ -516,12 +532,12 @@
 and the |ssub| size function, see Section~\ref{sec:sizefunct}.
 
 \begin{decl}
-  |\itdefault|  \\
-  |\sldefault|  \\
-  |\scdefault|  \\
-  |\sscdefault| \\
+  |\itdefault|  \qquad
+  |\sldefault|  \qquad
+  |\scdefault|  \qquad
+  |\sscdefault| \qquad
   |\swdefault|  \\
-  |\ulcdefault| \\
+  |\ulcdefault| \qquad
   |\updefault|
 \end{decl}
 \NEWfeature{2020/02/02}
@@ -611,6 +627,8 @@
 as they did in \LaTeX~2.09. We strongly urge you \emph{not} to misuse
 this declaration to invent new font commands.
 
+\newpage
+
 The following example defines |\it| to produce the italic shape of the
 main document font if used in text and to switch to the font that would
 normally be produced by the math alphabet |\mathit| if used in a
@@ -714,13 +732,13 @@
 Section~\ref{Sec:math.commands} explains how to define symbol commands.
 
 \begin{decl}
-  |\mathnormal{<math>}| \\
-  |\mathcal{<math>}| \\
-  |\mathrm{<math>}| \\
-  |\mathbf{<math>}| \\
-  |\mathsf{<math>}| \\
+  |\mathnormal{<math>}| \quad
+  |\mathcal{<math>}| \quad
+  |\mathbf{<math>}| \quad
   |\mathit{<math>}| \\
-  |\mathtt{<math>}|
+  |\mathrm{<math>}| \qquad
+  |\mathsf{<math>}| \qquad
+  |\mathtt{<math>}| 
 \end{decl}
 Each math alphabet is a command which can only be used inside math mode.
 For example, |$x + \mathsf{y} + \mathcal{Z}$| produces
@@ -799,6 +817,8 @@
 \m{version} is a known math version and \m{encoding} is a known encoding
 scheme.
 
+\newpage
+
 This example defines |\baz| for the `normal' math version only:
 \begin{verbatim}
    \SetMathAlphabet{\baz}{normal}{OT1}{cmss}{m}{n}
@@ -868,6 +888,8 @@
 Checks that the command \m{math-alph} is either already a math alphabet
 command or is undefined; and that \m{sym-font} is a symbol font.
 
+\newpage
+
 Example:
 \begin{verbatim}
    \DeclareSymbolFontAlphabet{\mathrm}{operators}
@@ -928,6 +950,8 @@
    \DeclareMathSymbol{\alphld}{\mathalpha}{AMSb}{"0C}
 \end{verbatim}
 
+\newpage
+
 \begin{decl}
   |\DeclareMathDelimiter| \arg{cmd} \arg{type}
                           \arg{sym-font-1} \arg{slot-1}\\
@@ -1021,6 +1045,7 @@
 This section explains how \LaTeX's font attributes are turned into
 \TeX{} font specifications.
 
+
 \subsection{Font definition files}
 
 \NEWdescription{1997/12/01}
@@ -1043,6 +1068,8 @@
 The declarations in the font definition file are responsible for telling
 \LaTeX{} how to load fonts for that encoding/family combination.
 
+
+
 \subsection{Font definition file commands}
 
 \emph{Note}: A font definition file should contain only commands from
@@ -1056,7 +1083,11 @@
   |\ProvidesFile{<file-name>}[<release-info>]|
 \end{decl}
 The file should announce itself with a |\ProvidesFile| command, as
-described in \emph{\clsguide}.  For example:
+described in \emph{\clsguide}.
+
+\newpage
+
+For example:
 \begin{verbatim}
    \ProvidesFile{t1ptm.fd}[1994/06/01 Adobe Times font definitions]
 \end{verbatim}
@@ -2017,6 +2048,8 @@
 they always keep the same shape and do not nicely blend in with the text
 font).
 
+\newpage
+
 The following tables show the macros available.  The next commands are
 `constructed' accents and are built via \TeX{} macros:
 \begin{center}
@@ -2023,6 +2056,9 @@
   \begin{tabular}[t]{@{}ll}
     \verb*|\capitalcedilla A| & \capitalcedilla A \\
     \verb*|\capitalogonek A|  & \capitalogonek A  \\
+  \end{tabular}
+  \quad
+  \begin{tabular}[t]{@{}ll}
     \verb*|\textcircled a|    & \textcircled a
   \end{tabular}
 \end{center}
@@ -2052,12 +2088,21 @@
   \end{tabular}
 \end{center}
 
-Table~\vref{tab:textcomp} contains macros to access text symbols.  Again,
+Table~\vref{tab:textcomp}
+contains the full list of commands to access the text symbols.
+%
+% Tables~\vrefrange{tab:ts1-subset-always}{tab:ts1-subset-9-disable}
+% contain the commands to access the text symbols.
+%
+Again,
 the numbers are the slots in the encoding.
 
-\begin{table}
-\centering\footnotesize
+\iftrue
+\begin{table}[!tp]
+  \centering\footnotesize
+  \renewcommand\arraystretch{1.07}
   \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+    \toprule
     \verb|\textcapitalcompwordmark|  & \textcapitalcompwordmark  & 23 \\
     \verb|\textascendercompwordmark| & \textascendercompwordmark & 31 \\
     \verb|\textquotestraightbase|    & \textquotestraightbase    & 13 \\
@@ -2112,9 +2157,11 @@
     \verb|\textbullet|               & \textbullet               & 136 \\
     \verb|\textcelsius|              & \textcelsius              & 137 \\
     \verb|\textdollaroldstyle|       & \textdollaroldstyle       & 138 \\
-    \verb|\textcentoldstyle|         & \textcentoldstyle         & 139
+    \verb|\textcentoldstyle|         & \textcentoldstyle         & 139 \\
+    \bottomrule
   \end{tabular}\qquad
   \begin{tabular}[t]{lp{1.5em}l}
+    \toprule
     \verb|\textflorin|               & \textflorin               & 140 \\
     \verb|\textcolonmonetary|        & \textcolonmonetary        & 141 \\
     \verb|\textwon|                  & \textwon                  & 142 \\
@@ -2168,12 +2215,371 @@
     \verb|\textthreequarters|        & \textthreequarters        & 190 \\
     \verb|\texteuro|                 & \texteuro                 & 191 \\
     \verb|\texttimes|                & \texttimes                & 214 \\
-    \verb|\textdiv|                  & \textdiv                  & 246
+    \verb|\textdiv|                  & \textdiv                  & 246 \\
+    \null \\
+    \bottomrule
   \end{tabular}
-\caption{Text symbols formerly from the \textsf{textcomp} package}
-\label{tab:textcomp}
+  \caption{Text symbols formerly from the \textsf{textcomp} package}
+  \label{tab:textcomp}
 \end{table}
 
+\fi
+
+The |TS1| encoding contains a rich set of symbols which means that
+several symbols are only available in a few \TeX{} fonts and some, such
+as the capital accents, not available at all but developed as part of
+the reference font implementation.  In reality, many existing fonts
+don't provide a full set of glyphs defined in |TS1| encoding and the
+question arises: ``Which glyphs of the |TS1| encoding are implemented by
+which font?''
+
+\NEWfeature{2021/06/01}
+Fonts can be ordered in sub-encodings with the |\DeclareEncodingSubset|
+macro:
+\begin{decl}
+  |\DeclareEncodingSubset| \arg{encoding}
+                           \arg{font family}
+                           \arg{subset number}
+\end{decl}
+The macro takes 3 mandatory arguments: An \m{encoding} for which a
+subsetting is wanted (currently only |TS1|), the \m{font family} for
+which we declare the subset and finally the \m{subset number} between
+|0| (all of the encoding is supported) and |9| (many glyphs are
+missing).  Hence, it is assumed that some symbols are always available
+by all fonts and each sub-encoding defines macros which become
+unavailable (i.e., they are not provided in the sub-encoding with that
+number and all sub-encodings with higher numbers.)
+
+\begin{table}[tbp]
+  \centering\footnotesize
+  \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+    \toprule
+    \verb|\textquotestraightbase|     & \textquotestraightbase     & 13  \\
+    \verb|\textquotestraightdblbase|  & \textquotestraightdblbase  & 18  \\
+    \verb|\textcapitalcompwordmark|   & \textcapitalcompwordmark   & 23  \\
+    \verb|\textascendercompwordmark|  & \textascendercompwordmark  & 31  \\
+    \verb|\textdollar|                & \textdollar                & 36  \\
+    \verb|\textquotesingle|           & \textquotesingle           & 39  \\
+    \verb|\textasteriskcentered|      & \textasteriskcentered      & 42  \\
+    \verb|\textdagger|                & \textdagger                & 132 \\
+    \verb|\textdaggerdbl|             & \textdaggerdbl             & 133 \\
+    \verb|\textperthousand|           & \textperthousand           & 135 \\
+    \verb|\textbullet|                & \textbullet                & 136 \\
+    \verb|\texttrademark|             & \texttrademark             & 151 \\
+    \verb|\textcent|                  & \textcent                  & 162 \\
+    \verb|\textsterling|              & \textsterling              & 163 \\
+    \verb|\textyen|                   & \textyen                   & 165 \\
+    \verb|\textbrokenbar|             & \textbrokenbar             & 166 \\
+    \bottomrule
+  \end{tabular}\qquad
+  \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+    \toprule
+    \verb|\textsection|               & \textsection               & 167 \\
+    \verb|\textcopyright|             & \textcopyright             & 169 \\
+    \verb|\textordfeminine|           & \textordfeminine           & 170 \\
+    \verb|\textlnot|                  & \textlnot                  & 172 \\
+    \verb|\textregistered|            & \textregistered            & 174 \\
+    \verb|\textdegree|                & \textdegree                & 176 \\
+    \verb|\textpm|                    & \textpm                    & 177 \\
+    \verb|\textparagraph|             & \textparagraph             & 182 \\
+    \verb|\textperiodcentered|        & \textperiodcentered        & 183 \\
+    \verb|\textordmasculine|          & \textordmasculine          & 186 \\
+    \verb|\textonequarter|            & \textonequarter            & 188 \\
+    \verb|\textonehalf|               & \textonehalf               & 189 \\
+    \verb|\textthreequarters|         & \textthreequarters         & 190 \\
+    \verb|\texttimes|                 & \texttimes                 & 214 \\
+    \verb|\textdiv|                   & \textdiv                   & 246 \\
+    \null \\
+    \bottomrule
+  \end{tabular}
+  \caption{Symbols available in all \texttt{TS1} sub-encodings}
+  \label{tab:ts1-subset-always}
+\end{table}
+
+
+
+\begin{table}[!tbp]
+  \centering
+  \begin{tabular}[t]{@{}lll@{}}
+    \toprule
+    \verb*|\textcircled| & \textcircled{} & acc \\
+    \bottomrule
+  \end{tabular}
+  \caption{Symbol unavailable in \texttt{TS1} sub-encoding \texttt{1}
+    and higher}
+  \label{tab:ts1-subset-1-disable}
+\end{table}
+
+
+
+\begin{table}[!tbp]
+  \centering\footnotesize
+  \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+    \toprule
+    \verb|\capitalcedilla|       & \capitalcedilla{}       & acc \\
+    \verb|\capitalogonek|        & \capitalogonek{}        & acc \\
+    \verb|\capitalgrave|         & \capitalgrave{}         & 0   \\
+    \verb|\capitalacute|         & \capitalacute{}         & 1   \\
+    \verb|\capitalcircumflex|    & \capitalcircumflex{}    & 2   \\
+    \verb|\capitaltilde|         & \capitaltilde{}         & 3   \\
+    \verb|\capitaldieresis|      & \capitaldieresis{}      & 4   \\
+    \verb|\capitalhungarumlaut|  & \capitalhungarumlaut{}  & 5   \\
+    \verb|\capitalring|          & \capitalring{}          & 6   \\
+    \verb|\capitalcaron|         & \capitalcaron{}         & 7   \\
+    \verb|\capitalbreve|         & \capitalbreve{}         & 8   \\
+    \verb|\capitalmacron|        & \capitalmacron{}        & 9   \\
+    \verb|\capitaldotaccent|     & \capitaldotaccent{}     & 10  \\
+    \verb|\capitaltie|           & \capitaltie{}           & 27  \\
+    \verb|\newtie|               & \newtie{}               & 28  \\
+    \verb|\capitalnewtie{}|      & \capitalnewtie{}        & 29  \\
+    \verb|\textdblhyphen|        & \textdblhyphen          & 45  \\
+    \verb|\textzerooldstyle|     & \textzerooldstyle       & 48  \\
+    \verb|\textoneoldstyle|      & \textoneoldstyle        & 49  \\
+    \verb|\texttwooldstyle|      & \texttwooldstyle        & 50  \\
+    \verb|\textthreeoldstyle|    & \textthreeoldstyle      & 51  \\
+    \verb|\textfouroldstyle|     & \textfouroldstyle       & 52  \\
+    \verb|\textfiveoldstyle|     & \textfiveoldstyle       & 53  \\
+    \verb|\textsixoldstyle|      & \textsixoldstyle        & 54  \\
+    \verb|\textsevenoldstyle|    & \textsevenoldstyle      & 55  \\
+    \verb|\texteightoldstyle|    & \texteightoldstyle      & 56  \\
+    \verb|\textnineoldstyle|     & \textnineoldstyle       & 57  \\
+    \verb|\textmho|              & \textmho                & 77  \\
+    \verb|\textbigcircle|        & \textbigcircle          & 79  \\
+    \verb|\textlbrackdbl|        & \textlbrackdbl          & 91  \\
+    \verb|\textrbrackdbl|        & \textrbrackdbl          & 93  \\
+    \verb|\textasciigrave|       & \textasciigrave         & 96  \\
+    \verb|\textborn|             & \textborn               & 98  \\
+    \bottomrule
+  \end{tabular}\qquad
+  \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+    \toprule
+    \verb|\textdivorced|         & \textdivorced           & 99  \\
+    \verb|\textdied|             & \textdied               & 100 \\
+    \verb|\textleaf|             & \textleaf               & 108 \\
+    \verb|\textmarried|          & \textmarried            & 109 \\
+    \verb|\textmusicalnote|      & \textmusicalnote        & 110 \\
+    \verb|\texttildelow|         & \texttildelow           & 126 \\
+    \verb|\textdblhyphenchar|    & \textdblhyphenchar      & 127 \\
+    \verb|\textasciibreve|       & \textasciibreve         & 128 \\
+    \verb|\textasciicaron|       & \textasciicaron         & 129 \\
+    \verb|\textacutedbl|         & \textacutedbl           & 130 \\
+    \verb|\textgravedbl|         & \textgravedbl           & 131 \\
+    \verb|\textdollaroldstyle|   & \textdollaroldstyle     & 138 \\
+    \verb|\textcentoldstyle|     & \textcentoldstyle       & 139 \\
+    \verb|\textnaira|            & \textnaira              & 143 \\
+    \verb|\textguarani|          & \textguarani            & 144 \\
+    \verb|\textpeso|             & \textpeso               & 145 \\
+    \verb|\textrecipe|           & \textrecipe             & 147 \\
+    \verb|\textpertenthousand|   & \textpertenthousand     & 152 \\
+    \verb|\textpilcrow|          & \textpilcrow            & 153 \\
+    \verb|\textbaht|             & \textbaht               & 154 \\
+    \verb|\textdiscount|         & \textdiscount           & 156 \\
+    \verb|\textopenbullet|       & \textopenbullet         & 158 \\
+    \verb|\textservicemark|      & \textservicemark        & 159 \\
+    \verb|\textlquill|           & \textlquill             & 160 \\
+    \verb|\textrquill|           & \textrquill             & 161 \\
+    \verb|\textasciidieresis|    & \textasciidieresis      & 168 \\
+    \verb|\textcopyleft|         & \textcopyleft           & 171 \\
+    \verb|\textcircledP|         & \textcircledP           & 173 \\
+    \verb|\textasciimacron|      & \textasciimacron        & 175 \\
+    \verb|\textasciiacute|       & \textasciiacute         & 180 \\
+    \verb|\textreferencemark|    & \textreferencemark      & 184 \\
+    \verb|\textsurd|             & \textsurd               & 187 \\
+    \null \\
+    \bottomrule
+  \end{tabular}
+  \caption{Symbols unavailable in \texttt{TS1} sub-encoding \texttt{2}
+    and higher}
+  \label{tab:ts1-subset-2-disable}
+\end{table}
+
+
+\begin{table}[!tbp]
+  \centering\footnotesize
+  \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+    \toprule
+    \verb|textlangle|                & \textlangle               & 60 \\
+    \bottomrule
+  \end{tabular}\qquad
+  \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+    \toprule
+    \verb|\textrangle|               & \textrangle               & 62 \\
+    \bottomrule
+  \end{tabular}
+  \caption{Symbols unavailable in \texttt{TS1} sub-encoding \texttt{3}
+    and higher}
+  \label{tab:ts1-subset-3-disable}
+\end{table}
+
+
+Thus, the symbols that are available in sub-encoding $x$ are the symbols
+in table~\ref{tab:ts1-subset-always} (always available) and the symbols
+that only become unavailable in sub-encodings $> x$.  The tables
+\vrefrange{tab:ts1-subset-1-disable}{tab:ts1-subset-9-disable} show the symbols that
+become unavailable in the different sub-encodings.  Again, the numbers
+are the slots in the |TS1| encoding, |acc| indicates a `constructed'
+accent.
+
+\newpage
+
+
+
+\begin{table}[!tbp]
+  \centering\footnotesize
+  \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+    \toprule
+    \verb|\textleftarrow|            & \textleftarrow            & 24  \\
+    \verb|\textrightarrow|           & \textrightarrow           & 25  \\
+    \verb|\textuparrow|              & \textuparrow              & 94  \\
+    \verb|\textdownarrow|            & \textdownarrow            & 95 \\
+    \bottomrule
+  \end{tabular}\qquad
+  \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+    \toprule
+    \verb|\textcolonmonetary|        & \textcolonmonetary        & 141 \\
+    \verb|\textwon|                  & \textwon                  & 142 \\
+    \verb|\textlira|                 & \textlira                 & 146 \\
+    \verb|\textdong|                 & \textdong                 & 150 \\
+    \bottomrule
+  \end{tabular}
+  \caption{Symbols unavailable in \texttt{TS1} sub-encoding \texttt{4}
+    and higher}
+  \label{tab:ts1-subset-4-disable}
+\end{table}
+
+
+\begin{table}[!tbp]
+  \centering\footnotesize
+  \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+    \toprule
+    \verb|\textnumero|               & \textnumero               & 155 \\
+    \bottomrule
+  \end{tabular}\qquad
+  \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+    \toprule
+    \verb|\textestimated|            & \textestimated            & 157 \\
+    \bottomrule
+  \end{tabular}
+  \caption{Symbols unavailable in \texttt{TS1} sub-encoding \texttt{5}
+    and higher}
+  \label{tab:ts1-subset-5-disable}
+\end{table}
+
+
+
+\begin{table}[!tbp]
+  \centering\footnotesize
+  \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+    \toprule
+    \verb|\textflorin|               & \textflorin               & 140 \\
+    \bottomrule
+  \end{tabular}\qquad
+  \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+    \toprule
+    \verb|\textcurrency|             & \textcurrency             & 164 \\
+    \bottomrule
+  \end{tabular}
+  \caption{Symbols unavailable in \texttt{TS1} sub-encoding \texttt{6}
+    and higher}
+  \label{tab:ts1-subset-6-disable}
+\end{table}
+
+
+
+\begin{table}[!tbp]
+  \centering\footnotesize
+  \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+    \toprule
+    \verb|\textfractionsolidus|      & \textfractionsolidus      & 47 \\
+    \verb|\textminus|                & \textminus                & 61 \\
+    \bottomrule
+  \end{tabular}\qquad
+  \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+    \toprule
+    \verb|\textohm|                  & \textohm                  & 87 \\
+    \verb|\textmu|                   & \textmu                   & 181 \\
+    \bottomrule
+  \end{tabular}
+  \caption{Symbols unavailable in \texttt{TS1} sub-encoding \texttt{7}
+    and higher}
+  \label{tab:ts1-subset-7-disable}
+\end{table}
+
+
+
+\begin{table}[!tbp]
+  \centering\footnotesize
+  \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+    \toprule
+    \verb|\textblank|                & \textblank                & 32 \\
+    \verb|\textinterrobang|          & \textinterrobang          & 148 \\
+    \bottomrule
+  \end{tabular}\qquad
+  \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+    \toprule
+    \verb|\textinterrobangdown|      & \textinterrobangdown      & 149 \\
+    \null \\
+    \bottomrule
+  \end{tabular}
+  \caption{Symbols unavailable in \texttt{TS1} sub-encoding \texttt{8}
+    and higher}
+  \label{tab:ts1-subset-8-disable}
+\end{table}
+
+
+\begin{table}[!tbp]
+  \centering\footnotesize
+  \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+    \toprule
+    \verb|\texttwelveudash|          & \texttwelveudash          & 21  \\
+    \verb|\textthreequartersemdash|  & \textthreequartersemdash  & 22  \\
+    \verb|\textbardbl|               & \textbardbl               & 134 \\
+    \verb|\textcelsius|              & \textcelsius              & 137 \\
+    \bottomrule
+  \end{tabular}\qquad
+  \begin{tabular}[t]{@{}lp{1.5em}l@{}}
+    \toprule
+    \verb|\texttwosuperior|          & \texttwosuperior          & 178 \\
+    \verb|\textthreesuperior|        & \textthreesuperior        & 179 \\
+    \verb|\textonesuperior|          & \textonesuperior          & 185 \\
+    \null \\
+    \bottomrule
+  \end{tabular}
+  \caption{Symbols unavailable in \texttt{TS1} sub-encoding \texttt{9}}
+  \label{tab:ts1-subset-9-disable}
+\end{table}
+
+
+
+As an example,
+%\begin{verbatim}
+   \verb=\DeclareEncodingSubset{TS1}{foo}{5}=
+%\end{verbatim}
+indicates that the font family |foo| contains the always available
+symbols (table~\vref{tab:ts1-subset-always}) and the ones disabled
+in sub-encodings 6--9, i.e.,
+tables~\vrefrange{tab:ts1-subset-6-disable}{tab:ts1-subset-9-disable}.
+
+As these days many font families are set up to end in |-LF| (lining
+figures), |-OsF| (oldstyle figures), etc. the declaration supports a
+shortcut: if the \m{font family} name ends in |-*| then the star gets
+replaced by these common ending, e.g.,
+\begin{verbatim}
+   \DeclareEncodingSubset{TS1}{Alegreya-*}{2}
+\end{verbatim}
+is the same as writing
+\begin{verbatim}
+   \DeclareEncodingSubset{TS1}{Alegreya-LF}  {2}
+   \DeclareEncodingSubset{TS1}{Alegreya-OsF} {2}
+   \DeclareEncodingSubset{TS1}{Alegreya-TLF} {2}
+   \DeclareEncodingSubset{TS1}{Alegreya-TOsF}{2}
+\end{verbatim}
+If only some are needed then one can define them individually but in
+many cases all four are wanted, hence the shortcut.
+
+
+
+
 \section{If you need to know more \ldots}
 
 \NEWdescription{1996/06/01}

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)

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

Deleted: trunk/Master/texmf-dist/doc/latex-dev/base/latexchanges.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/latexchanges.tex	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/latexchanges.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,1025 +0,0 @@
-% \iffalse meta-comment
-%
-% Copyright (C) 2015-2021
-% The LaTeX Project and any individual authors listed elsewhere
-% in this file.
-%
-% This file is part of the LaTeX base system.
-% -------------------------------------------
-%
-% 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 has the LPPL maintenance status "maintained".
-%
-% The list of all files belonging to the LaTeX base distribution is
-% given in the file `manifest.txt'. See also `legal.txt' for additional
-% information.
-%
-% The list of derived (unpacked) files belonging to the distribution
-% and covered by LPPL is defined by the unpacking scripts (with
-% extension .ins) which are part of the distribution.
-%
-% \fi
-% Filename: latexchanges.tex
-
-\NeedsTeXFormat{LaTeX2e}
-
-\documentclass{ltxguide}
-
-\usepackage[T1]{fontenc}
-
-\usepackage{url}
-
-\title{Changes to the \LaTeXe{} format}
-
-\author{\copyright~Copyright 2015--2021, \LaTeX\ Project Team.\\
-   All rights reserved.}
-
-\date{2021-06-08}
-
-% a few commands from doc
-\newcommand\Lpack[1]{\mbox{\textsf{#1}}}
-\newcommand\DescribeMacro[1]{\texttt{\string#1}}
-
-\newcommand\pkg[1]{\texttt{#1}}
-\newcommand\cs[1]{\texttt{\textbackslash #1}}
-
-\makeatletter % -- provide command introduced in new release
-              %    so this typesets with an old format
-
-\DeclareTextCommandDefault\textcommabelow[1]
-  {\hmode at bgroup\ooalign{\null#1\crcr\hidewidth\raise-.31ex
-   \hbox{\check at mathfonts\fontsize\ssf at size\z@
-   \math at fontsfalse\selectfont,}\hidewidth}\egroup}
-
-\makeatother
-
-  
-
-\ifx\href\undefined
-  \newcommand\ghissue[1]{github #1}
-  \newcommand\gnatsissue[1]{gnats #1}
-  \newcommand\ltnewsissue[1]{\LaTeX\ News~#1}
-  \newcommand\sxanswer[1]{\url{https://tex.stackexchange.com\slash a\slash #1}}
-  \newcommand\sxquestion[1]{\url{https://tex.stackexchange.com\slash q\slash #1}}
-\else
-  \newcommand\ghissue[1]{%
-    \href{https://github.com/latex3/latex2e/issues/#1}{github #1}}
-  \newcommand\gnatsissue[1]{%
-    \href{https://www.latex-project.org/cgi-bin/ltxbugs2html?pr=latex/#1}{gnats #1}}
-  \newcommand\ltnewsissue[1]{%
-    \href{https://www.latex-project.org/news/latex2e-news/ltnews#1.pdf}{\LaTeX\ News~#1}}
-  \newcommand\sxanswer[1]{%
-     \url{https://tex.stackexchange.com/a/#1}}
-  \newcommand\sxquestion[1]{%
-     \url{https://tex.stackexchange.com/q/#1}}
-\fi
-
-
-\setcounter{tocdepth}{1}  % don't show subsections
-
-
-\begin{document}
-
-\maketitle
-
-\begin{abstract}
-This document describes changes that were made to the
-\LaTeX\ format since the  2014-05-01 \LaTeX\ releases.
-
-
-As announced in \ltnewsissue{22}, the 2015 \LaTeX{} release adopts a new
-policy. Improvements and bug fixes will be made to the format sources,
-with the \Lpack{latexrelease} package being available to revert
-changes to use definitions from an earlier format.
-
-As a summary of changes for a main release will always be available in
-\LaTeX\ News, detailed changes are not repeated in this document,
-but changes in any patch releases will be listed in more
-detail here.
-
-More detailed change logs are available as
-\texttt{changes.txt} in the base distribution, and full code
-  differences may be browsed via the code repository on GitHub
-see for example
-\url{https://github.com/latex3/latex2e/commits/master}.
-\end{abstract}
-
-\tableofcontents
-
-\newpage
-
-%\section{Introduction}
-
-\section{Changes introduced in 2021-06-01 patch~1}
-
-A further refinement to the handling of ``raw'' option lists added
-in the last release, see \ghissue{508}.
-
-Fixes an issue with rollback when \pkg{latexrelease} is loaded by some
-other package (as done for \texttt{platex} (\ghissue{577}).
-
-First aid for \pkg{ulem} and \pkg{varwidth} got added to help them
-along until they get corrected. \pkg{ulem} has a problem with the
-improved definition of \cs{hspace} and \pkg{varwidth} chokes on a
-newly introduced glue item in vertical lists, which is needed for
-paragraph hook handling (\ghissue{583}).
-
-
-\section{Changes introduced in 2021-06-01}
-
-The focus of this release is to provide further important building
-blocks for the future production of reliable tagged PDF output.  Many
-other improvements have been made. Please see \ltnewsissue{33} for an
-overview of the new features and the change log in
-\texttt{changes.txt} for a more detailed list of individual changes.
-
-\section{Changes introduced in 2020-10-01 patch~4}
-
-This patch fixed two bugs in the hook management: if debugging for the
-L3 programming layer was turned on it reported inconsistent use of
-local/global variables. This was a spurious warning but nevertheless
-disconcerting (\ghissue{463}). The other bug was more serious, in some
-situations a wrong value of \verb=\CurrentFile= inside of file-related hooks
-could lead to errors (\ghissue{464}).
-
-We also added the documentation file \texttt{usrguide3.pdf} which
-will become the main home for documenting new features of \LaTeX. At
-this point in time it covers the \Lpack{xparse} functionality that has
-been added to the kernel.
-
-\section{Changes introduced in 2020-10-01 patch~3}
-
-This patch fixed some rollback issues that prevented successful
-rollback to other release levels in some cases.  It also fixed an issue
-with file hooks involving files with explicit paths  (\ghissue{422}).
-
-One important change was to handle hook declarations done in the
-document preamble in a special way, e.g., those done with
-\verb=\AtBeginDocument=. They are now always executed last and are not
-subject to the normal code sorting for hooks, because they are nearly always
-needed to overwrite earlier settings made in packages.
-
-Finally, the NFSS series handling was slightly changed to
-automatically drop surplus ``\texttt{m}''s from series specifications
-when needed (and warn about them when encountered), e.g.,
-``\texttt{mc}'' automatically becomes ``\texttt{c}'' which is the
-official NFSS name for a \emph{medium compact} series (\ghissue{453}).
-This was done to improve the fix in 2020-02-02 PL~5.
-
-\section{Changes introduced in 2020-10-01 patch~2}
-
-This patch fixed the passing of options to packages and classes when
-they are stored in a special place (denoted by \verb=\input at path=)
-instead of their normal location (\ghissue{414}). In that case the
-options got lost.
-
-\section{Changes introduced in 2020-10-01 patch~1}
-
-This patch fixed a file handling issue: to allow for spaces in file
-names quotes were used but this upsets Bib\TeX{} (\ghissue{400}).  In
-addition, two rollback issues got corrected.
-
-\section{Changes introduced in 2020-10-01}
-
-Major enhancements in this release include pre-loading of the
-\Lpack{xparse} package for producing document-level commands with more
-complicated argument signatures and the new hook management system for
-\LaTeX{} documented in \texttt{lthooks-doc.pdf},
-\texttt{ltfilehook-doc.pdf} and \texttt{ltshipout-doc.pdf}.
-
-In addition there have been many smaller fixes and enhancements.
-Please see \ltnewsissue{32} for an overview of the new features and
-the change log in \texttt{changes.txt} for a more detailed list of
-individual changes.
-
-\section{Changes introduced in 2020-02-02 patch~5}
-
-The patch~4 dropped a bit too much in certain situations, e.g., it
-changed a series value of \texttt{semibold} (as used by
-\texttt{autoinst}) to \texttt{seibold}, rendering it useless. So we
-now only correct series values if they are a member of the
-following list: \texttt{ulm}, \texttt{elm}, \texttt{lm}, \texttt{slm},
-\texttt{mm}, \texttt{sbm}, \texttt{bm}, \texttt{ebm}, \texttt{ubm},
-\texttt{muc}, \texttt{mec}, \texttt{mc}, \texttt{msc}, \texttt{msx},
-\texttt{mx}, \texttt{mex} or \texttt{mux}. Here we assume that people
-intended to follow the NFSS convention but somehow got it wrong. So we
-drop one ``m'' and also add a warning that the
-\verb=\DeclareFontShape= declaration in question should be updated
-(\ghissue{293}).
-
-
-\section{Changes introduced in 2020-02-02 patch~4}
-
-In some cases the \texttt{filecontents} environment was opening the
-file for writing without quoting it, so that files with spaces failed
-(\ghissue{284}).
-
-Ensure that \verb=\DeclareFontShape= drops surplus ``m'' in situations
-where an \texttt{.fd} incorrectly specifies \texttt{mc} instead of
-\texttt{c}, etc.\ (\ghissue{289}).
-
-\section{Changes introduced in 2020-02-02 patch~3}
-
-Support the following scenario:
-\begin{verbatim}
-\fontfamily{ptm}\selectfont text  \textbf{\sffamily bold sans text}
-\end{verbatim}
-The default bold series for \texttt{ptm} is \texttt{b} so
-\verb=\textbf= switches to that. The \verb=\sffamily= then tried to
-find \texttt{OT1/cmss/b/n} which doesn't exist instead of first
-altering the series default to use \texttt{bx} as needed for Computer
-Modern Sans Serif. This has now been corrected (\ghissue{277}).
-
-
-\section{Changes introduced in 2020-02-02 patch~2}
-
-Correct \verb=\capitalacute=, etc.\ so that they work in
-\texttt{tabbing} (\ghissue{271}).  Provide \verb=\@defaultfamilyhook= to
-support CJK packages (\ghissue{269}).  Provide a list of \texttt{fontenc}
-loads with their options in \verb=\@fontenc at load@list= so that Babel
-can determine the right \verb=\latinencoding= value (\ghissue{273}).
-
-
-\section{Changes introduced in 2020-02-02 patch~1}
-
-Fixed a misspelled command name that caused trouble (\ghissue{264}).  Make
-\texttt{textcomp} package issue only info messages about glyph
-substitutions (\ghissue{262}) and warn if it attempts to run in an old format (\ghissue{260}).
-
-\section{Changes introduced in 2020-02-02}
-
-Major enhancements in this release include pre-loading \Lpack{expl3}
-to improve startup times, especially with Lua\TeX\ and Xe\TeX, and
-extra features in the font selection mechanism. Please see
-\ltnewsissue{31}  for an overview of the new features and the change
-log in \texttt{changes.txt} for a more detailed list of individual
-changes.
-
-
-\section{Changes introduced in 2019-10-01 patch~3}
-
-Further fixes to the handling of filenames, expand macros (and
-\verb|\jobname| \emph{before} removing \verb|"|, not after.
-
-\section{Changes introduced in 2019-10-01 patch~2}
-
-Further fixes to the handling of filenames, \ghissue{204}: non-ascii
-filenames and filenames with spaces and multiple dots should now work
-in \verb|\includegraphics|.
-
-Reclassify some luatex callbacks.  Other fixes for Issues raised:
-\ghissue{198}, \ghissue{201}, \ghissue{202}, \ghissue{205}.
-
-\section{Changes introduced in 2019-10-01 patch~1}
-
-Adjustments to \verb|\set at curr@file|, and \verb|\@extracolsep|.
-
-Added missing \verb=\else= branch in \texttt{nfssfont} so that
-\verb=\action= is executed if provided.
-
-\section{Changes introduced in 2019-10-01}
-
-Introduced \LaTeX\texttt{-dev} formats for pre testing future \LaTeX{}
-releases. Now there's a \texttt{latex-base-dev} package on CTAN which
-contains a pre-release of the \LaTeXe{} kernel and both \TeX Live and
-MiK\TeX{} include the standard \LaTeX{} executables (\texttt{pdflatex},
-\texttt{lualatex}, etc.) with \texttt{-dev} appended, which use the
-pre-release format.
-
-The handling of Unicode characters was improved by making them safe
-inside \verb|\ref|s and \verb|\label|s, by using \verb|\ifincsname|
-to make these characters safe in these contexts (\ghissue{95}).
-
-In line with the better handling of Unicode characters, file names
-can now contain any Unicode character plus spaces, as these cases
-are now correctly handled by the kernel.
-
-An optional argument was added to the \texttt{filecontents} environment,
-to which a comma-separated list of options can be given. The options
-include \texttt{overwrite} (or \texttt{force}), \texttt{nosearch}, and
-\texttt{noheader} (which has the same effect as the starred form of the
-environment). The environment is now allowed anywhere in the document.
-
-A plethora of \LaTeX{} commands was made robust so that fewer
-\verb|\protect| are needed when using some commands in moving arguments.
-There are a few border cases where it's tricker to make the command
-robust or where it's not worth it to do so, but most reasonable use
-cases are covered. The most notable change was \verb|\begin| and
-\verb|\end|, which are now robust and won't break when used in moving
-arguments.
-
-An extra \verb|\hskip 1sp| was added to \verb|c|-column table cells to
-protect against the presence of an \verb|\unskip| in the table cell
-(\ghissue{102}).
-
-\texttt{U+012F} which is ``i with ogonek'' should produce an
-``i'' and not a ``dotless i''. This has been corrected
-(\ghissue{122}).
-
-The Unicode slots \texttt{27E8} and \texttt{27E9} have been mapped to
-\verb|textlangle| and \verb|textrangle| which is the recommended mapping
-(\ghissue{110}).
-
-Basic ligatures (ff, fi, fl, ffi, ffl, ft, st) can now be input as a
-single unicode character in pdf\TeX, which is useful when copy-pasting
-(\ghissue{154}).
-
-\verb|\InputIfFileExists{foo}{\input{bar}}{}|
-did not load the files \texttt{foo.tex} and \texttt{bar.tex} but
-would load \texttt{bar.tex} twice. This has been corrected (\ghissue{109}).
-
-The \textsf{fncylab} and \textsf{varioref} packages changed \LaTeX's internal
-counter prefix commands \verb|p at ...| so that they would take the counter
-value as an argument instead of just acting as a prefix to them. These
-packages also provided the \verb|\labelformat| macro to change the prefix
-macro and \verb|\Ref| so that using counters defined that way in the
-beginning of sentences would have the proper capitalization. These features
-were added to the \LaTeXe{} kernel.
-
-The kernel now says ``Trying to load\ldots''
-instead of ``Try loading \ldots'' in one of its informal
-messages to match style of similar messages (\ghissue{107}).
-
-\verb|\DeclareErrorFont| would change the font size to 10\,pt which, when
-used in the wrong place, would make incorrect font settings in the document.
-This has now been fixed (\gnatsissue{4399}).
-
-The default action of the file \texttt{nfssfont.tex} was set to produce a
-font table, so that one can simply hit enter instead of having to write
-\verb=\table\bye=.
-
-The \LaTeX{} kernel now provides dummy (empty) definitions for the two
-commands \verb|\conditionally at traceoff| and
-\verb|\conditionally at traceon| from the \texttt{trace} package so they
-can be used by package developers without worrying about them being
-defined or not (\ghissue{164}).
-
-
-
-
-
-\section{Changes introduced in 2018-12-01}
-
-Further additions to the characters supported by default in UTF-8.
-The commands \verb|\guillemetleft| and \verb|\guillemetright| are
-provided as alias for the names based on the Adobe font names
-(\ghissue{65}).
-
-The use of potrusion in tables of contents is suppressed by default,
-see \sxquestion{172785}.
-
-The handling of visible space in verbatim was adjusted for
-\ghissue{69} and \ghissue{70}.
-
-Spaces are removed from the argument passed to BiBTeX, \ghissue{88}.
-
-New commands \verb|\Hwithstroke| and \verb|\hwithstroke| added to T1 encoding support.
-
-The internal box structure for floats is adjusted to preserve box
-levels of split hyperlinks, avoiding a fatal pdftex error. \ghissue{94}.
-
-
-\section{Changes  introduced in 2018-04-01 patch~5}
-Improved support for non ASCII filenames on the command line on
-filesystems using legacy encodings.
-
-Adjusted the new package rollback code so that some edge cases where rollback
-can not be guaranteed become a warning not an error.
-
-\section{Changes  introduced in 2018-04-01 patch~4}
-No changes to the format, but \texttt{docstrip} adjusted so that non-ASCII
-\texttt{.ins} files work with the new UTF-8 defaults.
-
-\section{Changes  introduced in 2018-04-01 patch~3}
-Additional adjustments for GitHub issues \ghissue{34} and \ghissue{38}, adjustment to the
-location of some documentation files, such as \texttt{source2e.tex} to
-be installed in the documentation sources not the default \TeX\ input
-tree.
-
-
-\section{Changes  introduced in 2018-04-01 patch~2}
-Additional adjustments for GitHub issues  \ghissue{32} and  \ghissue{33}.
-
-\section{Changes  introduced in 2018-04-01 patch~1}
-Make \verb|\UseRawInputEncoding| and \Lpack{latexrelease} reset \verb|\inputencodingname|
-when disabling the UTF-8 input handling.
-
-\section{Changes  introduced in 2018-04-01}
-Further details of changes at this release are given in \ltnewsissue{28}, but in brief
-the main changes are as listed below.
-
-The default encoding for files has been changed to UTF-8.
-
-A new possibility to refer to older versions of packages has been added.
-
-New commands previously available in \Lpack{remreset} and
-\Lpack{chngcntr} packages for controlling counters have been added.
-
-The definition of \verb|\@ifundefined| has been refined to use the e-\TeX \verb|\ifcsname|
-primitive when available, and to avoid defining the command being tested to be \verb|\relax|
-in the case that it was previously undefined.
-
-\section{Changes  introduced in 2017-04-15}
-Optionally, \LaTeX{} format and package dates may use ISO style dates with
-\texttt{-}  rather than \texttt{/}.
-
-For Unicode \TeX{}s, made further adjustments to the composite accent
-code in \texttt{tuenc.def}, and further updates tracking changes in
-Lua\TeX, now at 1.04.
-
-Previously defining an encoding-specific composite with an undeclared
-accent (or an accent declared later) gave no error, but did nothing useful.
-\LaTeX\ will now detect this and give the accent command a default definition
-as an error, allowing the declared composite to work as intended.
-
-The definition of \verb|\-| is adjusted to match the comments in
-\gnatsissue{3855} to accommodate non standard settings of \verb|\hyphenchar|.
-
-In parboxes and similar settings, \verb|\lineskiplimit| is now
-reset (to the existing default value, \verb|\normallineskiplimit|).
-See \sxanswer{359934}.
-
- The code for \verb|\newpage| has been adjusted to add a test on the value of
-\verb|\prevdepth| so that the depth of the last line is preserved in
-forced page breaks.
-
-\section{Changes  introduced in 2017/01/01 patch~3}
-Emergency patch to correct a typo in a change introduced in patch~2.
-
-\section{Changes  introduced in 2017/01/01 patch~2}
-More adjustments for TU encoding, allowing for characters missing in
-common system fonts. Additional \texttt{fd} files
-for Latin Modern variants are included in the documented sources.
-
-\section{Changes  introduced in 2017/01/01 patch~1}
-Fixes to TU encoding definitions for Lua\TeX\ and Xe\TeX.
-
-\section{Changes  introduced in 2017/01/01}
-
-A new test is added during format making that e\TeX\ extensions are
-available. As noted in \LaTeX\ news, e\TeX\ will now be required to
-build \LaTeX.
-
-Further updates tracking changes for Lua\TeX~1.0.
-
-The definition of \verb|\showhyphens| is changed in formats built
-with Xe\TeX, as the original version, inherited from plain \TeX\ does
-not work with Xe-\TeX.
-
-Changes to the default encoding used by Lua\TeX\ and Xe\TeX\ formats to
-be TU (Unicode) rather than OT1 (7 bit legacy \TeX\ encoding).
-
-\section{Changes  introduced in 2016/03/31 patch~3}
-Fixes to \verb|\newinsert| and \verb|\extrafloats|.
-
-\section{Changes  introduced in 2016/03/31 patch~2}
-Adjustments to \verb|\c{g}| in OT1 encoding.
-
-\section{Changes  introduced in 2016/03/31 patch~1}
-Adjust the upper limit for Character Class allocation in Xe-\TeX\ to
-4096 to match a change in Xe-\TeX.
-
-\section{Changes  introduced in 2016/03/31}
-Modify picture mode as suggested in latex/4452 to avoid leaders of
-almost zero length.
-
-Modify the checks in \verb|\DeclareMathSymbol| and related commands
-so that they do not give errors with new Lua\TeX\ releases.
-
-\section{Changes  introduced in 2016/02/01}
-Adjustments to Lua\TeX\ support to match changes to the Lua\TeX\ engine,
-and to the character class allocation in Xe\TeX.
-
-Load Unicode data from new generic \texttt{unicode-data} distribution.
-
-\section{Changes  introduced in 2015/10/01 patch~2}
-
-This release fixes the behavior of the allocation mechanism if the switch
-from the standard to extended pool takes place within a group.
-
-\section{Changes  introduced in 2015/10/01 patch~1}
-This release allows \Lpack{latexrelease} to revert the
-Lua\TeX{}-specific
-changes, in particular fixing an incorrect date in part of the mechanism and
-adding a method to disable callback management entirely.
-
-\section{Changes  introduced in \LaTeX\ 2015/10/01}
-
-\subsection{LuaTeX allocation}
-Almost all changes at this release relate to incorporating allocation macros for luatex into the format
-as done for etex and xetex in 2015/01/01. For details see |ltluatex.dtx| or \ltnewsissue{22}.
-|ltluatex.dtx| now forms a new chapter (N) in the documented sources, |source2e.tex|.
-
-
-\subsection{Increased number of floats}
-The default float list has been increased from 18 to 52 registers if
-e\TeX\ is available.
-The list can be increased further using |\extrafloats| however this
-default allocation uses classic registers below 256 so the registers are
-also available for |\newinsert| as described below.
-
-\subsection{Improved \texttt{\textbackslash newinsert}}
-The command |\newinsert| has been extended to take registers from the lists of free float
-registers once the classic register allocation is used up. This should make it highly unlikely
-to get ``no room'' errors on register allocation assuming the format is used with
-an e-\TeX\ based \TeX\ engine.
-
-\subsection{New accent, \texttt{\textbackslash textcommabelow} (pr/4414)}
-The command |\textcommabelow| has been added. This is mainly intended for Romanian letters
-\textcommabelow{S}\,\textcommabelow{s}\,\textcommabelow{T}\,\textcommabelow{t}.
-
-\subsection{Unicode 8}
-The file |unicode-letters.def| used to initialize character data in
-Unicode \TeX\ variants has been regenerated from data files updated
-to Unicode~8.
-
-\section{Changes  introduced in 2015/01/01 patch~2}
-There were no changes to the format at this release, but the sources were fixed to fix bug latex/4434
-affecting bottom float positioning if the \Lpack{latexrelease} package was used.
-
-\section{Changes  introduced in 2015/01/01 patch~1}
-This release re-introduces the ``Patch Level'' scheme for identifying
-releases between main ``dated'' releases. Early \LaTeXe\ releases
-included a mechanism whereby updates could be provided by a
-\emph{patch
-  file}. This was mainly intended to allow updates to be made without
-downloading the full sources again, which was an important
-consideration with download speeds and costs at the time.
-
-The new mechanism incorporates any changes directly into the sources,
-but having the patch level identified in the banner allows the
-\LaTeX\ release to be identified, even if (as in this case) most of the
-changes do not affect the format but affect other base packages such
-as \Lpack{latexrelease} and \Lpack{inputenc}. The patch level is shown
-in the banner at the start of the job, but does not affect the date
-handling of the |\IncludeInRelease| mechanism.
-
-Apart from re-arranging the version banner, the only change in the
-format is that |\newtoks| was accidentally defined twice, using the
-old and new allocation scheme described in Section \ref{e at alloc}.
-The old definition is now only in the \Lpack{latexrelease} package,
-for use when emulating old formats.
-
-
-
-
-\section
-[Changes between  \LaTeX\ releases 2014/05/01 and 2015/01/01]
-{Changes between \LaTeX\ releases 2014/05/01 and 2015/01/01\footnote{Much of this text
-is taken from \Lpack{fixltx2e} package which was formerly used to make such changes available separately.}}
-
-\subsection{Support for \LaTeX\ version changes}
-\DescribeMacro{\includeInRelease}\arg{date}\oarg{date}\arg{label}\arg{message}\arg{code}
-
-\smallskip
-
-The |\includeInRelease| command has been added to support backward and
-forward compatibility for the \LaTeX\ format. It supports the
-declaration of conditional code that can be loaded based on options
-given to the \Lpack{latexrelease} package. Its use is described in
-detail in the \Lpack{latexrelease} package documentation.
-
-\subsection{New Allocation Code\label{e at alloc}}
-Previously |\newcount| and related commands were based on classic TeX
-and only allocated in the range 0--255. This was extended (in
-different ways) for e-\TeX\ in the |etex| package and in the
-|xelatex.ini| and |lualatex.ini| files used in those formats. Related
-to this the number of boxes allocated to store floats was
-limited. This was extended to a certain extent in the |morefloats|
-package (by Don Hosek and H.-Martin Muench) but the new allocation
-incorporates float allocation directly and supports much larger float
-lists using the extended registers.
-
-The new code allocates registers in the full extended range (
-$2^{15}-1$ for etex and xelatex, $2^{16}-1$ for lualatex.
-In addition a new command |\extrafloats| is provided.
-
-\DescribeMacro{\extrafloats}\arg{number}
-\smallskip
-
-This allocates additional registers for the \LaTeX\ float system to
-hold figures and tables etc. Similar functionality has been
-available via the \Lpack{morefloats} package but this is a different
-implementation using extended e-\TeX\ registers when available so
-allows many more registers to be reserved for floats as they are
-allocated from a pool of 32 or 64 thousand rather than 256 registers,
-depending on the engine in use.
-
-\DescribeMacro{\newmarks}\arg{command}
-\smallskip
-
-e-\TeX\ only, previously available via the \Lpack{etex} package.
-Allocates commands to use the extended  e-\TeX\ mark mechanism.
-
-\DescribeMacro{\newXeTeXintercharclass}\arg{command}
-\smallskip
-
-Xe-\TeX\ only, previously in the Xe-\LaTeX\ format, but added via
-|xelatex.ini| not part of the core release.
-Allocates commands to use the Xe-\TeX\ character class mechanism.
-
-
-\subsection{e-\TeX\ tracing if available}
-|\loggingall| (Usually used via |\tracingall|) is extended to enable
-additional e-\TeX\ tracing if e-\TeX\ is available. (|\tracingall|
-extension has been available as part of the |etex| package previously).
-
-Also based on code from the |etex| package, a command |\tracingnone|
-is added to reverse the effects of |\tracingall| and turn off all primitive
-\TeX\ tracing. A new command |\hideoutput| has been  added which resets the
-tracing parameters set by |\showoutput|.
-
-
-
-
-\subsection{\texttt{\textbackslash textsubscript} not defined in
-   latex.ltx (pr/3492)}
-
-\begin{verbatim}
->>Number:         3492
->>Category:       latex
->>Synopsis:       \textsubscript not defined in latex.ltx
->>Arrival-Date:   Tue Jan 14 23:01:00 CET 2003
->>Originator:     Ionel Mugurel Ciobica
-
-I use \textsubscript much more often than \textsuperscript, and
-\textsubscript it is not defined in latex.ltx. Could you please
-consider including the definition of \textsubscript in the latex.ltx
-for the next versions of LaTeX.    Thank you.
-\end{verbatim}
-
-\subsection{\texttt{\textbackslash @} discards spaces when moving
-            (pr/3039)}
-
-\begin{verbatim}
->>Number:         3039
->>Category:       latex
->>Synopsis:       \@ discards spaces when moving
->>Arrival-Date:   Sat May 22 09:01:06 1999
->>Originator:     Donald Arseneau
->>Description:
-The \@ command expands to \spacefactor\@m in auxiliary files,
-which then ignores following spaces when it is reprocessed.
-\end{verbatim}
-
-\subsection{1-col fig can come before earlier 2-col fig
-           (pr/2346)}
-
-\begin{verbatim}
->>Number:         2346
->>Category:       latex
->>Synopsis:       2-col: 1-col fig can come before earlier 2-col fig
->>Arrival-Date:   Wed Dec 18 15:41:07 1996
->>Originator:     bil kleb
->>Description:
-as documented in Lamport's book, p. 198, concerning figure
-placement, "a figure will not be printed before an earlier
-figure, and a table will not be printed before an earlier
-table."  however, there is a footnote stating, "However,
-in two-column page style, a single-column figure can come before
-an earlier double-column figure, and vice versa."
-
-This twocolumn behavior is undesirable---at least by me and
-most professional organizations i publish in.  ed snyzter developed
-a hack fix for 2.09 several years ago which links the two
-counters, but i have not run across a similar "fix" for 2e...
-\end{verbatim}
-
-Originally fixed in package \Lpack{fix2col} which was merged into
-this package. Documentation and code from this package have been
-merged into this file.
-
-\subsubsection{Notes on the Implementation Strategy}
-
-The standard output routine maintains two lists of floats that have
-been `deferred' for later consideration. One list for single column
-floats, and one for double column floats (which are always
-immediately put onto their deferred list). This mechanism means
-that \LaTeX\ `knows' which type of float is contained in each box
-by the list that it is processing, but having two lists means
-that there is no mechanism for preserving the order between the
-floats in each list.
-
-The solution to this problem consists of two small changes to
-the output routine.
-
-Firstly, abandon the `double column float list' |\@dbldeferlist|
-and change every command where it is used so that instead the
-same |\@deferlist| is used as for single column floats.
-That one change ensures that double and single column floats
-stay in the same sequence, but as \LaTeX\ no longer `knows'
-whether a float is double or single column, it will happily
-insert a double float into a single column, overprinting the
-other column, or the margin.
-
-The second change is to provide an alternative mechanism for
-recording the two column floats. \LaTeX\ already has a compact
-mechanism for recording float information, an integer count register
-assigned to each float records information about the `type' of float
-`figure', `table' and the position information `htp' etc.
-
-The type information is stored in the `high' bits, one bit position
-(above `32') allocated to each float type. The `low' bits store
-information about the allowed positions, one bit each allocated for
-|h t b p|.  In the \LaTeX2.09 system, the bit corresponding to `16'
-formed a `boundary' between these two sets of information, and it
-was never actually used by the system. Ed Sznyter's
-\Lpack{fixfloats} package not unreasonably used this position to
-store the double column information, setting the bit for double
-column floats. Then at each point in the output routine at which a
-float is committed to a certain region, an additional check must be
-made to check that the float is (or is not) double column. If it
-spans the wrong number of columns it is deferred rather than being
-added.
-
-Unfortunately the bit `16' is not available in \LaTeXe. It is used
-to encode the extra float position possibility `|!|' that was added
-in that system. It would be possible to use position `32' and to
-move the flags for `table', `figure',\ldots\ up one position, to
-start at 64, but this would mean that in principle one less float
-type would be supported, and more importantly is likely to break
-any other packages that assume anything about the output routine
-internals. So here I instead use another mechanism for flagging
-double column floats: By default all floats have depth 0pt.
-This package arranges that double column ones have depth 1sp.
-This information may then be used in the same manner as in
-the \Lpack{fixfloats} package, to defer any floats that are not of
-the correct column spanning type.
-
-
-
-\subsection{Infinite glue found (pr/4023 and pr/2346)}
-
-The fix for pr/2346 did not work as intended when used in conjunction
-with |\enlargethispage| as the latter introduced an infinite negative
-glue at the bottom of the page. That in turn make a |\vsplit|
-operation to get at the column marks invalid.
-
-\subsection{Wrong header for twocolumn (pr/2613)}
-
-\begin{verbatim}
->>Number:         2613
->>Category:       latex
->>Synopsis:       wrong headline for twocolumn
->>Arrival-Date:   Mon Sep 22 16:41:09 1997
->>Originator:   Daniel Reischert
->>Description:
-When setting the document in two columns
-the headline shows the top mark of the second column,
-but it should show the top mark of the first column.
-\end{verbatim}
-
-Originally fixed in package \Lpack{fix2col} which was merged into
-this package. Documentation and code from this package have been
-merged into this file.
-
-\subsubsection{Notes on the Implementation Strategy}
-
-The standard \LaTeX\ twocolumn system works internally by making
-each column a separate `page' that is passed independently to \TeX's
-page breaker. (Unlike say the \Lpack{multicol} package, where all
-columns are gathered together and then split into columns later,
-using |\vsplit|.) This means that the primitive \TeX\ marks that are
-normally used for header information, are globally reset after the
-first column. By default \LaTeX\ does nothing about this.
-A good solution is provided by Piet van Oostrum (building on earlier
-work of Joe Pallas) in his \Lpack{fixmarks} package.
-
-After the first column box has been collected the mark information
-for that box is saved, so that any |\firstmark| can be
-`artificially' used to set the page-level marks after the second
-column has been collected. (The second column |\firstmark| is not
-normally required.) Unfortunately \TeX\ does not provide a direct
-way of knowing if any marks are in the page, |\firstmark| always has a
-value from previous pages, even if there is no mark in this page.
-The solution is to make a copy of the box and then |\vsplit| it
-so that any marks show up as |\splitfirstmark|.
-
-The use of |\vsplit| does mean that the output routine will globally
-change the value of |\splitfirstmark| and
-|\splitbotmark|. The \Lpack{fixmarks} package goes to some trouble
-to save and restore these values so that the output routine does
-\emph{not} change the values. This part of \Lpack{fixmarks} is not
-copied here as it is quite costly (having to be run on every page) and
-there is no reason why anyone writing code using |\vsplit| should
-allow the output routine to be triggered before the split marks have
-been accessed.
-
-
-
-\subsection{\texttt{\textbackslash setlength} produces error if
-  used with registers like \texttt{\textbackslash dimen0} (pr/3066)}
-
-\begin{verbatim}
->>Number:         3066
->>Category:       latex
->>Synopsis:       \setlength{\dimen0}{10pt}
->>Arrival-Date:   Tue Jul  6 15:01:06 1999
->>Originator:     Heiko Oberdiek
->>Description:
-The current implementation of \setlength causes an error,
-because the length specification isn't terminated properly.
-More safe:
-\def\setlength#1#2{#1=#2\relax}
-\end{verbatim}
-
-\subsection{Fewer fragile commands}
-
-\begin{verbatim}
->>Number:         3816
->>Category:       latex
->>Synopsis:       Argument of \@sect has an extra }.
->>Arrival-Date:   Sat Oct 22 23:11:01 +0200 2005
->>Originator:     Susanne Wunsch
-
-Use of a \raisebox in \section{} produces the error message
-mentioned in the subject.
-
-PR latex/1738 described a similar problem, which has been solved
-10 years ago. Protecting the \raisebox with \protect solved my
-problem as well, but wouldn't it make sense to have a similar fix
-as in the PR?
-
-It is particularly confusing, that an unprotected \raisebox in a
-\section*-environment works fine, while in a \section-environment
-produces error.
-\end{verbatim}
-
-While not technically a bug, in this day and age there are few
-reasons why commands taking optional arguments should not be robust.
-
-\subsubsection{Notes on the implementation strategy}
-
-Rather than changing the kernel macros to be robust, we have decided
-to add the macro \DescribeMacro{\MakeRobust}|\MakeRobust| in
-\Lpack{fixltx2e} so that users can easily turn fragile macros into
-robust ones. A macro |\foo| is made robust by doing the simple
-|\MakeRobust{\foo}|. \Lpack{fixltx2e} makes the following kernel
-macros robust: |\(|, |\)|, |\[|, |\]|,
- |\makebox|, |\savebox|,
-|\framebox|, |\parbox|, |\rule| and |\raisebox|.
-
-\ldots TODO \ldots  fleqn vesion of |\[\]|
-
-\subsection{\texttt{\textbackslash addpenalty} ruins flush-bottom (pr/3073)}
-
-\begin{verbatim}
->>Number:         3073
->>Category:       latex
->>Synopsis:       \addpenalty ruins flush-bottom
->>Arrival-Date:   Sat Jul 17 05:11:05 1999
->>Originator:     Donald Arseneau
->>Description:
-Just to keep in mind for further development eh?
-A page break at an \addpenalty after \vspace does *not*
-give a flush-bottom page.  (The intent of \addpenalty is
-apparently just to preserve the flush bottom by putting
-the breakpoint `above' the skip.)
-\end{verbatim}
-
-\subsection{Within counters only reset next level down (pr4393)}
-
-This is actually implicitly documented behavior in the \LaTeX{}
-Manual that states that |\stepcounter| resets all counters marked
-``within''. However it means that if, for example, theorems are
-numbered within sections and you start a new chapter in a book, the
-section counter is reset to zero but the theorem counter is not
-until the first section appears. Thus a theorem directly within the
-chapter body (without a new section) would show an incremented
-number relative to the last theorem of the previous chapter.
-
-
-For this reason we are now resetting all levels of within in one go
-even if that means that some of these resets may happen several times
-unnecessarily.
-
-
-\subsection{Check the optional arguments of floats}
-
-By default LaTeX silently ignores unknown letters in the optional
-arguments of floats. |\begin{figure}[tB]| the |B| is ignored so it
-acts like |\begin{figure}[t]| However |\begin{figure}[B]| does
-\emph{not} act like |\begin{figure}[]| as the check for an empty
-argument, or unsupplied argument, is earlier. |[]| causes the
-default float placement to be used, but |[B]| means that \emph{no}
-float area is allowed and so the float will not be placed until the
-next |\clearpage| or end of document, no warning is given.
-
-This package adds a check on each letter, and if it not one of
-|!tbhp| then an error is given and the code acts as if |p| had been
-used, so that the float may be placed somewhere.
-
-\subsection{\texttt{\textbackslash DeclareMathSizes} only take pts.
-    (pr/3693)}
-
-\begin{verbatim}
->>Number:         3693
->>Category:       latex
->>Synopsis:       \DeclareMathSizes only take pts.
->>Arrival-Date:   Fri Jun 11 16:21:00 CEST 2004
->>Originator:     Morten Hoegholm
-
-The last three arguments of \@DeclareMathSizes cannot take a dimension
-as argument, making it inconsistent with the rest of the font changing
-commands and itself, as the second argument can take a dimension
-specification.
-\end{verbatim}
-
-\subsection{No hyphenation in first word after float environment (pr/3498)}
-
-\begin{verbatim}
->>Number:         3498
->>Category:       latex
->>Synopsis:       No hyphenation in first word after float environment
->>Arrival-Date:   Thu Jan 30 13:21:00 CET 2003
->>Originator:    Harald Harders
-
-If a float environment (figure, table) is written within a paragraph,
-the first word after the environment is not hyphenated.
-\end{verbatim}
-
-\subsection{\texttt{\textbackslash fnsymbol} should use text symbols
-    (pr/3400)}
-
-\begin{verbatim}
->>Number:         3400
->>Category:       latex
->>Synopsis:       \fnsymbol should use text symbols if possible
->>Arrival-Date:   Fri Jan 04 20:41:00 CET 2002
->>Originator:     Walter Schmidt
-
-The \fnsymbol command can be used in both text and math
-mode.  The symbols produced are, however, always taken from
-the math fonts.  As a result, they may not match the text
-fonts, even if the symbols are actually available, for
-instance from the TS1 encoding.  Since \fnsymbol is
-primarily used for footnotes in text, this should be fixed,
-IMO.
-\end{verbatim}
-
-
-
-
-
-\subsection{\texttt{\textbackslash footnotemark}[x] crashes with fixltx2e.sty
-   (pr/3752)}
-
-\begin{verbatim}
->>Number:         3752
->>Category:       tools
->>Synopsis:       feature \footnotemark[x] crashes with fixltx2e.sty
->>Arrival-Date:   Fri Dec 17 10:11:00 +0100 2004
->>Originator:     Stefan Pofahl
-
- If I use /fnsymbol together with fixltx2e.sty I can not use
- optional parameter [num]
- \footnotemark[1] is not showing the mark number 1 but
- the mark \value{footnote}.
-\end{verbatim}
-This bug was related to pr/3400, where |\@fnsymbol| was made robust.
-
-\subsubsection{Notes on the implementation strategy}
-
-Pr/3400 made |\@fnsymbol| decide between text-mode and math-mode,
-which requires a certain level of robustness somewhere as the
-decision between text and math must be made at typesetting time and
-not when inside |\protected at edef| or similar commands. One way of
-dealing with this is to make sure the value seen by |\@fnsymbol| is
-a fully expanded number, which could be handled by code such as
-\begin{verbatim}
-\def\fnsymbol#1{\expandafter\@fnsymbol
-  \expandafter{\the\csname c@#1\endcsname}}
-\end{verbatim}
-This would be a good solution if everybody used the high level
-commands only by writing code like |\fnsymbol{footnote}|. Unfortunately
-many classes (including the standard classes) and packages use the
-internal forms directly as in |\@fnsymbol\c at footnote| so the easy
-solution of changing |\fnsymbol| would break code that had worked for
-the past 20~years.
-
-Therefore the implementation here makes |\@fnsymbol| itself a
-non-robust command again and instead uses a new robust command
-\DescribeMacro{\TextOrMath}|\TextOrMath|, which will take care of
-typesetting either the math or the text symbol. In order to do so,
-we face an age old problem and unsolvable problem in \TeX: A
-reliable test for math mode that doesn't destroy
-kerning. Fortunately this problem can be solved when using e\TeX\ so
-if you use this as engine for your \LaTeX\ format, as recommended by
-the \LaTeX\ Project, you will get a fully functioning |\TextOrMath|
-command with no side effects. If you use regular \TeX\ as engine for
-your \LaTeX\ format then we have to choose between the lesser of two
-evils: 1)~breaking ligatures and preventing kerning or 2)~face the
-risk of choosing text-mode at the beginning of an alignment cell,
-which was supposed to be math-mode. We have decided upon 1) as is
-customary for regular robust commands in \LaTeX.
-
-
-
-\end{document}

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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/lb2.err	2022-01-13 21:03:32 UTC (rev 61598)
@@ -419,7 +419,7 @@
 2006/04 & Jens Mandavid & 121 \\
 2006/10 & Ralf Heckmann & 61  \\
 2008/04 & --- \\
-\ldots & Termin einer weiteren Verlosung offen
+\ldots & keine weitere Verlosung
 %2008/10 & \\
 \end{tabular}
 \end{center}

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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/lgc2.err	2022-01-13 21:03:32 UTC (rev 61598)
@@ -10,7 +10,7 @@
 %
 % The current version of this file can be found at:
 %
-%    https://www.latex-project.org/guides/books.html
+%    https://www.latex-project.org/help/books
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
@@ -351,12 +351,12 @@
 you own by changing the configuration in the file \texttt{\jobname.cfg}.
 
 \begin{center}
-  \Large \bfseries  To Err is Human --- Bug Contest
+  \Large \bfseries  To Err is Human --- Bug Contest (no longer open)
 \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
-periods) to the eligible person who finds the largest
+For this reason Addison-Wesley and the authors offer a prize 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).
 A person can receive at most one prize, ever; errors found by any of
@@ -378,7 +378,7 @@
 Contest period ends & Winner \\[4pt]
 2008/05 & Milan Vujtek            &  16 suggestions\\
 2010/05 &                         & \\
-\ldots
+\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/ltcmdhooks-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltcmdhooks-doc.tex	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltcmdhooks-doc.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -2,5 +2,6 @@
 
 \AtBeginDocument{\OnlyDescription
                  \let\tableofcontents\relax
+                  \RenewCommandCopy\MaybeStop\StopEventually
                  }
 \input{ltcmdhooks.dtx}

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/ltfilehook-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltfilehook-doc.tex	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltfilehook-doc.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,5 +3,6 @@
 
 \AtBeginDocument{\OnlyDescription
 %                 \let\tableofcontents\relax
+                  \RenewCommandCopy\MaybeStop\StopEventually
                  }
 \input{ltfilehook.dtx}

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/lthooks-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/lthooks-doc.tex	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/lthooks-doc.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,5 +3,6 @@
 
 \AtBeginDocument{\OnlyDescription
 %                 \let\tableofcontents\relax
+                  \RenewCommandCopy\MaybeStop\StopEventually
                  }
 \input{lthooks.dtx}

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/ltluatex.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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -38,9 +38,9 @@
 
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesFile{ltnews.tex}%
-  [2021/06/07 v1.4d Master file for ltnews*.tex (LaTeX Project)]
+  [2021/11/12 v1.4d Master file for ltnews*.tex (LaTeX Project)]
 
-\providecommand*{\lastissue}{34}
+\providecommand*{\lastissue}{35}
 
 \InputIfFileExists{ltnews-lastissue.cfg}{}{}
 
@@ -222,7 +222,11 @@
                 \def\y{|multicol}%
                 \ifx\x\y
                 \else
-                  \@latex at error{ltnews.tex: \string\usepackage[#1]{#2} found}\@ehc
+                  \def\y{|color}%
+                  \ifx\x\y
+                  \else
+                    \@latex at error{ltnews.tex: \string\usepackage[#1]{#2} found}\@ehc
+                  \fi
                 \fi
               \fi
             \fi

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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews01.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews02.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews03.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews04.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews05.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews06.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews07.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews08.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews09.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews10.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews11.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews12.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews13.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews14.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews15.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews16.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews17.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews18.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews19.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

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

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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews22.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2015-2021
+% Copyright (C) 2015-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews23.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2015-2021
+% Copyright (C) 2015-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews24.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2015-2021
+% Copyright (C) 2015-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews25.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2016-2021
+% Copyright (C) 2016-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews26.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2017-2021
+% Copyright (C) 2017-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews27.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2017-2021
+% Copyright (C) 2017-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews28.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2017-2021
+% Copyright (C) 2017-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews29.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2018-2021
+% Copyright (C) 2018-2022
 % 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/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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews34.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -493,8 +493,9 @@
 This optional argument 
 specifies the format of the counter, such as \cs{roman};
 the default value is \cs{arabic}.
+Alternatively, you can use a starred form, in which case the format of the
+counter is not altered at all.
 
-
 \subsection{Tests for package and class loading}
 
 To test whether a package has been loaded you can now use \cs{IfPackageLoadedTF}
@@ -738,7 +739,7 @@
 \subsection{Use of \texttt{\textup{\#}} in \cs{textbf} and similar commands}
 Previously you could not use the macro parameter character \texttt{\#}
 in inline functions
-within the argument of \cs{texbf} or similar text font commands.
+within the argument of \cs{textbf} or similar text font commands.
 An internal definition is now guarded with \cs{unexpanded}
 so that the use of \texttt{\#} here no longer generates an error.
 %
@@ -783,7 +784,7 @@
 A \env{tabular} environment is typeset (internally) as an \env{array}
 environment with special settings, and it therefore uses (hidden) math mode. 
 Since it is not in fact a math formula, 
-no extra space from \cs{mathsuround} should be added 
+no extra space from \cs{mathsurround} should be added 
 (the spacing around the \env{tabular} should not get changed). 
 %
 Note that this bug has been present ``forever'', which shows that  \cs{mathsurround} 
@@ -830,7 +831,7 @@
 arguments; this could cause low-level errors in some cases. 
 The code has therefore now been changed to avoid these errors.
 %
-\sxissue{603948}
+\sxissue{q/603948}
 
 
 \medskip

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

Index: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews35.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews35.pdf	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews35.pdf	2022-01-13 21:03:32 UTC (rev 61598)

Property changes on: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews35.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews35.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltnews35.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltnews35.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -0,0 +1,583 @@
+% \iffalse meta-comment
+%
+% Copyright 2019-2021
+% The LaTeX Project and any individual authors listed elsewhere
+% in this file.
+%
+% This file is part of the LaTeX base system.
+% -——————————————
+%
+% It may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%    https://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008 or later.
+%
+% This file has the LPPL maintenance status "maintained".
+%
+% The list of all files belonging to the LaTeX base distribution is
+% given in the file `manifest.txt'. See also `legal.txt' for additional
+% information.
+%
+% The list of derived (unpacked) files belonging to the distribution
+% and covered by LPPL is defined by the unpacking scripts (with
+% extension .ins) which are part of the distribution.
+%
+% \fi
+% Filename: ltnews35.tex
+%
+% This is issue 35 of LaTeX News.
+
+\NeedsTeXFormat{LaTeX2e}[2020-02-02]
+
+\documentclass{ltnews}
+
+%%  Maybe needed only for Chris' inadequate system:
+\providecommand\Dash {\unskip \textemdash}
+
+%% NOTE:  Chris' preferred hyphens!
+%%\showhyphens{parameters}
+%%  \hyphenation{because parameters parameter}
+
+\usepackage[T1]{fontenc}
+
+\usepackage{lmodern,url,hologo}
+
+\usepackage{csquotes}
+\usepackage{multicol}
+\usepackage{color}
+
+\providecommand\hook[1]{\texttt{#1}}
+
+\providecommand\meta[1]{$\langle$\textrm{\itshape#1}$\rangle$}
+\providecommand\option[1]{\texttt{#1}}
+\providecommand\env[1]{\texttt{#1}}
+\providecommand\Arg[1]{\texttt\{\meta{#1}\texttt\}}
+
+
+\providecommand\eTeX{\hologo{eTeX}}
+\providecommand\XeTeX{\hologo{XeTeX}}
+\providecommand\LuaTeX{\hologo{LuaTeX}}
+\providecommand\pdfTeX{\hologo{pdfTeX}}
+\providecommand\MiKTeX{\hologo{MiKTeX}}
+\providecommand\CTAN{\textsc{ctan}}
+\providecommand\TL{\TeX\,Live}
+\providecommand\githubissue[2][]{\ifhmode\unskip\fi
+     \quad\penalty500\strut\nobreak\hfill
+     \mbox{\small\slshape(%
+       \href{https://github.com/latex3/latex2e/issues/\getfirstgithubissue#2 \relax}%
+          	    {github issue#1 #2}%
+           )}%
+     \par\smallskip}
+%% But Chris has to mostly disable \href for his TEXPAD app:
+%%  \def\href #1{}  % Only For Chris' deficient TeX engine
+
+% simple solution right now (just link to the first issue if there are more)
+\def\getfirstgithubissue#1 #2\relax{#1}
+
+\providecommand\sxissue[1]{\ifhmode\unskip\fi
+     \quad\penalty500\strut\nobreak\hfill
+     \mbox{\small\slshape(\url{https://tex.stackexchange.com/#1})}\par}
+
+\providecommand\gnatsissue[2]{\ifhmode\unskip\fi
+     \quad\penalty500\strut\nobreak\hfill
+     \mbox{\small\slshape(%
+       \href{https://www.latex-project.org/cgi-bin/ltxbugs2html?pr=#1\%2F\getfirstgithubissue#2 \relax}%
+          	    {gnats issue #1/#2}%
+           )}%
+     \par}
+
+\let\cls\pkg
+\providecommand\env[1]{\texttt{#1}}
+\providecommand\acro[1]{\textsc{#1}}
+
+\vbadness=1400  % accept slightly empty columns
+
+
+\makeatletter
+% maybe not the greatest design but normally we wouldn't have subsubsections
+\renewcommand{\subsubsection}{%
+   \@startsection      {subsubsection}{2}{0pt}{1.5ex \@plus 1ex \@minus .2ex}%
+      {-1em}{\@subheadingfont\colonize}%
+}
+\providecommand\colonize[1]{#1:}
+\makeatother
+
+\let\finalvspace\vspace          % for document layout fixes
+
+% Undo ltnews's \verbatim at font with active < and >
+\makeatletter
+\def\verbatim at font{%
+  \normalsize\ttfamily}
+\makeatletter
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\providecommand\tubcommand[1]{}
+\tubcommand{\input{tubltmac}}
+
+\publicationmonth{June}
+\publicationyear{2022  --- DRAFT version for upcoming release}
+
+\publicationissue{35}
+
+\begin{document}
+
+\tubcommand{\addtolength\textheight{4.2pc}}   % only for TUB
+
+\maketitle
+{\hyphenpenalty=10000 \spaceskip=3.33pt \hbadness=10000 \tableofcontents}
+
+\setlength\rightskip{0pt plus 3em}
+
+
+\medskip
+
+
+\section{Introduction}
+
+\section{Document metadata interface}
+
+Until recently there was no dedicated location to declare
+settings that affect a document as a whole. Settings had to be placed
+somewhere in the preamble or as class options or sometimes even as
+package options. For some such settings this may cause issues, e.g.,
+setting the PDF version is only possible as long as the PDF output
+file has not yet been opened which can be caused by loading one or the
+other package.
+
+For the \enquote{\LaTeX{} Tagged PDF project}~\cite{35:blueprint}
+further metadata about the whole document (and its processing) need to
+be specified and again this data should be all placed in a single
+well-defined place.
+
+For this reason we introduce the new command \cs{DocumentMetadata} to
+unify all such settings in one place.  The command expects a key/value
+list that describes all document metadata for the current document. It
+is only allowed to be used at the very beginning of the document,
+i.e., the declaration has to be placed \emph{before}
+\cs{documentclass} and will issue an error if found later.
+
+
+At this point in time we only provide the bare command in the format,
+the actual processing of the key/value is defined externally and the
+necessary code will be loaded if the command is used. This scheme is
+chosen for two reasons: by adding the command in the kernel it is
+available to everybody without the need to load a special package
+using \cs{RequirePackage}. The actual processing, though, is external
+so that we can easily extend the code (e.g., offering additional keys
+or changing the internal processing) while the above mentioned project
+is progressing. Both together allows users to immediately benefit from
+intermediate results produced as part of the project, as well as
+offering the \LaTeX{} Project Team the flexibility to enable such
+intermediate results (for test purposes or even production use)
+in-between and independently of regular \LaTeX{} releases. Over time,
+tested and approved functionality can then seamlessly move into the
+kernel at a later stage without any alterations to documents already
+using it. At the same time, not using the new consolidated interface
+means that existing documents are in no way affected by the work that
+is carried out and is in a wider alpha or beta test phase.
+
+Documentation about the new command and
+already existing keys are in \file{l3meta.pdf} and \file{documentmetadata-support.pdf}
+and also in the documentation of the \pkg{pdfmanagement-testphase} package.
+
+
+\section{The \pkg{latex-lab} bundle}
+
+\emph{write about it}
+
+
+
+
+\section{New or improved commands}
+
+\subsection{A kevyal approach to option handling}
+
+The classical \LaTeXe{} method for handling options, using \cs{ProcessOptions},
+treats each entry in the list as a string. Many package authors have sought to
+extend this handling by treating each entry as a key--value pair (keyval)
+instead. To-date, this has required the use of additional packages, for example
+\pkg{kvoptions}.
+
+The \LaTeX{} team have for some time offered the package \pkg{l3keys2e} to
+allow keyvals defined using the L3 programming layer module \pkg{l3keys} to act
+as package options. This ability has now been integrated directly into the
+kernel. As part of this integration, the syntax for processing keyval options
+has been refined, such that
+\begin{verbatim}
+\ProcessKeyOptions
+\end{verbatim}
+will now automatically pick up the package name as the key \emph{family},
+unless explicitly given as an optional argument.
+\begin{verbatim}
+\ProcessKeyOptions[family]
+\end{verbatim}
+A version which does not consider global options,
+\cs{ProcessKeyPackageOptions}, is also available.
+
+To support creating key options in for this mechanism, the new command
+\cs{DeclareKeys} has been added. This works using the same general
+approach as \pkg{l3keys} or \pkg{pgfkeys}: each key has one or more
+\emph{properties} which define its behavior.
+
+Options for packages which use this new approach will not be checked for
+clashes by the kernel. Instead, each time a \cs{usepackage} or
+\cs{RequirePackage} line is encountered, the list of options given will be
+passed to \cs{ProcessKeyPackageOptions}. Options which can only be given
+the first time a package is loaded can be marked using the property
+\texttt{.usage = load}, and will result in a warning if used in a subsequent
+package loading line.
+
+Package options defined in this way can also be set within a package using
+the new command \cs{SetKeys}, which again takes an optional argument
+to specify the \emph{family}, plus a mandatory one for the options themselves.
+
+\subsection{Floating point and integer calculations}
+
+The L3 programming layer offers expandable commands for calculating
+floating point and integer values, but so far these functions have
+only been available to programmers, because they require
+\cs{ExplSyntaxOn} to be in force. To make them easily available at the
+document-level, the small package \pkg{xfp} defined \cs{fpeval} and
+\cs{inteval}.
+
+
+An example of use could be the following:
+\begin{verbatim}
+\LaTeX{} can now compute:
+\[ \frac{\sin (3.5)}{2} + 2\cdot 10^{-3}
+    = \fpeval{sin(3.5)/2 + 2e-3}         \]
+\end{verbatim}
+which produces the following output:
+\begin{quote}
+\LaTeX{} can now compute:
+\[ \frac{\sin (3.5)}{2} + 2\cdot 10^{-3}
+   = \fpeval{sin(3.5)/2 + 2e-3}         \]
+\end{quote}
+These two commands have now been moved into the kernel and in addition
+we also provide \cs{dimeval} and \cs{skipeval}. The details of their
+syntax are described in \file{usrguide3.pdf}.  The command \cs{fpeval}
+offers a rich syntax allows for extensive calculations whereas the
+other three commands are essentially thin wrappers for \cs{numexpr},
+\cs{dimexpr}, and \cs{glueexpr} \Dash therefore inheriting some syntax
+peculiars and limitations in expressiveness.
+\begin{verbatim}
+\newcommand\calulateheight[1]{%
+  \setlength\textheight{\dimeval{\topskip
+        + \baselineskip * \inteval{#1-1}}}}
+\end{verbatim}
+The above, for example, calculates the appropriate \cs{textheight} for
+a given number of text lines.
+%
+\githubissue{711}
+
+
+\subsection{CamelCase commands for changing arguments to csnames}
+
+It is sometimes helpful to \enquote{construct} a command name on the
+fly rather than providing it as a single \cs{...} token. For these
+kind of tasks the \LaTeX3 programming layer offers a general mechanism
+(in form of \cs{exp\_args:N...} and
+\cs{cs\_generate\_variant:Nn}). However, when declaring new
+document-level commands with \cs{NewDocumentCommand} or
+\cs{NewCommandCopy}, etc.\ the L3 programming layer may not be active,
+and even if it is, mixing CamelCase syntax with L3 programming syntax
+is not really a good approach. We have therefore added the commands
+\cs{UseName} and \cs{ExpandArgs} to assist in such
+situations, e.g.,
+\begin{verbatim}
+\NewDocumentCommand\newcopyedit{mO{red}}
+  {\newcounter{todo#1}%
+   \ExpandArgs{c}\NewDocumentCommand{#1}{s m}%
+     {\stepcounter{todo#1}%
+      \IfBooleanTF {##1}%
+         {\todo[color=#2!10]%
+            {\UseName{thetodo#1}: ##2}}%
+         {\todo[inline,color=#2!10]%
+            {\UseName{thetodo#1}: ##2}}%
+     }%
+  }
+\end{verbatim}
+which provides a declaration mechanism for copyedit commands, so that
+\verb=\newcopyedit{FMi}[blue]= then defines \cs{FMi} (and the
+necessary counter).
+
+The command \cs{ExpandArgs} can be useful with the argument \texttt{cc} or
+\texttt{Nc} in
+combination with \cs{NewCommandCopy} if the old or new command name
+or both need constructing. Finally, there is \cs{UseName} which
+takes its argument and turns it into a command (i.e., a CamelCase
+version of \cs{@nameuse} (\LaTeXe) or \cs{use:c} (L3 programming
+layer)) which was also used in the example above.
+%
+\githubissue{735}
+
+
+
+\subsection{???}
+%
+\githubissue{???}
+
+
+\section{Code improvements}
+
+\subsection{\class{ltxdoc} gets a \option{nocfg} option}
+
+The \LaTeX{} sources are formatted with the \class{ltxdoc} class,
+which supports loading a local config file \file{ltxdoc.cfg}. In the
+past the \LaTeX{} sources used such a file but it was not distributed.
+As a result reprocessing the \LaTeX{} sources elsewhere showed
+formatting changes.  We now distribute this file which means that it
+is loaded by default. With the option \option{nocfg} this can be
+prevented.
+
+
+\subsection{\pkg{doc} upgraded to version~3}
+
+After roughly three decades the \pkg{doc} package gets a cautious
+uplift, as already announced at the TUG conference 2019\Dash changes
+to \pkg{doc} are obviously always done in a leisurely manner.
+
+Given that most documentation is nowadays viewed on screen,
+\pkg{hyperref} support is added and by default enabled (suppress it
+with option \option{nohyperref} or alternatively with
+\option{hyperref}\texttt{=false}) so the internal cross-reference are
+properly resolved including those from the index back into the
+document.
+
+Furthermore, \pkg{doc} has now a general mechanism to define
+additional \enquote{doc} elements besides the two \texttt{Macro} and
+\texttt{Env} it did know in the past. This enables better
+documentation because you can now clearly mark different types of
+objects instead of simply calling them all \enquote{macros}.
+If desired, they can be collected together under a heading
+in the index so that you have a section just with your document
+interface commands, or with all parameters, or \ldots
+
+The code borrows ideas from Didier Verna's \pkg{dox} package (although
+the document level interface is different) and it makes use of Heiko
+Oberdiek's \pkg{hypdoc} package, which at some point in the future
+will be completely integrated, given that its whole purpose it to
+patch \pkg{doc}'s internal commands to make them \pkg{hyperref}-aware.
+
+All changes are expected to be upward compatible, but if you run into
+issues with older documentation using \pkg{doc} a simple and quick
+solution is to load the package as follows:
+\verb/\usepackage{doc}[=v2]/
+
+\subsection{\pkg{doc} can now show dates in change log}
+
+Up to now the change log was always sorted by version numbers
+(ignoring the date that was given in the \cs{changes} command).  It
+can now be sorted by both version and date if you specify the option
+\option{reportchangedates} on package level and in that case the
+changes are displayed with
+\begin{quote}
+  \meta{version} -- \meta{date}
+\end{quote}
+as the heading (instead of just \meta{version}), when using
+\cs{PrintChanges}.
+%
+\githubissue{gh/531}
+
+
+
+\subsection{Lua\TeX\ callback improvements}
+
+The Lua\TeX\ callbacks \texttt{hpack\_quality} and \texttt{vpack\_quality} are
+now \texttt{exclusive} and therefore only allow a single handler.
+The previous type \texttt{list} resulted in incorrect parameters when multiple
+handlers were set, therefore this only makes an existing restriction more
+explicit.
+
+Additionally the return value \texttt{true} for \texttt{list}
+callbacks is now handled internally and no longer passed on to the
+engine. This simplifies the handling of these callbacks and makes it
+easier to provide consistent interfaces for user defined \texttt{list}
+callbacks.
+
+
+\subsection{Class \class{proc} supports \option{twoside}}
+
+The document class \class{proc}, which is a small variation on the
+\class{article} class, now supports the \option{twoside} option
+displaying different data in the footer line on recto and verso pages.
+%
+\githubissue{gh/704}
+
+
+\subsection{Croatian character support}
+
+The default \pkg{inputenc} support has been extended to support the 9 characters
+D\v Z, D\v z, d\v z, LJ, Lj, lj, NJ, Nj, nj, input as single UTF-8 codepoints
+in the range U+01C4 to U+01CC.
+%
+\githubissue{gh/723}
+
+
+\subsection{Cleanup of the Unicode declaration interface}
+
+When declaring encoding specific commands for the Unicode (TU)
+encoding some declarations (e.g., \cs{DeclareUnicodeComposite}) do not
+have an explicit argument for the the encoding name, but instead use
+the command \cs{UnicodeEncodingName} internally. There was one
+exception though: \cs{DeclareUnicodeAccent} required an explicit
+encoding argument.  This inconsistency has now been removed and the
+encoding name is always implicit. To avoid a breaking change for a few
+packages on CTAN \cs{DeclareUnicodeAccent} still accepts three
+arguments if the second argument is \texttt{TU} or
+\cs{UnicodeEncodingName}. Once all packages have been updated this
+code branch will get removed.
+
+At the same time we added \cs{DeclareUnicodeCommand} and
+\cs{DeclareUnicodeSymbol} for consistency. They also use
+\cs{UnincodeEncodingName} internally, instead of requiring an encoding
+argument as their general purpose counterparts do.
+%
+\githubissue{253}
+
+
+
+\subsection{???}
+%
+\githubissue{???}
+
+
+\section{Bug fixes}
+
+\subsection{Using \cs{DeclareUnicodeCharacter} with C1 control points}
+An error in the UTF-8 handling for non-Unicode \TeX, has prevented
+\cs{DeclareUnicodeCharacter} being used with characters in the range
+hex 80 to 9F, this has been corrected in this release.
+%
+\githubissue{730}
+
+
+
+\subsection{Fix \cs{ShowCommand} when used with \pkg{ltcmd}}
+
+When \cs{ShowCommand} support was added for \pkg{ltcmd} in the previous
+release~\cite{35:ltnews34}, a blunder in the code made it so that
+when \cs{ShowCommand} was used on a command defined with \pkg{ltcmd}, it
+only printed the meaning of the command in the terminal, but didn't stop
+for interaction as it does elsewhere (mimicking \cs{show}).  The issue
+is now fixed.
+%
+\githubissue{739}
+
+
+
+
+\section{Changes to packages in the \pkg{amsmath} category}
+
+\subsection{???}
+%
+\githubissue{???}
+
+
+\section{Changes to packages in the \pkg{graphics} category}
+
+\subsection{Color in formulas}
+
+While it is possible to color parts of a formula using \cs{color}
+commands the approach is fairly cumbersome. For example, to color an
+summation sign, but not its limits, you need four \cs{color} commands and
+some seemingly unnecessary set of braces to get coloring and spacing
+right:
+\begin{verbatim}
+\[ X = \color{red} \sum
+% without {{ the superscript below is misplaced
+                    _{{\color{black} i=1}}
+% without {{ the \sum is black
+                    ^{{\color{black} n}} 
+   \color{black}    % without it the x_i is red
+   x_i           \]
+\end{verbatim}
+Leave out any of the \cs{color} commands or any of the \verb={{...}}=
+will give you a wrong result instead of the desired
+\[ X = \color{red} \sum
+    _{{\color{black} i=1}} % without {{ the superscript is misplaced
+    ^{{\color{black} n}}   % without {{ the \sum is black
+   \color{black}           % without it the x_i is red
+   x_i
+\]
+So even if this is possible, it is not a very practical solution and
+furthermore there are a number of cases where it is impossible to
+color a certain part of a formula, for example, an opening symbol such
+as \verb=\left(= but not the corresponding \verb=\right)=.
+
+We have therefore added the command \cs{mathcolor} to the \pkg{color}
+and \pkg{xcolor} package, which has the same syntax as \cs{textcolor},
+but is specially designed for use in math and handles sub and
+superscripts and other aspects correctly and preserves correct
+spacing. Thus, the above example can now be written as
+\begin{verbatim}
+\[ X = \mathcolor{red}{\sum}_{i=1}^n x_i \]
+\end{verbatim}
+For details and further examples, see \file{mathcolor.pdf}.
+
+
+\subsection{???}
+%
+\githubissue{???}
+
+
+
+\section{Changes to packages in the \pkg{tools} category}
+
+\subsection{\pkg{multicol}: Fix \cs{newcolumn}}
+
+The recently added \cs{newcolumn} didn't work properly if used in
+vertical mode, where it behaved like \cs{columnbreak}, i.e., spreading
+the column material out instead running the column short.
+%
+\sxissue{q/624940}
+
+
+\subsection{\pkg{bm}: Fix for \pkg{amsmath} operators}
+
+An internal command used in the definition of operator commands such
+as \cs{sin} in \pkg{amsmath} has been guarded in \cs{bm} to prevent
+internal syntax errors due to premature expansion.
+%
+\githubissue{744}
+
+
+
+\medskip
+
+\begin{thebibliography}{9}
+
+\fontsize{9.3}{11.3}\selectfont
+
+\bibitem{35:blueprint} Frank Mittelbach and Chris Rowley:
+  \emph{\LaTeX{} Tagged PDF \Dash A blueprint for a large project}.\\
+  \url{https://latex-project.org/publications/indexbyyear/2020/}
+
+\bibitem{35:source2e}
+  \emph{\LaTeX{} documentation on the \LaTeX{} Project Website}.\\
+  \url{https://latex-project.org/help/documentation/}
+
+\bibitem{35:ltnews31} \LaTeX{} Project Team:
+  \emph{\LaTeXe{} news 31}.\\
+  \url{https://latex-project.org/news/latex2e-news/ltnews31.pdf}
+
+\bibitem{35:ltnews32} \LaTeX{} Project Team:
+  \emph{\LaTeXe{} news 32}.\\
+  \url{https://latex-project.org/news/latex2e-news/ltnews32.pdf}
+
+\bibitem{35:ltnews33} \LaTeX{} Project Team:
+  \emph{\LaTeXe{} news 33}.\\
+  \url{https://latex-project.org/news/latex2e-news/ltnews33.pdf}
+
+\bibitem{35:ltnews34} \LaTeX{} Project Team:
+  \emph{\LaTeXe{} news 34}.\\
+  \url{https://latex-project.org/news/latex2e-news/ltnews34.pdf}
+
+\end{thebibliography}
+
+
+
+\end{document}


Property changes on: trunk/Master/texmf-dist/doc/latex-dev/base/ltnews35.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
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/ltpara-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltpara-doc.tex	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltpara-doc.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -2,5 +2,6 @@
 
 \AtBeginDocument{\OnlyDescription
                  \let\tableofcontents\relax
+                  \RenewCommandCopy\MaybeStop\StopEventually
                  }
 \input{ltpara.dtx}

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/ltshipout-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/ltshipout-doc.tex	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltshipout-doc.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,5 +3,6 @@
 
 \AtBeginDocument{\OnlyDescription
 %                 \let\tableofcontents\relax
+                  \RenewCommandCopy\MaybeStop\StopEventually
                  }
 \input{ltshipout.dtx}

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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/ltx3info.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % 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/manifest.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/manifest.txt	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/manifest.txt	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,5 +1,5 @@
 %
-% The following files form the LaTeX2e distribution of 2020-10-01
+% The following files form the LaTeX2e distribution
 %
 %
 % CONTENTS OF THE LaTeX DISTRIBUTION
@@ -11,10 +11,6 @@
 % README.md       --  The distribution guide. START BY READING THIS FILE
 % manifest.txt    --  This file.
 %
-% tex2.txt        --  Extras for installing LaTeX on TeX2.
-%
-% texpert.txt     --  Documentation for TeX experts.
-%
 % legal.txt       --  Copyright notice; warranty; copying conditions.
 % lppl.txt        --  The LaTeX Project Public License (current version).
 % lppl-1-0.txt    --  The LaTeX Project Public License (version 1.0).
@@ -72,6 +68,9 @@
 % ltnews30.tex    --  What was new in the release dated 2019/10.
 % ltnews31.tex    --  What was new in the release dated 2020/02.
 % ltnews32.tex    --  What was new in the release dated 2020/10.
+% ltnews33.tex    --  What was new in the release dated 2021/06.
+% ltnews34.tex    --  What was new in the release dated 2021/11.
+% ltnews35.tex    --  What was new in the release dated 2022/06.
 
 %
 % ltx3info.tex    --  Information about the LaTeX3 project.
@@ -139,6 +138,8 @@
 % lthooks.dtx     --  Hook management
 % ltfilehook.dtx  --  Hook management for file loading
 % ltshipout.dtx   --  Hook management for \shipout
+% ltcmdhooks.dtx  --  Hook management (generic) for commands
+% ltpara.dtx      --  Hook management for paragraphs
 %
 % Standard Classes:
 % -----------------
@@ -186,7 +187,7 @@
 % doc.dtx         --  Package for self documenting code.
 % docstrip.dtx    --  Module for removing comments.
 % ltxdoc.dtx      --  Class file for printing documentation.
-% doc-v3beta.sty  --  New version of doc, current for internal use only.
+% ltxdoc.cfg      --  config file to format the LaTeX sources.
 %
 %
 % Installation scripts for the various parts:

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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/modguide.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/source2e.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -264,6 +264,8 @@
 
  \DocInclude{ltpara}   % Paragraph hooks (L3 module)
 
+ \DocInclude{ltmeta}   % Document Metadara interface (L3 module)
+
  \DocInclude{ltspace}  % Spacing, line and page breaking.
 
  \DocInclude{ltlogos}  % Logos.
@@ -326,6 +328,8 @@
 
  \DocInclude{ltclass}  % Package & Class interface
 
+ \DocInclude{ltkeys}   % Key-based option management (L3 module)
+
  \DocInclude{ltfilehook}  % Hook management for files (L3 module)
 
  \DocInclude{ltshipout}% \shipout redefinition (L3 module)

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

Deleted: trunk/Master/texmf-dist/doc/latex-dev/base/tex2.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/tex2.txt	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/tex2.txt	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,83 +0,0 @@
-               LaTeX installation TeX2 information
-
-                       16 September 1995
-
-
-In order to make a LaTeX format and use it you need, in addition to
-the LaTeX source files, a TeX implementation.
-
-If your TeX is very old, prior to version TeX3, then certain features
-will be missing from your system. In particular, you will probably
-have no support for `8-bit' input and hyphenation of words with
-accented characters.
-
-Most (perhaps all) TeX implementations are available in versions that
-are at least as recent as TeX3 (released in 1989) so the best course
-of action is to update your TeX installation before building LaTeX.
-
-However, if you must for some reason make the LaTeX format by running
-the old TeX2 then it is necessary to have a `configuration file' named
-fonttext.cfg.  The existence of this file will prevent LaTeX trying to
-access 8-bit characters, which is not allowed in the old TeX2 version
-of TeX.
-
-If you fail to use such a configuration file, LaTeX will detect that it
-is running under TeX2 and stop with the following message (without
-making a format file):
-
-*************************************
-*
-* You MUST use a fonttext.cfg file!
-* As you are still using TeX2!!!!!!
-*
-* See the documentation file tex2.txt
-*
-*************************************
-
-
-There is more information about the file fonttext.cfg in the file
-cfgguide.tex; but for a minimal configuration that allows LaTeX to
-be built on TeX2, just do the following:
-
- * Copy the standard fonttext.ltx file to fonttext.cfg
- * Then edit the file fonttext.cfg as follows:
-   --  Change the \ProvidesFile call (see below).
-   --  Comment out all the lines referring to the `T1' encoding (but not
-       those referring to the `OT1' encoding).
-
-Thus the resulting file will look something like the following.
-
-%%% File: fonttext.cfg
-\ProvidesFile{fonttext.cfg}
-           [1995/06/05 v1.0 TeX2 text font setup]
-
-\input {OMLenc.def}
-%%%%% NOT FOR TeX2    \input  {T1enc.def}
-\input {OT1enc.def}       % <- should come after T1 for speed
-\input {OMSenc.def}
-\fontencoding{OT1}
-\DeclareFontEncodingDefaults{}{}
-%%%%% NOT FOR TeX2    \DeclareFontSubstitution{T1}{cmr}{m}{n}
-\DeclareFontSubstitution{OT1}{cmr}{m}{n}
-%%%%% NOT FOR TeX2    \input  {T1cmr.fd}
-\input  {OT1cmr.fd}
-\input {OT1cmss.fd}
-\input {OT1cmtt.fd}
-\DeclareErrorFont{OT1}{cmr}{m}{n}{10}
-\newcommand\rmdefault{cmr}
-\newcommand\sfdefault{cmss}
-\newcommand\ttdefault{cmtt}
-
-\newcommand\bfdefault{bx}
-\newcommand\mddefault{m}
-
-\newcommand\itdefault{it}
-\newcommand\sldefault{sl}
-\newcommand\scdefault{sc}
-\newcommand\updefault{n}
-
-\newcommand\encodingdefault{OT1}
-\newcommand\familydefault{\rmdefault}
-\newcommand\seriesdefault{\mddefault}
-\newcommand\shapedefault{\updefault}
-\endinput

Deleted: trunk/Master/texmf-dist/doc/latex-dev/base/texpert.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/texpert.txt	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/texpert.txt	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,210 +0,0 @@
-              LaTeX installation TeX expert information
-
-                        1 June 1997
-
-
-SUMMARY
-=======
-
-This document contains information about the LaTeX installation for
-TeX experts.  In particular it describes:
-
- * The checks performed by ltxcheck.tex
-
- * How to print the LaTeX source.
-
-For more general information, see install.txt.
-
-For information on configuring LaTeX see cfgguide.tex.
-
-
-THE LTXCHECK.TEX CHECKS
-=======================
-
-Here is a description of the checks run by ltxcheck.
-
-1) The \@currdir check.
-
-   It is useful for LaTeX to know the syntax for the `current directory
-   (or folder)', or `default directory', if  the operating system has
-   such a concept.
-
-   For example, file abc.tex in this directory, or folder, is specified
-   by:
-     ./abc.tex   on Unix and most DOS/OS2 TeX's,
-     []abc.tex   on VMS
-      :abc.tex   on a Macintosh.
-   The above possibilities will be found automatically during the
-   installation.  However, if none of these syntaxes works on your
-   system then the internal macro \@currdir will be set to be empty
-   and ltxcheck will report this.
-
-   If your system does have a notion of a current directory, you can
-   define \@currdir in the file texsys.cfg.
-
-   You could also report this to the latex-bug address, so that
-   later releases can automatically cope with your system.
-
-2) The file name parser check.
-   \filename at parse may be defined in texsys.cfg if the default
-   installation does not define a suitable parser. (In fact no widely
-   used TeX system should need such a re-definition as the standard
-   installation should correctly define this command for unix, dos,
-   atari, VMS, and Macintosh, at least.)
-   Because of differences in directory syntax, most features of this
-   command can not be checked in a portable way, however ltxcheck does
-   check that at least {article.cls} is correctly parsed as base name
-   article and extension cls.
-
-3) The \input at path check.
-
-   On some systems TeX cannot check whether a file exists before
-   trying to input it, unless the filename is expressed as a full path
-   name, including the directory.  On these systems LaTeX needs to be
-   given a list of directories in which to look for files; the
-   internal macro \input at path holds this information.
-
-   When run, ltxcheck will try to locate the file article.cls.
-   If it fails to find this file (and you have placed it in the
-   `standard input directory') then you must define \input at path in
-   the file texsys.cfg.
-
-   The files texsys.cfg and ltdirchk.dtx contain examples of how to do
-   this but only you know the directories and syntax that should be used
-   for your installation.
-
-   We hope to build up a better collection of examples in future
-   releases of LaTeX, as it is tested on more TeX systems.
-
-4) TeX version check.
-
-   The next check tests that you are running a recent version of TeX.
-   If ltxcheck reports that you have TeX2, then you should try to
-   upgrade TeX (and rebuild LaTeX) as soon as possible.  LaTeX may be
-   used with TeX2, but certain features will be missing and you will
-   not be able to use the new (8-bit) font families that are now
-   available. If you must stick with TeX2, please read the extra
-   information in the file tex2.txt.
-
-   If ltxcheck reports that your TeX version is older than 3.141, you
-   will see some strange messages during the installation.  This is
-   because earlier versions of TeX printed certain line-breaks in
-   messages on the terminal as `^^J' rather than starting a new line.
-
-   LaTeX will work round this bug and thus avoid `^^J' appearing in
-   error messages, but you should upgrade your TeX as soon as
-   possible, as other bugs have been fixed, not just line breaks in
-   messages.
-
-   At the present time (2005) the current TeX version is 3.141592.
-
-5) Fonts check.
-
-   Finally ltxcheck.tex tests to see if it can find a `representative
-   sample' of the fonts used by LaTeX.
-
-   Fonts that may cause problems are:
-   a) The circle fonts. These were renamed some years ago from circle*
-      to lcircle*, although some sites still have them under the old
-      name. Also the names are longer than 8 letters which may cause
-      some problems.
-   b) The `extra Computer Modern' fonts.  The American Mathematical
-      Society has extended the range of sizes available in the
-      Computer Modern fonts.  LaTeX now assumes that these extra cm
-      fonts are available.
-      The fonts are available from a CTAN archive, in the directory
-      ctan:macros/latex/fonts  or alternatively as part of the
-      AMS fonts collection, which also includes many useful
-      mathematical fonts.
-   c) The `T1 encoded Computer Modern' fonts.  This is the ec or dc font
-      collection. The new (1995) release 1.2 of the dc fonts changed
-      most of the file names.  For this reason the fd files such as
-      t1cmr.fd cannot be written to work with the dc fonts of different
-      releases.  LaTeX by default unpacks the fd files for the ec
-      dc fonts.
-      If you have an older release of the dc fonts and do not wish to
-      upgrade then you should unpack the necessary fd files by running
-      LaTeX on the file  olddc.ins (dc older than version 1.2) or
-      newdc.ins (version 1.2 and 1.3).
-      As the T1 fd files will have been used when making the format,
-      you must re-run  initex latex.ltx  to remake the format if you
-      update the fd files in this way.
-      Running ltxcheck will produce a ! BAD LaTeX2e system!! error
-      message if it detects that the `new' fd files are loaded into
-      the format, but only the old dc fonts are available, and vice
-      versa.
-      If the old fonts are detected, and the `old' fd files are loaded
-      then no error is generated, but a message suggesting that you
-      upgrade is produced.
-      The ec fonts are available from a CTAN archive, in the directory
-      ctan:fonts/ec .
-
-
-6) Files check.
-
-      Finally ltxcheck checks that the main TeX input files that LaTeX
-      will use when running documents (such as the article class file,
-      fd files, and main packages such as fontenc) are all available.
-
-
-DOCUMENTATION OF THE CODE
-=========================
-
-Most of the documentation is nowadays available as precomplied PDF
-files. This section describes how to produce typeset code
-documentation yourself from the source.
-
-To typeset a documented code file (a .dtx file) you simply run LaTeX
-on it. The file source2e.tex is a master file which produces the
-documented code for the whole LaTeX kernel (but not the standard
-packages, classes, or compatibility mode).  You need to have LaTeX2e
-installed before doing this.
-
-To configure the appearance of this documentation, you can use a
-ltxdoc.cfg file.  For example, putting the following line into this
-file will format the documentation for A4 paper:
-
-   \PassOptionsToClass{a4paper}{article}
-
-The doc package, which is used by the documentation files, writes
-index files and change-history files that can be processed by the
-program MakeIndex.  If this program is part of your TeX installation,
-you can get an index and history listing for a documentation file
-by running the .idx and .glo files through this program.
-
-For example, in Unix MakeIndex, you should say:
-
-   makeindex -s gind.ist FILENAME
-   makeindex -s gglo.ist -o FILENAME.gls FILENAME.glo
-
-source2e.tex needs a special source2e.ist file (in place of gind.ist).
-Running makeindex will produce some warning messages about ignored
-style specifiers; these can be safely ignored.
-
-See the comments at the end of source2e.tex for more information.
-
-
-CONFIGURING LaTeX
-=================
-
-In addition to the system-dependent customisation in texsys.cfg,
-various other parts of LaTeX can be configured to suit local needs.
-Further details can be found in the document cfgguide.tex.  We
-recommend that you install the standard system before attempting any
-further customisation.
-
-If you are thinking of making other changes to LaTeX, please read the
-document modguide.tex as it describes the precautions you need to take
-when making modifications in order to ensure that standard LaTeX
-remains a stable, maintainable system.
-
-
-FURTHER INFORMATION
-===================
-
-You will find further information about various aspects of LaTeX in
-the distributed files with names <*>guide.tex.  You will need
-to install the new version before you can typeset these files.
-
-
---- Copyright (C) 1995-2019 the LaTeX Project.  All rights reserved ---

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/tlc2.err
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/tlc2.err	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/tlc2.err	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,4 +1,4 @@
-\newcommand\erratafiledate{2014-09-30}
+\newcommand\erratafiledate{2022-01-03}
 
 \def\comando#1{\texttt{\string#1}}
 
@@ -852,6 +852,9 @@
 \erroronpage{116}{Footnote 1, line 1}{CBC}{2004/05/18}{2}
    Replace: ``I managed to confuse'' with ``we managed to confuse''.
 
+\erroronpage{117}{para 1,  l.1}{EOl}{2022/01/02}{}
+   Missing letter: ``to cho\u{o}se'' 
+
 \erroronpage{117}{para 2, l.2}{HjG}{2004/05/25}{2}
    Missing letter: ``It take\u{s} two \ldots''
 
@@ -2233,6 +2236,10 @@
    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).
@@ -2313,7 +2320,7 @@
 \erroronpage{551}{tab 9.3}{CBe}{2004/07/27}{}
    I am surprised that in Russian there is no word for ``Glossary''.
 
-   Frank: It most certainly exits :-), but right now Babel doesn't
+   Frank: It most certainly exists :-), but right now Babel doesn't
    know about it---so there is nothing we can do about it at the
    moment. Actually the same problem exists with Polish, although here
    I got a translation ``s\l{}ownik termin\'ow'' which will eventually
@@ -2715,6 +2722,9 @@
 \erroronpage{616}{boxed texts}{FMi}{2004/05/26}{2}
    Corrections as outlined in summary entry above.
 
+\erroronpage{617}{Fig. 10-2-2}{EOl}{2021/11/17}{}
+   A ``|%|'' should follow the ending ``|}|'' of the two |\bluefbox|es.
+
 \erroronpage{618}{boxed text}{CAR}{2004/05/26}{2}
    Replace: ``\textit{key val list}'' \> ``\textit{key/val-list}''
    (also in following text).
@@ -2740,6 +2750,9 @@
 %\erroronpage{621}{page}{FMi}{2004/04/23}{}
 %   Printing problem: blue color not properly aligned.
 
+\erroronpage{621}{Fig. 10-2-8}{EOl}{2021/11/17}{}
+   A ``|%|'' should follow the ending ``|}|'' of the first |\bluefbox|.
+
 \erroronpage{623}{para 1, l.7}{HjG}{2004/06/07}{2}
    Delete word: ``some \u{of} key combinations''
 
@@ -2752,7 +2765,7 @@
         \u{\texttt{tabular}} examples''
 
 \erroronpage{631}{para.2, l.6}{FMi/HjG}{2006/10/22}{s}
-  Ersetze: "`\u{This point} is shown \ldots"' \>
+  Replace: "`\u{This point} is shown \ldots"' \>
            "`\u{This} is shown \ldots"'
 
 \erroronpage{631}{para -1, l.-1}{JBr}{2004/08/02}{2}
@@ -4547,6 +4560,7 @@
 \contributor{DHL}{Dan Luecking}
 \contributor{DIs}{Daniel Isaacson}
 \contributor{DSch}{Dirk Schlimm}
+\contributor{EOl}{Edgar Olthof}
 \contributor{ERy}{Elizabeth Ryan}
 \contributor{FHa}{Ferdy Hanssen}
 \contributor{FMi}{Frank Mittelbach}
@@ -4621,7 +4635,7 @@
 \begin{flushleft}
 |\erroronpage{|\textit{page-number}|}{|\textit{line-identification}|}{|%
    \textit{your-initials}|}{|\textit{date}|}{}| \\
-   \hspace*{2em}\textit{description of the the erratum}
+   \hspace*{2em}\textit{description of the erratum}
 \end{flushleft}
 Here is an example:
 \begin{verbatim}

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.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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/usrguide.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

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

Modified: trunk/Master/texmf-dist/doc/latex-dev/base/usrguide3.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/base/usrguide3.tex	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/base/usrguide3.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2020-2021
+% Copyright (C) 2020-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -31,12 +31,13 @@
 \documentclass{ltxguide}
 
 \usepackage[T1]{fontenc}  % needed for \textbackslash in tt
+\usepackage{csquotes}
 
 \title{New \LaTeX\ methods for authors (starting 2020)}
-\author{\copyright~Copyright 2020-2021, \LaTeX\ Project Team.\\
+\author{\copyright~Copyright 2020-2022, \LaTeX\ Project Team.\\
    All rights reserved.}
 
-\date{2021-06-11}
+\date{2022-01-03}
 
 \NewDocumentCommand\cs{m}{\texttt{\textbackslash\detokenize{#1}}}
 \NewDocumentCommand\marg{m}{\arg{#1}}
@@ -48,6 +49,18 @@
 \renewcommand \verbatim at font {\normalfont \ttfamily}
 \makeatother
 
+
+% for fpeval documentation
+
+\providecommand\fpop[1]{\mathop{\texttt{#1}}}
+\providecommand\fpbin[1]{\mathbin{\texttt{#1}}}
+\providecommand\fprel[1]{\mathrel{\texttt{#1}}}
+\providecommand\nan{\texttt{NaN}}
+
+\ExplSyntaxOn
+\ProvideExpandableDocumentCommand \fpeval { m } { \fp_eval:n {#1} }
+\ExplSyntaxOff
+
 \begin{document}
 
 \maketitle
@@ -227,6 +240,11 @@
    same name.  This should be used sparingly.
 \end{itemize}
 
+If the \meta{cmd} can't be provided as a single token but needs
+\enquote{constructing}, you can use \cs{ExpandArgs} as explained in
+Section~\ref{sec:preconstructing-csnames} which also gives an example
+in which this is needed.
+
 \begin{decl}
   |\NewDocumentEnvironment|     \arg{env} \arg{arg spec} \arg{beg-code} \arg{end-code} \\
   |\RenewDocumentEnvironment|   \arg{env} \arg{arg spec} \arg{beg-code} \arg{end-code} \\
@@ -288,7 +306,7 @@
 \end{verbatim}
 the user input |\foo{arg1}[arg2]{arg3}| and \verb*|\foo{arg1} [arg2] {arg3}|
 will both be parsed in the same way.
- 
+
 The behavior of optional arguments \emph{after} any mandatory arguments is
 selectable. The standard settings will allow spaces here, and thus with
 \begin{verbatim}
@@ -554,10 +572,12 @@
 otherwise be spaces coming from the ends the lines after |[\itshape]| and
 |world!|. Putting the prefix |!| before \texttt{b} suppresses space-trimming.
 
-When \texttt{b} is used in the argument specification, the last argument of the environment declaration (e.g., \cs{NewDocumentEnvironment}), which consists of an \meta{end code} to insert at
-|\end|\marg{environment}, is redundant since one can simply put that code at
-the end of the \meta{start code}. Nevertheless this (empty) \meta{end code}
-must be provided.
+When \texttt{b} is used in the argument specification, the last
+argument of the environment declaration (e.g.,
+\cs{NewDocumentEnvironment}), which consists of an \meta{end code} to
+insert at |\end|\marg{environment}, is redundant since one can simply
+put that code at the end of the \meta{start code}. Nevertheless this
+(empty) \meta{end code} must be provided.
 
 Environments that use this feature can be nested.
 
@@ -665,7 +685,7 @@
 \subsection{Creating new argument processors}
 
 \begin{decl}
-  |\ProcessedArgument| 
+  |\ProcessedArgument|
 \end{decl}
 Argument processors allow manipulation of a grabbed argument before it is
 passed to the underlying code. New processor implementations may be created
@@ -710,4 +730,280 @@
 the \meta{function} or \meta{environment} has no known argument
 specification then an error is issued.
 
+
+
+\section{Copying and showing (robust) commands}
+
+If you want to (slightly) alter an existing command you may want to
+save the current definition under a new name and then use that in a
+new definition. If the existing command is robust, then the old trick of
+using the low-level \cs{let} for this doesn't work, because it only
+copies the top-level definition, but not the part that actually does
+the work. As most \LaTeX{} commands are nowadays robust, \LaTeX{}
+now offers some high-level declarations for this instead.
+
+However, please note that it is usually better to make use of
+available hooks (e.g., the generic command or environment hooks),
+instead of copying the current definition and thereby freezing it; see
+the hook management documentation \texttt{lthooks-doc.pdf} for
+details.
+
+\begin{decl}
+  |\NewCommandCopy|       \arg{cmd} \arg{existing-cmd} \\
+  |\RenewCommandCopy|     \arg{cmd} \arg{existing-cmd} \\
+  |\DeclareCommandCopy|   \arg{cmd} \arg{existing-cmd}
+\end{decl}
+
+This copies the definition of \meta{existing-cmd} to \meta{cmd}. After
+this \meta{existing-cmd} can be redefined and \meta{cmd}
+still works! This allows you to then provide a new definition for
+\meta{existing-cmd} that makes use of \meta{cmd} (i.e., of its old
+definition). For example, after
+\begin{verbatim}
+  \NewCommandCopy\LaTeXorig\LaTeX
+  \RenewDocumentCommand\LaTeX{}{\textcolor{blue}{\LaTeXorig}}
+\end{verbatim}
+all \LaTeX{} logos generated with \cs{LaTeX} will come out in blue
+(assuming you have a color package loaded).
+
+The differences between \cs{New...} and \cs{Renew...} are as
+elsewhere: i.e., you get an error depending on whether or not
+\meta{cmd} already exists, or in case of \cs{Declare...} it is copied
+regardless. Note that there is no \cs{Provide...} declaration, because
+that would be of limited value.
+
+
+If the \meta{cmd} or \meta{existing-cmd} can't be provided as a single
+token but need \enquote{constructing}, you can use \cs{ExpandArgs}
+as explained in
+Section~\ref{sec:preconstructing-csnames}.
+
+
+
+
+\begin{decl}
+  |\ShowCommand|       \arg{cmd}
+\end{decl}
+
+This displays the meaning of the \meta{cmd} on the terminal and then
+stops (just like the primitive \cs{show}). The difference is that it
+correctly shows the meaning of more complex commands, e.g., in case of
+robust commands it displays not only the top-level definition but
+also the actual payload code and in case of commands declared with
+\cs{NewDocumentCommand}, etc.\ it also gives you detailed information
+about the argument signature.
+
+
+\section[Preconstructing command names \\ (or otherwise expanding arguments)]
+        {Preconstructing command names (or otherwise expanding arguments)}
+\label{sec:preconstructing-csnames}
+
+When declaring new commands with \cs{NewDocumentCommand} or
+\cs{NewCommandCopy} or similar, it is sometimes necessary to
+``construct'' the csname. As a general mechanism the L3 programming
+layer has \cs{exp_args:N...} for this, but there is no mechanism for
+it if \cs{ExplSyntaxOn} is not active (and mixing programming and user
+interface level commands is not a good approach anyhow). We therefore
+offer a mechanism to access this ability using CamelCase naming.
+
+\begin{decl}
+  |\UseName|  \arg{string} \\
+  |\ExpandArgs| \arg{spec} \arg{cmd} \arg{arg1} \dots
+\end{decl}
+
+\cs{UseName} turns the \meta{string} directly into a csname and
+then executes it: this is equivalent to the long-standing
+\LaTeXe{} internal command \cs{@nameuse}, or the L3 programming
+equivalent \cs{use:c}. \cs{ExpandArgs} takes a \meta{spec} which
+describes how to expand the \meta{arguments}, carries out these
+operations then executes the \meta{cmd}. The \meta{spec} uses
+the descriptions offered by the L3 programming layer, and the
+relevant \cs{exp_args:N...} function must exist. Common cases will
+have a \meta{spec} of \texttt{c}, \texttt{cc} or \texttt{Nc}: see below.
+
+As an example, the following declaration provides a method to generate
+copyedit commands:
+\begin{verbatim}
+\NewDocumentCommand\newcopyedit{mO{red}}
+  {\newcounter{todo#1}%
+   \ExpandArgs{c}\NewDocumentCommand{#1}{s m}%
+     {\stepcounter{todo#1}%
+      \IfBooleanTF {##1}%
+         {\todo[color=#2!10]{\UseName{thetodo#1}: ##2}}%
+         {\todo[inline,color=#2!10]{\UseName{thetodo#1}: ##2}}%
+     }%
+  }
+\end{verbatim}
+Given that declaration you can then write
+\verb/\newcopyedit{note}[blue]/ which defines the command \cs{note}
+and the corresponding counter for you.
+
+A second example is to copy a command by string name using
+\cs{NewCommandCopy}: here we might need to construct both command
+names.
+\begin{verbatim}
+\NewDocumentCommand\savebyname{m}
+  {\ExpandArgs{cc}\NewCommandCopy{saved#1}{#1}}
+\end{verbatim}
+
+In the \meta{spec} each \texttt{c} stands for one argument that is
+turned into a `\texttt{c}'ommand. An \texttt{n} represents a
+`\texttt{n}'ormal argument that is not altered and \texttt{N} stands for
+a `\texttt{N}'ormal argument which is also left unchanged, but one
+consisting only of a single token (and usually unbraced). Thus, to
+construct a command from a string only for the second argument of
+\cs{NewCommandCopy} you would write
+\begin{verbatim}
+\ExpandArgs{Nc}\NewCommandCopy\mysectionctr{c at section}
+\end{verbatim}
+There are several other single letters supported in the L3 programming
+layer that \emph{could} be used in the \meta{spec} to manipulate
+arguments in other ways.  If you are interested, take a look at the
+\enquote{Argument expansion} section in the L3 programming layer
+documentation in \texttt{interface3.pdf}.
+
+
+
+\section{Expandable floating point (and other) calculations}
+
+The \LaTeX3 programming layer which is part of the format offers a
+rich interface to manipulate floating point variables and values. To
+allow for (simpler) applications to use this on document-level or in
+packages otherwise not making use of the L3 programming layer a few
+interface commands are made available.
+
+
+\begin{decl}
+  |\fpeval| \arg{floating point expression}
+\end{decl}
+
+The expandable command \cs{fpeval} takes as its argument a floating
+point expression and produces a result using the normal rules of
+mathematics. As this command is expandable it can be used where \TeX{}
+requires a number and for example within a low-level \cs{edef} operation
+to give a purely numerical result.
+
+
+
+Briefly, the floating point expressions may comprise:
+\begin{itemize}
+  \item Basic arithmetic: addition $x\fpbin{+}y$, subtraction $x\fpbin{-}y$,
+    multiplication $x\fpbin{*}y$, division $x\fpbin{/}y$, square root~$\sqrt{x}$,
+    and parentheses.
+  \item Comparison operators: $x\fprel{<}y$,
+    $x\fprel{<=}y$, $x\fprel{>?}y$,
+    $x\fprel{!=}y$ \emph{etc.}
+  \item Boolean logic: sign $\fpop{sign} x$,
+    negation $\fpop{!}x$, conjunction
+    $x\fprel{\&\&}y$, disjunction $x\fprel{\string|\string|}y$, ternary
+    operator $x\fprel{?}y\fprel{:}z$.
+  \item Exponentials: $\fpop{exp} x$, $\fpop{ln} x$, $x\mathord{\texttt{\^{}}}y$.
+  \item Integer factorial: $\fpop{fact} x$.
+  \item Trigonometry: $\fpop{sin} x$, $\fpop{cos} x$, $\fpop{tan} x$, $\fpop{cot} x$, $\fpop{sec}
+    x$, $\fpop{csc} x$ expecting their arguments in radians, and
+    $\fpop{sind} x$, $\fpop{cosd} x$,
+    $\fpop{tand} x$, $\fpop{cotd} x$,
+    $\fpop{secd} x$, $\fpop{cscd} x$ expecting their
+    arguments in degrees.
+  \item Inverse trigonometric functions: $\fpop{asin} x$,
+    $\fpop{acos} x$, $\fpop{atan} x$,
+    $\fpop{acot} x$, $\fpop{asec} x$,
+    $\fpop{acsc} x$ giving a result in radians, and
+    $\fpop{asind} x$, $\fpop{acosd} x$,
+    $\fpop{atand} x$, $\fpop{acotd} x$,
+    $\fpop{asecd} x$, $\fpop{acscd} x$ giving a result
+    in degrees.
+  \item Extrema: $\fpop{max}(x_{1},x_{2},\ldots)$, $\fpop{min}(x_{1},x_{2},\ldots)$,
+    $\fpop{abs}(x)$.
+  \item Rounding functions, controlled by two optional
+    values,  $n$ (number of places, $0$ by default) and
+      $t$ (behavior on a tie, $\nan$ by default):
+    \begin{itemize}
+    \item $\fpop{trunc}(x,n)$ rounds towards zero,
+    \item $\fpop{floor}(x,n)$ rounds towards~$-\infty$,
+    \item $\fpop{ceil}(x,n)$ rounds towards~$+\infty$,
+    \item $\fpop{round}(x,n,t)$ rounds to the closest value, with
+    ties rounded to an even value by default, towards zero if $t=0$,
+    towards $+\infty$ if $t>0$ and towards $-\infty$ if $t<0$.
+    \end{itemize}
+  \item Random numbers: $\fpop{rand}()$, $\fpop{randint}(m,n)$.
+  \item Constants: \texttt{pi}, \texttt{deg} (one degree in radians).
+  \item Dimensions, automatically expressed in points, \emph{e.g.},
+    \texttt{pc} is~$12$.
+  \item Automatic conversion (no need for \cs{number}) of
+    integer, dimension, and skip variables to floating points numbers,
+    expressing dimensions in points and ignoring the stretch and
+    shrink components of skips.
+  \item Tuples: $(x_1,\ldots{},x_n)$ that can be added together,
+    multiplied or divided by a floating point number, and nested.
+\end{itemize}
+
+An example of use could be the following:
+\begin{verbatim}
+  \LaTeX{} can now compute: $ \frac{\sin (3.5)}{2} + 2\cdot 10^{-3}
+  = \fpeval{sin(3.5)/2 + 2e-3} $.
+\end{verbatim}
+which produces the following output:
+\begin{quote}
+  \LaTeX{} can now compute: $ \frac{\sin (3.5)}{2} + 2\cdot 10^{-3}
+  = \fpeval{sin(3.5)/2 + 2e-3} $.
+\end{quote}
+
+\begin{decl}
+  |\inteval| \arg{integer expression}
+\end{decl}
+
+  The expandable command \cs{inteval} takes as its argument an integer
+  expression and produces a result using the normal rules of
+  mathematics with some restrictions, see below. The operations
+  recognized are |+|, |-|, |*| and |/| plus parentheses.  As this
+  command is expandable it can be used where \TeX{} requires a number
+  and for example within a low-level \cs{edef} operation to give a
+  purely numerical result.
+
+  This is basically a thin wrapper for the primitive \cs{numexpr}
+  command and therefore has some syntax restrictions. These are:
+  \begin{itemize}
+  \item \texttt{/} denotes division rounded to the closest integer with
+    ties rounded away from zero;
+  \item there is an error and the overall expression evaluates to zero
+    whenever the absolute value of any intermediate result exceeds
+    $2^{31}-1$, except in the case of scaling operations
+    $a$\texttt{*}$b$\texttt{/}$c$, for which $a$\texttt{*}$b$ may be
+    arbitrarily large;
+  \item parentheses may not appear after unary \texttt{+} or
+    \texttt{-}, namely placing \texttt{+(} or \texttt{-(} at the start
+    of an expression or after \texttt{+}, \texttt{-}, \texttt{*},
+    \texttt{/} or~\texttt{(} leads to an error.
+  \end{itemize}
+
+An example of use could be the following.
+\begin{verbatim}
+\LaTeX{} can now compute: The sum of the numbers is $\inteval{1 + 2 + 3}$.
+\end{verbatim}
+which results in
+\enquote{\LaTeX{} can now compute: The sum of the numbers is $\inteval{1 + 2 + 3}$.}
+
+
+\begin{decl}
+  |\dimeval| \arg{dimen expression} \qquad
+  |\skipeval| \arg{skip expression}
+\end{decl}
+
+Similar to \cs{inteval} but computing a length (\texttt{dimen}) or a
+rubber length (\texttt{skip}) value. Both are thin wrappers around
+the corresponding engine primitives, which makes them fast, but
+therefore shows the same syntax peculiars as discussed
+above. Nevertheless, in practice they are usually sufficient.  For
+example
+\begin{verbatim}
+\newcommand\calulateheight[1]{%
+  \setlength\textheight{\dimeval{\topskip+\baselineskip*\inteval{#1-1}}}}
+\end{verbatim}
+sets the \cs{textheight} to the appropriate value if a page should
+hold a specific number of text lines. Thus after |\calulateheight{40}|
+it is set to \dimeval{\topskip+\baselineskip*\inteval{40-1}}, given
+the values \cs{topskip} (\dimeval{\topskip}) and \cs{baselineskip}
+(\dimeval{\baselineskip}) in the current document.
+
 \end{document}

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/graphics/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/graphics/README.md	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/graphics/README.md	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,7 +1,7 @@
 The LaTeX `graphics` bundle
 ===========================
 
-Release 2022-06-01 pre-release 0
+Release 2022-06-01 pre-release 1
 
 Overview
 --------
@@ -61,4 +61,4 @@
 
 -----
 
-<p>Copyright (C) 1993-2021 The LaTeX Project <br />
+<p>Copyright (C) 1993-2022 The LaTeX Project <br />

Modified: trunk/Master/texmf-dist/doc/latex-dev/graphics/changes.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/graphics/changes.txt	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/graphics/changes.txt	2022-01-13 21:03:32 UTC (rev 61598)
@@ -4,10 +4,20 @@
 are not part of the distribution.
 =======================================================================
 
+2022-01-06  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* mathcolor.dtx:
+	Support \mathcolor to correctly color parts of formulas without
+	spacing problems.
+
 ================================================================================
 All changes above are only part of the development branch for the next release.
 ================================================================================
 
+2021-12-07  Ulrike Fischer <Ulrike.Fischer at latex-project.org>
+
+	* color.dtx: Remove stray spaces after change for xcolor/gh/10}
+
 #########################
 # 2021-11-15 Release
 #########################

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

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

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

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

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

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

Modified: trunk/Master/texmf-dist/doc/latex-dev/graphics/grfguide.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/graphics/grfguide.tex	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/graphics/grfguide.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -243,12 +243,27 @@
 So the above is essentially equivalent to
 |{\color|\arg{name}\emph{text}|}|.
 
+\subsection{Using Colours in math formulas}
+
+While |\color| and to some extent |\textcolor| can be used in
+formulas, this is cumbersome, may lead to bad spacing, and in some
+situations is simply not possible. For this reason we also introduce
+|\mathcolor| which will help in this respect. The basic syntax is:
+
+\begin{decl}
+|\mathcolor|\arg{name}\arg{math}
+\end{decl}
+
+See \texttt{mathcolor.pdf} for details on this command.
+
+
 \subsubsection{Using colour specifications directly}
 
 
 \begin{decl}
 |\color|\oarg{model}\arg{specification}\\
-|\textcolor|\oarg{model}\arg{specification}\arg{text}
+|\textcolor|\oarg{model}\arg{specification}\arg{text}\\
+|\mathcolor|\oarg{model}\arg{specification}\arg{math}
 \end{decl}
 
 Normally one would predeclare all the colours used in a package, or in

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

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

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

Index: trunk/Master/texmf-dist/doc/latex-dev/graphics/mathcolor.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/graphics/mathcolor.pdf	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/graphics/mathcolor.pdf	2022-01-13 21:03:32 UTC (rev 61598)

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

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

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

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/tools/README.md	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/tools/README.md	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,7 +1,7 @@
 The LaTeX `tools` bundle
 ========================
 
-Release 2022-06-01 pre-release 0
+Release 2022-06-01 pre-release 1
 
 Overview
 --------

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

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

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

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

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/changes.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/tools/changes.txt	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/tools/changes.txt	2022-01-13 21:03:32 UTC (rev 61598)
@@ -5,6 +5,24 @@
 are not part of the distribution.
 =======================================================================
 
+2022-01-05  David Carlisle  <David.Carlisle at latex-project.org>
+
+	* bm.dtx: Guard \nolimits@ for gh issue 744
+
+2021-12-05  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* multicol.dtx (subsection{Manual column breaking} \label{sec:colbreak}):
+	Added a missing guard in \newcolumn -- it only worked in hmode (sx/624940)
+
+2021-11-30  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* multicol.dtx: Added rollback to v1.8 (2019-10-01 release)
+
+2021-11-18  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* All *.dtx: Replaced \StopEventually by \MaybeStop
+
+
 ================================================================================
 All changes above are only part of the development branch for the next release.
 ================================================================================

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Modified: trunk/Master/texmf-dist/doc/latex-dev/tools/tools-overview.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/tools/tools-overview.tex	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/doc/latex-dev/tools/tools-overview.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,7 +1,7 @@
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesFile{tools-overview.tex}[2015/03/31 v1.0 Tools overview]
 
-% Copyright (C) 2006-2021
+% Copyright (C) 2006-2022
 %
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.

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

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

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

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

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

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amsbsy.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amsbsy.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amsbsy.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -81,7 +81,7 @@
 % \[
 %           \pmb{\infty} = \boldsymbol{\infty} \quad ?
 % \]
-% \StopEventually{}
+% \MaybeStop{}
 %
 %    Standard package info.
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amsbsy.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amsbsy.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amsbsy.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -26,7 +26,7 @@
 \preamble
 
 Copyright (C) 1995, 1999 American Mathematical Society.
-Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
 
 This work may be distributed and/or modified under the
 conditions of the LaTeX Project Public License, either version 1.3c

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amscd.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amscd.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amscd.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -2,7 +2,7 @@
 % \iffalse meta-comment
 %
 % Copyright (C) 1995, 1999 American Mathematical Society.
-% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+% Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
 %
 % This work may be distributed and/or modified under the
 % conditions of the LaTeX Project Public License, either version 1.3c
@@ -97,7 +97,7 @@
 % \end{CD}\end{equation}
 % \end{verbatim}
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %    Standard package info.
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amscd.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amscd.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amscd.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 %%
 %% Copyright (C) 2010 American Mathematical Society.
-%% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+%% Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
 %%
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c
@@ -25,7 +25,7 @@
 \preamble
 
 Copyright (C) 1995, 1999 American Mathematical Society.
-Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
+Copyright (C) 2016-2022  LaTeX Project and American Mathematical Society.
 
 This work may be distributed and/or modified under the
 conditions of the LaTeX Project Public License, either version 1.3c

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amsgen.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amsgen.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amsgen.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -2,7 +2,7 @@
 % \iffalse meta-comment
 %
 % Copyright (C) 1995, 1999 American Mathematical Society.
-% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+% Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
 %
 % This work may be distributed and/or modified under the
 % conditions of the LaTeX Project Public License, either version 1.3c
@@ -49,7 +49,7 @@
 %    distribution. Some of these might eventually make it into the \latex/
 %    kernel.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %    Standard package info.
 %    Using \cs{ProvidesFile} rather than \cs{ProvidesPackage} because

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amsgen.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amsgen.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amsgen.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -25,7 +25,7 @@
 \preamble
 
 Copyright (C) 1995, 1999 American Mathematical Society.
-Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
+Copyright (C) 2016-2022  LaTeX Project and American Mathematical Society.
 
 This work may be distributed and/or modified under the
 conditions of the LaTeX Project Public License, either version 1.3c

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amsmath.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amsmath.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amsmath.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -2,7 +2,7 @@
 % \iffalse meta-comment
 %
 % Copyright (C) 1995, 2000, 2013 American Mathematical Society.
-% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+% Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
 %
 % This work may be distributed and/or modified under the
 % conditions of the LaTeX Project Public License, either version 1.3c
@@ -68,7 +68,7 @@
 %    provided here is found in the AMSmath Users' Guide,
 %    \fn{amsldoc.tex}.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %    Standard file identification.
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amsmath.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amsmath.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amsmath.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 %%
 %% Copyright (C) 2010 American Mathematical Society.
-%% Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
+%% Copyright (C) 2016-2022  LaTeX Project and American Mathematical Society.
 %%
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c
@@ -25,7 +25,7 @@
 \preamble
 
 Copyright (C) 1995, 1999, 2000, 2013 American Mathematical Society.
-Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
+Copyright (C) 2016-2022  LaTeX Project and American Mathematical Society.
 
 This work may be distributed and/or modified under the
 conditions of the LaTeX Project Public License, either version 1.3c

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amsopn.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amsopn.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amsopn.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -2,7 +2,7 @@
 % \iffalse meta-comment
 %
 % Copyright (C) 1995, 1999 American Mathematical Society.
-% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+% Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
 %
 % This work may be distributed and/or modified under the
 % conditions of the LaTeX Project Public License, either version 1.3c
@@ -52,7 +52,7 @@
 %    similar to the standard function names \cn{sin}, \cn{lim},
 %    \cn{max}, etc.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %    Standard file identification.
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amsopn.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amsopn.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amsopn.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 %%
 %% Copyright (C) 2010 American Mathematical Society.
-%% Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
+%% Copyright (C) 2016-2022  LaTeX Project and American Mathematical Society.
 %%
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c
@@ -25,7 +25,7 @@
 \preamble
 
 Copyright (C) 1995, 1999 American Mathematical Society.
-Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
+Copyright (C) 2016-2022  LaTeX Project and American Mathematical Society.
 
 This work may be distributed and/or modified under the
 conditions of the LaTeX Project Public License, either version 1.3c

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amstext.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amstext.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amstext.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -2,7 +2,7 @@
 % \iffalse meta-comment
 %
 % Copyright (C) 1995, 1999 American Mathematical Society.
-% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+% Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
 %
 % This work may be distributed and/or modified under the
 % conditions of the LaTeX Project Public License, either version 1.3c
@@ -72,7 +72,7 @@
 %    macro called \cs{mathhexbox} so that commands like \cn{dag}
 %    or \cn{P} will change sizes if used in math subscripts.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %    Package information.
 %    \begin{macrocode}
 \NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amstext.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amstext.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amstext.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 %%
 %% Copyright (C) 2010 American Mathematical Society.
-%% Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
+%% Copyright (C) 2016-2022  LaTeX Project and American Mathematical Society.
 %%
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c
@@ -25,7 +25,7 @@
 \preamble
 
 Copyright (C) 1995, 1999 American Mathematical Society.
-Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
+Copyright (C) 2016-2022  LaTeX Project and American Mathematical Society.
 
 This work may be distributed and/or modified under the
 conditions of the LaTeX Project Public License, either version 1.3c

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amsxtra.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amsxtra.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amsxtra.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -2,7 +2,7 @@
 % \iffalse meta-comment
 %
 % Copyright (C) 1995, 1999 American Mathematical Society.
-% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+% Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
 %
 % This work may be distributed and/or modified under the
 % conditions of the LaTeX Project Public License, either version 1.3c
@@ -53,7 +53,7 @@
 %    documents using the \pkg{amstex} package these commands are just
 %    wasted overhead.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %    \begin{macrocode}
 \ProvidesPackage{amsxtra}[1999/11/15 v1.2c AMS extra commands]

Modified: trunk/Master/texmf-dist/source/latex-dev/amsmath/amsxtra.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/amsmath/amsxtra.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/amsmath/amsxtra.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 %%
 %% Copyright (C) 2010 American Mathematical Society.
-%% Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
+%% Copyright (C) 2016-2022  LaTeX Project and American Mathematical Society.
 %%
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c
@@ -25,7 +25,7 @@
 \preamble
 
 Copyright (C) 1995, 1999 American Mathematical Society.
-Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
+Copyright (C) 2016-2022  LaTeX Project and American Mathematical Society.
 
 This work may be distributed and/or modified under the
 conditions of the LaTeX Project Public License, either version 1.3c

Modified: trunk/Master/texmf-dist/source/latex-dev/base/alltt.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/alltt.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/alltt.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -104,7 +104,7 @@
 %  The glyph at the position of the $ in an italic font: \textit{$}.
 %    \end{alltt}
 %
-%  \StopEventually{}
+%  \MaybeStop{}
 %
 %  \section{The Implementation}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/alltt.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/alltt.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/alltt.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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-2021
+Copyright (C) 1993-2022
 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/classes.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -230,7 +230,7 @@
 % \maketitle
 % \tableofcontents
 %
-% \StopEventually{}    ^^A
+% \MaybeStop{}    ^^A
 %
 % \section{The {\sc docstrip} modules}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/classes.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/classes.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/classes.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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-2021
+Copyright (C) 1993-2022
 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/cmextra.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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-2021
+Copyright (C) 1993-2022
 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/cmfonts.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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-2021
+Copyright (C) 1993-2022
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/doc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/doc.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/doc.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,7 +1,7 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
-% The LaTeX Project and any individual authors listed elsewhere
+% Copyright 1993-2022
+% The LaTeX3 Project and any individual authors listed elsewhere
 % in this file.
 %
 % This file is part of the LaTeX base system.
@@ -33,10 +33,23 @@
 % ^^A category for `<'
 %\catcode`\<=14
 %<+package|shortvrb>\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-%<+package> \ProvidesPackage{doc}
+%<+package>
+%<+package>\providecommand\DeclareRelease[3]{}
+%<+package>\providecommand\DeclareCurrentRelease[2]{}
+%<+package>
+%<+package>\DeclareRelease{v2.1g}{2016-02-15}
+%<+package>                      {doc-2016-02-15.sty}
+%<+package>\DeclareRelease{v2}{2021-06-01}
+%<+package>                   {doc-2021-06-01.sty}
+%<+package>\DeclareCurrentRelease{v3}{2022-06-01}
+%<+package>
+%<*package>
+%<-beta>\ProvidesPackage{doc}
+%<+beta>\ProvidesPackage{doc-v3beta}
+%</package>
 %<+shortvrb>\ProvidesPackage{shortvrb}
-%<+package|shortvrb>  [2021/10/04 v2.1n
-%<+package|shortvrb>   Standard LaTeX documentation package (FMi)]
+%<+package|shortvrb>  [2022/06/01 v3.0g
+%<+package|shortvrb>   Standard LaTeX documentation package V3 (FMi)]
 %\catcode`\<=12
 %
 %%
@@ -47,7 +60,7 @@
 %
 %
 %% Package `doc' to use with LaTeX 2e
-%% Copyright (C) 1989-2020 Frank Mittelbach, all rights reserved.
+%% Copyright (C) 1989-2022 Frank Mittelbach, all rights reserved.
 %
 %
 % Version:     Date:     Changes:
@@ -128,18 +141,103 @@
 % \DoNotIndex{\selectfont,\mathcode,\newmathalphabet,\rmdefault}
 % \DoNotIndex{\bfdefault}
 %
-% \MakeShortVerb{\"}
+% \MakeShortVerb{\|}
 % \setcounter{StandardModuleDepth}{1}
 %
 % {\catcode`\p=12 \catcode`\t=12 ^^A hack used later on to print
-% \gdef\dimenvalue#1pt{$#1$pt}}  ^^A register values with a - sign
+% \gdef\dimenvalue#1pt{$#1$pt}}  ^^A a register value with a - sign
 %
-% \newcommand{\DOC}{\texttt{doc}}
+% \newcommand{\DOC}{\texttt{doc}\xspace}
 %
+% \newcommand\env{\texttt}
+% \newcommand\opt{\texttt}
+% \newcommand\cls{\texttt}
+% \newcommand\pkg{\texttt}
+% \newcommand\prg{\textsf}
+%
+% \newcommand\DOX{\env{DoX}\xspace}
+% \newcommand\api{\textsc{api}\xspace}
+%
+% \newcommand\fmi[1]{\par\textbf{TODO: }\textit{#1}\par}
+%
+% \newcommand\NewIn[1]{\leavevmode
+%         \marginpar{\hfill\fbox{\fbox{New in #1}}\hspace*{1em}}\ignorespaces}
+%
+%
+%\RenewDocElement[macrolike = true ,
+%		 toplevel  = false,
+%                idxtype   = ,
+%                idxgroup  = LaTeX comands\actualchar\LaTeX{} commands ,
+%                printtype =
+%               ]{Macro}{macro}
+%
+%\RenewDocElement[macrolike = false ,
+%		 toplevel  = false,
+%                idxtype   = env.  ,
+%                idxgroup  = Package environments,
+%                printtype = \textit{env.}
+%               ]{Env}{environment}
+%
+%
+%\NewDocElement[macrolike = true ,
+%               toplevel  = false,
+%               idxtype   = ,
+%               idxgroup  = Package commands,
+%               printtype =
+%               ]{InterfaceMacro}{imacro}
+%
+%\NewDocElement[macrolike = true ,
+%		 toplevel  = false,
+%                idxtype   = ,
+%                idxgroup  = Package commands (obsolete),
+%                printtype =
+%               ]{ObsoleteInterfaceMacro}{omacro}
+%
+%\NewDocElement[macrolike = false ,
+%		 toplevel  = false,
+%                idxtype   =  counter  ,
+%                idxgroup  = LaTeX counters\actualchar \LaTeX{} counters ,
+%                printtype = \textit{counter}
+%               ]{LaTeXCounter}{lcounter}
+%
+%\NewDocElement[macrolike = true ,
+%		 toplevel  = false,
+%                idxtype   =  counter  ,
+%                idxgroup  = TeX counters\actualchar \protect\TeX{} counters ,
+%                printtype = \textit{counter}
+%               ]{TeXCounter}{tcounter}
+%
+%
+%\NewDocElement[macrolike = true ,
+%		 toplevel  = false,
+%                idxtype   =  skip  ,
+%                idxgroup  = LaTeX length\actualchar \LaTeX{} length (skip) ,
+%                printtype = \textit{skip}
+%               ]{LaTeXSkip}{lskip}
+%
+%\NewDocElement[macrolike = true ,
+%		 toplevel  = false,
+%                idxtype   =  dimen  ,
+%                idxgroup  = LaTeX length\actualchar \LaTeX{} length (dimen) ,
+%                printtype = \textit{dimen}
+%               ]{LaTeXDimen}{ldimen}
+%
+%\NewDocElement[macrolike = false ,
+%		 toplevel  = false,
+%                idxtype   = option  ,
+%                idxgroup  = Package options ,
+%                printtype = \textit{option}
+%               ]{Option}{option}
+%
+% \renewcommand\code[1]{\mbox{$\ell$-#1}}
+% \renewcommand\main[1]{\underline{\mbox{$\ell$-#1}}}
+% \setcounter{IndexColumns}{2}
+%
+%
 % \changes{v1.9t}{1995/05/11}{Use \cs{GetFileInfo}}
 % \GetFileInfo{doc.sty}
 %
-% \CheckSum{2213}  ^^A % keep the checksum in this file
+% \CheckSum{0}  ^^A % keep the checksum in this file but not now :-)
 %
 % \title{The \DOC{} and \texttt{shortvrb} Packages\thanks
 %    {This file has version number \fileversion{} dated \filedate{}.}}
@@ -149,192 +247,79 @@
 %        provided by Andrew Mills; fairly substantial additions,
 %        particularly from \texttt{newdoc},  and
 %        documentation of post-v1.5q features added at v1.7a by Dave
-%        Love (SERC Daresbury Lab). Extraction of \texttt{shortvrb}
-%        package added by Joachim Schrod (TU~Darmstadt).}}
+%        Love (SERC Daresbury Lab).}~\thanks
+%        {Extraction of \texttt{shortvrb}
+%        package added by Joachim Schrod (TU~Darmstadt).}~\thanks
+%        {Version~3 now integrates code from Didier Verna's
+%        \DOX package and some of his documentation was
+%        reused (a.k.a.\ stolen).}}
+% \date{Printed \today}
 %
 % \MaintainedByLaTeXTeam{latex}
+%
 % \maketitle
 %
 % \begin{abstract}
-%    This package contains the definitions that are necessary to
-%    format the documentation of package files.  The package was
-%    developed in Mainz in cooperation with the Royal Military College
-%    of Science.  This is an update which documents various changes
-%    and new features in \DOC{} and integrates the features of
-%    \textsf{newdoc}.
+%    Roughly 30 years ago (version 1.0 was dated 1988/05/05) I wrote
+%    the first version of the \DOC package, a package to provide code
+%    documentation for \TeX{} code. Since then it has be used all over
+%    the place to document the \LaTeX{} kernel and most of the
+%    packages that are nowadays available. The core code of version 2
+%    (which is the current version) exists since 1998, i.e., for 20
+%    years.
+%
+%    If I would restart from scratch I would do a lot of things
+%    differently these days and in fact several other people have
+%    tried to come up with better solutions. However, as the saying
+%    goes, a bad standard is better than none, \DOC has prevailed and
+%    changing it now in incompatible ways is probably not really
+%    helpful.
+%
+%    So this is version 3 of the package with some smaller extensions
+%    that are upwards compatible but hopefully serve well. Most
+%    important modifications are the integration of the
+%    \pkg{hypdoc} package to enable links within the document (in
+%    particular from the index) is so desired. Also integrated are the
+%    ideas from the \DOX package by Didier Verna (although I
+%    offer a different interface that imho fits better with the rest
+%    of \DOC's interfaces). Finally I updated a few odds and ends.
 % \end{abstract}
 %
-% \newif\ifmulticols
-% \IfFileExists{multicol.sty}{\multicolstrue}{}
 %
-% \ifmulticols
+% \newpage
+%
 % \addtocontents{toc}{\protect\begin{multicols}{2}}
-% \fi
 %
-% {\parskip 0pt                ^^A We have to reset \parskip
+% ^^A{\parskip 0pt                ^^A We have to reset \parskip
 %                              ^^A (bug in \LaTeX)
 % \tableofcontents
-% }
+% ^^A}
 %
 % \changes{v1.7a}{1992/02/25}{Miscellaneous small changes to the text}
+% \changes{v3.0a}{2018/03/04}{Integrated DoX package}
+% \changes{v3.0a}{2018/03/04}{Interfaced hypdoc package}
 %
-% \ifmulticols
-% \begin{multicols}{2}[\section*{Preface to version 1.7}]
-% \else \section*{Preface to version 1.7} \fi
 %
-% This version of \texttt{doc.dtx} documents changes which have occurred
-% since the last published version \cite{art:doc} but which have been
-% present in distributed versions of \texttt{doc.sty} for some time.  It
-% also integrates the (undocumented) features of the distributed
-% \texttt{newdoc.sty}.
 %
-% The following changes and additions have been made to the user
-% interface since the published version~\cite{art:doc}.  See
-% \S\ref{sec:interface} for more details.
-% \begin{description}
-% \item[Driver mechanism] "\DocInput" is now used in the driver file
-%    to input possibly multiple independent \DOC{} files and \DOC{} no
-%    longer has to be the last package.  "\IndexListing" is replaced
-%    by "\IndexInput";
-% \item[Indexing] is controlled by "\PageIndex" and "\CodelineIndex",
-%    one of which must be specified to produce an index---there is no
-%    longer a "\makeindex" in the default "\DocstyleParms";
-% \item[The \texttt{macro} environment] now takes as argument the
-%    macro name {\em with\/} the backslash;
-% \item[Verbatim text] Newlines are now forbidden inside "\verb" and
-%    commands "\MakeShortVerb" and "\DeleteShortVerb" are provided for
-%    verbatim shorthand;
-% \item[\texttt{\bslash par}] can now be used in "\DoNotIndex";
-% \item[Checksum/character table support] for ensuring the integrity
-%    of distributions is added;
-% \item[\texttt{\bslash printindex}] becomes "\PrintIndex";
-% \item[\texttt{multicol.sty}] is no longer necessary to use \DOC{} or
-%    print the documentation (although it is recommended);
-% \item[`Docstrip' modules] are recognised and formatted specially.
-% \end{description}
-%
-% As well as adding some completely new stuff,
-% the opportunity has been taken to add some commentary to the code
-% formerly in \texttt{newdoc.sty} and that added after version 1.5k of
-% \texttt{doc.sty}.  Since (as noted in the sections concerned) this
-% commentary wasn't written by Frank Mittelbach but the code was, it is
-% probably {\em not\/} true in this case that ``if the code and
-% comments disagree both are probably wrong''!
-%
-% \subsection*{Bugs}
-%
-% There are some known bugs in this version:
-% \begin{itemize}
-% \item The "\DoNotIndex" command doesn't work for some single
-%    character commands most noticeable "\%".
-% \item The `General changes' glossary entry would come out after
-%    macro names with a leading "!" and possibly a leading |"|;
-% \item If you have an old version of \textsf{makeindex} long "\changes"
-%    entries will come out strangely and you may find the section
-%    header amalgamated with the first changes entry.  Try to get an
-%    up-to-date one (see p.~\pageref{makeindex:version});
-% \item Because the accompanying \textsf{makeindex} style files support
-%    the inconsistent attribute specifications of older and newer
-%    versions \textsf{makeindex} always complains about three `unknown
-%    specifier's when sorting the index and changes entries.
-% \item If "\MakeShortVerb" and "\DeleteShortVerb" are used with
-%    single character arguments, e.g., "{|}" instead of "{\|}" chaos
-%    may happen.
-% \end{itemize}
-% (Some `features' are documented below.)
-%
-% \subsection*{Wish list}
-%
-% \begin{itemize}
-% \item Hooks to allow "\DescribeMacro" and "\DescribeEnv" to write
-% out to a special file information about the package's `exported'
-% definitions which they describe.  This could subsequently be
-% included in the \texttt{docstrip}ped \texttt{.sty} file in a
-% suitable form for use by smart editors in command completion,
-% spelling checking etc., based on the packages used in a document.
-% This would need agreement on a `suitable form'.  \item Indexing of
-% the modules used in \texttt{docstrip}'s "%<" directives.  I'm not
-% sure how to index directives containing module combinations; \item
-% Writing out bibliographic information about the package; \item Allow
-% turning off use of the special font for, say, the next guarded
-% block.
-% \end{itemize}
-%
-% \ifmulticols
-% \end{multicols}
-%
-% \begin{multicols}{2}[\medskip \rule{\textwidth}{.3pt}
-%                      \section{Introduction}]
-% \else
 % \section{Introduction}
-% \fi
 %
-% The \TeX{} macros which are described here allow definitions and
-% documentation to be held in one and the same file.  This has the
-% advantage that normally very complicated instructions are made
-% simpler to understand by comments inside the definition. In addition
-% to this, updates are easier and only one source file needs to be
-% changed.  On the other hand, because of this, the package files are
-% considerably longer: thus \TeX{} takes longer to load them.  If this
-% is a problem, there is an easy remedy: one needs only to run the
-% \texttt{docstrip.tex} program that removes nearly all lines that begin
-% with a
-% percent sign.
+% This is a new version of the \DOC package, written roughly 30 years
+% after the initial release. As the package has been used for so long
+% (and largely unchanged)
+% it is absolutely important to preserve existing interfaces, even if
+% we can agree that they could have been done better.
 %
-% The idea of integrated documentation was born with the development
-% of the \TeX{} program; it was crystallized in Pascal with the \Web{}
-% system.  The advantages of this method are plain to see (it's easy
-% to make comparisons \cite{art:Knuthliterat}).  Since this
-% development, systems similar to \Web{} have been developed for other
-% programming languages. But for one of the most complicated
-% programming languages (\TeX) the documentation has however been
-% neglected.  The \TeX{} world seems to be divided between:---
-% \begin{itemize} \item a couple of ``wizards'', who produce many
-% lines of completely unreadable code ``off the cuff'', and \item many
-% users who are amazed that it works just how they want it to do.  Or
-% rather, who despair that certain macros refuse to do what is
-% expected of them.\end{itemize}
+% So this is a light-weight change, basically adding hyperlink support
+% and adding a way to provide generally \DOC elements (not just macros
+% and environments) and try to do this properly (which wasn't the case
+% for environments either in the past). The ideas for this have been
+% stolen from the \DOX package by Didier Verna even though I
+% didn't keep his interfaces.
 %
-% I do not think that the \Web{} system is {\em the\/} reference work;
-% on the contrary, it is a prototype which suffices for the
-% development of programs within the \TeX{} world.  It is sufficient,
-% but not totally sufficient.\footnote{I know that this will be seen
-% differently by a few people, but this product should not be seen as
-% the finished product, at least as far as applications concerning
-% \TeX{} are concerned.  The long-standing debate over `multiple
-% change files' shows this well.} As a result of \Web, new programming
-% perspectives have been demonstrated; unfortunately, though, they
-% haven't been developed further for other programming languages.
+% Most of the documentation below is from the earlier release  which
+% accounts for some inconsistencies in presentation, mea culpa.
 %
-% The method of documentation of \TeX{} macros which I have introduced
-% here should also only be taken as a first sketch.  It is designed
-% explicitly to run under \LaTeX{} alone.  Not because I was of the
-% opinion that this was the best starting point, but because from this
-% starting point it was the quickest to develop.\footnote{This
-% argument is a bad one, however, it is all too often trotted out.} As
-% a result of this design decision, I had to move away from the
-% concept of modularization; this was certainly a step backward.
 %
-% I would be happy if this article could spark off discussion over
-% \TeX\ documentation.  I can only advise anyone who thinks that they
-% can cope without documentation to ``Stop Time'' until he or she
-% completely understands the \AmSTeX{} source code.
-%
-%
-%
-%
-%
-% \subsection{Using the \DOC{} package}
-%
-% Just like any other package, invoke it by requesting it with a
-% |\usepackage| command in the preamble. \textsf{Doc}'s use of
-% |\reversemarginpars| may make it incompatible with some classes.
-% \changes{v1.7a}{1992/02/25}{Altered usage info}
-%
-%
-% \ifmulticols\end{multicols}\fi
-%
-%
 % \section{The User Interface}\label{sec:interface}
 % \subsection{The driver file}
 %
@@ -342,16 +327,16 @@
 % package one has to prepare a special driver file which produces the
 % formatted document. This driver file has the following
 % characteristics:
-%
-% \noindent |\documentclass[|\meta{options}]^^A
-%           |{|\meta{document-class}|}|\\[1pt]
+% \begin{quote}
+% \noindent |\documentclass|\oarg{options}^^A
+%           \marg{document-class}\\[1pt]
 % |\usepackage{doc}|\\[3pt]
 % \hspace*{10pt}\meta{preamble}\\[3pt]
 % |\begin{document}|\\[3pt]
 % \hspace*{10pt}\meta{special input commands}\\[3pt]
 % |\end{document}|
-%
-% The \meta{document-class} might be any document class, I normally
+% \end{quote}
+% The \meta{document-class} might be any document class, I usually
 % use \texttt{article}.
 %
 % In the \meta{preamble} one should place declarations which
@@ -358,20 +343,22 @@
 % manipulate the behavior of the \DOC{} package like
 % |\DisableCrossrefs| or |\OnlyDescription|.
 %
-% \DescribeMacro\DocInput \DescribeMacro\IndexInput
-% Finally the \meta{special input commands} part should contain one or
-% more |\DocInput|\meta{file name} and/or
-% |\IndexInput|\meta{file name} commands.  The
+%
+% \DescribeInterfaceMacro\DocInput \DescribeInterfaceMacro\IndexInput
+% Finally
+% the \meta{special input commands} part should contain one or
+% more |\DocInput|\marg{file name} and/or
+% |\IndexInput|\marg{file name} commands.  The
 % |\DocInput| command is used for files prepared for the
 % \DOC{} package whereas |\IndexInput| can be used for all kinds of
 % macro files.  See page \pageref{..Input} for more details of
-% "\IndexInput".  Multiple "\DocInput"s can be used with a
+% |\IndexInput|.  Multiple |\DocInput|s can be used with a
 % number of included files which are each self-contained
 % self-documenting packages---for instance, each containing
-% "\maketitle".
+% |\maketitle|.
 %
 % As an example, the driver file for the \DOC{} package itself is
-% the following text surrounded by "%<*driver>" and "%</driver>".
+% the following text surrounded by |%<*driver>| and |%</driver>|.
 % To produce the documentation you can simply run the \texttt{.dtx}
 % file through \LaTeX{} in which case this code will be executed
 % (loading the document class \texttt{ltxdoc}, etc.) or you can
@@ -379,7 +366,7 @@
 % the \texttt{docstrip} program.
 % The line numbers below are added by
 % \DOC{}'s formatting.
-% Note that the class \textsf{ltxdoc} has the \DOC{} package
+% Note that the class \cls{ltxdoc} has the \DOC{} package
 % preloaded.
 % \changes{v1.7a}{1992/03/06}{Added
 %                 docstrip-derivable driver file as example.}
@@ -387,14 +374,20 @@
 %    \begin{macrocode}
 %<*driver>
 \documentclass{ltxdoc}
+
+\usepackage[T1]{fontenc}
+\usepackage{xspace}          
+
+\OnlyDescription
+
 \EnableCrossrefs
- %\DisableCrossrefs % Say \DisableCrossrefs if index is ready
+ %\DisableCrossrefs     % Say \DisableCrossrefs if index is ready
 \CodelineIndex
-\RecordChanges                  % Gather update information
- %\OnlyDescription  % comment out for implementation details
- %\OldMakeindex     % use if your MakeIndex is pre-v2.9
-\setlength\hfuzz{15pt}  % dont make so many
-\hbadness=7000          % over and under full box warnings
+\RecordChanges          % Gather update information
+\SetupDoc{reportchangedates}
+ %\OnlyDescription      % comment out for implementation details
+\setlength\hfuzz{15pt}  % don't show so many
+\hbadness=7000          % over- and underfull box warnings
 \begin{document}
    \DocInput{doc.dtx}
 \end{document}
@@ -401,7 +394,64 @@
 %</driver>
 %    \end{macrocode}
 %
+% \RecordIndexType{\CodelineIndex}{InterfaceMacro}
+% \RecordIndexType{\DisableCrossrefs}{InterfaceMacro}
+% \RecordIndexType{\DocInput}{InterfaceMacro}
+% \RecordIndexType{\EnableCrossrefs}{InterfaceMacro}
+% \RecordIndexType{\OnlyDescription}{InterfaceMacro}
+% \RecordIndexType{\RecordChanges}{InterfaceMacro}
+% \RecordIndexType{\hbadness}{TeXCounter}
+% \RecordIndexType{\hfuzz}{LaTeXDimen}
 %
+%
+% \subsection{Package options}
+%
+% \NewIn{v3}
+% Starting with version~3 the \DOC package now offers a small number
+% of package options to modify its overall behavior. These are:
+% \DescribeOption[noprint]{multicol}
+% \DescribeOption[noprint]{nomulticol}
+% \DescribeOption[noprint]{hyperref}
+% \DescribeOption[noprint]{nohyperref}
+% \DescribeOption[noprint]{debugshow}
+% \DescribeOption[noprint]{noindex}
+% \DescribeOption[noprint]{noprint}
+% \DescribeOption[noprint]{reportchangedates}
+% \begin{description}
+% \item[\opt{hyperref}, \opt{nohyperref}] Boolean (default \texttt{true}). Load the
+%    \pkg{hyperref} package and make index references to code lines
+%    and pages and other items clickable links. \opt{nohyperref} is
+%    the complementary key.
+%
+% \item[\opt{multicol}, \opt{nomulticol}] Boolean (default \texttt{true}). Load the
+%    \pkg{multicol} package for use in typesetting the index and the
+%    list of changes. \opt{nomulticol} is
+%    the complementary key.
+%
+% \item[\opt{debugshow}] Boolean (default \texttt{false}). Provide
+%    various tracing information at the terminal and in the transcript
+%    file. In particular show which elements are indexed.
+%
+% \item[\opt{noindex}] Boolean (default \texttt{false}). If set, all
+%    automatic indexing is suppressed. This option can also be used on
+%    individual elements as described below.
+%
+% \item[\opt{noprint}] Boolean (default \texttt{false}). If set, then
+%    printing of element names in the margin will be suppressed. This
+%    option can also be used on individual elements as described
+%    below.
+% \item[\opt{reportchangedates}] Boolean (default \texttt{false}). If
+%    set, then change entries list the date after the version number in
+%    the change log.
+% \end{description}
+%
+% \DescribeInterfaceMacro{\SetupDoc} Instead of providing options to the \DOC
+%    package you can call \cs{SetupDoc} and provide them there. This
+%    allows, for example,  to change default values in case \DOC was already
+%    loaded earlier.
+%
+%
+%
 % \subsection{General conventions}
 %
 % A \TeX{} file prepared to be used with the `doc' package
@@ -413,10 +463,18 @@
 % \LaTeX{} commands except that the character `|%|' cannot be
 % used as a comment character.
 % \SortIndex{\string^\string^A}{\string\verb\verbatimchar
-% \string^\string^A\verbatimchar \encapchar usage} To allow user
-% comments, the |^^A| character is defined as a comment character
-% later on.  Such `metacomments' may be also be included simply by
-% surrounding them with "\iffalse" \ldots~"\fi".
+% \string^\string^A\verbatimchar \encapchar usage}^^A
+% \SortIndex{\string^\string^X}{\string\verb\verbatimchar
+% \string^\string^X\verbatimchar \encapchar usage}
+% To allow user
+% comments, the characters |^^A| and |^^X| are both defined as a comment character
+% later on.\footnote{In version 2 it was only
+%    \texttt{\string^\string^A}, but many keyboards combine
+%    \texttt{\string^} and \texttt{A} and automatically turn it into
+%    ``Ä''; so \texttt{\string^\string^X} was added as an
+%    alternative in version 3.}
+% Such `metacomments' may be also be included simply by
+% surrounding them with |\iffalse| \ldots~|\fi|.
 %
 % All other parts of the file are called `definition parts'.  They
 % contain fractions of the macros described in the `documentation
@@ -430,13 +488,17 @@
 % \DescribeEnv{macrocode}
 % On the other hand, if the documentation of these macros is to be
 % produced, the `definition parts' should be typeset verbatim. To
-% achieve this, these parts are surrounded by the \textsf{macrocode}
+% achieve this, these parts are surrounded by the \env{macrocode}
 % environment.
 % More exactly: before a `definition part' there should be a line
-% containing\\
-% \hspace*{\MacroIndent}\verb*+%    \begin{macrocode}+\\
-% and after this part a line\\
-% \hspace*{\MacroIndent}\verb*+%    \end{macrocode}+\\
+% containing
+% \begin{flushleft}
+%   \hspace*{\MacroIndent}\verb*+%    \begin{macrocode}+
+% \end{flushleft}
+% and after this part a line
+% \begin{flushleft}
+%   \hspace*{\MacroIndent}\verb*+%    \end{macrocode}+
+% \end{flushleft}
 % There must be {\em exactly\/} four spaces between the |%|
 % and |\end{macrocode}| --- \TeX{} is looking for this string
 % and not for the macro while processing a `definition part'.
@@ -444,16 +506,16 @@
 % Inside a `definition part' all \TeX{} commands are allowed; even the
 % percent sign could be used to suppress unwanted spaces etc.
 %
-% \DescribeEnv{macrocode*} Instead of the \textsf{macrocode}
-% environment one can also use the \textsf{macrocode$*$} environment
+% \DescribeEnv{macrocode*} Instead of the \env{macrocode}
+% environment one can also use the \env{macrocode$*$} environment
 % which produces the same results except that spaces are printed as
 % \nopagebreak\verb*+ + characters.
 %
 %
 %
-% \subsection{Describing the usage of new macros}
+% \subsection{Describing the usage of macros and environments}
 %
-% \DescribeMacro\DescribeMacro
+% \DescribeInterfaceMacro\DescribeMacro
 % When you describe a new macro you may use |\DescribeMacro| to
 % indicate that at this point the usage of a specific macro is
 % explained. It takes one argument which will be printed in the margin
@@ -461,35 +523,38 @@
 % |\DescribeMacro{\DescribeMacro}| to make clear that this is the
 % point where the usage of |\DescribeMacro| is explained.
 %
-% \DescribeMacro\DescribeEnv
-% An analogous macro |\DescribeEnv| should be used to indicate
-% that a \LaTeX{} environment is explained. It will produce a somewhat
-% different index entry. Below I used |\DescribeEnv{verbatim}|.
+% As the argument to |\DescribeMacro| is a command name, many people
+% got used to using the (incorrect) short form, i.e., omitting the
+% braces around the argument as in |\DescribeMacro\foo|. This does
+% work as long as the macro name consists only of ``letters''.
+% However, if the name contains special characters that are normally
+% not of type ``letter'' (such as |@|, or in case of \pkg{expl3} |_|
+% and |:|) this will fail dramatically. |\DescribeMacro| would then
+% receive only a partial command name (up to the first ``non-letter'')
+% e.g., |\DescribeMacro\foo at bar| would be equivalent to
+% |\DescribeMacro{\foo} @bar| and you can guess that this can
+% resulting in both incorrect output and possibly low-level error
+% messages.
 %
-% \DescribeEnv{verbatim}
-% It is often a good idea to include examples of the usage of new macros
-% in the text. Because of the |%| sign in the first column of every
-% row, the \textsf{verbatim} environment is slightly altered to suppress
-% those
-% characters.\footnote{These macros were written by Rainer
-%                      Sch\"opf~\cite{art:verbatim}. He also
-%                      provided a new \textsf{verbatim} environment
-%                      which can be used inside of other macros.}
-% \DescribeEnv{verbatim*}
-% The \textsf{verbatim$*$} environment is changed in the same way.
-% \changes{v1.7a}{1992/02/26}{Documented \cs{verb} change.}
-% \DescribeMacro\verb
-% The "\verb" command is re-implemented to give an error report if a
-% newline appears in its argument.
-% The \textsf{verbatim} and \textsf{verbatim$*$} environments set text
-% in the style defined by "\MacroFont"~(\S\ref{sec:macrofont}).
+% \DescribeInterfaceMacro\DescribeEnv
+% An analogous macro |\DescribeEnv| should be used to indicate that a
+% \LaTeX{} environment is explained. It will produce a somewhat
+% different index entry and a slightly different display in the
+% margin. Below I used |\DescribeEnv{verbatim}|.
 %
 %
+% \NewIn{v3}
+% Starting with version~3 the \cs{Describe...} commands accept an
+% optional argument in which you can specify either \opt{noindex}
+% or \opt{noprint} to suppress indexing or printing for that
+% particular instance. Using both would be possible too, but pointless
+% as then the commands wouldn't do anything any more.
 %
-% \subsection{Describing the definition of new macros}
 %
+% \subsection{Describing the definition of macros and environments}
+%
 % \DescribeEnv{macro}
-% To describe the definition of a new macro we use the \textsf{macro}
+% To describe the definition of a (new) macro we use the \env{macro}
 % environment. It has one argument: the name of the new
 % macro.\footnote{This is a change to the style design I described in
 %                ^^A \TUB ^^A removed in case ltugboat.sty not used
@@ -505,20 +570,26 @@
 % labels in the margin are placed under each other.
 % \changes{v1.7a}{1992/02/26}{Note on need for some text in macro env.}
 % There should be some text---even  if it's just an empty
-% "\mbox{}"---in this environment before "\begin{macrocode}" or the
+% |\mbox{}|---in this environment before |\begin{macrocode}| or the
 % marginal label won't print in the right place.
 %
-% \DescribeMacro\MacrocodeTopsep
-% \DescribeMacro\MacroTopsep
+% \NewIn{v3}
+% In fact it is now allowed to specify several macros in the argument,
+% separated by commas. This is a short form for starting several
+% \env{macro} environments in direct succession. Of course, you
+% should then have also only one matching |\end{macro}|.
+%
+% \DescribeLaTeXSkip\MacrocodeTopsep
+% \DescribeLaTeXSkip\MacroTopsep
 % There also exist four style parameters: |\MacrocodeTopsep| and
 % |\MacroTopsep| are used to control the vertical spacing above
-% and below the \textsf{macrocode} and the \textsf{macro}
-% \DescribeMacro\MacroIndent
+% and below the \env{macrocode} and the \env{macro}
+% \DescribeLaTeXDimen\MacroIndent
 % environment, |\MacroIndent| is used to indent the lines of code
 % and
-% \DescribeMacro\MacroFont \label{sec:macrofont}
+% \DescribeInterfaceMacro\MacroFont \label{sec:macrofont}
 % |\MacroFont| holds the font and a possible size change command
-% for the code lines, the "verbatim"["*"] environment and the macro
+% for the code lines, the |verbatim|[|*|] environment and the macro
 % names printed in the margin.  If you want
 % to change their default values in a
 % class file (like \texttt{ltugboat.cls}) use the |\DocstyleParms|
@@ -526,17 +597,34 @@
 % be changed directly as long as the redefinition happens before
 % the |\begin{document}|.
 %
+% \DescribeEnv{environment}
+% For documenting the definition of environments one can use the
+% environment \texttt{environment} which works like the \texttt{macro}
+% environment, except that it expects an \meta{env-name}
+% (without a backslash)
+% as its argument and internally provides different index
+% entries suitable for environments.
+% Nowadays you can alternatively specify a comma-separated list of environments.
 %
+% \NewIn{v3}
+% Starting with version~3 these environments accept an optional
+% argument in which you can specify \opt{noindex} or \opt{noprint} or
+% both to suppress indexing or printing for that particular
+% instance. If any such setting is made on the environment level it
+% overwrites whatever default was given when the \DOC element was
+% defined or when the package was loaded.
 %
 %
-% \subsection{Formatting the margins}
 %
-% \DescribeMacro\PrintDescribeMacro
-% \DescribeMacro\PrintDescribeEnv
-% \DescribeMacro\PrintMacroName
-% \DescribeMacro\PrintEnvName
-% As mentioned earlier, some macros and the \textsf{macro} environment
-% print their arguments in the margin. This is actually done by four
+%
+% \subsection{Formatting names in the margin}
+%
+% \DescribeInterfaceMacro\PrintDescribeMacro
+% \DescribeInterfaceMacro\PrintDescribeEnv
+% \DescribeInterfaceMacro\PrintMacroName
+% \DescribeInterfaceMacro\PrintEnvName
+% As mentioned earlier, some macros and environment
+% print their arguments in the margin. The actual formatting is done by four
 % macros which are user
 % definable.\footnote{You may place the changed definitions in a
 %                     separate package
@@ -544,33 +632,157 @@
 %                     file.
 %                     For example, if you don't like any names in the
 %                     margin
-%                     but want a fine index you can simply
-%                     \texttt{\bslash let}
-%                     these macros equal \texttt{\bslash @gobble}.
-%                     The doc package won't redefine any existing
-%                     definitions of these macros.}
-% They are named |\PrintDescribeMacro|, |\PrintDescribeEnv|,
-% |\PrintMacroName| (called by the \textsf{macro} environment) and
-% |\PrintEnvName| (called by the \textsf{environment} environment).
+%                     but want a fine index you can simply redefine them
+% accept their argument and do nothing with it.}
+% They are named |\PrintDescribeMacro| and |\PrintDescribeEnv| (defining
+% how |\DescribeMacro| and |\DescribeEnv| behave) and
+% |\PrintMacroName| and
+% |\PrintEnvName| (called by the \env{macro} and \env{environment}
+% environments, respectively).
 %
 %
+% \subsection{Providing further documentation items}
+%
+% Out of the box the \DOC package offers the above commands and
+% environments to document macros and environments.
+% \NewIn{v3}
+% With version 3
+% this has now been extended in a generic fashion so that you can
+% easily provide your own items, such as counters, length register,
+% options etc.
+%
+% \DescribeInterfaceMacro{\NewDocElement}
+% The general syntax for providing a new \DOC element is
+% \begin{quote}
+%   \cs{NewDocElement}\oarg{options}\marg{element-name}\marg{env-name}
+% \end{quote}
+% By convention the \meta{element-name} has the first letter
+% uppercased as in \texttt{Env} or \texttt{Macro}.
+%
+% Such a declaration will define for you
+% \begin{itemize}
+% \item the command |\Describe|\meta{element-name} which has the
+%    syntax
+%    \begin{quote}
+%      |\Describe|\meta{element-name}\oarg{options}\marg{element}
+%    \end{quote}
+%
+% \item the environment \meta{env-name} which has the syntax
+%    \begin{quote}
+%      \cs{begin}\marg{env-name}\oarg{options}\marg{element}
+%    \end{quote}
+%
+% \item the display command |\PrintDescribe|\meta{element-name} with
+%    the syntax
+%    \begin{quote}
+%      |\PrintDescribe|\meta{element-name}\marg{element}
+%    \end{quote}
+%
+% \item and the
+% |\Print|\meta{element-name}|Name|  display command for the
+% environment.
+% \end{itemize}
+% If any of the commands or the environment is already defined (which
+% especially with the \meta{env-name} is a danger) then you will
+% receive an error telling you so.
+%
+% \DescribeInterfaceMacro{\RenewDocElement}
+% If you want to modify an existing \DOC element use
+% |\RenewDocElement| instead.
+%
+% For example, the already provided ``\texttt{Env}'' \DOC element could have been
+% defined simply by making the declaration
+%   |\NewDocElement{Env}{environment}|
+% though that's not quite what has been done, as we will see later.
+%
+% \DescribeOption[noprint]{macrolike}
+% \DescribeOption[noprint]{envlike}
+% \DescribeOption[noprint]{toplevel}
+% \DescribeOption[noprint]{notoplevel}
+% \DescribeOption[noprint]{idxtype}
+% \DescribeOption[noprint]{printtype}
+% \DescribeOption[noprint]{idxgroup}
+% The \meta{options} are keyword/value and define further details on
+% how that \DOC element should behave. They are:
+% \begin{description}
+% \item[\opt{macrolike}] Boolean (default \opt{false}). Does this \DOC
+%   element starts with a backslash?
+%
+% \item[\opt{envlike}] Boolean. Complementary option to
+%   \opt{macrolike}.
+%
+% \item[\opt{toplevel}] Boolean (default \opt{true}). Should all
+%   a top-level index entry be made? If set to \texttt{false} then
+%   either no index entries are produced or only grouped index entries
+%   (see \opt{idxgroup} for details).
+%
+% \item[\opt{notoplevel}] Boolean.  Complementary option to
+%   \opt{toplevel}.
+%
+% \item[\opt{idxtype}] String (default \meta{env-name}). What to put
+%   (in parentheses if non-empty) at the end of a top-level index entry.
+%
+% \item[\opt{printtype}] String (default \meta{env-name}). What to put
+%   (in parentheses if non-empty) after an element name in the margin.
+%
+% \item[\opt{idxgroup}] String (default
+%   \meta{env-name}\texttt{s}). Name of the top-level index entry if
+%   entries are grouped. They are only grouped if this option is
+%   non-empty.
+%
+% \item[\opt{noindex}] Boolean (default \texttt{false}).  If set this
+%   will suppress indexing for elements of this type. This setting
+%   overwrite any global setting of \opt{noindex}.
+%
+% \item[\opt{noprint}] Boolean (default \texttt{false}).  If set this
+%   will suppress printing the element name in the margin. This setting
+%   overwrite any global setting of \opt{noprint}.
+% \end{description}
+% As usual giving a boolean option without a value sets it to
+% \texttt{true}.
+
+
+
+
+% \subsection{Displaying sample code verbatim}
+%
+% \DescribeEnv{verbatim}
+% It is often a good idea to include examples of the usage of new macros
+% in the text. Because of the |%| sign in the first column of every
+% row, the \env{verbatim} environment is slightly altered to suppress
+% those
+% characters.\footnote{These macros were written by Rainer
+%                      Schöpf~\cite{art:verbatim}. He also
+%                      provided a new \env{verbatim} environment
+%                      which can be used inside of other macros.}
+% \DescribeEnv{verbatim*}
+% The \env{verbatim$*$} environment is changed in the same way.
+% \changes{v1.7a}{1992/02/26}{Documented \cs{verb} change.}
+% \DescribeInterfaceMacro\verb
+% The |\verb| command is re-implemented to give an error report if a
+% newline appears in its argument.
+% The \env{verbatim} and \env{verbatim$*$} environments set text
+% in the style defined by |\MacroFont|~(\S\ref{sec:macrofont}).
+%
+%
+
 % \subsection{Using a special escape character}
 %
-% \DescribeMacro\SpecialEscapechar
+% \DescribeInterfaceMacro\SpecialEscapechar
 % If one defines complicated macros it is sometimes necessary to
 % introduce a new escape character because the `|\|' has got a
 % special |\catcode|. In this case one can use
 % |\SpecialEscapechar| to indicate which character is actually
 % used to play the r\^ole of the `|\|'. A scheme like this is
-% needed because the \textsf{macrocode} environment and its counterpart
-% \textsf{macrocode$*$} produce an index entry for every occurrence of a
+% needed because the \env{macrocode} environment and its counterpart
+% \env{macrocode$*$} produce an index entry for every occurrence of a
 % macro name. They would be very confused if you didn't tell them that
 % you'd changed |\catcode|$\,$s.  The argument to
 % |\SpecialEscapechar| is a single-letter control sequence, that
-% is, one has to use "\|" for example to denote that `\verb+|+'
+% is, one has to use \verb=\|= for example to denote that `\verb+|+'
 % is used as an escape character. |\SpecialEscapechar| only
-% changes the behavior of the next \textsf{macrocode} or
-% \textsf{macrocode$*$} environment.
+% changes the behavior of the next \env{macrocode} or
+% \env{macrocode$*$} environment.
 %
 %  The actual index entries created will all be printed with |\|
 % rather than \verb+|+, but this probably reflects their usage, if not
@@ -582,20 +794,24 @@
 %
 % \subsection{Cross-referencing all macros used}
 %
-% \DescribeMacro\DisableCrossrefs \DescribeMacro\EnableCrossrefs As
-% already mentioned, every new macro name used within a
-% \textsf{macrocode} or \textsf{macrocode$*$} environment will produce
-% an index entry. In this way one can easily find out where a specific
-% macro is used.  Since \TeX{} is considerably slower when it has to
-% produce such a bulk of index entries one can turn off this feature
-% by using |\DisableCrossrefs| in the driver file. To turn it on again
-% just use |\EnableCrossrefs|.\footnote{Actually, \texttt{\bslash
-% EnableCrossrefs} changes things more drastically; any following
-% \texttt{\bslash DisableCrossrefs} which might be present in the
-% source will be ignored.}
+% \DescribeInterfaceMacro\DisableCrossrefs \DescribeInterfaceMacro\EnableCrossrefs As
+% already mentioned, every macro name used within a
+% \env{macrocode} or \env{macrocode$*$} environment will produce an
+% index entry. In this way one can easily find out where a specific
+% macro is used.  Since \TeX{} is considerably slower\footnote{This
+% comment was written about 30 years ago. \TeX{} is still considerably
+% slower but while it took minutes to process a large document (such
+% as the \LaTeX{} kernel documentation) it takes seconds or less these
+% days. Thus \cs{DisableCrossrefs} isn't really that necessary these
+% days.}  when it has to produce such a bulk of index entries one can
+% turn off this feature by using |\DisableCrossrefs| in the driver
+% file. To turn it on again just use
+% |\EnableCrossrefs|.\footnote{Actually, \cs{EnableCrossrefs} changes
+% things more drastically; any following call to \cs{DisableCrossrefs}
+% which might be present in the source will be ignored.}
 %
 %
-% \DescribeMacro\DoNotIndex
+% \DescribeInterfaceMacro\DoNotIndex
 % But also finer control is provided. The |\DoNotIndex| macro
 % takes a list of macro names separated by commas. Those names won't
 % show up in the index. You might use several |\DoNotIndex|
@@ -605,26 +821,28 @@
 %
 % All three above declarations are local to the current group.
 %
-% Production (or not) of the index (via the "\makeindex" commend) is
+% Production (or not) of the index (via the |\makeindex| commend) is
 % controlled by using or omitting the following declarations in the
 % driver file preamble; if neither is used, no index is produced.
-% \DescribeMacro\PageIndex Using "\PageIndex" makes all index
+% \DescribeInterfaceMacro\PageIndex Using |\PageIndex| makes all index
 % entries refer to their page number; with
-% \DescribeMacro\CodelineIndex "\CodelineIndex", index entries
-% produced by "\DescribeMacro" and "\DescribeEnv" refer to page number
-% but those produced by the \textsf{macro} environment refer to the
+% \DescribeInterfaceMacro\CodelineIndex |\CodelineIndex|, index entries
+% produced by |\DescribeMacro| and |\DescribeEnv| and possibly further
+% |\Describe...| commands refer to a page number
+% but those produced by the \env{macro} environment (or other \DOC
+% element environments) refer to the
 % code lines, which will be numbered automatically.\footnote{The line
 % number is actually that of the first line of the first
-% \textsf{macrocode} environment in the \textsf{macro} environment.}
-% \DescribeMacro\theCodelineNo
+% \env{macrocode} environment in the \env{macro} environment.}
+% \DescribeInterfaceMacro\theCodelineNo
 % The style of this numbering can be controlled by defining the macro
-% "\theCodelineNo".  Its default definition is to use scriptsize
+% |\theCodelineNo|.  Its default definition is to use scriptsize
 % arabic numerals; a user-supplied definition won't be overwritten.
 %
-% \DescribeMacro\CodelineNumbered
+% \DescribeInterfaceMacro\CodelineNumbered
 % When you don't wish to get an index but want your code lines
-% numbered use "\CodelineNumbered" instead of "\CodelineIndex". This
-% prevents the generation of an unnecessary ".idx" file.
+% numbered use |\CodelineNumbered| instead of |\CodelineIndex|. This
+% prevents the generation of an unnecessary |.idx| file.
 %
 %
 % \subsection{Producing the actual index entries}
@@ -632,7 +850,7 @@
 % Several of the aforementioned macros will produce some sort of index
 % entries. These entries have to be sorted by an external
 % program---the current implementation assumes that the
-% \textsf{makeindex} program by Chen~\cite{art:Chen} is used.
+% \prg{makeindex} program by Chen~\cite{art:Chen} is used.
 %
 % But this isn't built in: one has only to redefine some of the
 % following macros to be able to use any other index program.  All
@@ -644,25 +862,25 @@
 %
 %  To allow the user to change the specific characters recognized by
 %  his or her index program all characters which have special meaning
-%  in the \textsf{makeindex} program are given symbolic
+%  in the \prg{makeindex} program are given symbolic
 %  names.\footnote{I don't know if there exists a program which needs
 %                  more command characters, but I hope not.}
 % However, all characters used should be of |\catcode| other than
 % `letter' (11).
 %
-% \DescribeMacro{\actualchar}
+% \DescribeInterfaceMacro{\actualchar}
 % The |\actualchar| is used to separate the `key' and the actual
 % index entry.
-% \DescribeMacro{\quotechar}
+% \DescribeInterfaceMacro{\quotechar}
 % The |\quotechar| is used before a special index program
 % character to suppress its special meaning.
-% \DescribeMacro{\encapchar}
+% \DescribeInterfaceMacro{\encapchar}
 %  The |\encapchar| separates the indexing information from a
-% letter string which \textsf{makeindex} uses as a \TeX{} command to
+% letter string which \prg{makeindex} uses as a \TeX{} command to
 % format the page number associated with a special entry.  It is used
 % in this package to apply the |\main| and the |\usage|
 % commands.
-% \DescribeMacro{\levelchar}
+% \DescribeInterfaceMacro{\levelchar}
 %  Additionally |\levelchar| is used to separate `item',
 % `subitem' and `subsubitem' entries.
 %
@@ -670,33 +888,54 @@
 % which index program is used. In this way your files will be
 % portable.
 %
-% \DescribeMacro\SpecialMainIndex
-% \DescribeMacro\SpecialMainEnvIndex
+% \fmi{describe old \cs{SpecialMainIndex} and \cs{SpecialUsageIndex}}
+%
+% \DescribeInterfaceMacro\SpecialMainMacroIndex
+% \DescribeInterfaceMacro\SpecialMainEnvIndex
 % To produce a main index entry for a macro the
-% |\SpecialMainIndex| macro\footnote{This macro is called by the
-% \textsf{macro} environment.} may be used.  It is called `special'
+% |\SpecialMainMacroIndex| macro\footnote{This macro is called by the
+% \env{macro} environment.} may be used.  It is called `special'
 % because it has to print its argument verbatim.
 % A similar macro, called |\SpecialMainEnvIndex| is used for indexing
 % the main definition point of an
 % environment.\footnote{This macro is called by the
-% \textsf{environment} environment.}
-% \DescribeMacro\SpecialIndex
-% If you want a normal index entry for a macro name
-% |\SpecialIndex| might be used.\footnote{This macro is called
-% within the \textsf{macrocode} environment when encountering a macro
-% name.}
-% \DescribeMacro\SpecialUsageIndex
-% \DescribeMacro\SpecialEnvIndex
+% \env{environment} environment.}
+%
+% \DescribeInterfaceMacro\SpecialMacroIndex
+% \DescribeInterfaceMacro\SpecialEnvIndex
 % To index the usage of a macro or an environment
-% |\SpecialUsageIndex| and |\SpecialEnvIndex| may be used.
-% \DescribeMacro\SortIndex
-% Additionally a |\SortIndex| command is provided.  It takes two
-% arguments---the sort key and the actual index entry.
+% |\SpecialMacroIndex| and |\SpecialEnvIndex| may be used.
 %
 % All these macros are normally used by other macros; you will need
 % them only in an emergency.
 %
-% \DescribeMacro\verbatimchar
+% \NewIn{v3}
+% If further code elements are declared with
+% |\NewDocElement|\marg{name}\texttt{...} then this sets up
+% additional indexing commands, e.g.,
+% \cs{SpecialMain\meta{name}Index}.
+%
+% \DescribeInterfaceMacro\SpecialIndex
+% The \env{macrocode} environment is automatically indexing macros
+% (normally by code line number). You can (with care) also do this
+% manually by
+% |\SpecialIndex|. However, note that if |\CodelineIndex| is used
+% this will generate an entry referring to the last code line which is
+% usually not what you want. It does, however, make some sense if you
+% always refer to pages only, i.e., if you use |\PageIndex|.
+%
+% \DescribeInterfaceMacro\SpecialShortIndex
+% \NewIn{v3}
+% For single character macros, e.g., |\{|, doesn't always work
+% correctly.
+% For this reason there is now also
+% a special variant the can produce correct index entries for them.
+%
+% \DescribeInterfaceMacro\SortIndex
+% Additionally a |\SortIndex| command is provided.  It takes two
+% arguments---the sort key and the actual index entry.
+%
+% \DescribeInterfaceMacro\verbatimchar
 % But there is one characteristic worth mentioning: all macro names in
 % the index are typeset with the |\verb*| command. Therefore one
 % special character is needed to act as a delimiter for this command.
@@ -704,12 +943,14 @@
 % referenced indirectly, by the macro |\verbatimchar|. It expands
 % by default to \verb?+?  but if your code lines contain macros with
 % `\texttt{+}' characters in their names (e.g.\ when you use \verb?\+?)
-% you will end up with an index entry containing \verb?\verb+\++?
-% which will be typeset as `\verb+\++' and not as `\verb?\+?'. In this
-% case you should redefine |\verbatimchar| globally or locally to
-% overcome this problem.
+% then that caused a problem because you ended up with an
+% index entry containing \verb?\verb+\++?
+% which will be typeset as `\verb+\++' and not as `\verb?\+?'.
+% \NewIn{v3}
+% In version 3 this is now automatically taken care of (with the help
+% of the |\SpecialShortIndex| command).
 %
-% \DescribeMacro\*
+% \DescribeInterfaceMacro\*
 % We also provide a |\*| macro.  This is intended to be used for
 % index entries like
 % \begin{quote}
@@ -721,30 +962,18 @@
 %   \index{index entries\levelchar Special macros for \*}
 %\end{verbatim}
 %
-% \DescribeMacro\OldMakeindex
-% Versions of \textsf{makeindex} prior to 2.9 had some bugs affecting
-% \DOC{}.  One of these,
-% pertaining to the "%" character doesn't have a work-around
-% appropriate for versions with and without the
-% bug.\label{makeindex:version}  If
-% you have an old version, invoke "\OldMakeindex" in a
-% package file or the driver file to prevent problems with index entries
-% such as "\%", although you'll probably normally want to turn off
-% indexing of "\%" anyway.  Try to get an up-to-date \textsf{makeindex}
-% from one of the \TeX{} repositories.
 %
-%
 % \subsection{Setting the index entries}
 %
 % \changes{v1.7a}{1992/03/11}{Usage note on gind.ist.} After the first
 % formatting pass through the \texttt{.dtx} file you need to sort the
 % index entries written to the \texttt{.idx} file using
-% \textsf{makeindex} or your favourite alternative.  You need a
-% suitable style file for \textsf{makeindex} (specified by the
+% \prg{makeindex} or your favorite alternative.  You need a
+% suitable style file for \prg{makeindex} (specified by the
 % \texttt{-s} switch).  A suitable one is supplied with \DOC{},
 % called \texttt{gind.ist}.
 %
-% \DescribeMacro\PrintIndex
+% \DescribeInterfaceMacro\PrintIndex
 % To read in and print the sorted index, just put the
 % |\PrintIndex| command as the last (commented-out, and thus
 % executed during the documentation pass through the file) command
@@ -751,19 +980,21 @@
 % in your package file.  Precede it by any bibliography commands
 % necessary for your citations.
 % Alternatively, it may be more convenient to put all such calls
-% amongt the arguments of the |\StopEventually| macro, in
+% amongst the arguments of the |\MaybeStop| macro, in
 % which case a |\Finale| command should appear at the end of
 % your file.
 %
 % \DescribeEnv{theindex}
 % Contrary to standard \LaTeX, the index is typeset in three columns
-% by default. This is controlled by the \LaTeX{} counter
+% by default.
+% \DescribeLaTeXCounter{IndexColumns}
+% This is controlled by the \LaTeX{} counter
 % `\textsf{IndexColumns}' and can therefore be changed with a
 % |\setcounter| declaration.  Additionally one doesn't want to
-% start a new page unnecessarily.  Therefore the \textsf{theindex}
+% start a new page unnecessarily.  Therefore the \env{theindex}
 % environment is redefined.
-% \DescribeMacro\IndexMin
-% When the \textsf{theindex} environment starts it will measure how much
+% \DescribeLaTeXDimen\IndexMin
+% When the \env{theindex} environment starts it will measure how much
 % space is left on the current page. If this is more than
 % |\IndexMin| then the index will start on this page. Otherwise
 % |\newpage| is called.
@@ -771,7 +1002,7 @@
 % Then a short introduction about the meaning of several index entries
 % is typeset (still in onecolumn mode). Afterwards the actual index
 % entries follow in multi-column mode.
-% \DescribeMacro\IndexPrologue
+% \DescribeInterfaceMacro\IndexPrologue
 % You can change this prologue with the help of the
 % |\IndexPrologue| macro. Actually the section heading is also
 % produced in this way, so you'd better write something like:
@@ -778,16 +1009,16 @@
 % \begin{verbatim}
 %   \IndexPrologue{\section*{Index} The index entries underlined ...}
 %\end{verbatim}
-% When the \textsf{theindex} environment is finished the last page will
+% When the \env{theindex} environment is finished the last page will
 % be reformatted to produce balanced columns. This improves the layout
 % and allows the next article to start on the same page.
-% \DescribeMacro\IndexParms
+% \DescribeInterfaceMacro\IndexParms
 % Formatting of the index columns (values for |\columnssep|
 % etc.)\ is controlled by the |\IndexParms| macro. It assigns the
 % following values:
-% \SpecialUsageIndex{\parindent}\SpecialUsageIndex{\columnsep}^^A
-% \SpecialUsageIndex{\parskip}\SpecialUsageIndex{\rightskip}^^A
-% \SpecialUsageIndex{\mathsurround}\SpecialUsageIndex{\parfillskip}
+% \SpecialLaTeXDimenIndex{\parindent}\SpecialLaTeXDimenIndex{\columnsep}^^A
+% \SpecialLaTeXSkipIndex{\parskip}\SpecialLaTeXSkipIndex{\rightskip}^^A
+% \SpecialLaTeXDimenIndex{\mathsurround}\SpecialLaTeXSkipIndex{\parfillskip}
 % \begin{center}
 %  \begin{tabular}{l@{\,=\,}ll@{\,=\,}l}
 %  |\parindent|    & \IndexParms \the\parindent    &
@@ -800,24 +1031,27 @@
 %                         \expandafter\dimenvalue\the\parfillskip
 %  \end{tabular}
 % \end{center}
-% \DescribeMacro{\@idxitem}
+% \DescribeInterfaceMacro{\@idxitem}
 % Additionally it defines |\@idxitem| (which will be used when an
 % |\item| command is encountered) and selects |\small| size.
 % If you want to change any of these values you have to define them
 % all.
 %
-% \DescribeMacro\main
-% \DescribeMacro\usage
+% \DescribeInterfaceMacro\main
+% \DescribeInterfaceMacro\usage
+% \DescribeInterfaceMacro\code
 % The page numbers for main index entries are encapsulated by the
 % |\main| macro (underlining its argument) and the numbers
 % denoting the description are encapsulated by the |\usage| macro
-% (which produces {\em italics}). As usual these commands are user
+% (which produces \textit{italics}). |\code| encapsulates page or code
+%    line numbers in entries generated by parsing the code inside
+%    \env{macrocode} environments. As usual these commands are user
 % definable.
 %
 %
 % \subsection{Changing the default values of style parameters}
 %
-% \DescribeMacro\DocstyleParms If you want to overwrite some default
+% \DescribeInterfaceMacro\DocstyleParms If you want to overwrite some default
 % settings made by the \DOC{} package, you can either put your
 % declarations in the driver file (that is after \texttt{doc.sty} is
 % read in) or use a separate package file for doing this work. In the
@@ -828,10 +1062,13 @@
 %
 % The doc package currently assigns values to the following
 % registers:
-% \SpecialUsageIndex{\IndexMin}\SpecialUsageIndex{\MacrocodeTopsep}^^A
-% \SpecialUsageIndex{\MacroTopsep}^^A
-% \SpecialUsageIndex{\MacroIndent}\SpecialUsageIndex{\marginparpush}^^A
-% \SpecialUsageIndex{\marginparwidth}\SpecialUsageIndex{\tolerance}
+% \SpecialLaTeXDimenIndex{\IndexMin}^^A
+% \SpecialLaTeXSkipIndex{\MacrocodeTopsep}^^A
+% \SpecialLaTeXSkipIndex{\MacroTopsep}^^A
+% \SpecialLaTeXDimenIndex{\MacroIndent}^^A
+% \SpecialLaTeXDimenIndex{\marginparpush}^^A
+% \SpecialLaTeXDimenIndex{\marginparwidth}^^A
+% \SpecialTeXCounterIndex{\tolerance}
 % \begin{center}
 %  \begin{tabular}{l@{\,=\,}ll@{\,=\,}l}
 %  |\IndexMin|      & \the\IndexMin    &
@@ -847,34 +1084,34 @@
 %
 % \subsection{Short input of verbatim text pieces}
 %
-% \DescribeMacro\MakeShortVerb
-% \DescribeMacro{\MakeShortVerb*} \DescribeMacro\DeleteShortVerb It is
-% awkward to have to type, say, "\verb|"\ldots"|" continually when
+% \DescribeInterfaceMacro\MakeShortVerb
+% \DescribeInterfaceMacro{\MakeShortVerb*} \DescribeInterfaceMacro\DeleteShortVerb It is
+% awkward to have to type, say, \verb"\verb|"\ldots\verb"|" continually when
 % quoting
 % verbatim bits (like macro names) in the text, so an abbreviation
 % mechanism is provided.  Pick a character \meta{c}---one which
 % normally has catcode `other' unless you have very good reason not
 % to---which you don't envisage using in the text, or not using often.
-% (I like |"|, but you may prefer "|" if you have |"| active to do
+% (I like |"|, but you may prefer \verb"|" if you have |"| active to do
 % umlauts, for instance.)  Then if you say
-% "\MakeShortVerb{\"\meta{c}"}" you can subsequently use
+% |\MakeShortVerb{\|\meta{c}|}| you can subsequently use
 % \meta{c}\meta{text}\meta{c} as the equivalent of
-% "\verb"\meta{c}\meta{text}\meta{c};  analogously, the "*"-form
-% "\MakeShortVerb*{\"\meta{c}"}" gives you the equivalent of
-% "\verb*"\meta{c}\meta{text}\meta{c}.  Use
-% "\DeleteShortVerb{\"\meta{c}"}" if you subsequently want \meta{c} to
+% |\verb|\meta{c}\meta{text}\meta{c};  analogously, the |*|-form
+% |\MakeShortVerb*{\|\meta{c}|}| gives you the equivalent of
+% |\verb*|\meta{c}\meta{text}\meta{c}.  Use
+% |\DeleteShortVerb{\|\meta{c}|}| if you subsequently want \meta{c} to
 % revert to its previous meaning---you can always turn it on again
 % after the unusual section.  The `short verb' commands make global
-% changes.  The abbreviated "\verb" may not appear in the argument of
-% another command just like "\verb".  However the `short verb'
-% character may be used freely in the \textsf{verbatim} and
-% \textsf{macrocode} environments without ill effect.
-% "\DeleteShortVerb" is silently ignored if its argument does not
+% changes.  The abbreviated |\verb| may not appear in the argument of
+% another command just like |\verb|.  However the `short verb'
+% character may be used freely in the \env{verbatim} and
+% \env{macrocode} environments without ill effect.
+% |\DeleteShortVerb| is silently ignored if its argument does not
 % currently represent a short verb character.  Both commands type a
 % message to tell you the meaning of the character is being changed.
 %
-% Please remember that the command "\verb" cannot be used in arguments
-% of other commands. Therefore abbreviation characters for "\verb"
+% Please remember that the command |\verb| cannot be used in arguments
+% of other commands. Therefore abbreviation characters for |\verb|
 % cannot be used there either.
 %
 % This feature is also available as a sole package, \texttt{shortvrb}.
@@ -885,24 +1122,33 @@
 % We provide macros for logos such as \Web, \AmSTeX, \BibTeX,
 % \SliTeX{} and \PlainTeX. Just type |\Web|, |\AmSTeX|,
 % |\BibTeX|, |\SliTeX| or |\PlainTeX|, respectively.
-% \LaTeX{} and \TeX{} are already defined in the \LaTeX{} format.
+% \LaTeX{} and \TeX{} are already defined in \texttt{latex.tex}.
 %
-% \DescribeMacro\meta
+% \DescribeInterfaceMacro\meta
 % Another useful macro is |\meta| which has one argument and
 % produces something like \meta{dimen parameter}.
 %
-% \DescribeMacro\OnlyDescription
-% \DescribeMacro\StopEventually
+% \DescribeInterfaceMacro\OnlyDescription
+% \DescribeInterfaceMacro\MaybeStop
+% \DescribeObsoleteInterfaceMacro\StopEventually
 % You can use the |\OnlyDescription| declaration in the driver
 % file to suppress the last part of your document (which presumably
 % exhibits the code). To make this work
-% you have to place the command |\StopEventually| at a suitable
-% point in your file.  This macro has one argument in which you put
+% \NewIn{v3}
+% you have to place the command |\MaybeStop| at a suitable
+% point in your file.  This macro\footnote{For about 30 years this
+%    macro was called \cs{StopEventually} which was due to a ``false
+%    friend'' misunderstanding. In the German language the word
+%    ``eventuell'' mean roughly ``perhaps'' which isn't quite the same
+%    as ``eventually''. But given that this is now used for so long
+%    and all over the place we can't drop the old name. So it is still
+%    there to allow processing all the existing documentation.}
+% has one argument in which you put
 % all information you want to see printed if your document ends at
 % this point (for example a bibliography which is normally printed at
 % the very end). When the |\OnlyDescription| declaration is
-% missing the |\StopEventually|
-% \DescribeMacro\Finale
+% missing the |\MaybeStop|
+% \DescribeInterfaceMacro\Finale
 % macro saves its argument in a macro called |\Finale| which can
 % afterwards be used to get things back (usually at the very end).
 % Such a scheme makes changes in two places unnecessary.
@@ -910,17 +1156,17 @@
 % Thus you can use this feature to produce a local guide for the
 % \TeX{} users which describes only the usage of macros (most of them
 % won't be interested in your definitions anyway).  For the same
-% reason the |\maketitle| \DescribeMacro\maketitle command is slightly
+% reason the |\maketitle| \DescribeInterfaceMacro\maketitle command is slightly
 % changed to allow multiple titles in one document.  So you can make
 % one driver file reading in several articles at once.
-% \DescribeMacro{\ps at titlepage} To avoid an unwanted
+% \DescribeInterfaceMacro{\ps at titlepage} To avoid an unwanted
 % \textsf{pagestyle} on the title page the |\maketitle| command issues
 % a |\thispagestyle{titlepage}| declaration which produces a
 % \textsf{plain} page if the \textsf{titlepage} page style is
-% undefined.  This allows class files like \textsf{ltugboat.cls} to
+% undefined.  This allows class files like \cls{ltugboat.cls} to
 % define their own page styles for title pages.
 %
-% \DescribeMacro\AlsoImplementation
+% \DescribeInterfaceMacro\AlsoImplementation
 % Typesetting the whole document is the default. However, this default
 % can also be explicitly selected using the declaration
 % |\AlsoImplementation|. This overwrites any previous
@@ -933,24 +1179,23 @@
 % \end{quote}
 % to make sure that all documents will show the code part.
 %
-% \DescribeMacro\IndexInput \label{..Input} Last but not least I
+% \DescribeInterfaceMacro\IndexInput \label{..Input} Last but not least I
 % defined an |\IndexInput| macro which takes a file name as an
 % argument and produces a verbatim listing of the file, indexing every
 % command as it goes along.  This might be handy, if you want to learn
 % something about macros without enough documentation.  I used this
-% feature to cross-reference \texttt{latex.tex} (these days
-% called \texttt{latex.ltx}) getting a verbatim
+% feature to cross-reference \texttt{latex.tex} getting a verbatim
 % copy with about 15 pages index.\footnote{It took quite a long time
 % and the resulting \texttt{.idx} file was longer than the
 % \texttt{.dvi} file.  Actually too long to be handled by the
-% \textsf{makeindex} program directly (on our MicroVAX) but the final
+% \prg{makeindex} program directly (on our MicroVAX) but the final
 % result was worth the trouble.}
 %
 % \changes{v2.1d}{2006/02/02}{Corrected description of \cs{changes}
 % macro.}
-% \DescribeMacro\changes
+% \DescribeInterfaceMacro\changes
 % To maintain a change history within the file, the |\changes|
-% command may be placed amongt the description part of the changed
+% command may be placed amongst the description part of the changed
 % code.  It takes three arguments, thus:
 % \begin{quote}
 % |\changes{|\meta{version}|}{|\meta{date}|}{|^^A
@@ -960,7 +1205,7 @@
 % |\glossary| mechanism is used for this) which may be printed
 % after suitable formatting. The |\changes| macro generates the
 % printed entry in such a change history; because old
-% versions\footnote{Before 2.6.} of the \textsf{makeindex}
+% versions\footnote{Before 2.6.} of the \prg{makeindex}
 % program limit such fields to 64 characters, care should be taken
 % not to exceed this limit when describing the change. The actual
 % entry consists of the \meta{version}, the |\actualchar|, the current
@@ -970,101 +1215,38 @@
 % text |\generalname| is used instead of the macro name.  When
 % referring to macros in change descriptions it is conventional to use
 % |\cs{|\meta{macroname}|}| rather than attempting to format it properly
-% and using up valuable characters in the entry with old \textsf{makeindex}
+% and using up valuable characters in the entry with old \prg{makeindex}
 % versions.
 %
 % \changes{v1.7a}{1992/02/26}{Description of \cs{RecordChanges} etc.
 % added
-% to interface section.} \DescribeMacro\RecordChanges To cause the
-% change information to be written out, include "\RecordChanges" in
-% the driver file.  \DescribeMacro\PrintChanges To read in and print
+% to interface section.} \DescribeInterfaceMacro\RecordChanges To cause the
+% change information to be written out, include |\RecordChanges| in
+% the driver file.  \DescribeInterfaceMacro\PrintChanges To read in and print
 % the sorted change history (in two columns), just put the
 % |\PrintChanges| command as the last (commented-out, and thus
 % executed during the documentation pass through the file) command in
 % your package file.  Alternatively, this command may form one of the
-% arguments of the |\StopEventually| command, although a change
+% arguments of the |\MaybeStop| command, although a change
 % history is probably {\em not\/} required if only the description is
-% being printed.  The command assumes that \textsf{makeindex} or some
+% being printed.  The command assumes that \prg{makeindex} or some
 % other program has processed the \texttt{.glo} file to generate a
-% sorted \texttt{.gls} file.  You need a special \textsf{makeindex}
+% sorted \texttt{.gls} file.  You need a special \prg{makeindex}
 % style file; a suitable one is supplied with \DOC{}, called
-% \texttt{gglo.ist}.  \DescribeMacro\GlossaryMin
-% \DescribeMacro\GlossaryPrologue \DescribeMacro\GlossaryParms The
-% "\GlossaryMin", "\GlossaryPrologue" and "\GlossaryParms" macros are
-% analogous to the "\Index"\ldots\ versions.  (The \LaTeX{} `glossary'
+% \texttt{gglo.ist}.
+%
+% \DescribeLaTeXDimen\GlossaryMin
+% \DescribeInterfaceMacro\GlossaryPrologue
+% \DescribeInterfaceMacro\GlossaryParms
+% \DescribeLaTeXCounter{GlossaryColumns}
+%  The
+% |\GlossaryMin|, |\GlossaryPrologue| and |\GlossaryParms| macros and
+% the counter \texttt{GlossaryColumns} are
+% analogous to the |\Index|\ldots\ versions.  (The \LaTeX{} `glossary'
 % mechanism is used for the change entries.)
 %
-% \label{sec:checksum}
-% \DescribeMacro\CharacterTable
-% \DescribeMacro\CheckSum
-% To overcome some of the problems of sending files over the networks
-% we developed two macros which should detect corrupted files. If one
-% places the lines
-% \begin{flushleft}
-% \small\ttfamily        ^^A \ttfamily to get the blanks between "..."s
-%                        ^^A right
-%"%%\CharacterTable"\\
-%"%% {Upper-case   "
-%"\A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z"\\
-%"%%  Lower-case   "
-%"\a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z"\\
-%"%%  Digits        \0\1\2\3\4\5\6\7\8\9"\\
-%"%%  Exclamation   \!     Double quote  "\verb=\"=
-%"    Hash (number) \#"\\
-%"%%  Dollar        \$     Percent       \%     Ampersand     \&"\\
-%"%%  Acute accent  \'     Left paren    \(     Right paren   \)"\\
-%"%%  Asterisk      \*     Plus          \+     Comma         \,"\\
-%"%%  Minus         \-     Point         \.     Solidus       \/"\\
-%"%%  Colon         \:     Semicolon     \;     Less than     \<"\\
-%"%%  Equals        \=     Greater than  \>     Question mark \?"\\
-%"%%  Commercial at \@     Left bracket  \[     Backslash     \\"\\
-%"%%  Right bracket \]     Circumflex    \^     Underscore    \_"\\
-%"%%  Grave accent  \`     Left brace    \{     Vertical bar  \|"\\
-%"%%  Right brace   \}     Tilde         \~}"\\
-%"%%"
-%\end{flushleft}
-% at the beginning of the file then character translation failures
-% will be detected, provided of course, that the used \DOC{}
-% package has a correct default table.  The percent
-% signs\footnote{There are two percent signs in each line. This has
-% the effect that these lines are not removed by the
-% \texttt{docstrip.tex} program.} at the beginning of the lines should
-% be typed in, since only the \DOC{} package should look at this
-% command.
 %
-%
-% Another problem of mailing files is possible truncation.  To detect
-% these sort of errors we provide a |\CheckSum| macro.  The check-sum
-% of a file is simply the number of backslashes in the code, i.e.\ all
-% lines between the \textsf{macrocode} environments.  But don't be
-% afraid: you don't have count the code-lines yourself; this is done
-% by the \DOC{} package for you.  You simply have add
-% \begin{quote}
-%    |%   \CheckSum{0}|
-% \end{quote}
-% near the beginning of the file and
-% use
-% the |\StopEventually| (which starts looking for backslashes) and the
-% |\Finale| command.  The latter will inform you either that your file
-% has no check-sum (telling you the right number) or that your number
-% is incorrect if you put in anything other than zero but guessed wrong (this time
-% telling you both the correct and the
-% incorrect one).  Then you go to the top of your file again and change the
-% line to the right number, i.e.
-% line
-% \begin{quote}
-%    |%   \CheckSum{|\meta{number}|}|
-% \end{quote}
-% and that's all.
-%
-% While |\CharacterTable| and |\CheckSum| have been important features
-% in the early days of the public internet when \DOC{} was written as
-% the mail gateways back then were rather unreliable and often mangled
-% files they are these days more a nuisance than any help. They are
-% therefore now fully optional and no longer recommended for use with new files.
-%
-%
-% \DescribeMacro\bslash
+% \DescribeInterfaceMacro\bslash
 % From time to time, it is necessary to print a |\| without
 % being able to use the |\verb| command because the
 % |\catcode|$\,$s of the symbols are already firmly
@@ -1072,25 +1254,25 @@
 % |\bslash| presupposing, of course, that the actual font in
 % use at this point contains a `backslash' as a symbol.  Note that
 % this definition of |\bslash| is expandable; it inserts a
-% $"\"_{12}$.  This means that you have to |\protect|
+% $|\|_{12}$.  This means that you have to |\protect|
 % it if it is used in `moving arguments'.
 %
-% \DescribeMacro\MakePrivateLetters
+% \DescribeInterfaceMacro\MakePrivateLetters
 % \changes{v1.7a}{1992/02/26}{Documented \cs{MakePrivateLetters} in
 %                           interface section}^^A
-% If your macros "\catcode" anything other than "@" to `letter', you
-% should redefine "\MakePrivateLetters" so that it also makes the
+% If your macros |\catcode| anything other than |@| to `letter', you
+% should redefine |\MakePrivateLetters| so that it also makes the
 % relevant characters `letters' for the benefit of the indexing.  The
-% default definition is just "\makeatletter".
+% default definition is just |\makeatletter|.
 %
-% \DescribeMacro\DontCheckModules \DescribeMacro\CheckModules
-% \DescribeMacro\Module \DescribeMacro\AltMacroFont The `module'
-% directives of the \textsf{docstrip} system \cite{art:docstrip} are
-% normally recognised and invoke special formatting.  This can be
+% \DescribeInterfaceMacro\DontCheckModules \DescribeInterfaceMacro\CheckModules
+% \DescribeInterfaceMacro\Module \DescribeInterfaceMacro\AltMacroFont The `module'
+% directives of the \prg{docstrip} system \cite{art:docstrip} are
+% normally recognized and invoke special formatting.  This can be
 % turned on and off in the \texttt{.dtx} file or the driver file using
-% "\CheckModules" and "\DontCheckModules".  If checking for module
+% |\CheckModules| and |\DontCheckModules|.  If checking for module
 % directives is on (the default) then code in the scope of the
-% directives is set as determined by the hook "\AltMacroFont", which
+% directives is set as determined by the hook |\AltMacroFont|, which
 % gives {\small\ttfamily\itshape small italic type\-writer\/} by
 % default in the New Font Selection Scheme but just ordinary
 % {\small\ttfamily small type\-writer} in the old one, where a font
@@ -1097,22 +1279,22 @@
 % such as italic typewriter can't be used portably (plug for NFSS);
 % you will need to override this if you don't have the italic
 % typewriter font available.  Code is in such a scope if it's on a
-% line beginning with "%<" or is between lines starting with
-% "%<*"\meta{name list}">" and "%</"\meta{name list}">".  The
-% directive is formatted by the macro "\Module" whose single argument
+% line beginning with |%<| or is between lines starting with
+% |%<*|\meta{name list}|>| and |%</|\meta{name list}|>|.  The
+% directive is formatted by the macro |\Module| whose single argument
 % is the text of the directive between, but not including, the angle
 % brackets; this macro may be re-defined in the driver or package file
 % and by default produces results like \Module{+foo\string|bar} with no
 % following space.
 %
-% \DescribeMacro{StandardModuleDepth} Sometimes (as in this file) the
+% \DescribeLaTeXCounter{StandardModuleDepth} Sometimes (as in this file) the
 % whole code is surrounded by modules to produce several files from a
 % single source. In this case it is clearly not appropriate to format
-% all code lines in a special "\AltMacroFont". For this reason a
-% counter "StandardModuleDepth" is provided which defines the level of
+% all code lines in a special |\AltMacroFont|. For this reason a
+% counter |StandardModuleDepth| is provided which defines the level of
 % module nesting which is still supposed to be formatted in
-% "\MacroFont" rather then "\AltMacroFont". The default setting is
-% "0", for this documentation it was set to
+% |\MacroFont| rather then |\AltMacroFont|. The default setting is
+% |0|, for this documentation it was set to
 %\begin{verbatim}
 %   \setcounter{StandardModuleDepth}{1}
 %\end{verbatim}
@@ -1119,6 +1301,8 @@
 % at the beginning of the file.
 %
 %
+% \section{Examples and basic usage summary}
+%
 % \subsection{Basic usage summary}
 % \changes{v1.7a}{1992/03/11}{Added basic usage summary to spell
 %                             it out.}
@@ -1126,27 +1310,483 @@
 % To sum up, the basic structure of a \texttt{.dtx} file without any
 % refinements is like this:
 % \begin{verse}\small
-% "% "\meta{waffle}\ldots\\
+% |% |\meta{waffle}\ldots\\
 % \quad\ldots \\
-% "% \DescribeMacro{\fred}"\\
-% "% "\meta{description of fred's use}\\
+% |% \DescribeMacro{\fred}|\\
+% |% |\meta{description of fred's use}\\
 % \quad\ldots\\
-% "% \StopEventually{"\meta{finale code}"}"\\
+% |% \MaybeStop{|\meta{finale code}|}|\\
 % \quad\ldots\\
-% "% \begin{macro}{\fred}"\\
-% "% "\meta{commentary on macro fred}\\
+% |% \begin{macro}{\fred}|\\
+% |% |\meta{commentary on macro fred}\\
 % \verb*+%    \begin{macrocode}+\\
 % \meta{code for macro fred}\\
 % \verb*+%    \end{macrocode}+\\
-% "% \end{macro}"\\
+% |% \end{macro}|\\
 % \quad\ldots\\
-% "% \Finale \PrintIndex \PrintChanges"
+% |% \Finale \PrintIndex \PrintChanges|
 % \end{verse}
-% For examples of the use of most---if not all---of the features
-% described above consult the \texttt{doc.dtx} source itself.
+% For further examples of the use of most---if not all---of the features
+% described above, consult the \texttt{doc.dtx} source itself.
 %
-% \subsection{Acknowledgements}
 %
+%
+% \subsection{Examples}
+%
+% The default setup includes definitions for the \DOC elements
+% ``macro'' and ``environment''. They correspond to the following
+% declarations:
+%\begin{verbatim}
+% \NewDocElement[macrolike = true ,
+%                 idxtype   = ,
+%                 idxgroup  = ,
+%                 printtype =
+%                ]{Macro}{macro}
+%
+% \NewDocElement[macrolike = false ,
+%                 idxtype   = env.  ,
+%                 idxgroup  = environments ,
+%                 printtype = \textit{env.}
+%                ]{Env}{environment}
+%\end{verbatim}
+%
+% To showcase the new features of \DOC version 3 to some extend, the
+% current documentation is done by redefining these declarations and
+% also adding a few additional declarations on top.
+%
+% For any internal command we document we use \texttt{Macro} and put
+% all of them under the heading ``\LaTeX{} commands'' (note the use of \cs{actualchar}):
+%\begin{verbatim}
+%\RenewDocElement[macrolike = true ,
+%                toplevel  = false,
+%                idxtype   = ,
+%                idxgroup  = LaTeX comands\actualchar\LaTeX{} commands ,
+%                printtype =
+%               ]{Macro}{macro}
+%\end{verbatim}
+%
+% We only have package environments so we use \texttt{Env} for those
+% and group them as well:
+%\begin{verbatim}
+%\RenewDocElement[macrolike = false ,
+%                toplevel  = false,
+%                idxtype   = env.  ,
+%                idxgroup  = Package environments,
+%                printtype = \textit{env.}
+%               ]{Env}{environment}
+%\end{verbatim}
+%
+%
+% All the interface commands are also grouped together under the label
+% ``Package commands'', we use \texttt{InterfaceMacro} for them:
+%\begin{verbatim}
+%\NewDocElement[macrolike = true ,
+%                toplevel  = false,
+%                idxtype   = ,
+%                idxgroup  = Package commands,
+%                printtype =
+%               ]{InterfaceMacro}{imacro}
+%\end{verbatim}
+%
+% And since we also have a few obsolete interfaces we add yet another category:
+%\begin{verbatim}
+%\NewDocElement[macrolike = true ,
+%                toplevel  = false,
+%                idxtype   = ,
+%                idxgroup  = Package commands (obsolete),
+%                printtype =
+%               ]{ObsoleteInterfaceMacro}{omacro}
+%\end{verbatim}
+%
+% Another type of category are the package keys:
+%\begin{verbatim}
+%\NewDocElement[macrolike = false ,
+%                toplevel  = false,
+%                idxtype   = key  ,
+%                idxgroup  = Package keys ,
+%                printtype = \textit{key}
+%               ]{Key}{key} 
+%\end{verbatim}
+%
+% Finally we have \TeX{} counters (with a backslash in front) and
+% \LaTeX{} counters (no backslash) and the two types of \LaTeX{}
+% length registers:
+%\begin{verbatim}
+%\NewDocElement[macrolike = true ,
+%                toplevel  = false,
+%                idxtype   =  counter  ,
+%                idxgroup  = TeX counters\actualchar \protect\TeX{} counters ,
+%                printtype = \textit{counter}
+%               ]{TeXCounter}{tcounter}
+%
+%\NewDocElement[macrolike = false ,
+%                toplevel  = false,
+%                idxtype   =  counter  ,
+%                idxgroup  = LaTeX counters\actualchar \LaTeX{} counters ,
+%                printtype = \textit{counter}
+%               ]{LaTeXCounter}{lcounter}
+%
+%\NewDocElement[macrolike = true ,
+%                toplevel  = false,
+%                idxtype   =  skip  ,
+%                idxgroup  = LaTeX length\actualchar \LaTeX{} length (skip) ,
+%                printtype = \textit{skip}
+%               ]{LaTeXSkip}{lskip}
+%
+%\NewDocElement[macrolike = true ,
+%                toplevel  = false,
+%                idxtype   =  dimen  ,
+%                idxgroup  = LaTeX length\actualchar \LaTeX{} length (dimen) ,
+%                printtype = \textit{dimen}
+%               ]{LaTeXDimen}{ldimen}
+%
+%\end{verbatim}
+%
+% And we modify the appearance of the index: just 2 columns not 3 and
+% all the code-line entries get prefixed with an ``$\ell$'' (for line)
+% so that they can easily be distinguished from page index entries.
+%\begin{verbatim}
+% \renewcommand\code[1]{\mbox{$\ell$-#1}}
+% \renewcommand\main[1]{\underline{\mbox{$\ell$-#1}}}
+% \setcounter{IndexColumns}{2}
+%\end{verbatim}
+%
+%
+%
+% \section{Incompatibilities between version 2 and 3}
+%
+% The basic approach when developing version~3 was to provide a very
+% high level of compatibility with version~2 so that nearly all
+% older documents should work out of the box without the need for
+% any adjustments.
+%
+% But as with any change there are situations where that change can
+% result in some sort of incompatibility, e.g., if a newly introduce
+% command name was already been defined in the user document then
+% there will be a conflict that is nearly impossible to avoid
+% 100\%.
+%
+% As mentioned earlier, \DOC now supports options on several commands
+% and environments and as a result it is necessary to use braces
+% around the argument for \cs{DescribeMaro} if the ``macro to be
+% described'' uses private letters such as |@| or |_| as part of its
+% name. That was always the official syntax but in the past you could
+% get away with leaving out the braces more often than you can now.
+%
+% The old \DOC documentation also claimed that redefinitions of things
+% like \cs{PrintDescribeMacro} could be done before loading the
+% package (and not only afterwards) and \DOC would in that case not
+% change those commands. As the setup mechanisms are now much more
+% powerful and general such an approach is not really good. So with
+% \DOC version~3 modifications have to be done after the \DOC package
+% got loaded and the last modification will always win.
+%
+% I'm temped to drop compatibility with \LaTeX~2.09  (but so far I
+% have left it in).
+%
+% In the past it was possible to use macros declared with \cs{outer}
+% in the argument of \verb=\begin{macro}= or \cs{DoNotIndex} even
+% though \cs{outer} is not a concept supported in \LaTeX{}. This is no
+% longer possible. More exactly, it is no longer possible to prevent
+% them from being indexed (as \cs{DoNotIndex} can't be used), but you
+% can pass them to the \env{macro} environment as follows:
+%\begin{verbatim}
+%     \begin{macro}[outer]{\foo}
+%\end{verbatim}
+% if \cs{foo} is a macro declared with \cs{outer}. The technical
+% reason for this change is that in the past various other commands,
+% such as |\{| or |\}| did not work properly in these arguments when
+% they where passed as ``strings'' and not as single macro tokens. But
+% by switching to macro tokens we can't have \cs{outer} macros because
+% their feature is to be not allowed in arguments. So what happens
+% above when you use \texttt{[outer]} is that the argument is read as
+% a string with four character tokens so that it is not recognized as
+% being \cs{outer}.
+%
+%
+% \section{Old interfaces no longer really needed}
+%
+% Thirty years is a long time in the life of computer programs, so
+% there are a good number of interfaces within \DOC that are really
+% only of historical interest (or when processing equally old sources.
+% We list them here, but in general we suggest that for new
+% documentation they should not be used.
+%
+%
+% \subsection{\prg{makeindex} bugs}
+%
+% \DescribeObsoleteInterfaceMacro\OldMakeindex
+% Versions of \prg{makeindex} prior to 2.9 had some bugs affecting
+% \DOC{}.  One of these,
+% pertaining to the |%| character doesn't have a work-around
+% appropriate for versions with and without the
+% bug.\label{makeindex:version}  If
+% you really still have an old version, invoke |\OldMakeindex| in a
+% package file or the driver file to prevent problems with index entries
+% such as |\%|, although you'll probably normally want to turn off
+% indexing of |\%| anyway.  Try to get an up-to-date \prg{makeindex}
+% from one of the \TeX{} repositories.
+%
+% \subsection{File transmission issues}
+%
+% In the early days of the Internet file transmission issues have been
+% a serious problem. There was a famous gateway in Rochester, UK that
+% handled the traffic from the European continent to the UK and that
+% consisted of two IBM machines running with different codepages (that
+% had non-reversible differences). As a result ``strange'' \TeX{}
+% characters got replaced with something else with the result that the
+% files became unusable.
+%
+% To guard against this problem (or rather to detect it if something
+% got broken in transfer I added code to \DOC to check a static
+% character table and also to have a very simple checksum feature
+% (counting backslashes).
+%
+% These days the \cs{CheckSum} is of little value (and a lot of pain
+% for the developer) and character scrambling doesn't happen any more
+% so the \cs{CharacterTable} is essentially useless. Thus neither
+% should be used in new developments.
+%
+% \label{sec:checksum}
+% \DescribeObsoleteInterfaceMacro\CharacterTable
+% \DescribeObsoleteInterfaceMacro\CheckSum
+% To overcome some of the problems of sending files over the networks
+% we developed two macros which should detect corrupted files. If one
+% places the lines
+% \begin{flushleft}
+% \small\ttfamily        ^^A \ttfamily to get the blanks between "..."s
+%                        ^^A right
+%|%%\CharacterTable|\\
+%|%% {Upper-case   |
+%|\A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z|\\
+%|%%  Lower-case   |
+%|\a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z|\\
+%|%%  Digits        \0\1\2\3\4\5\6\7\8\9|\\
+%|%%  Exclamation   \!     Double quote  "|
+%|    Hash (number) \#|\\
+%|%%  Dollar        \$     Percent       \%     Ampersand     \&|\\
+%|%%  Acute accent  \'     Left paren    \(     Right paren   \)|\\
+%|%%  Asterisk      \*     Plus          \+     Comma         \,|\\
+%|%%  Minus         \-     Point         \.     Solidus       \/|\\
+%|%%  Colon         \:     Semicolon     \;     Less than     \<|\\
+%|%%  Equals        \=     Greater than  \>     Question mark \?|\\
+%|%%  Commercial at \@     Left bracket  \[     Backslash     \\|\\
+%|%%  Right bracket \]     Circumflex    \^     Underscore    \_|\\
+%|%%  Grave accent  \`     Left brace    \{     Vertical bar  |\verb=|=\\
+%|%%  Right brace   \}     Tilde         \~}|\\
+%|%%|
+%\end{flushleft}
+% at the beginning of the file then character translation failures
+% will be detected, provided of course, that the used \DOC{}
+% package has a correct default table.  The percent
+% signs\footnote{There are two percent signs in each line. This has
+% the effect that these lines are not removed by the
+% \texttt{docstrip.tex} program.} at the beginning of the lines should
+% be typed in, since only the \DOC{} package should look at this
+% command.
+%
+%
+% Another problem of mailing files is possible truncation.  To detect
+% these sort of errors we provide a |\CheckSum| macro.  The check-sum
+% of a file is simply the number of backslashes in the code, i.e.\ all
+% lines between the \env{macrocode} environments.  But don't be
+% afraid: you don't have count the code-lines yourself; this is done
+% by the \DOC{} package for you.  You simply have add
+% \begin{quote}
+%    |%   \CheckSum{0}|
+% \end{quote}
+% near the beginning of the file and use the |\MaybeStop| (which
+% starts looking for backslashes) and the |\Finale| command.  The
+% latter will inform you either that your file has no check-sum
+% (telling you the right number) or that your number is incorrect if
+% you put in anything other than zero but guessed wrong (this time
+% telling you both the correct and the incorrect one).  Then you go to
+% the top of your file again and change the line to the right number,
+% i.e.,  line
+% \begin{quote}
+%    |%   \CheckSum{|\meta{number}|}|
+% \end{quote}
+% and that's all.
+%
+% While |\CharacterTable| and |\CheckSum| have been important features
+% in the early days of the public internet when \DOC{} was written as
+% the mail gateways back then were rather unreliable and often mangled
+% files they are these days more a nuisance than any help. They are
+% therefore now fully optional and no longer recommended for use with
+% new files.
+%
+%
+
+
+
+% ^^A =============================================================
+
+
+
+% \begin{multicols}{2}[\medskip \noindent\rule{\textwidth}{.3pt}
+%                      \section{Introduction to previous releases}]
+%
+% \begin{quote}
+%   \textbf{Original abstract:}
+%    This package contains the definitions that are necessary to
+%    format the documentation of package files.  The package was
+%    developed in Mainz in cooperation with the Royal Military College
+%    of Science.  This is an update which documents various changes
+%    and new features in \DOC{} and integrates the features of
+%    \env{newdoc}.
+% \end{quote}
+%
+% The \TeX{} macros which are described here allow definitions and
+% documentation to be held in one and the same file.  This has the
+% advantage that normally very complicated instructions are made
+% simpler to understand by comments inside the definition. In addition
+% to this, updates are easier and only one source file needs to be
+% changed.  On the other hand, because of this, the package files are
+% considerably longer: thus \TeX{} takes longer to load them.  If this
+% is a problem, there is an easy remedy: one needs only to run the
+% \texttt{docstrip.tex} program that removes nearly all lines that begin
+% with a
+% percent sign.
+%
+% The idea of integrated documentation was born with the development
+% of the \TeX{} program; it was crystallized in Pascal with the \Web{}
+% system.  The advantages of this method are plain to see (it's easy
+% to make comparisons \cite{art:Knuthliterat}).  Since this
+% development, systems similar to \Web{} have been developed for other
+% programming languages. But for one of the most complicated
+% programming languages (\TeX) the documentation has however been
+% neglected.  The \TeX{} world seems to be divided between:---
+% \begin{itemize} \item a couple of ``wizards'', who produce many
+% lines of completely unreadable code ``off the cuff'', and \item many
+% users who are amazed that it works just how they want it to do.  Or
+% rather, who despair that certain macros refuse to do what is
+% expected of them.\end{itemize}
+%
+% I do not think that the \Web{} system is {\em the\/} reference work;
+% on the contrary, it is a prototype which suffices for the
+% development of programs within the \TeX{} world.  It is sufficient,
+% but not totally sufficient.\footnote{I know that this will be seen
+% differently by a few people, but this product should not be seen as
+% the finished product, at least as far as applications concerning
+% \TeX{} are concerned.  The long-standing debate over `multiple
+% change files' shows this well.} As a result of \Web, new programming
+% perspectives have been demonstrated; unfortunately, though, they
+% haven't been developed further for other programming languages.
+%
+% The method of documentation of \TeX{} macros which I have introduced
+% here should also only be taken as a first sketch.  It is designed
+% explicitly to run under \LaTeX{} alone.  Not because I was of the
+% opinion that this was the best starting point, but because from this
+% starting point it was the quickest to develop.\footnote{This
+% argument is a bad one, however, it is all too often trotted out.} As
+% a result of this design decision, I had to move away from the
+% concept of modularization; this was certainly a step backward.
+%
+% I would be happy if this article could spark off discussion over
+% \TeX\ documentation.  I can only advise anyone who thinks that they
+% can cope without documentation to ``Stop Time'' until he or she
+% completely understands the \AmSTeX{} source code.
+%
+% \subsection*{Using the \DOC{} package}
+%
+% Just like any other package, invoke it by requesting it with a
+% |\usepackage| command in the preamble. \DOC's use of
+% |\reversemarginpars| may make it incompatible with some classes.
+% \changes{v1.7a}{1992/02/25}{Altered usage info}
+%
+%
+% \end{multicols}
+%
+%
+%
+%
+% \begin{multicols}{2}[\subsection*{Preface to version 1.7 (from
+%    around 1992)}]
+%
+% This version of \texttt{doc.dtx} documents changes which have occurred
+% since the last published version \cite{art:doc} but which have been
+% present in distributed versions of \texttt{doc.sty} for some time.  It
+% also integrates the (undocumented) features of the distributed
+% \texttt{newdoc.sty}.
+%
+% The following changes and additions have been made to the user
+% interface since the published version~\cite{art:doc}.  See
+% \S\ref{sec:interface} for more details.
+% \begin{description}
+% \item[Driver mechanism] |\DocInput| is now used in the driver file
+%    to input possibly multiple independent \DOC{} files and \DOC{} no
+%    longer has to be the last package.  |\IndexListing| is replaced
+%    by |\IndexInput|;
+% \item[Indexing] is controlled by |\PageIndex| and |\CodelineIndex|,
+%    one of which must be specified to produce an index---there is no
+%    longer a |\makeindex| in the default |\DocstyleParms|;
+% \item[The \texttt{macro} environment] now takes as argument the
+%    macro name {\em with\/} the backslash;
+% \item[Verbatim text] Newlines are now forbidden inside |\verb| and
+%    commands |\MakeShortVerb| and |\DeleteShortVerb| are provided for
+%    verbatim shorthand;
+% \item[\texttt{\bslash par}] can now be used in |\DoNotIndex|;
+% \item[Checksum/character table support] for ensuring the integrity
+%    of distributions is added;
+% \item[\texttt{\bslash printindex}] becomes |\PrintIndex|;
+% \item[\texttt{multicol.sty}] is no longer necessary to use \DOC{} or
+%    print the documentation (although it is recommended);
+% \item[`Docstrip' modules] are recognized and formatted specially.
+% \end{description}
+%
+% As well as adding some completely new stuff,
+% the opportunity has been taken to add some commentary to the code
+% formerly in \pkg{newdoc} and that added after version 1.5k of
+% \DOC.  Since (as noted in the sections concerned) this
+% commentary wasn't written by Frank Mittelbach but the code was, it is
+% probably {\em not\/} true in this case that ``if the code and
+% comments disagree both are probably wrong''!
+%
+% \subsubsection*{Bugs}
+%
+% There are some known bugs in this version:
+% \begin{itemize}
+% \item The |\DoNotIndex| command doesn't work for some single
+%    character commands most noticeable |\%|.
+% \item The `General changes' glossary entry would come out after
+%    macro names with a leading |!| and possibly a leading |"|;
+% \item If you have an old version of \prg{makeindex} long |\changes|
+%    entries will come out strangely and you may find the section
+%    header amalgamated with the first changes entry.  Try to get an
+%    up-to-date one (see p.~\pageref{makeindex:version});
+% \item Because the accompanying \prg{makeindex} style files support
+%    the inconsistent attribute specifications of older and newer
+%    versions \prg{makeindex} always complains about three `unknown
+%    specifier's when sorting the index and changes entries.
+% \item If |\MakeShortVerb| and |\DeleteShortVerb| are used with
+%    single character arguments, e.g., \verb"{|}" instead of \verb"{\|}" chaos
+%    may happen.
+% \end{itemize}
+% (Some `features' are documented below.)
+%
+% \subsubsection*{Wish list}
+%
+% \begin{itemize}
+% \item Hooks to allow |\DescribeMacro| and |\DescribeEnv| to write
+% out to a special file information about the package's `exported'
+% definitions which they describe.  This could subsequently be
+% included in the \texttt{docstrip}ped \texttt{.sty} file in a
+% suitable form for use by smart editors in command completion,
+% spelling checking etc., based on the packages used in a document.
+% This would need agreement on a `suitable form'.  \item Indexing of
+% the modules used in \texttt{docstrip}'s |%<| directives.  I'm not
+% sure how to index directives containing module combinations; \item
+% Writing out bibliographic information about the package; \item Allow
+% turning off use of the special font for, say, the next guarded
+% block.
+% \end{itemize}
+%
+%
+% \end{multicols}
+
+
+% \subsection*{Acknowledgements}
+%
 % I would like to thank all folks at Mainz and at the Royal Military
 % College of Science for their help in this project. Especially Brian
 % and Rainer who pushed everything with their suggestions, bug fixes,
@@ -1158,14 +1798,14 @@
 % \texttt{doc.dtx} after its publication in \textsl{TUGboat\/} have
 % been never properly described. Beside this splendid work he kindly
 % provided additional code (like ``docstrip'' module formatting) which
-% I think every \textsf{doc.dtx} user will be grateful for.
+% I think every \DOC user will be grateful for.
 %
 %
-% \StopEventually{
+% \MaybeStop{
 %  \begin{thebibliography}{1}
 %    \bibitem{book:Buerger}  \textsc{G. A. B\"urger}.
-%      \newblock Wunderbare Reisen zu Wasser und zu Lande, Feldz\"uge
-%                und lustige Abenteuer des Freyherrn v.\ M\"unchhausen.
+%      \newblock Wunderbare Reisen zu Wasser und zu Lande, Feldzüge
+%                und lustige Abenteuer des Freyherrn v.\ Münchhausen.
 %      \newblock London, 1786 \& 1788.
 %    \bibitem{art:Knuthliterat} \textsc{D. E. Knuth}.
 %      \newblock Literate Programming.
@@ -1189,22 +1829,22 @@
 %      \newblock \texttt{docstrip.dtx} (to appear).
 %      \newblock The file is part of the DOC package.
 %    \bibitem{book:Raspe} \textsc{R. E. Raspe} (*1737, \dag 1797).
-%      \newblock Baron M\"unchhausens narrative of his marvellous
+%      \newblock Baron Münchhausens narrative of his marvelous
 %                travels and campaigns in Russia.
 %      \newblock Oxford, 1785.
-%    \bibitem{art:verbatim} \textsc{Rainer Sch\"opf}.
+%    \bibitem{art:verbatim} \textsc{Rainer Schöpf}.
 %      \newblock A New Implementation of \LaTeX's \texttt{verbatim} and
 %      \texttt{verbatim*} Environments.
 %      \newblock File \texttt{verbatim.doc}, version 1.4i.
 %  \end{thebibliography}
 %
-%  \ifmulticols
 %  \addtocontents{toc}{\protect\end{multicols}}
-%  \fi
 %
-% } ^^A end \StopEventually
+%  \PrintIndex
 %
+% } ^^A end \MaybeStop
 %
+%
 % \section{The Description of Macros}
 %
 % Most of the following code is destined for \texttt{doc.sty} after
@@ -1228,23 +1868,24 @@
 \@ifundefined{macro at cnt}{}{\endinput}
 %    \end{macrocode}
 %
-% \DescribeMacro\fileversion
-% \DescribeMacro\filedate
-% \DescribeMacro\docdate
+% \DescribeObsoleteInterfaceMacro\fileversion
+% \DescribeObsoleteInterfaceMacro\filedate
+% \DescribeObsoleteInterfaceMacro\docdate
 % As you can see I used macros like |\fileversion| to denote the
 % version number and the date. They are defined at the very beginning
-% of the package file (without a surrounding \textsf{macrocode}
+% of the package file (without a surrounding \env{macrocode}
 % environment), so I don't have to search for this place here when I
 % change the version number.  You can see their actual outcome in a
 % footnote to the title.
 %
 %
-% The first thing that we do next is to get ourselves a new comment
-% sign.  Because all sensible signs are already occupied, we will
-% choose one that can only be entered indirectly:
+% The first thing that we do next is to get ourselves two alternative comment
+% signs.  Because all sensible signs are already occupied, we will
+% choose some that can only be entered indirectly:
 % {\DoNotIndex{\^}^^A avoid misinterpretation !!!!! VERIFY
 %    \begin{macrocode}
 \catcode`\^^A=14
+\catcode`\^^X=14
 %    \end{macrocode}
 % We repeat this statement at the beginning of the document in case
 % the \texttt{inputenc} package is used disabling it again.
@@ -1251,27 +1892,182 @@
 % \changes{v2.0b}{1998/05/19}{Init docs private comment char at begin
 %  of document again (pr2581)}
 %    \begin{macrocode}
-\AtBeginDocument{\catcode`\^^A=14\relax}
+\AtBeginDocument{\catcode`\^^A=14\relax\catcode`\^^X=14\relax}
 %    \end{macrocode}
 %    \SortIndex{\string^\string^A}{\string\verb\verbatimchar
 %                                  \string^\string^A\verbatimchar
+%                                  \encapchar main}^^A
+%    \SortIndex{\string^\string^X}{\string\verb\verbatimchar
+%                                  \string^\string^X\verbatimchar
 %                                  \encapchar main}
 % }
 %
 %
-% \subsection{Options supported by \DOC{}}
+% \subsection{Keys supported by \DOC{}}
 %
-%   Not options available at the moment
+%    In the past this used \pkg{kvoptions} but this will be
+%    replaced by using \texttt{l3keys} at some point in the future.
+%    Right now this is only a lightweight shift---the code could and
+%    should be altered further.
+%    \fmi{cleanup replacement of kvoptions}
 %
 %    \begin{macrocode}
+\RequirePackage{l3keys2e}
+\ExplSyntaxOn
 %    \end{macrocode}
+% Some keys are available as options for use in \cs{usepackage} some are
+% for the generated item \api's:
+% \fmi{cleanup documentation (and code once the new key interface is there)}
+%    \begin{macrocode}
+\newif \ifdoc at noprint
+\newif \ifdoc at noindex
+\newif \ifdoc at hyperref \doc at hyperreftrue
+\newif \ifdoc at multicol \doc at multicoltrue
+\newif \ifdoc at debugshow
+\newif \ifdoc at reportchangedates
+\keys_define:nn {doc}
+  {
+    noprint  .choice:,
+    noprint / true  .code:n = { \legacy_if_set_true:n  { doc at noprint } },
+    noprint / false .code:n = { \legacy_if_set_false:n { doc at noprint } },
+    noprint  .default:n = { true },
+    noindex  .choice:,
+    noindex / true  .code:n = { \legacy_if_set_true:n  { doc at noindex } },
+    noindex / false .code:n = { \legacy_if_set_false:n { doc at noindex } },
+    noindex  .default:n = { true },
+    hyperref  .choice:,
+    hyperref / true  .code:n = { \legacy_if_set_true:n  { doc at hyperref } },
+    hyperref / false .code:n = { \legacy_if_set_false:n { doc at hyperref } },
+    hyperref  .default:n = { true },
+    hyperref  .choice:,
+    nohyperref / true  .code:n = { \legacy_if_set_false:n  { doc at hyperref } },
+    nohyperref / false .code:n = { \legacy_if_set_true:n { doc at hyperref } },
+    nohyperref  .default:n = { true },
+    multicol  .choice:,
+    multicol / true  .code:n = { \legacy_if_set_true:n  { doc at multicol } },
+    multicol / false .code:n = { \legacy_if_set_false:n { doc at multicol } },
+    multicol  .default:n = { true },
+    nomulticol  .choice:,
+    nomulticol / true  .code:n = { \legacy_if_set_false:n  { doc at multicol } },
+    nomulticol / false .code:n = { \legacy_if_set_true:n { doc at multicol } },
+    multicol  .default:n = { true },
+    debugshow  .choice:,
+    debugshow / true  .code:n = { \legacy_if_set_true:n  { doc at debugshow } },
+    debugshow / false .code:n = { \legacy_if_set_false:n { doc at debugshow } },
+    debugshow  .default:n = { true },
+    reportchangedates  .choice:,
+    reportchangedates / true  .code:n = { \legacy_if_set_true:n  { doc at reportchangedates } },
+    reportchangedates / false .code:n = { \legacy_if_set_false:n { doc at reportchangedates } },
+    reportchangedates  .default:n = { true },
+  }
+%    \end{macrocode}
+% This one is for \cs{usepackage} and \cs{NewDocElement}:
+%    \begin{macrocode}
+\newif \ifdoc at toplevel \doc at topleveltrue
+\keys_define:nn {doc}
+  {
+    toplevel  .choice:,
+    toplevel / true  .code:n = { \legacy_if_set_true:n  { doc at toplevel } },
+    toplevel / false .code:n = { \legacy_if_set_false:n { doc at toplevel } },
+    toplevel  .default:n = { true },
+    notoplevel  .choice:,
+    notoplevel / true  .code:n = { \legacy_if_set_false:n  { doc at toplevel } },
+    notoplevel / false .code:n = { \legacy_if_set_true:n { doc at toplevel } },
+    notoplevel  .default:n = { true }
+  }
+%    \end{macrocode}
+% These are for \cs{NewDocElement}:
+%    \begin{macrocode}
+\newif \ifdoc at macrolike
+\keys_define:nn {doc}
+  {
+    macrolike  .choice:,
+    macrolike / true  .code:n = { \legacy_if_set_true:n  { doc at macrolike } },
+    macrolike / false .code:n = { \legacy_if_set_false:n { doc at macrolike } },
+    macrolike  .default:n = { true },
+    envlike  .choice:,
+    envlike / true  .code:n = { \legacy_if_set_false:n  { doc at macrolike } },
+    envlike / false .code:n = { \legacy_if_set_true:n { doc at macrolike } },
+    envlike  .default:n = { true }
+  }
+
+\keys_define:nn { doc }
+  {
+    idxtype  .tl_set:N = \doc at idxtype,
+    idxgroup .tl_set:N = \doc at idxgroup,
+    printtype .tl_set:N = \doc at printtype
+  }
+%    \end{macrocode}
+% And this one only for instances of doc elements in the document, it
+%    covers the case where you want to document a macro which is
+%    declared to be \cs{outer}. This is not a concept officially
+%    supported by \LaTeX{} but there are cases when it gets used.
+%    \begin{macrocode}
+\newif\ifdoc at outer
+\keys_define:nn {doc}
+  {
+    outer  .choice:,
+    outer / true  .code:n = { \legacy_if_set_true:n  { doc at outer } },
+    outer / false .code:n = { \legacy_if_set_false:n { doc at outer } },
+    outer  .default:n = { true },
+  }
+\ExplSyntaxOff
+%    \end{macrocode}
 %
+% \subsection{Processing the package keys}
 %
+%    \begin{macrocode}
+\ProcessKeysOptions {doc}
+%    \end{macrocode}
+%
+%
+% \begin{macro}{\ifscan at allowed}
+% \begin{macro}{\scan at allowedtrue}
+% \begin{macro}{\scan at allowedfalse}
+%    |\ifscan at allowed| is the switch used to determine if
+%    the |\active at escape@char|\SpecialIndex{\active at escape@char}
+%    should start the macro scanning mechanism.
+%    \begin{macrocode}
+\newif\ifscan at allowed    \scan at allowedtrue
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%  \begin{imacro}{\SetupDoc}
+%
+%    We need to save the default value for some options because \DOC elements
+%    can locally set them.
+% \fmi{Use 2e interface for \cs{keys\_set:nn} when available}
+%    \begin{macrocode}
+\def\SetupDoc#1{%
+  \csname keys_set:nn\endcsname{doc}{#1}%
+    \edef\doc at noprintdefault{\ifdoc at noprint true\else false\fi}%
+  \ifdoc at noindex
+%    \end{macrocode}
+%    If we do not index by default then we should also turn off
+%    \cs{scan at allowed}.
+%    \begin{macrocode}
+    \def\doc at noindexdefault{true}%
+    \scan at allowedfalse
+  \else
+    \def\doc at noindexdefault{false}%
+  \fi
+}
+%    \end{macrocode}
+%  \end{imacro}
+%
+%    \begin{macrocode}
+\SetupDoc{}              % just save the default values
+%    \end{macrocode}
+%
+%
+%
 % \subsection{Macros surrounding the `definition parts'}
 %
 % \begin{environment}{macrocode}
 %    Parts of the macro definition will be surrounded by the
-%    environment \textsf{macrocode}.  Put more precisely, they will be
+%    environment \env{macrocode}.  Put more precisely, they will be
 %    enclosed by a macro whose argument (the text to be set
 %    `verbatim') is terminated by the string
 % \verb*+%    \end{macrocode}+.  Carefully note the number of spaces.
@@ -1307,7 +2103,7 @@
 %    \begin{macrocode}
 \def\macro at code{%
 %    \end{macrocode}
-%    In theory it should consist of a \textsf{trivlist} environment, but
+%    In theory it should consist of a \env{trivlist} environment, but
 %    the empty space before and after the environment should not be
 %    too large.
 %    \begin{macrocode}
@@ -1384,7 +2180,7 @@
 % indexing by code lines is switched on the line number is incremented
 % and set appropriately.  We also check whether the start of the next
 % line indicates a \texttt{docstrip} module directive and process it
-% appropriately if so using "\check at module".
+% appropriately if so using |\check at module|.
 %    \begin{macrocode}
    \global\@newlistfalse
    \global\@minipagefalse
@@ -1408,9 +2204,9 @@
 % \begin{macro}{\blank at linetrue}
 % \begin{macro}{\blank at linefalse}
 %    |\ifblank at line| is the switch used in the definition above.
-%    In the original \textsf{verbatim} environment the |\if at tempswa|
+%    In the original \env{verbatim} environment the |\if at tempswa|
 %    switch is used. This is dangerous because its value may change
-%    while processing lines in the \textsf{macrocode} environment.
+%    while processing lines in the \env{macrocode} environment.
 %    \begin{macrocode}
 \newif\ifblank at line
 %    \end{macrocode}
@@ -1419,10 +2215,10 @@
 % \end{macro}
 %
 % \begin{macro}{\endmacrocode}
-%    Because we have begun a \textsf{trivlist} environment in the
-%    \textsf{macrocode} environment, we must also end it.  We must
-%    also act on the value of the "pm at module" flag (see below) and
-%    empty "\everypar".
+%    Because we have begun a \env{trivlist} environment in the
+%    \env{macrocode} environment, we must also end it.  We must
+%    also act on the value of the |pm at module| flag (see below) and
+%    empty |\everypar|.
 % \changes{v1.5r}{1989/11/04}{Support for code line no. (Undoc)}
 %    \begin{macrocode}
 \def\endmacrocode{%
@@ -1439,7 +2235,7 @@
 % \end{macro}
 %
 %
-% \begin{macro}{\MacroFont}
+% \begin{imacro}{\MacroFont}
 %    Here is the default definition for the |\MacroFont| macro.
 %    With the new math font handling in NFSS2 it isn't any longer
 %    correct to suppress the math font setup since this is now handled
@@ -1459,7 +2255,7 @@
 %    bothered since doc-sources should be up-to-date but since the
 %    request came from someone called David Carlisle \ldots :-)
 % \changes{v1.9y}{1996/01/26}{Support compat mode}
-%  \changes{v2.1l}{2019/12/16}{Use \cs{shapedefault} not
+% \changes{v2.1l}{2019/12/16}{Use \cs{shapedefault} not
 %    \cs{updefault} for extended NFSS}
 %    \begin{macrocode}
     \def\MacroFont{\small
@@ -1477,9 +2273,9 @@
   \fi
   }{}
 %    \end{macrocode}
-% \end{macro}
+% \end{imacro}
 %
-% \begin{macro}{\AltMacroFont}
+% \begin{imacro}{\AltMacroFont}
 % \begin{macro}{\macro at font}
 % \changes{v1.7a}{1992/03/12}{Added to support distinction of modules.}
 % \changes{v1.7c}{1992/03/26}{Altered font change for OFSS.}
@@ -1487,9 +2283,9 @@
 % \changes{v1.8c}{1993/10/25}{NFSS standard}
 % \changes{v1.9t}{1995/05/26}{Removed \cs{math at fontsfalse} (different
 %                             math setup /pr1622}
-% Although most of the macro code is set in "\MacroFont" we want to be
-% able to switch to indicate module code set in "\AltMacroFont".
-% "\macro at font" keeps track of which one we're using.  We can't do the
+% Although most of the macro code is set in |\MacroFont| we want to be
+% able to switch to indicate module code set in |\AltMacroFont|.
+% |\macro at font| keeps track of which one we're using.  We can't do the
 % same thing sensibly in OFSS as in NFSS.
 %    \begin{macrocode}
 \@ifundefined{AltMacroFont}{%
@@ -1514,8 +2310,8 @@
  \fi
   }{}
 %    \end{macrocode}
-%    To allow changing the "\MacroFont" in the preamble we defer
-%    defining the internally used "\macro at font" until after the
+%    To allow changing the |\MacroFont| in the preamble we defer
+%    defining the internally used |\macro at font| until after the
 %    preamble.
 % \changes{v2.0a}{1998/05/16}{Support changing \cs{MacroFont} in
 %          preamble}
@@ -1523,23 +2319,23 @@
 \AtBeginDocument{\let\macro at font\MacroFont}
 %    \end{macrocode}
 % \end{macro}
-% \end{macro}
+% \end{imacro}
 %
 % \begin{macro}{\check at module}
 % \begin{macro}{\ifpm at module}
 % \changes{v1.7a}{1992/03/12}{Added.}
-% This is inserted by "\everypar" at the start of each macrocode line to
+% This is inserted by |\everypar| at the start of each macrocode line to
 % check whether it starts with module information.  (Such information is
-% of the form "%<"\meta{switch}">", where the "%" must be at the
+% of the form |%<|\meta{switch}|>|, where the |%| must be at the
 % start of the line and \meta{switch} comprises names with various
-% possible separators and a possible leading "+", "-", "*" or "/"
+% possible separators and a possible leading |+|, |-|, |*| or |/|
 % \cite{art:docstrip}.  All that concerns us here is what the first
-% character of \meta{switch} is.)  First it checks the "pm at module"
+% character of \meta{switch} is.)  First it checks the |pm at module|
 % flag in case the previous line had a non-block module
-% directive i.e., not "%<*" or "%</"; if it did we need to close the
-% group it started and unset the flag.  "\check at module" looks ahead at
-% the next token and then calls "\ch at percent" to take action depending
-% on whether or not it's a "%"; we don't want to expand the token at
+% directive i.e., not |%<*| or |%</|; if it did we need to close the
+% group it started and unset the flag.  |\check at module| looks ahead at
+% the next token and then calls |\ch at percent| to take action depending
+% on whether or not it's a |%|; we don't want to expand the token at
 % this stage.  This is all done conditionally so it can be turned off
 % if it causes problems with code that wasn't designed to be
 % \texttt{docstrip}ped.
@@ -1553,12 +2349,12 @@
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
-% \begin{macro}{\DontCheckModules}
-% \begin{macro}{\CheckModules}
+% \begin{imacro}{\DontCheckModules}
+% \begin{imacro}{\CheckModules}
 % \changes{v1.7a}{1992/03/12}{Added.}
 % \begin{macro}{\ifcheck at modules}
 % Here are two driver-file interface macros for turning the module
-% checking on and off using the "check at modules" switch.
+% checking on and off using the |check at modules| switch.
 %    \begin{macrocode}
 \def\DontCheckModules{\check at modulesfalse}
 \def\CheckModules{\check at modulestrue}
@@ -1565,13 +2361,15 @@
 \newif\ifcheck at modules  \check at modulestrue
 %    \end{macrocode}
 % \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{imacro}
+% \end{imacro}
+%
+%
 % \begin{macro}{\ch at percent}
 % \changes{v1.7a}{1992/03/12}{Added.}
-% If the lookahead token in "\next" is $"%"_{12}$ we go on to check
-% whether the following one is "<" and otherwise do nothing.  Note the
-% "\expandafter" to get past the "\fi".
+% If the lookahead token in |\next| is $|%|_{12}$ we go on to check
+% whether the following one is |<| and otherwise do nothing.  Note the
+% |\expandafter| to get past the |\fi|.
 %    \begin{macrocode}
 \def\ch at percent{%
   \if \percentchar\next
@@ -1582,7 +2380,7 @@
 %
 % \begin{macro}{\check at angle}
 % \changes{v1.7a}{1992/03/12}{Added.}
-% Before looking ahead for the "<" the "%" is gobbled by the
+% Before looking ahead for the |<| the |%| is gobbled by the
 % argument here.
 %    \begin{macrocode}
 \def\check at angle#1{\futurelet\next\ch at angle}
@@ -1591,9 +2389,9 @@
 % \begin{macro}{\ch at angle}
 % \changes{v1.7a}{1992/03/12}{Added.}
 % \changes{v1.9k}{1994/02/22}{Have \texttt{<} active}
-%    If the current lookahead token is "<" we are defined to be
-%    processing a module directive can go on to look for "+" etc.;
-%    otherwise we must put back the gobbled "%". With \LaTeXe{}
+%    If the current lookahead token is |<| we are defined to be
+%    processing a module directive can go on to look for |+| etc.;
+%    otherwise we must put back the gobbled |%|. With \LaTeXe{}
 %    \texttt{<} is active so we have to be a bit careful.
 %    \begin{macrocode}
 \begingroup
@@ -1644,13 +2442,13 @@
 % \end{macro}
 % \begin{macro}{\pm at module}
 % If we're not dealing with a block
-% directive ("*" or "/") i.e., it's a single special line, we set
-% everything up to the next ">" appropriately and then change to the
+% directive (|*| or |/|) i.e., it's a single special line, we set
+% everything up to the next |>| appropriately and then change to the
 % special macro font inside a group which will be ended at the start
 % of the next line.  If the apparent module directive is missing the
-% terminating ">" this will lose, but then so will the \texttt{docstrip}
+% terminating |>| this will lose, but then so will the \texttt{docstrip}
 % implementation.  An alternative strategy would be to have
-% "\pm at module" make ">" active and clear a flag set here to indicate
+% |\pm at module| make |>| active and clear a flag set here to indicate
 % processing the directive.  Appropriate action could then be taken if
 % the flag was found still to be set when processing the next line.
 % \changes{v1.7a}{1992/03/12}{Added.}
@@ -1663,8 +2461,8 @@
    \Module{#1}\begingroup
 %    \end{macrocode}
 %    We switch to a special font as soon the nesting is higher than
-%    the current value of "\c at StandardModuleDepth". We do a local
-%    update to the "\guard at level" here which will be restored after
+%    the current value of |\c at StandardModuleDepth|. We do a local
+%    update to the |\guard at level| here which will be restored after
 %    the current input line.
 %    \begin{macrocode}
      \advance\guard at level\@ne
@@ -1706,8 +2504,7 @@
 % \end{macro}
 % \end{macro}
 %
-%
-%  \begin{macro}{\c at StandardModuleDepth}
+%  \begin{lcounter}{StandardModuleDepth}
 % \changes{v1.7i}{1992/07/11}{Counter added.}
 %    Counter defining up to which level modules are considered part of
 %    the main code. If, for  example, the whole code is surrounded by
@@ -1716,16 +2513,17 @@
 %    \begin{macrocode}
 \newcounter{StandardModuleDepth}
 %    \end{macrocode}
-%  \end{macro}
+%  \end{lcounter}
 %
 %
-% \begin{macro}{\guard at level}
+% \begin{tcounter}{\guard at level}
 % \changes{v1.7f}{1992/05/16}{Added.}
 % We need a counter to keep track of the guard nesting.
 %    \begin{macrocode}
 \newcount \guard at level
 %    \end{macrocode}
-% \end{macro}
+% \end{tcounter}
+
 % \begin{macro}{\Module}
 % \changes{v1.7a}{1992/03/12}{Added.}
 % \changes{v1.7d}{1992/04/25}{Use sans font for modules.}
@@ -1732,22 +2530,22 @@
 % This provides a hook to determine the way the module directive is
 % set.  It gets as argument everything between the angle brackets.
 % The default is to set the contents in sans serif text between
-% $\langle\,\rangle$ with the special characters suitably "\mathcode"d
-% by "\mod at math@codes".  (You can't just set it in a sans text font
-% because normally "|" will print as an em-dash.)  This is done
+% $\langle\,\rangle$ with the special characters suitably |\mathcode|d
+% by |\mod at math@codes|.  (You can't just set it in a sans text font
+% because normally \verb"|" will print as an em-dash.)  This is done
 % differently depending on whether we have the NFSS or the old one.  In
-% the latter case we can easily change "\fam" appropriately.
+% the latter case we can easily change |\fam| appropriately.
 % \changes{v1.8c}{1993/10/25}{NFSS standard}
 %    \begin{macrocode}
 \@ifundefined{Module}{%
 %    \end{macrocode}
 %    With NFSS what we probably {\em should\/} do is change to a new
-%    "\mathversion" but I (Dave Love) haven't spotted an easy way to
+%    |\mathversion| but I (Dave Love) haven't spotted an easy way to
 %    do so correctly if the document uses a version other than
-%    "normal".  (We need to know in what font to set the other
+%    |normal|.  (We need to know in what font to set the other
 %    groups.)  This uses a new math alphabet rather than version and
 %    consequently has to worry about whether we're using
-%    \textsf{oldlfnt} or not.  I expect there's a better
+%    \env{oldlfnt} or not.  I expect there's a better
 % way\ldots
 %    \begin{macrocode}
       \def\Module#1{\mod at math@codes$\langle\mathsf{#1}\rangle$}
@@ -1759,11 +2557,11 @@
 % \changes{v1.7c}{1992/03/26}{Added.}
 % \changes{v2.1e}{2010/02/04}{Added mathcodes for +,-,:, and = (pr/4096)}
 %    As well as `words', the module
-%    directive text might contain any of the characters "*/+-,&|!()"
-%    for the current version of \textsf{docstrip}.  We only need
+%    directive text might contain any of the characters \verb"*/+-,&|!()"
+%    for the current version of \prg{docstrip}.  We only need
 %    special action for two of them in the math code changing required
-%    above: "|" is changed to a "\mathop" (it's normally |"026A|) and
-%    "&" is also made a "\mathop", but in family 0.  Remember that "&"
+%    above: \verb"|" is changed to a |\mathop| (it's normally |"026A|) and
+%    |&| is also made a |\mathop|, but in family 0.  Remember that |&|
 %    will not have a special catcode when it's encountered.
 %    \begin{macrocode}
 \def\mod at math@codes{\mathcode`\|="226A \mathcode`\&="2026
@@ -1772,27 +2570,9 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\mathsf}
-% \changes{v1.7c}{1992/03/26}{Added.}
-% \changes{v1.7d}{1992/04/25}{Use sans font for modules.}
-% \changes{v1.7n}{1993/02/21}{\cs{sfmath} Renamed to \cs{mathsf}.}
-% \changes{v1.8c}{1993/10/25}{NFSS standard}
-% If NFSS is in use we need a new math alphabet which uses a sans serif
-% font. To support both the release one and two of NFSS the alphabet
-% was renamed to "\mathsf" which is defined in NFSS2.
-%    \begin{macrocode}
-%\ifx\selectfont\undefined
-%\else
-%  \ifx\mathsf\undefined
-%    \newmathalphabet*{\mathsf}{\sfdefault}{m}{n}\fi
-%\fi
-%    \end{macrocode}
-% \end{macro}
 %
-%
-%
-% \begin{macro}{\MacrocodeTopsep}
-% \begin{macro}{\MacroIndent}
+% \begin{lskip}{\MacrocodeTopsep}
+% \begin{ldimen}{\MacroIndent}
 %    In the code above, we have used two registers. Therefore we have
 %    to allocate them. The default values might be overwritten with
 %    the help of the |\DocstyleParms| macro.
@@ -1805,8 +2585,8 @@
 \newdimen\MacroIndent
 \settowidth\MacroIndent{\rmfamily\scriptsize 00\ }
 %    \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{ldimen}
+% \end{lskip}
 %
 %
 %
@@ -1813,14 +2593,14 @@
 %
 % \begin{environment}{macrocode*}
 % \begin{macro}{\endmacrocode*}
-%    Just as in the \textsf{verbatim} environment, there is also a
-%    `star' variant of the \textsf{macrocode} environment in which a
+%    Just as in the \env{verbatim} environment, there is also a
+%    `star' variant of the \env{macrocode} environment in which a
 %    space is shown by the symbol \verb*+ +.  Until this moment, I
 %    have not yet used it (it will be used in the description of the
 %    definition of |\xmacro at code| below) but it's exactly on this one
-%    occasion {\em here\/} that you can't use it (cf.\ M\"unchhausens
+%    occasion {\em here\/} that you can't use it (cf.\ Münchhausens
 %    Marsh problem)\footnote{Karl Friedrich Hieronymus Frhr.\ v.\
-%    M\"unchhausen (*1720, \dag1797).  Several books were written
+%    Münchhausen (*1720, \dag1797).  Several books were written
 %    about fantastic adventures supposedly told by him (see
 %    \cite{book:Raspe} or \cite{book:Buerger}). In one story he
 %    escaped from the marsh by pulling himself out by his hair.}
@@ -1865,7 +2645,7 @@
 %    \end{macrocode*}
 %    Additionally, we need to ensure that the symbols in the above
 %    string contain the |\catcode|$\,$s which are available
-%    within the \textsf{macrocode} environment.
+%    within the \env{macrocode} environment.
 %    \begin{macrocode*}
 \catcode`\{=12 \catcode`\}=12
 \catcode`\%=12 \catcode`\ =\active \catcode`\\=\active
@@ -1908,65 +2688,7 @@
 % \subsection{Macros for the `documentation parts'}
 %
 %
-% \begin{macro}{\DescribeMacro}
-% \begin{macro}{\Describe at Macro}
-% \changes{v1.5v}{1990/01/28}{Macro added.}
-% \changes{v1.5j}{1989/06/09}{\cs{ignorespaces} added as a temporary
-%                             fix}
-% \begin{macro}{\DescribeEnv}
-% \begin{macro}{\Describe at Env}
-% \changes{v1.5v}{1990/01/28}{Macro added.}
-% \changes{v1.5j}{1989/06/09}{\cs{ignorespaces} added as a temporary
-%                             fix}
-%    The |\DescribeMacro| and |\DescribeEnv| macros should
-%    print their arguments in the margin and produce an index entry.
-%    We simply use |\marginpar| to get the desired result. This
-%    is however not the best solution because the labels might be
-%    slightly misplaced. One also might get a lot of `marginpar moved'
-%    messages which are hard-wired into the \LaTeX{} output
-%    routine.\footnote{It might be better to change these macros into
-%    environments like the \textsf{macro} environment.} First we change
-%    to horizontal mode if necessary. The \LaTeX{} macros
-%    |\@bsphack| and |\@esphack| are used to make those
-%    commands invisible (i.e.\ to normalize the surrounding space and
-%    to make the |\spacefactor| transparent).
-% \changes{v1.5v}{1990/01/28}{\cs{MakePrivateLetters} added.}
-%    \begin{macrocode}
-\def\DescribeMacro{\leavevmode\@bsphack
-%    \end{macrocode}
-%    When documenting the code for the \texttt{amstex.sty} option we
-%    encountered a bug: the |\catcode| of |@| was active and
-%    therefore couldn't be used in command names. So we first have to
-%    make sure that we get all |\catcode|s right by calling
-%    |\MakePrivateLetters| inside a group. Then we call
-%    |\Describe at Macro| to do the work.
-% \changes{v2.0g}{1999/03/22}{Parse backslash as letter in argument
-%        to \cs{DescribeMacro}.}
-% \changes{v2.0h}{1999/03/25}{Correct errors introduced in v2.0g.}
-%    \begin{macrocode}
-   \begingroup\MakePrivateLetters\Describe at Macro}
-\def\Describe at Macro#1{\endgroup
-              \marginpar{\raggedleft\PrintDescribeMacro{#1}}%
-%    \end{macrocode}
-%    Note the use of |\raggedleft| to place the output flushed
-%    right. Finally we call a macro which produces the actual index
-%    entry and finish with |\@esphack| to leave no
-%    trace.\footnote{The whole mechanism won't work because
-%                    of the \texttt{\bslash leavevmode} in front.
-%                    As a temporary change \texttt{\bslash ignorespaces}
-%                    is added.}
-%    \begin{macrocode}
-              \SpecialUsageIndex{#1}\@esphack\ignorespaces}
-%    \end{macrocode}
-%    The |\DescribeEnv| macro is completely analogous.
-% \changes{v1.5v}{1990/01/28}{\cs{MakePrivateLetters} added.}
-%    \begin{macrocode}
-\def\DescribeEnv{\leavevmode\@bsphack\begingroup\MakePrivateLetters
-  \Describe at Env}
-\def\Describe at Env#1{\endgroup
-              \marginpar{\raggedleft\PrintDescribeEnv{#1}}%
-              \SpecialEnvIndex{#1}\@esphack\ignorespaces}
-%    \end{macrocode}
+
 %    To put the labels in the left margin we have to use the
 %    |\reversemarginpar| declaration. (This means that the
 %    \texttt{doc.sty} can't be used with all classes or packages.)
@@ -1978,12 +2700,12 @@
 \reversemarginpar
 \setlength\marginparpush{0pt}  \setlength\marginparwidth{8pc}
 %    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
 %
-% \begin{macro}{\bslash}
+%    \begin{macrocode}
+\setlength\marginparsep{\labelsep}
+%    \end{macrocode}
+%
+% \begin{imacro}{\bslash}
 % \changes{v1.7a}{1992/02/26}{Moved \cs{bslash} documentation to `user
 %                           interface' part}
 %    We start a new group in which to hide the alteration of
@@ -2000,7 +2722,7 @@
 %    \begin{macrocode}
 |gdef|bslash{\}}
 %    \end{macrocode}
-% \end{macro}
+% \end{imacro}
 %
 %
 %
@@ -2007,7 +2729,7 @@
 % \begin{environment}{verbatim}
 % \begin{environment}{verbatim*}
 % \changes{v1.7i}{1992/07/12}{Added changed definition for verbatim!*.}
-%    The \textsf{verbatim} environment holds no secrets; it consists of
+%    The \env{verbatim} environment holds no secrets; it consists of
 %    the normal \LaTeX{} environment.  We also set the
 %    |\@beginparpenalty| and change to the font given by
 %    |\MacroFont|.
@@ -2032,7 +2754,7 @@
 % \begin{macro}{\@verbatim}
 %    Additionally we redefine the |\@verbatim| macro so that it
 %    suppresses |%| characters at the beginning of the line.  The
-%    first lines are copied literally from the \LaTeX{} format.
+%    first lines are copied literally from \texttt{latex.tex}.
 % \changes{v1.7i}{1992/07/12}{Added \cs{@@par} to clear possible
 %                             \cs{parshape}.}
 %    \begin{macrocode}
@@ -2056,7 +2778,7 @@
 %    \begin{macrocode}
    \check at percent}%
 %    \end{macrocode}
-%    The rest is again copied literally from the \LaTeX{} format (less
+%    The rest is again copied literally from \texttt{latex.tex} (less
 %    "\tt").
 % \changes{v1.7a}{1992/02/26}{Removed redundant \cs{tt}.}
 % \changes{v1.8b}{1993/09/21}{Changed to conform to new LaTeX verbatim,
@@ -2074,7 +2796,7 @@
 %    percent's |\catcode| so that it is seen by \TeX.  The definition
 %    itself is nearly trivial: grab the following character, check if
 %    it is a |%|, and insert it again if not.  At the end of the
-%    \textsf{verbatim} environment this macro will peek at the next
+%    \env{verbatim} environment this macro will peek at the next
 %    input line. In that case the argument to |\check at percent| might
 %    be a |\par| or a macro with arguments. Therefore we make the
 %    definition |\long| (|\par| allowed) and use the normal |\next|
@@ -2093,16 +2815,16 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\verb}
+% \begin{imacro}{\verb}
 % \changes{v1.7a}{1992/02/27}{Now warns about newlines (from
 %                           newdoc with `@noligs added).}
 % \changes{v1.8b}{1993/09/21}{Changed to conform to new LaTeX \cs{verb}}
-% We re-define "\verb" to check for newlines in its argument since a
+% We re-define |\verb| to check for newlines in its argument since a
 % missing delimiter is difficult to detect in \DOC{} source.
 % The code is the same as in \texttt{latex.tex} of September 19, 1993.
 % Perhaps there should be a font-changing
-% hook rather than just using "\ttfamily", but if so it probably should be
-% different from "\MacroFont" since that normally includes "\small"
+% hook rather than just using |\ttfamily|, but if so it probably should be
+% different from |\MacroFont| since that normally includes |\small|
 % and would look wrong inline.
 % \changes{v1.7a}{1992/02/28}{Added math mode check (from verbatim.sty)}
 %    \begin{macrocode}
@@ -2111,7 +2833,7 @@
     \ttfamily \verb at eol@error \let\do\@makeother \dospecials
     \@ifstar{\@sverb}{\@vobeyspaces \frenchspacing \@sverb}}
 %    \end{macrocode}
-% \end{macro}
+% \end{imacro}
 %
 % \begin{macro}{\verb at balance@group}
 % \begin{macro}{\verb at egroup}
@@ -2118,17 +2840,20 @@
 % \begin{macro}{\verb at eol@error}
 % \changes{v1.8b}{1993/09/21}{Renamed \cs{verb at err} to
 %                   \cs{verb at eol@error}, as in new LaTeX verbatim.}
-% \changes{v2.1n}{2021/05/28}{Use same error message text as in format}
 %    \begin{macrocode}
 \let\verb at balance@group\@empty
-
+%    \end{macrocode}
+%
+%    \begin{macrocode}
 \def\verb at egroup{\global\let\verb at balance@group\@empty\egroup}
-
+%    \end{macrocode}
+%
+%    \begin{macrocode}
 \begingroup
   \obeylines%
   \gdef\verb at eol@error{\obeylines%
     \def^^M{\verb at egroup\@latex at error{%
-            \noexpand\verb ended by end of line}\@ehc}}%
+            \noexpand\verb command ended by end of line}\@ehc}}%
 \endgroup
 %    \end{macrocode}
 % \end{macro}
@@ -2155,7 +2880,7 @@
 %
 % \begin{macro}{\verbatim at nolig@list}
 % \begin{macro}{\do at noligs}
-%     These macros replace the old "\@noligs" mechanism by an
+%     These macros replace the old |\@noligs| mechanism by an
 %     extensible version to allow more ligatures to be added.
 %    \begin{macrocode}
 \def\verbatim at nolig@list{\do\`\do\<\do\>\do\,\do\'\do\-}
@@ -2168,240 +2893,29 @@
 % \end{macro}
 % \end{macro}
 %
-%
-% \begin{macro}{\macro}
-% \begin{macro}{\m at cro@}
-% \changes{v1.5v}{1990/01/28}{\cs{macro@} renamed to \cs{m at cro@}
-%                  since AmSTeX
-%      defines another macro of the same name.}
-% \begin{macro}{\macro at cnt}
-%    \label{page:macro} The \textsf{macro} environment is implemented as
-%    a \textsf{trivlist} environment, whereby in order that the macro
+% \begin{tcounter}{\macro at cnt}
+%    \label{page:macro} The \env{macro} environment is implemented as
+%    a \env{trivlist} environment, whereby in order that the macro
 %    names can be placed under one another in the margin
 %    (corresponding to the macro's nesting depth), the macro
 %    |\makelabel| must be altered.  In order to store the nesting
 %    depth, we use a counter. We also need a counter to count the
-%    number of nested \textsf{macro} environments.
+%    number of nested \env{macro} environments.
 % \changes{v1.5k}{1989/08/17}{Fix for save stack problem.}
 % \changes{v1.9k}{1994/02/22}{Fix probably no longer necessary}
 %    \begin{macrocode}
 \newcount\macro at cnt \macro at cnt=0
 %    \end{macrocode}
-%    The environment takes an argument---the macro name to be
-%    described.  Since this name may contain special `letters' we have
-%    to re-|\catcode| them before scanning the argument. This is done
-%    by the |\MakePrivateLetters| macro.
-% \changes{v1.5k}{1989/08/17}{Fix for save stack problem.}
-% \changes{v1.7a}{1992/02/26}{Catcode backslash to other (from newdoc).}
-% \changes{v1.9k}{1994/02/22}{Don't omit extra group}
-%    \begin{macrocode}
-\def\macro{\begingroup
-   \catcode`\\12
-   \MakePrivateLetters \m at cro@ \iftrue}
-%    \end{macrocode}
+% \end{tcounter}
 %
-% \begin{environment}{environment}
-% \changes{v1.8c}{1993/10/25}{Environment added}
-%    The ``environment'' environment will be implemented just like the
-%    ``macro'' environment flagging any differences in the code by
-%    passing |\iffalse| or |\iftrue| to the |\m at cro@| environment
-%    doing the actual work.
-%    \begin{macrocode}
-\def\environment{\begingroup
-   \catcode`\\12
-   \MakePrivateLetters \m at cro@ \iffalse}
-%    \end{macrocode}
-% \end{environment}
 %
-%    After scanning the argument we close the group to get the normal
-%    |\catcode|$\,$s back. Then we assign a special value to
-%    |\topsep| and start a \textsf{trivlist} environment.
-% \changes{v1.5f}{1989/05/07}{MacroTopsep parameter added.}
-% \changes{v1.5k}{1989/08/17}{Fix for save stack problem.}
-% \changes{v1.8c}{1993/10/25}{Support ``environment'' env}
-% \changes{v1.9k}{1994/02/22}{Remove \cs{macro at level}}
-%    \begin{macrocode}
-\long\def\m at cro@#1#2{\endgroup \topsep\MacroTopsep \trivlist
-%    \end{macrocode}
-% We also save the name being described in |\saved at macroname| for
-% use in conjunction with the |\changes| macro.
-%    \begin{macrocode}
-  \edef\saved at macroname{\string#2}%
-  #1
-%    \end{macrocode}
-%    If documenting an environment we put is name in |\saved at indexname|
-%    otherwise the name without the backslash.
-% \changes{v2.1g}{2016/02/15}{Use \cs{saved at indexname}}
-%    \begin{macrocode}
-    \let\saved at indexname\saved at macroname
-  \else
-    \edef\saved at indexname{\expandafter\@gobble\string#2}%
-  \fi
-%    \end{macrocode}
-%    Now there follows a variation of |\makelabel| which is used
-%    should the environment not be nested, or should it lie between
-%    two successive |\begin{macro}| instructions or explanatory
-%    text.  One can recognize this with the switch |\if at inlabel|
-%    which will be |true| in the case of successive |\item|
-%    commands.
-%    \begin{macrocode}
-  \def\makelabel##1{\llap{##1}}%
-%    \end{macrocode}
-%    If |@inlabel| is |true| and if $\verb=\macro at cnt= > 0$
-%    then the above definition needs to be changed, because in this
-%    case \LaTeX{} would otherwise put the labels all on the same line
-%    and this would lead to them being overprinted on top of each
-%    other.  Because of this |\makelabel| needs to be redefined
-%    in this case.
-%    \begin{macrocode}
-  \if at inlabel
-%    \end{macrocode}
-%    If |\macro at cnt| has the value $1$, then we redefine
-%    |\makelabel| so that the label will be positioned in the
-%    second line of the margin.  As a result of this, two macro names
-%    appear correctly, one under the other.  It's important whilst
-%    doing this that the generated label box is not allowed to have
-%    more depth than a normal line since otherwise the distance
-%    between the first two text lines of \TeX{} will be incorrectly
-%    calculated. The definition should then look like:
-%\begin{verbatim}
-%     \def\makelabel##1{\llap{\vtop to \baselineskip
-%          {\hbox{\strut}\hbox{##1}\vss}}}
-%\end{verbatim}
-%    Completely analogous to this is the case where labels need to be
-%    placed one under the other.  The lines above are only an example
-%    typeset with the \textsf{verbatim} environment. To produce the real
-%    definition we save the value of |\macro at cnt| in
-%    |\count@| and empty the temp macro |\@tempa| for later
-%    use.
-%    \begin{macrocode}
-    \let\@tempa\@empty \count@\macro at cnt
-%    \end{macrocode}
-%    In the following loop we append for every already typeset label
-%    an |\hbox{\strut}| to the definition of |\@tempa|.
-%    \begin{macrocode}
-    \loop \ifnum\count@>\z@
-      \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m at ne \repeat
-%    \end{macrocode}
-%    Now be put the definition of |\makelabel| together.
-% \changes{v1.5b}{1989/04/27}{vbox to vtop changed in makelabel (test)}
-% \changes{v1.5e}{1989/04/28}{ht strutbox changed to baselineskip
-%                             (test)}
-%    \begin{macrocode}
-    \edef\makelabel##1{\llap{\vtop to\baselineskip
-                               {\@tempa\hbox{##1}\vss}}}%
-%    \end{macrocode}
-%    Next we increment the value of the nesting depth counter.  This
-%    value inside the \textsf{macro} environment is always at least one
-%    after this point, but its toplevel definition is zero. Provided
-%    this environment has been used correctly, $|\macro at cnt|=0$
-%    should not occur when |@inlabel|=\textsf{true}.  It is
-%    however possible if this environment is used within other list
-%    environments (but this would have little point).
-%    \begin{macrocode}
-    \advance \macro at cnt \@ne
-%    \end{macrocode}
-%    If |@inlabel| is false we reset |\macro at cnt| assuming
-%    that there is enough room to print the macro name without
-%    shifting.
-%    \begin{macrocode}
-  \else  \macro at cnt\@ne  \fi
-%    \end{macrocode}
-%    Now the label will be produced using |\item|. The following
-%    line is only a hack saving the day until a better solution is
-%    implemented.  We have to face two problems: the argument might be
-%    a |\par| which is forbidden in the argument of other macros
-%    if they are not defined as |\long|, or it is something like
-%    |\iffalse| or |\else|, i.e.\ something which will be
-%    misinterpreted when \TeX{} is skipping conditional text. In both
-%    cases |\item| will bomb, so we protect the argument by using
-%    |\string|.
-%    \begin{macrocode}
-  \edef\@tempa{\noexpand\item[%
-%    \end{macrocode}
-%    Depending on whether we are inside a ``macro'' or ``environment''
-%    environment we use |\PrintMacroName| or |\PrintEnvName| to
-%    display the name.
-%    \begin{macrocode}
-     #1%
-       \noexpand\PrintMacroName
-     \else
-       \noexpand\PrintEnvName
-     \fi
-     {\string#2}]}%
-  \@tempa
-%    \end{macrocode}
-%    At this point we also produce an index entry.  Because it is not
-%    known which index sorting program will be used, we do not use the
-%    command |\index|, but rather a command
-%    |\SpecialMainIndex| after advancing the counter for indexing
-%    by line number.  This may be redefined by the user in
-%    order to generate an index entry which will be understood by the
-%    index program in use (note the definition of
-%    |\SpecialMainIndex| for our installation).
-% \changes{v1.5s}{1989/11/05}{Support for code line no. (Undoc)}
-% \changes{v1.9u}{1995/08/06}{Removed brace group which
-%           killed \cs{DoNotIndex}}
-%    We advance the current codeline number and after producing an
-%    index entry revert to the original value
-%    \begin{macrocode}
-  \global\advance\c at CodelineNo\@ne
-%    \end{macrocode}
-%    Again the macro to call depends on the environment we are
-%    actually in.
-%    \begin{macrocode}
-   #1%
-      \SpecialMainIndex{#2}\nobreak
-      \DoNotIndex{#2}%
-   \else
-      \SpecialMainEnvIndex{#2}\nobreak
-   \fi
-  \global\advance\c at CodelineNo\m at ne
-%    \end{macrocode}
-%    The |\nobreak| is needed to prevent a page break after the
-%    |\write| produced by the |\SpecialMainIndex| macro.  We
-%    exclude the new macro in the cross-referencing feature, to
-%    prevent spurious non-main entry references.  Regarding possibly
-%    problematic arguments, the implementation takes
-%    care of |\par| and the conditionals are uncritical.
-%  \changes{v1.7a}{1992/03/02}{Removed redundant code checking for
-%                             \cs{par}.}^^A
-%
-%    Because the space symbol should be ignored between the
-%    |\begin{macro}{...}| and the following text we must take
-%    care of this with |\ignorespaces|.
-%    \begin{macrocode}
-  \ignorespaces}
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-%
-%
-% \begin{macro}{\endmacro}
-% \begin{macro}{\endenvironment}
-%     Older releases of this environment omit the |\endgroup| token,
-%     when being nested. This was done to avoid unnecessary stack usage.
-%     However it does not work if \textsf{macro} and
-%     \textsf{environment} environments are mixed, therefore we now
-%     use a simpler approach.
-% \changes{v1.5k}{1989/08/17}{Fix for save stack problem.}
-% \changes{v1.9k}{1994/02/22}{Don't checkfor nesting}
-%    \begin{macrocode}
-\let\endmacro \endtrivlist
-\let\endenvironment\endmacro
-%    \end{macrocode}
-%  \end{macro}
-%  \end{macro}
-%
-% \begin{macro}{\MacroTopsep}
+% \begin{lskip}{\MacroTopsep}
 %    Here is the default value for the |\MacroTopsep| parameter
 %    used above.
 %    \begin{macrocode}
 \newskip\MacroTopsep     \MacroTopsep = 7pt plus 2pt minus 2pt
 %    \end{macrocode}
-% \end{macro}
+% \end{lskip}
 %
 %
 %
@@ -2413,49 +2927,15 @@
 % Therefore we define those macros only if they have not already
 % been defined.
 %
-% \begin{macro}{\PrintMacroName}
-% \begin{macro}{\PrintEnvName}
-% \begin{macro}{\PrintDescribeMacro}
-% \begin{macro}{\PrintDescribeEnv}
-%    The formatting of the macro name in the left margin is done by
-%    these macros. We first set a |\strut| to get the height and
-%    depth of the normal lines. Then we change to the
-%    |\MacroFont| using |\string| to |\catcode| the
-%    argument to other (assuming that it is a macro name). Finally we
-%    print a space.  The font change remains local since this macro
-%    will be called inside an |\hbox|.
-%    \begin{macrocode}
-\@ifundefined{PrintMacroName}
-   {\def\PrintMacroName#1{\strut \MacroFont \string #1\ }}{}
-%    \end{macrocode}
-%    We use the same formatting conventions when describing a macro.
-%    \begin{macrocode}
-\@ifundefined{PrintDescribeMacro}
-   {\def\PrintDescribeMacro#1{\strut \MacroFont \string #1\ }}{}
-%    \end{macrocode}
-%    To format the name of a new environment there is no need to use
-%    |\string|.
-%    \begin{macrocode}
-\@ifundefined{PrintDescribeEnv}
-   {\def\PrintDescribeEnv#1{\strut \MacroFont #1\ }}{}
-\@ifundefined{PrintEnvName}
-   {\def\PrintEnvName#1{\strut \MacroFont #1\ }}{}
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
 %
-%
-%
 % \subsection{Creating index entries by scanning `macrocode'}
 %
 %  The following macros ensure that index entries are created for each
 %  occurrence of a \TeX-like command (something starting with
-%  `|\|') providing indexing has been turned on with "\PageIndex"
-%  or "\CodelineIndex".  With the default definitions of
-%  |\SpecialMainIndex|, etc., the index file generated is
-%  intended to be processed by Chen's \textsf{makeindex} program
+%  `|\|') providing indexing has been turned on with |\PageIndex|
+%  or |\CodelineIndex|.  With the default definitions of
+%  |\specialMainMacroIndex|, etc., the index file generated is
+%  intended to be processed by Chen's \prg{makeindex} program
 %  \cite{art:Chen}.
 %
 %
@@ -2464,15 +2944,15 @@
 %  introduce command names at places where |\| has to belong to
 %  some other category.  Therefore, we may also need to recognize
 %  \verb+|+ as the introducer for a command when setting the text
-%  inside the \textsf{macrocode} environment.  Other users may have the
+%  inside the \env{macrocode} environment.  Other users may have the
 %  need to make similar reassignments for their macros.
 %
 %
-% \begin{macro}{\SpecialEscapechar}\label{sect:specialescapechar}
+% \begin{imacro}{\SpecialEscapechar}\label{sect:specialescapechar}
 % \begin{macro}{\active at escape@char}
 % \begin{macro}{\special at escape@char}
 %    The macro |\SpecialEscapechar| is used to denote a special escape
-%    character for the next \textsf{macrocode} environment. It has one
+%    character for the next \env{macrocode} environment. It has one
 %    argument---the new escape character given as a `single-letter'
 %    control sequence.  Its main purpose is defining
 %    |\special at escape@char| to produce the chosen escape character
@@ -2528,7 +3008,7 @@
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
-% \end{macro}
+% \end{imacro}
 %
 %
 %
@@ -2564,7 +3044,7 @@
 %    `|\|' first to 12 (at the end of |\macro at code|) then
 %    re-|\catcode| it to 13 in order to produce a $|\|_{12}$
 %    in case 3b) above.  This is done because we have to ensure that
-%    `|\|' has |\catcode| 13 within the \textsf{macrocode}
+%    `|\|' has |\catcode| 13 within the \env{macrocode}
 %    environment.  Otherwise the delimiter for the argument of
 %    |\xmacro at code| would not be found (parameter matching
 %    depends on |\catcode|$\,$s).
@@ -2574,7 +3054,7 @@
 \begingroup   \catcode`\|=\z@  \catcode`\\=\active
 %    \end{macrocode}
 %    We carry out tasks 2) and 3b) first.
-%    \SpecialEscapechar{\|}
+%    \SpecialEscapechar\|
 %    \begin{macrocode}
 |gdef|init at crossref{|catcode`|\|active   |let\|bslash
 %    \end{macrocode}
@@ -2613,7 +3093,7 @@
 %
 %
 %
-% \begin{macro}{\MakePrivateLetters}
+% \begin{imacro}{\MakePrivateLetters}
 %    Here is the default definition of this command, which makes just
 %    the |@| into a letter. The user may change it if he/she
 %    needs more or other characters masquerading as letters.
@@ -2621,7 +3101,7 @@
 \@ifundefined{MakePrivateLetters}
     {\let\MakePrivateLetters\makeatletter}{}
 %    \end{macrocode}
-% \end{macro}
+% \end{imacro}
 %
 % \begin{macro}{\close at crossref}
 %    At the end of a cross-referencing part we prepare ourselves for
@@ -2642,10 +3122,10 @@
 %    The |\init at crossref| will have made |\active| our
 %    |\special at escape@char|, so that each
 %    |\active at escape@char| will invoke |\scan at macro| when
-%    within the \textsf{macrocode} environment.  By this means, we can
+%    within the \env{macrocode} environment.  By this means, we can
 %    automatically add index entries for every \TeX-like command which
 %    is met whilst setting (in verbatim) the contents of
-%    \textsf{macrocode} environments.
+%    \env{macrocode} environments.
 %    \begin{macrocode}
 \def\scan at macro{%
 %    \end{macrocode}
@@ -2658,7 +3138,7 @@
    \special at escape@char
    \step at checksum
 %    \end{macrocode}
-%    If the \textsf{macrocode} environment contains, for example, the
+%    If the \env{macrocode} environment contains, for example, the
 %    command |\\|, the second |\| should not start the
 %    scanning mechanism. Therefore we use a switch to decide if
 %    scanning of macro names is allowed.
@@ -2689,22 +3169,9 @@
 % \end{macro}
 %
 %
-% \begin{macro}{\ifscan at allowed}
-% \begin{macro}{\scan at allowedtrue}
-% \begin{macro}{\scan at allowedfalse}
-%    |\ifscan at allowed| is the switch used above to determine if
-%    the |\active at escape@char|\SpecialIndex{\active at escape@char}
-%    should start the macro scanning mechanism.
-%    \begin{macrocode}
-\newif\ifscan at allowed    \scan at allowedtrue
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
 %
-%
-% \begin{macro}{\EnableCrossrefs}
-% \begin{macro}{\DisableCrossrefs}
+% \begin{imacro}{\EnableCrossrefs}
+% \begin{imacro}{\DisableCrossrefs}
 %    At this point we might define two macros which allow the user to
 %    disable or enable the cross-referencing mechanism. Processing of
 %    files will be faster if only main index entries are generated
@@ -2718,8 +3185,8 @@
 \def\EnableCrossrefs{\@bsphack\scan at allowedtrue
                      \def\DisableCrossrefs{\@bsphack\@esphack}\@esphack}
 %    \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{imacro}
+% \end{imacro}
 %
 %
 %
@@ -2750,6 +3217,10 @@
 %
 %
 % \begin{macro}{\short at macro}
+%
+% \fmi{this needs cleaning up too, the results in the index are
+% currently wrong for cases like `\cs{ }' and the like.}
+%
 % \changes{v1.5c}{1989/04/27}{Corrected bad bug by putting the
 %                         scan at allowedfalse macro before printing
 %                         the argument.}
@@ -2757,7 +3228,7 @@
 %           \cs{macro at namepart} as `letter' so index exclusion works.}
 %    This macro will be invoked (with a single character as parameter)
 %    when a single-character macro name has been spotted whilst
-%    scanning within the \textsf{macrocode} environment.
+%    scanning within the \env{macrocode} environment.
 %
 %    First we take a look at the |\index at excludelist| to see
 %    whether this macro name should produce an index entry.  This is
@@ -2775,14 +3246,14 @@
    \uccode`\&=\expandafter`\string#1%
    \uppercase{\def\x{\def\macro at namepart{&}}}%
    \expandafter\endgroup\x
-   \ifnot at excluded
 %    \end{macrocode}
-%    If necessary the index entry is produced by the macro
-%    |\produce at index|. Depending on the actual character seen,
-%    this macro has to do different things, so we pass the character
-%    as an argument.
+%    Any indexing is then delegated to
+%    |\maybe at index@short at macro|. Depending on the actual character seen,
+%    this macro has to do different things, which is why we keep it separate from
+%    |\maybe at index@macro| to avoid the special tests in the more
+%    common case of a multi-letter macro name.
 %    \begin{macrocode}
-     \produce at index{#1}\fi
+     \maybe at index@short at macro\macro at namepart
 %    \end{macrocode}
 %    Then we disable the cross-referencing mechanism with
 %    |\scan at allowedfalse| and print the actual character. The
@@ -2803,104 +3274,6 @@
 %
 %
 %
-% \begin{macro}{\produce at index}
-% \changes{v1.4s}{1989/04/23}{Added noexpand to all
-%                           \cs{if} tests
-%               to avoid garbage produced by new active chars}
-% \changes{v1.4s}{1989/04/23}{Used \texttt{\protect\bslash string} for
-%                          the same reason.}
-% \changes{v1.5c}{1989/04/27}{Corrected bad bug by placing the
-%                         scan at allowedfalse macro into short at macro}
-%    This macro is supposed to generate a suitable |\SortIndex|
-%    command for a given single-letter control sequence.  We test
-%    first for the cases which involve active characters (i.e.\ the
-%    backslash, the special escape character (if any), the space and
-%    the |^^M|).  Using the |\if| test (testing for
-%    character codes), we have to ensure that the argument isn't
-%    expanded.
-%    \begin{macrocode}
-\def\produce at index#1{%
-  \if\noexpand#1\special at escape@char
-%    \end{macrocode}
-%    If the character is the special escape character (or the
-%    `|\|' in case there was none) the |\it at is@a| macro is
-%    used to produce the actual |\SortIndex| call.
-%    \begin{macrocode}
-     \scan at allowedfalse \it at is@a\special at escape@char \else
-%    \end{macrocode}
-%    Next comes the test for a `|\|' which must be the
-%    $|\|_{13}$ expanding to |\bslash|.
-%    \begin{macrocode}
-     \if\noexpand#1\bslash \it at is@a\bslash \else
-%    \end{macrocode}
-%    Another possibility is \verb*+ +$_{13}$. Recall that |\space|
-%    produces a \verb*+ +$_{10}$.
-%    \begin{macrocode}
-       \if\noexpand#1\space \it at is@a\space \else
-%    \end{macrocode}
-%    The last\footnote{Well, it isn't the last active character after
-%    all. I added \texttt{\bslash @noligs} some days ago and now
-%    \texttt{`} too is active. So we have to make sure that such
-%    characters don't get expanded in the index.} possibility of an
-%    active character is |^^M|\@.  In this case we don't test for
-%    character codes, since it is easier to look if the character is
-%    equal to |\par|. (We are inside the \textsf{macrocode}
-%    environment.)
-%    \begin{macrocode}
-         \ifx#1\par
-%    \end{macrocode}
-%    If we end up here we have just scanned a |\^^M| or something
-%    similar. Since this will be treated like \verb*+\ + by \TeX{} we
-%    produce a corresponding index entry.
-%    \begin{macrocode}
-         \it at is@a\space \else
-%    \end{macrocode}
-%    If it is the token |\relax| we do nothing. This can't happen
-%    when the `doc' package is used in the way described here, but was
-%    added to allow extensions like the \texttt{idxverb} option.
-%  \changes{v1.5t}{1989/11/14}{Added \cs{relax} as a possible token to
-%                           allow extensions.}
-%    \begin{macrocode}
-         \ifx#1\relax \else
-%    \end{macrocode}
-%    The next three branches are needed because of bugs in
-%    our \textsf{makeindex} program. You can't produce unbalanced index
-%    entries\footnote{This is possible for \TeX{} if you use
-%                     \texttt{\string{$_{12}$ \rmfamily or
-%                     \ttfamily\string}$_{12}$},
-%                     but \textsf{makeindex} will complain.}
-%    and you have to double a percent character. To get around these
-%    restrictions we use special macros to produce the |\index|
-%    calls.\footnote{Brian \textsc{Hamilton Kelly} has written fixes for
-%                  all three
-%                  bugs. When they've found their way through all
-%                    installations,
-%                    the lines above will be removed. See
-%                    page~\pageref{bug:fixes} if you already have them.
-%                    (I'm not sure which versions incorporate these, but
-%                    2.11 is OK.  See also
-%                    \pageref{makeindex:version}.)}
-%    \begin{macrocode}
-           \if\noexpand#1\bgroup \LeftBraceIndex \else
-             \if\noexpand#1\egroup \RightBraceIndex \else
-               \if\noexpand#1\percentchar \PercentIndex \else
-%    \end{macrocode}
-%    All remaining characters are used directly to produce their index
-%    entries. This is possible even for the characters which have
-%    special meanings in the index program, provided we quote the
-%    characters.  (This is correctly done in |\it at is@a|.)
-%    \begin{macrocode}
-                 \it at is@a{\string#1}%
-%    \end{macrocode}
-%    We now need a whole pile of |\fi|$\,$s to match up with
-%    the |\if|$\,$s.
-%    \begin{macrocode}
-       \fi \fi \fi \fi \fi \fi \fi \fi}
-%    \end{macrocode}
-% \end{macro}
-%
-%
-%
 % \begin{macro}{\macro at name}
 %    We now come to the macro which assembles command names which
 %    consist of one or more `letters' (which might well include
@@ -2968,9 +3341,11 @@
 %    routine.  At this time \texttt{\bslash macro at namepart} might have a
 %    new value.}
 %    \begin{macrocode}
-  \ifnot at excluded
-     \edef\@tempa{\noexpand\SpecialIndex{\bslash\macro at namepart}}%
-     \@tempa  \fi}
+%  \ifnot at excluded
+%     \edef\@tempa{\noexpand\SpecialIndex{\bslash\macro at namepart}}%
+%     \@tempa  \fi
+  \maybe at index@macro \macro at namepart
+}
 %    \end{macrocode}
 % \end{macro}
 %
@@ -2980,158 +3355,528 @@
 %
 % \subsection[The index exclude list]{The index exclude
 %             list\footnotemark}
-%            \footnotetext{Warning: the incomplete commentary on
+%            \footnotetext{Info: the incomplete commentary on
 %            \texttt{\bslash DoNotIndex} and the macros it calls
 %                          was written by Dave Love.}
 %
-%    The internal form of the index exclude list is
-% \begin{quote}
-% \meta{macro name}|,|\meta{macro name}|,|
-% \ldots|,|
-% \end{quote}
-% where \meta{macro name} is a macro name like
-% $"\"_{12}"p"{_{11}}"@"_{11}$ or $"\"_{12}"$"_{11}$.  Note that the "\"
-% has category `other' and the other characters in the name are all
-% `letter', regardless of their normal category.
 %
-% \begin{macro}{\DoNotIndex}
-%    This macro is used to suppress macro names in the index.  It
-%    starts off with a new group because we have to change the
-%    |\catcode|$\,$s of all characters which belong to `letters'
-%    while macros are defined.
+%
+
+% \def\MakePrivateLetters{%
+%    \makeatletter
+%    \catcode`\_11
+%    \catcode`\:11}
+%
+%
+% The following part of the code is a new implementation using the
+% \LaTeX3 programming layer as the constructs and types
+% provided therein are making programming much easier. Over time I
+% will probably replace the rest of that \DOC code too.
 %    \begin{macrocode}
-\def\DoNotIndex{\begingroup \MakePrivateLetters
-    \catcode`\\12
+\ExplSyntaxOn
 %    \end{macrocode}
-%    Then we call the macro which actually reads the argument given by
-%    the user.
+%
+%
+% \DescribeMacro\l__doc_donotindex_seq
+%    Local sequence that holds names (as strings) of commands that
+%    should not be indexed. Within a \DOC element environment that
+%    element is placed into the sequence so that it isn't
+%    unnecessarily index within that part of the code. As the sequence
+%    is local it will revert this setting at the end of the
+%    environment so that the command is indexed elsewhere (unless it
+%    is generally disabled from indexing.
+%
+% \DescribeMacro\g__doc_idxtype_prop
+%    Global property list that holds for all commands that are special
+%    \DOC elements the type of the element. The key is the command
+%    name without backslash and the  value is \DOC element type
+%    identifier, e.g., |\texttt{Length}| for length registers if that
+%    type has been set up. \DOC only indexes commands, that is things
+%    starting with an escape character, i.e., a backslash (by
+%    default). \DOC elements that do not start with an escape
+%    character, e.g., environments are not identified when parsing
+%    code so that aren't indexed automatically inside. Thus for them
+%    there is no point in keeping them in that property list.
+%
+% \DescribeMacro{\doc_dont_index:n}
+% \DescribeInterfaceMacro{\DoNotIndex}
+%    Takes a clist of commands (with backslash) as input and exclude
+%    all of them from the index. User facing we make this available as
+%    |\DoNotIndex|.
+%
+%
+% \DescribeInterfaceMacro\ShowIndexingState
+%    Displays the current list of the exclude index list in a fairly
+%    low-level form.
+%
+% \DescribeInterfaceMacro\RecordIndexType
+%    This command takes two arguments: a command (with escape char)
+%    and its type (i.e., first mandatory
+%    argument of a |\NewDocElement| declaration. If |#1| should not be
+%    included from the index, then the data is used to record that
+%    this command is of this type. The information is then used to
+%    generate appropriate index entries. Obviously, index entries
+%    generated earlier will be listing the wrong type. Therefore this
+%    information is also placed into the \texttt{.aux} file so that it
+%    will be available  at the beginning of further runs.
+%
+%    This command is internally executed as part of any \DOC element
+%    environment so  it only needs to be explicitly given if for some
+%    reason a command with a special type has no corresponding environment.
+%
+%
+%
+%
+%  \begin{macro}{\l__doc_donotindex_seq}
+%  \begin{macro}{\g__doc_idxtype_prop}
+%    Declarations.
 %    \begin{macrocode}
-    \do at not@index}
+\seq_new:N  \l__doc_donotindex_seq
+\prop_new:N \g__doc_idxtype_prop
 %    \end{macrocode}
-% \end{macro}
+%  \end{macro}
+%  \end{macro}
 %
+% ^^A --------------------------------------------------
 %
 %
-% \begin{macro}{\do at not@index}
-%    We make the |\do at not@index| macro |\long|
-%    since the user might want to exclude the |\par|
-%    macro.
+%  \begin{macro}{\__doc_trace:x}
+%    A helper for tracing\ldots
 %    \begin{macrocode}
-\long\def\do at not@index#1{%
+\cs_new:Npn\__doc_trace:x {
+  \legacy_if:nTF{ doc at debugshow }{ \iow_term:x } { \use_none:n }
+}
 %    \end{macrocode}
-%    It just adds to a token list after finishing the group in which
-%    the catcodes were changed.
-%    \changes{v1.7a}{1992/02/26}{Replaced with newdoc version.}
+%  \end{macro}
+%
+%
+% ^^A --------------------------------------------------
+%
+%  \begin{macro}{\doc_dont_index:n}
+%  \begin{macro}{\__doc_dont_index:n}
+%  \begin{macro}{\__doc_dont_index_aux:n}
+%
+%    Parses the argument a clist of commands with
+%    |\MakePrivateLetters| in force (so that special characters are
+%    recognized as being part of command names) and puts each command
+%    without is backslash as a string into the sequence
+%    |\l__doc_donotindex_seq|.
 %    \begin{macrocode}
-    \endgroup
-    \addto at hook\index at excludelist{#1,}}
+\cs_new:Npn \doc_dont_index:n {
+  \group_begin:
+    \MakePrivateLetters
+    \__doc_dont_index:n
+}
 %    \end{macrocode}
-% \end{macro}
 %
-% \begin{macro}{\addto at hook}
-% The code for adding tokens (the second argument) to a token list
-% (the first argument) is taken from~\cite{art:verbatim}, but it needs
-% to be "\long" in case "\par" is amongt the tokens.
 %    \begin{macrocode}
-\long\def\addto at hook#1#2{#1\expandafter{\the#1#2}}
+\cs_new:Npn \__doc_dont_index:n #1 {
+  \group_end:
 %    \end{macrocode}
-% \end{macro}
 %
-% \begin{macro}{\index at excludelist}
-% We need an initially-empty register for the excluded list.
 %    \begin{macrocode}
-\newtoks\index at excludelist
-\index at excludelist{}
+  \__doc_trace:x{Disable~ indexing~ for~ '\tl_to_str:n{#1}' }
 %    \end{macrocode}
-% \end{macro}
+%    Adding the commands to the |\l__doc_donotindex_seq| sequence is
+%    done by mapping the function |\__doc_dont_index_aux:n|  on each
+%    element in the clist.
+%    \begin{macrocode}
+  \clist_map_function:nN {#1} \__doc_dont_index_aux:n
+}
+%    \end{macrocode}
+%    We record each command by using its name as a string.
+%    This means more tokens in the sequence but it allows
+%    to compare names not ``action'' which is important as different
+%    commands may have the same meaning (e.g., they may not be defined
+%    at all),
+%    \begin{macrocode}
+\cs_new:Npn \__doc_dont_index_aux:n #1 {
+  \seq_put_right:Nx \l__doc_donotindex_seq {\expandafter\@gobble \string#1}
+}
+%    \end{macrocode}
+%  \end{macro}
+%  \end{macro}
+%  \end{macro}
 %
-% \begin{macro}{\ifnot at excluded}
-%    \changes{v1.7a}{1992/02/26}{Replaced with newdoc version.}
-% \begin{macro}{\expanded at notin}
-%    Now we take a look at the |\index at excludelist| to see
-%    whether a macro name saved in |\macro at namepart| should
-%    produce an index entry. This macro is a pseudo |\if|; it
-%    should expand to |\iftrue| or |\iffalse| depending on
-%    the contents of |\index at excludelist|.
+%  \begin{macro}{\DoNotIndex}
+%    The document-level interface
 %    \begin{macrocode}
-\begingroup
+\cs_set_eq:NN \DoNotIndex \doc_dont_index:n
 %    \end{macrocode}
-%    First we change "\catcode"s so that "\" is `other' and "|" a
-%    temporary for the escape character. This is necessary since our
-%    macro names are stored that way in the "\index at excludelist".
+%  \end{macro}
+%
+%
+%  \begin{macro}{\ShowIndexingState}
+%    Some tracing information that may be helpful.
 %    \begin{macrocode}
-\catcode`\|=0%
-\catcode`\\=12
+\def \ShowIndexingState {
+  \__doc_trace:x{Show~ doc~ indexing~ state:}
+  \seq_show:N  \l__doc_donotindex_seq
+%  \tl_analysis_show:N\l__doc_donotindex_seq
+  \prop_show:N \g__doc_idxtype_prop
+}
 %    \end{macrocode}
-%    Then we define "\ifnot at excluded" to call "\expanded at notin" with
-%    two arguments: the first is the string "\" followed by the
-%    contents of "\macro at namepart" followed by a "," and the second is
-%    "\the" followed by "\index at excludelist". To achieve the expansion
-%    of "\macro at namepart", i.e.\ to pass its contents, we need a
-%    suitable number of "\expandafter"s.
-%    \SpecialEscapechar{\|}
+%  \end{macro}
+
+
+
+% ^^A --------------------------------------------------
+%
+%
+%  \begin{macro}{\__doc_idxtype_put:Nn}
+%  \begin{imacro}{\RecordIndexType}
+%  \fmi{Change name of interface command!}
+%  \begin{macro}{\RecordIndexTypeAux}
+%    This is the internal form for |\RecordIndexType|. The first
+%    argument is turned into a string and the rest of the processing
+%    is then done by |\__doc_idxtype_put:nn|
 %    \begin{macrocode}
-|gdef|ifnot at excluded{|expandafter
-     |expanded at notin|expandafter{|expandafter
-     \|macro at namepart,}{|the|index at excludelist}}
-|endgroup
+\cs_new:Npn \__doc_idxtype_put:Nn #1#2 {
+  \exp_args:Nx \__doc_idxtype_put:nn { \cs_to_str:N #1 }{#2}
 %    \end{macrocode}
-%    The macro "\expanded at notin" now does the dirty work. It first
-%    defines a macro "\in@@" with a very special parameter text. If
-%    you look closely "\in@@" has three arguments, the first one is
-%    delimited by the first argument of "\expanded at notin" (i.e.\ by
-%    the string starting with a "\" and ending with a "," above), the
-%    second is undelimited (which means that it will get the next
-%    token after our string, and the third is delimited again and will
-%    get the rest up to the token "\in@@". In other words the token
-%    "\in@@" is also used as a delimiter.
+%    We also make an entry in the \texttt{.aux} file so that this
+%    declaration becomes immediately available in the next
+%    run. However, for this we aren't reusing |\__doc_idxtype_put:N|
+%    (a.k.a.\ |\RecordIndexType|) since that would result in doubling
+%    such lines each time the document is run. Instead we use
+%    |\RecordIndexTypeAux| which is only updating the data structures
+%    without writing to the \texttt{.aux} file.
 %    \begin{macrocode}
-\def\expanded at notin#1#2{%
- \def\in@@##1#1##2##3\in@@{%
+  \protected at write\@auxout{}
+     {\string\RecordIndexTypeAux {\string#1 }{#2} }
+}
 %    \end{macrocode}
-%    Now the replacement text simply compares the second argument
-%    (i.e.\ the undelimited one after our string) to the token
-%    "\expanded at notin". This is an unclosed "\ifx" statement which
-%    means that this macro behaves similar to a normal \TeX{}
-%    conditional.
+%    When we execute this code from the \texttt{.aux} we better not
+%    generate a new line in the \texttt{.aux}. Otherwise those would
+%    cumulate over time.
 %    \begin{macrocode}
-  \ifx\expanded at notin##2}%
+\cs_new:Npn \RecordIndexTypeAux #1#2 {
+  \exp_args:Nx \__doc_idxtype_put:nn { \cs_to_str:N #1 }{#2}
+}
 %    \end{macrocode}
-%    After all these preparations we call "\in@@". First we expand the
-%    token after "\in@@" (which is "\the" from the second argument to
-%    "\expanded at notin"). As a result we get the contents of the
-%    "\index at excludelist" inserted after "\in@@". After this contents
-%    we add once more the string we are looking for, then the token
-%    "\expanded at notin" and finally the token "\in@@".
+%    Similarly, when the \texttt{.aux} is read at the end of the run we
+%    should disable that command to avoid unnecessary processing.
 %    \begin{macrocode}
- \expandafter\in@@#2#1\expanded at notin\in@@}
+\AtEndDocument{
+  \cs_set_eq:NN \RecordIndexTypeAux \use_none:nn
+}
 %    \end{macrocode}
-%    Now what happens when the macro "\in@@" above gets called? The
-%    first argument to "\in@@" is delimited by our string. In other
-%    words it will get everything from the contents of
-%    "\index at excludelist" before this string. If the string is not in
-%    "\index at excludelist" then it gets the whole contents, since after
-%    it we had inserted the string one more. In this case the next
-%    token is "\expanded at notin" which gets assigned to the second
-%    argument and the third argument will be empty. If, on the other
-%    hand, the string was inside "\index at excludelist" then the second
-%    argument will not be the token "\expanded at notin" and the third
-%    argument will be all the garbage up to "\in@@". Therefore testing
-%    the seconded argument, as done in the definition of "\in@@" will
-%    tell us  whether or not the string is in "\index at includelist" and
-%    this was exactly what we wanted. (Deep breath.) You got
-%    that?\footnote{\TeX{}book page 125. The code described above is
-%    originally due to Michael Spivak who used a similar method within
-%    the \AmSTeX{} macros.}
-% \end{macro}
-% \end{macro}
+%    Finally, we provide the user-level interface
+%    \begin{macrocode}
+\cs_set_eq:NN \RecordIndexType \__doc_idxtype_put:Nn
+%    \end{macrocode}
+%  \end{macro}
+%  \end{imacro}
+%  \end{macro}
 %
 %
+%  \begin{macro}{\__doc_idxtype_put_scan:nn}
+%    When we want to record an index type for a scanned name we can't
+%    turn that into a csname and then call |\__doc_idxtype_put:Nn|
+%    because turning it into a csname may change the meaning of the
+%    name from ``undefined'' to |\relax|. Got bitten by that when
+%    processing the kernel sources containing |\@undefined| within the
+%    code: suddenly that wasn't undefined any longer.
+%    So here is another version that works only on characters as
+%    input. As we don't know whether or not they are proper strings
+%    already we first make sure that this is the case.
+%    \begin{macrocode}
+\cs_new:Npn \__doc_idxtype_put_scan:nn #1#2 {
+  \exp_args:Nf \__doc_idxtype_put:nn { \tl_to_str:n {#1} }{#2}
+%    \end{macrocode}
+%    In this case we also have to append a backslash when writing to
+%    the \texttt{.aux} file.
+%    \begin{macrocode}
+  \protected at write\@auxout{}
+     {\string\RecordIndexTypeAux {\bslash #1 }{#2} }
+}
+%    \end{macrocode}
+%  \end{macro}
 %
+%  \begin{macro}{\__doc_idxtype_put_scan:on}
+%    And here is the one we really need since the characters are
+%    stored in some macro.
+%    \begin{macrocode}
+\cs_generate_variant:Nn \__doc_idxtype_put_scan:nn {o}
+%    \end{macrocode}
+%  \end{macro}
 %
+%  \begin{macro}{\record at index@type at save}
+%    And here is the interface to the rest of the code:
+%    \begin{macrocode}
+\cs_set_eq:NN \record at index@type at save \__doc_idxtype_put_scan:on
+%    \end{macrocode}
+%  \end{macro}
 %
 %
+%  \begin{macro}{\__doc_idxtype_put:nn}
+%    This internal command takes two arguments: a command name as
+%    string (no backslash) and its type (i.e., first mandatory
+%    argument of a |\NewDocElement| declaration. If |#1| is not in
+%    |\l__doc_donotindex_seq| it will add this data to the property
+%    list |\g__doc_idxtype_prop| using |#1| as key and |#2| as its
+%    value. If the key already exist its value will be overwritten. If
+%    the command is later marked for exclusion from the index the
+%    property list setting remains unchanged but as long as no index
+%    is produced for the command it will not be consulted.
 %
+%   Note: the command assumes that |#1| is already in string form
+%    \begin{macrocode}
+\cs_new:Npn \__doc_idxtype_put:nn #1#2 {
+%    \end{macrocode}
+%    No mystery here: if the command is not marked for exclusion from
+%    the index add the property. The extra |\tl_to_str:n| is a safety
+%    measure in case the input wasn't already in that form (should
+%    only be the case with broken input but \ldots)
+%    \begin{macrocode}
+  \exp_args:NNf
+  \seq_if_in:NnTF \l__doc_donotindex_seq {\tl_to_str:n{#1}}
+%    \end{macrocode}
+%    Some tracing info \ldots{}
+%    \begin{macrocode}
+     {
+       \__doc_trace:x{Not~ recording~ index~ type~ for~ '\bslash #1' }
+     }
+     {
+       \__doc_trace:x{Recording~ index~ type~ for~ '\bslash #1' ~ as~ #2 }
+%    \end{macrocode}
+%    Stick the data into the property list:
+%    \begin{macrocode}
+       \prop_gput:Nnn \g__doc_idxtype_prop {#1}{#2}
+     }
+}
+%    \end{macrocode}
+%  \end{macro}
+%
+% ^^A --------------------------------------------------
+%
+%
+%  \begin{macro}{\exp_args:co}
+%    A helper: construct a function and call it with its first argument
+%    expanded once:
+%    \begin{macrocode}
+\cs_new:Npn \exp_args:co #1#2
+   { \cs:w #1 \exp_after:wN \cs_end:\exp_after:wN {#2} }
+%    \end{macrocode}
+%  \end{macro}
+%
+%  \begin{macro}{\tl_to_str:o}
+%    Another helper: take some token list variable, expand it and turn
+%    it into a string.
+%    \begin{macrocode}
+\cs_generate_variant:Nn \tl_to_str:n {o}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%
+% ^^A --------------------------------------------------
+%
+%
+%
+% \DescribeMacro\maybe at index@macro
+%
+%    This takes a macro name (without backslash) as parsed within a
+%    \env{macrocode} environment and checks if it should get indexed
+%    (i.e., is not on the exclude list) and if so how (i.e., gets it
+%    index type property and makes the right choice depending on that.
+%
+
+
+%  \begin{macro}{\maybe at index@macro}
+%  \begin{macro}{\__doc_maybe_index:o}
+%    We first make sure that the argument is really a string (so that
+%    we have a defined situation) and then
+%    pass it on to |\__doc_maybe_index_aux:nN| to do the work.
+%    The second argument defines the indexing operation
+%    \cs{SpecialIndex} for multi-letter macros and below
+%    \cs{SpecialShortIndex} for single character macros.
+%    \begin{macrocode}
+\cs_new:Npn \__doc_maybe_index:o #1 {
+  \exp_args:Nf \__doc_maybe_index_aux:nN { \tl_to_str:o {#1} }
+                                         \SpecialIndex
+}
+%    \end{macrocode}
+%    And here is what we call it in the older non-expl3 code:
+%    \begin{macrocode}
+\cs_set_eq:NN \maybe at index@macro \__doc_maybe_index:o
+%    \end{macrocode}
+%  \end{macro}
+%  \end{macro}
+%
+%
+%  \begin{macro}{\maybe at index@short at macro}
+%  \begin{macro}{\__doc_maybe_index_short:o}
+%    Single character macros are handled similarly but there the
+%    indexing is done by \cs{SpecialShortIndex}.
+%    \begin{macrocode}
+\cs_new:Npn \__doc_maybe_index_short:o #1 {
+  \exp_args:Nf \__doc_maybe_index_aux:nN { \tl_to_str:o {#1} }
+                                         \SpecialShortIndex
+}
+\cs_set_eq:NN \maybe at index@short at macro \__doc_maybe_index_short:o
+%    \end{macrocode}
+%  \end{macro}
+%  \end{macro}
+%
+%
+%
+%  \begin{macro}{\__doc_maybe_index_aux:nN}
+%    Take a string (representing a macro without backslash) and make
+%    the right choices with respect to indexing.
+%    \begin{macrocode}
+\cs_new:Npn \__doc_maybe_index_aux:nN #1#2 {
+%    \end{macrocode}
+%    A bit of tracing:
+%    \begin{macrocode}
+  \__doc_trace:x{Searching~ for~ '\bslash #1'}
+%    \end{macrocode}
+%    If the name is on the exclude list do nothing.
+%    \begin{macrocode}
+  \seq_if_in:NnTF \l__doc_donotindex_seq {#1}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+    {
+     \__doc_trace:x{Not~ indexing~ '\bslash #1' }
+    }
+%    \end{macrocode}
+%    Otherwise check if this name has an index type property attached
+%    to it.
+%    \begin{macrocode}
+    {
+     \prop_get:NnNTF \g__doc_idxtype_prop {#1} \l__doc_idxtype_tl
+%    \end{macrocode}
+%    If so construct and execute
+%    |\Code|\meta{idxtype}|Index|\footnote{I guess this should really
+%    be an internal name not a user-level one.} which is done inside
+%    |\__doc_maybe_index_aux|
+%    \begin{macrocode}
+       {
+        \exp_args:Ncno \__doc_maybe_index_aux:Nnn
+              { Code \tl_use:N \l__doc_idxtype_tl Index }
+              {code} {\bslash #1}
+        }
+%    \end{macrocode}
+%    Otherwise execute |\SpecialIndex| which is a short form for
+%    |\CodeMacroIndex{code}| or execute \cs{SpecialShortIndex} which
+%    deals with some special cases for single letter macros.
+%    \begin{macrocode}
+        {
+          \__doc_trace:x{Indexing~ '\bslash #1'\space (\string #2)}
+          \exp_args:No #2 {\bslash #1}
+        }
+    }
+}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%
+%  \begin{macro}{\SpecialShortIndex}
+%    \fmi{to be documented; also needs cleaning up as it is a mix of
+%    old and new right now}
+%    \begin{macrocode}
+\cs_new:Npn \SpecialShortIndex #1 {
+    \@SpecialIndexHelper@ #1\@nil
+  \@bsphack
+  \ifdoc at noindex \else
+    \str_case_e:nnF {\@gtempa }
+        {
+          {\cs_to_str:N \^^M } {\def\reserved at a{ \string \space \actualchar }
+                                \def\reserved at b { \space }
+                                \let\reserved at c \@empty                          }
+          { }                  {\def\reserved at a{ \string \space \actualchar }
+                                \def\reserved at b { \space }
+                                \let\reserved at c \@empty                          }
+          {\c_left_brace_str} { \def\reserved at a{ \bgroup \actualchar }
+                                \def\reserved at b { \c_left_brace_str }
+                                \def\reserved at c { \noexpand\iffalse
+                                                  \c_right_brace_str
+                                                  \noexpand\fi }                 }
+          {\c_right_brace_str} { \def\reserved at a{ \egroup \actualchar
+                                                  \noexpand\iffalse
+                                                    \c_left_brace_str
+                                                  \noexpand\fi }
+                                 \def\reserved at b { \c_right_brace_str }
+                                 \let\reserved at c \@empty                         }
+%    \end{macrocode}
+%    The case of \cs{verbatimchar} is tricky. We can't stick it into
+%    the normal \cs{verb} because we would then get something like
+%    \verb=\verb+\++= which would comes out as ``\verb+\++'' instead
+%    of \verb=\+=. So we use the \cs{verb} to only generate the
+%    backslash and then use \cs{texttt} on the \cs{verbatimchar}
+%    itself. However, that is not enough if we are unlucky and
+%    somebody (like Will :-)) has used something like \verb=&= with a
+%    special catcode for the \cs{verbatimchar}. We therefore also
+%    apply \cs{string} to it when we read it back.
+%    \begin{macrocode}
+          {\verbatimchar}  { \def\reserved at a{ \quotechar\verbatimchar
+                                              \actualchar }
+                             \let\reserved at b \@empty
+                             \def\reserved at c
+                                 { \string\texttt{\string\string\verbatimchar} } }
+        }
+        { \def\reserved at a {\quotechar \@gtempa \actualchar }
+          \def\reserved at b {\quotechar \@gtempa  }
+          \let\reserved at c \@empty                             }
+    \special at index {
+    \reserved at a
+    \string\verb
+    \quotechar *\verbatimchar \quotechar \bslash
+    \reserved at b
+    \verbatimchar
+    \reserved at c
+    \encapchar code}
+  \fi
+  \@esphack
+}
+%    \end{macrocode}
+%  \end{macro}
+
+
+
+
+
+%  \begin{macro}{\__doc_maybe_index_aux:Nnn}
+%    Execute the function passed on as first argument taking argument
+%    2 and 3 as input.
+%    \begin{macrocode}
+\cs_new:Npn \__doc_maybe_index_aux:Nnn #1#2#3 {
+%    \end{macrocode}
+%    We have to be a little careful: as that function name is
+%    constructed it may not actually exist (as constructions generate
+%    |\relax| in \TeX{} in that case). In that case we raise an error,
+%    otherwise we execute (with a little bit of tracing info):
+%    \begin{macrocode}
+    \cs_if_exist:NTF #1
+      {
+        \__doc_trace:x{Indexing~ '#3'\space as~
+                       \tl_use:N \l__doc_idxtype_tl }
+        #1{#2}{#3}
+      }
+      {
+        \PackageError{doc}{Doc~ element~
+           '\tl_use:N \l__doc_idxtype_tl'~ unknown}%
+
+          {When~ using~ '\string\RecordIndexType'~ the~ type~ must~
+           be~ known~\MessageBreak
+           to~ the~ system,~ i.e.,~ declared~ via~
+           '\string\NewDocElement'\MessageBreak
+           before~ it~ can~ be~ used~ in~ indexing.}
+     }
+}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%    Back to old style coding \ldots
+%    \begin{macrocode}
+\ExplSyntaxOff
+%    \end{macrocode}
+%
+%
+%
 % \subsection{Macros for generating index entries}
 %
 % Here we provide default definitions for the macros invoked to create
@@ -3138,20 +3883,20 @@
 % index entries; these are either invoked explicitly, or automatically
 % by |\scan at macro|.  As already mentioned, the definitions given
 % here presuppose that the |.idx| file will be processed by
-% Chen's \textsf{makeindex} program --- they may be redefined for use
-% with the user's favourite such program.
+% Chen's \prg{makeindex} program --- they may be redefined for use
+% with the user's favorite such program.
 %
 % To assist the reader in locating items in the index, all such
 % entries are sorted alphabetically {\em ignoring\/} the initial
 % `|\|'; this is achieved by issuing an |\index| command which
-% contains the `actual' operator for \textsf{makeindex}.  The default
+% contains the `actual' operator for \prg{makeindex}.  The default
 % value for the latter operator is `|@|', but the latter character is
 % so popular in \LaTeX\ package files that it is necessary to substitute
-% another character.  This is indicated to \textsf{makeindex} by means
+% another character.  This is indicated to \prg{makeindex} by means
 % of an `index style file'; the character selected for this function
 % is |=|, and therefore this character too must be specially treated
 % when it is met in a \TeX\ command.  A suitable index style file is
-% provided amongt the supporting files for this style file in
+% provided amongst the supporting files for this style file in
 % \texttt{gind.ist} and is generated from this source by processing
 % with \texttt{docstrip} to extract the module \textbf{gind}.  A
 % similar style file \texttt{gglo.ist} is supplied for sorting the
@@ -3172,12 +3917,12 @@
 %<+gind|gglo>
 %    \end{macrocode}
 %
-% \begin{macro}{\actualchar}
-% \begin{macro}{\quotechar}
-% \begin{macro}{\levelchar}
+% \begin{imacro}{\actualchar}
+% \begin{imacro}{\quotechar}
+% \begin{imacro}{\levelchar}
 %    First come the definitions of |\actualchar|,
 %    |\quotechar| and |\levelchar|. Note, that our defaults
-%    are not the ones used by the \textsf{makeindex} program without a
+%    are not the ones used by the \prg{makeindex} program without a
 %    style file.
 %    \begin{macrocode}
 %<*package>
@@ -3190,85 +3935,39 @@
 %<+gind|gglo>level '>'
 %<*package>
 %    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{imacro}
+% \end{imacro}
+% \end{imacro}
 %
 %
-% \begin{macro}{\encapchar}
-%    The \textsf{makeindex} default for the |\encapchar| isn't
+% \begin{imacro}{\encapchar}
+%    The \prg{makeindex} default for the |\encapchar| isn't
 %    changed.
 %    \begin{macrocode}
 \@ifundefined{encapchar}{\def\encapchar{|}}{}
 %    \end{macrocode}
-% \end{macro}
+% \end{imacro}
 %
 %
-% \begin{macro}{\verbatimchar}
+% \begin{imacro}{\verbatimchar}
 %    We also need a special character to be used as a delimiter for
 %    the |\verb*| command used in the definitions below.
 %    \begin{macrocode}
 \@ifundefined{verbatimchar}{\def\verbatimchar{+}}{}
 %    \end{macrocode}
-% \end{macro}
+% \end{imacro}
 %
 %
-% \begin{macro}{\SpecialIndex}
-%    The |\SpecialIndex| command creates index entries for
-%    macros.  If the argument is |\|$xyz$, the command produces
-%    \verb|\indexentry{|$xyz$\verb|=\verb!*+\|$xyz$\verb|+}{|$n$\verb|}|
-%    given the above defined defaults for |\actualchar|,
-%    |\quotechar| and |\verbatimchar|.  We first remove the
-%    initial `|\|' to get a better index.
-% \changes{v1.5s}{1989/11/05}{Support for code line no. (Undoc)}
-%    \begin{macrocode}
-\def\SpecialIndex#1{\@bsphack\special at index{\expandafter\@gobble
-                                      \string#1\actualchar
-%    \end{macrocode}
-%    Then follows the actual entry. A |\quotechar| is placed
-%    before the |*| to allow its use as a special \textsf{makeindex}
-%    character.  Again |\@bsphack| and |\@esphack| are used
-%    to make the macros invisible.
-%    \begin{macrocode}
-      \string\verb\quotechar*\verbatimchar\string#1\verbatimchar}%
-    \@esphack}
-%    \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\SpecialMainIndex}
-% \begin{macro}{\SpecialMainEnvIndex}
-% \begin{macro}{\SpecialUsageIndex}
-%    The |\SpecialMainIndex| macro is used to cross-reference the
-%    names introduced by the \textsf{macro} environment.  The action is
-%    as for |\SpecialIndex|, except that \textsf{makeindex} is
-%    instructed to `encap'sulate the entry with the string
-%    \verb=|main= to cause it to generate a call of the |\main|
-%    macro.
-% \changes{v1.5s}{1989/11/05}{Support for code line no. (Undoc)}
-% \changes{v2.0c}{1998/08/22}{Correctly handle single character
-%                   control sequences like \cs{<}.}
 %
-%    |\SpecialMainIndex| passes the macro name to be indexed on to the
-%    macro |\SpecialIndex@|.
+% \begin{macro}{\@SpecialIndexHelper@}
+%    \fmi{doc or drop}
 %    \begin{macrocode}
-\def\SpecialMainIndex#1{\@bsphack\SpecialIndex@{#1}{\encapchar main}%
-                        \@esphack}
-%    \end{macrocode}
-%
-% \begin{macro}{\SpecialIndex@}
-% \changes{v2.0c}{1998/08/22}{Macro added.}
-% \changes{v2.0f}{1999/02/27}{Temp fix to allow strange code in arg 1
-%                             (PR 2968)}
-%    The macro |\SpecialIndex@| does the real work for |\SpecialMainIndex|
-%    and |\SpecialUsageIndex|. It takes two arguments: the macro to be
-%    indexed (as a control sequence or list of character tokens) and the
-%    additional text for the index.
-% \changes{v2.0g}{1999/03/22}{Correct so-called temp fix. I'm not going to
-%                   explain this.}
-%    \begin{macrocode}
 \begingroup
  \catcode`\|=0
  \catcode`\\=12
+%    \end{macrocode}
+%    \SpecialEscapechar\|
+%    \begin{macrocode}
  |gdef|@SpecialIndexHelper@#1#2|@nil{%
    |if |noexpand#1\%
      |gdef|@gtempa{#2}%
@@ -3279,137 +3978,13 @@
      |endgroup
    |fi}
 |endgroup
-\def\SpecialIndex@#1#2{%
 %    \end{macrocode}
-%    The first thing it does is to convert the macro into a list of
-%    characters. Note that a character token list remains (mostly) unchanged.
-%    \begin{macrocode}
-   \@SpecialIndexHelper@#1\@nil
-%    \end{macrocode}
-%    The macro name \verb*|\ | has to handled in a special way. The reason
-%    is that the space token is skipped when \TeX\ is scanning macro
-%    parameters, so that the trick used below will not work.
-%    So, we check whether the replacement text of |\@tempa| starts with
-%    a space token and write the appropriate index entry.
-%    \begin{macrocode}
-   \def\@tempb{ }%
-   \ifcat \@tempb\@gtempa
-      \special at index{\quotechar\space\actualchar
-                     \string\verb\quotechar*\verbatimchar
-                     \quotechar\bslash\quotechar\space\verbatimchar#2}%
-   \else
-%    \end{macrocode}
-%    Having handled this special case we have to distinguish control
-%    sequences consisting of one or more
-%    letters and those that consists of exactly one nonletter. As character
-%    tokens in the replacement text of the macro |\@gtempa| have all
-%    category code $12$ (other), this is difficult. For simplicity, we treat
-%    all single character control sequences alike, irregardless of whether
-%    the character is a letter or not. This has the advantage that it works
-%    even for strange settings of the category codes.
 %
-%    We define a utility macro |\@tempb| with two arguments, the second
-%    delimited by |\relax|.
-%    It will be called later so that the first argument is the first character
-%    of the macro name, and the second argument receives the rest of the
-%    characters. So we distinguish the two cases above by checking whether
-%    the second argument is empty.
-%    \begin{macrocode}
-     \def\@tempb##1##2\relax{\ifx\relax##2\relax
-%    \end{macrocode}
-%    If so, we define the helper macro |\@tempc| in a way that it
-%    adds quotechars in critical places.
-%    \begin{macrocode}
-          \def\@tempc{\special at index{\quotechar##1\actualchar
-                      \string\verb\quotechar*\verbatimchar
-                      \quotechar\bslash\quotechar##1\verbatimchar#2}}%
-%    \end{macrocode}
-%    Otherwise we write the characters as in |\SpecialIndex|.
-%    \begin{macrocode}
-        \else
-          \def\@tempc{\special at index{##1##2\actualchar
-                       \string\verb\quotechar*\verbatimchar
-                       \bslash##1##2\verbatimchar#2}}%
-        \fi}%
-%    \end{macrocode}
-%    Now pass the list of characters to \@tempb and call \@tempc to do the
-%    work.
-%    \begin{macrocode}
-     \expandafter\@tempb\@gtempa\relax
-     \@tempc
-   \fi}
-%    \end{macrocode}
 % \end{macro}
 %
-%    Slightly simpler is the main entry for environments
-% \changes{v1.9e}{1994/02/03}{use \cs{ttfamily} with \cs{string}}
-% \changes{v1.9f}{1994/02/07}{should have used \cs{noexpand}, sigh}
-% \changes{v1.9i}{1994/02/11}{should have used \cs{protect}}
-% \changes{v1.9j}{1994/02/16}{Back to string:-)}
-% \changes{v1.9s}{1994/10/14}{Added missing percent and changed to
-%                             \cs{ttfamily}}
-% \changes{v2.0d}{1998/12/20}{Correctly handle second index entry
-%    by using \cs{special at index} not \cs{index} (PR/2928).}
-% \changes{v2.0e}{1998/12/28}{Use \cs{string}, not \cs{protect} in argument to
-%             \cs{special at index}.}
-% \changes{v2.1c}{2004/07/23}{environment names incorrectly sorted in
-%           index (pr/3615)}
-%    \begin{macrocode}
-\def\SpecialMainEnvIndex#1{\@bsphack\special at index{%
-                                      #1\actualchar
-                                      {\string\ttfamily\space#1}
-                                         (environment)%
-                                      \encapchar main}%
-    \special at index{environments:\levelchar#1\actualchar{%
-                   \string\ttfamily\space#1}\encapchar
-           main}\@esphack}
-%    \end{macrocode}
-%    The |\SpecialUsageIndex| is similar to |\SpecialMainIndex|, except
-%    that it uses the standard |\index| command.
-%    \texttt{usage} instead of \texttt{main}.
-%    \begin{macrocode}
-\def\SpecialUsageIndex#1{\@bsphack
-   {\let\special at index\index\SpecialIndex@{#1}{\encapchar usage}}%
-   \@esphack}
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
 %
 %
-%
-%
-% \begin{macro}{\SpecialEnvIndex}
-%    Indexing environments is done a little bit differently; we produce
-%    two index entries with the |\SpecialEnvIndex| macro:
-% \changes{v1.9e}{1994/02/03}{The index needs protecting}
-% \changes{v1.9g}{1994/02/08}{should have used \cs{noexpand}, sigh}
-% \changes{v1.9i}{1994/02/11}{should have used \cs{protect}}
-%    \begin{macrocode}
-\def\SpecialEnvIndex#1{\@bsphack
-%    \end{macrocode}
-%    First we sort the environment under its own name stating in the
-%    actual entry that this is an environment.
-%    \begin{macrocode}
-    \index{#1\actualchar{\protect\ttfamily#1}
-           (environment)\encapchar usage}%
-%    \end{macrocode}
-%    The second entry is sorted as a subitem under the key
-%    `environments:'.
-% \changes{v2.1b}{2004/02/09}{environment names incorrectly sorted in
-%           index (pr/3615)}
-%    \begin{macrocode}
-    \index{environments:\levelchar#1\actualchar
-          {\protect\ttfamily#1}\encapchar usage}\@esphack}
-%    \end{macrocode}
-%    Because both entries correspond to `descriptions' of the
-%    environment, we encapsulate the page numbers with the
-%    |\usage| macro.
-% \end{macro}
-%
-%
-%
-% \begin{macro}{\SortIndex}
+% \begin{imacro}{\SortIndex}
 %    This macro is used to generate the index entries for any
 %    single-character command that |\scan at macro| encounters.  The
 %    first parameter specifies the lexical order for the character,
@@ -3417,77 +3992,88 @@
 %    the entry. It can also be used directly to generate index entries
 %    which differ in sort key and actual entry.
 %    \begin{macrocode}
-\def\SortIndex#1#2{\index{#1\actualchar#2}}
+\def\SortIndex#1#2{%
+  \ifdoc at noindex\else
+    \index{#1\actualchar#2}%
+  \fi
+}
 %    \end{macrocode}
-% \end{macro}
+% \end{imacro}
 %
 %
 %
-% \begin{macro}{\it at is@a}
-%    This macro is supposed to produce a correct |\SortIndex|
-%    entry for a given character. Since this character might be
-%    recognised as a `command' character by the index program used,
-%    all characters are quoted with the |\quotechar|.
-% \changes{v1.5s}{1989/11/05}{Support for code line no. (Undoc)}
-%    \begin{macrocode}
-\def\it at is@a#1{\special at index{\quotechar #1\actualchar
-                          \string\verb\quotechar*\verbatimchar
-                          \quotechar\bslash\quotechar#1\verbatimchar}}
-%    \end{macrocode}
-% \end{macro}
 %
-%
-%
-% \begin{macro}{\LeftBraceIndex}
+% \begin{imacro}{\LeftBraceIndex}
 % \changes{v1.5s}{1989/11/05}{Support for code line no. (Undoc)}
-% \begin{macro}{\RightBraceIndex}
+% \begin{imacro}{\RightBraceIndex}
 % \changes{v1.5s}{1989/11/05}{Support for code line no. (Undoc)} These
-%    two macros fix the problems with \textsf{makeindex}.  Note the
+%    two macros fix the problems with \prg{makeindex}.  Note the
 %    `hack' with |\iffalse}\fi| to satisfy both \TeX{} and the
-%    \textsf{makeindex} program. When this is written to the
+%    \prg{makeindex} program. When this is written to the
 %    \texttt{.idx} file \TeX{} will see both braces (so we get a
-%    balanced text).  \textsf{makeindex} will also see balanced braces
+%    balanced text).  \prg{makeindex} will also see balanced braces
 %    but when the actual index entry is again processed by \TeX{} the
 %    brace in between |\iffalse| |\fi| will vanish.
 %    \begin{macrocode}
 \@ifundefined{LeftBraceIndex}{\def\LeftBraceIndex{%
-   \special at index{\bgroup\actualchar\string\verb\quotechar*\verbatimchar
-          \quotechar\bslash{\verbatimchar\string\iffalse}\string\fi}}}{}
+   \special at index{\bgroup\actualchar
+                  \string\verb% % to fool emacs highlighting
+                  \quotechar*\verbatimchar
+                  \quotechar\bslash{\verbatimchar\string\iffalse}\string\fi}}}{}
 
 \@ifundefined{RightBraceIndex}{\def\RightBraceIndex{%
- \special at index{\egroup\actualchar\string\iffalse{\string\fi\string\verb
+ \special at index{\egroup\actualchar\string\iffalse{\string\fi
+           \string\verb% % to fool emacs highlighting
            \quotechar*\verbatimchar\quotechar\bslash}\verbatimchar}}}{}
 %    \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{imacro}
+% \end{imacro}
 %
 %
-% \begin{macro}{\PercentIndex}
+% \begin{imacro}{\PercentIndex}
 % \changes{v1.5s}{1989/11/05}{Support for code line no. (Undoc)}
 % \changes{v1.7c}{1992/03/25}{Default now for bug-fixed makeindex}
-% By default we assume a version of \textsf{makeindex} without the
+% By default we assume a version of \prg{makeindex} without the
 % percent bug is being used.
 %    \begin{macrocode}
 \@ifundefined{PercentIndex}
   {\def\PercentIndex{\it at is@a\percentchar}}{}
 %    \end{macrocode}
-% \end{macro}
-% \begin{macro}{\OldMakeindex}
+% \end{imacro}
+%
+%
+% \begin{omacro}{\OldMakeindex}
 % \changes{v1.7c}{1992/03/26}{Replaced \cs{NewMakeIndex}.}
-% \begin{macro}{\percentchar}
-%    Here is one solution for the percent bug in \textsf{makeindex}.
+% \begin{imacro}{\percentchar}
+%    Here is one solution for the percent bug in \prg{makeindex}.
 %    The macro |\percentchar| denotes a |%|$_{12}$.  Calling this from
 %    a package or the driver file sets things up
 %    appropriately.\label{bug:fixes}
 %    \begin{macrocode}
 \def\OldMakeindex{\def\PercentIndex{%
-    \special at index{\quotechar\percentchar\actualchar\string\verb
+    \special at index{\quotechar\percentchar\actualchar
+           \string\verb% % to fool emacs highlighting
            \quotechar*\verbatimchar\quotechar\bslash
            \percentchar\percentchar\verbatimchar}}}
 {\catcode`\%=12 \gdef\percentchar{%}}
 %    \end{macrocode}
+% \end{imacro}
+% \end{omacro}
+%
+%
+% \begin{macro}{\it at is@a}
+%    This macro is supposed to produce a correct |\SortIndex|
+%    entry for a given character. Since this character might be
+%    recognized as a `command' character by the index program used,
+%    all characters are quoted with the |\quotechar|.
+% \changes{v1.5s}{1989/11/05}{Support for code line no. (Undoc)}
+%    \begin{macrocode}
+\def\it at is@a#1{\special at index{\quotechar #1\actualchar
+                          \string\verb% % to fool emacs highlighting
+                          \quotechar*\verbatimchar
+                          \quotechar\bslash\quotechar#1\verbatimchar}}
+%    \end{macrocode}
 % \end{macro}
-% \end{macro}
 %
 %
 %
@@ -3494,7 +4080,7 @@
 %
 %
 %
-% \subsection{Redefining the \textsf{index} environment}
+% \subsection{Redefining the \env{index} environment}
 %
 %\changes{v1.4r}{1989/04/22}{twocols env. placed into separate file}
 %\changes{v1.4?}{1989/04/19}{use DEK's algorithm and implement
@@ -3502,34 +4088,10 @@
 %\changes{v1.4?}{1989/04/16}{changes to the index env.}
 %\changes{v1.5a}{1989/04/26}{Now input multicol.sty instead of
 %                         multcols.sty}
-% \begin{macro}{\ifhave at multicol}
-% \changes{v1.7a}{1992/03/04}{Added to support avoiding multicol.sty} By
-%    default the index is set in three columns, and will start on the
-%    same page as, and underneath, the last part of the text of the
-%    documented package file, if possible.  The last page will be
-%    reformatted with balanced columns.  This requires the
-%    \textsf{multicols} environment which is described elsewhere.  So
-%    that \DOC{} can be run independently of
-%    \texttt{multicol.sty} we first check for its existence and set
-%    the "have at multicol" flag appropriately for use below.
-%  \changes{v1.9a}{1993/12/02}{Use \cs{IfFileExists}}
-%  \changes{v1.9m}{1994/04/28}{Use \cs{RequirePackage} to load multicol}
-%    \begin{macrocode}
-\newif\ifhave at multicol
-%    \end{macrocode}
-%    If we found \texttt{multicol.sty} we use it.  It would be nice to
-%    delay this (and the re-definition of "theindex") until we knew
-%    whether an index was actually required \ldots
-%    \begin{macrocode}
-\IfFileExists{multicol.sty}{\have at multicoltrue
-                            \RequirePackage{multicol}%
-                           }{}
-%    \end{macrocode}
-% \end{macro}
 
 %
-% \begin{macro}{\IndexMin}
-% \begin{macro}{\c at IndexColumns}
+% \begin{ldimen}{\IndexMin}
+% \begin{lcounter}{IndexColumns}
 %    \changes{v1.4t}{1989/04/24}{Counter added.}
 %    If \texttt{multicol} is in use,
 %    when the index is started we compute the remaining space on the
@@ -3542,10 +4104,11 @@
 \newdimen\IndexMin         \IndexMin       = 80pt
 \newcount\c at IndexColumns   \c at IndexColumns = 3
 %    \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{lcounter}
+% \end{ldimen}
 %
 %
+%
 % \begin{environment}{theindex}
 %    Now we start the multi-column mechanism, if appropriate. We use the
 %    \LaTeX{} counter |\c at IndexColumns|  declared above to denote
@@ -3557,7 +4120,14 @@
 %    \changes{v1.6e}{1991/04/03}{Turned into env definition.}
 %    \changes{v1.7a}{1992/03/04}{Include test for multicols.}
 %    \begin{macrocode}
-\ifhave at multicol
+\ifdoc at multicol
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+  \RequirePackage{multicol}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
   \renewenvironment{theindex}
     {\begin{multicols}\c at IndexColumns[\index at prologue][\IndexMin]%
 %    \end{macrocode}
@@ -3570,17 +4140,15 @@
 %
 % \begin{macro}{\endtheindex}
 %    \changes{v1.4t}{1989/04/24}{Incorporated new multicols env.}
-%    At the end of the index, we have only to end the \textsf{multicols}
+%    At the end of the index, we have only to end the \env{multicols}
 %    environment.
 %    \begin{macrocode}
     {\end{multicols}}
 %    \end{macrocode}
-%    If we can't use \textsf{multicols} we warn the user and use an
+%    If we can't use \env{multicols} we warn the user and use an
 %    environment that's basically the one from \texttt{article.sty}.
 %    \begin{macrocode}
 \else
-  \typeout{Can't find multicol.sty -- will use normal index layout if
-     necessary.}
   \def\theindex{\@restonecoltrue\if at twocolumn\@restonecolfalse\fi
     \columnseprule \z@  \columnsep 35\p@
     \twocolumn[\index at prologue]%
@@ -3591,8 +4159,8 @@
 % \end{macro}
 % \end{environment}
 %
-% Here are the necessary \textsf{makeindex} declarations. We disable
-% scanning of macro names inside the index with "\scan at allowedfalse\n"
+% Here are the necessary \prg{makeindex} declarations. We disable
+% scanning of macro names inside the index with |\scan at allowedfalse\n|
 % to avoid recursion.
 %    \begin{macrocode}
 %</package>
@@ -3604,7 +4172,7 @@
 %    \end{macrocode}
 %
 %
-% \begin{macro}{\IndexPrologue}
+% \begin{imacro}{\IndexPrologue}
 % \begin{macro}{\index at prologue}
 % \changes{v1.9w}{1995/12/27}{Text changed}
 % \changes{v1.9x}{1996/01/11}{Text depends on code lines used}
@@ -3639,11 +4207,11 @@
                  }}{}
 %    \end{macrocode}
 % \end{macro}
-% \end{macro}
+% \end{imacro}
 %
 %
 %
-% \begin{macro}{\IndexParms}
+% \begin{imacro}{\IndexParms}
 %    These are some last-minute assignments for formatting the index
 %    entries. They are defined in a separate macro so that a user can
 %    substitute different definitions.  We start by defining the
@@ -3678,7 +4246,7 @@
        \def\subsubitem{\@idxitem\hspace*{25pt}}%
 %    \end{macrocode}
 % \begin{macro}{\indexspace}
-%    The \textsf{makeindex} program generates an |\indexspace|
+%    The \prg{makeindex} program generates an |\indexspace|
 %    before each new alphabetic section commences. After this final
 %    definition we end the |\@ifundefined| and the definition of
 %    |\IndexParms|.
@@ -3690,10 +4258,10 @@
 % \end{macro}
 % \end{macro}
 % \end{macro}
-% \end{macro}
+% \end{imacro}
 %
 %
-% \begin{macro}{\efill}
+% \begin{imacro}{\efill}
 %    This definition of |\efill| is intended to be used after index
 %    items which have no following text (for example, ``\textit{
 %    see\/}'' entries).  It just ensures that the current line is
@@ -3706,25 +4274,23 @@
 %<+gind>item_x2   "\\efill \n \\subsubitem "
 %<*package>
 %    \end{macrocode}
-% \end{macro}
+% \end{imacro}
 %
 %
 %
-% \begin{macro}{\pfill}
-% \begin{macro}{\dotfil}
-% \begin{macro}{\dotfill}
+% \begin{imacro}{\pfill}
 %     The following definitions provide the |\pfill| command; if
-%    this is specified in the index style file to \textsf{makeindex} as
+%    this is specified in the index style file to \prg{makeindex} as
 %    the delimiter to appear after index items, then the intervening
 %    space before the referenced page numbers will be filled with
 %    dots, with a little white space interpolated at each end of the
 %    dots.  If the line is broken the dots will show up on both lines.
-%  \changes{v2.1i}{2018/09/25}{Guard against following \cs{unskip} (git/23)}
 %    \begin{macrocode}
-\def\dotfill{\leaders\hbox to.6em{\hss .\hss}\hskip\z@ plus  1fill\kern\z@}%
-\def\dotfil{\leaders\hbox to.6em{\hss .\hss}\hfil\kern\z@}%
-\def\pfill{\unskip~\dotfill\penalty500\strut\nobreak
-               \dotfil~\ignorespaces}%
+\def\pfill{\unskip~%
+           \leaders\hbox to.6em{\hss .\hss}\hfill
+           \penalty500\strut\nobreak
+           \leaders\hbox to.6em{\hss .\hss}\hfil
+           ~\ignorespaces}%
 %</package>
 %<+gind|gglo>delim_0   "\\pfill "
 %<+gind|gglo>delim_1   "\\pfill "
@@ -3731,26 +4297,24 @@
 %<+gind|gglo>delim_2   "\\pfill "
 %<*package>
 %    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{imacro}
 %
 %
 %
-% \begin{macro}{\*}
+% \begin{imacro}{\*}
 %    Here is the definition for the |\*| macro. It isn't used in
 %    this set of macros.
 %    \begin{macrocode}
 \def\*{\leavevmode\lower.8ex\hbox{$\,\widetilde{\ }\,$}}
 %    \end{macrocode}
-% \end{macro}
+% \end{imacro}
 %
 %
-% \begin{macro}{\main}
+% \begin{imacro}{\main}
 %    The \textit{defining\/} entry for a macro name is flagged with
 %    the string \texttt{\encapchar main}\footnote{With the current
 %    definition of \texttt{\bslash encapchar} substituted for
-%    \texttt{\encapchar}} in the |\index| command; \textsf{makeindex}
+%    \texttt{\encapchar}} in the |\index| command; \prg{makeindex}
 %    processes this so that the |\main| macro will be invoked to
 %    underline the page number(s) on which the {\em definition\/} of
 %    the macro will be found.
@@ -3757,9 +4321,9 @@
 %    \begin{macrocode}
 \@ifundefined{main}{\def\main#1{\underline{#1}}}{}
 %    \end{macrocode}
-% \end{macro}
+% \end{imacro}
 %
-% \begin{macro}{\usage}
+% \begin{imacro}{\usage}
 %    The |\usage| macro is used to indicate entries describing
 %    the usage of a macro. The corresponding page number(s) will be
 %    set in \textit{italics}.
@@ -3766,44 +4330,40 @@
 %    \begin{macrocode}
 \@ifundefined{usage}{\def\usage#1{\textit{#1}}}{}
 %    \end{macrocode}
-% \end{macro}
+% \end{imacro}
 %
+% \begin{imacro}{\code}
+%    The |\code| macro is used to indicate index entries to code lines
+%    that aren't main entries.
+%    By default we do nothing special with them
+%    the usage of a macro.
+%    \begin{macrocode}
+\@ifundefined{code}{\def\code#1{#1}}{}
+%    \end{macrocode}
+% \end{imacro}
 %
-% \begin{macro}{\PrintIndex}
+%
+% \begin{imacro}{\PrintIndex}
 % \changes{v1.5k}{1989/09/04}{\cs{printindex} changed to
 %                             \cs{PrintIndex}}
 % \changes{v1.7a}{1992/02/26}{Documentation moved to interface section.}
 % \changes{v1.9h}{1994/02/10}{Use \cs{@input@} instead of \cs{@input}.}
 % \changes{v1.9w}{1995/12/29}{Turn the cmd into a noop after use.}
-%    This is the same as "\printindex" in the \textsf{makeidx} package.
+%    This is the same as |\printindex| in the \pkg{makeidx} package.
 %    \begin{macrocode}
 \def\PrintIndex{\@input@{\jobname.ind}%
                 \global\let\PrintIndex\@empty}
 %    \end{macrocode}
-% \end{macro}
+% \end{imacro}
 %
-% \begin{macro}{\printindex}
-%    Since the above macro was called |\printindex| in older versions
-%    of \texttt{doc.sty} the following definition was provided up to
-%    version 1.9y.
-% \changes{v1.9z}{1996/04/17}{Commented out}
-%    \begin{macrocode}
-%\def\printindex{\typeout{\string\printindex\space is obsolete!}%
-%                \typeout{Please use \string\PrintIndex\space
-%                         if you are a macro implementor^^J
-%                         or get a newer version of the documented
-%                         software if you are a user}%
-%                \PrintIndex}
-%    \end{macrocode}
-% \end{macro}
 %
 % We want headings in the index (and changes list) according to the
 % initial character of the next block of entries and have to instruct
-% \textsf{makeindex} appropriately.  Unfortunately the specification
+% \prg{makeindex} appropriately.  Unfortunately the specification
 % for this changed sometime between versions 2.4 and 2.11 of
-% \textsf{makeindex}.  We provide both ways of doing it but
+% \prg{makeindex}.  We provide both ways of doing it but
 % unfortunately this will always produce a warning message from
-% \textsf{makeindex}.  This is for older versions:
+% \prg{makeindex}.  This is for older versions:
 % \changes{v1.7h}{1992/07/01}{Turn off headings in gls file}
 %    \begin{macrocode}
 %</package>
@@ -3839,13 +4399,13 @@
 % is otherwise ignored, but the others are written out and may be used
 % to generate a history of changes, to be printed at the end of the
 % document.  However, note that older versions of Chen's standard
-% \textsf{makeindex}
+% \prg{makeindex}
 % program limit any textual field to just 64 characters; therefore,
 % is important that the number of characters in the second and third
 % parameters should not exceed 61 altogether (to allow for the
 % parentheses placed around the date).
 %
-% \begin{macro}{\changes}
+% \begin{imacro}{\changes}
 % \changes{BHK}{1989/04/26}{Documented \texttt{\protect\bslash changes}
 %                         command.}
 % \changes{BHK}{1989/04/26}{Changed definition of
@@ -3855,9 +4415,9 @@
 %    change in \LaTeX{} 2.09 changed the command name in the
 %    \texttt{.glo} file from \texttt{\bslash indexentry} to
 %    \texttt{\bslash glossaryentry}.  It is therefore necessary to
-%    have a special \textsf{makeindex} style file called
+%    have a special \prg{makeindex} style file called
 %    \texttt{gglo.ist} to process this file correctly.} Thus
-%    \textsf{makeindex} or a similar program can be used to process
+%    \prg{makeindex} or a similar program can be used to process
 %    the output into a sorted ``glossary''.  The |\changes| command
 %    commences by taking the usual measures to hide its spacing, and
 %    then redefines |\protect| for use within the argument of the
@@ -3880,42 +4440,57 @@
    \catcode`\\\z@ \catcode`\ 10 \MakePercentIgnore
    \changes@}
 \def\changes@#1#2#3{%
-  \protected at edef\@tempa{\noexpand\glossary{#1\levelchar
+  \protected at edef\@tempa{\noexpand\glossary{#1%
 %    \end{macrocode}
+%    If asked for we also show the date of in the change log (after
+%    the version).
+% \changes{v3.0g}{2022/06/01}{Show change dates if asked for (gh/531)}
+%    \begin{macrocode}
+                   \ifdoc at reportchangedates
+                     \space -- #2\fi
+                   \levelchar
+%    \end{macrocode}
 % \changes{v1.9u}{1995/08/06}{Use value of \cs{saved at macroname} to
 %          find out about change entries at outer level}
-%    If the macro "\saved at macroname" doesn't contain any macro name
+%    If the macro |\saved at macroname| doesn't contain any macro name
 %    (ie is empty) the current changes entry was done at top-level.
-%    In this case we precede it by "\generalname".
+%    In this case we precede it by |\generalname|.
 %    \begin{macrocode}
-                                 \ifx\saved at macroname\@empty
-                                   \space
-                                   \actualchar
-                                   \generalname
-                                 \else
+                   \ifx\saved at macroname\@empty
 %    \end{macrocode}
+%    Putting a |!| at the beginning of the entry hopefully moves this
+%    entry to the very beginning during sorting.
+%    \begin{macrocode}
+                      \quotechar!%
+                      \actualchar
+                      \generalname
+                   \else
+%    \end{macrocode}
 % \changes{v2.1g}{2016/02/15}{Use \cs{saved at indexname}}
 %    \begin{macrocode}
-                                   \saved at indexname
-                                   \actualchar
-                                   \string\verb\quotechar*%
-                                   \verbatimchar\saved at macroname
-                                   \verbatimchar
-                                 \fi
-                                 :\levelchar #3}}%
+                      \saved at indexname
+                      \actualchar
+                      \string\verb% % to fool emacs highlighting
+                      \quotechar*%
+                      \verbatimchar\saved at macroname
+                      \verbatimchar
+                   \fi
+                   :\levelchar #3}}%
   \@tempa\endgroup\@esphack}
 %    \end{macrocode}
+% \end{imacro}
 %
+%
 % \begin{macro}{\saved at macroname}
-% \changes{BHK}{1989/04/26}{Provided for sorting outside \textsf{macro}
+% \changes{BHK}{1989/04/26}{Provided for sorting outside \env{macro}
 %    environment} The entries are sorted for convenience by the name
 %    of the most recently introduced macroname (i.e., that in the most
 %    recent |\begin{macro}| command).  We therefore provide
 %    |\saved at macroname| to record that argument, and provide a default
-%    definition in case |\changes| is used outside a \textsf{macro}
+%    definition in case |\changes| is used outside a \env{macro}
 %    environment.  (This is a {\em wicked\/} hack to get such entries
 %    at the beginning of the sorted list!  It works providing no macro
-%    names start with "!" or |"|.)  \changes{v1.7a}{1992/03/02}{Changed
+%    names start with |!| or |"|.)  \changes{v1.7a}{1992/03/02}{Changed
 %    string used for better sorting.}
 % \changes{v1.9u}{1995/08/06}{Now empty by default}
 %    \begin{macrocode}
@@ -3932,7 +4507,7 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\generalname}
+% \begin{imacro}{\generalname}
 % \changes{v1.9u}{1995/08/06}{Macro added}
 %    This macro holds the string placed before changes entries on
 %    top-level.
@@ -3939,10 +4514,10 @@
 %    \begin{macrocode}
 \def\generalname{General}
 %    \end{macrocode}
-% \end{macro}
+% \end{imacro}
 %
 %
-% \begin{macro}{\RecordChanges}
+% \begin{imacro}{\RecordChanges}
 % \changes{BHK}{1989/04/26}{Renames former \texttt{\protect\bslash
 %                         PrintChanges} command.}
 %    To cause the changes to be written (to a \texttt{.glo}) file, we
@@ -3951,17 +4526,16 @@
 %    \begin{macrocode}
 \let\RecordChanges\makeglossary
 %    \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{imacro}
 %
 %
-% \begin{macro}{\GlossaryMin}
+% \begin{ldimen}{\GlossaryMin}
 %    \changes{BHK}{1989/04/26}{Added to support
 %                            \texttt{\protect\bslash changes}.}
-% \begin{macro}{\c at GlossaryColumns}
+% \begin{lcounter}{GlossaryColumns}
 %    \changes{BHK}{1989/04/26}{Added to support \texttt{\protect\bslash
 %    changes}.} The remaining macros are all analogues of those used
-%    for the \textsf{theindex} environment.  When the glossary is
+%    for the \env{theindex} environment.  When the glossary is
 %    started we compute the space which remains at the bottom of the
 %    current page; if this is greater than |\GlossaryMin| then the
 %    first part of the glossary will be placed in the available space.
@@ -3972,8 +4546,8 @@
 \newdimen\GlossaryMin         \GlossaryMin       = 80pt
 \newcount\c at GlossaryColumns   \c at GlossaryColumns = 2
 %    \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{lcounter}
+% \end{ldimen}
 %
 %
 % \begin{environment}{theglossary}
@@ -3983,13 +4557,12 @@
 %    \changes{v1.6e}{1991/04/03}{Turned into env definition.}
 %    \changes{v1.7a}{1992/03/10}{Changed to work without multicols if
 %                              necessary.}
-% \begin{macro}{\endglossary}
 %    \changes{BHK}{1989/04/26}{Added to support
 %                            \texttt{\protect\bslash changes}.}
-%    The environment \textsf{theglossary} is defined in the same manner
-%    as the \textsf{theindex} environment.
+%    The environment \env{theglossary} is defined in the same manner
+%    as the \env{theindex} environment.
 %    \begin{macrocode}
-\ifhave at multicol
+\ifdoc at multicol
   \newenvironment{theglossary}{%
     \begin{multicols}\c at GlossaryColumns
                      [\glossary at prologue][\GlossaryMin]%
@@ -4004,10 +4577,9 @@
     {\if at restonecol\onecolumn\else\clearpage\fi}
 \fi
 %    \end{macrocode}
-% \end{macro}
 % \end{environment}
 %
-% Here are the necessary \textsf{makeindex} declarations with scanning
+% Here are the necessary \prg{makeindex} declarations with scanning
 % disabled as for the index.
 %    \begin{macrocode}
 %</package>
@@ -4025,7 +4597,7 @@
 %    \end{macrocode}
 %
 %
-% \begin{macro}{\GlossaryPrologue}
+% \begin{imacro}{\GlossaryPrologue}
 %    \changes{BHK}{1989/04/26}{Added to support
 %                            \texttt{\protect\bslash changes}.}
 % \begin{macro}{\glossary at prologue}
@@ -4050,9 +4622,9 @@
                  }}{}
 %    \end{macrocode}
 % \end{macro}
-% \end{macro}
+% \end{imacro}
 %
-% \begin{macro}{\GlossaryParms}
+% \begin{imacro}{\GlossaryParms}
 %    \changes{BHK}{1989/04/26}{Added to support
 %                            \texttt{\protect\bslash changes}.}
 % Unless the user specifies otherwise, we set the change history
@@ -4067,8 +4639,9 @@
      \parfillskip -15pt plus -1fil\relax}
 }{}
 %    \end{macrocode}
-% \end{macro}
-% \begin{macro}{\PrintChanges}
+% \end{imacro}
+%
+% \begin{imacro}{\PrintChanges}
 %    \changes{BHK}{1989/04/26}{Added to support
 %                            \texttt{\protect\bslash changes}.}
 %    To read in and print the sorted change history, just put the
@@ -4075,11 +4648,11 @@
 %    |\PrintChanges| command as the last (commented-out, and thus
 %    executed during the documentation pass through the file) command
 %    in your package file.  Alternatively, this command may form one of
-%    the arguments of the |\StopEventually| command, although a
+%    the arguments of the |\MaybeStop| command, although a
 %    change history is probably {\em not\/} required if only the
 %    description is being printed.
 %
-%    The command assumes that \textsf{makeindex} or some other program
+%    The command assumes that \prg{makeindex} or some other program
 %    has processed the \texttt{.glo} file to generate a sorted
 %    \texttt{.gls} file.
 % \changes{v1.9h}{1994/02/10}{Use \cs{@input@} instead of \cs{@input}.}
@@ -4088,7 +4661,7 @@
 \def\PrintChanges{\@input@{\jobname.gls}%
                   \global\let\PrintChanges\@empty}
 %    \end{macrocode}
-% \end{macro}
+% \end{imacro}
 %
 %
 %
@@ -4096,14 +4669,14 @@
 %
 % \subsection{Bells and whistles}
 %
-% \begin{macro}{\StopEventually}
+% \begin{imacro}{\MaybeStop}
 % \changes{v1.5k}{1989/09/04}{Support for checksum.}
-% \begin{macro}{\Finale}
+% \begin{imacro}{\Finale}
 % \changes{v1.5k}{1989/09/04}{Support for checksum.}
 % \changes{v1.5z}{1990/04/22}{Define \cs{Finale} globally.}
-% \begin{macro}{\AlsoImplementation}
+% \begin{imacro}{\AlsoImplementation}
 % \changes{v1.9w}{1995/12/27}{Macro added}
-% \begin{macro}{\OnlyDescription}
+% \begin{imacro}{\OnlyDescription}
 %    If |\AlsoImplementation| is in force the whole documentation
 %    including the code part will be typeset. This is the default.
 %    \begin{macrocode}
@@ -4110,11 +4683,11 @@
 \newcommand\AlsoImplementation{%
 %    \end{macrocode}
 %    To make this happen we have to define
-%    |\StopEventually| in a way that its argument is typeset at the
+%    |\MaybeStop| in a way that its argument is typeset at the
 %    very end or more exactly at |\Finale|. For this we
 %    save its argument in the macro |\Finale|.
 %    \begin{macrocode}
-   \long\def\StopEventually##1{\@bsphack\gdef\Finale{##1%
+   \long\def\MaybeStop##1{\@bsphack\gdef\Finale{##1%
 %    \end{macrocode}
 %    But |\Finale| will be called at the very end of a file. This
 %    is exactly the point were we want to know if the file is
@@ -4123,7 +4696,7 @@
 %    \begin{macrocode}
                   \check at checksum}%
 %    \end{macrocode}
-%    On the other hand: |\StopEventually| is more or less a
+%    On the other hand: |\MaybeStop| is more or less a
 %    dividing point between description and code. So we start to look
 %    for the check-sum of the documented file by calling
 %    |\init at checksum|.
@@ -4134,35 +4707,44 @@
 %    \end{macrocode}
 %
 %    Since |\AlsoImplementation| should be the default we execute it
-%    and thus |\StopEventually| gets the desired meaning.
+%    and thus |\MaybeStop| gets the desired meaning.
 %    \begin{macrocode}
 \AlsoImplementation
 %    \end{macrocode}
 %    When the user places an |\OnlyDescription| declaration in
 %    the driver file the document should only be typeset up to
-%    |\StopEventually|. We therefore have to redefine this macro.
+%    |\MaybeStop|. We therefore have to redefine this macro.
 %    \begin{macrocode}
-\def\OnlyDescription{\@bsphack\long\def\StopEventually##1{%
+\def\OnlyDescription{\@bsphack\long\def\MaybeStop##1{%
 %    \end{macrocode}
-%    In this case the argument of |\StopEventually| should be set
+%    In this case the argument of |\MaybeStop| should be set
 %    and afterwards \TeX{} should stop reading from this file.
 %    Therefore we finish this macro with
 %    \begin{macrocode}
            ##1\endinput}\@esphack}
 %    \end{macrocode}
-%    If no |\StopEventually| command is given we silently ignore a
+%    If no |\MaybeStop| command is given we silently ignore a
 %    |\Finale| issued.
 % \changes{v1.9n}{1994/04/28}{Ignore \cs{Finale} if no
-%                  \cs{StopEventually} is given}
+%                  \cs{MaybeStop} is given}
 %    \begin{macrocode}
 \let\Finale\relax
 %    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{imacro}
+% \end{imacro}
+% \end{imacro}
+% \end{imacro}
 %
-% \begin{macro}{\meta}
+%
+%  \begin{omacro}{\StopEventually}
+%    The old wrong name for |\MaybeStop|. We need to use |\def|
+%    (i.e., expansion) as |\MaybeStop| gets redefined once in a while.
+%    \begin{macrocode}
+\def\StopEventually{\MaybeStop}
+%    \end{macrocode}
+%  \end{omacro}
+%
+% \begin{imacro}{\meta}
 % \changes{v1.4t}{1989/04/24}{Macro added.}
 % \changes{v1.5w}{1990/02/03}{Breaks at space allowed.}
 % \changes{v1.6a}{1990/05/24}{Extra space bug corrected.}
@@ -4216,7 +4798,7 @@
      }\ensuremath\rangle
 }
 %    \end{macrocode}
-% \end{macro}
+% \end{imacro}
 %
 %
 % \begin{macro}{\meta at font@select}
@@ -4228,7 +4810,7 @@
 % \end{macro}
 %
 %
-% \begin{macro}{\IndexInput}
+% \begin{imacro}{\IndexInput}
 %    This next macro may be used to read in a separate file (possibly
 %    a package file that is {\em not\/} documented by this means) and
 %    set it verbatim, whilst scanning for macro names and indexing the
@@ -4243,7 +4825,7 @@
 %    \begin{macrocode}
      \begingroup \macro at code
 %    \end{macrocode}
-%    We also make spacing behave as in the \textsf{macrocode}
+%    We also make spacing behave as in the \env{macrocode}
 %    environment, because otherwise all the spaces will be shown
 %    explicitly.
 %    \begin{macrocode}
@@ -4260,10 +4842,10 @@
 %    \begin{macrocode}
      \endgroup}
 %    \end{macrocode}
-% \end{macro}
+% \end{imacro}
 %
 %
-% \begin{macro}{\maketitle}
+% \begin{imacro}{\maketitle}
 %    The macro to generate titles is easily altered in order that it
 %    can be used more than once (an article with many titles).  In the
 %    original, diverse macros were concealed after use with
@@ -4299,15 +4881,15 @@
       \gdef\@date{\today}\gdef\@thanks{}%
       \gdef\@author{}\gdef\@title{}}
 %    \end{macrocode}
-% \end{macro}
+% \end{imacro}
 %
 %
-% \begin{macro}{\ps at titlepage}
+% \begin{imacro}{\ps at titlepage}
 % \changes{v1.5k}{1989/09/04}{Added \texttt{\protect\bslash
 %    ps at titlepage}} When a number of articles are concatenated into a
 %    journal, for example, it is not usual for the title pages of such
 %    documents to be formatted differently.  Therefore, a class
-%    such as \textsf{ltugboat} can define this macro in advance.
+%    such as \cls{ltugboat} can define this macro in advance.
 %    However, if no such definition exists, we use pagestyle
 %    \texttt{plain} for title pages.
 %    \begin{macrocode}
@@ -4314,41 +4896,41 @@
 \@ifundefined{ps at titlepage}
     {\let\ps at titlepage=\ps at plain}{}
 %    \end{macrocode}
-% \end{macro}
+% \end{imacro}
 %
-% \begin{macro}{\MakeShortVerb}
+% \begin{imacro}{\MakeShortVerb}
 % \changes{v1.7a}{1992/02/27}{Added (from newdoc but now alters
 %                           \cs{dospecials}, \cs{@sanitize}).}
-% This arranges an abbreviation for "\verb" such that if you say
-% "\MakeShortVerb{\"\meta{c}"}" subsequently using
+% This arranges an abbreviation for |\verb| such that if you say
+% |\MakeShortVerb{\|\meta{c}|}| subsequently using
 % \meta{c}\meta{text}\meta{c} is equivalent to
-% "\verb"\meta{c}\meta{text}\meta{c}.\footnote{Warning:
+% |\verb|\meta{c}\meta{text}\meta{c}.\footnote{Warning:
 % the commentary in the rest of this section was written by Dave
 % Love.}  In addition, the fact
 % that \meta{c} is made active is recorded for the benefit of the
-% \textsf{verbatim} and \textsf{macrocode} environments.
+% \env{verbatim} and \env{macrocode} environments.
 % Note particularly that the definitions below are global.
 % The first thing we do (it needn't be first) is to record
-% the---presumably new---special character in "\dospecials" and
-% "\@sanitize" using "\add at special".
+% the---presumably new---special character in |\dospecials| and
+% |\@sanitize| using |\add at special|.
 %
 % \changes{v1.9e.2}{1994/02/07}{-js: Check if \protect\meta{c} is
 %                              already an
 %                              abbreviation for \cs{verb}.}
-% Some unwary user might issue "\MakeShortVerb" for a second time, we
+% Some unwary user might issue |\MakeShortVerb| for a second time, we
 % better protect against this. We assume that this happened if a
-% control sequence "\cc\"\meta{c} is bound, the probability that this
+% control sequence |\cc\|\meta{c} is bound, the probability that this
 % name is used by another module is low. We will output a warning
 % below, so that a possible error might be noticed by the programmer
-% if he reads the "LOG" file. (Should have used module internal names,
+% if he reads the |LOG| file. (Should have used module internal names,
 % 'though.)
 %
-% \begin{macro}{\MakeShortVerb*}
+% \begin{imacro}{\MakeShortVerb*}
 % \changes{v2.1a}{2003/12/09}{(HjG) Added \texttt{*} form}
-% This arranges an abbreviation for "\verb*" such that if you say
-% "\MakeShortVerb*{\"\meta{c}"}" subsequently using
+% This arranges an abbreviation for |\verb*| such that if you say
+% |\MakeShortVerb*{\|\meta{c}|}| subsequently using
 % \meta{c}\meta{text}\meta{c} is equivalent to
-% "\verb*"\meta{c}\meta{text}\meta{c}.
+% |\verb*|\meta{c}\meta{text}\meta{c}.
 %    \begin{macrocode}
 %</package>
 %<*package|shortvrb>
@@ -4357,7 +4939,10 @@
     {\def\@shortvrbdef{\verb*}\@MakeShortVerb}%
     {\def\@shortvrbdef{\verb}\@MakeShortVerb}}
 %    \end{macrocode}
-% \end{macro}
+% \end{imacro}
+% \end{imacro}
+%
+% \begin{macro}{\@MakeShortVerb}
 %    \begin{macrocode}
 \def\@MakeShortVerb#1{%
   \expandafter\ifx\csname cc\string#1\endcsname\relax
@@ -4367,19 +4952,19 @@
     \@shortvrbinfo{Made }{#1}\@shortvrbdef
     \add at special{#1}%
 %    \end{macrocode}
-% Then the character's current catcode is stored in "\cc\"\meta{c}.
+% Then the character's current catcode is stored in |\cc\|\meta{c}.
 %    \begin{macrocode}
     \expandafter
     \xdef\csname cc\string#1\endcsname{\the\catcode`#1}%
 %    \end{macrocode}
 % The character is spliced into the definition using the same trick as
-% used in "\verb" (for instance), having activated "~" in a group.
+% used in |\verb| (for instance), having activated |~| in a group.
 %    \begin{macrocode}
     \begingroup
       \catcode`\~\active  \lccode`\~`#1%
       \lowercase{%
 %    \end{macrocode}
-% The character's old meaning is recorded in "\ac\"\meta{c} prior to
+% The character's old meaning is recorded in |\ac\|\meta{c} prior to
 % assigning it a new one.
 %    \begin{macrocode}
       \global\expandafter\let
@@ -4398,20 +4983,24 @@
 %    \end{macrocode}
 % \changes{v1.9v}{1995/11/03}{(DPC) Use \cs{@shortvrbinfo}}
 %    \begin{macrocode}
-    \@shortvrbinfo\@empty{#1 already}{\@empty\verb(*)}%
+    \@shortvrbinfo\@empty{#1 already}%
+                         {\@empty\verb% % to fool emacs highlighting
+                          (*)}%
   \fi}
 %    \end{macrocode}
 % \end{macro}
-% \begin{macro}{\DeleteShortVerb}
+%
+%
+% \begin{imacro}{\DeleteShortVerb}
 % \changes{v1.7a}{1992/02/27}{Added (from newdoc but now alters
 %                           \cs{dospecials}, \cs{@sanitize}).}
-% Here's the means of undoing a "\MakeShortVerb", for instance in a
+% Here's the means of undoing a |\MakeShortVerb|, for instance in a
 % region where you need to use the character outside a verbatim
-% environment.  It arranges for "\dospecials" and "\@sanitize" to be
+% environment.  It arranges for |\dospecials| and |\@sanitize| to be
 % altered appropriately, restores the saved catcode and, if necessary,
 % the character's meaning (as stored by
-% "\MakeShortVerb").  If the catcode wasn't stored in
-% "\cc\"\meta{c} (by "\MakeShortVerb") the command is silently
+% |\MakeShortVerb|).  If the catcode wasn't stored in
+% |\cc\|\meta{c} (by |\MakeShortVerb|) the command is silently
 % ignored.
 % \changes{v1.7a}{1992/02/28}{Check for previous matched
 %                           \cs{MakeShortVerb}
@@ -4423,19 +5012,24 @@
 % \changes{v2.1a}{2003/12/10}{(HjG) Notify user
 %             if it's not a short verb character}
 %    \begin{macrocode}
-    \@shortvrbinfo\@empty{#1 not}{\@empty\verb(*)}%
+    \@shortvrbinfo\@empty{#1 not}%
+                         {\@empty\verb% % to fool emacs highlighting
+                          (*)}%
   \else
 %    \end{macrocode}
 % \changes{v1.9v}{1995/11/03}{(DPC) Use \cs{@shortvrbinfo}}
 %    \begin{macrocode}
-    \@shortvrbinfo{Deleted }{#1 as}{\@empty\verb(*)}%
+    \@shortvrbinfo{Deleted }{#1 as}%
+                            {\@empty\verb% % to fool emacs
+                                           % highlighting
+                            (*)}%
     \rem at special{#1}%
     \global\catcode`#1\csname cc\string#1\endcsname
 %    \end{macrocode}
 % \changes{v1.9e.2}{1994/02/07}{-js: Reset `cc`\protect\meta{c} in
-%                       \cs{DeleteShortVerb}}
-% We must not forget to reset "\cc\"\meta{c}, otherwise the check in
-% "\MakeShortVerb" for a repeated definition will not work.
+%                       in \cs{DeleteShortVerb}}
+% We must not forget to reset |\cc\|\meta{c}, otherwise the check in
+% |\MakeShortVerb| for a repeated definition will not work.
 %    \begin{macrocode}
     \global \expandafter\let \csname cc\string#1\endcsname \relax
     \ifnum\catcode`#1=\active
@@ -4446,7 +5040,7 @@
           \csname ac\string#1\endcsname}%
       \endgroup \fi \fi}
 %    \end{macrocode}
-% \end{macro}
+% \end{imacro}
 %
 %  \begin{macro}{\@shortvrbinfo}
 % \changes{v1.9v}{1995/11/03}{(DPC) Macro added}
@@ -4465,12 +5059,12 @@
 % \begin{macro}{\add at special}
 % \changes{v1.7a}{1992/02/27}{Added for short verb facility.}
 % This helper macro adds its argument to the
-% "\dospecials" macro which is conventionally used by verbatim macros
+% |\dospecials| macro which is conventionally used by verbatim macros
 % to alter the catcodes of the currently active characters.  We need
-% to add "\do\"\meta{c} to the expansion of "\dospecials" after
+% to add |\do\|\meta{c} to the expansion of |\dospecials| after
 % removing the character if it was already there to avoid multiple
-% copies building up should "\MakeShortVerb" not be balanced by
-% "\DeleteShortVerb" (in case anything that uses "\dospecials" cares
+% copies building up should |\MakeShortVerb| not be balanced by
+% |\DeleteShortVerb| (in case anything that uses |\dospecials| cares
 % about repetitions).
 %    \begin{macrocode}
 \def\add at special#1{%
@@ -4478,8 +5072,8 @@
   \expandafter\gdef\expandafter\dospecials\expandafter
     {\dospecials \do #1}%
 %    \end{macrocode}
-% Similarly we have to add "\@makeother\"\meta{c} to "\@sanitize"
-% (which is used in things like "\index" to re-catcode all special
+% Similarly we have to add |\@makeother\|\meta{c} to |\@sanitize|
+% (which is used in things like |\index| to re-catcode all special
 % characters except braces).
 %    \begin{macrocode}
   \expandafter\gdef\expandafter\@sanitize\expandafter
@@ -4486,13 +5080,15 @@
     {\@sanitize \@makeother #1}}
 %    \end{macrocode}
 % \end{macro}
+%
+%
 % \begin{macro}{\rem at special}
 % \changes{v1.7a}{1992/02/27}{Added for short verb facility.}
-% The inverse of "\add at special" is slightly trickier.  "\do" is
+% The inverse of |\add at special| is slightly trickier.  |\do| is
 % re-defined to expand to nothing if its argument is the character of
 % interest, otherwise to expand simply to the argument.  We can then
-% re-define "\dospecials" to be the expansion of itself.  The space
-% after "=`##1" prevents an expansion to "\relax"!
+% re-define |\dospecials| to be the expansion of itself.  The space
+% after |=`##1| prevents an expansion to |\relax|!
 %    \begin{macrocode}
 \def\rem at special#1{%
   \def\do##1{%
@@ -4499,8 +5095,8 @@
     \ifnum`#1=`##1 \else \noexpand\do\noexpand##1\fi}%
   \xdef\dospecials{\dospecials}%
 %    \end{macrocode}
-% Fixing "\@sanitize" is the same except that we need to re-define
-% "\@makeother" which obviously needs to be done in a group.
+% Fixing |\@sanitize| is the same except that we need to re-define
+% |\@makeother| which obviously needs to be done in a group.
 %    \begin{macrocode}
   \begingroup
     \def\@makeother##1{%
@@ -4511,21 +5107,8 @@
 %<*package>
 %    \end{macrocode}
 % \end{macro}
-% \begin{macro}{\MakeShortverb}
-% \begin{macro}{\DeleteShortverb}
-% \changes{v1.7a}{1992/02/27}{Added (from newdoc).}
-% These commands from \textsf{newdoc} are now obsolete.
-%    \begin{macrocode}
-\def\MakeShortverb{\typeout{*** Switch to \noexpand\MakeShortVerb
-                         syntax, this is obsolete ***}\MakeShortVerb}
-\def\DeleteShortverb{\typeout{*** Switch to \noexpand\DeleteShortVerb
-                         syntax, this is obsolete ***}\DeleteShortVerb}
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
 %
 %
-%
 % \subsection[Providing a checksum and character table]
 %        {Providing a checksum and character table\footnotemark}
 %        \footnotetext{Warning: the commentary in this section was
@@ -4535,7 +5118,7 @@
 % \begin{macro}{\init at checksum}
 % The checksum mechanism works by counting backslashes in the
 % macrocode.  This initializes the count (when called from
-% "\StopEventually").
+% |\MaybeStop|).
 % \changes{v1.5k}{1989/09/04}{Macro added to support checksum.}
 %    \begin{macrocode}
 \def\init at checksum{\relax
@@ -4546,8 +5129,8 @@
 %
 % \begin{macro}{\check at checksum}
 % \changes{v1.5k}{1989/09/04}{Macro added to support checksum.}
-% This reports the sum compared with the value ("\bslash at cnt") the
-% file advertises.  It's called from "\Finale" (if that hasn't been
+% This reports the sum compared with the value (|\bslash at cnt|) the
+% file advertises.  It's called from |\Finale| (if that hasn't been
 % re-defined).
 % \changes{v2.1f}{2016/02/12}{Suppress \cs{CheckSum} check if no checksum
 %    is specified in the file}
@@ -4581,12 +5164,12 @@
 % \end{macro}
 %
 %
-% \begin{macro}{\check at sum}
+% \begin{tcounter}{\check at sum}
 % \changes{v1.5k}{1989/09/04}{Macro added to support checksum.}
-% \begin{macro}{\bslash at cnt}
+% \begin{tcounter}{\bslash at cnt}
 % \changes{v1.5k}{1989/09/04}{Macro added to support checksum.}
-% We need to define counters, "\bslash at cnt" for the number of
-% backslashes counted and "\check at sum" for the value advertised by the
+% We need to define counters, |\bslash at cnt| for the number of
+% backslashes counted and |\check at sum| for the value advertised by the
 % file if any. A negative value means there is no checksum checking which is the default.
 % \changes{v2.1f}{2016/02/12}{Suppress \cs{CheckSum} check if no checksum
 %    is specified in the file}
@@ -4594,17 +5177,17 @@
 \newcount\check at sum           \check at sum  = \m at ne
 \newcount\bslash at cnt          \bslash at cnt = \z@
 %    \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{tcounter}
+% \end{tcounter}
 %
 %
-% \begin{macro}{\CheckSum}
+% \begin{omacro}{\CheckSum}
 % \changes{v1.5k}{1989/09/04}{Macro added to support checksum.}
-% This is the interface to setting "\check at sum".
+% This is the interface to setting |\check at sum|.
 %    \begin{macrocode}
 \def\CheckSum#1{\@bsphack\global\check at sum#1\relax\@esphack}
 %    \end{macrocode}
-% \end{macro}
+% \end{omacro}
 %
 %
 %
@@ -4617,13 +5200,13 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\CharacterTable}
+% \begin{omacro}{\CharacterTable}
 %    The user interface to the character table-checking does some
-%    "\catcode"ing and then compares the following table with the
-%    stored version. We need to have "@" of type ``other'' within the
+%    |\catcode|ing and then compares the following table with the
+%    stored version. We need to have |@| of type ``other'' within the
 %    table since this is the way it is usually returned when reading
 %    in a normal document. To nevertheless have a private letter we
-%    use "~" for this purpose. "~" does no harm as a ``letter'' as it
+%    use |~| for this purpose. |~| does no harm as a ``letter'' as it
 %    comes last in the table and therefore will not gobble following
 %    space.
 % \changes{v1.5m}{1989/09/20}{Macro added to check character translation
@@ -4635,12 +5218,14 @@
 %    \begin{macrocode}
 \def\CharacterTable{\begingroup \CharTableChanges \character at table}
 %    \end{macrocode}
-% \end{macro}
+% \end{omacro}
+%
 % \def\MakePrivateLetters{\catcode`\~=11\makeatletter}
+%
 % \begin{macro}{\character at table}
 % This does the work of comparing the tables and reporting the result.
 % Note that the following code is enclosed in a group
-% with "~" catcoded to letter.
+% with |~| catcoded to letter.
 %    \begin{macrocode}
 \begingroup
   \catcode`\~=11
@@ -4659,22 +5244,22 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\CharTableChanges}
+% \begin{omacro}{\CharTableChanges}
 %    When the character table is read in we need to scan it with a
-%    fixed set of "\catcode"s. The reference table below  was defined by
-%    assuming the normal "\catcode"s of \TeX{}, i.e.\ "@" is of type
+%    fixed set of |\catcode|s. The reference table below  was defined by
+%    assuming the normal |\catcode|s of \TeX{}, i.e.\ |@| is of type
 %    other and the only token of type ``letter'' are the usual letters
 %    of the alphabet. If, for some reason, other characters are made
-%    ``letters'' then their "\catcode"s need to be restored before
+%    ``letters'' then their |\catcode|s need to be restored before
 %    checking the table. Otherwise spaces in the table are gobbled and
 %    we get the information that the tables are different, even if
-%    they are actually equal. For this reason "\CharTableChanges" can
-%    be set up to locally restore the "\catcode"s of such ``letters''
+%    they are actually equal. For this reason |\CharTableChanges| can
+%    be set up to locally restore the |\catcode|s of such ``letters''
 %    to ``other''.
 %    \begin{macrocode}
   \global\let\CharTableChanges\@empty
 %    \end{macrocode}
-% \end{macro}
+% \end{omacro}
 %
 % \begin{macro}{\default~table}
 % Here's what the table {\em should\/} look like (modulo spaces).
@@ -4719,34 +5304,40 @@
 %
 % The code in this section allows index entries to refer to code line
 % numbers---the number of the first line of macrocode in the
-% \textsf{macro} environment.
+% \env{macro} environment.
 %
 %
 % \begin{macro}{\codeline at index}
-% Indexing by code line is controlled by the "codeline at index" switch.
+% Indexing by code line is controlled by the |codeline at index| switch.
 % \changes{v1.5s}{1989/11/05}{Support for code line no. (Undoc)}
 % \changes{v1.7a}{1992/02/24}{Documented code line no. support.}
-% \begin{macro}{\CodelineNumbered}
+% \begin{imacro}{\CodelineNumbered}
 % \changes{v1.8a}{1993/05/19}{Macro added}
 %    \begin{macrocode}
 \newif\ifcodeline at index \codeline at indexfalse
 \let\CodelineNumbered\codeline at indextrue
 %    \end{macrocode}
+% \end{imacro}
 % \end{macro}
-% \end{macro}
+%
 % \begin{macro}{\codeline at wrindex}
-%    The code index entries are written out by "\special at index".  If
-%    indexing is by code line this is "\let" to "\codeline at wrindex";
-%    if indexing is by page it is just "\index".  However, if
-%    "\nofiles" is given, we omit writing such an index entry at all.
+%    The code index entries are written out by |\special at index|.  If
+%    indexing is by code line this is |\let| to |\codeline at wrindex|;
+%    if indexing is by page it is just |\index|.  However, if
+%    |\nofiles| is given, we omit writing such an index entry at all.
 % \changes{v1.7j}{1992/08/14}{Added \cs{if at filesw}.}
 %    \begin{macrocode}
 \def\codeline at wrindex#1{\if at filesw
+     \begingroup
+        \set at display@protect
         \immediate\write\@indexfile
             {\string\indexentry{#1}%
-            {\number\c at CodelineNo}}\fi}
+             {\number\c at CodelineNo}}%
+      \endgroup
+    \fi}
 %    \end{macrocode}
 % \end{macro}
+%
 % \begin{macro}{\special at index}
 % By default no index entries are written out.
 %    \begin{macrocode}
@@ -4756,8 +5347,8 @@
 % \begin{macro}{\CodelineIndex}
 % \changes{v1.5u}{1989/11/14}{Added \cs{PageIndex} and
 %                  \cs{CodelineIndex} (Undoc)}
-% This switches on use of the index file with "\makeindex", sets the
-% switch to indicate code line numbering and defines "\special at index"
+% This switches on use of the index file with |\makeindex|, sets the
+% switch to indicate code line numbering and defines |\special at index|
 % appropriately.
 %    \begin{macrocode}
 \def\CodelineIndex{\makeindex
@@ -4765,17 +5356,17 @@
                    \let\special at index\codeline at wrindex}
 %    \end{macrocode}
 % \end{macro}
-% \begin{macro}{\PageIndex}
-% "\PageIndex" is similar.
+% \begin{imacro}{\PageIndex}
+% |\PageIndex| is similar.
 %    \begin{macrocode}
 \def\PageIndex{\makeindex
                \codeline at indexfalse
                \let\special at index\index}
 %    \end{macrocode}
-% \end{macro}
+% \end{imacro}
 %
 %
-% \begin{macro}{\c at CodelineNo}
+% \begin{lcounter}{CodelineNo}
 % \changes{v1.5l}{1989/09/10}{Counter added to support code line
 %                             numbers}
 % \changes{v1.5y}{1990/02/24}{Default changed.}
@@ -4785,7 +5376,8 @@
 %    \begin{macrocode}
 \newcount\c at CodelineNo  \c at CodelineNo\z@
 %    \end{macrocode}
-% \end{macro}
+% \end{lcounter}
+%
 % \begin{macro}{\theCodelineNo}
 % \changes{v1.7a}{1992/02/25}{Existing definition not overwritten.}
 % \changes{v1.7a}{1992/03/12}{Use \cs{reset at font} for NFSS.}
@@ -4817,7 +5409,6 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \DeleteShortVerb{\"}
 %
 % The following |\mathcode| definitions allow the characters
 % `|\|'
@@ -4835,9 +5426,9 @@
 %                \texttt{\bslash mathcode}$\,$s
 %                to work with any family assignments. For an example
 %                see the article about the new font selection scheme.}
-% particularly for something like $|\@abc|=1$.
+% particularly for something like |\@abc=1|.
 %
-% If an {\em old\/} version of the \textsf{german} package is in
+% If an {\em old\/} version of the \pkg{german} package is in
 % force, then the `|"|' character is active and would upset the
 % definition of the \meta{16-bit number} quantities below, therefore
 % we change the |\catcode| of |"| inside a group, and use
@@ -4907,8 +5498,8 @@
 %
 % \subsection{Changing the \texttt{\protect\bslash catcode} of \%}
 %
-% \begin{macro}{\MakePercentIgnore}
-% \begin{macro}{\MakePercentComment}
+% \begin{imacro}{\MakePercentIgnore}
+% \begin{imacro}{\MakePercentComment}
 %    And finally the most important bit: we change the |\catcode|
 %    of `|%|' so that it is ignored (which is how we are able to
 %    produce this document!). We provide two commands to do the actual
@@ -4919,10 +5510,10 @@
 \def\MakePercentIgnore{\catcode`\%9\relax}
 \def\MakePercentComment{\catcode`\%14\relax}
 %    \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{imacro}
+% \end{imacro}
 %
-% \begin{macro}{\DocInput}
+% \begin{imacro}{\DocInput}
 %    The two macros above are now used to define the |\DocInput| macro
 %    which was introduced in version v1.5l (or so) of the \DOC{}
 %    package. In older versions |\MakePercentIgnore| was placed
@@ -4930,7 +5521,7 @@
 %    \begin{macrocode}
 \def\DocInput#1{\MakePercentIgnore\input{#1}\MakePercentComment}
 %    \end{macrocode}
-% \end{macro}
+% \end{imacro}
 %
 % \subsection{GetFileInfo}
 %
@@ -4951,6 +5542,779 @@
 %    \end{macrocode}
 % \end{macro}
 %
+
+
+
+
+% \section{Integrating hypdoc}
+%
+%    If the option \texttt{hyperref} is selected (which is the
+%    default), then we load the \pkg{hypdoc} package. We do that as
+%    late as possible so that we don't generate option clashes if it
+%    is also loaded in the preamble. That package currently changes
+%    more commands than it should (not knowing about their new
+%    definitions defined below) so we have to save and restore a few.
+%
+%    Midterm all this code in \pkg{hypdoc} should be directly included
+%    in \DOC. For now, while they are separate we have to do this
+%    juggling.
+%    \begin{macrocode}
+\AddToHook{begindocument/before}[doc/hyperref]{%
+ \ifdoc at hyperref
+%    \end{macrocode}
+%    Annoying to code around issue \#22
+%    \begin{macrocode}
+  \expandafter\let\expandafter\doc at eoph@@k\csname doc.sty-h@@k\endcsname
+%    \end{macrocode}
+%    We require the package without any option so if it was already
+%    loaded there is no option clash.
+%    \begin{macrocode}
+  \RequirePackage{hypdoc}
+  \expandafter\let\csname doc.sty-h@@k\endcsname\doc at eoph@@k
+%    \end{macrocode}
+%    After \pkg{hypdoc} got loaded we need to undefine those macros
+%    again so that later on \texttt{Macro} and \texttt{Env} \DOC items
+%    appear to be undefined.
+%    \begin{macrocode}
+  \let\PrintDescribeMacro \@@PrintDescribeMacro
+  \let\PrintDescribeEnv \@@PrintDescribeEnv
+  \let\PrintMacroName \@@PrintMacroName
+  \let\PrintEnvName \@@PrintEnvName
+  \let\SpecialUsageIndex \@@SpecialUsageIndex
+  \let\SpecialEnvIndex \@@SpecialEnvIndex
+  \let\SortIndex \@@SortIndex
+  \let\DescribeMacro \@@DescribeMacro
+  \let\DescribeEnv \@@DescribeEnv
+%    \end{macrocode}
+%    The package adds new definitions for \cs{special at index} into
+%    \cs{CodelineIndex} and \cs{PageIndex} but since we are loading it
+%    very late we are already past them (in the preamble). So we test
+%    the final state and do it here, if necessary.
+%    \begin{macrocode}
+  \ifx\special at index\@gobble  % do we write index entries at all?
+  \else
+    \ifcodeline at index
+      \let\special at index\HD at codeline@wrindex
+    \else
+      \let\special at index\HD at page@wrindex
+    \fi
+  \fi
+%    \end{macrocode}
+%    The \pkg{amsmath} documentation uses \cs{env} in headings and
+%    with \pkg{hyperref} enabled this causes trouble in bookmarks.
+% \fmi{fix elsewhere eventually}
+%    \begin{macrocode}
+  \AddToHook{class/amsdtx/after}{%
+     \pdfstringdefDisableCommands{\let\env\@empty }}%
+%    \end{macrocode}
+%    That package also adds extra code into |\index| entries but it doesn't
+%    know about all the stuff that \DOC does (now). So we need to provide
+%    us with two helpers that handle the |\encapchar| case in some entries.
+%    \begin{macrocode}
+  \def\doc at providetarget{\HD at target}%
+  \def\doc at handleencap#1{\encapchar hdclindex{\the\c at HD@hypercount}{#1}}%
+%    \end{macrocode}
+%    If that package is not loaded these helpers do little to nothing.
+%    \begin{macrocode}
+ \else
+  \let\doc at providetarget\@empty
+  \def\doc at handleencap#1{\encapchar #1}%
+%    \end{macrocode}
+%    We define the next commands just in case the user changed the option
+%    \texttt{hyperref} from \texttt{true} to \texttt{false} without
+%    removing the auxiliary files.
+%    \begin{macrocode}
+  \def\hdclindex#1#2{\ifx\@nil#2\@nil\else\csname #2\expandafter\endcsname\fi}%
+  \def\hdpindex   #1{\ifx\@nil#1\@nil\else\csname #1\expandafter\endcsname\fi}%
+\fi
+}  
+%    \end{macrocode}
+%
+%
+%
+%
+%
+% \section{Integrating the \DOX package code}
+%
+% The code in this section is largely taken over from the \DOX package
+% by Didier with only minor modifications (so far). This means it is a
+% bit back and forth and both the code and the documentation need
+% further updates.
+%
+% \subsection{\DOX environments}
+
+% \begin{macro}{\@doc at env,\@doc at env@}
+% \fmi{original doc -- fix}
+%   \marg{are-we-macrolike}\marg{item}\marg{indextype}\marg{name}\\
+%   In \texttt{doc.sty}, the \texttt{macro} and \texttt{environment}
+%   environments go through the \cs{m at cro@} macro which implements specific
+%   parts by testing a boolean condition as its first argument. This mechanism
+%   is not extensible, so I have to hack away a more generic version that
+%   would work for any new \texttt{dox} item, only which looks pretty much
+%   like the original one (with the addition of options management).
+%
+%    First step is to see if we have a comma-separated list of names
+%    in |#3| and if so we call the macro doing the work individually
+%    for each
+%    \begin{macrocode}
+\ExplSyntaxOn
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\long\def\@doc at env#1#2#3{
+%    \end{macrocode}
+%    The |\endgroup| here closes the scanning of names (using special catcodes.
+%    \begin{macrocode}
+  \endgroup
+  \clist_map_inline:nn {#3} { \@doc at env@{#1}{#2}{##1} }
+}
+
+\ExplSyntaxOff
+%    \end{macrocode}
+%
+%    And here is the payload for each name from the given list:
+%    \begin{macrocode}
+\long\def\@doc at env@#1#2#3{%
+  \topsep\MacroTopsep
+  \trivlist
+    \edef\saved at macroname{\string#3}%
+%    \end{macrocode}
+% Since version 2.1g, \texttt{doc} creates a \cs{saved at indexname} command
+% which in used by \cs{changes}. We now support that as well. The expansion of
+% this command depends on whether the documented item is macrolike or not,
+% which we don't know here (it's only know by \cs{NewDocElement}). That's why we
+% need one specific command generating \cs{saved at indexname} the right way for
+% every single item. These commands are
+%    named\cs{@Save\meta{item}IndexName};
+% they are technically part of the generated API, only not meant for public
+% use.
+%
+% \fmi{above docu is no longer right (but code needs further changes
+% anyway}
+%
+%    |#1| is either \texttt{TT} (for true = macrolike) or \texttt{TF}.
+%    If true then we drop the first char from |\saved at macroname| and
+%    store the result in |\saved at indexname| and use the latter for
+%    sorting in the index.
+%    \begin{macrocode}
+    \if #1%
+      \edef\saved at indexname{\expandafter\@gobble\saved at macroname}%
+%
+%    \end{macrocode}
+%    If the \DOC element described is macrolike but not a normal
+%    ``macro'' then its type should be recorded and this is the places
+%    where this happens. For macros (which should make up the bulk of
+%    these items we don't do this and for anything else that looks
+%    from an indexing perspective like a macro we don't do that either
+%    to keep the list of exceptions small. That would be the case if
+%    the indexing command |\Code|\meta{doc-element}|Index| is
+%    equivalent to \cs{CodeMacroIndex}.
+%    \begin{macrocode}
+      \expandafter\ifx
+                  \csname Code#2Index\endcsname
+                  \CodeMacroIndex
+      \else
+        \record at index@type at save
+          {\saved at indexname}{#2}%
+      \fi
+    \else
+      \let\saved at indexname\saved at macroname
+    \fi
+%
+    \def\makelabel##1{\llap{##1}}%
+    \if at inlabel
+      \let\@tempa\@empty
+      \count@\macro at cnt
+      \loop\ifnum\count@>\z@
+        \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m at ne
+      \repeat
+      \edef\makelabel##1{\llap{\vtop to\baselineskip{\@tempa\hbox{##1}\vss}}}%
+      \advance\macro at cnt\@ne
+    \else
+      \macro at cnt\@ne
+    \fi
+    \ifdoc at noprint
+      \item
+    \else
+      \edef\@tempa{%
+        \noexpand\item[%
+%    \end{macrocode}
+% The second notable modification to the original macro involves dynamically
+% constructing the name of the print macro:
+%    \begin{macrocode}
+        \noexpand\doc at providetarget
+        \noexpand\strut
+        \noexpand\@nameuse{Print#2Name}{\saved at macroname}]}%
+      \@tempa
+    \fi
+    \ifdoc at noindex\else
+      \global\advance\c at CodelineNo\@ne
+%    \end{macrocode}
+% and the third one involves dynamically constructing the name of the index
+% macro:
+%    \begin{macrocode}
+      \csname SpecialMain#2Index\expandafter\endcsname
+        \expandafter{\saved at macroname}\nobreak
+      \global\advance\c at CodelineNo\m at ne
+    \fi
+%    \end{macrocode}
+%    Suppress further |\index| entries when we are within a
+%    \texttt{macrolike} environment. (There is no point doing that for
+%    non-\texttt{macrolike} environments are index entries are only
+%    generated for items starting with a backslash anyway.
+% \fmi{fix}
+%    \begin{macrocode}
+    \if#1\expandafter\DoNotIndex \expandafter {\saved at macroname}\fi
+    \ignorespaces}
+%    \end{macrocode}
+% \end{macro}
+%
+%
+%
+%
+%
+%
+% \begin{macro}{\doc at env}
+%   \marg{true-value}\marg{item}\oarg{options}\\
+%   Handle optional arguments and call \cs{@doc at env}. Because environments can
+%   be nested, we can't rely on grouping for getting options default values.
+%   Hence, we need to reset the options at every call.
+% \fmi{Use 2e interface for \cs{keys\_set:nn} when available}
+%    \begin{macrocode}
+\def\doc at env#1#2[#3]{%
+  \@nameuse{doc at noprint\doc at noprintdefault}%
+  \@nameuse{doc at noindex\doc at noindexdefault}%
+  \csname keys_set:nn\endcsname{doc}{#3}%
+  \begingroup
+    \ifdoc at outer
+      \catcode`\\12
+    \fi
+    \MakePrivateLetters
+    \@doc at env{#1}{#2}%
+}
+%    \end{macrocode}
+% \end{macro}
+
+
+
+% \subsection{\DOC descriptions}
+%
+% \begin{macro}{\@doc at describe}
+%   \marg{item}\marg{name}\\
+%    \begin{macrocode}
+\def\@doc at describe#1#2{%
+    \ifdoc at noprint\else
+      \marginpar{\raggedleft
+%    \end{macrocode}
+%    The hyperref target has to be in horizontal mode (which is the
+% case if it is after the \cs{strut}).
+%    \begin{macrocode}
+                 \strut
+                 \doc at providetarget
+                 \@nameuse{PrintDescribe#1}{#2}}%
+    \fi
+    \ifdoc at noindex\else
+      \@nameuse{Special#1Index}{#2}%
+    \fi
+  \@esphack
+  \endgroup
+  \ignorespaces}
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\doc at describe}
+%   \marg{item}\oarg{options}\\
+%   Handle optional arguments and call \cs{@doc at describe}.
+% \fmi{Use 2e interface for \cs{keys\_set:nn} when available}
+%    \begin{macrocode}
+\def\doc at describe#1[#2]{%
+  \leavevmode\@bsphack
+  \csname keys_set:nn\endcsname{doc}{#2}%
+  \@doc at describe{#1}}
+%    \end{macrocode}
+% \end{macro}
+%
+%
+%
+%
+% \subsection{API construction}
+%
+%
+%  \begin{macro}{\@temptokenb}
+%    A scratch register (which may have been defined elsewhere)
+%    \begin{macrocode}
+\@ifundefined{temptokenb}{\newtoks\@temptokenb}{}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+% \begin{macro}{\doc at createspecialmainindex}
+%   \marg{item}\marg{idxtype}\marg{idxcat}
+% \begin{macro}{\doc at createspecialmainmacrolikeindex}
+%   \marg{item}\marg{idxtype}\marg{idxcat}\\
+% \fmi{original doc -- fix}
+%   The ``macrolike'' version does something similar to |doc|'s
+%   \cs{SpecialIndex@} macro, but simplified. Let's just hope nobody will ever
+%   define \verb*|\ | or nonletter macros as macrolike \DOC elements\ldots
+%    \begin{macrocode}
+\def\doc at createspecialindexes#1#2#3{%
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+  \@temptokena{\space (#2)}%
+  \@temptokenb{#3:}%
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+  \@nameedef{SpecialMain#1Index}##1{%
+    \noexpand\@bsphack
+  \ifdoc at toplevel
+    \noexpand\special at index{##1\noexpand\actualchar
+    {\string\ttfamily\space##1}%
+    \ifx\@nil#2\@nil\else \the\@temptokena \fi
+    \noexpand\encapchar main}%
+  \fi
+  \ifx\@nil#3\@nil\else
+    \noexpand\special at index{\the\@temptokenb\noexpand\levelchar
+      ##1\noexpand\actualchar{\string\ttfamily\space##1}%
+      \noexpand\encapchar main}%
+  \fi
+    \noexpand\@esphack}%
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+  \@nameedef{Special#1Index}##1{%
+    \noexpand\@bsphack
+  \ifdoc at toplevel
+    \noexpand\doc at providetarget
+    \noexpand\index{##1\noexpand\actualchar{\string\ttfamily\space##1}%
+    \ifx\@nil#2\@nil\else \the\@temptokena \fi
+           \noexpand\doc at handleencap{usage}}%
+  \fi
+  \ifx\@nil#3\@nil\else
+    \noexpand\index{\the\@temptokenb\noexpand\levelchar
+       ##1\noexpand\actualchar{\string\ttfamily\space##1}%
+           \noexpand\doc at handleencap{usage}}%
+  \fi
+    \noexpand\@esphack}}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\def\doc at createspecialmacrolikeindexes#1#2#3{%
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+  \@temptokena{\space (#2)}%
+  \@temptokenb{#3:}%
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+  \@nameedef{Code#1Index}##1##2{%
+    \noexpand\@SpecialIndexHelper@##2\noexpand\@nil
+    \noexpand\@bsphack
+  \noexpand\ifdoc at noindex\noexpand\else
+    \ifdoc at toplevel
+      \noexpand\special at index{\noexpand\@gtempa\noexpand\actualchar
+	\string\verb% % to fool emacs highlighting
+	\noexpand\quotechar*\noexpand\verbatimchar
+	\noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar
+	\ifx\@nil#2\@nil\else \the\@temptokena \fi
+	\noexpand\encapchar ##1}%
+    \fi
+    \ifx\@nil#3\@nil\else
+      \noexpand\special at index{\the\@temptokenb\noexpand\levelchar
+	\noexpand\@gtempa\noexpand\actualchar
+	\string\verb% % to fool emacs highlighting
+	\noexpand\quotechar*\noexpand\verbatimchar
+	\noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar
+	\noexpand\encapchar ##1}%
+    \fi
+  \noexpand\fi
+    \noexpand\@esphack}%
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+  \@nameedef{SpecialMain#1Index}##1{%
+    \expandafter\noexpand\csname Code#1Index\endcsname
+        {main}{##1}}%
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+  \@nameedef{Special#1Index}##1{%
+    \noexpand\@SpecialIndexHelper@##1\noexpand\@nil
+    \noexpand\@bsphack
+  \noexpand\ifdoc at noindex\noexpand\else
+    \ifdoc at toplevel
+      \noexpand\doc at providetarget
+      \noexpand\index{\noexpand\@gtempa\noexpand\actualchar
+	\string\verb% % to fool emacs highlighting
+	\noexpand\quotechar*\noexpand\verbatimchar
+	\noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar
+	\ifx\@nil#2\@nil\else \the\@temptokena \fi
+	\noexpand\doc at handleencap{usage}}%
+    \fi
+    \ifx\@nil#3\@nil\else
+      \noexpand\index{\the\@temptokenb\noexpand\levelchar
+	\noexpand\@gtempa\noexpand\actualchar
+	\string\verb% % to fool emacs highlighting
+	\noexpand\quotechar*\noexpand\verbatimchar
+	\noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar
+	\noexpand\doc at handleencap{usage}}%
+    \fi
+  \noexpand\fi
+    \noexpand\@esphack}}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+
+
+
+% \begin{macro}{\doc at createdescribe}
+%   \marg{item}
+%    \begin{macrocode}
+\def\doc at createdescribe#1{%
+  \@namedef{Describe#1}{%
+%    \end{macrocode}
+%    Because of the optional argument we have to set
+%    |\MakePrivateLetters| already before parsing that (fingers
+%    crossed). Otherwise incorrect but quite common usage, such as
+%    |\DescribeMacro\foo at bar| will break because the scan for the
+%    optional argument will tokenize the following input (i.e., |\foo|
+%    in that case) before the |@| sign becomes a letter. As a result
+%    |DescribeMacro| would receive only |\foo| as its argument.
+%    \begin{macrocode}
+    \begingroup
+      \MakePrivateLetters
+      \@ifnextchar[%]
+      {\doc at describe{#1}}{\doc at describe{#1}[]}}}
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\doc at createenv}
+%   \marg{item}\marg{envname}
+%    \begin{macrocode}
+\def\doc at createenv#1#2#3{%
+  \@namedef{#3}{%
+    \@ifnextchar[%]
+    {\doc at env{#1}{#2}}{\doc at env{#1}{#2}[]}}%
+%    \end{macrocode}
+%    Instead of |\let|ting the end of the environment to
+%    |\endtrivlist| we use one level of expansion. This way any
+%    possible change in that environment (if that ever happens) is
+%    properly reflected.
+%    \begin{macrocode}
+  \@namedef{end#3}{\endtrivlist}%
+%  \expandafter\let\csname end#3\endcsname\endtrivlist
+}
+%    \end{macrocode}
+% \end{macro}
+
+
+%
+%  \begin{macro}{\@nameedef}
+%
+%    \begin{macrocode}
+\def\@nameedef#1{\expandafter\edef\csname #1\endcsname}
+%    \end{macrocode}
+%  \end{macro}
+
+%
+% \subsection{API creation}
+%
+% The whole user interface is created in one macro call.
+%
+%\begin{verbatim}
+% defaults:
+%
+%  idxtype   = #3
+%  idxgroup  = #3s
+%  printtype =
+%\end{verbatim}
+
+
+
+%  \begin{macro}{\doc at declareerror}
+%
+%    \begin{macrocode}
+\def\doc at declareerror#1#2{%
+   \PackageError{doc}{Doc element '#1/#2' already defined?\@gobble}%
+      {There is already a definition for
+       '\string\Print#1Name',\MessageBreak
+       '\string\PrintDescribe#1'
+       or the environment '#2'.\MessageBreak
+       Maybe you are overwriting something by mistake!\MessageBreak
+       Otherwise use '\string\RenewDocElement' instead.}%
+}
+%    \end{macrocode}
+%  \end{macro}
+
+%  \begin{macro}{\doc at notdeclarederror}
+%
+%    \begin{macrocode}
+\def\doc at notdeclarederror#1#2{%
+   \PackageError{doc}{Doc element '#1/#2' unknown}%
+      {I expected an existing definition for
+       '\string\Print#1Name',\MessageBreak
+       '\string\PrintDescribe#1' and
+       the environment '#2' but\MessageBreak
+       not all of them are defined.\MessageBreak
+       Maybe you wanted to use
+       '\string\NewDocElement'?}%
+}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+% \begin{imacro}{\NewDocElement}
+%   \oarg{options}\marg{name}\marg{envname}
+%
+%    \begin{macrocode}
+\newcommand\NewDocElement[3][]{%
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+  \@ifundefined{Print#2Name}%
+      {\@ifundefined{PrintDescribe#2}%
+           {\@ifundefined{#3}%
+               {\@ifundefined{end#3}%
+                    {\@NewDocElement{#1}}%
+                    \doc at declareerror
+               }\doc at declareerror
+           }\doc at declareerror
+      }\doc at declareerror
+  {#2}{#3}%
+}
+%    \end{macrocode}
+%  \end{imacro}
+%
+% \begin{imacro}{\RenewDocElement}
+%   \oarg{options}\marg{name}\marg{envname}
+%
+%    \begin{macrocode}
+\newcommand\RenewDocElement[3][]{%
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+  \@ifundefined{Print#2Name}\doc at notdeclarederror
+      {\@ifundefined{PrintDescribe#2}\doc at notdeclarederror
+           {\@ifundefined{#3}\doc at notdeclarederror
+               {\@ifundefined{end#3}\doc at notdeclarederror
+                    {\@NewDocElement{#1}}%
+               }%
+           }%
+      }%
+  {#2}{#3}%
+}
+%    \end{macrocode}
+%  \end{imacro}
+%
+%
+% \begin{macro}{\@NewDocElement}
+%   \marg{options}\marg{name}\marg{envname}
+%
+%    \begin{macrocode}
+\def\@NewDocElement#1#2#3{%
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+  \doc at macrolikefalse
+  \doc at topleveltrue
+%    \end{macrocode}
+%
+% \fmi{Use 2e interface for \cs{keys\_set:nn} when available}
+%    \begin{macrocode}
+  \def\doc at idxtype{#3}%
+  \def\doc at idxgroup{#3s}%
+  \let\doc at printtype\@empty
+  \csname keys_set:nn\endcsname{doc}{#1}%
+%    \end{macrocode}
+%   \begin{imacro}{\Print...Name}
+%     \marg{name}
+% \fmi{extremely messy this with so many \cs{expandafter}s \ldots{}
+%       should reimplement in expl3}
+%    \begin{macrocode}
+  \ifx\doc at printtype\@empty
+    \@temptokena{}%
+  \else
+    \@temptokena\expandafter{\expandafter
+         \textnormal\expandafter{\expandafter
+         \space\expandafter
+         (\doc at printtype)}}%
+  \fi
+  \@nameedef{Print#2Name}##1{%
+     {\noexpand\MacroFont
+      \ifdoc at macrolike
+         \noexpand\string
+      \fi
+      ##1%
+      \the\@temptokena
+     }}%
+%    \end{macrocode}
+%   \end{imacro}
+%
+%   \begin{imacro}{\PrintDescribe...}
+%     \marg{name}
+%    \begin{macrocode}
+  \expandafter\let\csname PrintDescribe#2\expandafter\endcsname
+                  \csname Print#2Name\endcsname
+%    \end{macrocode}
+%   \end{imacro}
+%
+%   \begin{imacro}{\SpecialMain...Index}
+%     \marg{name}
+%   \begin{imacro}{\Special...Index}
+%     \marg{name}
+%    \begin{macrocode}
+  \edef\doc at expr{%
+     \ifdoc at macrolike
+       \noexpand\doc at createspecialmacrolikeindexes
+     \else
+       \noexpand\doc at createspecialindexes
+     \fi
+     {#2}%
+    }%
+   \expandafter\expandafter\expandafter
+   \doc at expr
+   \expandafter\expandafter\expandafter
+     {\expandafter\doc at idxtype\expandafter}\expandafter
+     {\doc at idxgroup}%
+%    \end{macrocode}
+%   \end{imacro}
+%   \end{imacro}
+%
+%   \begin{imacro}{\Describe...}
+%     \oarg{options}\marg{name}
+%    \begin{macrocode}
+  \doc at createdescribe{#2}%
+%    \end{macrocode}
+%   \end{imacro}
+%
+%   \begin{environment}{\meta{DocElement}}
+%  \fmi{can't have formatting in argument -- fix}
+%     \oarg{options}\marg{name}
+%    \begin{macrocode}
+    \ifdoc at macrolike
+      \doc at createenv{TT}{#2}{#3}%
+    \else
+      \doc at createenv{TF}{#2}{#3}%
+    \fi
+}
+%    \end{macrocode}
+%   \end{environment}
+% \end{macro}
+
+
+
+
+
+% \subsection{Setting up the default \DOC elements}
+
+% \subsubsection{Macro facilities}
+%
+%    Macros get only a single index entry (no index group, no index
+%    type) and they do not get any label either when printing in the margin.
+%    \begin{macrocode}
+\NewDocElement[macrolike = true ,
+                idxtype   = ,
+                idxgroup  = ,
+                printtype =
+               ]{Macro}{macro}
+%    \end{macrocode}
+
+
+%  \begin{macro}{SpecialMainIndex}
+%
+%    In \DOC v2 we had \cs{SpecialMainIndex} and
+%    \cs{SpecialMainEnvIndex} but now with additional \DOC elements we
+%    always add the element name after ``\texttt{Main}'' so this would
+%    be \cs{SpecialMainMacroIndex}. We use |\def| not |\let| so any
+%    redefinition of |\SpecialMainMacroIndex| will be transparent.
+%    \begin{macrocode}
+\def\SpecialMainIndex{\SpecialMainMacroIndex}
+%    \end{macrocode}
+%  \end{macro}
+
+%  \begin{macro}{SpecialUsageIndex}
+%    \DOC v2 also had \cs{SpecialUsageIndex} which is now called
+%    \cs{SpecialMacroIndex} generating the ``usage'' index entry  for
+%    a macro. Again we provide that as an alias via |\def|.
+%
+%    In fact the documentation of \DOC v2 claimed that one can use
+%    this for both macros and environments but that was never true as
+%    for environments the result was that the first character was
+%    dropped in sorting of the index. The correct way is to use
+%    \cs{SpecialEnvIndex} for this.
+%    \begin{macrocode}
+\def\SpecialUsageIndex{\SpecialMacroIndex}
+%    \end{macrocode}
+%  \end{macro}
+%
+
+%  \begin{macro}{\SpecialIndex}
+%    \begin{macrocode}
+\def\SpecialIndex     {\CodeMacroIndex{code}}
+%    \end{macrocode}
+%  \end{macro}
+
+
+%
+% \subsubsection{Environment facilities}
+%
+%    Providing documentation support for environments. Here we differ
+%    from \DOC V2 by marking the environments with ``(\textit{env.})''
+%    when printing the name in the margin.
+%    \begin{macrocode}
+\NewDocElement[macrolike = false ,
+                idxtype   = env.  ,
+                idxgroup  = environments ,
+                printtype = \textit{env.}
+               ]{Env}{environment}
+%    \end{macrocode}
+%
+%
+%
+%    To be able to restore the definition after \pkg{hypdoc} is loaded
+%    we better save them here. We only load the package at the end of
+%    the preamble, but the user might do this earlier and then chaos
+%    is ensured.
+%    \begin{macrocode}
+  \let\@@PrintDescribeMacro \PrintDescribeMacro
+  \let\@@PrintDescribeEnv \PrintDescribeEnv
+  \let\@@PrintMacroName \PrintMacroName
+  \let\@@PrintEnvName \PrintEnvName
+  \let\@@SpecialUsageIndex \SpecialUsageIndex
+  \let\@@SpecialEnvIndex \SpecialEnvIndex
+  \let\@@SortIndex \SortIndex
+  \let\@@DescribeMacro \DescribeMacro
+  \let\@@DescribeEnv \DescribeEnv
+%    \end{macrocode}
+%
+%
+% \section{Misc additions}
+
+% \begin{imacro}{\cs}
+%    \begin{macrocode}
+\DeclareRobustCommand\cs[1]{\texttt{\bslash #1}}
+%    \end{macrocode}
+%    \cls{amsdtx} has its own definition for \cs{cs} but that now
+%    gets overwritten because the class loads \pkg{doc} afterwards. So
+%    for now we reinstall it here.
+%    \fmi{fix elsewhere}
+%    \begin{macrocode}
+\AddToHook{class/amsdtx/after}{%
+  \DeclareRobustCommand\cs[1]{%
+    \@boxorbreak{%
+        \ntt
+        \addbslash#1\@empty
+        \@xp\@xp\@xp\@indexcs\@xp\@nobslash\string#1\@nil
+    }%
+  }%
+  \def\cn{\cs}%
+}
+%    \end{macrocode}
+% \end{imacro}
+
+
 % We can now finish the \texttt{docstrip} main module.
 %    \begin{macrocode}
 %</package>
@@ -4958,5 +6322,15 @@
 %
 %
 % \Finale
-% \PrintIndex \PrintChanges
+% \PrintChanges
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \endinput
+
+^^A  Needed for emacs
+^^A
+^^A  Local Variables: 
+^^A  mode: latex
+^^A  coding: utf-8-unix
+^^A  End: 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/docstrip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/docstrip.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/docstrip.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -935,7 +935,7 @@
 %       using*strange at programming<language>
 %\end{verbatim}
 %
-%\StopEventually{%
+%\MaybeStop{%
 %^^A \section{Conclusion}
 %  \PrintIndex
 %  \PrintChanges

Modified: trunk/Master/texmf-dist/source/latex-dev/base/docstrip.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/docstrip.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/docstrip.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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-2021
+Copyright (C) 1993-2022
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 
@@ -98,6 +98,7 @@
 
 
 \generate{\file{ltxdoc.cls}{\from{ltxdoc.dtx}{class}}
+          \file{ltxdoc.cfg}{\from{ltxdoc.dtx}{cfg}}
          }
 
 \generate{\file{doc.sty}{\from{doc.dtx}{package}}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ec.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ec.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ec.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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-2021
+Copyright (C) 1993-2022
 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/exscale.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -106,7 +106,7 @@
 % they are printed on another installation whereas when using the
 % package file they would come out the same on both sites.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %
 % \section{Implementation}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/exscale.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/exscale.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/exscale.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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-2021
+Copyright (C) 1993-2022
 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/fix-cm.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -216,7 +216,7 @@
 %
 %
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{Implementation}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/fix-cm.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/fix-cm.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/fix-cm.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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-2021
+Copyright (C) 1993-2022
 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/fontdef.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -164,7 +164,7 @@
 % \end{quote}
 %
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{The \texttt{docstrip} modules}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/format.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/format.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/format.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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-2021
+Copyright (C) 1993-2022
 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-2021
+Copyright (C) 2015-2022
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 
@@ -123,7 +123,7 @@
 
 This is a generated file.
 
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 
@@ -174,6 +174,7 @@
           \from{lterror.dtx}{2ekernel}
           \from{ltpar.dtx}{2ekernel}
           \from{ltpara.dtx}{2ekernel}         % L3 layer module
+          \from{ltmeta.dtx}{2ekernel}         % L3 layer module
           \from{ltspace.dtx}{2ekernel}
           \from{ltlogos.dtx}{2ekernel}
           \from{ltfiles.dtx}{2ekernel}
@@ -203,6 +204,7 @@
           \from{ltbibl.dtx}{2ekernel}
           \from{ltpage.dtx}{2ekernel}
          \from{ltclass.dtx}{2ekernel,tracerollback}
+          \from{ltkeys.dtx}{2ekernel}           % L3 layer module
           \from{ltfilehook.dtx}{2ekernel}       % L3 layer module
           \from{ltshipout.dtx}{2ekernel}        % L3 layer module
           \from{ltoutput.dtx}{2ekernel}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/graphpap.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/graphpap.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/graphpap.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -65,7 +65,7 @@
 %    The default value of \emph{N} is 10.
 %    The arguments must all be integers.
 %
-% \StopEventually
+% \MaybeStop
 %
 %  First, we define three counters.  The first two are defined
 %  as raw TeX counters since multiplication and division must be

Modified: trunk/Master/texmf-dist/source/latex-dev/base/graphpap.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/graphpap.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/graphpap.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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-2021
+Copyright (C) 1993-2022
 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ifthen.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -164,7 +164,7 @@
 % With \meta{test} as above, repeatedly executes \meta{while clause}
 % while the test remains true.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{The Implementation}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ifthen.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ifthen.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ifthen.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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-2021
+Copyright (C) 1993-2022
 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/inputenc.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -379,9 +379,9 @@
 % as these commands haven't been available in \textsf{inputenc} distributed
 % with older releases of \LaTeX{}.
 %
-
-% \StopEventually{}
 %
+% \MaybeStop{}
+%
 % \section{Announcing the files}
 %
 % We announce the files:

Modified: trunk/Master/texmf-dist/source/latex-dev/base/inputenc.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/inputenc.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/inputenc.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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-2021
+Copyright (C) 1993-2022
 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/latex209.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -166,7 +166,7 @@
 % \changes{v0.11}{1994/01/21}{Split package into head and tail.}
 % \changes{v0.23}{1994/05/11}{Added bezier option.}
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{Driver}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/latex209.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/latex209.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/latex209.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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-2021
+Copyright (C) 1993-2022
 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/latexrelease.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -471,7 +471,7 @@
 %
 %
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{Implementation}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/latexrelease.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/latexrelease.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/latexrelease.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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-2021
+Copyright (C) 1993-2022
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 
@@ -101,6 +101,7 @@
   \from{lterror.dtx}     {latexrelease}% empty
   \from{ltpar.dtx}       {latexrelease}% empty
   \from{ltpara.dtx}      {latexrelease}% empty
+  \from{ltmeta.dtx}      {latexrelease}% L3 layer module
   \from{ltspace.dtx}     {latexrelease}%
   \from{ltlogos.dtx}     {latexrelease}% L3 layer module
   \from{ltfiles.dtx}     {latexrelease}%

Modified: trunk/Master/texmf-dist/source/latex-dev/base/latexsym.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/latexsym.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/latexsym.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -84,7 +84,7 @@
 %    |\unrhd|~$\unrhd$
 %    \end{quote}
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{The \dst{} modules}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/latexsym.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/latexsym.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/latexsym.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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-2021
+Copyright (C) 1993-2022
 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-2021
+Copyright (C) 1993-2022
 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/letter.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -45,7 +45,7 @@
 %<*driver>
        \ProvidesFile{letter.drv}
 %</driver>
-              [2021/03/05 v1.3c
+              [2021/12/07 v1.3c
 %<+letter>               Standard LaTeX document class]
 %    \end{macrocode}
 %
@@ -178,7 +178,7 @@
 % \maketitle
 % \tableofcontents
 %
-% \StopEventually
+% \MaybeStop{}
 %
 %
 % \section{Initial Code}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/letter.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/letter.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/letter.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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-2021
+Copyright (C) 1993-2022
 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltalloc.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -62,7 +62,7 @@
 %
 % This section deals with counter and other variable allocation.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %    \begin{macrocode}
 %<*2ekernel>

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltbibl.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltbibl.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltbibl.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -106,7 +106,7 @@
 % |\nocite{*}| is special: it tells \BibTeX{} to put the whole of a
 % collection of references into the bibliography.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %
 % \changes{v1.0a}{1994/03/31}{Initial version of ltidxbib.dtx,

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltboxes.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltboxes.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltboxes.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -212,7 +212,7 @@
 % \meta{height} \& \meta{depth} = actual height and depth of box in new
 % position.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \changes{v0.1e}{1994/03/02}{Remove need for drv file}
 % \changes{v0.1e}{1994/03/02}{Add 2ekernel module}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltclass.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltclass.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltclass.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -33,7 +33,7 @@
 %<*driver>
 % \fi
 \ProvidesFile{ltclass.dtx}
-             [2021/08/25 v1.4f LaTeX Kernel (Class & Package Interface)]
+             [2021/12/09 v1.5a LaTeX Kernel (Class & Package Interface)]
 % \iffalse
 \documentclass{ltxdoc}
 \GetFileInfo{ltclass.dtx}
@@ -338,7 +338,7 @@
 % or the old name \cs{@ifpackagelater}.
 
 % \DescribeMacro\IfFormatAtLeastTF
-% To test the format date use 
+% To test the format date use
 % \begin{quote}
 % |\IfFormatAtLeastTF{|\meta{date}|}{|^^A
 % \meta{true}|}{|\meta{false}|}|
@@ -434,7 +434,7 @@
 % standard (and other non-standard) distributions can put informative
 % strings in this argument.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{Implementation}
 %
@@ -1833,7 +1833,7 @@
 %</2ekernel|latexrelease>
 %<latexrelease>\EndIncludeInRelease
 %    \end{macrocode}
-%    
+%
 %    \begin{macrocode}
 %<latexrelease>\IncludeInRelease{0000/00/00}%
 %<latexrelease>                 {\RequirePackageWithOptions}{Unused options issue}%
@@ -2175,27 +2175,21 @@
 %    \begin{macrocode}
   \@ifl at aded\@currext\@currname
 %    \end{macrocode}
-%    If the package is already loaded, check that there were no option
-%    clashes:
-% \changes{v1.1b}{1998/05/07}
-%         {Modify help message for latex/2805}
+%    In the current preferred approach, a key family name will exist for
+%    processing using \pkg{ltkeys}. In that case, we replace the previous
+%    package options with with the new ones, then call the key handler.
+%    Otherwise, we use the more classical clash handler.
 %    \begin{macrocode}
-    {\@if at ptions\@currext{\@currname}{#2}{}%
-      {\@latex at error
-        {Option clash for \@cls at pkg\space \@currname}%
-        {The package \@currname\space has already been loaded
-         with options:\MessageBreak
-         \space\space[\@ptionlist{\@currname.\@currext}]\MessageBreak
-         There has now been an attempt to load it
-          with options\MessageBreak
-         \space\space[#2]\MessageBreak
-         Adding the global options:\MessageBreak
-         \space\space
-              \@ptionlist{\@currname.\@currext},#2\MessageBreak
-         to your \noexpand\documentclass declaration may fix this.%
-         \MessageBreak
-         Try typing \space <return> \space to proceed.}}%
-     \@firstofone}%
+    {%
+      \@ifundefined{opt at fam@\@currname.\@currext}
+        {\@onefilewithoptions at clashchk{#2}}
+        {%
+          \@namedef{opt@\@currname.\@currext}{#2}%
+          \expandafter\expandafter\expandafter\ProcessKeyPackageOptions
+            \expandafter\expandafter\expandafter
+              [\csname opt at fam@\@currname.\@currext\endcsname]%
+        }%
+    }%
     {\makeatletter
 %    \end{macrocode}
 %    The next line seems to be necessary for 2.09 compatibility (the
@@ -2298,7 +2292,35 @@
     \@reset at ptions}
 %    \end{macrocode}
 %
+% \begin{macro}{\@onefilewithoptions at clashchk}
+%    If the package is already loaded, check that there were no option
+%    clashes.
+% \changes{v1.1b}{1998/05/07}
+%         {Modify help message for latex/2805}
+% \changes{v1.5a}{2021/11/30}
+%         {Separated out from \cs{@onefilewithoptions}}
 %    \begin{macrocode}
+\def\@onefilewithoptions at clashchk#1{%
+  \@if at ptions\@currext{\@currname}{#1}{}%
+      {\@latex at error
+        {Option clash for \@cls at pkg\space \@currname}%
+        {The package \@currname\space has already been loaded
+         with options:\MessageBreak
+         \space\space[\@ptionlist{\@currname.\@currext}]\MessageBreak
+         There has now been an attempt to load it
+          with options\MessageBreak
+         \space\space[#1]\MessageBreak
+         Adding the global options:\MessageBreak
+         \space\space
+              \@ptionlist{\@currname.\@currext},#1\MessageBreak
+         to your \noexpand\documentclass declaration may fix this.%
+         \MessageBreak
+         Try typing \space <return> \space to proceed.}}%
+     \@firstofone}
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
 \let\@currpkg at reqd\@empty
 %    \end{macrocode}
 %
@@ -2622,7 +2644,7 @@
 %<latexrelease>\EndIncludeInRelease
 %<*2ekernel>
 %    \end{macrocode}
-%    
+%
 %    \begin{macrocode}
 \@onlypreamble\AtBeginDocument
 %    \end{macrocode}
@@ -2826,7 +2848,7 @@
 %    \end{macrocode}
 %
 % \changes{v1.3m}{2020-08-08}{define \cs{q at curr@file} directly as the
-%    quotes have already been removed (gh/220)} 
+%    quotes have already been removed (gh/220)}
 %    \begin{macrocode}
 \gdef\filec at ntents#1{%
   \set at curr@file{\filec at ntents@checkdir#1}%

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltcmd.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltcmd.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltcmd.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -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-2021
+% Copyright (C) 2009-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -34,8 +34,8 @@
 %%% From File: ltcmd.dtx
 %
 %    \begin{macrocode}
-\def\ltcmdversion{v1.0h}
-\def\ltcmddate{2021-08-30}
+\def\ltcmdversion{v1.0j}
+\def\ltcmddate{2021-12-31}
 %    \end{macrocode}
 %
 %<*driver>
@@ -67,7 +67,7 @@
 % documentation for \pkg{ltcmd} is provided as part of \texttt{usrguide3}. Here,
 % additional material aimed at programmers is provided
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %    \begin{macrocode}
 %<@@=cmd>
@@ -626,6 +626,8 @@
 % \end{macro}
 %
 % \begin{macro}{\@@_start_aux:NNnnnn, \@@_start_aux:ccnnnn}
+% \changes{v1.0i}{2021/12/02}
+%    {Correct defaults for optional arguments in end-of-environment code (gh/712)}
 %   This sets up a few variables to minimize the boilerplate code
 %   included in all \pkg{xparse}-defined commands.  It then runs the
 %   grabbers~|#4|.  Again, the argument specification |#1| is only for
@@ -639,8 +641,6 @@
     \tl_set:Nn \l_@@_defaults_tl {#5}
     \tl_set:Nn \l_@@_process_all_tl {#6}
     #4
-    \bool_if:NT \l_@@_environment_bool
-      { \exp_args:No \@@_set_environment_end:n \l_@@_environment_str }
     \@@_run_code:
   }
 \cs_generate_variant:Nn \@@_start_aux:NNnnnn { cc }
@@ -648,6 +648,8 @@
 % \end{macro}
 %
 % \begin{macro}{\@@_run_code:}
+% \changes{v1.0i}{2021/12/02}
+%    {Correct defaults for optional arguments in end-of-environment code (gh/712)}
 %   After arguments are grabbed, this function is responsible for
 %   inserting default values, running processors, and finally doing
 %   \cs{group_align_safe_end:} as promised, and running the code.
@@ -656,6 +658,8 @@
   {
     \tl_if_empty:NF \l_@@_defaults_tl { \@@_defaults: }
     \tl_if_empty:NF \l_@@_process_all_tl { \@@_args_process: }
+    \bool_if:NT \l_@@_environment_bool
+      { \exp_args:No \@@_set_environment_end:n \l_@@_environment_str }
     \group_align_safe_end:
     \conditionally at traceon
     \exp_after:wN \l_@@_fn_code_tl \l_@@_args_tl
@@ -2348,15 +2352,17 @@
 %   Now just print everything in the required format.  The auxiliary
 %   \cs{@@_split_signature:n} stores a ready-to-print token list in
 %   \cs{l_@@_tmpa_tl}, so we ust use that here:
+% \changes{v1.0j}{2021/13/31}
+%         {Make \cs{ShowCommand} stop for interaction}
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_show_command_aux:nNNn #1 #2 #3 #4
   {
     \@@_split_signature:n {#4}
-    \iow_term:x
+    \tl_show:x
       {
-        > ~ \token_to_str:N #2 = #1: \iow_newline:
+        \token_to_str:N #2 = #1: \iow_newline:
         \tl_use:N \l_@@_tmpa_tl
-        -> \cs_replacement_spec:N #3 .
+        -> \cs_replacement_spec:N #3
       }
   }
 %    \end{macrocode}
@@ -2367,15 +2373,17 @@
 %   |\ShowCommand\foo| is used (if |foo| is an environment), we show
 %   |\endfoo| as well, and when |\ShowCommand\endfoo| is used, change
 %   that to |\ShowCommand\foo| and do the same.
+% \changes{v1.0j}{2021/13/31}
+%         {Make \cs{ShowCommand} stop for interaction}
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_show_environment:N #1
   {
     \exp_after:wN \@@_show_environment:Nnnw #1 \q_@@
-    \iow_term:x
+    \tl_show:x
       {
-        > ~ \token_to_str:N \end { \cs_to_str:N #1 } : \iow_newline:
+        \token_to_str:N \end { \cs_to_str:N #1 } : \iow_newline:
         -> \exp_args:Nc \cs_replacement_spec:N
-          { environment~ \cs_to_str:N #1 ~end~aux~ } .
+          { environment~ \cs_to_str:N #1 ~end~aux~ }
       }
   }
 \cs_new_protected:Npn \@@_show_environment:Nnnw #1 #2 #3 #4 \q_@@

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltcmdhooks.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltcmdhooks.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltcmdhooks.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -270,7 +270,7 @@
 % If you do that then both hooks automatically work and are patched
 % into the right places.
 %
-% \StopEventually{\setlength\IndexMin{200pt}  \PrintIndex  }
+% \MaybeStop{\setlength\IndexMin{200pt}  \PrintIndex  }
 %
 %
 %
@@ -1394,3 +1394,12 @@
 %
 % \Finale
 %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+
+^^A  Needed for emacs
+^^A
+^^A  Local Variables: 
+^^A  mode: latex
+^^A  coding: utf-8-unix
+^^A  End: 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltcntrl.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltcntrl.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltcntrl.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -66,7 +66,7 @@
 % This section defines a number of control structure macros, such as
 % while-loops and for-loops.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \begin{oldcomments}
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltcounts.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltcounts.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltcounts.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -124,7 +124,7 @@
 % the default for \meta{format}.
 % Star form omits redefining the print representation.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %    \begin{macrocode}
 %<*2ekernel>

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -96,7 +96,7 @@
 %
 % This section contains commands used in defining other macros.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %    \begin{macrocode}
 %<*2ekernel>

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltdirchk.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltdirchk.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltdirchk.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -37,7 +37,7 @@
 %<*driver>
 % \fi
 \ProvidesFile{ltdirchk.dtx}
-             [2021/01/15 v1.3a LaTeX Kernel (System Dependent Parts)]
+             [2021/12/11 v1.3a LaTeX Kernel (System Dependent Parts)]
 % \iffalse
 \documentclass{ltxdoc}
 \GetFileInfo{ltdirchk.dtx}
@@ -206,12 +206,26 @@
 % error messages that use the default settings with a current version of
 % \TeX, but this should not cause any confusion we hope.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{Initialization}
 % As this file is read at a very early stage, some definitions that
 % are normally considered to be part of the format must be made here.
 %
+% Most such definitions are repeated later in the ``right'' place,
+% usually (but not always) with different implementations. To be able
+% to spot this more easily if you look into the file
+% \texttt{latex.ltx} (which is stripped of comments) we add some
+% comment lines to that effect that survive the stripping process by
+% \texttt{docstrip}.
+% \changes{v1.3a}{2021/12/11}{Add comment lines into latex.ltx to
+%     indicate temp definitions that are later overwritten (gh/725)}
+%    \begin{macrocode}
+%<*dircheck>
+%% ---- START temporary definitions for bootstrapping; later overwritten ----
+%</dircheck>
+%    \end{macrocode}
+%
 % \subsection{INITEX}
 % \changes{v0.2i}{1994/01/25}
 %         {Protect against looping on \cs{@@input} and \cs{@@end}.}
@@ -1007,6 +1021,7 @@
 % \end{macro}
 %
 %    \begin{macrocode}
+%% ---- END temporary definitions for bootstrapping ----
 %</dircheck>
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/lterror.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/lterror.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/lterror.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -91,7 +91,7 @@
 %
 % This section defines \LaTeX's error commands.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltexpl.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltexpl.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltexpl.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2019-2021
+% Copyright (C) 2019-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -33,7 +33,7 @@
 %<*driver>
 % \fi
 \ProvidesFile{ltexpl.dtx}
-             [2021/04/20 v1.3c LaTeX Kernel (expl3-dependent code)]
+             [2022/01/06 v1.3e LaTeX Kernel (expl3-dependent code)]
 % \iffalse
 \documentclass{ltxdoc}
 \GetFileInfo{ltexpl.dtx}
@@ -57,7 +57,7 @@
 %
 % \section{\pkg{expl3}-dependent code}
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \changes{v0.0}{2019-10-02}{Initial version}
 %
@@ -387,4 +387,127 @@
 %    \end{macrocode}
 %
 %
+%
+%
+%
+%
+% \section{Document-level command names for \pkg{expl3} functions}
+%
+%    Current home for L3 programing layer functions that we make
+%    directly available at the document level. This section may need
+%    to be moved later (after \cs{NewDocumentCommand} is defined in
+%    case we want to use that in the setup).
+%
+%
+% \DescribeMacro\fpeval
+%    The expandable command \cs{fpeval} takes as its argument a
+%    floating point expression and produces a result using the normal
+%    rules of mathematics. As this command is expandable it can be
+%    used where \TeX{} requires a number and for example within a
+%    low-level \cs{edef} operation to give a purely numerical
+%    result. See \texttt{usrguide3} for further explanation.
+%
+% \DescribeMacro\inteval
+% \DescribeMacro\dimeval
+% \DescribeMacro\skipeval
+%    The expandable command \cs{inteval} takes as its argument an
+%    integer expression and produces a result using the normal rules
+%    of mathematics. The operations recognised are |+|, |-|, |*| and
+%    |/| plus parentheses. Division occurs with \emph{rounding}, and
+%    ties are rounded away from zero. As this command is expandable it
+%    can be used where \TeX{} requires a number and for example within
+%    a low-level \cs{edef} operation to give a purely numerical
+%    result. See \texttt{usrguide3} for further explanation.
+%    \cs{dimeval} and \cs{skipeval} are similar, but generate fixed and
+%    rubber length values, respectively.
+%
+%
+%
+% \begin{macro}{\fpeval,\inteval,\dimeval,\skipeval}
+%    A document level wrapper around the code level function for
+%    floating point calculations.
+% \changes{v1.3d}{2021/11/30}{Moved over from \texttt{xfp} package (gh/711)}
+%    \begin{macrocode}
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2022/06/01}%
+%<latexrelease>                 {\fpeval}{fp and int calculations}%
+\ExplSyntaxOn
+\cs_new_eq:NN \fpeval \fp_eval:n 
+%    \end{macrocode}
+%     And a few more, this time wrappers around the e\TeX{} primitives.
+%    \begin{macrocode}
+\cs_new_eq:NN \inteval \int_eval:n 
+%    \end{macrocode}
+%    
+% \changes{v1.3d}{2021/12/07}{Added \cs{dimeval} and \cs{skipeval} (gh/711)}
+%    \begin{macrocode}
+\cs_new_eq:NN \dimeval  \dim_eval:n 
+\cs_new_eq:NN \skipeval \skip_eval:n 
+\ExplSyntaxOff
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease>                 {\fpeval}{fp and int calculations}%
+
+%<latexrelease>
+%<latexrelease>\let\fpeval\@undefined
+%<latexrelease>\let\inteval\@undefined
+%<latexrelease>\let\dimeval\@undefined
+%<latexrelease>\let\skipeval\@undefined
+%<latexrelease>\EndIncludeInRelease
+%    \end{macrocode}
+%
+%
+% \DescribeMacro\UseName
+% \DescribeMacro\ExpandArgs
+%    When declaring new commands with \cs{NewDocumentCommand} or
+%    \cs{NewCommandCopy} or similar, it is sometimes necessary to
+%    ``construct'' the csname. As a general mechanism the L3
+%    programming layer has \cs{exp\_args:N...} for this, but there is
+%    no mechanism for it  if \cs{ExplSyntaxOn} is not active. We
+%    therefore offer a few of these commands also with CamelCase names.
+%
+%
+% \begin{macro}{\UseName,\ExpandArgs}
+%    A document wrapper for changing arguments to cs names for use
+%    with \cs{NewDocumentCommand} and similar functions.
+%
+% \changes{v1.3d}{2021/12/28}{Added document level names for \cs{exp\_args:Nc} and the like (gh/735)}
+% \changes{v1.3e}{2022/01/06}{Adjust document level names for \cs{exp\_args:Nc} and the like (gh/735)}
+%    \begin{macrocode}
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2022/06/01}%
+%<latexrelease>                 {\ExpandArgs}{Some pre-expansion commands}%
+\ExplSyntaxOn
+\cs_new_eq:NN \UseName \use:c
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\cs_new:Npn \ExpandArgs #1
+  {
+    \cs_if_exist_use:cF { exp_args:N #1 }
+      { \msg_expandable_error:nnn { kernel } { unknown-arg-expansion } {#1} }
+  }
+\msg_new:nnn { kernel } { unknown-arg-expansion }
+  { Unknown~arg~expansion~"#1" }
+\ExplSyntaxOff
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease>                 {\ExpandArgs}{Some pre-expansion commands}%
+
+%<latexrelease>
+%<latexrelease>\let\UseName\@undefined
+%<latexrelease>\let\ExpandArgs\@undefined
+%<latexrelease>\EndIncludeInRelease
+%    \end{macrocode}
+%
 % \Finale

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltfilehook.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltfilehook.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltfilehook.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2020-2021
+% Copyright (C) 2020-2022
 %     Frank Mittelbach, Phelype Oleinik & LaTeX Team
 %
 % This file is part of the LaTeX base system.
@@ -471,7 +471,7 @@
 %    the level value and search further for \texttt{LEVEL} with that value
 %    which should then be the \texttt{START}  level of the file you are in.
 %
-% \StopEventually{\setlength\IndexMin{200pt}  \PrintIndex  }
+% \MaybeStop{\setlength\IndexMin{200pt}  \PrintIndex  }
 %
 %
 % \section{The Implementation}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltfiles.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltfiles.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltfiles.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -106,7 +106,7 @@
 %   If the file exists on the system, execute \emph{then} and input
 %   \emph{NAME}  otherwise execute \emph{else}.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \changes{v1.0a}{1994/03/07}{Initial version, split from latex.dtx}
 % \changes{v1.0a}{1994/03/07}{Long lines wrapped to 72 columns}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltfinal.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltfinal.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltfinal.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -33,7 +33,7 @@
 %<*driver>
 % \fi
 \ProvidesFile{ltfinal.dtx}
-             [2021/09/06 v2.2q LaTeX Kernel (Final Settings)]
+             [2021/12/07 v2.2q LaTeX Kernel (Final Settings)]
 % \iffalse
 \documentclass{ltxdoc}
 \GetFileInfo{ltfinal.dtx}
@@ -57,12 +57,15 @@
 %
 %
 % \section{Final settings}
-% This section contains the final settings for \LaTeX.  It initializes
-% some debugging and typesetting parameters, sets the default
-% |\catcode|s and uc/lc codes, and inputs the hyphenation file.
 %
-% \StopEventually{}
+%    This section contains the final settings for \LaTeX.  It initializes
+%    some debugging and typesetting parameters, sets the default
+%    |\catcode|s and uc/lc codes, and inputs the hyphenation file.
 %
+%
+%
+% \MaybeStop{}
+%
 % \changes{v0.1a}{1994/03/07}{Initial version, split from latex.dtx}
 % \changes{v0.1a}{1994/03/07}{Remove oldcomments environment}
 % \changes{v0.1c}{1994/04/21}{Added comments, set the catcodes of

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltfloat.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltfloat.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltfloat.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -83,7 +83,7 @@
 %  For example, `pht' specifies that the float can appear in any of
 %  three locations: page, here or top.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %
 % \changes{v1.0a}{1994/03/04}{Initial version, split from latex.dtx}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltfntcmd.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltfntcmd.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltfntcmd.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -271,7 +271,7 @@
 % amstex.sty} is used as this version can cause space to be removed
 % immediately before the |\/|.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %
 % \section{The implementation}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltfssaxes.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltfssaxes.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltfssaxes.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2019-2021
+% Copyright (C) 2019-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -66,7 +66,7 @@
 %
 %
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \changes{v1.0h}{2020/12/04}{Reorganized the rollback data}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltfssbas.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltfssbas.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltfssbas.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -76,7 +76,7 @@
 %  completely accurate.
 % \end{quote}
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \changes{v3.0v}{1998/08/17}{(RmS) Documentation fixes.}
 % \changes{v3.0j}{1995/10/22}{(RmS) New size function macro
@@ -2257,3 +2257,13 @@
 %
 % \Finale
 %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+
+^^A  Needed for emacs
+^^A
+^^A  Local Variables: 
+^^A  mode: latex
+^^A  coding: utf-8-unix
+^^A  End: 
+ 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltfsscmp.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltfsscmp.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltfsscmp.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -82,7 +82,7 @@
 %   kernel and  made available via \textsf{latexrelease} package so that
 %   backward compatibility remains ensured for very old documents.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %
 % \changes{v3.0b}{1995/06/15}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltfssdcl.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltfssdcl.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltfssdcl.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -77,7 +77,7 @@
 %  completely accurate.
 % \end{quote}
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{Interface Commands}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltfssini.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltfssini.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltfssini.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -70,7 +70,7 @@
 % distribution, or \emph{The \LaTeX\ Companion} for higher level
 % documentation of these commands.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %
 % \changes{v3.0i}{1998/08/17}{(RmS) Minor documentation fixes.}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltfsstrc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltfsstrc.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltfsstrc.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -138,7 +138,7 @@
 % \end{description}
 %
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{A driver for this document}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/lthooks.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/lthooks.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/lthooks.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C)  2020-2021
+% Copyright (C) 2020-2022
 %       Frank Mittelbach, Phelype Oleinik & LaTeX Team
 %
 % This file is part of the LaTeX base system.
@@ -32,27 +32,12 @@
 %
 %    \begin{macrocode}
 \def\lthooksversion{v1.0s}
-\def\lthooksdate{2021/09/28}
+\def\lthooksdate{2022/01/06}
 %    \end{macrocode}
 %
 %<*driver>
 \documentclass{l3doc}
 
-% bug fix fo l3doc.cls
-\ExplSyntaxOn
-\cs_set_protected:Npn \__codedoc_macro_typeset_one:nN #1#2
-  {
-    \vbox_set:Nn \l__codedoc_macro_box
-      {
-        \vbox_unpack_drop:N \l__codedoc_macro_box
-        \hbox { \llap { \__codedoc_print_macroname:nN {#1} #2
-            \MacroFont       % <----- without it the \ is in lmr10 if a link is made
-            \
-        } }
-      }
-    \int_incr:N \l__codedoc_macro_int
-  }
-\ExplSyntaxOff
 
 \providecommand\InternalDetectionOff{}
 \providecommand\InternalDetectionOn{}
@@ -798,6 +783,7 @@
 % \begin{function}{\ShowHook,\LogHook}
 %   \begin{syntax}
 %     \cs{ShowHook} \Arg{hook}
+%     \cs{LogHook}  \Arg{hook}
 %   \end{syntax}
 %   Displays information about the \meta{hook} such as
 %   \begin{itemize}
@@ -1096,6 +1082,7 @@
 % \begin{function}{\hook_show:n,\hook_log:n}
 %   \begin{syntax}
 %     \cs{hook_show:n} \Arg{hook}
+%     \cs{hook_log:n}  \Arg{hook}
 %   \end{syntax}
 %   Displays information about the \meta{hook} such as
 %   \begin{itemize}
@@ -1502,9 +1489,6 @@
 %   Like \cs{AtBeginDocument} but for the \hook{enddocument} hook.
 % \end{function}
 %
-%    There is also \cs{AtBeginDvi}  which is discussed in conjunction
-%    with the shipout hooks.
-%
 %    \bigskip
 %
 %    The few hooks that existed previously in \LaTeXe{} used internally
@@ -1962,7 +1946,7 @@
 %    \end{description}
 %
 %
-% \StopEventually{\setlength\IndexMin{200pt}  \PrintIndex  }
+% \MaybeStop{\setlength\IndexMin{200pt}  \PrintIndex  }
 %
 %
 % \section{The Implementation}
@@ -2219,7 +2203,7 @@
 %    A token list holding the relation between \meta{label1} and
 %    \meta{label2} in the \meta{hook}.  The \meta{labels} are lexically
 %    (reverse) sorted to ensure that two labels always point to the same
-%    token list.  For global rules, the \meta{hook} name is |??|.
+%    token list.  For global rules, the \meta{hook} name is \texttt{??}.
 %
 %    \item[\cs{@@\textvisiblespace\meta{hook}}] The code that is actually executed
 %    when the hook is called in the document is stored in this token
@@ -3589,7 +3573,7 @@
 %    expansion in the code later on.
 %
 %    \cs{@@\textvisiblespace??} isn't used, but it has to be defined to trick
-%    the code into thinking that \verb=??= is actually a hook.
+%    the code into thinking that \texttt{??} is actually a hook.
 %    \begin{macrocode}
 \prop_new:c {g_@@_??_code_prop}
 \prop_new:c {@@~??}
@@ -4169,7 +4153,7 @@
 %    \meta{hook-code-plist}.  We are about to apply the next rule and
 %    enter it into the data structure.  \cs{@@_apply_label_pair:nnn} will
 %    just call \cs{@@_label_if_exist_apply:nnnF} for the \meta{hook}, and
-%    if no rule is found, also try the \meta{hook} name \verb=??=
+%    if no rule is found, also try the \meta{hook} name \texttt{??}
 %    denoting a default hook rule.
 %
 %    \cs{@@_label_if_exist_apply:nnnF} will check if the rule exists for
@@ -4286,7 +4270,7 @@
 %    out to be a real issue, we can improve the code.
 %
 %    Here the code is removed from \cs{l_@@_cur_hook_tl} rather than
-%    \verb=#3= because the latter may be \verb=??=, and the default
+%    \verb=#3= because the latter may be \texttt{??}, and the default
 %    hook doesn't store any code.  Removing it instead from \cs{l_@@_cur_hook_tl}
 %    makes the default rules \verb=->= and  \verb=<-= work properly.
 %    \begin{macrocode}
@@ -4535,7 +4519,7 @@
 %   \meta{inline function} is executed with |#1|${}={}$\meta{relation},
 %   |#2|${}={}$\meta{label_1}\verb=|=\meta{label_2},
 %   and |#3|${}={}$\meta{hook} (the latter may be the argument |#1| to
-%   \cs{@@_list_rules:nn}, or |??| if it is a default rule).
+%   \cs{@@_list_rules:nn}, or \texttt{??} if it is a default rule).
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_list_rules:nn #1 #2
   {
@@ -5596,4 +5580,10 @@
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \endinput
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+^^A  Needed for emacs
+^^A
+^^A  Local Variables: 
+^^A  mode: latex
+^^A  coding: utf-8-unix
+^^A  End: 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/lthyphen.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/lthyphen.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/lthyphen.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -65,7 +65,7 @@
 % of \texttt{hyphen.ltx}.  See the comments below for additional
 % information.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % To produce the printed version of this file the following code
 % is used. It can be extracted with the \dst{} program, or one can run

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltidxglo.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltidxglo.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltidxglo.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -68,7 +68,7 @@
 %
 % \DescribeMacro{\glossary} Make a glossary entry for |#1|.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %
 % \changes{v1.0a}{1994/03/31}{Initial version of ltidxbib.dtx,

Added: trunk/Master/texmf-dist/source/latex-dev/base/ltkeys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltkeys.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltkeys.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -0,0 +1,454 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2021-2022
+% The LaTeX Project and any individual authors listed elsewhere
+% in this file.
+%
+% This file is part of the LaTeX base system.
+% -------------------------------------------
+%
+% It may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%    https://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008 or later.
+%
+% This file has the LPPL maintenance status "maintained".
+%
+% The list of all files belonging to the LaTeX base distribution is
+% given in the file `manifest.txt'. See also `legal.txt' for additional
+% information.
+%
+% The list of derived (unpacked) files belonging to the distribution
+% and covered by LPPL is defined by the unpacking scripts (with
+% extension .ins) which are part of the distribution.
+%
+% \fi
+%
+% \iffalse
+%%% From File: ltkeys.dtx
+%
+%<*driver>
+% \fi
+\ProvidesFile{ltkeys.dtx}
+             [2021/11/30 v1.0a LaTeX Kernel (Kevyal options)]
+% \iffalse
+\documentclass{l3doc}
+\GetFileInfo{ltkeys.dtx}
+\title{\filename}
+\date{\filedate}
+\author{%
+  \LaTeX{} Team}
+
+\begin{document}
+ \maketitle
+ \DocInput{ltkeys.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \section{Creating and using keyval options}
+%
+% As with any key--value input, using key--value pairs as package or
+% class options has two parts: creating the key options and setting (using)
+% them. Options created in this way \emph{may} be used after package loading
+% as general key--value settings: this will depend on the nature of the
+% underlying code.
+%
+% \begin{function}{\DeclareKeys}
+%   \begin{syntax}
+%     \cs{DeclareKeys} \oarg{family} \marg{declarations}
+%   \end{syntax}
+%   Creates a series of options from a comma-separated \meta{declarations} list.
+%   Each entry in this list is a key--value pair, with the \meta{key} having one
+%   or more \meta{properties}. A small number of \enquote{basic}
+%   \meta{properties} are described below. The full range of properties,
+%   provided by \pkg{l3keys}, can also be used for more powerful processing.
+%   See \texttt{interface3} for the full details.
+%   
+%   The basic properties provided here are
+%   \begin{itemize}
+%     \item \texttt{.if} --- sets a \TeX{} \cs{if...} switch
+%     \item \texttt{.store} --- stores a value in a macro
+%     \item \texttt{.usage} -- defines whether the option can be given only
+%       when loading (\texttt{load}), in the preamble (\texttt{preamble}) or
+%       has no limitation on scope (\texttt{general})
+%   \end{itemize}
+%   The part of the \meta{key} before the \meta{property} is the \meta{name},
+%   with the \meta{value} working with the \meta{property} to define the
+%   behaviour of the option.
+%
+%   For example, with
+%   \begin{verbatim}
+%     \DeclareKeys[mypkg]
+%       {
+%         draft.if          = @mypkg at draft      ,
+%         draft.usage       = preamble          ,
+%         name.store        = \@mypkg at name      ,
+%         name.usage        = load              ,
+%         second-name.store = \@mypkg at other@name
+%       }
+%   \end{verbatim}
+%   three options would be create. The option \texttt{draft} can be given
+%   anywhere in the preamble, and will set a switch called \cs{if at mypkg@draft}.
+%   The option \texttt{name} can only be given during package loading, and will
+%   save whatever value it is given in \cs{@mypkg at name}. Finally, the option
+%   \texttt{second-name} can be given anywhere, and will save its value in
+%   \cs{@mypkg at other@name}.
+%
+%   Keys created \emph{before} the use of
+%   \cs{ProcessKeyOptions}/\cs{ProcessKeyPackageOptions} act as package options.
+% \end{function}
+%
+% \begin{function}{\ProcessKeyOptions}
+%   \begin{syntax}
+%     \cs{ProcessKeyOptions} \oarg{family}
+%   \end{syntax}
+%   The \cs{ProcessKeyOptions} function is used to check the current
+%   option list against the keys defined for \meta{family}. Global (class)
+%   options and local (package) options are checked when this function
+%   is called in a package.
+% \end{function}
+%
+% \begin{function}{\ProcessKeyPackageOptions}
+%   \begin{syntax}
+%     \cs{ProcessKeyPackageOptions} \oarg{family}
+%   \end{syntax}
+%   This function works in a similar manner to \cs{ProcessKeyOptions}.
+%   When used in a package, \cs{ProcessKeyPackageOptions}
+%   will not examine any global (class) class options available. In contrast,
+%   \cs{ProcessKeyOptions} does parse class options (in common with the
+%   classical \cs{ProcessOptions} command).
+% \end{function}
+%
+% \begin{function}{\SetKeys}
+%   \begin{syntax}
+%     \cs{SetKeys} \oarg{family} \Arg{keyvals}
+%   \end{syntax}
+%   Sets (applies) the explicit list of \meta{keyvals}  for the \meta{family}:
+%   it the latter is not given, the value of \cs{@currname} used. This command
+%   may be used within a package to set options before or after using
+%   \cs{ProcessKeyOptions}/\cs{ProcessKeyPackageOptions}.
+% \end{function}
+%
+% \StopEventually{}
+%
+% \subsection{Implementation of \pkg{ltkeys}}
+%
+%    \begin{macrocode}
+%<@@=keys>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%<*2ekernel>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\ExplSyntaxOn
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\cs_generate_variant:Nn \clist_put_right:Nn { Nv }
+%    \end{macrocode}
+%
+% \begin{macro}{\l_@@_options_clist}
+%   A single list is used for all options, into which they are collected
+%   before processing.
+%    \begin{macrocode}
+\clist_new:N \l_@@_options_clist
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{variable}{\l_@@_options_loading_bool}
+%   Used to indicate we are in the loading phase: controls the outcome
+%   of warnings.
+%    \begin{macrocode}
+\bool_new:N \l_@@_options_loading_bool
+%    \end{macrocode}
+% \end{variable}
+%
+% \begin{macro}{\@@_options:Nn, \@@_options:NV}
+% \begin{macro}{\@@_options_end:}
+%   The main function calls functions to collect up the global and local
+%   options into \cs{l_@@_options_clist} before calling the
+%   underlying functions to actually do the processing. So that a suitable
+%   message is produced if the option is unknown, the special
+%   \texttt{unknown} key is set if it does not already exist for the
+%   current family, and is cleaned up afterwards if required. To allow
+%   the \LaTeXe{} layer to know this mechanism is active, and to deal
+%   with the key family not matching the file name, we store the family
+%   in all cases.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_options:Nn #1#2
+  {
+    \cs_gset_nopar:cpn { opt at fam@\@currname.\@currext } {#2}
+    \cs_set_protected:Npn \@@_option_end: { }
+    \clist_clear:N \l_@@_options_clist
+    \@@_options_global:Nn #1 {#2}
+    \@@_options_local:
+    \keys_if_exist:nnF {#2} { unknown }
+      {
+        \keys_define:nn {#2}
+          {
+            unknown .code:n =
+              {
+                \msg_error:nnxx { keys } { option-unknown }
+                  { \l_keys_key_str } { \@currname }
+              }
+          }
+        \cs_set_protected:Npn \@@_option_end:
+          { \keys_define:nn {#2} { unknown .undefine: } }
+      }
+    \bool_set_true:N \l_@@_options_loading_bool
+    \keys_set:nV {#2} \l_@@_options_clist
+    \bool_set_false:N \l_@@_options_loading_bool
+    \cs_set_eq:NN \@unprocessedoptions \scan_stop:
+    \@@_option_end:
+    \@@_options_loaded:n {#2}
+  }
+\cs_generate_variant:Nn \@@_options:Nn { NV }
+\msg_new:nnnn { keys } { option-unknown }
+  { Unknown~option~'#1'~for~package~#2. }
+  {
+    LaTeX~has~been~asked~to~set~an~option~called~'#1'~
+    but~the~#2~package~has~not~created~an~option~with~this~name.
+  }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@@_options_global:Nn}
+%   Global (class) options are handled differently for \LaTeXe{} packages
+%   and classes. Hence this function is essentially a check on the current
+%  file type. The initial test is needed as \LaTeXe{} allows variables to
+%   be equal to \cs{scan_stop:}, which is usually forbidden in \pkg{expl3}
+%   code.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_options_global:Nn #1#2
+  {
+    \cs_if_eq:NNF \@classoptionslist \scan_stop:
+      {
+        \cs_if_eq:NNTF \@currext \@clsextension
+          { \@@_options_class:n {#2} }
+          {
+            \bool_if:NT #1
+             { \@@_options_package:n {#2} }
+          }
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@@_options_class:n}
+%   For classes, each option (stripped of any content after |=|)
+%   is checked for existence as a key. If found, the option is added to
+%   the combined list for processing. On the other hand, unused options
+%   are stored up in \cs{@unusedoptionlist}. Before any of that, though,
+%   there is a simple check to see if there is an |unknown| key. If there
+%   is, then \emph{everything} will match and the mapping can be skipped.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_options_class:n #1
+  {
+    \cs_if_free:cF { opt@ \@currname . \@currext }
+      {
+        \keys_if_exist:nnTF {#1} { unknown }
+          {
+            \clist_put_right:Nv \l_@@_options_clist
+              { opt@ \@currname . \@currext }
+          }
+          {
+            \clist_map_inline:cn { opt@ \@currname . \@currext }
+              {
+                \keys_if_exist:neTF
+                  {#1} { \@@_remove_equals:n {##1} }
+                  { \clist_put_right:Nn \l_@@_options_clist {##1} }
+                  { \clist_put_right:Nn \@unusedoptionlist {##1} }
+              }
+          }
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@@_options_package:n}
+%   For global options when processing a package, the tasks are slightly
+%   different from those for a class. The check is the same, but here
+%   there is nothing to do if the option is not applicable. Each valid
+%   option also needs to be removed from \cs{@unusedoptionlist}.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_options_package:n #1
+  {
+    \clist_map_inline:Nn \@classoptionslist
+      {
+        \keys_if_exist:neT {#1} { \@@_remove_equals:n {##1} }
+          {
+            \clist_put_right:Nn \l_@@_options_clist {##1}
+            \clist_remove_all:Nn \@unusedoptionlist {##1}
+          }
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@@_options_local:}
+%   If local options are found, the are added to the processing list.
+%   \LaTeXe{} stores options for each file in a macro which may or may not
+%   exist, hence the need to use \cs{cs_if_exist:c}.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_options_local:
+  {
+    \cs_if_eq:NNF \@currext \@clsextension
+      {
+        \cs_if_exist:cT { opt@ \@currname . \@currext }
+          {
+            \clist_put_right:Nv \l_@@_options_clist
+              { opt@ \@currname . \@currext }
+          }
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[EXP]{\@@_remove_equals:n}
+% \begin{macro}[EXP]{\@@_remove_equals:w}
+%   As the name suggests, this is a simple function to remove an equals
+%   sign from the input. This is all wrapped up in an \texttt{n} function
+%   so that there will always be a sign available.
+%    \begin{macrocode}
+\cs_new:Npn \@@_remove_equals:n #1
+  { \@@_remove_equals:w #1 = \s_@@_stop }
+\cs_new:Npn \@@_remove_equals:w #1 = #2 \s_@@_stop { \exp_not:n {#1} }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{The document interfaces}
+%
+% \begin{macro}{\DeclareKeys}
+%   Defining key options is quite straight-forward: we have an intermediate
+%   function to allow for potential set-up steps.
+%    \begin{macrocode}
+\NewDocumentCommand \DeclareKeys { o +m }
+  {
+    \IfNoValueTF {#1}
+      { \exp_args:NV \keys_define:nn \@currname }
+      { \keys_define:nn {#1} }
+        {#2}
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ProcessKeyOptions, \ProcessKeyPackageOptions}
+%   We need to deal with the older interface from \pkg{l3keys2e} here: it had
+%   a mandatory argument. We can mop that up using a look-ahead, and then
+%   exploit that information to determine whether the package option handling
+%   is set up for the new approach for clash handling.
+%    \begin{macrocode}
+\NewDocumentCommand \ProcessKeyOptions { o }
+  {
+    \IfNoValueTF {#1}
+      { \@@_options:NV \c_true_bool \@currname }
+      { \@@_options:Nn \c_true_bool {#1} }
+  }
+\NewDocumentCommand \ProcessKeyPackageOptions { o }
+  {
+    \IfNoValueTF {#1}
+      { \@@_options:NV \c_false_bool \@currname }
+      { \@@_options:Nn \c_false_bool {#1} }
+  }
+\@onlypreamble \ProcessKeyOptions
+\@onlypreamble \ProcessKeyPackageOptions
+%    \end{macrocode}
+% \end{macro}
+%
+% \subsection{Option usage scope}
+%
+% \begin{macro}{\@@_options_loaded:n}
+% \begin{macro}{\@@_options_loaded:nn}
+%   Indicates that the load-time options for a package have been processed:
+%   once this has happened, make them unavailable either with a warning or
+%   an error.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_options_loaded:n #1
+  {
+    \prop_get:NnNT \l_keys_usage_load_prop {#1} \l_@@_tmpa_tl
+      {
+        \clist_map_inline:Nn \l_@@_tmpa_tl
+          {
+            \keys_define:nn {#1}
+              {
+                ##1 .code:n =
+                  \@@_options_loaded:nn {#1} {##1}
+              }
+          }
+      }
+  }
+\cs_new_protected:Npn \@@_options_loaded:nn #1#2
+  {
+    \bool_if:NTF \l_@@_options_loading_bool
+      {
+        \msg_warning:nnxx { keys } { load-option-ignored }
+          { \use:c { opt at fam@\@currname.\@currext } } {#2}
+      }
+      { \msg_error:nnnn { keys } { load-only } {#1} {#2} }
+  }
+\msg_new:nnn { keys } { load-option-ignored }
+  { Package~"#1"~has~already~been~loaded:~ignoring~load-time~option~"#2". }
+\msg_new:nnnn { keys } { load-only }
+  { Key~"#2"~may~only~be~used~in~the~during~loading~of~package~"#1". }
+  {
+    LaTeX~was~asked~to~set~a~key~called~"#2",~but~this~is~only~allowed~
+    in~the~optional~argument~when~loading~package~"#1".
+  }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%  Disable all preamble options in one shot.
+%    \begin{macrocode}
+\tl_gput_left:Nn \@kernel at after@begindocument
+  {
+    \prop_map_inline:Nn \l_keys_usage_preamble_prop
+      {
+        \clist_map_inline:nn {#2}
+          {
+            \keys_define:nn {#1}
+              {
+                ##1 .code:n =
+                  \msg_error:nnn { keys } { preamble-only } {##1}
+              }
+          }
+      }
+  }
+\msg_new:nnnn { keys } { preamble-only }
+  { Key~"#1"~may~only~be~used~in~the~preamble. }
+  {
+    LaTeX~was~asked~to~set~a~key~called~"#1",~but~this~is~only~allowed~
+    before~\begin{document}.~You~will~need~to~set~the~key~earlier.
+  }
+%    \end{macrocode}
+%
+% \subsection{General key setting}
+%
+% \begin{macro}{\SetKeys}
+%   A simple wrapper.
+%    \begin{macrocode}
+\NewDocumentCommand \SetKeys { o +m }
+  {
+    \IfNoValueTF {#1}
+      { \keys_set:Vn \@currname }
+      { \keys_set:nn {#1} }
+        {#2}
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+\ExplSyntaxOff
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%</2ekernel>
+%    \end{macrocode}


Property changes on: trunk/Master/texmf-dist/source/latex-dev/base/ltkeys.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltlength.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltlength.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltlength.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -83,7 +83,7 @@
 % \DescribeMacro{\settodepth}
 % Set the length, |#1| to the depth of a box containing |#2|.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %    \begin{macrocode}
 %<*2ekernel>

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltlists.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltlists.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltlists.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -135,7 +135,7 @@
 % when it occurs immediately after an |\item| command in an enclosing
 % list.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %
 % \changes{v1.0a}{1994/03/07}{Initial version, split from latex.dtx}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltlogos.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltlogos.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltlogos.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -65,7 +65,7 @@
 %
 % Various logos are defined here.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \begin{macro}{\TeX}
 %    The \TeX{} logo, adjusted so that a full stop after the logo

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltluatex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltluatex.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltluatex.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2015-2021
+% Copyright (C) 2015-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -28,7 +28,7 @@
 \ProvidesFile{ltluatex.dtx}
 %</driver>
 %<*tex>
-[2021/10/15 v1.1v
+[2021/12/27 v1.1x
 %</tex>
 %<plain>  LuaTeX support for plain TeX (core)
 %<*tex>
@@ -120,6 +120,17 @@
 % tables from $1$ so |\luafunction0| is not available).
 %
 % \noindent
+% \DescribeMacro{\newluacmd}
+% |\newluadef{|\meta{function}|}|\\
+% Like \cs{newluafunction}, but defines the command using \cs{luadef}
+% instead of just assigning an integer.
+%
+% \noindent
+% \DescribeMacro{\newprotectedluacmd}
+% |\newluadef{|\meta{function}|}|\\
+% Like \cs{newluacmd}, but the defined command is not expandable.
+%
+% \noindent
 % \DescribeMacro{\newwhatsit}
 % |\newwhatsit{|\meta{whatsit}|}|\\
 % Defines a custom \cs{whatsit}, indexed from~$1$.
@@ -380,7 +391,7 @@
 %
 % \endgroup
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{Implementation}
 %
@@ -722,6 +733,22 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}{\newluacmd, \newprotectedluacmd}
+% \changes{v1.1x}{2021/12/27}{Macros added}
+%   Additionally two variants are provided to make the passed control
+%   sequence call the function directly.
+%    \begin{macrocode}
+\def\newluacmd{%
+  \e at alloc\luafunction\luadef
+    \e at alloc@luafunction at count\m at ne\e at alloc@top
+}
+\def\newprotectedluacmd{%
+  \e at alloc\luafunction{\protected\luadef}
+    \e at alloc@luafunction at count\m at ne\e at alloc@top
+}
+%    \end{macrocode}
+% \end{macro}
+%
 % \subsection{Custom whatsits}
 %
 % \begin{macro}{\newwhatsit}
@@ -1351,6 +1378,8 @@
 % \changes{v1.1k}{2019/10/02}{mlist\_to\_hlist is \texttt{exclusive}}
 % \changes{v1.1l}{2020/02/02}{post\_linebreak\_filter is \texttt{reverselist}}
 % \changes{v1.1p}{2020/08/01}{new\_graf is \texttt{exclusive}}
+% \changes{v1.1w}{2021/11/17}{hpack\_quality is \texttt{exclusive}}
+% \changes{v1.1w}{2021/11/17}{vpack\_quality is \texttt{exclusive}}
 %    \begin{macrocode}
   contribute_filter      = simple,
   buildpage_filter       = simple,
@@ -1361,8 +1390,8 @@
   post_linebreak_filter  = reverselist,
   hpack_filter           = list,
   vpack_filter           = list,
-  hpack_quality          = list,
-  vpack_quality          = list,
+  hpack_quality          = exclusive,
+  vpack_quality          = exclusive,
   pre_output_filter      = list,
   process_rule           = exclusive,
   hyphenate              = simple,
@@ -1516,11 +1545,11 @@
 % Handler for |list| callbacks.
 % \changes{v1.0k}{2015/12/02}{resolve name and i.description (PHG)}
 % \changes{v1.1s}{2020/12/02}{Fix return value of list callbacks}
+% \changes{v1.1w}{2021/11/17}{Never pass on \texttt{true} return values for list callbacks}
 %    \begin{macrocode}
 local function list_handler(name)
   return function(head, ...)
     local ret
-    local alltrue = true
     for _,i in ipairs(callbacklist[name]) do
       ret = i.func(head, ...)
       if ret == false then
@@ -1531,18 +1560,17 @@
         return false
       end
       if ret ~= true then
-        alltrue = false
         head = ret
       end
     end
-    return alltrue and true or head
+    return head
   end
 end
 %    \end{macrocode}
 % Default for user-defined |list| and |reverselist| callbacks without explicit default.
 %    \begin{macrocode}
-local function list_handler_default()
-  return true
+local function list_handler_default(head)
+return head
 end
 %    \end{macrocode}
 % Handler for |reverselist| callbacks.
@@ -1551,7 +1579,6 @@
 local function reverselist_handler(name)
   return function(head, ...)
     local ret
-    local alltrue = true
     local callbacks = callbacklist[name]
     for i = #callbacks, 1, -1 do
       local cb = callbacks[i]
@@ -1564,11 +1591,10 @@
         return false
       end
       if ret ~= true then
-        alltrue = false
         head = ret
       end
     end
-    return alltrue and true or head
+    return head
   end
 end
 %    \end{macrocode}
@@ -1899,14 +1925,10 @@
   if current == false then
     flush_list(head)
     return nil
-  elseif current == true then
-    current = head
   end
   current = call_callback("mlist_to_hlist", current, display_type, need_penalties)
   local post = call_callback("post_mlist_to_hlist_filter", current, display_type, need_penalties)
-  if post == true then
-    return current
-  elseif post == false then
+  if post == false then
     flush_list(current)
     return nil
   end

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltmath.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltmath.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltmath.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -74,7 +74,7 @@
 % This file contains a lot of the original plain \TeX{} code, as well
 % as the \LaTeX{} environments for math. It still needs sorting out.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %    \begin{macrocode}
 %<*2ekernel>

Added: trunk/Master/texmf-dist/source/latex-dev/base/ltmeta.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltmeta.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltmeta.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -0,0 +1,189 @@
+% \iffalse meta-comment
+%
+%% File: ltmeta.dtx (C) Copyright 2021
+%       Frank Mittelbach, LaTeX Team
+%
+% 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
+%
+%
+%%% From File: ltmeta.dtx
+%
+%    \begin{macrocode}
+\def\ltmetaversion{v1.0a}
+\def\ltmetadate{2021/12/07}
+%    \end{macrocode}
+%<*driver>
+\documentclass{l3doc}
+
+%\usepackage{ltmeta}
+
+% Fixing footnotes in  functions and variables: this should be in l3doc!
+
+\newcommand\fixfootnote[2]{\footnotemark
+  \AddToHookNext{env/#1/after}{\footnotetext{#2}}}
+\AddToHook{env/function/begin}{\def\footnote{\fixfootnote{function}}}
+\AddToHook{env/variable/begin}{\def\footnote{\fixfootnote{variable}}}
+
+\EnableCrossrefs
+\CodelineIndex
+\begin{document}
+  \DocInput{ltmeta.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+% \providecommand\hook[1]{\texttt{#1}}
+% \providecommand\env[1]{\texttt{#1}}
+%
+%
+%
+% \title{The \texttt{ltmeta.dtx} code\thanks{This file has version
+%    \ltmetaversion\ dated \ltmetadate, \copyright\ \LaTeX\
+%    Project.}}
+% \author{Frank Mittelbach}
+%
+% \maketitle
+%
+%
+% \begin{abstract}
+%    This code defines the \cs{DocumentMetadata} interface.
+% \end{abstract}
+%
+% \tableofcontents
+%
+%
+% \section{Introduction}
+%
+%
+%    In the past there was no dedicated location to declare settings
+%    concerning a document as a whole. Settings are placed somewhere
+%    in the preamble or with the class options or even with some
+%    package options.  For some settings this can be too late, for
+%    example the pdf version can no longer be changed if a package has
+%    used code which already opened the PDF.
+%
+%    \cs{DocumentMetadata} as a new command unifies such settings in
+%    one place.  It must be used before \cs{documentclass} but can be
+%    issued more than once there.
+%
+%    At the moment most of the code run by \cs{DocumentMetadata} is
+%    external to the format and subject to change. This includes the
+%    supported key/values.
+%
+%    For that reason all that happens right now in the format is to
+%    look for suitable support files and if found, to redirect the
+%    processing to them.
+%
+% \subsection{\cs{DocumentMetadata}}
+%
+% \begin{function}{\DocumentMetadata}
+% \begin{syntax}
+%  \cs{DocumentMetadata}\Arg{key-value list}
+% \end{syntax}
+% \end{function}
+%
+%
+%
+%    The keys defined for \cs{DocumentMetadata}
+%    currently allow to set the PDF version, to set the PDF \texttt{/Lang},
+%    to uncompress a PDF, to set the language and to declare a few PDF standards
+%    and some color profiles.
+%
+%    \cs{DocumentMetadata} is also used to
+%    activate the new PDF management code and it loads
+%    a number of required files for the PDF management code.
+%    As this forces the loading of the backend files, a backend
+%    which can't be detected automatically like |dvipdfmx|,
+%    must be set in the first \cs{DocumentMetadata} call (if there is more than one).
+%
+%    The full set of keys currently supported is documented in \texttt{documentmetadata-support.pdf}
+%    for now.
+%
+%
+% \StopEventually{\setlength\IndexMin{200pt}  \PrintIndex  }
+%
+%
+% \section{The Implementation}
+%
+%
+%
+%    \begin{macrocode}
+%<*2ekernel|latexrelease>
+%    \end{macrocode}
+%    Not needed yet but \ldots
+%    \begin{macrocode}
+%\ExplSyntaxOn
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%<latexrelease>\NewModuleRelease{2021/06/01}{ltmeta}
+%<latexrelease>                 {Document Metadata handling}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\protected\def\DocumentMetadata{%
+  \InputIfFileExists{documentmetadata-support.ltx}%
+     {}%
+%    \end{macrocode}
+%    The above file is changing \cs{DocumentMetadata} to a suitable
+%    definition (or so we hope), so that we can try again --- if not
+%    tough.
+%
+%    If the file can't be found we say so and carry on without it.
+%    \begin{macrocode}
+     {%
+       \@latex at error{No support files for
+                    \noexpand\DocumentMetadata found}
+         {Is the 'LaTeX-lab' bundle installed?%
+         \MessageBreak
+         Without it, the declaration is ignored.}%
+%    \end{macrocode}
+%    No point in trying this more than once if there are several calls
+%    in the document.
+%    \begin{macrocode}
+      \let\DocumentMetadata\@gobble
+     }%
+  \DocumentMetadata
+}
+%    \end{macrocode}
+%
+%
+%
+%
+%
+%    \begin{macrocode}
+%
+%<latexrelease>\IncludeInRelease{0000/00/00}{ltmeta}%
+%<latexrelease>                 {Undo Document Metadata handling}
+%<latexrelease>
+%<latexrelease>\let\DocumentMetadata\@undefined
+%<latexrelease>
+%<latexrelease>\EndModuleRelease
+%    \end{macrocode}
+%    Again for the future \ldots
+%    \begin{macrocode}
+%\ExplSyntaxOff
+%    \end{macrocode}
+%    \begin{macrocode}
+%</2ekernel|latexrelease>
+%    \end{macrocode}
+%
+%    Restore module prefix (if any):
+%    \begin{macrocode}
+%<@@=>
+%    \end{macrocode}
+%
+%
+%
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%


Property changes on: trunk/Master/texmf-dist/source/latex-dev/base/ltmeta.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -81,7 +81,7 @@
 % environments and related commands, the `flushing' environments,
 % (|center|, |flushleft|, |flushright|), and |verbatim|.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %    \begin{macrocode}
 %<*2ekernel>

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltoutenc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltoutenc.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltoutenc.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -44,7 +44,7 @@
 %<*driver>
 % \fi
 \ProvidesFile{ltoutenc.dtx}
-             [2021/10/16 v2.0x LaTeX Kernel (font encodings)]
+             [2021/12/12 v2.0y LaTeX Kernel (font encodings)]
 % \iffalse
 \documentclass{ltxdoc}
 \GetFileInfo{ltoutenc.dtx}
@@ -477,7 +477,7 @@
 % \texttt{TS1} encoding.
 %
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \subsection{Docstrip modules}
 %
@@ -2949,7 +2949,7 @@
         \endgroup
       }
     \else
-      \newluafunction\@remove at tlig@@@@
+      \newprotectedluacmd\@remove at tlig@@@
 %    \end{macrocode}
 % Now we can define the function. Mostly we just have to insert a protected glyph
 % node, which is a glyph node with subtype 256. But we have to keep track of the
@@ -2956,7 +2956,7 @@
 % current mode to avoid inserting the glyph into a vlist.
 %    \begin{macrocode}
       \now at and@everyjob{\directlua{
-        local rawchar_func = token.create'@remove at tlig@@@@'.index
+        local rawchar_func = token.create'@remove at tlig@@@'.index
         local forcehmode = tex.forcehmode
         local put_next = token.put_next
         local glyph_id = node.id'glyph'
@@ -2972,7 +2972,6 @@
           n.char = token.scan_int()
           return node.write(n)
         end
-        token.set_lua('@remove at tlig@@@', rawchar_func, 'global', 'protected')
       }}
 %    \end{macrocode}
 % Now \verb+\remove at tlig+ can be implemented almost as in XeTeX.
@@ -3017,8 +3016,33 @@
   \char#1\relax}
 %    \end{macrocode}
 %
+%    In its original implementation \cs{DeclareUnicodeAccent} was
+%    given 3 arguments (with second the ``Unicode encoding'' a.k.a.,
+%    \cs{UnicodeEncodingName}) while in other places, e.g.,
+%    \cs{DeclareUnicodeComposite}, we always made encoding implicit. So
+%    we now change it here to implicit too so that the interfaces
+%    become a bit more consistent. To avoid making that a
+%    breaking change (even though it only affects two packages on
+%    CTAN) we test for \verb=#2= being \cs{UnicodeEncodingName}. This
+%    would not catch if somebody used
+%    \verb|\DeclareUnicodeAccent{\=}{TU-sub}{"0304}|
+%    but that fortunately hasn't happened. With the implicit argument
+%    you would need to change \cs{UnicodeEncodingName} instead, as you
+%    have to do anyway for the other interface commands.
+% \changes{v2.0y}{2021/12/12}{\cs{DeclareUnicodeAccent} now makes the
+%                             encoding argument implicit (gh/253)}
 %    \begin{macrocode}
-\def\DeclareUnicodeAccent#1#2#3{%
+\def\DeclareUnicodeAccent#1#2{%
+  \edef\reserved at a{#2}%
+  \edef\reserved at b{\UnicodeEncodingName}%
+  \ifx\reserved at a\reserved at b
+    \def\reserved at a{\DeclareUnicodeAccent@{#1}}%
+  \else
+    \def\reserved at a{\DeclareUnicodeAccent@{#1}\UnicodeEncodingName}%
+  \fi
+  \reserved at a{#2}%
+}  
+\def\DeclareUnicodeAccent@#1#2#3{%
   \DeclareTextCommand{#1}{#2}{\add at unicode@accent{#3}}%
 }
 %    \end{macrocode}
@@ -3059,113 +3083,119 @@
   \def\reserved at b{#1#2}}
 %    \end{macrocode}
 %
+%    Next two commands are simply syntactic sugar to go with the other
+%    \cs{DeclareUnicode...} declarations.
+% \changes{v2.0y}{2021/12/12}{Added \cs{DeclareUnicodeCommand} and
+%    \cs{DeclareUnicodeSymbol} (gh/253)}
 %    \begin{macrocode}
-\DeclareTextCommand\textquotesingle \UnicodeEncodingName{%
-                                                \remove at tlig{"0027}}
-\DeclareTextCommand\textasciigrave  \UnicodeEncodingName{%
-                                                \remove at tlig{"0060}}
-\DeclareTextCommand\textquotedbl    \UnicodeEncodingName{%
-                                                \remove at tlig{"0022}}
+\def\DeclareUnicodeSymbol#1{\DeclareTextSymbol{#1}{\UnicodeEncodingName}}
+\def\DeclareUnicodeCommand#1{\DeclareTextCommand{#1}{\UnicodeEncodingName}}
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\DeclareTextSymbol{\textdollar}          \UnicodeEncodingName{"0024}
-\DeclareTextSymbol{\textless}            \UnicodeEncodingName{"003C}
-\DeclareTextSymbol{\textgreater}         \UnicodeEncodingName{"003E}
-\DeclareTextSymbol{\textbackslash}       \UnicodeEncodingName{"005C}
-\DeclareTextSymbol{\textasciicircum}     \UnicodeEncodingName{"005E}
-\DeclareTextSymbol{\textunderscore}      \UnicodeEncodingName{"005F}
-\DeclareTextSymbol{\textbraceleft}       \UnicodeEncodingName{"007B}
-\DeclareTextSymbol{\textbar}             \UnicodeEncodingName{"007C}
-\DeclareTextSymbol{\textbraceright}      \UnicodeEncodingName{"007D}
-\DeclareTextSymbol{\textasciitilde}      \UnicodeEncodingName{"007E}
-\DeclareTextSymbol{\textexclamdown}      \UnicodeEncodingName{"00A1}
-\DeclareTextSymbol{\textcent}            \UnicodeEncodingName{"00A2}
-\DeclareTextSymbol{\textsterling}        \UnicodeEncodingName{"00A3}
-\DeclareTextSymbol{\textcurrency}        \UnicodeEncodingName{"00A4}
-\DeclareTextSymbol{\textyen}             \UnicodeEncodingName{"00A5}
-\DeclareTextSymbol{\textbrokenbar}       \UnicodeEncodingName{"00A6}
-\DeclareTextSymbol{\textsection}         \UnicodeEncodingName{"00A7}
-\DeclareTextSymbol{\textasciidieresis}   \UnicodeEncodingName{"00A8}
-\DeclareTextSymbol{\textcopyright}       \UnicodeEncodingName{"00A9}
-\DeclareTextSymbol{\textordfeminine}     \UnicodeEncodingName{"00AA}
+\DeclareUnicodeCommand\textquotesingle {\remove at tlig{"0027}}
+\DeclareUnicodeCommand\textasciigrave  {\remove at tlig{"0060}}
+\DeclareUnicodeCommand\textquotedbl    {\remove at tlig{"0022}}
 %    \end{macrocode}
+%
+%    \begin{macrocode}
+\DeclareUnicodeSymbol{\textdollar}          {"0024}
+\DeclareUnicodeSymbol{\textless}            {"003C}
+\DeclareUnicodeSymbol{\textgreater}         {"003E}
+\DeclareUnicodeSymbol{\textbackslash}       {"005C}
+\DeclareUnicodeSymbol{\textasciicircum}     {"005E}
+\DeclareUnicodeSymbol{\textunderscore}      {"005F}
+\DeclareUnicodeSymbol{\textbraceleft}       {"007B}
+\DeclareUnicodeSymbol{\textbar}             {"007C}
+\DeclareUnicodeSymbol{\textbraceright}      {"007D}
+\DeclareUnicodeSymbol{\textasciitilde}      {"007E}
+\DeclareUnicodeSymbol{\textexclamdown}      {"00A1}
+\DeclareUnicodeSymbol{\textcent}            {"00A2}
+\DeclareUnicodeSymbol{\textsterling}        {"00A3}
+\DeclareUnicodeSymbol{\textcurrency}        {"00A4}
+\DeclareUnicodeSymbol{\textyen}             {"00A5}
+\DeclareUnicodeSymbol{\textbrokenbar}       {"00A6}
+\DeclareUnicodeSymbol{\textsection}         {"00A7}
+\DeclareUnicodeSymbol{\textasciidieresis}   {"00A8}
+\DeclareUnicodeSymbol{\textcopyright}       {"00A9}
+\DeclareUnicodeSymbol{\textordfeminine}     {"00AA}
+%    \end{macrocode}
 %  \changes{v2.0j}{2018/08/11}{Provide \cs{guillemetleft} and \cs{guillemetright}}
 %    \begin{macrocode}
-\DeclareTextSymbol{\guillemetleft}       \UnicodeEncodingName{"00AB}
+\DeclareUnicodeSymbol{\guillemetleft}       {"00AB}
 % old Adobe name
-\DeclareTextSymbol{\guillemotleft}       \UnicodeEncodingName{"00AB}
+\DeclareUnicodeSymbol{\guillemotleft}       {"00AB}
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\DeclareTextSymbol{\textlnot}            \UnicodeEncodingName{"00AC}
-\DeclareTextSymbol{\textregistered}      \UnicodeEncodingName{"00AE}
-\DeclareTextSymbol{\textasciimacron}     \UnicodeEncodingName{"00AF}
-\DeclareTextSymbol{\textdegree}          \UnicodeEncodingName{"00B0}
-\DeclareTextSymbol{\textpm}              \UnicodeEncodingName{"00B1}
-\DeclareTextSymbol{\texttwosuperior}     \UnicodeEncodingName{"00B2}
-\DeclareTextSymbol{\textthreesuperior}   \UnicodeEncodingName{"00B3}
-\DeclareTextSymbol{\textasciiacute}      \UnicodeEncodingName{"00B4}
-\DeclareTextSymbol{\textmu}              \UnicodeEncodingName{"00B5}
-\DeclareTextSymbol{\textparagraph}       \UnicodeEncodingName{"00B6}
-\DeclareTextSymbol{\textperiodcentered}  \UnicodeEncodingName{"00B7}
-\DeclareTextSymbol{\textonesuperior}     \UnicodeEncodingName{"00B9}
-\DeclareTextSymbol{\textordmasculine}    \UnicodeEncodingName{"00BA}
+\DeclareUnicodeSymbol{\textlnot}            {"00AC}
+\DeclareUnicodeSymbol{\textregistered}      {"00AE}
+\DeclareUnicodeSymbol{\textasciimacron}     {"00AF}
+\DeclareUnicodeSymbol{\textdegree}          {"00B0}
+\DeclareUnicodeSymbol{\textpm}              {"00B1}
+\DeclareUnicodeSymbol{\texttwosuperior}     {"00B2}
+\DeclareUnicodeSymbol{\textthreesuperior}   {"00B3}
+\DeclareUnicodeSymbol{\textasciiacute}      {"00B4}
+\DeclareUnicodeSymbol{\textmu}              {"00B5}
+\DeclareUnicodeSymbol{\textparagraph}       {"00B6}
+\DeclareUnicodeSymbol{\textperiodcentered}  {"00B7}
+\DeclareUnicodeSymbol{\textonesuperior}     {"00B9}
+\DeclareUnicodeSymbol{\textordmasculine}    {"00BA}
 %    \end{macrocode}
 %  \changes{v2.0j}{2018/08/11}{Provide \cs{guillemetleft} and \cs{guillemetright}}
 %    \begin{macrocode}
-\DeclareTextSymbol{\guillemetright}      \UnicodeEncodingName{"00BB}
+\DeclareUnicodeSymbol{\guillemetright}      {"00BB}
 % old Adobe name
-\DeclareTextSymbol{\guillemotright}      \UnicodeEncodingName{"00BB}
+\DeclareUnicodeSymbol{\guillemotright}      {"00BB}
 %    \end{macrocode}
 %
 %    \begin{macrocode}
-\DeclareTextSymbol{\textonequarter}      \UnicodeEncodingName{"00BC}
-\DeclareTextSymbol{\textonehalf}         \UnicodeEncodingName{"00BD}
-\DeclareTextSymbol{\textthreequarters}   \UnicodeEncodingName{"00BE}
-\DeclareTextSymbol{\textquestiondown}    \UnicodeEncodingName{"00BF}
-\DeclareTextSymbol{\AE}                  \UnicodeEncodingName{"00C6}
-\DeclareTextSymbol{\DH}                  \UnicodeEncodingName{"00D0}
-\DeclareTextSymbol{\texttimes}           \UnicodeEncodingName{"00D7}
-\DeclareTextSymbol{\O}                   \UnicodeEncodingName{"00D8}
-\DeclareTextSymbol{\TH}                  \UnicodeEncodingName{"00DE}
-\DeclareTextSymbol{\ss}                  \UnicodeEncodingName{"00DF}
-\DeclareTextSymbol{\ae}                  \UnicodeEncodingName{"00E6}
-\DeclareTextSymbol{\dh}                  \UnicodeEncodingName{"00F0}
-\DeclareTextSymbol{\textdiv}             \UnicodeEncodingName{"00F7}
-\DeclareTextSymbol{\o}                   \UnicodeEncodingName{"00F8}
-\DeclareTextSymbol{\th}                  \UnicodeEncodingName{"00FE}
-\DeclareTextSymbol{\DJ}                  \UnicodeEncodingName{"0110}
-\DeclareTextSymbol{\dj}                  \UnicodeEncodingName{"0111}
-\DeclareTextSymbol{\i}                   \UnicodeEncodingName{"0131}
-\DeclareTextSymbol{\IJ}                  \UnicodeEncodingName{"0132}
-\DeclareTextSymbol{\ij}                  \UnicodeEncodingName{"0133}
-\DeclareTextSymbol{\L}                   \UnicodeEncodingName{"0141}
-\DeclareTextSymbol{\l}                   \UnicodeEncodingName{"0142}
-\DeclareTextSymbol{\NG}                  \UnicodeEncodingName{"014A}
-\DeclareTextSymbol{\ng}                  \UnicodeEncodingName{"014B}
-\DeclareTextSymbol{\OE}                  \UnicodeEncodingName{"0152}
-\DeclareTextSymbol{\oe}                  \UnicodeEncodingName{"0153}
-\DeclareTextSymbol{\textflorin}          \UnicodeEncodingName{"0192}
-\DeclareTextSymbol{\j}                   \UnicodeEncodingName{"0237}
-\DeclareTextSymbol{\textasciicaron}      \UnicodeEncodingName{"02C7}
-\DeclareTextSymbol{\textasciibreve}      \UnicodeEncodingName{"02D8}
-\DeclareTextSymbol{\textacutedbl}        \UnicodeEncodingName{"02DD}
-\DeclareTextSymbol{\textgravedbl}        \UnicodeEncodingName{"02F5}
-\DeclareTextSymbol{\texttildelow}        \UnicodeEncodingName{"02F7}
-\DeclareTextSymbol{\textbaht}            \UnicodeEncodingName{"0E3F}
-\DeclareTextSymbol{\SS}                  \UnicodeEncodingName{"1E9E}
-\DeclareTextSymbol{\textcompwordmark}    \UnicodeEncodingName{"200C}
+\DeclareUnicodeSymbol{\textonequarter}      {"00BC}
+\DeclareUnicodeSymbol{\textonehalf}         {"00BD}
+\DeclareUnicodeSymbol{\textthreequarters}   {"00BE}
+\DeclareUnicodeSymbol{\textquestiondown}    {"00BF}
+\DeclareUnicodeSymbol{\AE}                  {"00C6}
+\DeclareUnicodeSymbol{\DH}                  {"00D0}
+\DeclareUnicodeSymbol{\texttimes}           {"00D7}
+\DeclareUnicodeSymbol{\O}                   {"00D8}
+\DeclareUnicodeSymbol{\TH}                  {"00DE}
+\DeclareUnicodeSymbol{\ss}                  {"00DF}
+\DeclareUnicodeSymbol{\ae}                  {"00E6}
+\DeclareUnicodeSymbol{\dh}                  {"00F0}
+\DeclareUnicodeSymbol{\textdiv}             {"00F7}
+\DeclareUnicodeSymbol{\o}                   {"00F8}
+\DeclareUnicodeSymbol{\th}                  {"00FE}
+\DeclareUnicodeSymbol{\DJ}                  {"0110}
+\DeclareUnicodeSymbol{\dj}                  {"0111}
+\DeclareUnicodeSymbol{\i}                   {"0131}
+\DeclareUnicodeSymbol{\IJ}                  {"0132}
+\DeclareUnicodeSymbol{\ij}                  {"0133}
+\DeclareUnicodeSymbol{\L}                   {"0141}
+\DeclareUnicodeSymbol{\l}                   {"0142}
+\DeclareUnicodeSymbol{\NG}                  {"014A}
+\DeclareUnicodeSymbol{\ng}                  {"014B}
+\DeclareUnicodeSymbol{\OE}                  {"0152}
+\DeclareUnicodeSymbol{\oe}                  {"0153}
+\DeclareUnicodeSymbol{\textflorin}          {"0192}
+\DeclareUnicodeSymbol{\j}                   {"0237}
+\DeclareUnicodeSymbol{\textasciicaron}      {"02C7}
+\DeclareUnicodeSymbol{\textasciibreve}      {"02D8}
+\DeclareUnicodeSymbol{\textacutedbl}        {"02DD}
+\DeclareUnicodeSymbol{\textgravedbl}        {"02F5}
+\DeclareUnicodeSymbol{\texttildelow}        {"02F7}
+\DeclareUnicodeSymbol{\textbaht}            {"0E3F}
+\DeclareUnicodeSymbol{\SS}                  {"1E9E}
+\DeclareUnicodeSymbol{\textcompwordmark}    {"200C}
 %    \end{macrocode}
 %    
 % \changes{v2.0u}{2021/02/19}{Add \cs{textnonbreakinghyphen}, \cs{textfiguredash}
 %      and \cs{texthorizontalbar} (gh/404)}
 %    \begin{macrocode}
-%\DeclareTextSymbol{\textnonbreakinghyphen} \UnicodeEncodingName{"2011}
-%\DeclareTextSymbol{\textfiguredash}        \UnicodeEncodingName{"2012}
-\DeclareTextSymbol{\textendash}          \UnicodeEncodingName{"2013}
-\DeclareTextSymbol{\textemdash}          \UnicodeEncodingName{"2014}
-%\DeclareTextSymbol{\texthorizontalbar}   \UnicodeEncodingName{"2015}
+%\DeclareUnicodeSymbol{\textnonbreakinghyphen} {"2011}
+%\DeclareUnicodeSymbol{\textfiguredash}        {"2012}
+\DeclareUnicodeSymbol{\textendash}          {"2013}
+\DeclareUnicodeSymbol{\textemdash}          {"2014}
+%\DeclareUnicodeSymbol{\texthorizontalbar}   {"2015}
 %    \end{macrocode}
 %    Unfortunately some fonts do not implement \texttt{"2011}, \texttt{"2012} and/or
 %    \texttt{"2015} (including the \LaTeX{} default fonts for Unicode
@@ -3175,63 +3205,63 @@
 %    The \verb=\nobreak\hskip\z@= is there to prevent a break after
 %    the hyphen but allow later breaks in the remainder of the word. 
 %    \begin{macrocode}
-\DeclareTextCommand{\textnonbreakinghyphen} \UnicodeEncodingName
+\DeclareUnicodeCommand{\textnonbreakinghyphen} 
      {\iffontchar\font "2011 \char "2011 \else \mbox{-}\nobreak\hskip\z@ \fi}
-\DeclareTextCommand{\textfiguredash}     \UnicodeEncodingName
+\DeclareUnicodeCommand{\textfiguredash}     
      {\iffontchar\font "2012 \char "2012 \else \char "2013 \fi}
-\DeclareTextCommand{\texthorizontalbar}     \UnicodeEncodingName
+\DeclareUnicodeCommand{\texthorizontalbar}     
      {\iffontchar\font "2015 \char "2015 \else \char "2014 \fi}
 %    \end{macrocode}
 %    
 %    \begin{macrocode}
-\DeclareTextSymbol{\textbardbl}          \UnicodeEncodingName{"2016}
-\DeclareTextSymbol{\textquoteleft}       \UnicodeEncodingName{"2018}
-\DeclareTextSymbol{\textquoteright}      \UnicodeEncodingName{"2019}
-\DeclareTextSymbol{\quotesinglbase}      \UnicodeEncodingName{"201A}
-\DeclareTextSymbol{\textquotedblleft}    \UnicodeEncodingName{"201C}
-\DeclareTextSymbol{\textquotedblright}   \UnicodeEncodingName{"201D}
-\DeclareTextSymbol{\quotedblbase}        \UnicodeEncodingName{"201E}
-\DeclareTextSymbol{\textdagger}          \UnicodeEncodingName{"2020}
-\DeclareTextSymbol{\textdaggerdbl}       \UnicodeEncodingName{"2021}
-\DeclareTextSymbol{\textbullet}          \UnicodeEncodingName{"2022}
-\DeclareTextSymbol{\textellipsis}        \UnicodeEncodingName{"2026}
-\DeclareTextSymbol{\textperthousand}     \UnicodeEncodingName{"2030}
-\DeclareTextSymbol{\textpertenthousand}  \UnicodeEncodingName{"2031}
-\DeclareTextSymbol{\guilsinglleft}       \UnicodeEncodingName{"2039}
-\DeclareTextSymbol{\guilsinglright}      \UnicodeEncodingName{"203A}
-\DeclareTextSymbol{\textreferencemark}   \UnicodeEncodingName{"203B}
-\DeclareTextSymbol{\textinterrobang}     \UnicodeEncodingName{"203D}
-\DeclareTextSymbol{\textfractionsolidus} \UnicodeEncodingName{"2044}
-\DeclareTextSymbol{\textlquill}          \UnicodeEncodingName{"2045}
-\DeclareTextSymbol{\textrquill}          \UnicodeEncodingName{"2046}
-\DeclareTextSymbol{\textdiscount}        \UnicodeEncodingName{"2052}
-\DeclareTextSymbol{\textcolonmonetary}   \UnicodeEncodingName{"20A1}
-\DeclareTextSymbol{\textlira}            \UnicodeEncodingName{"20A4}
-\DeclareTextSymbol{\textnaira}           \UnicodeEncodingName{"20A6}
-\DeclareTextSymbol{\textwon}             \UnicodeEncodingName{"20A9}
-\DeclareTextSymbol{\textdong}            \UnicodeEncodingName{"20AB}
-\DeclareTextSymbol{\texteuro}            \UnicodeEncodingName{"20AC}
-\DeclareTextSymbol{\textpeso}            \UnicodeEncodingName{"20B1}
-\DeclareTextSymbol{\textcelsius}         \UnicodeEncodingName{"2103}
-\DeclareTextSymbol{\textnumero}          \UnicodeEncodingName{"2116}
-\DeclareTextSymbol{\textcircledP}        \UnicodeEncodingName{"2117}
-\DeclareTextSymbol{\textrecipe}          \UnicodeEncodingName{"211E}
-\DeclareTextSymbol{\textservicemark}     \UnicodeEncodingName{"2120}
-\DeclareTextSymbol{\texttrademark}       \UnicodeEncodingName{"2122}
-\DeclareTextSymbol{\textohm}             \UnicodeEncodingName{"2126}
-\DeclareTextSymbol{\textmho}             \UnicodeEncodingName{"2127}
-\DeclareTextSymbol{\textestimated}       \UnicodeEncodingName{"212E}
-\DeclareTextSymbol{\textleftarrow}       \UnicodeEncodingName{"2190}
-\DeclareTextSymbol{\textuparrow}         \UnicodeEncodingName{"2191}
-\DeclareTextSymbol{\textrightarrow}      \UnicodeEncodingName{"2192}
-\DeclareTextSymbol{\textdownarrow}       \UnicodeEncodingName{"2193}
-\DeclareTextSymbol{\textminus}           \UnicodeEncodingName{"2212}
+\DeclareUnicodeSymbol{\textbardbl}          {"2016}
+\DeclareUnicodeSymbol{\textquoteleft}       {"2018}
+\DeclareUnicodeSymbol{\textquoteright}      {"2019}
+\DeclareUnicodeSymbol{\quotesinglbase}      {"201A}
+\DeclareUnicodeSymbol{\textquotedblleft}    {"201C}
+\DeclareUnicodeSymbol{\textquotedblright}   {"201D}
+\DeclareUnicodeSymbol{\quotedblbase}        {"201E}
+\DeclareUnicodeSymbol{\textdagger}          {"2020}
+\DeclareUnicodeSymbol{\textdaggerdbl}       {"2021}
+\DeclareUnicodeSymbol{\textbullet}          {"2022}
+\DeclareUnicodeSymbol{\textellipsis}        {"2026}
+\DeclareUnicodeSymbol{\textperthousand}     {"2030}
+\DeclareUnicodeSymbol{\textpertenthousand}  {"2031}
+\DeclareUnicodeSymbol{\guilsinglleft}       {"2039}
+\DeclareUnicodeSymbol{\guilsinglright}      {"203A}
+\DeclareUnicodeSymbol{\textreferencemark}   {"203B}
+\DeclareUnicodeSymbol{\textinterrobang}     {"203D}
+\DeclareUnicodeSymbol{\textfractionsolidus} {"2044}
+\DeclareUnicodeSymbol{\textlquill}          {"2045}
+\DeclareUnicodeSymbol{\textrquill}          {"2046}
+\DeclareUnicodeSymbol{\textdiscount}        {"2052}
+\DeclareUnicodeSymbol{\textcolonmonetary}   {"20A1}
+\DeclareUnicodeSymbol{\textlira}            {"20A4}
+\DeclareUnicodeSymbol{\textnaira}           {"20A6}
+\DeclareUnicodeSymbol{\textwon}             {"20A9}
+\DeclareUnicodeSymbol{\textdong}            {"20AB}
+\DeclareUnicodeSymbol{\texteuro}            {"20AC}
+\DeclareUnicodeSymbol{\textpeso}            {"20B1}
+\DeclareUnicodeSymbol{\textcelsius}         {"2103}
+\DeclareUnicodeSymbol{\textnumero}          {"2116}
+\DeclareUnicodeSymbol{\textcircledP}        {"2117}
+\DeclareUnicodeSymbol{\textrecipe}          {"211E}
+\DeclareUnicodeSymbol{\textservicemark}     {"2120}
+\DeclareUnicodeSymbol{\texttrademark}       {"2122}
+\DeclareUnicodeSymbol{\textohm}             {"2126}
+\DeclareUnicodeSymbol{\textmho}             {"2127}
+\DeclareUnicodeSymbol{\textestimated}       {"212E}
+\DeclareUnicodeSymbol{\textleftarrow}       {"2190}
+\DeclareUnicodeSymbol{\textuparrow}         {"2191}
+\DeclareUnicodeSymbol{\textrightarrow}      {"2192}
+\DeclareUnicodeSymbol{\textdownarrow}       {"2193}
+\DeclareUnicodeSymbol{\textminus}           {"2212}
 
 %    \end{macrocode}
 %  \changes{v2.0k}{2018/11/18}{Provide \cs{Hwithstroke} and \cs{hwithstroke}}
 %    \begin{macrocode}
-\DeclareTextSymbol{\Hwithstroke}         \UnicodeEncodingName{"0126}
-\DeclareTextSymbol{\hwithstroke}         \UnicodeEncodingName{"0127}
+\DeclareUnicodeSymbol{\Hwithstroke}         {"0126}
+\DeclareUnicodeSymbol{\hwithstroke}         {"0127}
 %    \end{macrocode}
 %
 % Not all fonts have U+2217 but using U+002A requires some adjustment.
@@ -3238,7 +3268,7 @@
 % \changes{v2.0t}{2021/02/17}{Adjust values for
 %        \cs{textasteriskcentered} To match TS1 definition (gh/502)}
 %    \begin{macrocode}
-\DeclareTextCommand{\textasteriskcentered}\UnicodeEncodingName{%
+\DeclareUnicodeCommand{\textasteriskcentered}{%
   \iffontchar\font"2217 \char"2217 \else
     \begingroup
       \fontsize
@@ -3251,36 +3281,39 @@
 }
 %    \end{macrocode}
 %    \begin{macrocode}
-\DeclareTextSymbol{\textsurd}            \UnicodeEncodingName{"221A}
-\DeclareTextSymbol{\textlangle}          \UnicodeEncodingName{"2329}
-\DeclareTextSymbol{\textrangle}          \UnicodeEncodingName{"232A}
-\DeclareTextSymbol{\textblank}           \UnicodeEncodingName{"2422}
-\DeclareTextSymbol{\textvisiblespace}    \UnicodeEncodingName{"2423}
-\DeclareTextSymbol{\textopenbullet}      \UnicodeEncodingName{"25E6}
-\DeclareTextSymbol{\textbigcircle}       \UnicodeEncodingName{"25EF}
-\DeclareTextSymbol{\textmusicalnote}     \UnicodeEncodingName{"266A}
-\DeclareTextSymbol{\textmarried}         \UnicodeEncodingName{"26AD}
-\DeclareTextSymbol{\textdivorced}        \UnicodeEncodingName{"26AE}
-\DeclareTextSymbol{\textinterrobangdown} \UnicodeEncodingName{"2E18}
+\DeclareUnicodeSymbol{\textsurd}            {"221A}
+\DeclareUnicodeSymbol{\textlangle}          {"2329}
+\DeclareUnicodeSymbol{\textrangle}          {"232A}
+\DeclareUnicodeSymbol{\textblank}           {"2422}
+\DeclareUnicodeSymbol{\textvisiblespace}    {"2423}
+\DeclareUnicodeSymbol{\textopenbullet}      {"25E6}
+\DeclareUnicodeSymbol{\textbigcircle}       {"25EF}
+\DeclareUnicodeSymbol{\textmusicalnote}     {"266A}
+\DeclareUnicodeSymbol{\textmarried}         {"26AD}
+\DeclareUnicodeSymbol{\textdivorced}        {"26AE}
+\DeclareUnicodeSymbol{\textinterrobangdown} {"2E18}
 %    \end{macrocode}
 % Accents must be declared before the composites that use them.
 %    \begin{macrocode}
-\DeclareUnicodeAccent{\`}                \UnicodeEncodingName{"0300}
-\DeclareUnicodeAccent{\'}                \UnicodeEncodingName{"0301}
-\DeclareUnicodeAccent{\^}                \UnicodeEncodingName{"0302}
-\DeclareUnicodeAccent{\~}                \UnicodeEncodingName{"0303}
-\DeclareUnicodeAccent{\=}                \UnicodeEncodingName{"0304}
-\DeclareUnicodeAccent{\u}                \UnicodeEncodingName{"0306}
-\DeclareUnicodeAccent{\.}                \UnicodeEncodingName{"0307}
-\DeclareUnicodeAccent{\"}                \UnicodeEncodingName{"0308}
-\DeclareUnicodeAccent{\r}                \UnicodeEncodingName{"030A}
-\DeclareUnicodeAccent{\H}                \UnicodeEncodingName{"030B}
-\DeclareUnicodeAccent{\v}                \UnicodeEncodingName{"030C}
-\DeclareUnicodeAccent{\b}                \UnicodeEncodingName{"0332}
-\DeclareUnicodeAccent{\d}                \UnicodeEncodingName{"0323}
-\DeclareUnicodeAccent{\c}                \UnicodeEncodingName{"0327}
-\DeclareUnicodeAccent{\k}                \UnicodeEncodingName{"0328}
-\DeclareTextCommand\textcommabelow       \UnicodeEncodingName[1]
+\DeclareUnicodeAccent{\`}{"0300}
+\DeclareUnicodeAccent{\'}{"0301}
+\DeclareUnicodeAccent{\^}{"0302}
+\DeclareUnicodeAccent{\~}{"0303}
+\DeclareUnicodeAccent{\=}{"0304}
+\DeclareUnicodeAccent{\u}{"0306}
+\DeclareUnicodeAccent{\.}{"0307}
+\DeclareUnicodeAccent{\"}{"0308}
+\DeclareUnicodeAccent{\r}{"030A}
+\DeclareUnicodeAccent{\H}{"030B}
+\DeclareUnicodeAccent{\v}{"030C}
+\DeclareUnicodeAccent{\b}{"0332}
+\DeclareUnicodeAccent{\d}{"0323}
+\DeclareUnicodeAccent{\c}{"0327}
+\DeclareUnicodeAccent{\k}{"0328}
+%    \end{macrocode}
+%    The odd one out:
+%    \begin{macrocode}
+\DeclareUnicodeCommand\textcommabelow[1]
   {\hmode at bgroup\ooalign{\null#1\crcr\hidewidth\raise-.31ex
    \hbox{\check at mathfonts\fontsize\ssf at size\z@
    \math at fontsfalse\selectfont,}\hidewidth}\egroup}
@@ -3743,4 +3776,12 @@
 %
 % \Finale
 %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \endinput
+
+^^A  Needed for emacs
+^^A
+^^A  Local Variables: 
+^^A  mode: latex
+^^A  coding: utf-8-unix
+^^A  End: 

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltoutenc.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltoutenc.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltoutenc.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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-2021
+Copyright (C) 1993-2022
 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltoutput.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -120,7 +120,7 @@
 % \changes{v1.2n}{2015/02/21}
 %         {Removed autoload code}
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \def \ie {i.e.~}
 % \def \eg {e.g.~}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltpage.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltpage.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltpage.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -112,7 +112,7 @@
 % command (|\ps at ...|) to |\markboth| for setting the heading or to
 % |\@gobbletwo| to do nothing.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %    \begin{macrocode}
 %<*2ekernel>

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltpageno.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltpageno.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltpageno.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -77,7 +77,7 @@
 % numbered  i, ii, etc.
 %
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %    \begin{macrocode}
 %<*2ekernel>

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltpar.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltpar.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltpar.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -96,7 +96,7 @@
 % \end{itemize}
 %
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \subsection{Implementation}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltpara.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltpara.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltpara.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -123,7 +123,7 @@
 %    \verb=\hbox{a\par b}= is ignored, but \verb=$a\par b$= would complain.
 %
 %    If this primitive ends the paragraph it does some special
-%    \enquote{end of horizontal list} processing, then calls \TeX{}’s paragraph
+%    \enquote{end of horizontal list} processing, then calls \TeX{}'s paragraph
 %    builder; this breaks the horizontal list into lines and then these
 %    lines are added as boxes to the enclosing vertical list and
 %    \TeX{} returns to vertical mode.
@@ -665,7 +665,7 @@
 %
 %
 %
-% \StopEventually{\setlength\IndexMin{200pt}  \PrintIndex  }
+% \MaybeStop{\setlength\IndexMin{200pt}  \PrintIndex  }
 %
 %
 % \section{The Implementation}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltpictur.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltpictur.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltpictur.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -83,7 +83,7 @@
 % variant of this command, |\bezier|, is defined, in which the first
 % argument is not optional.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %
 % \changes{v0.1a}{1994/03/07}{Initial version, split from latex.dtx}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltplain.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltplain.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltplain.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -102,7 +102,7 @@
 % \LaTeX{} uses its own output routine, so most of the plain one was
 % removed.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltsect.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltsect.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltsect.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -73,7 +73,7 @@
 % document level commands are defined in the class files, in terms of
 % these commands.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %
 % \changes{v1.0a}{1994/03/04}{Initial version, split from latex.dtx}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltshipout.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltshipout.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltshipout.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %%
-%% Copyright (C) 2020-2021
+%% Copyright (C) 2020-2022
 %%               Frank Mittelbach, LaTeX Team
 %%
 %
@@ -32,8 +32,8 @@
 %%% From File: ltshipout.dtx
 %
 %    \begin{macrocode}
-\providecommand\ltshipoutversion{v1.0j}
-\providecommand\ltshipoutdate{2021/06/09}
+\providecommand\ltshipoutversion{v1.0l}
+\providecommand\ltshipoutdate{2022/01/06}
 %    \end{macrocode}
 %
 %<*driver>
@@ -327,7 +327,10 @@
 % \subsection{Legacy \LaTeX{} commands}
 %
 % \begin{function}{\AtBeginDvi,\AtEndDvi}
-%    \cs{AtBeginDvi} is the existing \LaTeXe{} interface to fill the
+%    \begin{syntax}
+%      \cs{AtBeginDvi} \Arg{code}
+%    \end{syntax}
+ %    \cs{AtBeginDvi} is the existing \LaTeXe{} interface to fill the
 %    \hook{shipout/firstpage} hook. This is not really a good name
 %    as it is not just supporting \texttt{.dvi} but also \texttt{.pdf}
 %    output or \texttt{.xdv}.
@@ -335,17 +338,26 @@
 %    \cs{AtEndDvi} is the counterpart that was not available in the
 %    kernel but only through the package \pkg{atenddvi}. It fills the
 %    \hook{shipout/lastpage} hook.
+%
+%    Neither interface can set a code label but uses the current default label.
+%
 % \end{function}
 %
 %    As these two wrappers have been available for a long time we
-%    continue offering them. However, for new code we suggest using
-%    the high-level hook management commands directly instead of
-%    ``randomly-named'' wrappers.  This will lead to code that is
-%    easier to understand and to maintain.  For this reason we do not
-%    provide any other wrapper commands for the above hooks in the
-%    kernel.
+%    continue offering them (but not enhancing them, e.g., by providing
+%    support for code labels).
 %
+%    For new code we strongly suggest using the high-level hook
+%    management commands directly instead of ``randomly-named''
+%    wrappers.  This will lead to code that is easier to understand
+%    and to maintain and it also allows you to set code labels if
+%    needed.
 %
+%    For this reason we do not provide any other ``new'' wrapper
+%    commands for the above hooks in the kernel, but only keep
+%    the existing ones for backward compatibility.
+%
+%
 % \subsection{Special commands for use inside the hooks}
 %
 % \begin{function}{\DiscardShipoutBox,\shipout_discard:}
@@ -644,7 +656,7 @@
 % \end{function}
 %
 %
-% \StopEventually{\setlength\IndexMin{200pt}  \PrintIndex  }
+% \MaybeStop{\setlength\IndexMin{200pt}  \PrintIndex  }
 %
 %
 % \section{The Implementation}
@@ -734,21 +746,21 @@
 %    \begin{macrocode}
 \sys_if_engine_luatex:TF
   {
-    \newluafunction \@@_finalize_box:
+    \newprotectedluacmd \@@_finalize_box:
     \exp_args:Nx \everyjob {
       \exp_not:V \everyjob
       \exp_not:N \lua_now:n {
         luatexbase.create_callback('pre_shipout_filter', 'list')
         local~call, getbox, setbox = luatexbase.call_callback, tex.getbox, tex.setbox~
-        lua.get_functions_table()[\the \@@_finalize_box:] = function()
-          local~result = call('pre_shipout_filter', getbox(\the \l_shipout_box))
-          if~not (result == true) then~
+        lua.get_functions_table()[\the \allocationnumber] = function()
+          local~head = getbox(\the \l_shipout_box)
+          local~result = call('pre_shipout_filter', head)
+          if~not (result == head) then~
             setbox(\the \l_shipout_box, result~or~nil)
           end~
         end
       }
     }
-    \protected \luadef \@@_finalize_box: \the \@@_finalize_box:
   } {
     \cs_set_eq:NN \@@_finalize_box: \scan_stop:
   }
@@ -1966,8 +1978,10 @@
 %
 %
 %  \begin{macro}{\AtEndDvi}
-%    This package has only one public command to simulating it is easy
+%    This package has only one public command, so simulating it is easy
 %    and actually sensible to provide as part of the kernel.
+% \changes{v1.0l}{2022/01/06}{Correctly simulate \cs{AtEndDvi} without
+%    extending the syntax}
 %    \begin{macrocode}
 %</2ekernel>
 %<*2ekernel|latexrelease>
@@ -1974,7 +1988,7 @@
 %<latexrelease>\IncludeInRelease{2020/10/01}%
 %<latexrelease>                 {\AtEndDvi}{atenddvi emulation}%
 \ExplSyntaxOn
-\cs_new_protected:Npn \AtEndDvi {\AddToHook{shipout/lastpage}}
+\cs_new_protected:Npn \AtEndDvi #1 {\AddToHook{shipout/lastpage}{#1}}
 \ExplSyntaxOff
 %    \end{macrocode}
 %    As the package is integrate we prevent loading (no need to roll that back):
@@ -2041,9 +2055,11 @@
 %
 %  \begin{macro}{\AtBeginShipout,\AtBeginShipoutNext}
 %    Filling hooks
+% \changes{v1.0l}{2022/01/06}{Correctly simulate \cs{AtBeginShipout}
+%    and \cs{AtBeginShipoutNext} without extending the syntax}
 %    \begin{macrocode}
-\protected \def \AtBeginShipout     {\AddToHook{shipout/before}}
-\protected \def \AtBeginShipoutNext {\AddToHookNext{shipout/before}}
+\protected\long\def\AtBeginShipout     #1{\AddToHook{shipout/before}{#1}}
+\protected\long\def\AtBeginShipoutNext #1{\AddToHookNext{shipout/before}{#1}}
 %    \end{macrocode}
 %  \end{macro}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltspace.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltspace.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltspace.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -114,7 +114,7 @@
 % |\restorecr| : restores <CR> to its usual meaning.
 %
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \subsection{Chris' comments}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/lttab.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/lttab.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/lttab.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -74,7 +74,7 @@
 % \LaTeX\ Companion}. Use the |array| package to obtain the extended
 % version.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %
 % \changes{v1.0a}{1994/03/04}{Initial version, split from latex.dtx}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/lttextcomp.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/lttextcomp.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/lttextcomp.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2019-2021
+% Copyright (C) 2019-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -25,9 +25,10 @@
 % and covered by LPPL is defined by the unpacking scripts (with
 % extension .ins) which are part of the distribution.
 %
+%%% From File: lttextcomp.dtx
+%
 % \fi
 %
-%%% From File: lttextcomp.dtx
 %
 % \iffalse
 %
@@ -36,7 +37,7 @@
 %
 %
 \ProvidesFile{lttextcomp.dtx}
-             [2021/04/16 v1.0f LaTeX Kernel (text companion symbols)]
+             [2021/12/09 v1.0f LaTeX Kernel (text companion symbols)]
 % \iffalse
 \documentclass{ltxdoc}
 \begin{document}
@@ -68,7 +69,7 @@
 %
 %
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \changes{v1.0e}{2021/03/19}
 %         {Use \cs{NewModuleRelease}}
@@ -470,16 +471,17 @@
 %    \end{macrocode}
 %
 %
-%    In the following sections the remaining default definitions are ordered by
-%    sub-encoding in which they are become unavailable (i.e., they are
-%    not provided in the sub-encoding with that number and all
-%    sub-encodings with higher numbers.
+%    In the following sections the remaining default definitions are
+%    ordered by sub-encoding in which they are become
+%    \textbf{unavailable}, i.e., they are not provided in the
+%    sub-encoding with that number and all sub-encodings with higher
+%    numbers.
 %
 %    Thus the symbols that are available in sub-encoding $x$ are the
-%    symbols above (always available) and the symbols list in the
-%    sections for sub-encodings $x+1$ and higher.
+%    symbols above (always available) and the symbols listed as becoming
+%    unavailable in sub-encodings $x+1$ and higher.
 %
-% \subsection{Sub-encoding \texttt{1} (drop symbols not working in
+% \subsection{Unavailable in sub-encoding \texttt{1} and higher (drop symbols not working in
 %    Latin Modern)}
 %
 %    The \cs{textcircled} is available but the glyph is simply too
@@ -493,7 +495,7 @@
 %
 %
 %
-% \subsection{Sub-encoding \texttt{2} (majority of new OTF fonts via autoinst)}
+% \subsection{Unavailable in sub-encoding \texttt{2}  (majority of new OTF fonts via autoinst) and higher}
 %
 %    \begin{macrocode}
 \DeclareTextCommandDefault{\t}
@@ -722,7 +724,7 @@
 %
 %
 %
-% \subsection{Sub-encoding \texttt{3}}
+% \subsection{Unavailable in sub-encoding \texttt{3} and higher}
 %
 %    Sub-encoding \texttt{2} is the one where we loose many
 %    symbols. In the higher-numbered sub-encodings we see only a few
@@ -738,7 +740,7 @@
 %
 %
 %
-% \subsection{Sub-encoding \texttt{4}}
+% \subsection{Unavailable in sub-encoding \texttt{4} and higher}
 %
 %    \begin{macrocode}
 \DeclareTextCommandDefault{\textcolonmonetary}
@@ -763,7 +765,7 @@
 %
 %
 %
-% \subsection{Sub-encoding \texttt{5} (most older PS fonts)}
+% \subsection{Unavailable in sub-encoding \texttt{5} (most older PS fonts) and higher}
 %
 %    Most older PS fonts (supported in \TeX{} since the early nineties
 %    when virtual fonts became available) are sorted under this
@@ -790,7 +792,7 @@
 %
 %
 %
-% \subsection{Sub-encoding \texttt{6}}
+% \subsection{Unavailable in sub-encoding \texttt{6} and higher}
 %
 %    \begin{macrocode}
 \DeclareTextCommandDefault{\textflorin}
@@ -801,7 +803,7 @@
 %
 %
 %
-% \subsection{Sub-encoding \texttt{7}}
+% \subsection{Unavailable in sub-encoding \texttt{7} and higher}
 %
 %    \begin{macrocode}
 \DeclareTextCommandDefault{\textfractionsolidus}
@@ -816,7 +818,7 @@
 %
 %
 %
-% \subsection{Sub-encoding \texttt{8}}
+% \subsection{Unavailable in sub-encoding \texttt{8} and higher}
 %
 %    \begin{macrocode}
 \DeclareTextCommandDefault{\textblank}
@@ -837,7 +839,7 @@
 %
 %
 %
-% \subsection{Sub-encoding \texttt{9} (most missing)}
+% \subsection{Unavailable in Sub-encoding \texttt{9} (most missing)}
 %
 %    \begin{macrocode}
 \DeclareTextCommandDefault{\textcelsius}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltthm.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltthm.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltthm.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -80,7 +80,7 @@
 %  The way \meta{name} environments are numbered can be changed by
 %  redefining |\the|\meta{name}.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %
 % \changes{v1.0a}{1994/03/28}{Initial version, split from latex.dtx}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltvers.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltvers.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltvers.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -61,7 +61,7 @@
 % \LaTeX, and set |\everyjob| so that it is printed at the start of
 % every \LaTeX\ run.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \changes{v1.0g}{1996/11/28}
 %     {Check for old format modified /2319}
@@ -115,7 +115,7 @@
    {2022-06-01}
 %</2ekernel|latexrelease>
 %<*2ekernel>
-\def\patch at level{0}
+\def\patch at level{-1}
 %    \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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltxdoc.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -30,7 +30,7 @@
 %
 %<class>\NeedsTeXFormat{LaTeX2e}
 %<class>\ProvidesClass{ltxdoc}
-%<class>         [2020/12/05 v2.1b Standard LaTeX documentation class]
+%<class>         [2021/12/07 v2.1d Standard LaTeX documentation class]
 %
 %<*driver>
 \documentclass{ltxdoc}
@@ -102,7 +102,7 @@
 % \PassOptionsToClass{a4paper}{article}
 %\end{verbatim}
 %
-% All the source files are in two parts, separated by |\StopEventually|.
+% All the source files are in two parts, separated by |\MaybeStop|.
 % The first part (should) contain `user' documentation. The second part
 % is a full documented listing of the source code. The |doc| package
 % provides the command |\OnlyDescription| which suppresses the code
@@ -156,7 +156,7 @@
 % \includeonly{ltvers,ltboxes}
 %\end{verbatim}
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %
 % \section{Options}
@@ -163,9 +163,17 @@
 %
 %    \begin{macrocode}
 %<*class>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
 \DeclareOption{a5paper}{\@latexerr{Option not supported}%
    {}}
 %    \end{macrocode}
+%    Prevent loading of a config file.
+%    \begin{macrocode}
+\newif\ifltxdoc at load@cfg@ \ltxdoc at load@cfg at true
+\DeclareOption{nocfg}{\ltxdoc at load@cfg at false}
+%    \end{macrocode}
 %
 %    \begin{macrocode}
 \DeclareOption*{%
@@ -172,23 +180,29 @@
     \PassOptionsToClass  {\CurrentOption}{article}}
 %    \end{macrocode}
 %
-% \section{Configuration}
+% \section{Option Processing}
+%
+%    \begin{macrocode}
+\ProcessOptions
+%    \end{macrocode}
+%
+% \section{Local configuration}
 % Input a local configuration file, if it exists.
 %    \begin{macrocode}
+\ifltxdoc at load@cfg@
 \InputIfFileExists{ltxdoc.cfg}
            {\typeout{*************************************^^J%
                      * Local config file ltxdoc.cfg used^^J%
                      *************************************}}
            {}
+\else
+   \typeout{*************************************^^J%
+            * Local config file ignored^^J%
+            *************************************}
+\fi
 %    \end{macrocode}
 %
 %
-% \section{Option Processing}
-%
-%    \begin{macrocode}
-\ProcessOptions
-%    \end{macrocode}
-%
 % \section{Loading article and doc}
 %
 %    \begin{macrocode}
@@ -256,7 +270,7 @@
 % arguments. It can \emph{not} be use to record commands that are defined as
 %    ``|\outer|'' nor is it possible to use it on conditionals such as
 %    |\iftrue| or  defined by |\newif|.
-% |\cs{foo}| also prints |\foo|, for those who prefer that
+% |\cs{foo}| already available with the \texttt{doc} package also prints |\foo|, for those who prefer that
 % syntax. (This second form can be used to record all types of command so the
 %    above restrictions do not apply.
 % \begin{macro}{\cmd}
@@ -266,7 +280,7 @@
 %    \begin{macrocode}
 \def\cmd#1{\cs{\expandafter\cmd at to@cs\string#1}}
 \def\cmd at to@cs#1#2{\char\number`#2\relax}
-\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}}
+%\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}}     % already part of doc.sty
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -602,5 +616,58 @@
 \def\task#1#2{}
 %</class>
 %    \end{macrocode}
+%
+%
+%
+% \section{Configuration file}
+%
+%
+%    \begin{macrocode}
+%<*cfg>
+%
+% This is the ltxdoc configuration file we use to format the LaTeX
+% kernel sources.
+%
+%
+% Copyright 2006, 2007, 2011 Heiko Oberdiek
+% Copyright 2014-2021 The LaTeX Project
+% 
+
+\ProvidesFile{ltxdoc.cfg}%
+  [2021/12/07 v2.0c ltxdoc.cls configuration (LaTeX Project)]
+\PassOptionsToClass{a4paper}{article}
+
+% hyperref and hypdoc are now loaded late (or by the user) so we have to wait
+% with any adjustments until that has happened
+
+\AddToHook{package/hyperref/after}{%
+%%  \RequirePackage{hypdoc}%       % this is now triggered by doc
+  \RequirePackage{pdftexcmds}\relax
+  \ifnum\pdf at strcmp{\jobname}{inputenc}=0 %
+    \hypersetup{pdfencoding=auto}%
+    \pdfstringdefDisableCommands{%
+      \def\meta#1{% inputenc.dtx
+        \9060\010#1\9060\011%
+      }%
+    }%
+  \else
+  \fi
+  \pdfstringdefDisableCommands{%
+    \let\env\relax % longtable.dtx
+    \let\mytt\relax % tabularx.dtx
+  }%
+}
+
+% This should work well for documentation of packages outside the
+% LaTeX kernel, but if not, you can prevent the loading with the
+% option "nocfg", i.e.,
+%
+%   \documentclass[nocfg]{ltxdoc]
+%
+% or by providing your own config file
+
+\endinput
+%</cfg>
+%    \end{macrocode}
 % \Finale
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/ltxref.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/ltxref.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/ltxref.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -88,7 +88,7 @@
 %  a space on either side.
 %
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \subsection{Cross Referencing}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/makeindx.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/makeindx.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/makeindx.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -83,7 +83,7 @@
 %    \texttt{book} document classes, but works with other classes as
 %    well. It makes |\flushbottom| the default.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{The {\sc docstrip} modules}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/makeindx.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/makeindx.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/makeindx.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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-2021
+Copyright (C) 1993-2022
 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/newdc.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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-2021
+Copyright (C) 1993-2022
 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/newlfont.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -84,7 +84,7 @@
 %    NFSS1, i.e., to change one font attribute without resetting the
 %    other attributes.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %
 % \section{The Code}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/nfssfont.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/nfssfont.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/nfssfont.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -82,7 +82,7 @@
 % the moment only a crude adaption of the test program for the
 % Computer Modern fonts by Donald Knuth.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{A driver for this document}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/nfssfont.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/nfssfont.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/nfssfont.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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-2021
+Copyright (C) 1993-2022
 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/olddc.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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-2021
+Copyright (C) 1993-2022
 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/oldlfont.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -95,7 +95,7 @@
 % \end{tabular}
 % \end{center}
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \changes{v2.2k}{1995/11/29}{Remove duplicate driver code.}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/preload.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/preload.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/preload.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -131,7 +131,7 @@
 %    \end{quote}
 %
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{Module switches for the \dst{} program}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/base/proc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/proc.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/proc.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -73,7 +73,7 @@
 %</driver>
 %<+class>\ProvidesClass{proc}
 %<+style>\ProvidesFile{proc.sty}
-              [2020/11/23 v1.3l
+              [2021/12/09 v1.3m
 %<+class>               Standard LaTeX document class]
 %<+style>               LaTeX 2.09 compatibility style option `proc']
 %    \end{macrocode}
@@ -131,7 +131,7 @@
 %    should appear after any |\footnote| commands that produce
 %    footnotes for the first column.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{The {\sc docstrip} modules}
 %
@@ -338,10 +338,18 @@
 %    \begin{macrocode}
 \let\@oddhead\@empty
 \let\@evenhead\@empty
-\def\@oddfoot{\normalfont\rightmark \hfil
-              \pagename{} \thepage}
-\def\@evenfoot{\@oddfoot}
+\def\@oddfoot{\rightmark \hfil \pagename{} \thepage}
 %    \end{macrocode}
+%    If the \texttt{twoside} option is passed to the class we provide
+%    a different footer that shows the \cs{leftmark} if that is set.
+% \changes{v1.3m}{2021/12/09}{Support twoside (gh/704)}
+%    \begin{macrocode}
+\if at twoside
+  \def\@evenfoot{\pagename{} \thepage \hfil \leftmark}
+\else
+  \def\@evenfoot{\@oddfoot}
+\fi
+%    \end{macrocode}
 %
 %
 % \section{Document Markup}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/proc.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/proc.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/proc.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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-2021
+Copyright (C) 1993-2022
 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/slides.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -205,7 +205,7 @@
 % features without adding additional |\DeclareFontShape| commands to
 % your |.fd| files or the preamble of your document.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %
 % \section{The Implementation}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/slides.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/slides.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/slides.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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-2021
+Copyright (C) 1993-2022
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 
@@ -96,7 +96,7 @@
 
 This is a generated file.
 
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
 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-2021
+Copyright (C) 1993-2022
 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/syntonly.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -55,7 +55,7 @@
 % This command can be used in the preamble for running a document
 % through \LaTeX{} without actually getting any output.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %
 % \section{Identification}

Modified: trunk/Master/texmf-dist/source/latex-dev/base/syntonly.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/base/syntonly.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/syntonly.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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-2021
+Copyright (C) 1993-2022
 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/tulm.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 2016-2021
+%% Copyright (C) 2016-2022
 %% 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-2021
+Copyright (C) 2016-2022
 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/unpack.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/base/utf8ienc.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %
@@ -190,7 +190,7 @@
 %    information.
 %
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %
 %
@@ -216,7 +216,7 @@
 %<+ts1> \ProvidesFile{ts1enc.dfu}
 %<+x2>  \ProvidesFile{x2enc.dfu}
 %<+all> \ProvidesFile{utf8enc.dfu}
-%<-utf8-2018>   [2021/06/21 v1.2n UTF-8 support]
+%<-utf8-2018>   [2021/12/13 v1.2o UTF-8 support]
 %    \end{macrocode}
 %
 %    \begin{macrocode}
@@ -773,12 +773,13 @@
 % looks slightly strange but is designed for the sequence of |\expandafter|
 % in |\DeclareUnicodeCharacter|.
 %
+% \changes{v1.2o}{2021/12/13}{Use 80 not A0 to test for single byte UTF-8}
 %    \begin{macrocode}
-  \ifnum\count@<"A0\relax
+  \ifnum\count@<"80\relax
     \ifnum\catcode\count@=13
       \uccode`\~=\count@\uppercase{\def\UTFviii at tmp{\@empty\@empty~}}%
     \else
-      \@latex at error{Cannot define non-active Unicode char value < 00A0}%
+      \@latex at error{Cannot define non-active Unicode char value < 0080}%
                    \@eha
       \def\UTFviii at tmp{\UTFviii at tmp}%
     \fi
@@ -1368,6 +1369,18 @@
 %<all,t1,ly1>\DeclareUnicodeCharacter{017E}{\v z}
 %<all,ts1,ly1>\DeclareUnicodeCharacter{0192}{\textflorin}
 %    \end{macrocode}
+% \changes{v1.2n}{2021/12/10}{add 01C4-01CC}
+%    \begin{macrocode}
+%<all,t1>\DeclareUnicodeCharacter{01C4}{D\v Z}
+%<all,t1>\DeclareUnicodeCharacter{01C5}{D\v z}
+%<all,t1>\DeclareUnicodeCharacter{01C6}{d\v z}
+%<all,t1>\DeclareUnicodeCharacter{01C7}{LJ}
+%<all,t1>\DeclareUnicodeCharacter{01C8}{Lj}
+%<all,t1>\DeclareUnicodeCharacter{01C9}{lj}
+%<all,t1>\DeclareUnicodeCharacter{01CA}{NJ}
+%<all,t1>\DeclareUnicodeCharacter{01CB}{Nj}
+%<all,t1>\DeclareUnicodeCharacter{01CC}{nj}
+%    \end{macrocode}
 % \changes{v1.1s}{2016/01/11}{add 01CD-01F4}
 %    \begin{macrocode}
 %<all,t1>\DeclareUnicodeCharacter{01CD}{\v A}

Modified: trunk/Master/texmf-dist/source/latex-dev/graphics/color.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/graphics/color.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/graphics/color.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -2,7 +2,7 @@
 % \iffalse
 %
 %% color.dtx Copyright (C) 1994--1999 David Carlisle
-%%           Copyright (C) 2005-2021
+%%           Copyright (C) 2005-2022 LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -21,7 +21,7 @@
 %<driver> \ProvidesFile{color.drv}
 % \fi
 %         \ProvidesFile{color.dtx}
-          [2021/10/11 v1.3b Standard LaTeX Color (DPC)]
+          [2022/01/06 v1.3d Standard LaTeX Color (DPC)]
 %
 % \iffalse
 %<*driver>
@@ -56,7 +56,7 @@
 % document \emph{Packages in the `graphics' bundle} in the file
 % \texttt{grfguide.tex}.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %
 % \section{Options}
@@ -80,6 +80,8 @@
 %     {Save and restore catcodes}
 % \changes{v1.3a}{2021/09/27}
 %     {Use \cs{@backslashchar} in preference to \cs{string} gh/659}
+% \changes{v1.3c}{2021/12/07}
+%     {Remove stray spaces after change to \cs{@backslashchar} xcolor/gh/10}
 %
 %    \begin{macrocode}
 \edef\Gin at codes{%
@@ -380,7 +382,7 @@
 %    \begin{macrocode}
 \DeclareOption{usenames}{%
   \def\c at lor@usename#1{%
-    \expandafter\color at named\csname\@backslashchar color @#1\endcsname{#1}}}
+    \expandafter\color at named\csname\@backslashchar color@#1\endcsname{#1}}}
 %    \end{macrocode}
 % \end{option}
 %
@@ -437,10 +439,10 @@
 % Finally call |\set at color| to effect the colour change.
 %    \begin{macrocode}
 \def\@declaredcolor#1{%
-  \@ifundefined{\@backslashchar color @#1}%
+  \@ifundefined{\@backslashchar color@#1}%
     {\c at lor@error{`#1'}}%
     {\expandafter\let\expandafter\current at color
-     \csname\@backslashchar color @#1\endcsname
+     \csname\@backslashchar color@#1\endcsname
      \set at color}%
   \ignorespaces}
 %    \end{macrocode}
@@ -550,10 +552,10 @@
 \protected\def\definecolor#1#2#3{%
   \@ifundefined{color@#2}%
     {\c at lor@error{model `#2'}}%
-    {\@ifundefined{\@backslashchar color @#1}{}%
+    {\@ifundefined{\@backslashchar color@#1}{}%
       {\PackageInfo{color}{Redefining color #1}}%
      \csname color@#2\expandafter\endcsname
-         \csname\@backslashchar color @#1\endcsname{#3}}}
+         \csname\@backslashchar color@#1\endcsname{#3}}}
 %    \end{macrocode}
 %  \end{macro}
 %
@@ -824,7 +826,14 @@
 %    \end{macrocode}
 %  \end{macro}
 %
+% \subsection{Providing \cs{mathcolor}}
 %
+% This is shared coded between different packages, so external.
+%
+%    \begin{macrocode}
+\input{mathcolor.ltx}
+%    \end{macrocode}
+%
 % \section{Extra Groups}
 % Turning on extra groups in the standard \LaTeX\ commands, so that
 % colour commands are scoped correctly.

Modified: trunk/Master/texmf-dist/source/latex-dev/graphics/drivers.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/graphics/drivers.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/graphics/drivers.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %
 %% drivers.dtx Copyright (C) 1994      David Carlisle Sebastian Rahtz
 %%             Copyright (C) 1995 1996 1997 1998 1999 David Carlisle
-%%             Copyright (C) 2000-2021
+%%             Copyright (C) 2000-2022 LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -77,7 +77,7 @@
 %
 %
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %
 % \section{Colour}

Modified: trunk/Master/texmf-dist/source/latex-dev/graphics/epsfig.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/graphics/epsfig.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/graphics/epsfig.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -2,7 +2,7 @@
 % \iffalse
 %
 %% epsfig.dtx Copyright (C) 1994-1996 1999 Sebastian Rahtz
-%%            Copyright (C) 2000-2021
+%%            Copyright (C) 2000-2022 LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -41,7 +41,7 @@
 % \maketitle
 %
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{Preface}
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/source/latex-dev/graphics/graphics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/graphics/graphics.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/graphics/graphics.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -2,7 +2,7 @@
 % \iffalse
 %
 %% graphics.dtx Copyright (C) 1994      David Carlisle Sebastian Rahtz
-%%              Copyright (C) 1995-2021
+%%              Copyright (C) 1995-2022 LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -276,7 +276,7 @@
 % and |\rotatebox| commands that some people may prefer. It is provided
 % by the accompanying |graphicx| package.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{The Graphics Kernel Functions}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/graphics/graphics.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/graphics/graphics.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/graphics/graphics.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -40,4 +40,6 @@
 
 \generate{\file{rotating.sty}{\from{rotating.dtx}{package}}}
 
+\generate{\file{mathcolor.ltx}{\from{mathcolor.dtx}{code}}}
+
 \endbatchfile

Modified: trunk/Master/texmf-dist/source/latex-dev/graphics/graphicx.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/graphics/graphicx.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/graphics/graphicx.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -2,7 +2,7 @@
 % \iffalse
 %
 %% graphicx.dtx Copyright (C) 1994      David Carlisle Sebastian Rahtz
-%%              Copyright (C) 1995-2021
+%%              Copyright (C) 1995-2022 LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -211,7 +211,7 @@
 % which rotates around the reference point on the baseline, thus
 % producing a box that is mainly \emph{below} the baseline.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %
 % \section{Implementation}

Modified: trunk/Master/texmf-dist/source/latex-dev/graphics/keyval.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/graphics/keyval.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/graphics/keyval.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,7 +1,7 @@
 %
 % \iffalse
 %% keyval.dtx Copyright (C) 1993 1994 1995 1997 1998 1999 David Carlisle
-%%            Copyright (C) 2000-2021 David Carlisle, LaTeX Project
+%%            Copyright (C) 2000-2022 David Carlisle, LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -202,7 +202,7 @@
 % package do not break styles making use of these `low level'
 % definitions.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{The Macros}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/graphics/lscape.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/graphics/lscape.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/graphics/lscape.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -2,7 +2,7 @@
 % \iffalse
 %
 %% lscape.dtx Copyright (C) 1994 1999-2000 David Carlisle
-%%            Copyright (C) 2000-2021
+%%            Copyright (C) 2000-2022 LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -54,7 +54,7 @@
 % page before the page head and foot are added.
 %
 %
-% \StopEventually{\end{landscape}}
+% \MaybeStop{\end{landscape}}
 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
 % \changes{v1.00}{1992/04/28}{Initial release}

Added: trunk/Master/texmf-dist/source/latex-dev/graphics/mathcolor.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/graphics/mathcolor.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex-dev/graphics/mathcolor.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -0,0 +1,421 @@
+% \iffalse meta-comment
+%
+%% File: mathcolor.dtx (C) Copyright 2021-2022
+%       Frank Mittelbach, LaTeX Team
+%
+% 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
+%
+%
+%%% From File: mathcolor.dtx
+%
+%    \begin{macrocode}
+\def\mathcolorversion{v1.0a}
+\def\mathcolordate{2022/01/07}
+%    \end{macrocode}
+%<*driver>
+\documentclass{l3doc}
+
+%\makeatletter \input{mathcolor.ltx} \makeatother
+
+\usepackage{color}
+
+% Fixing footnotes in  functions and variables: this should be in l3doc!
+
+\newcommand\fixfootnote[2]{\footnotemark
+  \AddToHookNext{env/#1/after}{\footnotetext{#2}}}
+\AddToHook{env/function/begin}{\def\footnote{\fixfootnote{function}}}
+\AddToHook{env/variable/begin}{\def\footnote{\fixfootnote{variable}}}
+
+\EnableCrossrefs
+\CodelineIndex
+\begin{document}
+  \DocInput{mathcolor.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+
+
+
+%
+% \title{Providing color in math\thanks{This file has version
+%    \mathcolorversion\ dated \mathcolordate, \copyright\ \LaTeX\
+%    Project.}}
+% \author{Frank Mittelbach}
+%
+% \maketitle
+%
+%
+% \section{Introduction}
+%
+%    It is possible to use the \cs{color} command in math formulas but
+%    doing that has a number of restrictions and often leads to rather
+%    unreadable input. For example, to color the summation sign in red
+%    in the following formula
+% \[
+%     X = \color{red} \sum_{{\color{black} i=1}}^{{\color{black} n}} \color{black} x_i
+% \]
+%    A total of four color commands and a number of seemingly
+%    unnecessary extra braces in the sub and superscript are needed:
+%\begin{verbatim}
+%  \[ X = \color{red} \sum
+%         _{{\color{black} i=1}}  % without {{ the superscript is misplaced
+%         ^{{\color{black} n}}    % without {{ the \sum is black
+%        \color{black}            % without the x_i is red
+%        x_i                  \]
+%\end{verbatim}
+%    While this is ugly but at least works, other things are simply
+%    impossible, e.g.,
+% \[  \left\{ \frac{1}{2} \mathcolor{red}{\right\}} \]
+%    are not achievable at all because of the fact that \cs{left} and
+%    \cs{right} form a group. Thus, a \cs{color} command immediately
+%    before the \cs{right} has no effect and \verb=\}= remains black.
+%    Putting the color change before the \cs{left} and then resetting
+%    the color inside would work if you want to color both braces, but
+%    the above combination or the attempt to color only the left brace
+%    fails always.
+%
+%    Using \cs{textcolor} in formulas appears to work on first glance,
+%    but it produces spacing problems that are not easy to overcome
+%    either, because it generates a single \cs{mathord} and no
+%    longer reflects its input, thus
+%    \verb/\[ a = b \textcolor{red}{\neq} c \]/
+%    produces
+%  \[ a = b \textcolor{red}{\neq} c \]
+%    This is a case one could mend by wrapping the
+%    \cs{textcolor} and its arguments in a \cs{mathrel}, but even when
+%    that is possible, the resulting formula source is difficult to
+%    maintain and in other situations the solutions are even more
+%    complicated or there is no solution at all.
+%
+%    We therefore offer now a dedicated math coloring command named
+%    \cs{mathcolor}.
+%
+% \begin{function}{\mathcolor}
+% \begin{syntax}
+%   \cs{mathcolor} \oarg{model} \Arg{color-spec} \Arg{math material}
+% \end{syntax}
+%    It has the same arguments as \cs{textcolor} but is intended for
+%    use in formulas. The command does not generate a group and the
+%    \meta{math material} retains its math atom states and it correctly
+%    handles sub and superscripts that follow.
+% \end{function}
+%
+%    The command can also be used to color a single opening or closing
+%    symbol, e.g., the correct input to our earlier example is
+%\begin{verbatim}
+%    \[  \left\{ \frac{1}{2} \mathcolor{red}{\right\}} \]
+%\end{verbatim}
+%    which is how it was produced.
+%
+%    If you attempt to color large operators that use explicit
+%    \cs{limits}, \cs{nolimits}, or \cs{displaylimits}, then these
+%    limit controls need to immediately follow the operator. However,
+%    \cs{mathcolor} is written in a way that it is possible write
+%\begin{verbatim}
+%     \[  \mathcolor{red}{\int}\limits_0^1 \textrm{ or }
+%         \mathcolor{red}{\int\limits}_0^1                \]
+%\end{verbatim}
+%    and achieve the same effect:
+%     \[  \mathcolor{red}{\int}\limits_0^1 \textrm{ or }
+%         \mathcolor{red}{\int\limits}_0^1                \]
+
+%
+%
+% \MaybeStop{\setlength\IndexMin{200pt}  \PrintIndex  }
+%
+%
+% \section{The Implementation}
+%
+%    The code is called inside of the \pkg{color} or \pkg{xcolor}
+%    packages, so \texttt{@} is already a letter, but the
+%    coding here is done in the L3 programming layer, so we need to
+%    activate that. But first we check if this file was loaded before,
+%    e.g., when both \pkg{color} and \pkg{xcolor} are in the preamble
+%    and in that case we stop immediately.
+%    \begin{macrocode}
+%<*code>
+\ifcsname mathcolor\endcsname \endinput \fi
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\ExplSyntaxOn
+%<@@=mathcolor>
+%    \end{macrocode}
+%
+%  \begin{macro}{\g_@@_seq}
+%    We need to keep our own stack of color commands, so we allocate a
+%    sequence for that.
+%    \begin{macrocode}
+\seq_new:N \g_@@_seq
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%  \begin{macro}{\mathcolor}
+%    The document-level command which expects a color (if unnamed then
+%    the optional argument is the model) and colors the content of the
+%    second argument (like \cs{textcolor}, but without spacing
+%    problems in math).
+%    \begin{macrocode}
+\DeclareDocumentCommand \mathcolor { o m m } {
+%    \end{macrocode}
+%    First action is to save the current color value on a stack
+%    (needed if the command is nested or contains some further color
+%    changes with \cs{color} inside).
+%    \begin{macrocode}
+  \seq_gpush:No \g_@@_seq \current at color
+%    \end{macrocode}
+%    Then we switch to the new color, but we do not want to reset the
+%    color after the group (which is done by \cs{color} using
+%    \cs{aftergroup}\cs{reset at color}). The best solution here would be
+%    if the color packages  would provide a command doing just the
+%    color switching, but for now we simply undo that part by pushing
+%    \cs{use_none:n} which gobbles the \cs{reset at color} added by
+%    \cs{color} with \cs{aftergroup}.
+%    \begin{macrocode}
+  \group_insert_after:N \use_none:n
+%    \end{macrocode}
+%    Switching the color is also slightly suboptimal, because
+%    depending on whether or not we have a \meta{model} argument, we
+%    have to call \cs{color} with or without the optional argument. But
+%    going low-level here is not an option as we need to support
+%    different color packages and their internals are not identical.
+%    \begin{macrocode}
+  \IfValueTF{#1} { \color[#1]{#2} }{ \color{#2} }
+%    \end{macrocode}
+%    Then comes the math material we want to see colored:
+%    \begin{macrocode}
+  #3
+%    \end{macrocode}
+%    After that we need to reset the color ourselves (without a group
+%    that does it for us), i.e., popping the saved  color from our
+%    stack, but there are some twists to that so we do this in a
+%    separate command (which in fact needs to be called several times,
+%    so inlining the code wouldn't be possible.
+%    \begin{macrocode}
+  \@@_scan_for_scripts:w
+}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%
+%  \begin{macro}{\@@_scan_for_scripts:w}
+%    The complication when changing the color back is due to the fact
+%    that the \cs{mathcolor} may be followed by \verb=^= or \verb=_=
+%    or the hidden superscript \texttt{'} and its argument may end in a
+%    \cs{mathop} in which case the sub and superscripts may be
+%    attached as \cs{limits} instead of after the material. All cases
+%    need separate treatment.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_scan_for_scripts:w {
+%    \end{macrocode}
+%    We therefore first parse for a \cs{c_math_subscript_token}
+%    ignoring (dropping) any spaces and \cs{relax} as \TeX{} would
+%    do. We do this with expansion so that hidden sub or superscripts
+%    in macros are still found as long as the macros are expandable.
+%    \begin{macrocode}
+  \@@_peek_catcode_ignore_filler_expand:NTF \c_math_subscript_token
+%    \end{macrocode}
+%    If we found that character we call a function that handles sub or
+%    superscripts.
+%    \begin{macrocode}
+    { \@@_handle_scripts:Nw }
+%    \end{macrocode}
+%    Otherwise check if this token we peeked at (which is now stored
+%    in \cs{l_peek_token} is a superscript token.
+%    \begin{macrocode}
+    { \token_if_math_superscript:NTF \l_peek_token
+%    \end{macrocode}
+%    If found we call the sub/superscript handler.
+%    \begin{macrocode}
+      { \@@_handle_scripts:Nw }
+%    \end{macrocode}
+%    Otherwise we check if it was any of the limit operation
+%    primitives. If that is the case, e.g., if we have a situation
+%    such as
+%\begin{verbatim}
+%    \mathcolor{red}{\int}\limits_1
+%\end{verbatim}
+%    we have to move it directly after the \cs{int} to ensure there
+%    is no color reset between the operator and the \cs{limits} command.
+%    \begin{macrocode}
+      { \token_case_meaning:NnTF \l_peek_token
+          {
+            \limits   { \limits }
+            \nolimits { \nolimits }
+            \displaylimits { \displaylimits }
+          }
+%    \end{macrocode}
+%    Once that is done, we have to get rid of the token we peeked at
+%    and then restart scanning for sub or superscripts. Given that
+%    \cs{@@_scan_for_scripts:w} expands while scanning the simplest
+%    solution is to add \cs{use_none:n} in front of the peeked at token.
+%    \begin{macrocode}
+          { \@@_scan_for_scripts:w \use_none:n }
+%    \end{macrocode}
+%    If it was one of these we look for a \texttt{'} and if found remove it and
+%    replace it by its expansion. The reason we have to do this (and
+%    not rely on the earlier peeking to expand for us is the fact
+%    that \texttt{'} is only ``math active'' and that doesn't expand
+%    under \cs{expanded} or \cs{expandafter}.
+%    \begin{macrocode}
+          { \peek_meaning_remove:NTF '
+            { \@@_handle_scripts:Nw ^\c_group_begin_token \prim at s }
+%    \end{macrocode}
+%    If it is anything else we finish off which means we reset the
+%    color (because we prevented that before to happen automatically
+%    after the next group) and pop the color stack setting \cs{current at color}.
+%    \begin{macrocode}
+            { \reset at color
+              \seq_gpop:NN \g_@@_seq \current at color
+            }
+          }
+      }
+    }
+}
+%    \end{macrocode}
+%  \end{macro}
+
+
+
+%  \begin{macro}{\@@_handle_scripts:Nw}
+%    The tricky part of handling sub and superscripts is that we have
+%    to reset color to the one that is on the stack but reset it back
+%    to what it was before to allow for cases like
+%\begin{verbatim}
+%    \[  \mathcolor{red}{a+\sum}_{i=1}^n  \]
+%\end{verbatim}
+%    Here, \TeX{} constructs a \cs{vbox} stacking subscript, summation
+%    sign, and superscript. So technically the superscript comes first
+%    and the \cs{sum} that should get colored red is the middle.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_handle_scripts:Nw #1 {
+%    \end{macrocode}
+%    The argument is either \verb=^= or \verb=_=, so we execute it and
+%    explicitly open two \verb={= groups. We need two because color
+%    resets are always done after a group, so the first group is for
+%    script material (in case it was just something like \verb=_i=)
+%    and the second is needed for the color reset to keep it within
+%    the super or subscript. If that reset would happen after it then
+%    the color \cs{special} would interfere with \TeX{} math spacing.
+%    \begin{macrocode}
+    #1 \c_group_begin_token \c_group_begin_token
+%    \end{macrocode}
+%    Now it is time to change the color back to the one on the stack.
+%    \begin{macrocode}
+    \seq_get:NN \g_@@_seq \current at color
+    \set at color
+%    \end{macrocode}
+%    \cs{set at color} adds \cs{aftergroup}\cs{reset at color}. We now a add
+%    bit more so that the code executed after the current (inner) group
+%    looks like this:
+%\begin{verbatim}
+%      \reset at color } \@@_scan_for_scripts:w
+%\end{verbatim}
+%    The \cs{_@@_scan_for_scripts:w} then retakes control and initiates
+%    parsing for another sub or superscript.
+%    \begin{macrocode}
+    \group_insert_after:N \c_group_end_token
+    \group_insert_after:N \@@_scan_for_scripts:w
+%    \end{macrocode}
+%    Before we give control to \TeX{} to process the sub or
+%    superscript some final adjustment is necessary: if the input was
+%    \verb=^{...}= then we have one \verb={= too many, because we
+%    already supplied the outer one already. In that case we drop
+%    it. Otherwise we have an unbraced single token sub or superscript
+%    which means we are missing a closing \verb=}= at the end and need
+%    to account for that: this is done in \cs{_@@_handle_unbraced_script:N}.
+%    \begin{macrocode}
+    \@@_peek_catcode_ignore_filler_expand:NTF \c_group_begin_token
+      { \peek_catcode_remove:NT \c_group_begin_token { } }
+      { \@@_handle_unbraced_script:N }
+  }%    \end{macrocode}
+%  \end{macro}
+
+
+%  \begin{macro}{\@@_handle_unbraced_script:N}
+%    All we have to do here is to add the final closing brace.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_handle_unbraced_script:N #1 {
+  #1 \c_group_end_token }
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%
+% \subsection{Utility function for the peek module}
+%
+%    This peek is expanding and ignores spaces and \cs{relax} (even
+%    though the name doesn't say so)
+%    but \cs{relax} is usually allowed in such places where we so it
+%    may not be bad to have it in this way in general --- maybe this
+%    should move to expl3 peek functions (or otherwise the naming
+%    should perhaps be adjusted).
+%
+%
+%    \begin{macrocode}
+\tl_new:N \l_@@_peek_tmp_tl
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_peek_catcode_ignore_filler_expand:NTF #1#2#3
+  {
+    \tl_set:Nn \l_@@_peek_tmp_tl
+      { \token_if_eq_catcode:NNTF \l_peek_token #1 {#2} {#3} }
+    \@@_peek_expand:w
+  }
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_peek_expand:w
+  {
+    \exp_after:wN \peek_catcode_remove:NTF
+    \exp_after:wN \c_space_token
+    \exp_after:wN \@@_peek_test_expand:w
+    \exp_after:wN \@@_peek_test_relax:w
+    \exp:w \exp_end_continue_f:w
+  }
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_peek_test_expand:w
+  {
+    \token_if_expandable:NTF \l_peek_token
+      { \@@_peek_expand:w }
+      { \l_@@_peek_tmp_tl      }
+  }
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_peek_test_relax:w
+   {
+    \peek_meaning_remove:NTF \scan_stop:
+      { \@@_peek_expand:w }
+      { \@@_peek_test_expand:w   }
+   }
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%<@@=>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\ExplSyntaxOff
+%</code>
+%    \end{macrocode}
+%
+% \Finale
+%
+%
+
+%%%%%%%%%%%%%%%%
+\endinput
+%%%%%%%%%%%%%%%%
+


Property changes on: trunk/Master/texmf-dist/source/latex-dev/graphics/mathcolor.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/source/latex-dev/graphics/rotating.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/graphics/rotating.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/graphics/rotating.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -5,7 +5,7 @@
 % File: rotating.dtx
 %% Copyright (C) 1995-1999 Sebastian Rahtz and Leonor Barroca
 %% Copyright (C) 2001-2003,2007-2009 Robin Fairbairns
-%% Copyright (C) 2016-2021 LaTeX Project
+%% Copyright (C) 2016-2022 LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %
@@ -157,7 +157,7 @@
 %                                   top does
 % \end{tabular}
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{Setup}
 % Now we present the documented code.  First, package options.

Modified: trunk/Master/texmf-dist/source/latex-dev/graphics/trig.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/graphics/trig.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/graphics/trig.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse
 %% File: trig.dtx Copyright (C) 1993-1999 David Carlisle
-%%                Copyright (C) 2000-2021
+%%                Copyright (C) 2000-2022 LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -78,7 +78,7 @@
 % |\dimen2=\UseSin{30}\dimen0|. Which means that |\UseSin| must
 % \emph{expand} to a \meta{factor}.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{The Macros}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/afterpage.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/afterpage.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/afterpage.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 %
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
@@ -101,7 +101,7 @@
 % on a new page.
 % \end{enumerate}
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %    \begin{macrocode}
 %<*package>

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/afterpage.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/afterpage.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/afterpage.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -45,7 +45,7 @@
 reports for it can be opened at https://latex-project.org/bugs/
 (but please observe conditions on bug reports sent to that address!)
 
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/array.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/array.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/array.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 %
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
@@ -753,7 +753,7 @@
 %
 % \changes{v2.2b}{1994/02/04}{Removed interactive prompt}
 %
-% \StopEventually{
+% \MaybeStop{
 %
 %
 % \begin{thebibliography}{1}
@@ -773,7 +773,7 @@
 %       Addison-Wesley, Reading, Massachusetts, 1986.
 % \end{thebibliography}
 %
-% }   ^^A  end of \StopEventually
+% }   ^^A  end of \MaybeStop
 %
 %
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/bm.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/bm.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/bm.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 %
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
@@ -22,7 +22,7 @@
 % \fi
 %
 % \iffalse
-%% Copyright 1996 1997 1998 1999 2002 2003 2004 2016 2017 2019
+%% Copyright 1996 1997 1998 1999 2002 2003 2004 2016 2017 2019 2021 2022
 %% David Carlisle Frank Mittelbach
 %%
 %% Development of this package was commissioned by Y&Y Inc.
@@ -36,7 +36,7 @@
 %<driver>\ProvidesFile{bm.drv}
 % \fi
 %         \ProvidesFile{bm.dtx}
-          [2021/04/25 v1.2e Bold Symbol Support (DPC/FMi)]
+          [2022/01/05 v1.2f Bold Symbol Support (DPC/FMi)]
 %
 % \iffalse
 %<*driver>
@@ -312,7 +312,7 @@
 % the package option |nopbm|  is available which prevents its use in which case |\bm| will
 % use the non-bold for characters from the affected font,
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{Implementation}
 %
@@ -839,9 +839,12 @@
       \unvcopy{\GenericError{##1}{##2}{##3}{##4}}}%
 %    \end{macrocode}
 % For AMS definitions.
+% \changes{v1.2f}{2022/01/05}
+%      {Guard \cs{nolimits@},  gh/744}
 %    \begin{macrocode}
     \let\DN@\copy
     \let\FN@\copy
+    \let\nolimits@\copy
     \let\next@\copy
     \global\let\bm at first\@empty
 %    \end{macrocode}
@@ -1016,7 +1019,7 @@
 % \end{macro}
 % \end{macro}
 %
-% \begin{macro}{\bm at end}
+% \begin{macro}[outer]{\bm at end}
 % \changes{v0.10}{1997/01/04}
 %      {Macro added}
 % Normally speaking |\outer| declarations should be avoided at all

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/bm.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/bm.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/bm.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -45,7 +45,7 @@
 reports for it can be opened at https://latex-project.org/bugs/
 (but please observe conditions on bug reports sent to that address!)
 
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/calc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/calc.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/calc.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 %
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
@@ -425,7 +425,7 @@
 % syntax characters.
 %
 %
-% \StopEventually{
+% \MaybeStop{
 % \begin{thebibliography}{1}
 %    \bibitem{texbook}
 %       \textsc{D. E. Knuth}.

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/dcolumn.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/dcolumn.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/dcolumn.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 %
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
@@ -191,7 +191,7 @@
 % "D{+}{\,\pm\,}{3,3}" will give nice, symmetric layout of up to three
 % digits on either side of a $\pm$ sign.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %
 % \section{The Macros}

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/delarray.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/delarray.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/delarray.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 %
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
@@ -100,7 +100,7 @@
 % \end{verbatim}
 %
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{The Macros}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/enumerate.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/enumerate.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/enumerate.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 %
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
@@ -122,7 +122,7 @@
 % |\ref{LA}|, |\ref{LB}| and |\ref{LC}| produce
 % `\ref{LA}',  `\ref{LB}' and `\ref{LC}' respectively.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %\section{Macros}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/fileerr.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/fileerr.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/fileerr.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 %
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
@@ -51,7 +51,7 @@
 %    \par After installing these files the user can respond with
 %    |h|,  |q|, |r|, |s|, |e|, |x|, and on some systems also with
 %    \meta{return} to \TeX's missing file name question.
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{The documentation driver}
 %    This code will generate the documentation. Since it is the

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/fontsmpl.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/fontsmpl.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/fontsmpl.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 %
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
@@ -70,7 +70,7 @@
 % The |fontsmpl| document prompts interactively for a font family (for
 % example `|cmr|') and produces a sample of that family.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{Documentation}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/ftnright.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/ftnright.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/ftnright.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 %
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
@@ -292,7 +292,7 @@
 % worth of footnote material and that means that some of your footnotes are
 % likely to be detached from their reference and show up on a later page!
 %
-% \StopEventually{
+% \MaybeStop{
 %
 % \begin{small}
 % \begin{thebibliography}{1}

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/hhline.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/hhline.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/hhline.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 %
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
@@ -148,7 +148,7 @@
 % program, or if this is not possible, increasing "\arrayrulewidth"
 % may help to reduce the effect.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{The Macros}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/indentfirst.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/indentfirst.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/indentfirst.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 %
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
@@ -59,7 +59,7 @@
 %
 % \CheckSum{4}^^A  Still I think a record:-)
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \begin{macro}{\if at afterindent}
 % \LaTeX\ uses the switch |\if at afterindent| to decide whether to indent

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/layout.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/layout.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/layout.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 %
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
@@ -92,7 +92,7 @@
 % \layout
 % \end{figure}
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{The implementation}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/longtable.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/longtable.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/longtable.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 %
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
@@ -770,7 +770,7 @@
 % \end{verbatim}
 % \endgroup
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \finalclearpage
 % \section{The Macros}

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/longtable.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/longtable.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/longtable.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -45,7 +45,7 @@
 reports for it can be opened at https://latex-project.org/bugs/
 (but please observe conditions on bug reports sent to that address!)
 
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/multicol.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/multicol.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/multicol.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -92,17 +92,19 @@
 %<package>\providecommand\DeclareCurrentRelease[2]{}
 %<package>
 %<package>\DeclareRelease{}{2017-04-11}{multicol-2017-04-11.sty}
-%<package>\DeclareCurrentRelease{}{2018-04-01}
+%<package>\DeclareRelease{v1.8}{2019-10-01}{multicol-2019-10-01.sty}
+%<package>\DeclareCurrentRelease{}{2021-11-15}
 %<package>
 %<package>\ProvidesPackage{multicol}
 %<driver> \ProvidesFile{multicol.drv}
 % \fi
 %         \ProvidesFile{multicol.dtx}
-          [2021/10/28 v1.9b  multicolumn formatting (FMi)]
+          [2021/11/30 v1.9d  multicolumn formatting (FMi)]
 %
 %
 %%
 %
+% \changes{v1.9c}{2021/11/30}{Added rollback to v1.8}
 % \changes{v1.5n}{1997/06/05}{Applied improvement of documentation,
 %          kindly done by Robin Fairbairns.}
 % \changes{v1.4h}{1992/06/04}{Added mark tracing with
@@ -844,7 +846,7 @@
 % \changes{v1.5l}{1996/01/13}{Try hard to explain unresolved reference
 %                that happens if \cs{OnlyDescription} is used}
 %
-% \StopEventually{\PrintIndex \PrintChanges
+% \MaybeStop{\PrintIndex \PrintChanges
 %   \ifx\Finale\relax
 %    \typeout{**********************************}
 %    \typeout{* Info: Typesetting this document with
@@ -4149,7 +4151,11 @@
      a multicols or multicols* environment.}%
   \else
     \ifvmode
-     \nobreak\vfill\penalty -\@Mv\relax
+%    \end{macrocode}
+%    We need to guard the \cs{vfill} from disappearing.
+% \changes{v1.9d}{2021/12/05}{Guard the \cs{vfill} (sx/624940)}
+%    \begin{macrocode}
+     \nobreak\vfill\kern\z@\penalty -\@Mv\relax
    \else
      \@bsphack
      \vadjust{\nobreak\vfill\kern\z@\penalty -\@Mv\relax}%

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/multicol.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/multicol.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/multicol.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -45,7 +45,7 @@
 reports for it can be opened at https://latex-project.org/bugs/
 (but please observe conditions on bug reports sent to that address!)
 
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/rawfonts.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/rawfonts.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/rawfonts.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 %
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
@@ -63,7 +63,7 @@
 % \end{verbatim}
 % to your |latex209.cfg| \LaTeX~2.09 compatibility configuration file.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section*{Implementation}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/shellesc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/shellesc.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/shellesc.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse
 %% Source File: shellesc.dtx
-%% Copyright (C) 2015-2021
+%% Copyright (C) 2015-2022
 %%
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/showkeys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/showkeys.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/showkeys.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 %
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
@@ -248,7 +248,7 @@
 %
 % \end{thebibliography}
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{The Macros}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/somedefs.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/somedefs.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/somedefs.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 %
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
@@ -87,7 +87,7 @@
 % For a longer example of the use of the |somedefs| package, look at the
 % |rawfonts| package.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section*{Implementation}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/tabularx.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/tabularx.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/tabularx.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 %
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
@@ -261,7 +261,7 @@
 % This behaviour of the package can be customised slightly
 % as noted in the documentation of the code section.
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{The Macros}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/tabularx.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/tabularx.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/tabularx.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -45,7 +45,7 @@
 reports for it can be opened at https://latex-project.org/bugs/
 (but please observe conditions on bug reports sent to that address!)
 
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/theorem.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/theorem.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/theorem.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 %
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
@@ -332,7 +332,7 @@
 % (looking everything over) and many others providing useful
 % suggestions.
 %
-% \StopEventually{%
+% \MaybeStop{%
 %    \begin{thebibliography}{9}
 %       \bibitem{bk:GMS94} \textsc{M.~Goossens}, \textsc{F.~Mittelbach}
 %         and \textsc{A.~Samarin}.

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/tools.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/tools.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/tools.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -49,7 +49,7 @@
 (but please observe conditions on bug reports sent to that address!)
 
 
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/trace.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/trace.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/trace.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 %
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
@@ -278,7 +278,7 @@
 %  \small \texttt{\$}  \stop
 %\end{verbatim}
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{Implementation}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/varioref.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/varioref.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/varioref.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 %
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
@@ -40,7 +40,7 @@
 %<package>\DeclareCurrentRelease{}{2019-10-01}
 %<package>
 %<package>\ProvidesPackage{varioref}
-%<package>    [2021/07/07 v1.6f package for extended references (FMi)]
+%<package>    [2022/01/09 v1.6f package for extended references (FMi)]
 % \fi
 %
 %%
@@ -149,7 +149,7 @@
 % |\pageref| when the difference is larger.  The word `facing' is used
 % when label and reference both fall onto a double spread.  However,
 % if a special page numbering scheme is used instead of the usual
-% arabic numbering (e.g., |\pagenumbering{roman}|) then there will be
+% Arabic numbering (e.g., |\pagenumbering{roman}|) then there will be
 % no distinction between one or many pages off.
 %
 %\DescribeMacro\vpageref Sometimes one wants to refer only to page
@@ -172,7 +172,7 @@
 % A space in front of |\vpageref| it will be ignored if
 % the command doesn't produce any text at all.
 %
-% But in fact |\vpageref| allows even more control. If has two
+% But in fact |\vpageref| allows even more control. It has two
 % optional arguments. With the first one, one can specify the text
 % that should be used if label and reference fall on the same page.
 % This is very helpful if both are near to each other, so that they
@@ -293,7 +293,7 @@
 % Another command for conditional processing is |\vpagerefnearby|. It
 % takes three arguments: a label and a \meta{true} and \meta{false}
 % argument. It compares the page reference to the label with the
-% current page number and if both are arabic number and only differ by
+% current page number and if both are Arabic number and only differ by
 % $\pm1$ the \meta{true} argument is executed otherwise the
 % \meta{false} argument. In other words it tells you if a |\vpageref|
 % to the label would result in a textual reference to the previous,
@@ -330,12 +330,12 @@
 % space in front. Of course you are then responsible to always add it
 % when necessary, but that does make the source more readable so it is
 % a good thing. This also has the advantage that the star forms are
-% now unnecessary again and can be used in the way implemeented by
+% now unnecessary again and can be used in the way implemented by
 % \pkg{hyperref} if both packages are used together.
 %
 % In fact it would be much nicer to make that the
 % default but the package has been used by many people for so many
-% years that changing the default would break way to many older documents.
+% years that changing the default would break way too many older documents.
 %
 %
 % \DescribeMacro\labelformat
@@ -342,7 +342,7 @@
 % A reference via |\ref| produces by default the data associated with
 % the corresponding |\label| command (typically a number); any
 % additional formatting has to be provided by the user. With
-% |\labelformat| it is possible to declare scuch formatting for each
+% |\labelformat| it is possible to declare such formatting for each
 % ``reference'' counter, e.g.,
 %\begin{verbatim}
 %  \labelformat{section}{section~#1}
@@ -454,7 +454,7 @@
 %\DescribeMacro\reftextvario To allow a bit random variation in the
 % generated strings one can use the command |\reftextvario| inside the
 % string macros. It takes two arguments and selects one or the other
-% for printing depending on the number of already seens |\vref| or
+% for printing depending on the number of already seen |\vref| or
 % |\vpageref| commands.  As an example see the definitions of
 % |\reftextbefore| etc.\ \vpageref[below]{reftextbefore}.
 %
@@ -485,7 +485,7 @@
 % \DescribeMacro\fullrefformat
 % In some languages (currently only for Japanese) the generated text
 % has to typeset in different word order to most other (Western) languages.
-% To accomodate for this \cs{vrefformat}, etc.\ has been
+% To accommodate for this \cs{vrefformat}, etc.\ has been
 % added to allow to alter this on a per language basis.
 % There should be normally no need to alter the setup. For details see
 % the code section.
@@ -572,7 +572,7 @@
 % know for sure that label and reference can't fall onto nearby pages.
 %
 %
-% \StopEventually{\PrintIndex\PrintChanges}
+% \MaybeStop{\PrintIndex\PrintChanges}
 %
 %
 % \section{The documentation driver file}
@@ -701,7 +701,7 @@
 % \label{reftextbefore} The options do set the macros that
 %    generate the textual strings. Note, that they do not start with a
 %    space, the space is already added in the main macro below.
-% \changes{v1.2a}{1998/08/22}{Added american defaults for
+% \changes{v1.2a}{1998/08/22}{Added American defaults for
 %      \cs{reftextpagerange} and \cs{reftextlabelrange}}
 % \changes{v1.4d}{2002/11/11}{Changed default for \cs{reftextbefore}}
 %
@@ -1335,7 +1335,7 @@
 %    \end{macrocode}
 %    Defaults for Japanese. It needs a special \cs{vrefformat},
 %    \cs{Vrefformat}, \cs{fullrefformat} and \cs{vrefrangeformat}
-%    for gramatical reasons. As our standard documentation
+%    for grammatical reasons. As our standard documentation
 %    workflow uses pdf\TeX{} the Japanese letters can't be displayed
 %    easily, so you will see missing glyphs below. To see the real
 %    letters you have to look at the source or package file.
@@ -1354,7 +1354,7 @@
     \def\reftextpagerange#1#2{\pageref{#1}から\pageref{#2}ページ}%
     \def\reftextlabelrange#1#2{\ref{#1}から\ref{#2}}%
 %    \end{macrocode}
-%    Note that the parentheses beow are not normal ones but full width
+%    Note that the parentheses below are not normal ones but full width
 %    ones U+FF08 and U+FF09!
 %    \begin{macrocode}
     \def\vrefformat#1#2{\ref{#2}(\vpageref[#1]{#2})}%
@@ -1376,7 +1376,7 @@
 %
 %   The option assumes that there is a command |\aza| defined which
 %   helps resolving this problem.\footnote{This information is actually quite
-%   old but unfortunately never made it into varioref. In case any work
+%   old but unfortunately never made it into \pkg{varioref}. In case any work
 %   has been undertaken to resolve this please inform the author about it.}
 % \changes{v1.2a}{1998/08/22}{Added defaults for magyar}
 % \changes{v1.4j}{2005/01/22}{Defined \cs{reftextfaceafter} and
@@ -1505,7 +1505,7 @@
     \let\vrefrangeformat\vrefrangedefaultformat
   }}
 %    \end{macrocode}
-%    The portuguese default text has been provided by
+%    The Portuges default text has been provided by
 %    Jos\'e Carlos Oliveira Santos \verb=jcsantos at fc.up.pt=.
 % \changes{v1.2b}{1999/11/25}{Added portuguese defaults}
 % \changes{v1.2c}{1999/12/02}{Added more portuguese defaults}
@@ -1552,7 +1552,7 @@
     \let\vrefrangeformat\vrefrangedefaultformat
   }}
 %    \end{macrocode}
-%    The text for russian was taken from the book in Russian by
+%    The text for Russian was taken from the book in Russian by
 %    I.~A.~Kotelnikov and P.~Z.~Chebotaev, and adapted
 %    to the encoding-independent form by Vladimir Volovich
 %    (\verb=vvv at vsu.ru=).
@@ -1589,7 +1589,7 @@
     \let\vrefrangeformat\vrefrangedefaultformat
   }}
 %    \end{macrocode}
-%    The text for slovak defaults was contributed by Miroslav Sedivy\\
+%    The text for Slovak defaults was contributed by Miroslav Sedivy\\
 %    (\verb=<miro at slovensko.com>=).
 % \changes{v1.4b}{2002/03/11}{Contributed defaults added}
 %    \begin{macrocode}
@@ -1613,7 +1613,7 @@
     \let\vrefrangeformat\vrefrangedefaultformat
   }}
 %    \end{macrocode}
-%    The text for slovene defaults was contributed by Roman Maurer\\
+%    The text for Slovene defaults was contributed by Roman Maurer\\
 %    (\verb=<roman.maurer at amis.net>=).
 % \changes{v1.4a}{2002/03/05}{Contributed defaults added}
 %    \begin{macrocode}
@@ -1633,7 +1633,7 @@
     \let\vrefrangeformat\vrefrangedefaultformat
   }}
 %    \end{macrocode}
-%    Text for spanish defaults was contributed by Julio Sanchez
+%    Text for Spanish defaults was contributed by Julio Sanchez
 %    (\verb=jsanchez at gmv.es=) and Fernando Dobladez (\verb=<ferd at fuego.com>=).
 % \changes{v1.0f}{1994/03/16}{Inserted missing hash mark}
 % \changes{v1.0k}{1994/06/05}{Corrected misspelled cmd `extrasspanish}
@@ -1657,7 +1657,7 @@
     \let\vrefrangeformat\vrefrangedefaultformat
   }}
 %    \end{macrocode}
-%    The text for swedish was contributed by Mats Dahlgren
+%    The text for Swedish was contributed by Mats Dahlgren
 %    (\verb=matsd at sssk.se=).
 % \changes{v1.0p}{1995/01/10}{Added swedish strings}
 % \changes{v1.2a}{1998/08/22}{Added swedish defaults for
@@ -1729,7 +1729,7 @@
    }}
 %    \end{macrocode}
 %    We support francais as an alternative to french since people
-%    might be used to it, but we discurrage it.
+%    might be used to it, but we discourage it.
 %    \begin{macrocode}
 \DeclareOption{francais}{%
    \typeout{Please use `french' instead of `francais'}%
@@ -1757,7 +1757,7 @@
 %
 %
 %    Whether or not \pkg{varioref} uses its own white space and
-%    removes the one in the source document is handeled by the
+%    removes the one in the source document is handled by the
 %    following two options. For historical reasons the default is to
 %    handle the space, but the recommendation these days is to use
 %    \texttt{nospace}.
@@ -1814,7 +1814,7 @@
 %    space either. Thus in this case the star form doesn't
 %    have any effect and below |\vp at gerefstar| is let to
 %    |\vp at geref|. This allows a package like \pkg{hyperef} to redefine
-%    it and useit for its own tasks (like denoting that no link should
+%    it and use it for its own tasks (like denoting that no link should
 %    be produced).
 %    \begin{macrocode}
 \DeclareRobustCommand\vpageref{\@ifstar
@@ -1859,7 +1859,7 @@
 %    By default the second optional argument is empty.
 % \changes{v1.0h}{1994/06/11}{Pass first argument in both cases}
 % \changes{v1.0i}{1994/06/20}{Do it correctly}
-% \changes{v1.6a}{2019/08/25}{Default for optional argumet changed}
+% \changes{v1.6a}{2019/08/25}{Default for optional argument changed}
 %    \begin{macrocode}
   {\@@vpageref{#1}}{\@@vpageref{#1}[]}}
 %    \end{macrocode}
@@ -2169,7 +2169,7 @@
 %    \pkg{varioref} by testing
 %\begin{verbatim}
 %  \ifdefined\vp at gerefstar
-%     ... code fore noew varioref
+%     ... code for new varioref
 %  \else
 %    ... code for old varioref
 %  \fi
@@ -2638,7 +2638,7 @@
 
 %  \begin{macro}{\vpagerefcomparenearby}
 % \changes{v1.6a}{2019/08/25}{Macro added}
-%    True if the two pages have arabic page numbers are at most off by
+%    True if the two pages have Arabic page numbers are at most off by
 %    one so that |\vpageref| would produce a special string.
 %
 %    This is in some sense a general version of |\vpagerefnearby| for

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/varioref.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/varioref.ins	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/varioref.ins	2022-01-13 21:03:32 UTC (rev 61598)
@@ -3,7 +3,7 @@
 %% driver files from the doc files in this package when run through
 %% LaTeX or TeX.
 %%
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -45,7 +45,7 @@
 reports for it can be opened at https://latex-project.org/bugs/
 (but please observe conditions on bug reports sent to that address!)
 
-Copyright (C) 1993-2021
+Copyright (C) 1993-2022
 The LaTeX Project and any individual authors listed elsewhere
 in this file.
 

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/verbatim.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/verbatim.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/verbatim.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 %
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
@@ -242,7 +242,7 @@
 % This command has also a |*|-variant that prints spaces as \verb*+ +.
 %
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 %
 % \section{Interfaces for package writers}

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/xr.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/xr.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/xr.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 %
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
@@ -89,7 +89,7 @@
 % For compatibility with |xcite|, |\externalcitedocument| is made available
 % as an alias for |\externaldocument|
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{The macros}
 %

Modified: trunk/Master/texmf-dist/source/latex-dev/tools/xspace.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/tools/xspace.dtx	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/source/latex-dev/tools/xspace.dtx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 %
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
@@ -199,7 +199,7 @@
 % \end{verbatim}
 %
 %
-% \StopEventually{}
+% \MaybeStop{}
 %
 % \section{The Macros}
 %

Modified: trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsbsy.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsbsy.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsbsy.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -7,7 +7,7 @@
 %% amsbsy.dtx 
 %% 
 %% Copyright (C) 1995, 1999 American Mathematical Society.
-%% Copyright (C) 2016-2021 LaTeX Project and American Mathematical Society.
+%% Copyright (C) 2016-2022 LaTeX Project and American Mathematical Society.
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c

Modified: trunk/Master/texmf-dist/tex/latex-dev/amsmath/amscd.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/amsmath/amscd.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/amsmath/amscd.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -7,7 +7,7 @@
 %% amscd.dtx 
 %% 
 %% Copyright (C) 1995, 1999 American Mathematical Society.
-%% Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
+%% Copyright (C) 2016-2022  LaTeX Project and American Mathematical Society.
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c

Modified: trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsgen.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsgen.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsgen.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -7,7 +7,7 @@
 %% amsgen.dtx 
 %% 
 %% Copyright (C) 1995, 1999 American Mathematical Society.
-%% Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
+%% Copyright (C) 2016-2022  LaTeX Project and American Mathematical Society.
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c

Modified: trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsmath.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsmath.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsmath.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -7,7 +7,7 @@
 %% amsmath.dtx 
 %% 
 %% Copyright (C) 1995, 1999, 2000, 2013 American Mathematical Society.
-%% Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
+%% Copyright (C) 2016-2022  LaTeX Project and American Mathematical Society.
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c

Modified: trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsopn.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsopn.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsopn.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -7,7 +7,7 @@
 %% amsopn.dtx 
 %% 
 %% Copyright (C) 1995, 1999 American Mathematical Society.
-%% Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
+%% Copyright (C) 2016-2022  LaTeX Project and American Mathematical Society.
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c

Modified: trunk/Master/texmf-dist/tex/latex-dev/amsmath/amstext.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/amsmath/amstext.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/amsmath/amstext.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -7,7 +7,7 @@
 %% amstext.dtx 
 %% 
 %% Copyright (C) 1995, 1999 American Mathematical Society.
-%% Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
+%% Copyright (C) 2016-2022  LaTeX Project and American Mathematical Society.
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c

Modified: trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsxtra.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsxtra.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/amsmath/amsxtra.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -7,7 +7,7 @@
 %% amsxtra.dtx 
 %% 
 %% Copyright (C) 1995, 1999 American Mathematical Society.
-%% Copyright (C) 2016-2021  LaTeX Project and American Mathematical Society.
+%% Copyright (C) 2016-2022  LaTeX Project and American Mathematical Society.
 %% 
 %% This work may be distributed and/or modified under the
 %% conditions of the LaTeX Project Public License, either version 1.3c

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/alltt.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/alltt.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/alltt.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ansinew.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -42,7 +42,6 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 
-
   \ProvidesFile{ansinew.def}
    [2021/02/14 v1.3d Input encoding file]
 \ProvideTextCommandDefault{\textdegree}{\ensuremath{{^\circ}}}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/applemac.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/applemac.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/applemac.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -42,7 +42,6 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 
-
   \ProvidesFile{applemac.def}
    [2021/02/14 v1.3d Input encoding file]
 \ProvideTextCommandDefault{\textdegree}{\ensuremath{{^\circ}}}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/article.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/article.cls	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/article.cls	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/article.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ascii.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -42,7 +42,6 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 
-
  \ProvidesFile{ascii.def}
    [2021/02/14 v1.3d Input encoding file]
 \@inpenc at test

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/atbegshi-ltx.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/atbegshi-ltx.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/atbegshi-ltx.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -42,19 +42,20 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 %%
-%% Copyright (C) 2020-2021
+%% Copyright (C) 2020-2022
 %%               Frank Mittelbach, LaTeX Team
 %%
 %%% From File: ltshipout.dtx
-\providecommand\ltshipoutversion{v1.0j}
-\providecommand\ltshipoutdate{2021/06/09}
+\providecommand\ltshipoutversion{v1.0l}
+\providecommand\ltshipoutdate{2022/01/06}
+ %    \cs{AtBeginDvi} is the existing \LaTeXe{} interface to fill the
 \ProvidesPackage{atbegshi-ltx}
    [2021/01/10 v1.0c
      Emulation of the original atbegshi^^Jpackage with kernel methods]
 \let \AtBeginShipoutBox \ShipoutBox
 \let \AtBeginShipoutInit \@empty
-\protected \def \AtBeginShipout     {\AddToHook{shipout/before}}
-\protected \def \AtBeginShipoutNext {\AddToHookNext{shipout/before}}
+\protected\long\def\AtBeginShipout     #1{\AddToHook{shipout/before}{#1}}
+\protected\long\def\AtBeginShipoutNext #1{\AddToHookNext{shipout/before}{#1}}
 \protected \def \AtBeginShipoutFirst
    {\@expl@@@shipout at add@firstpage at material@@Nn \AtBeginShipoutFirst}
 \let \AtBeginShipoutDiscard \DiscardShipoutBox

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/atveryend-ltx.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/atveryend-ltx.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/atveryend-ltx.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/bezier.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/bk10.clo	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/bk11.clo	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/bk12.clo	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/book.cls	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/book.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/cp1250.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -42,7 +42,6 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 
-
   \ProvidesFile{cp1250.def}
    [2021/02/14 v1.3d Input encoding file]
 \ProvideTextCommandDefault{\textdegree}{\ensuremath{{^\circ}}}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/cp1252.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/cp1252.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/cp1252.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -42,7 +42,6 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 
-
   \ProvidesFile{cp1252.def}
    [2021/02/14 v1.3d Input encoding file]
 \ProvideTextCommandDefault{\textdegree}{\ensuremath{{^\circ}}}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/cp1257.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/cp1257.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/cp1257.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -42,7 +42,6 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 
-
   \ProvidesFile{cp1257.def}
    [2021/02/14 v1.3d Input encoding file]
 \ProvideTextCommandDefault{\textdegree}{\ensuremath{{^\circ}}}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/cp437.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/cp437.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/cp437.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -42,7 +42,6 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 
-
   \ProvidesFile{cp437.def}
    [2021/02/14 v1.3d Input encoding file]
 \ProvideTextCommandDefault{\textdegree}{\ensuremath{{^\circ}}}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/cp437de.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/cp437de.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/cp437de.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -42,7 +42,6 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 
-
   \ProvidesFile{cp437de.def}
    [2021/02/14 v1.3d Input encoding file]
 \ProvideTextCommandDefault{\textdegree}{\ensuremath{{^\circ}}}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/cp850.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/cp850.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/cp850.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -42,7 +42,6 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 
-
   \ProvidesFile{cp850.def}
    [2021/02/14 v1.3d Input encoding file]
 %%

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/cp852.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/cp852.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/cp852.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -42,7 +42,6 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 
-
   \ProvidesFile{cp852.def}
    [2021/02/14 v1.3d Input encoding file]
 \ProvideTextCommandDefault{\textdegree}{\ensuremath{{^\circ}}}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/cp858.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/cp858.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/cp858.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -42,7 +42,6 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 
-
   \ProvidesFile{cp858.def}
    [2021/02/14 v1.3d Input encoding file]
 \ProvideTextCommandDefault{\textdegree}{\ensuremath{{^\circ}}}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/cp865.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/cp865.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/cp865.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -42,7 +42,6 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 
-
   \ProvidesFile{cp865.def}
    [2021/02/14 v1.3d Input encoding file]
 \ProvideTextCommandDefault{\textdegree}{\ensuremath{{^\circ}}}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/decmulti.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/decmulti.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/decmulti.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -42,7 +42,6 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 
-
  \ProvidesFile{decmulti.def}
    [2021/02/14 v1.3d Input encoding file]
 \ProvideTextCommandDefault{\textdegree}{\ensuremath{{^\circ}}}

Added: trunk/Master/texmf-dist/tex/latex-dev/base/doc-2016-02-15.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/doc-2016-02-15.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/doc-2016-02-15.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -0,0 +1,826 @@
+%%
+%% This is file contains the code from 'doc.sty' from around 2017.
+%%
+%% The original source files were:
+%%
+%% doc.dtx  (with options: `package')
+%% 
+%% 
+%% Copyright 1993-2016
+%% The LaTeX3 Project and any individual authors listed elsewhere
+%% in this file.
+%% 
+%% This file was generated from file(s) of the LaTeX base system.
+%% --------------------------------------------------------------
+%% 
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%    https://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%% 
+%% This file contains the code for an earlier release and is therefore
+%% frozen. It is used as part of the current doc.sty when the user
+%% requests a rollback.
+%% 
+\NeedsTeXFormat{LaTeX2e}[1994/12/01]
+ \ProvidesPackage{doc}
+  [2016/02/15 v2.1g
+   Standard LaTeX documentation package (FMi)]
+%%
+%% Package `doc' to use with LaTeX 2e
+%% Copyright (C) 1989-1999 Frank Mittelbach, all rights reserved.
+\@ifundefined{macro at cnt}{}{\endinput}
+\catcode`\^^A=14
+\AtBeginDocument{\catcode`\^^A=14\relax}
+\def\macrocode{\macro at code
+   \frenchspacing \@vobeyspaces
+   \xmacro at code}
+\def\macro at code{%
+   \topsep \MacrocodeTopsep
+   \@beginparpenalty \predisplaypenalty
+   \if at inlabel\leavevmode\fi
+   \trivlist \parskip \z@ \item[]%
+   \macro at font
+   \leftskip\@totalleftmargin \advance\leftskip\MacroIndent
+   \rightskip\z@ \parindent\z@ \parfillskip\@flushglue
+   \blank at linefalse \def\par{\ifblank at line
+                             \leavevmode\fi
+                             \blank at linetrue\@@par
+                             \penalty\interlinepenalty}
+   \obeylines
+   \let\do\do at noligs \verbatim at nolig@list
+   \let\do\@makeother \dospecials
+   \global\@newlistfalse
+   \global\@minipagefalse
+   \ifcodeline at index
+     \everypar{\global\advance\c at CodelineNo\@ne
+               \llap{\theCodelineNo\ \hskip\@totalleftmargin}%
+               \check at module}%
+   \else \everypar{\check at module}%
+   \fi
+   \init at crossref}
+\newif\ifblank at line
+\def\endmacrocode{%
+                 \ifpm at module \endgroup \pm at modulefalse \fi
+                 \everypar{}%
+                 \global\@inlabelfalse
+                 \endtrivlist
+                 \close at crossref}
+\@ifundefined{MacroFont}{%
+  \if at compatibility
+    \def\MacroFont{\small
+                   \usefont\encodingdefault
+                           \ttdefault
+                           \mddefault
+                           \updefault
+                   }%
+  \else
+    \def\MacroFont{\fontencoding\encodingdefault
+                   \fontfamily\ttdefault
+                   \fontseries\mddefault
+                   \fontshape\updefault
+                   \small}%
+  \fi
+  }{}
+\@ifundefined{AltMacroFont}{%
+  \if at compatibility
+    \def\AltMacroFont{\small
+                      \usefont\encodingdefault
+                              \ttdefault
+                              \mddefault
+                              \sldefault
+                      }%
+  \else
+    \def\AltMacroFont{\fontencoding\encodingdefault
+                      \fontfamily\ttdefault
+                      \fontseries\mddefault
+                      \fontshape\sldefault
+                      \small
+                      }%
+ \fi
+  }{}
+\AtBeginDocument{\let\macro at font\MacroFont}
+\def\check at module{%
+  \ifcheck at modules
+    \ifpm at module \endgroup \pm at modulefalse \fi
+    \expandafter\futurelet\expandafter\next\expandafter\ch at percent
+  \fi}
+\newif\ifpm at module
+\def\DontCheckModules{\check at modulesfalse}
+\def\CheckModules{\check at modulestrue}
+\newif\ifcheck at modules  \check at modulestrue
+\def\ch at percent{%
+  \if \percentchar\next
+    \expandafter\check at angle
+  \fi}
+\def\check at angle#1{\futurelet\next\ch at angle}
+\begingroup
+\catcode`\<\active
+\gdef\ch at angle{\ifx<\next
+    \expandafter\ch at plus@etc
+  \else \percentchar \fi}
+\gdef\ch at plus@etc<{\futurelet\next\check at plus@etc}
+\gdef\check at plus@etc{%
+    \if +\next
+      \let\next\pm at module
+    \else\if -\next
+      \let\next\pm at module
+    \else\if *\next
+      \let\next\star at module
+    \else\if /\next
+      \let\next\slash at module
+    \else\ifx <\next
+      \percentchar
+    \else
+      \let\next\pm at module
+    \fi\fi\fi\fi\fi
+    \next}
+\endgroup
+\begingroup
+\catcode`\~=\active
+\lccode`\~=`\>
+\lowercase{\gdef\pm at module#1~}{\pm at moduletrue
+   \Module{#1}\begingroup
+     \advance\guard at level\@ne
+     \ifnum\guard at level>\c at StandardModuleDepth\AltMacroFont\fi
+}
+\lowercase{\gdef\star at module#1~}{%
+  \Module{#1}%
+  \global \advance \guard at level\@ne
+  \ifnum \guard at level>\c at StandardModuleDepth
+    \global\let\macro at font=\AltMacroFont \macro at font
+  \fi}
+\catcode`\>=\active
+\gdef\slash at module#1>{%
+  \Module{#1}%
+  \global \advance \guard at level\m at ne
+  \ifnum \guard at level=\c at StandardModuleDepth
+    \global\let\macro at font\MacroFont  \macro at font
+  \fi
+}
+\endgroup
+\newcounter{StandardModuleDepth}
+\newcount \guard at level
+\@ifundefined{Module}{%
+      \def\Module#1{\mod at math@codes$\langle\mathsf{#1}\rangle$}
+  }{}
+\def\mod at math@codes{\mathcode`\|="226A \mathcode`\&="2026
+                    \mathcode`\-="702D \mathcode`\+="702B
+                    \mathcode`\:="703A \mathcode`\=="703D }
+\newskip\MacrocodeTopsep \MacrocodeTopsep = 3pt plus 1.2pt minus 1pt
+\newdimen\MacroIndent
+\settowidth\MacroIndent{\rmfamily\scriptsize 00\ }
+\@namedef{macrocode*}{\macro at code\sxmacro at code}
+\expandafter\let\csname endmacrocode*\endcsname = \endmacrocode
+\catcode`\!=\catcode`\%   ^^A In this section there must not be
+                              ^^A any exclamation marks.
+                              ^^A
+\begingroup
+\catcode`\|=\z@ \catcode`\[=\@ne \catcode`\]=\tw@
+\catcode`\{=12 \catcode`\}=12
+\catcode`\%=12 \catcode`\ =\active \catcode`\\=\active
+!%    \end{macrocode*}
+!    Next follows the actual definition of  |\macro at code|;
+!    notice the
+!    use of the new escape character.  We manage to get the argument
+!    surrounded by the string |\end{macrocode}|, but at the end
+!    however, in spite of the actual characters used during the
+!    definition of
+!    this macro, |\end| with the argument |{macrocode}|
+!    will be executed, to ensure a balanced environment.
+!    \begin{macrocode*}
+|gdef|xmacro at code#1%    \end{macrocode}[#1|end[macrocode]]
+!%    \end{macrocode*}
+! \begin{macro}{\sxmacro at code}
+!    The definition of |\sxmacro at code| is completely analogous,
+!    only
+!    here a slightly different terminating string will be used.
+!    Note that the space is not active in this environment.
+!    \begin{macrocode}
+|catcode`| =12
+|gdef|sxmacro at code#1%    \end{macrocode*}[#1|end[macrocode*]]
+!%    \end{macrocode}
+!    because the |\catcode| changes have been made local by
+!    commencing a
+!    new group, there now follows the matching |\endgroup|
+!    in a rather
+!    unusual style of writing.
+!    \begin{macrocode}
+|endgroup
+!%    \end{macrocode}
+\catcode`\!=12
+\def\DescribeMacro{\leavevmode\@bsphack
+   \begingroup\MakePrivateLetters\Describe at Macro}
+\def\Describe at Macro#1{\endgroup
+              \marginpar{\raggedleft\PrintDescribeMacro{#1}}%
+              \SpecialUsageIndex{#1}\@esphack\ignorespaces}
+\def\DescribeEnv{\leavevmode\@bsphack\begingroup\MakePrivateLetters
+  \Describe at Env}
+\def\Describe at Env#1{\endgroup
+              \marginpar{\raggedleft\PrintDescribeEnv{#1}}%
+              \SpecialEnvIndex{#1}\@esphack\ignorespaces}
+\reversemarginpar
+\setlength\marginparpush{0pt}  \setlength\marginparwidth{8pc}
+{\catcode`\|=\z@ \catcode`\\=12
+|gdef|bslash{\}}
+\def\verbatim{\@beginparpenalty \predisplaypenalty \@verbatim
+              \MacroFont \frenchspacing \@vobeyspaces \@xverbatim}
+\@namedef{verbatim*}{\@beginparpenalty \predisplaypenalty \@verbatim
+              \MacroFont \@sxverbatim}
+\def\@verbatim{\trivlist \item[]\if at minipage\else\vskip\parskip\fi
+      \leftskip\@totalleftmargin\rightskip\z@
+      \parindent\z@\parfillskip\@flushglue\parskip\z@
+      \@@par
+      \@tempswafalse
+ \def\par{\if at tempswa\hbox{}\fi\@tempswatrue\@@par
+          \penalty\interlinepenalty
+   \check at percent}%
+ \obeylines
+ \let\do\do at noligs \verbatim at nolig@list
+ \let\do\@makeother \dospecials}
+{\catcode`\%=12
+ \long\gdef\check at percent#1{\ifx #1%\let\next\@empty \else
+                                    \let\next=#1\fi \next}}
+\def\verb{\relax\ifmmode\hbox\else\leavevmode\null\fi
+  \bgroup \let\do\do at noligs \verbatim at nolig@list
+    \ttfamily \verb at eol@error \let\do\@makeother \dospecials
+    \@ifstar{\@sverb}{\@vobeyspaces \frenchspacing \@sverb}}
+\let\verb at balance@group\@empty
+
+\def\verb at egroup{\global\let\verb at balance@group\@empty\egroup}
+
+\begingroup
+  \obeylines%
+  \gdef\verb at eol@error{\obeylines%
+    \def^^M{\verb at egroup\@latex at error{%
+           Text for \noexpand\verb command ended by end of line}\@ehc}}%
+\endgroup
+\def\@sverb#1{%
+  \catcode`#1\active  \lccode`\~`#1%
+  \gdef\verb at balance@group{\verb at egroup
+     \@latex at error{Illegal use of \noexpand\verb command}\@ehc}%
+  \aftergroup\verb at balance@group
+  \lowercase{\let~\verb at egroup}}
+\def\verbatim at nolig@list{\do\`\do\<\do\>\do\,\do\'\do\-}
+\def\do at noligs#1{%
+  \catcode`#1\active
+  \begingroup
+     \lccode`\~=`#1\relax
+     \lowercase{\endgroup\def~{\leavevmode\kern\z@\char`#1}}}
+\newcount\macro at cnt \macro at cnt=0
+\def\macro{\begingroup
+   \catcode`\\12
+   \MakePrivateLetters \m at cro@ \iftrue}
+\def\environment{\begingroup
+   \catcode`\\12
+   \MakePrivateLetters \m at cro@ \iffalse}
+\long\def\m at cro@#1#2{\endgroup \topsep\MacroTopsep \trivlist
+  \edef\saved at macroname{\string#2}%
+  #1
+    \let\saved at indexname\saved at macroname
+  \else
+    \edef\saved at indexname{\expandafter\@gobble\string#2}%
+  \fi
+  \def\makelabel##1{\llap{##1}}%
+  \if at inlabel
+    \let\@tempa\@empty \count@\macro at cnt
+    \loop \ifnum\count@>\z@
+      \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m at ne \repeat
+    \edef\makelabel##1{\llap{\vtop to\baselineskip
+                               {\@tempa\hbox{##1}\vss}}}%
+    \advance \macro at cnt \@ne
+  \else  \macro at cnt\@ne  \fi
+  \edef\@tempa{\noexpand\item[%
+     #1%
+       \noexpand\PrintMacroName
+     \else
+       \noexpand\PrintEnvName
+     \fi
+     {\string#2}]}%
+  \@tempa
+  \global\advance\c at CodelineNo\@ne
+   #1%
+      \SpecialMainIndex{#2}\nobreak
+      \DoNotIndex{#2}%
+   \else
+      \SpecialMainEnvIndex{#2}\nobreak
+   \fi
+  \global\advance\c at CodelineNo\m at ne
+  \ignorespaces}
+\let\endmacro \endtrivlist
+\let\endenvironment\endmacro
+\newskip\MacroTopsep     \MacroTopsep = 7pt plus 2pt minus 2pt
+\@ifundefined{PrintMacroName}
+   {\def\PrintMacroName#1{\strut \MacroFont \string #1\ }}{}
+\@ifundefined{PrintDescribeMacro}
+   {\def\PrintDescribeMacro#1{\strut \MacroFont \string #1\ }}{}
+\@ifundefined{PrintDescribeEnv}
+   {\def\PrintDescribeEnv#1{\strut \MacroFont #1\ }}{}
+\@ifundefined{PrintEnvName}
+   {\def\PrintEnvName#1{\strut \MacroFont #1\ }}{}
+\begingroup
+\catcode`\~\active
+\gdef\SpecialEscapechar#1{%
+    \begingroup
+     \uccode`\~`#1%
+     \uppercase{\gdef\active at escape@char{~}}%
+     \escapechar\m at ne  \xdef\special at escape@char{\string#1}%
+   \endgroup}
+\endgroup
+\begingroup   \catcode`\|=\z@  \catcode`\\=\active
+|gdef|init at crossref{|catcode`|\|active   |let\|bslash
+    |MakePrivateLetters
+    |catcode|expandafter`|special at escape@char|active
+    |expandafter|let|active at escape@char|scan at macro}
+|endgroup
+\SpecialEscapechar{\\}
+\@ifundefined{MakePrivateLetters}
+    {\let\MakePrivateLetters\makeatletter}{}
+\def\close at crossref{\SpecialEscapechar\\}
+\def\scan at macro{%
+   \special at escape@char
+   \step at checksum
+   \ifscan at allowed
+      \let\macro at namepart\@empty
+      \def\next{\futurelet\next\macro at switch}%
+   \else \let\next\@empty \fi
+   \next}
+\newif\ifscan at allowed    \scan at allowedtrue
+\def\DisableCrossrefs{\@bsphack\scan at allowedfalse\@esphack}
+\def\EnableCrossrefs{\@bsphack\scan at allowedtrue
+                     \def\DisableCrossrefs{\@bsphack\@esphack}\@esphack}
+\def\macro at switch{\ifcat\noexpand\next a%
+     \let\next\macro at name
+     \else \let\next\short at macro  \fi
+   \next}
+\begingroup
+\catcode`\&=12
+\gdef\short at macro#1{\begingroup
+   \uccode`\&=\expandafter`\string#1%
+   \uppercase{\def\x{\def\macro at namepart{&}}}%
+   \expandafter\endgroup\x
+   \ifnot at excluded
+     \produce at index{#1}\fi
+    \scan at allowedfalse#1%
+    \scan at allowedtrue }
+\endgroup
+\def\produce at index#1{%
+  \if\noexpand#1\special at escape@char
+     \scan at allowedfalse \it at is@a\special at escape@char \else
+     \if\noexpand#1\bslash \it at is@a\bslash \else
+       \if\noexpand#1\space \it at is@a\space \else
+         \ifx#1\par
+         \it at is@a\space \else
+         \ifx#1\relax \else
+           \if\noexpand#1\bgroup \LeftBraceIndex \else
+             \if\noexpand#1\egroup \RightBraceIndex \else
+               \if\noexpand#1\percentchar \PercentIndex \else
+                 \it at is@a{\string#1}%
+       \fi \fi \fi \fi \fi \fi \fi \fi}
+\def\macro at name#1{\edef\macro at namepart{\macro at namepart#1}%
+     \futurelet\next\more at macroname}
+\def\more at macroname{\ifcat\noexpand\next a%
+     \let\next\macro at name
+     \else \let\next\macro at finish \fi
+     \next}
+\def\macro at finish{%
+  \macro at namepart
+  \ifnot at excluded
+     \edef\@tempa{\noexpand\SpecialIndex{\bslash\macro at namepart}}%
+     \@tempa  \fi}
+\def\DoNotIndex{\begingroup \MakePrivateLetters
+    \catcode`\\12
+    \do at not@index}
+\long\def\do at not@index#1{%
+    \endgroup
+    \addto at hook\index at excludelist{#1,}}
+\long\def\addto at hook#1#2{#1\expandafter{\the#1#2}}
+\newtoks\index at excludelist
+\index at excludelist{}
+\begingroup
+\catcode`\|=0%
+\catcode`\\=12
+|gdef|ifnot at excluded{|expandafter
+     |expanded at notin|expandafter{|expandafter
+     \|macro at namepart,}{|the|index at excludelist}}
+|endgroup
+\def\expanded at notin#1#2{%
+ \def\in@@##1#1##2##3\in@@{%
+  \ifx\expanded at notin##2}%
+ \expandafter\in@@#2#1\expanded at notin\in@@}
+\@ifundefined{actualchar}{\def\actualchar{=}}{}
+\@ifundefined{quotechar}{\def\quotechar{!}}{}
+\@ifundefined{levelchar}{\def\levelchar{>}}{}
+\@ifundefined{encapchar}{\def\encapchar{|}}{}
+\@ifundefined{verbatimchar}{\def\verbatimchar{+}}{}
+\def\SpecialIndex#1{\@bsphack\special at index{\expandafter\@gobble
+                                      \string#1\actualchar
+      \string\verb\quotechar*\verbatimchar\string#1\verbatimchar}%
+    \@esphack}
+
+\def\SpecialMainIndex#1{\@bsphack\SpecialIndex@{#1}{\encapchar main}%
+                        \@esphack}
+\begingroup
+ \catcode`\|=0
+ \catcode`\\=12
+ |gdef|@SpecialIndexHelper@#1#2|@nil{%
+   |if |noexpand#1\%
+     |gdef|@gtempa{#2}%
+   |else
+     |begingroup
+       |escapechar|m at ne
+       |expandafter|gdef|expandafter|@gtempa|expandafter{|string#1#2}%
+     |endgroup
+   |fi}
+|endgroup
+\def\SpecialIndex@#1#2{%
+   \@SpecialIndexHelper@#1\@nil
+   \def\@tempb{ }%
+   \ifcat \@tempb\@gtempa
+      \special at index{\quotechar\space\actualchar
+                     \string\verb\quotechar*\verbatimchar
+                     \quotechar\bslash\quotechar\space\verbatimchar#2}%
+   \else
+     \def\@tempb##1##2\relax{\ifx\relax##2\relax
+          \def\@tempc{\special at index{\quotechar##1\actualchar
+                      \string\verb\quotechar*\verbatimchar
+                      \quotechar\bslash\quotechar##1\verbatimchar#2}}%
+        \else
+          \def\@tempc{\special at index{##1##2\actualchar
+                       \string\verb\quotechar*\verbatimchar
+                       \bslash##1##2\verbatimchar#2}}%
+        \fi}%
+     \expandafter\@tempb\@gtempa\relax
+     \@tempc
+   \fi}
+\def\SpecialMainEnvIndex#1{\@bsphack\special at index{%
+                                      #1\actualchar
+                                      {\string\ttfamily\space#1}
+                                         (environment)%
+                                      \encapchar main}%
+    \special at index{environments:\levelchar#1\actualchar{%
+                   \string\ttfamily\space#1}\encapchar
+           main}\@esphack}
+\def\SpecialUsageIndex#1{\@bsphack
+   {\let\special at index\index\SpecialIndex@{#1}{\encapchar usage}}%
+   \@esphack}
+\def\SpecialEnvIndex#1{\@bsphack
+    \index{#1\actualchar{\protect\ttfamily#1}
+           (environment)\encapchar usage}%
+    \index{environments:\levelchar#1\actualchar
+          {\protect\ttfamily#1}\encapchar usage}\@esphack}
+\def\SortIndex#1#2{\index{#1\actualchar#2}}
+\def\it at is@a#1{\special at index{\quotechar #1\actualchar
+                          \string\verb\quotechar*\verbatimchar
+                          \quotechar\bslash\quotechar#1\verbatimchar}}
+\@ifundefined{LeftBraceIndex}{\def\LeftBraceIndex{%
+   \special at index{\bgroup\actualchar\string\verb\quotechar*\verbatimchar
+          \quotechar\bslash{\verbatimchar\string\iffalse}\string\fi}}}{}
+
+\@ifundefined{RightBraceIndex}{\def\RightBraceIndex{%
+ \special at index{\egroup\actualchar\string\iffalse{\string\fi\string\verb
+           \quotechar*\verbatimchar\quotechar\bslash}\verbatimchar}}}{}
+\@ifundefined{PercentIndex}
+  {\def\PercentIndex{\it at is@a\percentchar}}{}
+\def\OldMakeindex{\def\PercentIndex{%
+    \special at index{\quotechar\percentchar\actualchar\string\verb
+           \quotechar*\verbatimchar\quotechar\bslash
+           \percentchar\percentchar\verbatimchar}}}
+{\catcode`\%=12 \gdef\percentchar{%}}
+\newif\ifhave at multicol
+\IfFileExists{multicol.sty}{\have at multicoltrue
+                            \RequirePackage{multicol}%
+                           }{}
+
+\newdimen\IndexMin         \IndexMin       = 80pt
+\newcount\c at IndexColumns   \c at IndexColumns = 3
+\ifhave at multicol
+  \renewenvironment{theindex}
+    {\begin{multicols}\c at IndexColumns[\index at prologue][\IndexMin]%
+      \IndexParms \let\item\@idxitem \ignorespaces}%
+    {\end{multicols}}
+\else
+  \typeout{Can't find multicol.sty -- will use normal index layout if
+     necessary.}
+  \def\theindex{\@restonecoltrue\if at twocolumn\@restonecolfalse\fi
+    \columnseprule \z@  \columnsep 35\p@
+    \twocolumn[\index at prologue]%
+    \IndexParms \let\item\@idxitem \ignorespaces}
+  \def\endtheindex{\if at restonecol\onecolumn\else\clearpage\fi}
+\fi
+\long\def\IndexPrologue#1{\@bsphack\def\index at prologue{#1}\@esphack}
+\@ifundefined{index at prologue}
+     {\def\index at prologue{\section*{Index}%
+                 \markboth{Index}{Index}%
+                 Numbers written in italic refer to the page
+                 where the corresponding entry is described;
+                 numbers underlined refer to the
+                 \ifcodeline at index
+                   code line of the
+                 \fi
+                 definition; numbers in roman refer to the
+                 \ifcodeline at index
+                   code lines
+                 \else
+                   pages
+                 \fi
+                 where the entry is used.
+                 }}{}
+\@ifundefined{IndexParms}
+    {\def\IndexParms{%
+       \parindent \z@
+       \columnsep 15pt
+       \parskip 0pt plus 1pt
+       \rightskip 15pt
+       \mathsurround \z@
+       \parfillskip=-15pt
+        \small
+       \def\@idxitem{\par\hangindent 30pt}%
+       \def\subitem{\@idxitem\hspace*{15pt}}%
+       \def\subsubitem{\@idxitem\hspace*{25pt}}%
+       \def\indexspace{\par\vspace{10pt plus 2pt minus 3pt}}%
+      }}{}
+\def\efill{\hfill\nopagebreak}%
+\def\dotfill{\leaders\hbox to.6em{\hss .\hss}\hskip\z@ plus  1fill}%
+\def\dotfil{\leaders\hbox to.6em{\hss .\hss}\hfil}%
+\def\pfill{\unskip~\dotfill\penalty500\strut\nobreak
+               \dotfil~\ignorespaces}%
+\def\*{\leavevmode\lower.8ex\hbox{$\,\widetilde{\ }\,$}}
+\@ifundefined{main}{\def\main#1{\underline{#1}}}{}
+\@ifundefined{usage}{\def\usage#1{\textit{#1}}}{}
+\def\PrintIndex{\@input@{\jobname.ind}%
+                \global\let\PrintIndex\@empty}
+\def\changes{\@bsphack\begingroup\@sanitize
+   \catcode`\\\z@ \catcode`\ 10 \MakePercentIgnore
+   \changes@}
+\def\changes@#1#2#3{%
+  \protected at edef\@tempa{\noexpand\glossary{#1\levelchar
+                                 \ifx\saved at macroname\@empty
+                                   \space
+                                   \actualchar
+                                   \generalname
+                                 \else
+                                   \saved at indexname
+                                   \actualchar
+                                   \string\verb\quotechar*%
+                                   \verbatimchar\saved at macroname
+                                   \verbatimchar
+                                 \fi
+                                 :\levelchar #3}}%
+  \@tempa\endgroup\@esphack}
+\def\saved at macroname{}
+\def\saved at indexname{}
+\def\generalname{General}
+\let\RecordChanges\makeglossary
+\newdimen\GlossaryMin         \GlossaryMin       = 80pt
+\newcount\c at GlossaryColumns   \c at GlossaryColumns = 2
+\ifhave at multicol
+  \newenvironment{theglossary}{%
+    \begin{multicols}\c at GlossaryColumns
+                     [\glossary at prologue][\GlossaryMin]%
+    \GlossaryParms \let\item\@idxitem \ignorespaces}%
+   {\end{multicols}}
+\else
+  \newenvironment{theglossary}{%
+      \@restonecoltrue\if at twocolumn\@restonecolfalse\fi
+      \columnseprule \z@  \columnsep 35\p@
+      \twocolumn[\glossary at prologue]%
+      \GlossaryParms \let\item\@idxitem \ignorespaces}
+    {\if at restonecol\onecolumn\else\clearpage\fi}
+\fi
+\long\def\GlossaryPrologue#1{\@bsphack
+                             \def\glossary at prologue{#1}%
+                             \@esphack}
+\@ifundefined{glossary at prologue}
+     {\def\glossary at prologue{\section*{{Change History}}%
+                 \markboth{{Change History}}{{Change History}}%
+                 }}{}
+\@ifundefined{GlossaryParms}{\let\GlossaryParms\IndexParms
+  \expandafter\def\expandafter\GlossaryParms\expandafter{\GlossaryParms
+     \rightskip 15pt plus 1fil
+     \parfillskip -15pt plus -1fil\relax}
+}{}
+\def\PrintChanges{\@input@{\jobname.gls}%
+                  \global\let\PrintChanges\@empty}
+\newcommand\AlsoImplementation{%
+   \long\def\StopEventually##1{\@bsphack\gdef\Finale{##1%
+                  \check at checksum}%
+              \init at checksum
+              \@esphack}%
+         }
+\AlsoImplementation
+\def\OnlyDescription{\@bsphack\long\def\StopEventually##1{%
+           ##1\endinput}\@esphack}
+\let\Finale\relax
+\ifx\l at nohyphenation\undefined
+  \newlanguage\l at nohyphenation
+\fi
+\DeclareRobustCommand\meta[1]{%
+     \ensuremath\langle
+     \ifmmode \expandafter \nfss at text \fi
+     {%
+      \meta at font@select
+      \edef\meta at hyphen@restore
+        {\hyphenchar\the\font\the\hyphenchar\font}%
+      \hyphenchar\font\m at ne
+      \language\l at nohyphenation
+      #1\/%
+      \meta at hyphen@restore
+     }\ensuremath\rangle
+}
+\def\meta at font@select{\itshape}
+\def\IndexInput#1{%
+     \begingroup \macro at code
+   \frenchspacing \@vobeyspaces
+     \input{#1}\endmacrocode
+     \endgroup}
+\def\maketitle{\par
+      \begingroup \def \thefootnote {\fnsymbol {footnote}}%
+      \setcounter {footnote}\z@
+      \def\@makefnmark{\hbox to\z@{$\m at th^{\@thefnmark}$\hss}}%
+      \long\def\@makefntext##1{\parindent 1em\noindent
+            \hbox to1.8em{\hss$\m at th^{\@thefnmark}$}##1}%
+      \if at twocolumn \twocolumn [\@maketitle ]%
+      \else \newpage \global \@topnum \z@ \@maketitle \fi
+       \thispagestyle{titlepage}\@thanks \endgroup
+      \setcounter {footnote}\z@
+      \gdef\@date{\today}\gdef\@thanks{}%
+      \gdef\@author{}\gdef\@title{}}
+\@ifundefined{ps at titlepage}
+    {\let\ps at titlepage=\ps at plain}{}
+\def\MakeShortVerb{%
+  \@ifstar
+    {\def\@shortvrbdef{\verb*}\@MakeShortVerb}%
+    {\def\@shortvrbdef{\verb}\@MakeShortVerb}}
+\def\@MakeShortVerb#1{%
+  \expandafter\ifx\csname cc\string#1\endcsname\relax
+    \@shortvrbinfo{Made }{#1}\@shortvrbdef
+    \add at special{#1}%
+    \expandafter
+    \xdef\csname cc\string#1\endcsname{\the\catcode`#1}%
+    \begingroup
+      \catcode`\~\active  \lccode`\~`#1%
+      \lowercase{%
+      \global\expandafter\let
+         \csname ac\string#1\endcsname~%
+      \expandafter\gdef\expandafter~\expandafter{\@shortvrbdef~}}%
+    \endgroup
+    \global\catcode`#1\active
+  \else
+    \@shortvrbinfo\@empty{#1 already}{\@empty\verb(*)}%
+  \fi}
+\def\DeleteShortVerb#1{%
+  \expandafter\ifx\csname cc\string#1\endcsname\relax
+    \@shortvrbinfo\@empty{#1 not}{\@empty\verb(*)}%
+  \else
+    \@shortvrbinfo{Deleted }{#1 as}{\@empty\verb(*)}%
+    \rem at special{#1}%
+    \global\catcode`#1\csname cc\string#1\endcsname
+    \global \expandafter\let \csname cc\string#1\endcsname \relax
+    \ifnum\catcode`#1=\active
+      \begingroup
+        \catcode`\~\active   \lccode`\~`#1%
+        \lowercase{%
+          \global\expandafter\let\expandafter~%
+          \csname ac\string#1\endcsname}%
+      \endgroup \fi \fi}
+\def\@shortvrbinfo#1#2#3{%
+  \PackageInfo{doc}{%
+     #1\expandafter\@gobble\string#2 a short reference
+                                          for \expandafter\string#3}}
+\def\add at special#1{%
+  \rem at special{#1}%
+  \expandafter\gdef\expandafter\dospecials\expandafter
+    {\dospecials \do #1}%
+  \expandafter\gdef\expandafter\@sanitize\expandafter
+    {\@sanitize \@makeother #1}}
+\def\rem at special#1{%
+  \def\do##1{%
+    \ifnum`#1=`##1 \else \noexpand\do\noexpand##1\fi}%
+  \xdef\dospecials{\dospecials}%
+  \begingroup
+    \def\@makeother##1{%
+      \ifnum`#1=`##1 \else \noexpand\@makeother\noexpand##1\fi}%
+    \xdef\@sanitize{\@sanitize}%
+  \endgroup}
+\def\MakeShortverb{\typeout{*** Switch to \noexpand\MakeShortVerb
+                         syntax, this is obsolete ***}\MakeShortVerb}
+\def\DeleteShortverb{\typeout{*** Switch to \noexpand\DeleteShortVerb
+                         syntax, this is obsolete ***}\DeleteShortVerb}
+\def\init at checksum{\relax
+    \global\bslash at cnt\z@}
+\def\check at checksum{\relax
+  \ifnum\check at sum>\m at ne
+     \ifnum\check at sum=\z@
+       \typeout{**********************************}%
+       \typeout{* This macro file has no checksum!}%
+       \typeout{* The checksum should be \the\bslash at cnt!}%
+       \typeout{**********************************}%
+     \else
+       \ifnum\check at sum=\bslash at cnt
+         \typeout{*******************}%
+         \typeout{* Checksum passed *}%
+         \typeout{*******************}%
+       \else
+         \PackageError{doc}{Checksum not passed
+                    (\the\check at sum<>\the\bslash at cnt)}%
+          {The file currently documented seems to be wrong.^^J%
+           Try to get a correct version.}%
+       \fi
+     \fi
+  \fi
+  \global\check at sum\m at ne}
+\newcount\check at sum           \check at sum  = \m at ne
+\newcount\bslash at cnt          \bslash at cnt = \z@
+\def\CheckSum#1{\@bsphack\global\check at sum#1\relax\@esphack}
+\def\step at checksum{\global\advance\bslash at cnt\@ne}
+\def\CharacterTable{\begingroup \CharTableChanges \character at table}
+\begingroup
+  \catcode`\~=11
+  \gdef\character at table#1{\def\used~table{#1}%
+      \ifx\used~table\default~table
+           \typeout{***************************}%
+           \typeout{* Character table correct *}%
+           \typeout{***************************}%
+      \else
+         \PackageError{doc}{Character table corrupted}
+                           {\the\wrong at table}
+         \show\default~table
+         \show\used~table
+      \fi
+      \endgroup}
+  \global\let\CharTableChanges\@empty
+  \makeatother
+  \gdef\default~table
+     {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+      Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+      Digits        \0\1\2\3\4\5\6\7\8\9
+      Exclamation   \!     Double quote  \"     Hash (number) \#
+      Dollar        \$     Percent       \%     Ampersand     \&
+      Acute accent  \'     Left paren    \(     Right paren   \)
+      Asterisk      \*     Plus          \+     Comma         \,
+      Minus         \-     Point         \.     Solidus       \/
+      Colon         \:     Semicolon     \;     Less than     \<
+      Equals        \=     Greater than  \>     Question mark \?
+      Commercial at \@     Left bracket  \[     Backslash     \\
+      Right bracket \]     Circumflex    \^     Underscore    \_
+      Grave accent  \`     Left brace    \{     Vertical bar  \|
+      Right brace   \}     Tilde         \~}
+\endgroup
+  \newhelp\wrong at table{Some of the ASCII characters are corrupted.^^J
+            I now \string\show\space you both tables for comparison.}
+\newif\ifcodeline at index \codeline at indexfalse
+\let\CodelineNumbered\codeline at indextrue
+\def\codeline at wrindex#1{\if at filesw
+        \immediate\write\@indexfile
+            {\string\indexentry{#1}%
+            {\number\c at CodelineNo}}\fi}
+\let\special at index = \@gobble
+\def\CodelineIndex{\makeindex
+                   \codeline at indextrue
+                   \let\special at index\codeline at wrindex}
+\def\PageIndex{\makeindex
+               \codeline at indexfalse
+               \let\special at index\index}
+\newcount\c at CodelineNo  \c at CodelineNo\z@
+\@ifundefined{theCodelineNo}
+  {\ifx\selectfont\undefined
+     \def\theCodelineNo{\rmfamily\scriptsize\arabic{CodelineNo}}%
+   \else
+     \def\theCodelineNo{\reset at font\scriptsize\arabic{CodelineNo}}%
+   \fi}
+  {}
+       \tolerance=1000\relax
+{ \catcode`\"=12
+  \global\mathcode`\\="705C \global\mathcode`\@="7040 }
+\@ifundefined{DocstyleParms}{}{\DocstyleParms}
+\let\DocstyleParms\relax
+\@ifundefined{AmSTeX}
+   {\def\AmSTeX{\leavevmode\hbox{$\mathcal A\kern-.2em\lower.376ex%
+        \hbox{$\mathcal M$}\kern-.2em\mathcal S$-\TeX}}}{}
+\@ifundefined{BibTeX}
+   {\def\BibTeX{{\rmfamily B\kern-.05em%
+    \textsc{i\kern-.025em b}\kern-.08em%
+    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}}{}
+\@ifundefined{SliTeX}
+   {\def\SliTeX{{\rmfamily S\kern-.06emL\kern-.18em\raise.32ex\hbox
+                {\scshape i}\kern -.03em\TeX}}}{}
+\@ifundefined{PlainTeX}{\def\PlainTeX{\textsc{Plain}\kern2pt\TeX}}{}
+\@ifundefined{Web}{\def\Web{\textsc{Web}}}{}
+\def\MakePercentIgnore{\catcode`\%9\relax}
+\def\MakePercentComment{\catcode`\%14\relax}
+\def\DocInput#1{\MakePercentIgnore\input{#1}\MakePercentComment}
+\def\GetFileInfo#1{%
+  \def\filename{#1}%
+  \def\@tempb##1 ##2 ##3\relax##4\relax{%
+    \def\filedate{##1}%
+    \def\fileversion{##2}%
+    \def\fileinfo{##3}}%
+  \edef\@tempa{\csname ver@#1\endcsname}%
+  \expandafter\@tempb\@tempa\relax? ? \relax\relax}
+\endinput
+%%
+%% End of file `doc.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex-dev/base/doc-2016-02-15.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex-dev/base/doc-2021-06-01.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/doc-2021-06-01.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/doc-2021-06-01.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -0,0 +1,838 @@
+%%
+%% This is file `doc.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% doc.dtx  (with options: `package')
+%% 
+%% This is a generated file.
+%% 
+%% The source is maintained by the LaTeX Project team and bug
+%% reports for it can be opened at https://latex-project.org/bugs.html
+%% (but please observe conditions on bug reports sent to that address!)
+%% 
+%% 
+%% Copyright (C) 1993-2021
+%% The LaTeX Project and any individual authors listed elsewhere
+%% in this file.
+%% 
+%% This file was generated from file(s) of the LaTeX base system.
+%% --------------------------------------------------------------
+%% 
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%    https://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008 or later.
+%% 
+%% This file has the LPPL maintenance status "maintained".
+%% 
+%% This file may only be distributed together with a copy of the LaTeX
+%% base system. You may however distribute the LaTeX base system without
+%% such generated files.
+%% 
+%% The list of all files belonging to the LaTeX base distribution is
+%% given in the file `manifest.txt'. See also `legal.txt' for additional
+%% information.
+%% 
+%% The list of derived (unpacked) files belonging to the distribution
+%% and covered by LPPL is defined by the unpacking scripts (with
+%% extension .ins) which are part of the distribution.
+\NeedsTeXFormat{LaTeX2e}[1994/12/01]
+ \ProvidesPackage{doc}
+  [2021/05/28 v2.1n
+   Standard LaTeX documentation package (FMi)]
+%%
+%% Package `doc' to use with LaTeX 2e
+%% Copyright (C) 1989-2020 Frank Mittelbach, all rights reserved.
+\@ifundefined{macro at cnt}{}{\endinput}
+\catcode`\^^A=14
+\AtBeginDocument{\catcode`\^^A=14\relax}
+\def\macrocode{\macro at code
+   \frenchspacing \@vobeyspaces
+   \xmacro at code}
+\def\macro at code{%
+   \topsep \MacrocodeTopsep
+   \@beginparpenalty \predisplaypenalty
+   \if at inlabel\leavevmode\fi
+   \trivlist \parskip \z@ \item[]%
+   \global\setbox\@labels\box\voidb at x
+   \macro at font
+   \leftskip\@totalleftmargin \advance\leftskip\MacroIndent
+   \rightskip\z@ \parindent\z@ \parfillskip\@flushglue
+   \blank at linefalse \def\par{\ifblank at line
+                             \leavevmode\fi
+                             \blank at linetrue\@@par
+                             \penalty\interlinepenalty}
+   \obeylines
+   \let\do\do at noligs \verbatim at nolig@list
+   \let\do\@makeother \dospecials
+   \global\@newlistfalse
+   \global\@minipagefalse
+   \ifcodeline at index
+     \everypar{\global\advance\c at CodelineNo\@ne
+               \llap{\theCodelineNo\ \hskip\@totalleftmargin}%
+               \check at module}%
+   \else \everypar{\check at module}%
+   \fi
+   \init at crossref}
+\newif\ifblank at line
+\def\endmacrocode{%
+                 \ifpm at module \endgroup \pm at modulefalse \fi
+                 \everypar{}%
+                 \global\@inlabelfalse
+                 \endtrivlist
+                 \close at crossref}
+\@ifundefined{MacroFont}{%
+  \if at compatibility
+    \def\MacroFont{\small
+                   \usefont\encodingdefault
+                           \ttdefault
+                           \mddefault
+                           \shapedefault
+                   }%
+  \else
+    \def\MacroFont{\fontencoding\encodingdefault
+                   \fontfamily\ttdefault
+                   \fontseries\mddefault
+                   \fontshape\shapedefault
+                   \small}%
+  \fi
+  }{}
+\@ifundefined{AltMacroFont}{%
+  \if at compatibility
+    \def\AltMacroFont{\small
+                      \usefont\encodingdefault
+                              \ttdefault
+                              \mddefault
+                              \sldefault
+                      }%
+  \else
+    \def\AltMacroFont{\fontencoding\encodingdefault
+                      \fontfamily\ttdefault
+                      \fontseries\mddefault
+                      \fontshape\sldefault
+                      \small
+                      }%
+ \fi
+  }{}
+\AtBeginDocument{\let\macro at font\MacroFont}
+\def\check at module{%
+  \ifcheck at modules
+    \ifpm at module \endgroup \pm at modulefalse \fi
+    \expandafter\futurelet\expandafter\next\expandafter\ch at percent
+  \fi}
+\newif\ifpm at module
+\def\DontCheckModules{\check at modulesfalse}
+\def\CheckModules{\check at modulestrue}
+\newif\ifcheck at modules  \check at modulestrue
+\def\ch at percent{%
+  \if \percentchar\next
+    \expandafter\check at angle
+  \fi}
+\def\check at angle#1{\futurelet\next\ch at angle}
+\begingroup
+\catcode`\<\active
+\gdef\ch at angle{\ifx<\next
+    \expandafter\ch at plus@etc
+  \else \percentchar \fi}
+\gdef\ch at plus@etc<{\futurelet\next\check at plus@etc}
+\gdef\check at plus@etc{%
+    \if +\next
+      \let\next\pm at module
+    \else\if -\next
+      \let\next\pm at module
+    \else\if *\next
+      \let\next\star at module
+    \else\if /\next
+      \let\next\slash at module
+    \else\ifx <\next
+      \percentchar
+    \else
+      \let\next\pm at module
+    \fi\fi\fi\fi\fi
+    \next}
+\endgroup
+\begingroup
+\catcode`\~=\active
+\lccode`\~=`\>
+\lowercase{\gdef\pm at module#1~}{\pm at moduletrue
+   \Module{#1}\begingroup
+     \advance\guard at level\@ne
+     \ifnum\guard at level>\c at StandardModuleDepth\AltMacroFont\fi
+}
+\lowercase{\gdef\star at module#1~}{%
+  \Module{#1}%
+  \global \advance \guard at level\@ne
+  \ifnum \guard at level>\c at StandardModuleDepth
+    \global\let\macro at font=\AltMacroFont \macro at font
+  \fi}
+\catcode`\>=\active
+\gdef\slash at module#1>{%
+  \Module{#1}%
+  \global \advance \guard at level\m at ne
+  \ifnum \guard at level=\c at StandardModuleDepth
+    \global\let\macro at font\MacroFont  \macro at font
+  \fi
+}
+\endgroup
+\newcounter{StandardModuleDepth}
+\newcount \guard at level
+\@ifundefined{Module}{%
+      \def\Module#1{\mod at math@codes$\langle\mathsf{#1}\rangle$}
+  }{}
+\def\mod at math@codes{\mathcode`\|="226A \mathcode`\&="2026
+                    \mathcode`\-="702D \mathcode`\+="702B
+                    \mathcode`\:="703A \mathcode`\=="703D }
+\newskip\MacrocodeTopsep \MacrocodeTopsep = 3pt plus 1.2pt minus 1pt
+\newdimen\MacroIndent
+\settowidth\MacroIndent{\rmfamily\scriptsize 00\ }
+\@namedef{macrocode*}{\macro at code\sxmacro at code}
+\expandafter\let\csname endmacrocode*\endcsname = \endmacrocode
+\catcode`\!=\catcode`\%   ^^A In this section there must not be
+                              ^^A any exclamation marks.
+                              ^^A
+\begingroup
+\catcode`\|=\z@ \catcode`\[=\@ne \catcode`\]=\tw@
+\catcode`\{=12 \catcode`\}=12
+\catcode`\%=12 \catcode`\ =\active \catcode`\\=\active
+!%    \end{macrocode*}
+!    Next follows the actual definition of  |\macro at code|;
+!    notice the
+!    use of the new escape character.  We manage to get the argument
+!    surrounded by the string |\end{macrocode}|, but at the end
+!    however, in spite of the actual characters used during the
+!    definition of
+!    this macro, |\end| with the argument |{macrocode}|
+!    will be executed, to ensure a balanced environment.
+!    \begin{macrocode*}
+|gdef|xmacro at code#1%    \end{macrocode}[#1|end[macrocode]]
+!%    \end{macrocode*}
+! \begin{macro}{\sxmacro at code}
+!    The definition of |\sxmacro at code| is completely analogous,
+!    only
+!    here a slightly different terminating string will be used.
+!    Note that the space is not active in this environment.
+!    \begin{macrocode}
+|catcode`| =12
+|gdef|sxmacro at code#1%    \end{macrocode*}[#1|end[macrocode*]]
+!%    \end{macrocode}
+!    because the |\catcode| changes have been made local by
+!    commencing a
+!    new group, there now follows the matching |\endgroup|
+!    in a rather
+!    unusual style of writing.
+!    \begin{macrocode}
+|endgroup
+!%    \end{macrocode}
+\catcode`\!=12
+\def\DescribeMacro{\leavevmode\@bsphack
+   \begingroup\MakePrivateLetters\Describe at Macro}
+\def\Describe at Macro#1{\endgroup
+              \marginpar{\raggedleft\PrintDescribeMacro{#1}}%
+              \SpecialUsageIndex{#1}\@esphack\ignorespaces}
+\def\DescribeEnv{\leavevmode\@bsphack\begingroup\MakePrivateLetters
+  \Describe at Env}
+\def\Describe at Env#1{\endgroup
+              \marginpar{\raggedleft\PrintDescribeEnv{#1}}%
+              \SpecialEnvIndex{#1}\@esphack\ignorespaces}
+\reversemarginpar
+\setlength\marginparpush{0pt}  \setlength\marginparwidth{8pc}
+{\catcode`\|=\z@ \catcode`\\=12
+|gdef|bslash{\}}
+\def\verbatim{\@beginparpenalty \predisplaypenalty \@verbatim
+              \MacroFont \frenchspacing \@vobeyspaces \@xverbatim}
+\@namedef{verbatim*}{\@beginparpenalty \predisplaypenalty \@verbatim
+              \@setupverbvisiblespace
+              \MacroFont \@vobeyspaces \@sxverbatim}
+\def\@verbatim{\trivlist \item[]\if at minipage\else\vskip\parskip\fi
+      \leftskip\@totalleftmargin\rightskip\z@
+      \parindent\z@\parfillskip\@flushglue\parskip\z@
+      \@@par
+      \@tempswafalse
+ \def\par{\if at tempswa\hbox{}\fi\@tempswatrue\@@par
+          \penalty\interlinepenalty
+   \check at percent}%
+ \obeylines
+ \let\do\do at noligs \verbatim at nolig@list
+ \let\do\@makeother \dospecials}
+{\catcode`\%=12
+ \long\gdef\check at percent#1{\ifx #1%\let\next\@empty \else
+                                    \let\next=#1\fi \next}}
+\def\verb{\relax\ifmmode\hbox\else\leavevmode\null\fi
+  \bgroup \let\do\do at noligs \verbatim at nolig@list
+    \ttfamily \verb at eol@error \let\do\@makeother \dospecials
+    \@ifstar{\@sverb}{\@vobeyspaces \frenchspacing \@sverb}}
+\let\verb at balance@group\@empty
+
+\def\verb at egroup{\global\let\verb at balance@group\@empty\egroup}
+
+\begingroup
+  \obeylines%
+  \gdef\verb at eol@error{\obeylines%
+    \def^^M{\verb at egroup\@latex at error{%
+            \noexpand\verb ended by end of line}\@ehc}}%
+\endgroup
+\def\verbatim at nolig@list{\do\`\do\<\do\>\do\,\do\'\do\-}
+\def\do at noligs#1{%
+  \catcode`#1\active
+  \begingroup
+     \lccode`\~=`#1\relax
+     \lowercase{\endgroup\def~{\leavevmode\kern\z@\char`#1}}}
+\newcount\macro at cnt \macro at cnt=0
+\def\macro{\begingroup
+   \catcode`\\12
+   \MakePrivateLetters \m at cro@ \iftrue}
+\def\environment{\begingroup
+   \catcode`\\12
+   \MakePrivateLetters \m at cro@ \iffalse}
+\long\def\m at cro@#1#2{\endgroup \topsep\MacroTopsep \trivlist
+  \edef\saved at macroname{\string#2}%
+  #1
+    \let\saved at indexname\saved at macroname
+  \else
+    \edef\saved at indexname{\expandafter\@gobble\string#2}%
+  \fi
+  \def\makelabel##1{\llap{##1}}%
+  \if at inlabel
+    \let\@tempa\@empty \count@\macro at cnt
+    \loop \ifnum\count@>\z@
+      \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m at ne \repeat
+    \edef\makelabel##1{\llap{\vtop to\baselineskip
+                               {\@tempa\hbox{##1}\vss}}}%
+    \advance \macro at cnt \@ne
+  \else  \macro at cnt\@ne  \fi
+  \edef\@tempa{\noexpand\item[%
+     #1%
+       \noexpand\PrintMacroName
+     \else
+       \noexpand\PrintEnvName
+     \fi
+     {\string#2}]}%
+  \@tempa
+  \global\advance\c at CodelineNo\@ne
+   #1%
+      \SpecialMainIndex{#2}\nobreak
+      \DoNotIndex{#2}%
+   \else
+      \SpecialMainEnvIndex{#2}\nobreak
+   \fi
+  \global\advance\c at CodelineNo\m at ne
+  \ignorespaces}
+\let\endmacro \endtrivlist
+\let\endenvironment\endmacro
+\newskip\MacroTopsep     \MacroTopsep = 7pt plus 2pt minus 2pt
+\@ifundefined{PrintMacroName}
+   {\def\PrintMacroName#1{\strut \MacroFont \string #1\ }}{}
+\@ifundefined{PrintDescribeMacro}
+   {\def\PrintDescribeMacro#1{\strut \MacroFont \string #1\ }}{}
+\@ifundefined{PrintDescribeEnv}
+   {\def\PrintDescribeEnv#1{\strut \MacroFont #1\ }}{}
+\@ifundefined{PrintEnvName}
+   {\def\PrintEnvName#1{\strut \MacroFont #1\ }}{}
+\begingroup
+\catcode`\~\active
+\gdef\SpecialEscapechar#1{%
+    \begingroup
+     \uccode`\~`#1%
+     \uppercase{\gdef\active at escape@char{~}}%
+     \escapechar\m at ne  \xdef\special at escape@char{\string#1}%
+   \endgroup}
+\endgroup
+\begingroup   \catcode`\|=\z@  \catcode`\\=\active
+|gdef|init at crossref{|catcode`|\|active   |let\|bslash
+    |MakePrivateLetters
+    |catcode|expandafter`|special at escape@char|active
+    |expandafter|let|active at escape@char|scan at macro}
+|endgroup
+\SpecialEscapechar{\\}
+\@ifundefined{MakePrivateLetters}
+    {\let\MakePrivateLetters\makeatletter}{}
+\def\close at crossref{\SpecialEscapechar\\}
+\def\scan at macro{%
+   \special at escape@char
+   \step at checksum
+   \ifscan at allowed
+      \let\macro at namepart\@empty
+      \def\next{\futurelet\next\macro at switch}%
+   \else \let\next\@empty \fi
+   \next}
+\newif\ifscan at allowed    \scan at allowedtrue
+\def\DisableCrossrefs{\@bsphack\scan at allowedfalse\@esphack}
+\def\EnableCrossrefs{\@bsphack\scan at allowedtrue
+                     \def\DisableCrossrefs{\@bsphack\@esphack}\@esphack}
+\def\macro at switch{\ifcat\noexpand\next a%
+     \let\next\macro at name
+     \else \let\next\short at macro  \fi
+   \next}
+\begingroup
+\catcode`\&=12
+\gdef\short at macro#1{\begingroup
+   \uccode`\&=\expandafter`\string#1%
+   \uppercase{\def\x{\def\macro at namepart{&}}}%
+   \expandafter\endgroup\x
+   \ifnot at excluded
+     \produce at index{#1}\fi
+    \scan at allowedfalse#1%
+    \scan at allowedtrue }
+\endgroup
+\def\produce at index#1{%
+  \if\noexpand#1\special at escape@char
+     \scan at allowedfalse \it at is@a\special at escape@char \else
+     \if\noexpand#1\bslash \it at is@a\bslash \else
+       \if\noexpand#1\space \it at is@a\space \else
+         \ifx#1\par
+         \it at is@a\space \else
+         \ifx#1\relax \else
+           \if\noexpand#1\bgroup \LeftBraceIndex \else
+             \if\noexpand#1\egroup \RightBraceIndex \else
+               \if\noexpand#1\percentchar \PercentIndex \else
+                 \it at is@a{\string#1}%
+       \fi \fi \fi \fi \fi \fi \fi \fi}
+\def\macro at name#1{\edef\macro at namepart{\macro at namepart#1}%
+     \futurelet\next\more at macroname}
+\def\more at macroname{\ifcat\noexpand\next a%
+     \let\next\macro at name
+     \else \let\next\macro at finish \fi
+     \next}
+\def\macro at finish{%
+  \macro at namepart
+  \ifnot at excluded
+     \edef\@tempa{\noexpand\SpecialIndex{\bslash\macro at namepart}}%
+     \@tempa  \fi}
+\def\DoNotIndex{\begingroup \MakePrivateLetters
+    \catcode`\\12
+    \do at not@index}
+\long\def\do at not@index#1{%
+    \endgroup
+    \addto at hook\index at excludelist{#1,}}
+\long\def\addto at hook#1#2{#1\expandafter{\the#1#2}}
+\newtoks\index at excludelist
+\index at excludelist{}
+\begingroup
+\catcode`\|=0%
+\catcode`\\=12
+|gdef|ifnot at excluded{|expandafter
+     |expanded at notin|expandafter{|expandafter
+     \|macro at namepart,}{|the|index at excludelist}}
+|endgroup
+\def\expanded at notin#1#2{%
+ \def\in@@##1#1##2##3\in@@{%
+  \ifx\expanded at notin##2}%
+ \expandafter\in@@#2#1\expanded at notin\in@@}
+\@ifundefined{actualchar}{\def\actualchar{=}}{}
+\@ifundefined{quotechar}{\def\quotechar{!}}{}
+\@ifundefined{levelchar}{\def\levelchar{>}}{}
+\@ifundefined{encapchar}{\def\encapchar{|}}{}
+\@ifundefined{verbatimchar}{\def\verbatimchar{+}}{}
+\def\SpecialIndex#1{\@bsphack\special at index{\expandafter\@gobble
+                                      \string#1\actualchar
+      \string\verb\quotechar*\verbatimchar\string#1\verbatimchar}%
+    \@esphack}
+
+\def\SpecialMainIndex#1{\@bsphack\SpecialIndex@{#1}{\encapchar main}%
+                        \@esphack}
+\begingroup
+ \catcode`\|=0
+ \catcode`\\=12
+ |gdef|@SpecialIndexHelper@#1#2|@nil{%
+   |if |noexpand#1\%
+     |gdef|@gtempa{#2}%
+   |else
+     |begingroup
+       |escapechar|m at ne
+       |expandafter|gdef|expandafter|@gtempa|expandafter{|string#1#2}%
+     |endgroup
+   |fi}
+|endgroup
+\def\SpecialIndex@#1#2{%
+   \@SpecialIndexHelper@#1\@nil
+   \def\@tempb{ }%
+   \ifcat \@tempb\@gtempa
+      \special at index{\quotechar\space\actualchar
+                     \string\verb\quotechar*\verbatimchar
+                     \quotechar\bslash\quotechar\space\verbatimchar#2}%
+   \else
+     \def\@tempb##1##2\relax{\ifx\relax##2\relax
+          \def\@tempc{\special at index{\quotechar##1\actualchar
+                      \string\verb\quotechar*\verbatimchar
+                      \quotechar\bslash\quotechar##1\verbatimchar#2}}%
+        \else
+          \def\@tempc{\special at index{##1##2\actualchar
+                       \string\verb\quotechar*\verbatimchar
+                       \bslash##1##2\verbatimchar#2}}%
+        \fi}%
+     \expandafter\@tempb\@gtempa\relax
+     \@tempc
+   \fi}
+\def\SpecialMainEnvIndex#1{\@bsphack\special at index{%
+                                      #1\actualchar
+                                      {\string\ttfamily\space#1}
+                                         (environment)%
+                                      \encapchar main}%
+    \special at index{environments:\levelchar#1\actualchar{%
+                   \string\ttfamily\space#1}\encapchar
+           main}\@esphack}
+\def\SpecialUsageIndex#1{\@bsphack
+   {\let\special at index\index\SpecialIndex@{#1}{\encapchar usage}}%
+   \@esphack}
+\def\SpecialEnvIndex#1{\@bsphack
+    \index{#1\actualchar{\protect\ttfamily#1}
+           (environment)\encapchar usage}%
+    \index{environments:\levelchar#1\actualchar
+          {\protect\ttfamily#1}\encapchar usage}\@esphack}
+\def\SortIndex#1#2{\index{#1\actualchar#2}}
+\def\it at is@a#1{\special at index{\quotechar #1\actualchar
+                          \string\verb\quotechar*\verbatimchar
+                          \quotechar\bslash\quotechar#1\verbatimchar}}
+\@ifundefined{LeftBraceIndex}{\def\LeftBraceIndex{%
+   \special at index{\bgroup\actualchar\string\verb\quotechar*\verbatimchar
+          \quotechar\bslash{\verbatimchar\string\iffalse}\string\fi}}}{}
+
+\@ifundefined{RightBraceIndex}{\def\RightBraceIndex{%
+ \special at index{\egroup\actualchar\string\iffalse{\string\fi\string\verb
+           \quotechar*\verbatimchar\quotechar\bslash}\verbatimchar}}}{}
+\@ifundefined{PercentIndex}
+  {\def\PercentIndex{\it at is@a\percentchar}}{}
+\def\OldMakeindex{\def\PercentIndex{%
+    \special at index{\quotechar\percentchar\actualchar\string\verb
+           \quotechar*\verbatimchar\quotechar\bslash
+           \percentchar\percentchar\verbatimchar}}}
+{\catcode`\%=12 \gdef\percentchar{%}}
+\newif\ifhave at multicol
+\IfFileExists{multicol.sty}{\have at multicoltrue
+                            \RequirePackage{multicol}%
+                           }{}
+
+\newdimen\IndexMin         \IndexMin       = 80pt
+\newcount\c at IndexColumns   \c at IndexColumns = 3
+\ifhave at multicol
+  \renewenvironment{theindex}
+    {\begin{multicols}\c at IndexColumns[\index at prologue][\IndexMin]%
+      \IndexParms \let\item\@idxitem \ignorespaces}%
+    {\end{multicols}}
+\else
+  \typeout{Can't find multicol.sty -- will use normal index layout if
+     necessary.}
+  \def\theindex{\@restonecoltrue\if at twocolumn\@restonecolfalse\fi
+    \columnseprule \z@  \columnsep 35\p@
+    \twocolumn[\index at prologue]%
+    \IndexParms \let\item\@idxitem \ignorespaces}
+  \def\endtheindex{\if at restonecol\onecolumn\else\clearpage\fi}
+\fi
+\long\def\IndexPrologue#1{\@bsphack\def\index at prologue{#1}\@esphack}
+\@ifundefined{index at prologue}
+     {\def\index at prologue{\section*{Index}%
+                 \markboth{Index}{Index}%
+                 Numbers written in italic refer to the page
+                 where the corresponding entry is described;
+                 numbers underlined refer to the
+                 \ifcodeline at index
+                   code line of the
+                 \fi
+                 definition; numbers in roman refer to the
+                 \ifcodeline at index
+                   code lines
+                 \else
+                   pages
+                 \fi
+                 where the entry is used.
+                 }}{}
+\@ifundefined{IndexParms}
+    {\def\IndexParms{%
+       \parindent \z@
+       \columnsep 15pt
+       \parskip 0pt plus 1pt
+       \rightskip 15pt
+       \mathsurround \z@
+       \parfillskip=-15pt
+        \small
+       \def\@idxitem{\par\hangindent 30pt}%
+       \def\subitem{\@idxitem\hspace*{15pt}}%
+       \def\subsubitem{\@idxitem\hspace*{25pt}}%
+       \def\indexspace{\par\vspace{10pt plus 2pt minus 3pt}}%
+      }}{}
+\def\efill{\hfill\nopagebreak}%
+\def\dotfill{\leaders\hbox to.6em{\hss .\hss}\hskip\z@ plus  1fill\kern\z@}%
+\def\dotfil{\leaders\hbox to.6em{\hss .\hss}\hfil\kern\z@}%
+\def\pfill{\unskip~\dotfill\penalty500\strut\nobreak
+               \dotfil~\ignorespaces}%
+\def\*{\leavevmode\lower.8ex\hbox{$\,\widetilde{\ }\,$}}
+\@ifundefined{main}{\def\main#1{\underline{#1}}}{}
+\@ifundefined{usage}{\def\usage#1{\textit{#1}}}{}
+\def\PrintIndex{\@input@{\jobname.ind}%
+                \global\let\PrintIndex\@empty}
+\def\changes{\@bsphack\begingroup\@sanitize
+   \catcode`\\\z@ \catcode`\ 10 \MakePercentIgnore
+   \changes@}
+\def\changes@#1#2#3{%
+  \protected at edef\@tempa{\noexpand\glossary{#1\levelchar
+                                 \ifx\saved at macroname\@empty
+                                   \space
+                                   \actualchar
+                                   \generalname
+                                 \else
+                                   \saved at indexname
+                                   \actualchar
+                                   \string\verb\quotechar*%
+                                   \verbatimchar\saved at macroname
+                                   \verbatimchar
+                                 \fi
+                                 :\levelchar #3}}%
+  \@tempa\endgroup\@esphack}
+\def\saved at macroname{}
+\def\saved at indexname{}
+\def\generalname{General}
+\let\RecordChanges\makeglossary
+\newdimen\GlossaryMin         \GlossaryMin       = 80pt
+\newcount\c at GlossaryColumns   \c at GlossaryColumns = 2
+\ifhave at multicol
+  \newenvironment{theglossary}{%
+    \begin{multicols}\c at GlossaryColumns
+                     [\glossary at prologue][\GlossaryMin]%
+    \GlossaryParms \let\item\@idxitem \ignorespaces}%
+   {\end{multicols}}
+\else
+  \newenvironment{theglossary}{%
+      \@restonecoltrue\if at twocolumn\@restonecolfalse\fi
+      \columnseprule \z@  \columnsep 35\p@
+      \twocolumn[\glossary at prologue]%
+      \GlossaryParms \let\item\@idxitem \ignorespaces}
+    {\if at restonecol\onecolumn\else\clearpage\fi}
+\fi
+\long\def\GlossaryPrologue#1{\@bsphack
+                             \def\glossary at prologue{#1}%
+                             \@esphack}
+\@ifundefined{glossary at prologue}
+     {\def\glossary at prologue{\section*{{Change History}}%
+                 \markboth{{Change History}}{{Change History}}%
+                 }}{}
+\@ifundefined{GlossaryParms}{\let\GlossaryParms\IndexParms
+  \expandafter\def\expandafter\GlossaryParms\expandafter{\GlossaryParms
+     \rightskip 15pt plus 1fil
+     \parfillskip -15pt plus -1fil\relax}
+}{}
+\def\PrintChanges{\@input@{\jobname.gls}%
+                  \global\let\PrintChanges\@empty}
+\newcommand\AlsoImplementation{%
+   \long\def\StopEventually##1{\@bsphack\gdef\Finale{##1%
+                  \check at checksum}%
+              \init at checksum
+              \@esphack}%
+         }
+\AlsoImplementation
+\def\OnlyDescription{\@bsphack\long\def\StopEventually##1{%
+           ##1\endinput}\@esphack}
+\let\Finale\relax
+\ifx\l at nohyphenation\undefined
+  \newlanguage\l at nohyphenation
+\fi
+\DeclareRobustCommand\meta[1]{%
+     \ensuremath\langle
+     \ifmmode \expandafter \nfss at text \fi
+     {%
+      \meta at font@select
+      \edef\meta at hyphen@restore
+        {\hyphenchar\the\font\the\hyphenchar\font}%
+      \hyphenchar\font\m at ne
+      \language\l at nohyphenation
+      #1\/%
+      \meta at hyphen@restore
+     }\ensuremath\rangle
+}
+\def\meta at font@select{\itshape}
+\def\IndexInput#1{%
+     \begingroup \macro at code
+   \frenchspacing \@vobeyspaces
+     \input{#1}\endmacrocode
+     \endgroup}
+\def\maketitle{\par
+      \begingroup \def \thefootnote {\fnsymbol {footnote}}%
+      \setcounter {footnote}\z@
+      \def\@makefnmark{\hbox to\z@{$\m at th^{\@thefnmark}$\hss}}%
+      \long\def\@makefntext##1{\parindent 1em\noindent
+            \hbox to1.8em{\hss$\m at th^{\@thefnmark}$}##1}%
+      \if at twocolumn \twocolumn [\@maketitle ]%
+      \else \newpage \global \@topnum \z@ \@maketitle \fi
+       \thispagestyle{titlepage}\@thanks \endgroup
+      \setcounter {footnote}\z@
+      \gdef\@date{\today}\gdef\@thanks{}%
+      \gdef\@author{}\gdef\@title{}}
+\@ifundefined{ps at titlepage}
+    {\let\ps at titlepage=\ps at plain}{}
+\def\MakeShortVerb{%
+  \@ifstar
+    {\def\@shortvrbdef{\verb*}\@MakeShortVerb}%
+    {\def\@shortvrbdef{\verb}\@MakeShortVerb}}
+\def\@MakeShortVerb#1{%
+  \expandafter\ifx\csname cc\string#1\endcsname\relax
+    \@shortvrbinfo{Made }{#1}\@shortvrbdef
+    \add at special{#1}%
+    \expandafter
+    \xdef\csname cc\string#1\endcsname{\the\catcode`#1}%
+    \begingroup
+      \catcode`\~\active  \lccode`\~`#1%
+      \lowercase{%
+      \global\expandafter\let
+         \csname ac\string#1\endcsname~%
+      \expandafter\gdef\expandafter~\expandafter{\@shortvrbdef~}}%
+    \endgroup
+    \global\catcode`#1\active
+  \else
+    \@shortvrbinfo\@empty{#1 already}{\@empty\verb(*)}%
+  \fi}
+\def\DeleteShortVerb#1{%
+  \expandafter\ifx\csname cc\string#1\endcsname\relax
+    \@shortvrbinfo\@empty{#1 not}{\@empty\verb(*)}%
+  \else
+    \@shortvrbinfo{Deleted }{#1 as}{\@empty\verb(*)}%
+    \rem at special{#1}%
+    \global\catcode`#1\csname cc\string#1\endcsname
+    \global \expandafter\let \csname cc\string#1\endcsname \relax
+    \ifnum\catcode`#1=\active
+      \begingroup
+        \catcode`\~\active   \lccode`\~`#1%
+        \lowercase{%
+          \global\expandafter\let\expandafter~%
+          \csname ac\string#1\endcsname}%
+      \endgroup \fi \fi}
+\def\@shortvrbinfo#1#2#3{%
+  \PackageInfo{doc}{%
+     #1\expandafter\@gobble\string#2 a short reference
+                                          for \expandafter\string#3}}
+\def\add at special#1{%
+  \rem at special{#1}%
+  \expandafter\gdef\expandafter\dospecials\expandafter
+    {\dospecials \do #1}%
+  \expandafter\gdef\expandafter\@sanitize\expandafter
+    {\@sanitize \@makeother #1}}
+\def\rem at special#1{%
+  \def\do##1{%
+    \ifnum`#1=`##1 \else \noexpand\do\noexpand##1\fi}%
+  \xdef\dospecials{\dospecials}%
+  \begingroup
+    \def\@makeother##1{%
+      \ifnum`#1=`##1 \else \noexpand\@makeother\noexpand##1\fi}%
+    \xdef\@sanitize{\@sanitize}%
+  \endgroup}
+\def\MakeShortverb{\typeout{*** Switch to \noexpand\MakeShortVerb
+                         syntax, this is obsolete ***}\MakeShortVerb}
+\def\DeleteShortverb{\typeout{*** Switch to \noexpand\DeleteShortVerb
+                         syntax, this is obsolete ***}\DeleteShortVerb}
+\def\init at checksum{\relax
+    \global\bslash at cnt\z@}
+\def\check at checksum{\relax
+  \ifnum\check at sum>\m at ne
+     \ifnum\check at sum=\z@
+       \typeout{**********************************}%
+       \typeout{* This macro file has no checksum!}%
+       \typeout{* The checksum should be \the\bslash at cnt!}%
+       \typeout{**********************************}%
+     \else
+       \ifnum\check at sum=\bslash at cnt
+         \typeout{*******************}%
+         \typeout{* Checksum passed *}%
+         \typeout{*******************}%
+       \else
+         \PackageError{doc}{Checksum not passed
+                    (\the\check at sum<>\the\bslash at cnt)}%
+          {The file currently documented seems to be wrong.^^J%
+           Try to get a correct version.}%
+       \fi
+     \fi
+  \fi
+  \global\check at sum\m at ne}
+\newcount\check at sum           \check at sum  = \m at ne
+\newcount\bslash at cnt          \bslash at cnt = \z@
+\def\CheckSum#1{\@bsphack\global\check at sum#1\relax\@esphack}
+\def\step at checksum{\global\advance\bslash at cnt\@ne}
+\def\CharacterTable{\begingroup \CharTableChanges \character at table}
+\begingroup
+  \catcode`\~=11
+  \gdef\character at table#1{\def\used~table{#1}%
+      \ifx\used~table\default~table
+           \typeout{***************************}%
+           \typeout{* Character table correct *}%
+           \typeout{***************************}%
+      \else
+         \PackageError{doc}{Character table corrupted}
+                           {\the\wrong at table}
+         \show\default~table
+         \show\used~table
+      \fi
+      \endgroup}
+  \global\let\CharTableChanges\@empty
+  \makeatother
+  \gdef\default~table
+     {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+      Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+      Digits        \0\1\2\3\4\5\6\7\8\9
+      Exclamation   \!     Double quote  \"     Hash (number) \#
+      Dollar        \$     Percent       \%     Ampersand     \&
+      Acute accent  \'     Left paren    \(     Right paren   \)
+      Asterisk      \*     Plus          \+     Comma         \,
+      Minus         \-     Point         \.     Solidus       \/
+      Colon         \:     Semicolon     \;     Less than     \<
+      Equals        \=     Greater than  \>     Question mark \?
+      Commercial at \@     Left bracket  \[     Backslash     \\
+      Right bracket \]     Circumflex    \^     Underscore    \_
+      Grave accent  \`     Left brace    \{     Vertical bar  \|
+      Right brace   \}     Tilde         \~}
+\endgroup
+  \newhelp\wrong at table{Some of the ASCII characters are corrupted.^^J
+            I now \string\show\space you both tables for comparison.}
+\newif\ifcodeline at index \codeline at indexfalse
+\let\CodelineNumbered\codeline at indextrue
+\def\codeline at wrindex#1{\if at filesw
+        \immediate\write\@indexfile
+            {\string\indexentry{#1}%
+            {\number\c at CodelineNo}}\fi}
+\let\special at index = \@gobble
+\def\CodelineIndex{\makeindex
+                   \codeline at indextrue
+                   \let\special at index\codeline at wrindex}
+\def\PageIndex{\makeindex
+               \codeline at indexfalse
+               \let\special at index\index}
+\newcount\c at CodelineNo  \c at CodelineNo\z@
+\@ifundefined{theCodelineNo}
+  {\ifx\selectfont\undefined
+     \def\theCodelineNo{\rmfamily\scriptsize\arabic{CodelineNo}}%
+   \else
+     \def\theCodelineNo{\reset at font\scriptsize\arabic{CodelineNo}}%
+   \fi}
+  {}
+       \tolerance=1000\relax
+{ \catcode`\"=12
+  \global\mathcode`\\="705C \global\mathcode`\@="7040 }
+\@ifundefined{DocstyleParms}{}{\DocstyleParms}
+ \let\DocstyleParms\relax
+\@ifundefined{AmSTeX}
+   {\def\AmSTeX{\leavevmode\hbox{$\mathcal A\kern-.2em\lower.376ex%
+        \hbox{$\mathcal M$}\kern-.2em\mathcal S$-\TeX}}}{}
+\@ifundefined{BibTeX}
+   {\def\BibTeX{{\rmfamily B\kern-.05em%
+    \textsc{i\kern-.025em b}\kern-.08em%
+    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}}{}
+\@ifundefined{SliTeX}
+   {\def\SliTeX{{\rmfamily S\kern-.06emL\kern-.18em\raise.32ex\hbox
+                {\scshape i}\kern -.03em\TeX}}}{}
+\@ifundefined{PlainTeX}{\def\PlainTeX{\textsc{Plain}\kern2pt\TeX}}{}
+\@ifundefined{Web}{\def\Web{\textsc{Web}}}{}
+\def\MakePercentIgnore{\catcode`\%9\relax}
+\def\MakePercentComment{\catcode`\%14\relax}
+\def\DocInput#1{\MakePercentIgnore\input{#1}\MakePercentComment}
+\def\GetFileInfo#1{%
+  \def\filename{#1}%
+  \def\@tempb##1 ##2 ##3\relax##4\relax{%
+    \def\filedate{##1}%
+    \def\fileversion{##2}%
+    \def\fileinfo{##3}}%
+  \edef\@tempa{\csname ver@#1\endcsname}%
+  \expandafter\@tempb\@tempa\relax? ? \relax\relax}
+\endinput
+%%
+%% End of file `doc.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex-dev/base/doc-2021-06-01.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/tex/latex-dev/base/doc-v3beta.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/doc-v3beta.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/doc-v3beta.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,1241 +0,0 @@
-%%
-%% This is file `doc-v3beta.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% doc.dtx  (with options: `package,beta')
-%% 
-%% This is a generated file.
-%% 
-%% The source is maintained by the LaTeX Project team and bug
-%% reports for it can be opened at https://latex-project.org/bugs.html
-%% (but please observe conditions on bug reports sent to that address!)
-%% 
-%% 
-%% Copyright 1993-2018
-%% The LaTeX3 Project and any individual authors listed elsewhere
-%% in this file.
-%% 
-%% This file was generated from file(s) of the LaTeX base system.
-%% --------------------------------------------------------------
-%% 
-%% It may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either version 1.3c
-%% of this license or (at your option) any later version.
-%% The latest version of this license is in
-%%    https://www.latex-project.org/lppl.txt
-%% and version 1.3c or later is part of all distributions of LaTeX
-%% version 2005/12/01 or later.
-%% 
-%% This file has the LPPL maintenance status "maintained".
-%% 
-%% This file may only be distributed together with a copy of the LaTeX
-%% base system. You may however distribute the LaTeX base system without
-%% such generated files.
-%% 
-%% The list of all files belonging to the LaTeX base distribution is
-%% given in the file `manifest.txt'. See also `legal.txt' for additional
-%% information.
-%% 
-%% The list of derived (unpacked) files belonging to the distribution
-%% and covered by LPPL is defined by the unpacking scripts (with
-%% extension .ins) which are part of the distribution.
-\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-
-\providecommand\DeclareRelease[3]{}
-\providecommand\DeclareCurrentRelease[2]{}
-
-\DeclareRelease{v2}{2016-02-15.sty}
-               {doc-2016-02-15.sty}
-\DeclareCurrentRelease{v3}{2018-04-16}
-
-\ProvidesPackage{doc-v3beta}
-  [2021/02/07 v3.0e
-   Standard LaTeX documentation package V3 (FMi)]
-%%
-%% Package `doc' to use with LaTeX 2e
-%% Copyright (C) 1989-2018 Frank Mittelbach, all rights reserved.
-
-
-
-
-
-\@ifundefined{macro at cnt}{}{\endinput}
-\catcode`\^^A=14
-\AtBeginDocument{\catcode`\^^A=14\relax}
-\RequirePackage{kvoptions}
-\SetupKeyvalOptions{family=doc,prefix=doc@}
-\DeclareBoolOption{noprint}
-\DeclareBoolOption{noindex}
-\DeclareBoolOption[true]{hyperref}
-\DeclareBoolOption[true]{multicol}
-\DeclareBoolOption[false]{debugshow}
-\DeclareBoolOption[true]{toplevel}
-\DeclareComplementaryOption{notoplevel}{toplevel}
-\DeclareBoolOption{macrolike}
-\DeclareComplementaryOption{envlike}{macrolike}
-\DeclareStringOption{idxtype}
-\DeclareStringOption{idxgroup}
-\DeclareStringOption{printtype}
-\DeclareBoolOption[false]{outer}
-\ProcessKeyvalOptions*
-\newif\ifscan at allowed    \scan at allowedtrue
-\def\SetupDoc#1{%
-  \setkeys{doc}{#1}%
-    \edef\doc at noprintdefault{\ifdoc at noprint true\else false\fi}%
-  \ifdoc at noindex
-    \def\doc at noindexdefault{true}%
-    \scan at allowedfalse
-  \else
-    \def\doc at noindexdefault{false}%
-  \fi
-}
-\SetupDoc{}              % just save the default values
-\def\macrocode{\macro at code
-   \frenchspacing \@vobeyspaces
-   \xmacro at code}
-\def\macro at code{%
-   \topsep \MacrocodeTopsep
-   \@beginparpenalty \predisplaypenalty
-   \if at inlabel\leavevmode\fi
-   \trivlist \parskip \z@ \item[]%
-   \macro at font
-   \leftskip\@totalleftmargin \advance\leftskip\MacroIndent
-   \rightskip\z@ \parindent\z@ \parfillskip\@flushglue
-   \blank at linefalse \def\par{\ifblank at line
-                             \leavevmode\fi
-                             \blank at linetrue\@@par
-                             \penalty\interlinepenalty}
-   \obeylines
-   \let\do\do at noligs \verbatim at nolig@list
-   \let\do\@makeother \dospecials
-   \global\@newlistfalse
-   \global\@minipagefalse
-   \ifcodeline at index
-     \everypar{\global\advance\c at CodelineNo\@ne
-               \llap{\theCodelineNo\ \hskip\@totalleftmargin}%
-               \check at module}%
-   \else \everypar{\check at module}%
-   \fi
-   \init at crossref}
-\newif\ifblank at line
-\def\endmacrocode{%
-                 \ifpm at module \endgroup \pm at modulefalse \fi
-                 \everypar{}%
-                 \global\@inlabelfalse
-                 \endtrivlist
-                 \close at crossref}
-\@ifundefined{MacroFont}{%
-  \if at compatibility
-    \def\MacroFont{\small
-                   \usefont\encodingdefault
-                           \ttdefault
-                           \mddefault
-                           \updefault
-                   }%
-  \else
-    \def\MacroFont{\fontencoding\encodingdefault
-                   \fontfamily\ttdefault
-                   \fontseries\mddefault
-                   \fontshape\updefault
-                   \small}%
-  \fi
-  }{}
-\@ifundefined{AltMacroFont}{%
-  \if at compatibility
-    \def\AltMacroFont{\small
-                      \usefont\encodingdefault
-                              \ttdefault
-                              \mddefault
-                              \sldefault
-                      }%
-  \else
-    \def\AltMacroFont{\fontencoding\encodingdefault
-                      \fontfamily\ttdefault
-                      \fontseries\mddefault
-                      \fontshape\sldefault
-                      \small
-                      }%
- \fi
-  }{}
-\AtBeginDocument{\let\macro at font\MacroFont}
-\def\check at module{%
-  \ifcheck at modules
-    \ifpm at module \endgroup \pm at modulefalse \fi
-    \expandafter\futurelet\expandafter\next\expandafter\ch at percent
-  \fi}
-\newif\ifpm at module
-\def\DontCheckModules{\check at modulesfalse}
-\def\CheckModules{\check at modulestrue}
-\newif\ifcheck at modules  \check at modulestrue
-\def\ch at percent{%
-  \if \percentchar\next
-    \expandafter\check at angle
-  \fi}
-\def\check at angle#1{\futurelet\next\ch at angle}
-\begingroup
-\catcode`\<\active
-\gdef\ch at angle{\ifx<\next
-    \expandafter\ch at plus@etc
-  \else \percentchar \fi}
-\gdef\ch at plus@etc<{\futurelet\next\check at plus@etc}
-\gdef\check at plus@etc{%
-    \if +\next
-      \let\next\pm at module
-    \else\if -\next
-      \let\next\pm at module
-    \else\if *\next
-      \let\next\star at module
-    \else\if /\next
-      \let\next\slash at module
-    \else\ifx <\next
-      \percentchar
-    \else
-      \let\next\pm at module
-    \fi\fi\fi\fi\fi
-    \next}
-\endgroup
-\begingroup
-\catcode`\~=\active
-\lccode`\~=`\>
-\lowercase{\gdef\pm at module#1~}{\pm at moduletrue
-   \Module{#1}\begingroup
-     \advance\guard at level\@ne
-     \ifnum\guard at level>\c at StandardModuleDepth\AltMacroFont\fi
-}
-\lowercase{\gdef\star at module#1~}{%
-  \Module{#1}%
-  \global \advance \guard at level\@ne
-  \ifnum \guard at level>\c at StandardModuleDepth
-    \global\let\macro at font=\AltMacroFont \macro at font
-  \fi}
-\catcode`\>=\active
-\gdef\slash at module#1>{%
-  \Module{#1}%
-  \global \advance \guard at level\m at ne
-  \ifnum \guard at level=\c at StandardModuleDepth
-    \global\let\macro at font\MacroFont  \macro at font
-  \fi
-}
-\endgroup
-\newcounter{StandardModuleDepth}
-\newcount \guard at level
-
-\@ifundefined{Module}{%
-      \def\Module#1{\mod at math@codes$\langle\mathsf{#1}\rangle$}
-  }{}
-\def\mod at math@codes{\mathcode`\|="226A \mathcode`\&="2026
-                    \mathcode`\-="702D \mathcode`\+="702B
-                    \mathcode`\:="703A \mathcode`\=="703D }
-\newskip\MacrocodeTopsep \MacrocodeTopsep = 3pt plus 1.2pt minus 1pt
-\newdimen\MacroIndent
-\settowidth\MacroIndent{\rmfamily\scriptsize 00\ }
-\@namedef{macrocode*}{\macro at code\sxmacro at code}
-\expandafter\let\csname endmacrocode*\endcsname = \endmacrocode
-\catcode`\!=\catcode`\%   ^^A In this section there must not be
-                              ^^A any exclamation marks.
-                              ^^A
-\begingroup
-\catcode`\|=\z@ \catcode`\[=\@ne \catcode`\]=\tw@
-\catcode`\{=12 \catcode`\}=12
-\catcode`\%=12 \catcode`\ =\active \catcode`\\=\active
-!%    \end{macrocode*}
-!    Next follows the actual definition of  |\macro at code|;
-!    notice the
-!    use of the new escape character.  We manage to get the argument
-!    surrounded by the string |\end{macrocode}|, but at the end
-!    however, in spite of the actual characters used during the
-!    definition of
-!    this macro, |\end| with the argument |{macrocode}|
-!    will be executed, to ensure a balanced environment.
-!    \begin{macrocode*}
-|gdef|xmacro at code#1%    \end{macrocode}[#1|end[macrocode]]
-!%    \end{macrocode*}
-! \begin{macro}{\sxmacro at code}
-!    The definition of |\sxmacro at code| is completely analogous,
-!    only
-!    here a slightly different terminating string will be used.
-!    Note that the space is not active in this environment.
-!    \begin{macrocode}
-|catcode`| =12
-|gdef|sxmacro at code#1%    \end{macrocode*}[#1|end[macrocode*]]
-!%    \end{macrocode}
-!    because the |\catcode| changes have been made local by
-!    commencing a
-!    new group, there now follows the matching |\endgroup|
-!    in a rather
-!    unusual style of writing.
-!    \begin{macrocode}
-|endgroup
-!%    \end{macrocode}
-\catcode`\!=12
-
-\reversemarginpar
-\setlength\marginparpush{0pt}  \setlength\marginparwidth{8pc}
-\setlength\marginparsep{\labelsep}
-{\catcode`\|=\z@ \catcode`\\=12
-|gdef|bslash{\}}
-\def\verbatim{\@beginparpenalty \predisplaypenalty \@verbatim
-              \MacroFont \frenchspacing \@vobeyspaces \@xverbatim}
-\@namedef{verbatim*}{\@beginparpenalty \predisplaypenalty \@verbatim
-              \MacroFont \@sxverbatim}
-\def\@verbatim{\trivlist \item[]\if at minipage\else\vskip\parskip\fi
-      \leftskip\@totalleftmargin\rightskip\z@
-      \parindent\z@\parfillskip\@flushglue\parskip\z@
-      \@@par
-      \@tempswafalse
- \def\par{\if at tempswa\hbox{}\fi\@tempswatrue\@@par
-          \penalty\interlinepenalty
-   \check at percent}%
- \obeylines
- \let\do\do at noligs \verbatim at nolig@list
- \let\do\@makeother \dospecials}
-{\catcode`\%=12
- \long\gdef\check at percent#1{\ifx #1%\let\next\@empty \else
-                                    \let\next=#1\fi \next}}
-\def\verb{\relax\ifmmode\hbox\else\leavevmode\null\fi
-  \bgroup \let\do\do at noligs \verbatim at nolig@list
-    \ttfamily \verb at eol@error \let\do\@makeother \dospecials
-    \@ifstar{\@sverb}{\@vobeyspaces \frenchspacing \@sverb}}
-\let\verb at balance@group\@empty
-
-\def\verb at egroup{\global\let\verb at balance@group\@empty\egroup}
-
-\begingroup
-  \obeylines%
-  \gdef\verb at eol@error{\obeylines%
-    \def^^M{\verb at egroup\@latex at error{%
-           Text for \noexpand\verb command ended by end of line}\@ehc}}%
-\endgroup
-\def\@sverb#1{%
-  \catcode`#1\active  \lccode`\~`#1%
-  \gdef\verb at balance@group{\verb at egroup
-     \@latex at error{Illegal use of \noexpand\verb command}\@ehc}%
-  \aftergroup\verb at balance@group
-  \lowercase{\let~\verb at egroup}}
-\def\verbatim at nolig@list{\do\`\do\<\do\>\do\,\do\'\do\-}
-\def\do at noligs#1{%
-  \catcode`#1\active
-  \begingroup
-     \lccode`\~=`#1\relax
-     \lowercase{\endgroup\def~{\leavevmode\kern\z@\char`#1}}}
-\newcount\macro at cnt \macro at cnt=0
-\newskip\MacroTopsep     \MacroTopsep = 7pt plus 2pt minus 2pt
-\begingroup
-\catcode`\~\active
-\gdef\SpecialEscapechar#1{%
-    \begingroup
-     \uccode`\~`#1%
-     \uppercase{\gdef\active at escape@char{~}}%
-     \escapechar\m at ne  \xdef\special at escape@char{\string#1}%
-   \endgroup}
-\endgroup
-\begingroup   \catcode`\|=\z@  \catcode`\\=\active
-|gdef|init at crossref{|catcode`|\|active   |let\|bslash
-    |MakePrivateLetters
-    |catcode|expandafter`|special at escape@char|active
-    |expandafter|let|active at escape@char|scan at macro}
-|endgroup
-\SpecialEscapechar{\\}
-\@ifundefined{MakePrivateLetters}
-    {\let\MakePrivateLetters\makeatletter}{}
-\def\close at crossref{\SpecialEscapechar\\}
-\def\scan at macro{%
-   \special at escape@char
-   \step at checksum
-   \ifscan at allowed
-      \let\macro at namepart\@empty
-      \def\next{\futurelet\next\macro at switch}%
-   \else \let\next\@empty \fi
-   \next}
-\def\DisableCrossrefs{\@bsphack\scan at allowedfalse\@esphack}
-\def\EnableCrossrefs{\@bsphack\scan at allowedtrue
-                     \def\DisableCrossrefs{\@bsphack\@esphack}\@esphack}
-\def\macro at switch{\ifcat\noexpand\next a%
-     \let\next\macro at name
-     \else \let\next\short at macro  \fi
-   \next}
-\begingroup
-\catcode`\&=12
-\gdef\short at macro#1{\begingroup
-   \uccode`\&=\expandafter`\string#1%
-   \uppercase{\def\x{\def\macro at namepart{&}}}%
-   \expandafter\endgroup\x
-     \maybe at index@short at macro\macro at namepart
-    \scan at allowedfalse#1%
-    \scan at allowedtrue }
-\endgroup
-\def\macro at name#1{\edef\macro at namepart{\macro at namepart#1}%
-     \futurelet\next\more at macroname}
-\def\more at macroname{\ifcat\noexpand\next a%
-     \let\next\macro at name
-     \else \let\next\macro at finish \fi
-     \next}
-\def\macro at finish{%
-  \macro at namepart
-  \maybe at index@macro \macro at namepart
-}
-
-\RequirePackage{expl3}
-\ExplSyntaxOn
-\seq_new:N  \l__doc_donotindex_seq
-\prop_new:N \g__doc_idxtype_prop
-\cs_new:Npn\__doc_trace:x {
-  \ifdoc at debugshow
-    \expandafter \iow_term:x
-  \else
-    \expandafter \use_none:n
-  \fi
-}
-\cs_new:Npn \doc_dont_index:n {
-  \group_begin:
-    \MakePrivateLetters
-    \__doc_dont_index:n
-}
-\cs_new:Npn \__doc_dont_index:n #1 {
-  \group_end:
-  \__doc_trace:x{Disable~ indexing~ for~ '\tl_to_str:n{#1}' }
-  \clist_map_function:nN {#1} \__doc_dont_index_aux:n
-}
-\cs_new:Npn \__doc_dont_index_aux:n #1 {
-  \seq_put_right:Nx \l__doc_donotindex_seq {\expandafter\@gobble \string#1}
-}
-\cs_set_eq:NN \DoNotIndex \doc_dont_index:n
-\def \ShowIndexingState {
-  \__doc_trace:x{Show~ doc~ indexing~ state:}
-  \seq_show:N  \l__doc_donotindex_seq
-  \prop_show:N \g__doc_idxtype_prop
-}
-
-\cs_new:Npn \__doc_idxtype_put:Nn #1#2 {
-  \exp_args:Nx \__doc_idxtype_put:nn { \cs_to_str:N #1 }{#2}
-  \protected at write\@auxout{}
-     {\string\RecordIndexTypeAux {\string#1 }{#2} }
-}
-\cs_new:Npn \RecordIndexTypeAux #1#2 {
-  \exp_args:Nx \__doc_idxtype_put:nn { \cs_to_str:N #1 }{#2}
-}
-\AtEndDocument{
-  \cs_set_eq:NN \RecordIndexTypeAux \use_none:nn
-}
-\cs_set_eq:NN \RecordIndexType \__doc_idxtype_put:Nn
-\cs_new:Npn \__doc_idxtype_put_scan:nn #1#2 {
-  \exp_args:Nf \__doc_idxtype_put:nn { \tl_to_str:n {#1} }{#2}
-  \protected at write\@auxout{}
-     {\string\RecordIndexTypeAux {\bslash #1 }{#2} }
-}
-\cs_generate_variant:Nn \__doc_idxtype_put_scan:nn {o}
-\cs_set_eq:NN \record at index@type at save \__doc_idxtype_put_scan:on
-\cs_new:Npn \__doc_idxtype_put:nn #1#2 {
-  \exp_args:NNf
-  \seq_if_in:NnTF \l__doc_donotindex_seq {\tl_to_str:n{#1}}
-     {
-       \__doc_trace:x{Not~ recording~ index~ type~ for~ '\bslash #1' }
-     }
-     {
-       \__doc_trace:x{Recording~ index~ type~ for~ '\bslash #1' ~ as~ #2 }
-       \prop_gput:Nnn \g__doc_idxtype_prop {#1}{#2}
-     }
-}
-\cs_new:Npn \exp_args:co #1#2
-   { \cs:w #1 \exp_after:wN \cs_end:\exp_after:wN {#2} }
-\cs_generate_variant:Nn \tl_to_str:n {o}
-
-\cs_new:Npn \__doc_maybe_index:o #1 {
-  \exp_args:Nf \__doc_maybe_index_aux:nN { \tl_to_str:o {#1} }
-                                         \SpecialIndex
-}
-\cs_set_eq:NN \maybe at index@macro \__doc_maybe_index:o
-\cs_new:Npn \__doc_maybe_index_short:o #1 {
-  \exp_args:Nf \__doc_maybe_index_aux:nN { \tl_to_str:o {#1} }
-                                         \SpecialShortIndex
-}
-\cs_set_eq:NN \maybe at index@short at macro \__doc_maybe_index_short:o
-\cs_new:Npn \__doc_maybe_index_aux:nN #1#2 {
-  \__doc_trace:x{Searching~ for~ '\bslash #1'}
-  \seq_if_in:NnTF \l__doc_donotindex_seq {#1}
-    {
-     \__doc_trace:x{Not~ indexing~ '\bslash #1' }
-    }
-    {
-     \prop_get:NnNTF \g__doc_idxtype_prop {#1} \l__doc_idxtype_tl
-       {
-        \exp_args:Ncno \__doc_maybe_index_aux:Nnn
-              { Code \tl_use:N \l__doc_idxtype_tl Index }
-              {code} {\bslash #1}
-        }
-        {
-          \__doc_trace:x{Indexing~ '\bslash #1'\space (\string #2)}
-          \exp_args:No #2 {\bslash #1}
-        }
-    }
-}
-\cs_new:Npn \SpecialShortIndex #1 {
-    \@SpecialIndexHelper@ #1\@nil
-  \@bsphack
-  \ifdoc at noindex \else
-    \str_case_e:nnF {\@gtempa }
-        {
-          {\cs_to_str:N \^^M } {\def\reserved at a{ \string \space \actualchar }
-                                \def\reserved at b { \space }
-                                \let\reserved at c \@empty                          }
-          { }                  {\def\reserved at a{ \string \space \actualchar }
-                                \def\reserved at b { \space }
-                                \let\reserved at c \@empty                          }
-          {\c_left_brace_str} { \def\reserved at a{ \bgroup \actualchar }
-                                \def\reserved at b { \c_left_brace_str }
-                                \def\reserved at c { \noexpand\iffalse
-                                                  \c_right_brace_str
-                                                  \noexpand\fi }                 }
-          {\c_right_brace_str} { \def\reserved at a{ \egroup \actualchar
-                                                  \noexpand\iffalse
-                                                    \c_left_brace_str
-                                                  \noexpand\fi }
-                                 \def\reserved at b { \c_right_brace_str }
-                                 \let\reserved at c \@empty                         }
-          {\verbatimchar}  { \def\reserved at a{ \quotechar\verbatimchar
-                                              \actualchar }
-                             \let\reserved at b \@empty
-                             \def\reserved at c
-                                 { \string\texttt{\string\string\verbatimchar} } }
-        }
-        { \def\reserved at a {\quotechar \@gtempa \actualchar }
-          \def\reserved at b {\quotechar \@gtempa  }
-          \let\reserved at c \@empty                             }
-    \special at index {
-    \reserved at a
-    \string\verb
-    \quotechar *\verbatimchar \quotechar \bslash
-    \reserved at b
-    \verbatimchar
-    \reserved at c
-    \encapchar code}
-  \fi
-  \@esphack
-}
-
-\cs_new:Npn \__doc_maybe_index_aux:Nnn #1#2#3 {
-    \cs_if_exist:NTF #1
-      {
-        \__doc_trace:x{Indexing~ '#3'\space as~
-                       \tl_use:N \l__doc_idxtype_tl }
-        #1{#2}{#3}
-      }
-      {
-        \PackageError{doc}{Doc~ element~
-           '\tl_use:N \l__doc_idxtype_tl'~ unknown}%
-
-          {When~ using~ '\string\RecordIndexType'~ the~ type~ must~
-           be~ known~\MessageBreak
-           to~ the~ system,~ i.e.,~ declared~ via~
-           '\string\NewDocElement'\MessageBreak
-           before~ it~ can~ be~ used~ in~ indexing.}
-     }
-}
-\ExplSyntaxOff
-\@ifundefined{actualchar}{\def\actualchar{=}}{}
-\@ifundefined{quotechar}{\def\quotechar{!}}{}
-\@ifundefined{levelchar}{\def\levelchar{>}}{}
-\@ifundefined{encapchar}{\def\encapchar{|}}{}
-\@ifundefined{verbatimchar}{\def\verbatimchar{+}}{}
-\begingroup
- \catcode`\|=0
- \catcode`\\=12
- |gdef|@SpecialIndexHelper@#1#2|@nil{%
-   |if |noexpand#1\%
-     |gdef|@gtempa{#2}%
-   |else
-     |begingroup
-       |escapechar|m at ne
-       |expandafter|gdef|expandafter|@gtempa|expandafter{|string#1#2}%
-     |endgroup
-   |fi}
-|endgroup
-\def\SortIndex#1#2{%
-  \ifdoc at noindex\else
-    \index{#1\actualchar#2}%
-  \fi
-}
-\@ifundefined{LeftBraceIndex}{\def\LeftBraceIndex{%
-   \special at index{\bgroup\actualchar
-                  \string\verb% % to fool emacs highlighting
-                  \quotechar*\verbatimchar
-                  \quotechar\bslash{\verbatimchar\string\iffalse}\string\fi}}}{}
-
-\@ifundefined{RightBraceIndex}{\def\RightBraceIndex{%
- \special at index{\egroup\actualchar\string\iffalse{\string\fi
-           \string\verb% % to fool emacs highlighting
-           \quotechar*\verbatimchar\quotechar\bslash}\verbatimchar}}}{}
-\@ifundefined{PercentIndex}
-  {\def\PercentIndex{\it at is@a\percentchar}}{}
-\def\OldMakeindex{\def\PercentIndex{%
-    \special at index{\quotechar\percentchar\actualchar
-           \string\verb% % to fool emacs highlighting
-           \quotechar*\verbatimchar\quotechar\bslash
-           \percentchar\percentchar\verbatimchar}}}
-{\catcode`\%=12 \gdef\percentchar{%}}
-\def\it at is@a#1{\special at index{\quotechar #1\actualchar
-                          \string\verb% % to fool emacs highlighting
-                          \quotechar*\verbatimchar
-                          \quotechar\bslash\quotechar#1\verbatimchar}}
-
-\newdimen\IndexMin         \IndexMin       = 80pt
-\newcount\c at IndexColumns   \c at IndexColumns = 3
-\ifdoc at multicol
-  \RequirePackage{multicol}
-  \renewenvironment{theindex}
-    {\begin{multicols}\c at IndexColumns[\index at prologue][\IndexMin]%
-      \IndexParms \let\item\@idxitem \ignorespaces}%
-    {\end{multicols}}
-\else
-  \def\theindex{\@restonecoltrue\if at twocolumn\@restonecolfalse\fi
-    \columnseprule \z@  \columnsep 35\p@
-    \twocolumn[\index at prologue]%
-    \IndexParms \let\item\@idxitem \ignorespaces}
-  \def\endtheindex{\if at restonecol\onecolumn\else\clearpage\fi}
-\fi
-\long\def\IndexPrologue#1{\@bsphack\def\index at prologue{#1}\@esphack}
-\@ifundefined{index at prologue}
-     {\def\index at prologue{\section*{Index}%
-                 \markboth{Index}{Index}%
-                 Numbers written in italic refer to the page
-                 where the corresponding entry is described;
-                 numbers underlined refer to the
-                 \ifcodeline at index
-                   code line of the
-                 \fi
-                 definition; numbers in roman refer to the
-                 \ifcodeline at index
-                   code lines
-                 \else
-                   pages
-                 \fi
-                 where the entry is used.
-                 }}{}
-\@ifundefined{IndexParms}
-    {\def\IndexParms{%
-       \parindent \z@
-       \columnsep 15pt
-       \parskip 0pt plus 1pt
-       \rightskip 15pt
-       \mathsurround \z@
-       \parfillskip=-15pt
-        \small
-       \def\@idxitem{\par\hangindent 30pt}%
-       \def\subitem{\@idxitem\hspace*{15pt}}%
-       \def\subsubitem{\@idxitem\hspace*{25pt}}%
-       \def\indexspace{\par\vspace{10pt plus 2pt minus 3pt}}%
-      }}{}
-\def\efill{\hfill\nopagebreak}%
-\def\pfill{\unskip~%
-           \leaders\hbox to.6em{\hss .\hss}\hfill
-           \penalty500\strut\nobreak
-           \leaders\hbox to.6em{\hss .\hss}\hfil
-           ~\ignorespaces}%
-\def\*{\leavevmode\lower.8ex\hbox{$\,\widetilde{\ }\,$}}
-\@ifundefined{main}{\def\main#1{\underline{#1}}}{}
-\@ifundefined{usage}{\def\usage#1{\textit{#1}}}{}
-\@ifundefined{code}{\def\code#1{#1}}{}
-\def\PrintIndex{\@input@{\jobname.ind}%
-                \global\let\PrintIndex\@empty}
-\def\changes{\@bsphack\begingroup\@sanitize
-   \catcode`\\\z@ \catcode`\ 10 \MakePercentIgnore
-   \changes@}
-\def\changes@#1#2#3{%
-  \protected at edef\@tempa{\noexpand\glossary{#1\levelchar
-                   \ifx\saved at macroname\@empty
-                      \quotechar!%
-                      \actualchar
-                      \generalname
-                   \else
-                      \saved at indexname
-                      \actualchar
-                      \string\verb% % to fool emacs highlighting
-                      \quotechar*%
-                      \verbatimchar\saved at macroname
-                      \verbatimchar
-                   \fi
-                   :\levelchar #3}}%
-  \@tempa\endgroup\@esphack}
-\def\saved at macroname{}
-\def\saved at indexname{}
-\def\generalname{General}
-\let\RecordChanges\makeglossary
-\newdimen\GlossaryMin         \GlossaryMin       = 80pt
-\newcount\c at GlossaryColumns   \c at GlossaryColumns = 2
-\ifdoc at multicol
-  \newenvironment{theglossary}{%
-    \begin{multicols}\c at GlossaryColumns
-                     [\glossary at prologue][\GlossaryMin]%
-    \GlossaryParms \let\item\@idxitem \ignorespaces}%
-   {\end{multicols}}
-\else
-  \newenvironment{theglossary}{%
-      \@restonecoltrue\if at twocolumn\@restonecolfalse\fi
-      \columnseprule \z@  \columnsep 35\p@
-      \twocolumn[\glossary at prologue]%
-      \GlossaryParms \let\item\@idxitem \ignorespaces}
-    {\if at restonecol\onecolumn\else\clearpage\fi}
-\fi
-\long\def\GlossaryPrologue#1{\@bsphack
-                             \def\glossary at prologue{#1}%
-                             \@esphack}
-\@ifundefined{glossary at prologue}
-     {\def\glossary at prologue{\section*{{Change History}}%
-                 \markboth{{Change History}}{{Change History}}%
-                 }}{}
-\@ifundefined{GlossaryParms}{\let\GlossaryParms\IndexParms
-  \expandafter\def\expandafter\GlossaryParms\expandafter{\GlossaryParms
-     \rightskip 15pt plus 1fil
-     \parfillskip -15pt plus -1fil\relax}
-}{}
-\def\PrintChanges{\@input@{\jobname.gls}%
-                  \global\let\PrintChanges\@empty}
-\newcommand\AlsoImplementation{%
-   \long\def\MaybeStopHere##1{\@bsphack\gdef\Finale{##1%
-                  \check at checksum}%
-              \init at checksum
-              \@esphack}%
-         }
-\AlsoImplementation
-\def\OnlyDescription{\@bsphack\long\def\MaybeStopHere##1{%
-           ##1\endinput}\@esphack}
-\let\Finale\relax
-\def\StopEventually{\MaybeStopHere}
-\ifx\l at nohyphenation\undefined
-  \newlanguage\l at nohyphenation
-\fi
-\DeclareRobustCommand\meta[1]{%
-     \ensuremath\langle
-     \ifmmode \expandafter \nfss at text \fi
-     {%
-      \meta at font@select
-      \edef\meta at hyphen@restore
-        {\hyphenchar\the\font\the\hyphenchar\font}%
-      \hyphenchar\font\m at ne
-      \language\l at nohyphenation
-      #1\/%
-      \meta at hyphen@restore
-     }\ensuremath\rangle
-}
-\def\meta at font@select{\itshape}
-\def\IndexInput#1{%
-     \begingroup \macro at code
-   \frenchspacing \@vobeyspaces
-     \input{#1}\endmacrocode
-     \endgroup}
-\def\maketitle{\par
-      \begingroup \def \thefootnote {\fnsymbol {footnote}}%
-      \setcounter {footnote}\z@
-      \def\@makefnmark{\hbox to\z@{$\m at th^{\@thefnmark}$\hss}}%
-      \long\def\@makefntext##1{\parindent 1em\noindent
-            \hbox to1.8em{\hss$\m at th^{\@thefnmark}$}##1}%
-      \if at twocolumn \twocolumn [\@maketitle ]%
-      \else \newpage \global \@topnum \z@ \@maketitle \fi
-       \thispagestyle{titlepage}\@thanks \endgroup
-      \setcounter {footnote}\z@
-      \gdef\@date{\today}\gdef\@thanks{}%
-      \gdef\@author{}\gdef\@title{}}
-\@ifundefined{ps at titlepage}
-    {\let\ps at titlepage=\ps at plain}{}
-\def\MakeShortVerb{%
-  \@ifstar
-    {\def\@shortvrbdef{\verb*}\@MakeShortVerb}%
-    {\def\@shortvrbdef{\verb}\@MakeShortVerb}}
-\def\@MakeShortVerb#1{%
-  \expandafter\ifx\csname cc\string#1\endcsname\relax
-    \@shortvrbinfo{Made }{#1}\@shortvrbdef
-    \add at special{#1}%
-    \expandafter
-    \xdef\csname cc\string#1\endcsname{\the\catcode`#1}%
-    \begingroup
-      \catcode`\~\active  \lccode`\~`#1%
-      \lowercase{%
-      \global\expandafter\let
-         \csname ac\string#1\endcsname~%
-      \expandafter\gdef\expandafter~\expandafter{\@shortvrbdef~}}%
-    \endgroup
-    \global\catcode`#1\active
-  \else
-    \@shortvrbinfo\@empty{#1 already}%
-                         {\@empty\verb% % to fool emacs highlighting
-                          (*)}%
-  \fi}
-\def\DeleteShortVerb#1{%
-  \expandafter\ifx\csname cc\string#1\endcsname\relax
-    \@shortvrbinfo\@empty{#1 not}%
-                         {\@empty\verb% % to fool emacs highlighting
-                          (*)}%
-  \else
-    \@shortvrbinfo{Deleted }{#1 as}%
-                            {\@empty\verb% % to fool emacs
-                                           % highlighting
-                            (*)}%
-    \rem at special{#1}%
-    \global\catcode`#1\csname cc\string#1\endcsname
-    \global \expandafter\let \csname cc\string#1\endcsname \relax
-    \ifnum\catcode`#1=\active
-      \begingroup
-        \catcode`\~\active   \lccode`\~`#1%
-        \lowercase{%
-          \global\expandafter\let\expandafter~%
-          \csname ac\string#1\endcsname}%
-      \endgroup \fi \fi}
-\def\@shortvrbinfo#1#2#3{%
-  \PackageInfo{doc}{%
-     #1\expandafter\@gobble\string#2 a short reference
-                                          for \expandafter\string#3}}
-\def\add at special#1{%
-  \rem at special{#1}%
-  \expandafter\gdef\expandafter\dospecials\expandafter
-    {\dospecials \do #1}%
-  \expandafter\gdef\expandafter\@sanitize\expandafter
-    {\@sanitize \@makeother #1}}
-\def\rem at special#1{%
-  \def\do##1{%
-    \ifnum`#1=`##1 \else \noexpand\do\noexpand##1\fi}%
-  \xdef\dospecials{\dospecials}%
-  \begingroup
-    \def\@makeother##1{%
-      \ifnum`#1=`##1 \else \noexpand\@makeother\noexpand##1\fi}%
-    \xdef\@sanitize{\@sanitize}%
-  \endgroup}
-\def\init at checksum{\relax
-    \global\bslash at cnt\z@}
-\def\check at checksum{\relax
-  \ifnum\check at sum>\m at ne
-     \ifnum\check at sum=\z@
-       \typeout{**********************************}%
-       \typeout{* This macro file has no checksum!}%
-       \typeout{* The checksum should be \the\bslash at cnt!}%
-       \typeout{**********************************}%
-     \else
-       \ifnum\check at sum=\bslash at cnt
-         \typeout{*******************}%
-         \typeout{* Checksum passed *}%
-         \typeout{*******************}%
-       \else
-         \PackageError{doc}{Checksum not passed
-                    (\the\check at sum<>\the\bslash at cnt)}%
-          {The file currently documented seems to be wrong.^^J%
-           Try to get a correct version.}%
-       \fi
-     \fi
-  \fi
-  \global\check at sum\m at ne}
-\newcount\check at sum           \check at sum  = \m at ne
-\newcount\bslash at cnt          \bslash at cnt = \z@
-\def\CheckSum#1{\@bsphack\global\check at sum#1\relax\@esphack}
-\def\step at checksum{\global\advance\bslash at cnt\@ne}
-\def\CharacterTable{\begingroup \CharTableChanges \character at table}
-\begingroup
-  \catcode`\~=11
-  \gdef\character at table#1{\def\used~table{#1}%
-      \ifx\used~table\default~table
-           \typeout{***************************}%
-           \typeout{* Character table correct *}%
-           \typeout{***************************}%
-      \else
-         \PackageError{doc}{Character table corrupted}
-                           {\the\wrong at table}
-         \show\default~table
-         \show\used~table
-      \fi
-      \endgroup}
-  \global\let\CharTableChanges\@empty
-  \makeatother
-  \gdef\default~table
-     {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-      Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-      Digits        \0\1\2\3\4\5\6\7\8\9
-      Exclamation   \!     Double quote  \"     Hash (number) \#
-      Dollar        \$     Percent       \%     Ampersand     \&
-      Acute accent  \'     Left paren    \(     Right paren   \)
-      Asterisk      \*     Plus          \+     Comma         \,
-      Minus         \-     Point         \.     Solidus       \/
-      Colon         \:     Semicolon     \;     Less than     \<
-      Equals        \=     Greater than  \>     Question mark \?
-      Commercial at \@     Left bracket  \[     Backslash     \\
-      Right bracket \]     Circumflex    \^     Underscore    \_
-      Grave accent  \`     Left brace    \{     Vertical bar  \|
-      Right brace   \}     Tilde         \~}
-\endgroup
-  \newhelp\wrong at table{Some of the ASCII characters are corrupted.^^J
-            I now \string\show\space you both tables for comparison.}
-\newif\ifcodeline at index \codeline at indexfalse
-\let\CodelineNumbered\codeline at indextrue
-\def\codeline at wrindex#1{\if at filesw
-     \begingroup
-        \set at display@protect
-        \immediate\write\@indexfile
-            {\string\indexentry{#1}%
-             {\number\c at CodelineNo}}%
-      \endgroup
-    \fi}
-\let\special at index = \@gobble
-\def\CodelineIndex{\makeindex
-                   \codeline at indextrue
-                   \let\special at index\codeline at wrindex}
-\def\PageIndex{\makeindex
-               \codeline at indexfalse
-               \let\special at index\index}
-\newcount\c at CodelineNo  \c at CodelineNo\z@
-\@ifundefined{theCodelineNo}
-  {\ifx\selectfont\undefined
-     \def\theCodelineNo{\rmfamily\scriptsize\arabic{CodelineNo}}%
-   \else
-     \def\theCodelineNo{\reset at font\scriptsize\arabic{CodelineNo}}%
-   \fi}
-  {}
-       \tolerance=1000\relax
-{ \catcode`\"=12
-  \global\mathcode`\\="705C \global\mathcode`\@="7040 }
-\@ifundefined{DocstyleParms}{}{\DocstyleParms}
- \let\DocstyleParms\relax
-\@ifundefined{AmSTeX}
-   {\def\AmSTeX{\leavevmode\hbox{$\mathcal A\kern-.2em\lower.376ex%
-        \hbox{$\mathcal M$}\kern-.2em\mathcal S$-\TeX}}}{}
-\@ifundefined{BibTeX}
-   {\def\BibTeX{{\rmfamily B\kern-.05em%
-    \textsc{i\kern-.025em b}\kern-.08em%
-    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}}{}
-\@ifundefined{SliTeX}
-   {\def\SliTeX{{\rmfamily S\kern-.06emL\kern-.18em\raise.32ex\hbox
-                {\scshape i}\kern -.03em\TeX}}}{}
-\@ifundefined{PlainTeX}{\def\PlainTeX{\textsc{Plain}\kern2pt\TeX}}{}
-\@ifundefined{Web}{\def\Web{\textsc{Web}}}{}
-\def\MakePercentIgnore{\catcode`\%9\relax}
-\def\MakePercentComment{\catcode`\%14\relax}
-\def\DocInput#1{\MakePercentIgnore\input{#1}\MakePercentComment}
-\def\GetFileInfo#1{%
-  \def\filename{#1}%
-  \def\@tempb##1 ##2 ##3\relax##4\relax{%
-    \def\filedate{##1}%
-    \def\fileversion{##2}%
-    \def\fileinfo{##3}}%
-  \edef\@tempa{\csname ver@#1\endcsname}%
-  \expandafter\@tempb\@tempa\relax? ? \relax\relax}
-
-\ifdoc at hyperref
-  \let\PrintDescribeMacro \@empty
-  \let\PrintDescribeEnv   \@empty
-  \let\PrintMacroName     \@empty
-  \let\PrintEnvName       \@empty
-  \let\SpecialUsageIndex  \@empty
-  \let\SpecialEnvIndex    \@empty
-  \expandafter\let\expandafter\doc at eoph@@k\csname doc.sty-h@@k\endcsname
-  \RequirePackage{hypdoc}
-  \expandafter\let\csname doc.sty-h@@k\endcsname\doc at eoph@@k
-  \let\PrintDescribeMacro \relax
-  \let\PrintDescribeEnv   \relax
-  \let\PrintMacroName     \relax
-  \let\PrintEnvName       \relax
-  \def\doc at providetarget{\HD at target}
-  \def\doc at handleencap#1{\encapchar hdclindex{\the\c at HD@hypercount}{#1}}
-\else
-  \let\doc at providetarget\@empty
-  \def\doc at handleencap#1{\encapchar #1}
-  \def\hdclindex#1#2{\ifx\@nil#2\@nil\else\csname #2\expandafter\endcsname\fi}
-  \def\hdpindex   #1{\ifx\@nil#1\@nil\else\csname #1\expandafter\endcsname\fi}
-\fi
-
-
-\ExplSyntaxOn
-
-\long\def\@doc at env#1#2#3{
-  \endgroup
-  \clist_map_inline:nn {#3} { \@doc at env@{#1}{#2}{##1} }
-}
-
-\ExplSyntaxOff
-\long\def\@doc at env@#1#2#3{%
-  \topsep\MacroTopsep
-  \trivlist
-    \edef\saved at macroname{\string#3}%
-    \if #1%
-      \edef\saved at indexname{\expandafter\@gobble\saved at macroname}%
-      \expandafter\ifx
-                  \csname Code#2Index\endcsname
-                  \CodeMacroIndex
-      \else
-        \record at index@type at save
-          {\saved at indexname}{#2}%
-      \fi
-    \else
-      \let\saved at indexname\saved at macroname
-    \fi
-    \def\makelabel##1{\llap{##1}}%
-    \if at inlabel
-      \let\@tempa\@empty
-      \count@\macro at cnt
-      \loop\ifnum\count@>\z@
-        \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m at ne
-      \repeat
-      \edef\makelabel##1{\llap{\vtop to\baselineskip{\@tempa\hbox{##1}\vss}}}%
-      \advance\macro at cnt\@ne
-    \else
-      \macro at cnt\@ne
-    \fi
-    \ifdoc at noprint
-      \item
-    \else
-      \edef\@tempa{%
-        \noexpand\item[%
-        \noexpand\doc at providetarget
-        \noexpand\strut
-        \noexpand\@nameuse{Print#2Name}{\saved at macroname}]}%
-      \@tempa
-    \fi
-    \ifdoc at noindex\else
-      \global\advance\c at CodelineNo\@ne
-      \csname SpecialMain#2Index\expandafter\endcsname
-        \expandafter{\saved at macroname}\nobreak
-      \global\advance\c at CodelineNo\m at ne
-    \fi
-    \if#1\expandafter\DoNotIndex \expandafter {\saved at macroname}\fi
-    \ignorespaces}
-
-\def\doc at env#1#2[#3]{%
-  \@nameuse{doc at noprint\doc at noprintdefault}%
-  \@nameuse{doc at noindex\doc at noindexdefault}%
-  \setkeys{doc}{#3}%
-  \begingroup
-    \ifdoc at outer
-      \catcode`\\12
-    \fi
-    \MakePrivateLetters
-    \@doc at env{#1}{#2}%
-}
-
-\def\@doc at describe#1#2{%
-    \ifdoc at noprint\else
-      \marginpar{\raggedleft
-                 \strut
-                 \doc at providetarget
-                 \@nameuse{PrintDescribe#1}{#2}}%
-    \fi
-    \ifdoc at noindex\else
-      \@nameuse{Special#1Index}{#2}%
-    \fi
-  \@esphack
-  \endgroup
-  \ignorespaces}
-\def\doc at describe#1[#2]{%
-  \leavevmode\@bsphack
-    \setkeys{doc}{#2}%
-      \@doc at describe{#1}}
-\@ifundefined{temptokenb}{\newtoks\@temptokenb}{}
-\def\doc at createspecialindexes#1#2#3{%
-  \@temptokena{\space (#2)}%
-  \@temptokenb{#3:}%
-  \@nameedef{SpecialMain#1Index}##1{%
-    \noexpand\@bsphack
-  \ifdoc at toplevel
-    \noexpand\special at index{##1\noexpand\actualchar
-    {\string\ttfamily\space##1}%
-    \ifx\@nil#2\@nil\else \the\@temptokena \fi
-    \noexpand\encapchar main}%
-  \fi
-  \ifx\@nil#3\@nil\else
-    \noexpand\special at index{\the\@temptokenb\noexpand\levelchar
-      ##1\noexpand\actualchar{\string\ttfamily\space##1}%
-      \noexpand\encapchar main}%
-  \fi
-    \noexpand\@esphack}%
-  \@nameedef{Special#1Index}##1{%
-    \noexpand\@bsphack
-  \ifdoc at toplevel
-    \noexpand\doc at providetarget
-    \noexpand\index{##1\noexpand\actualchar{\string\ttfamily\space##1}%
-    \ifx\@nil#2\@nil\else \the\@temptokena \fi
-           \noexpand\doc at handleencap{usage}}%
-  \fi
-  \ifx\@nil#3\@nil\else
-    \noexpand\index{\the\@temptokenb\noexpand\levelchar
-       ##1\noexpand\actualchar{\string\ttfamily\space##1}%
-           \noexpand\doc at handleencap{usage}}%
-  \fi
-    \noexpand\@esphack}}
-\def\doc at createspecialmacrolikeindexes#1#2#3{%
-  \@temptokena{\space (#2)}%
-  \@temptokenb{#3:}%
-  \@nameedef{Code#1Index}##1##2{%
-    \noexpand\@SpecialIndexHelper@##2\noexpand\@nil
-    \noexpand\@bsphack
-  \noexpand\ifdoc at noindex\noexpand\else
-    \ifdoc at toplevel
-      \noexpand\special at index{\noexpand\@gtempa\noexpand\actualchar
-\string\verb% % to fool emacs highlighting
-\noexpand\quotechar*\noexpand\verbatimchar
-\noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar
-\ifx\@nil#2\@nil\else \the\@temptokena \fi
-\noexpand\encapchar ##1}%
-    \fi
-    \ifx\@nil#3\@nil\else
-      \noexpand\special at index{\the\@temptokenb\noexpand\levelchar
-\noexpand\@gtempa\noexpand\actualchar
-\string\verb% % to fool emacs highlighting
-\noexpand\quotechar*\noexpand\verbatimchar
-\noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar
-\noexpand\encapchar ##1}%
-    \fi
-  \noexpand\fi
-    \noexpand\@esphack}%
-  \@nameedef{SpecialMain#1Index}##1{%
-    \expandafter\noexpand\csname Code#1Index\endcsname
-        {main}{##1}}%
-  \@nameedef{Special#1Index}##1{%
-    \noexpand\@SpecialIndexHelper@##1\noexpand\@nil
-    \noexpand\@bsphack
-  \noexpand\ifdoc at noindex\noexpand\else
-    \ifdoc at toplevel
-      \noexpand\doc at providetarget
-      \noexpand\index{\noexpand\@gtempa\noexpand\actualchar
-\string\verb% % to fool emacs highlighting
-\noexpand\quotechar*\noexpand\verbatimchar
-\noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar
-\ifx\@nil#2\@nil\else \the\@temptokena \fi
-\noexpand\doc at handleencap{usage}}%
-    \fi
-    \ifx\@nil#3\@nil\else
-      \noexpand\index{\the\@temptokenb\noexpand\levelchar
-\noexpand\@gtempa\noexpand\actualchar
-\string\verb% % to fool emacs highlighting
-\noexpand\quotechar*\noexpand\verbatimchar
-\noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar
-\noexpand\doc at handleencap{usage}}%
-    \fi
-  \noexpand\fi
-    \noexpand\@esphack}}
-
-\def\doc at createdescribe#1{%
-  \@namedef{Describe#1}{%
-    \begingroup
-      \MakePrivateLetters
-      \@ifnextchar[%]
-      {\doc at describe{#1}}{\doc at describe{#1}[]}}}
-\def\doc at createenv#1#2#3{%
-  \@namedef{#3}{%
-    \@ifnextchar[%]
-    {\doc at env{#1}{#2}}{\doc at env{#1}{#2}[]}}%
-  \@namedef{end#3}{\endtrivlist}%
-}
-
-\def\@nameedef#1{\expandafter\edef\csname #1\endcsname}
-
-
-\def\doc at declareerror#1#2{%
-   \PackageError{doc}{Doc element '#1/#2' already defined?\@gobble}%
-      {There is already a definition for
-       '\string\Print#1Name',\MessageBreak
-       '\string\PrintDescribe#1'
-       or the environment '#2'.\MessageBreak
-       Maybe you are overwriting something by mistake!\MessageBreak
-       Otherwise use '\string\RenewDocElement' instead.}%
-}
-
-\def\doc at notdeclarederror#1#2{%
-   \PackageError{doc}{Doc element '#1/#2' unknown}%
-      {I expected an existing definition for
-       '\string\Print#1Name',\MessageBreak
-       '\string\PrintDescribe#1' and
-       the environment '#2' but\MessageBreak
-       not all of them are defined.\MessageBreak
-       Maybe you wanted to use
-       '\string\NewDocElement'?}%
-}
-\newcommand\NewDocElement[3][]{%
-  \@ifundefined{Print#2Name}%
-      {\@ifundefined{PrintDescribe#2}%
-           {\@ifundefined{#3}%
-               {\@ifundefined{end#3}%
-                    {\@NewDocElement{#1}}%
-                    \doc at declareerror
-               }\doc at declareerror
-           }\doc at declareerror
-      }\doc at declareerror
-  {#2}{#3}%
-}
-\newcommand\RenewDocElement[3][]{%
-  \@ifundefined{Print#2Name}\doc at notdeclarederror
-      {\@ifundefined{PrintDescribe#2}\doc at notdeclarederror
-           {\@ifundefined{#3}\doc at notdeclarederror
-               {\@ifundefined{end#3}\doc at notdeclarederror
-                    {\@NewDocElement{#1}}%
-               }%
-           }%
-      }%
-  {#2}{#3}%
-}
-\def\@NewDocElement#1#2#3{%
-  \doc at macrolikefalse
-  \doc at topleveltrue
-  \def\doc at idxtype{#3}%
-  \def\doc at idxgroup{#3s}%
-  \let\doc at printtype\@empty
-  \setkeys{doc}{#1}%
-  \ifx\doc at printtype\@empty
-    \@temptokena{}%
-  \else
-    \@temptokena\expandafter{\expandafter
-         \textnormal\expandafter{\expandafter
-         \space\expandafter
-         (\doc at printtype)}}%
-  \fi
-  \@nameedef{Print#2Name}##1{%
-     {\noexpand\MacroFont
-      \ifdoc at macrolike
-         \noexpand\string
-      \fi
-      ##1%
-      \the\@temptokena
-     }}%
-  \expandafter\let\csname PrintDescribe#2\expandafter\endcsname
-                  \csname Print#2Name\endcsname
-  \edef\doc at expr{%
-     \ifdoc at macrolike
-       \noexpand\doc at createspecialmacrolikeindexes
-     \else
-       \noexpand\doc at createspecialindexes
-     \fi
-     {#2}%
-    }%
-   \expandafter\expandafter\expandafter
-   \doc at expr
-   \expandafter\expandafter\expandafter
-     {\expandafter\doc at idxtype\expandafter}\expandafter
-     {\doc at idxgroup}%
-  \doc at createdescribe{#2}%
-    \ifdoc at macrolike
-      \doc at createenv{TT}{#2}{#3}%
-    \else
-      \doc at createenv{TF}{#2}{#3}%
-    \fi
-}
-
-
-\NewDocElement[macrolike = true ,
-                idxtype   = ,
-                idxgroup  = ,
-                printtype =
-               ]{Macro}{macro}
-
-\def\SpecialMainIndex{\SpecialMainMacroIndex}
-
-\def\SpecialUsageIndex{\SpecialMacroIndex}
-
-\def\SpecialIndex     {\CodeMacroIndex{code}}
-
-\NewDocElement[macrolike = false ,
-                idxtype   = env.  ,
-                idxgroup  = environments ,
-                printtype = \textit{env.}
-               ]{Env}{environment}
-
-
-\DeclareRobustCommand\cs[1]{\texttt{\bslash #1}}
-
-\endinput
-%%
-%% End of file `doc-v3beta.sty'.

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/doc.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/doc.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/doc.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -42,15 +42,127 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 \NeedsTeXFormat{LaTeX2e}[1994/12/01]
- \ProvidesPackage{doc}
-  [2021/10/04 v2.1n
-   Standard LaTeX documentation package (FMi)]
+
+\providecommand\DeclareRelease[3]{}
+\providecommand\DeclareCurrentRelease[2]{}
+
+\DeclareRelease{v2.1g}{2016-02-15}
+                      {doc-2016-02-15.sty}
+\DeclareRelease{v2}{2021-06-01}
+                   {doc-2021-06-01.sty}
+\DeclareCurrentRelease{v3}{2022-06-01}
+
+\ProvidesPackage{doc}
+  [2022/06/01 v3.0g
+   Standard LaTeX documentation package V3 (FMi)]
 %%
 %% Package `doc' to use with LaTeX 2e
-%% Copyright (C) 1989-2020 Frank Mittelbach, all rights reserved.
+%% Copyright (C) 1989-2022 Frank Mittelbach, all rights reserved.
+
+
+
+
+
 \@ifundefined{macro at cnt}{}{\endinput}
 \catcode`\^^A=14
-\AtBeginDocument{\catcode`\^^A=14\relax}
+\catcode`\^^X=14
+\AtBeginDocument{\catcode`\^^A=14\relax\catcode`\^^X=14\relax}
+\RequirePackage{l3keys2e}
+\ExplSyntaxOn
+\newif \ifdoc at noprint
+\newif \ifdoc at noindex
+\newif \ifdoc at hyperref \doc at hyperreftrue
+\newif \ifdoc at multicol \doc at multicoltrue
+\newif \ifdoc at debugshow
+\newif \ifdoc at reportchangedates
+\keys_define:nn {doc}
+  {
+    noprint  .choice:,
+    noprint / true  .code:n = { \legacy_if_set_true:n  { doc at noprint } },
+    noprint / false .code:n = { \legacy_if_set_false:n { doc at noprint } },
+    noprint  .default:n = { true },
+    noindex  .choice:,
+    noindex / true  .code:n = { \legacy_if_set_true:n  { doc at noindex } },
+    noindex / false .code:n = { \legacy_if_set_false:n { doc at noindex } },
+    noindex  .default:n = { true },
+    hyperref  .choice:,
+    hyperref / true  .code:n = { \legacy_if_set_true:n  { doc at hyperref } },
+    hyperref / false .code:n = { \legacy_if_set_false:n { doc at hyperref } },
+    hyperref  .default:n = { true },
+    hyperref  .choice:,
+    nohyperref / true  .code:n = { \legacy_if_set_false:n  { doc at hyperref } },
+    nohyperref / false .code:n = { \legacy_if_set_true:n { doc at hyperref } },
+    nohyperref  .default:n = { true },
+    multicol  .choice:,
+    multicol / true  .code:n = { \legacy_if_set_true:n  { doc at multicol } },
+    multicol / false .code:n = { \legacy_if_set_false:n { doc at multicol } },
+    multicol  .default:n = { true },
+    nomulticol  .choice:,
+    nomulticol / true  .code:n = { \legacy_if_set_false:n  { doc at multicol } },
+    nomulticol / false .code:n = { \legacy_if_set_true:n { doc at multicol } },
+    multicol  .default:n = { true },
+    debugshow  .choice:,
+    debugshow / true  .code:n = { \legacy_if_set_true:n  { doc at debugshow } },
+    debugshow / false .code:n = { \legacy_if_set_false:n { doc at debugshow } },
+    debugshow  .default:n = { true },
+    reportchangedates  .choice:,
+    reportchangedates / true  .code:n = { \legacy_if_set_true:n  { doc at reportchangedates } },
+    reportchangedates / false .code:n = { \legacy_if_set_false:n { doc at reportchangedates } },
+    reportchangedates  .default:n = { true },
+  }
+\newif \ifdoc at toplevel \doc at topleveltrue
+\keys_define:nn {doc}
+  {
+    toplevel  .choice:,
+    toplevel / true  .code:n = { \legacy_if_set_true:n  { doc at toplevel } },
+    toplevel / false .code:n = { \legacy_if_set_false:n { doc at toplevel } },
+    toplevel  .default:n = { true },
+    notoplevel  .choice:,
+    notoplevel / true  .code:n = { \legacy_if_set_false:n  { doc at toplevel } },
+    notoplevel / false .code:n = { \legacy_if_set_true:n { doc at toplevel } },
+    notoplevel  .default:n = { true }
+  }
+\newif \ifdoc at macrolike
+\keys_define:nn {doc}
+  {
+    macrolike  .choice:,
+    macrolike / true  .code:n = { \legacy_if_set_true:n  { doc at macrolike } },
+    macrolike / false .code:n = { \legacy_if_set_false:n { doc at macrolike } },
+    macrolike  .default:n = { true },
+    envlike  .choice:,
+    envlike / true  .code:n = { \legacy_if_set_false:n  { doc at macrolike } },
+    envlike / false .code:n = { \legacy_if_set_true:n { doc at macrolike } },
+    envlike  .default:n = { true }
+  }
+
+\keys_define:nn { doc }
+  {
+    idxtype  .tl_set:N = \doc at idxtype,
+    idxgroup .tl_set:N = \doc at idxgroup,
+    printtype .tl_set:N = \doc at printtype
+  }
+\newif\ifdoc at outer
+\keys_define:nn {doc}
+  {
+    outer  .choice:,
+    outer / true  .code:n = { \legacy_if_set_true:n  { doc at outer } },
+    outer / false .code:n = { \legacy_if_set_false:n { doc at outer } },
+    outer  .default:n = { true },
+  }
+\ExplSyntaxOff
+\ProcessKeysOptions {doc}
+\newif\ifscan at allowed    \scan at allowedtrue
+\def\SetupDoc#1{%
+  \csname keys_set:nn\endcsname{doc}{#1}%
+    \edef\doc at noprintdefault{\ifdoc at noprint true\else false\fi}%
+  \ifdoc at noindex
+    \def\doc at noindexdefault{true}%
+    \scan at allowedfalse
+  \else
+    \def\doc at noindexdefault{false}%
+  \fi
+}
+\SetupDoc{}              % just save the default values
 \def\macrocode{\macro at code
    \frenchspacing \@vobeyspaces
    \xmacro at code}
@@ -181,6 +293,7 @@
 \endgroup
 \newcounter{StandardModuleDepth}
 \newcount \guard at level
+
 \@ifundefined{Module}{%
       \def\Module#1{\mod at math@codes$\langle\mathsf{#1}\rangle$}
   }{}
@@ -229,18 +342,10 @@
 |endgroup
 !%    \end{macrocode}
 \catcode`\!=12
-\def\DescribeMacro{\leavevmode\@bsphack
-   \begingroup\MakePrivateLetters\Describe at Macro}
-\def\Describe at Macro#1{\endgroup
-              \marginpar{\raggedleft\PrintDescribeMacro{#1}}%
-              \SpecialUsageIndex{#1}\@esphack\ignorespaces}
-\def\DescribeEnv{\leavevmode\@bsphack\begingroup\MakePrivateLetters
-  \Describe at Env}
-\def\Describe at Env#1{\endgroup
-              \marginpar{\raggedleft\PrintDescribeEnv{#1}}%
-              \SpecialEnvIndex{#1}\@esphack\ignorespaces}
+
 \reversemarginpar
 \setlength\marginparpush{0pt}  \setlength\marginparwidth{8pc}
+\setlength\marginparsep{\labelsep}
 {\catcode`\|=\z@ \catcode`\\=12
 |gdef|bslash{\}}
 \def\verbatim{\@beginparpenalty \predisplaypenalty \@verbatim
@@ -267,14 +372,12 @@
     \ttfamily \verb at eol@error \let\do\@makeother \dospecials
     \@ifstar{\@sverb}{\@vobeyspaces \frenchspacing \@sverb}}
 \let\verb at balance@group\@empty
-
 \def\verb at egroup{\global\let\verb at balance@group\@empty\egroup}
-
 \begingroup
   \obeylines%
   \gdef\verb at eol@error{\obeylines%
     \def^^M{\verb at egroup\@latex at error{%
-            \noexpand\verb ended by end of line}\@ehc}}%
+            \noexpand\verb command ended by end of line}\@ehc}}%
 \endgroup
 \def\verbatim at nolig@list{\do\`\do\<\do\>\do\,\do\'\do\-}
 \def\do at noligs#1{%
@@ -283,56 +386,7 @@
      \lccode`\~=`#1\relax
      \lowercase{\endgroup\def~{\leavevmode\kern\z@\char`#1}}}
 \newcount\macro at cnt \macro at cnt=0
-\def\macro{\begingroup
-   \catcode`\\12
-   \MakePrivateLetters \m at cro@ \iftrue}
-\def\environment{\begingroup
-   \catcode`\\12
-   \MakePrivateLetters \m at cro@ \iffalse}
-\long\def\m at cro@#1#2{\endgroup \topsep\MacroTopsep \trivlist
-  \edef\saved at macroname{\string#2}%
-  #1
-    \let\saved at indexname\saved at macroname
-  \else
-    \edef\saved at indexname{\expandafter\@gobble\string#2}%
-  \fi
-  \def\makelabel##1{\llap{##1}}%
-  \if at inlabel
-    \let\@tempa\@empty \count@\macro at cnt
-    \loop \ifnum\count@>\z@
-      \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m at ne \repeat
-    \edef\makelabel##1{\llap{\vtop to\baselineskip
-                               {\@tempa\hbox{##1}\vss}}}%
-    \advance \macro at cnt \@ne
-  \else  \macro at cnt\@ne  \fi
-  \edef\@tempa{\noexpand\item[%
-     #1%
-       \noexpand\PrintMacroName
-     \else
-       \noexpand\PrintEnvName
-     \fi
-     {\string#2}]}%
-  \@tempa
-  \global\advance\c at CodelineNo\@ne
-   #1%
-      \SpecialMainIndex{#2}\nobreak
-      \DoNotIndex{#2}%
-   \else
-      \SpecialMainEnvIndex{#2}\nobreak
-   \fi
-  \global\advance\c at CodelineNo\m at ne
-  \ignorespaces}
-\let\endmacro \endtrivlist
-\let\endenvironment\endmacro
 \newskip\MacroTopsep     \MacroTopsep = 7pt plus 2pt minus 2pt
-\@ifundefined{PrintMacroName}
-   {\def\PrintMacroName#1{\strut \MacroFont \string #1\ }}{}
-\@ifundefined{PrintDescribeMacro}
-   {\def\PrintDescribeMacro#1{\strut \MacroFont \string #1\ }}{}
-\@ifundefined{PrintDescribeEnv}
-   {\def\PrintDescribeEnv#1{\strut \MacroFont #1\ }}{}
-\@ifundefined{PrintEnvName}
-   {\def\PrintEnvName#1{\strut \MacroFont #1\ }}{}
 \begingroup
 \catcode`\~\active
 \gdef\SpecialEscapechar#1{%
@@ -360,7 +414,6 @@
       \def\next{\futurelet\next\macro at switch}%
    \else \let\next\@empty \fi
    \next}
-\newif\ifscan at allowed    \scan at allowedtrue
 \def\DisableCrossrefs{\@bsphack\scan at allowedfalse\@esphack}
 \def\EnableCrossrefs{\@bsphack\scan at allowedtrue
                      \def\DisableCrossrefs{\@bsphack\@esphack}\@esphack}
@@ -374,24 +427,10 @@
    \uccode`\&=\expandafter`\string#1%
    \uppercase{\def\x{\def\macro at namepart{&}}}%
    \expandafter\endgroup\x
-   \ifnot at excluded
-     \produce at index{#1}\fi
+     \maybe at index@short at macro\macro at namepart
     \scan at allowedfalse#1%
     \scan at allowedtrue }
 \endgroup
-\def\produce at index#1{%
-  \if\noexpand#1\special at escape@char
-     \scan at allowedfalse \it at is@a\special at escape@char \else
-     \if\noexpand#1\bslash \it at is@a\bslash \else
-       \if\noexpand#1\space \it at is@a\space \else
-         \ifx#1\par
-         \it at is@a\space \else
-         \ifx#1\relax \else
-           \if\noexpand#1\bgroup \LeftBraceIndex \else
-             \if\noexpand#1\egroup \RightBraceIndex \else
-               \if\noexpand#1\percentchar \PercentIndex \else
-                 \it at is@a{\string#1}%
-       \fi \fi \fi \fi \fi \fi \fi \fi}
 \def\macro at name#1{\edef\macro at namepart{\macro at namepart#1}%
      \futurelet\next\more at macroname}
 \def\more at macroname{\ifcat\noexpand\next a%
@@ -400,41 +439,166 @@
      \next}
 \def\macro at finish{%
   \macro at namepart
-  \ifnot at excluded
-     \edef\@tempa{\noexpand\SpecialIndex{\bslash\macro at namepart}}%
-     \@tempa  \fi}
-\def\DoNotIndex{\begingroup \MakePrivateLetters
-    \catcode`\\12
-    \do at not@index}
-\long\def\do at not@index#1{%
-    \endgroup
-    \addto at hook\index at excludelist{#1,}}
-\long\def\addto at hook#1#2{#1\expandafter{\the#1#2}}
-\newtoks\index at excludelist
-\index at excludelist{}
-\begingroup
-\catcode`\|=0%
-\catcode`\\=12
-|gdef|ifnot at excluded{|expandafter
-     |expanded at notin|expandafter{|expandafter
-     \|macro at namepart,}{|the|index at excludelist}}
-|endgroup
-\def\expanded at notin#1#2{%
- \def\in@@##1#1##2##3\in@@{%
-  \ifx\expanded at notin##2}%
- \expandafter\in@@#2#1\expanded at notin\in@@}
+  \maybe at index@macro \macro at namepart
+}
+
+\ExplSyntaxOn
+\seq_new:N  \l__doc_donotindex_seq
+\prop_new:N \g__doc_idxtype_prop
+\cs_new:Npn\__doc_trace:x {
+  \legacy_if:nTF{ doc at debugshow }{ \iow_term:x } { \use_none:n }
+}
+\cs_new:Npn \doc_dont_index:n {
+  \group_begin:
+    \MakePrivateLetters
+    \__doc_dont_index:n
+}
+\cs_new:Npn \__doc_dont_index:n #1 {
+  \group_end:
+  \__doc_trace:x{Disable~ indexing~ for~ '\tl_to_str:n{#1}' }
+  \clist_map_function:nN {#1} \__doc_dont_index_aux:n
+}
+\cs_new:Npn \__doc_dont_index_aux:n #1 {
+  \seq_put_right:Nx \l__doc_donotindex_seq {\expandafter\@gobble \string#1}
+}
+\cs_set_eq:NN \DoNotIndex \doc_dont_index:n
+\def \ShowIndexingState {
+  \__doc_trace:x{Show~ doc~ indexing~ state:}
+  \seq_show:N  \l__doc_donotindex_seq
+  \prop_show:N \g__doc_idxtype_prop
+}
+
+\cs_new:Npn \__doc_idxtype_put:Nn #1#2 {
+  \exp_args:Nx \__doc_idxtype_put:nn { \cs_to_str:N #1 }{#2}
+  \protected at write\@auxout{}
+     {\string\RecordIndexTypeAux {\string#1 }{#2} }
+}
+\cs_new:Npn \RecordIndexTypeAux #1#2 {
+  \exp_args:Nx \__doc_idxtype_put:nn { \cs_to_str:N #1 }{#2}
+}
+\AtEndDocument{
+  \cs_set_eq:NN \RecordIndexTypeAux \use_none:nn
+}
+\cs_set_eq:NN \RecordIndexType \__doc_idxtype_put:Nn
+\cs_new:Npn \__doc_idxtype_put_scan:nn #1#2 {
+  \exp_args:Nf \__doc_idxtype_put:nn { \tl_to_str:n {#1} }{#2}
+  \protected at write\@auxout{}
+     {\string\RecordIndexTypeAux {\bslash #1 }{#2} }
+}
+\cs_generate_variant:Nn \__doc_idxtype_put_scan:nn {o}
+\cs_set_eq:NN \record at index@type at save \__doc_idxtype_put_scan:on
+\cs_new:Npn \__doc_idxtype_put:nn #1#2 {
+  \exp_args:NNf
+  \seq_if_in:NnTF \l__doc_donotindex_seq {\tl_to_str:n{#1}}
+     {
+       \__doc_trace:x{Not~ recording~ index~ type~ for~ '\bslash #1' }
+     }
+     {
+       \__doc_trace:x{Recording~ index~ type~ for~ '\bslash #1' ~ as~ #2 }
+       \prop_gput:Nnn \g__doc_idxtype_prop {#1}{#2}
+     }
+}
+\cs_new:Npn \exp_args:co #1#2
+   { \cs:w #1 \exp_after:wN \cs_end:\exp_after:wN {#2} }
+\cs_generate_variant:Nn \tl_to_str:n {o}
+
+\cs_new:Npn \__doc_maybe_index:o #1 {
+  \exp_args:Nf \__doc_maybe_index_aux:nN { \tl_to_str:o {#1} }
+                                         \SpecialIndex
+}
+\cs_set_eq:NN \maybe at index@macro \__doc_maybe_index:o
+\cs_new:Npn \__doc_maybe_index_short:o #1 {
+  \exp_args:Nf \__doc_maybe_index_aux:nN { \tl_to_str:o {#1} }
+                                         \SpecialShortIndex
+}
+\cs_set_eq:NN \maybe at index@short at macro \__doc_maybe_index_short:o
+\cs_new:Npn \__doc_maybe_index_aux:nN #1#2 {
+  \__doc_trace:x{Searching~ for~ '\bslash #1'}
+  \seq_if_in:NnTF \l__doc_donotindex_seq {#1}
+    {
+     \__doc_trace:x{Not~ indexing~ '\bslash #1' }
+    }
+    {
+     \prop_get:NnNTF \g__doc_idxtype_prop {#1} \l__doc_idxtype_tl
+       {
+        \exp_args:Ncno \__doc_maybe_index_aux:Nnn
+              { Code \tl_use:N \l__doc_idxtype_tl Index }
+              {code} {\bslash #1}
+        }
+        {
+          \__doc_trace:x{Indexing~ '\bslash #1'\space (\string #2)}
+          \exp_args:No #2 {\bslash #1}
+        }
+    }
+}
+\cs_new:Npn \SpecialShortIndex #1 {
+    \@SpecialIndexHelper@ #1\@nil
+  \@bsphack
+  \ifdoc at noindex \else
+    \str_case_e:nnF {\@gtempa }
+        {
+          {\cs_to_str:N \^^M } {\def\reserved at a{ \string \space \actualchar }
+                                \def\reserved at b { \space }
+                                \let\reserved at c \@empty                          }
+          { }                  {\def\reserved at a{ \string \space \actualchar }
+                                \def\reserved at b { \space }
+                                \let\reserved at c \@empty                          }
+          {\c_left_brace_str} { \def\reserved at a{ \bgroup \actualchar }
+                                \def\reserved at b { \c_left_brace_str }
+                                \def\reserved at c { \noexpand\iffalse
+                                                  \c_right_brace_str
+                                                  \noexpand\fi }                 }
+          {\c_right_brace_str} { \def\reserved at a{ \egroup \actualchar
+                                                  \noexpand\iffalse
+                                                    \c_left_brace_str
+                                                  \noexpand\fi }
+                                 \def\reserved at b { \c_right_brace_str }
+                                 \let\reserved at c \@empty                         }
+          {\verbatimchar}  { \def\reserved at a{ \quotechar\verbatimchar
+                                              \actualchar }
+                             \let\reserved at b \@empty
+                             \def\reserved at c
+                                 { \string\texttt{\string\string\verbatimchar} } }
+        }
+        { \def\reserved at a {\quotechar \@gtempa \actualchar }
+          \def\reserved at b {\quotechar \@gtempa  }
+          \let\reserved at c \@empty                             }
+    \special at index {
+    \reserved at a
+    \string\verb
+    \quotechar *\verbatimchar \quotechar \bslash
+    \reserved at b
+    \verbatimchar
+    \reserved at c
+    \encapchar code}
+  \fi
+  \@esphack
+}
+
+\cs_new:Npn \__doc_maybe_index_aux:Nnn #1#2#3 {
+    \cs_if_exist:NTF #1
+      {
+        \__doc_trace:x{Indexing~ '#3'\space as~
+                       \tl_use:N \l__doc_idxtype_tl }
+        #1{#2}{#3}
+      }
+      {
+        \PackageError{doc}{Doc~ element~
+           '\tl_use:N \l__doc_idxtype_tl'~ unknown}%
+
+          {When~ using~ '\string\RecordIndexType'~ the~ type~ must~
+           be~ known~\MessageBreak
+           to~ the~ system,~ i.e.,~ declared~ via~
+           '\string\NewDocElement'\MessageBreak
+           before~ it~ can~ be~ used~ in~ indexing.}
+     }
+}
+\ExplSyntaxOff
 \@ifundefined{actualchar}{\def\actualchar{=}}{}
 \@ifundefined{quotechar}{\def\quotechar{!}}{}
 \@ifundefined{levelchar}{\def\levelchar{>}}{}
 \@ifundefined{encapchar}{\def\encapchar{|}}{}
 \@ifundefined{verbatimchar}{\def\verbatimchar{+}}{}
-\def\SpecialIndex#1{\@bsphack\special at index{\expandafter\@gobble
-                                      \string#1\actualchar
-      \string\verb\quotechar*\verbatimchar\string#1\verbatimchar}%
-    \@esphack}
-
-\def\SpecialMainIndex#1{\@bsphack\SpecialIndex@{#1}{\encapchar main}%
-                        \@esphack}
 \begingroup
  \catcode`\|=0
  \catcode`\\=12
@@ -448,75 +612,43 @@
      |endgroup
    |fi}
 |endgroup
-\def\SpecialIndex@#1#2{%
-   \@SpecialIndexHelper@#1\@nil
-   \def\@tempb{ }%
-   \ifcat \@tempb\@gtempa
-      \special at index{\quotechar\space\actualchar
-                     \string\verb\quotechar*\verbatimchar
-                     \quotechar\bslash\quotechar\space\verbatimchar#2}%
-   \else
-     \def\@tempb##1##2\relax{\ifx\relax##2\relax
-          \def\@tempc{\special at index{\quotechar##1\actualchar
-                      \string\verb\quotechar*\verbatimchar
-                      \quotechar\bslash\quotechar##1\verbatimchar#2}}%
-        \else
-          \def\@tempc{\special at index{##1##2\actualchar
-                       \string\verb\quotechar*\verbatimchar
-                       \bslash##1##2\verbatimchar#2}}%
-        \fi}%
-     \expandafter\@tempb\@gtempa\relax
-     \@tempc
-   \fi}
-\def\SpecialMainEnvIndex#1{\@bsphack\special at index{%
-                                      #1\actualchar
-                                      {\string\ttfamily\space#1}
-                                         (environment)%
-                                      \encapchar main}%
-    \special at index{environments:\levelchar#1\actualchar{%
-                   \string\ttfamily\space#1}\encapchar
-           main}\@esphack}
-\def\SpecialUsageIndex#1{\@bsphack
-   {\let\special at index\index\SpecialIndex@{#1}{\encapchar usage}}%
-   \@esphack}
-\def\SpecialEnvIndex#1{\@bsphack
-    \index{#1\actualchar{\protect\ttfamily#1}
-           (environment)\encapchar usage}%
-    \index{environments:\levelchar#1\actualchar
-          {\protect\ttfamily#1}\encapchar usage}\@esphack}
-\def\SortIndex#1#2{\index{#1\actualchar#2}}
-\def\it at is@a#1{\special at index{\quotechar #1\actualchar
-                          \string\verb\quotechar*\verbatimchar
-                          \quotechar\bslash\quotechar#1\verbatimchar}}
+\def\SortIndex#1#2{%
+  \ifdoc at noindex\else
+    \index{#1\actualchar#2}%
+  \fi
+}
 \@ifundefined{LeftBraceIndex}{\def\LeftBraceIndex{%
-   \special at index{\bgroup\actualchar\string\verb\quotechar*\verbatimchar
-          \quotechar\bslash{\verbatimchar\string\iffalse}\string\fi}}}{}
+   \special at index{\bgroup\actualchar
+                  \string\verb% % to fool emacs highlighting
+                  \quotechar*\verbatimchar
+                  \quotechar\bslash{\verbatimchar\string\iffalse}\string\fi}}}{}
 
 \@ifundefined{RightBraceIndex}{\def\RightBraceIndex{%
- \special at index{\egroup\actualchar\string\iffalse{\string\fi\string\verb
+ \special at index{\egroup\actualchar\string\iffalse{\string\fi
+           \string\verb% % to fool emacs highlighting
            \quotechar*\verbatimchar\quotechar\bslash}\verbatimchar}}}{}
 \@ifundefined{PercentIndex}
   {\def\PercentIndex{\it at is@a\percentchar}}{}
 \def\OldMakeindex{\def\PercentIndex{%
-    \special at index{\quotechar\percentchar\actualchar\string\verb
+    \special at index{\quotechar\percentchar\actualchar
+           \string\verb% % to fool emacs highlighting
            \quotechar*\verbatimchar\quotechar\bslash
            \percentchar\percentchar\verbatimchar}}}
 {\catcode`\%=12 \gdef\percentchar{%}}
-\newif\ifhave at multicol
-\IfFileExists{multicol.sty}{\have at multicoltrue
-                            \RequirePackage{multicol}%
-                           }{}
+\def\it at is@a#1{\special at index{\quotechar #1\actualchar
+                          \string\verb% % to fool emacs highlighting
+                          \quotechar*\verbatimchar
+                          \quotechar\bslash\quotechar#1\verbatimchar}}
 
 \newdimen\IndexMin         \IndexMin       = 80pt
 \newcount\c at IndexColumns   \c at IndexColumns = 3
-\ifhave at multicol
+\ifdoc at multicol
+  \RequirePackage{multicol}
   \renewenvironment{theindex}
     {\begin{multicols}\c at IndexColumns[\index at prologue][\IndexMin]%
       \IndexParms \let\item\@idxitem \ignorespaces}%
     {\end{multicols}}
 \else
-  \typeout{Can't find multicol.sty -- will use normal index layout if
-     necessary.}
   \def\theindex{\@restonecoltrue\if at twocolumn\@restonecolfalse\fi
     \columnseprule \z@  \columnsep 35\p@
     \twocolumn[\index at prologue]%
@@ -556,13 +688,15 @@
        \def\indexspace{\par\vspace{10pt plus 2pt minus 3pt}}%
       }}{}
 \def\efill{\hfill\nopagebreak}%
-\def\dotfill{\leaders\hbox to.6em{\hss .\hss}\hskip\z@ plus  1fill\kern\z@}%
-\def\dotfil{\leaders\hbox to.6em{\hss .\hss}\hfil\kern\z@}%
-\def\pfill{\unskip~\dotfill\penalty500\strut\nobreak
-               \dotfil~\ignorespaces}%
+\def\pfill{\unskip~%
+           \leaders\hbox to.6em{\hss .\hss}\hfill
+           \penalty500\strut\nobreak
+           \leaders\hbox to.6em{\hss .\hss}\hfil
+           ~\ignorespaces}%
 \def\*{\leavevmode\lower.8ex\hbox{$\,\widetilde{\ }\,$}}
 \@ifundefined{main}{\def\main#1{\underline{#1}}}{}
 \@ifundefined{usage}{\def\usage#1{\textit{#1}}}{}
+\@ifundefined{code}{\def\code#1{#1}}{}
 \def\PrintIndex{\@input@{\jobname.ind}%
                 \global\let\PrintIndex\@empty}
 \def\changes{\@bsphack\begingroup\@sanitize
@@ -569,19 +703,23 @@
    \catcode`\\\z@ \catcode`\ 10 \MakePercentIgnore
    \changes@}
 \def\changes@#1#2#3{%
-  \protected at edef\@tempa{\noexpand\glossary{#1\levelchar
-                                 \ifx\saved at macroname\@empty
-                                   \space
-                                   \actualchar
-                                   \generalname
-                                 \else
-                                   \saved at indexname
-                                   \actualchar
-                                   \string\verb\quotechar*%
-                                   \verbatimchar\saved at macroname
-                                   \verbatimchar
-                                 \fi
-                                 :\levelchar #3}}%
+  \protected at edef\@tempa{\noexpand\glossary{#1%
+                   \ifdoc at reportchangedates
+                     \space -- #2\fi
+                   \levelchar
+                   \ifx\saved at macroname\@empty
+                      \quotechar!%
+                      \actualchar
+                      \generalname
+                   \else
+                      \saved at indexname
+                      \actualchar
+                      \string\verb% % to fool emacs highlighting
+                      \quotechar*%
+                      \verbatimchar\saved at macroname
+                      \verbatimchar
+                   \fi
+                   :\levelchar #3}}%
   \@tempa\endgroup\@esphack}
 \def\saved at macroname{}
 \def\saved at indexname{}
@@ -589,7 +727,7 @@
 \let\RecordChanges\makeglossary
 \newdimen\GlossaryMin         \GlossaryMin       = 80pt
 \newcount\c at GlossaryColumns   \c at GlossaryColumns = 2
-\ifhave at multicol
+\ifdoc at multicol
   \newenvironment{theglossary}{%
     \begin{multicols}\c at GlossaryColumns
                      [\glossary at prologue][\GlossaryMin]%
@@ -618,15 +756,16 @@
 \def\PrintChanges{\@input@{\jobname.gls}%
                   \global\let\PrintChanges\@empty}
 \newcommand\AlsoImplementation{%
-   \long\def\StopEventually##1{\@bsphack\gdef\Finale{##1%
+   \long\def\MaybeStop##1{\@bsphack\gdef\Finale{##1%
                   \check at checksum}%
               \init at checksum
               \@esphack}%
          }
 \AlsoImplementation
-\def\OnlyDescription{\@bsphack\long\def\StopEventually##1{%
+\def\OnlyDescription{\@bsphack\long\def\MaybeStop##1{%
            ##1\endinput}\@esphack}
 \let\Finale\relax
+\def\StopEventually{\MaybeStop}
 \ifx\l at nohyphenation\undefined
   \newlanguage\l at nohyphenation
 \fi
@@ -682,13 +821,20 @@
     \endgroup
     \global\catcode`#1\active
   \else
-    \@shortvrbinfo\@empty{#1 already}{\@empty\verb(*)}%
+    \@shortvrbinfo\@empty{#1 already}%
+                         {\@empty\verb% % to fool emacs highlighting
+                          (*)}%
   \fi}
 \def\DeleteShortVerb#1{%
   \expandafter\ifx\csname cc\string#1\endcsname\relax
-    \@shortvrbinfo\@empty{#1 not}{\@empty\verb(*)}%
+    \@shortvrbinfo\@empty{#1 not}%
+                         {\@empty\verb% % to fool emacs highlighting
+                          (*)}%
   \else
-    \@shortvrbinfo{Deleted }{#1 as}{\@empty\verb(*)}%
+    \@shortvrbinfo{Deleted }{#1 as}%
+                            {\@empty\verb% % to fool emacs
+                                           % highlighting
+                            (*)}%
     \rem at special{#1}%
     \global\catcode`#1\csname cc\string#1\endcsname
     \global \expandafter\let \csname cc\string#1\endcsname \relax
@@ -718,10 +864,6 @@
       \ifnum`#1=`##1 \else \noexpand\@makeother\noexpand##1\fi}%
     \xdef\@sanitize{\@sanitize}%
   \endgroup}
-\def\MakeShortverb{\typeout{*** Switch to \noexpand\MakeShortVerb
-                         syntax, this is obsolete ***}\MakeShortVerb}
-\def\DeleteShortverb{\typeout{*** Switch to \noexpand\DeleteShortVerb
-                         syntax, this is obsolete ***}\DeleteShortVerb}
 \def\init at checksum{\relax
     \global\bslash at cnt\z@}
 \def\check at checksum{\relax
@@ -787,9 +929,13 @@
 \newif\ifcodeline at index \codeline at indexfalse
 \let\CodelineNumbered\codeline at indextrue
 \def\codeline at wrindex#1{\if at filesw
+     \begingroup
+        \set at display@protect
         \immediate\write\@indexfile
             {\string\indexentry{#1}%
-            {\number\c at CodelineNo}}\fi}
+             {\number\c at CodelineNo}}%
+      \endgroup
+    \fi}
 \let\special at index = \@gobble
 \def\CodelineIndex{\makeindex
                    \codeline at indextrue
@@ -833,6 +979,353 @@
     \def\fileinfo{##3}}%
   \edef\@tempa{\csname ver@#1\endcsname}%
   \expandafter\@tempb\@tempa\relax? ? \relax\relax}
+
+\AddToHook{begindocument/before}[doc/hyperref]{%
+ \ifdoc at hyperref
+  \expandafter\let\expandafter\doc at eoph@@k\csname doc.sty-h@@k\endcsname
+  \RequirePackage{hypdoc}
+  \expandafter\let\csname doc.sty-h@@k\endcsname\doc at eoph@@k
+  \let\PrintDescribeMacro \@@PrintDescribeMacro
+  \let\PrintDescribeEnv \@@PrintDescribeEnv
+  \let\PrintMacroName \@@PrintMacroName
+  \let\PrintEnvName \@@PrintEnvName
+  \let\SpecialUsageIndex \@@SpecialUsageIndex
+  \let\SpecialEnvIndex \@@SpecialEnvIndex
+  \let\SortIndex \@@SortIndex
+  \let\DescribeMacro \@@DescribeMacro
+  \let\DescribeEnv \@@DescribeEnv
+  \ifx\special at index\@gobble  % do we write index entries at all?
+  \else
+    \ifcodeline at index
+      \let\special at index\HD at codeline@wrindex
+    \else
+      \let\special at index\HD at page@wrindex
+    \fi
+  \fi
+  \AddToHook{class/amsdtx/after}{%
+     \pdfstringdefDisableCommands{\let\env\@empty }}%
+  \def\doc at providetarget{\HD at target}%
+  \def\doc at handleencap#1{\encapchar hdclindex{\the\c at HD@hypercount}{#1}}%
+ \else
+  \let\doc at providetarget\@empty
+  \def\doc at handleencap#1{\encapchar #1}%
+  \def\hdclindex#1#2{\ifx\@nil#2\@nil\else\csname #2\expandafter\endcsname\fi}%
+  \def\hdpindex   #1{\ifx\@nil#1\@nil\else\csname #1\expandafter\endcsname\fi}%
+\fi
+}
+
+\ExplSyntaxOn
+\long\def\@doc at env#1#2#3{
+  \endgroup
+  \clist_map_inline:nn {#3} { \@doc at env@{#1}{#2}{##1} }
+}
+
+\ExplSyntaxOff
+\long\def\@doc at env@#1#2#3{%
+  \topsep\MacroTopsep
+  \trivlist
+    \edef\saved at macroname{\string#3}%
+    \if #1%
+      \edef\saved at indexname{\expandafter\@gobble\saved at macroname}%
+      \expandafter\ifx
+                  \csname Code#2Index\endcsname
+                  \CodeMacroIndex
+      \else
+        \record at index@type at save
+          {\saved at indexname}{#2}%
+      \fi
+    \else
+      \let\saved at indexname\saved at macroname
+    \fi
+    \def\makelabel##1{\llap{##1}}%
+    \if at inlabel
+      \let\@tempa\@empty
+      \count@\macro at cnt
+      \loop\ifnum\count@>\z@
+        \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m at ne
+      \repeat
+      \edef\makelabel##1{\llap{\vtop to\baselineskip{\@tempa\hbox{##1}\vss}}}%
+      \advance\macro at cnt\@ne
+    \else
+      \macro at cnt\@ne
+    \fi
+    \ifdoc at noprint
+      \item
+    \else
+      \edef\@tempa{%
+        \noexpand\item[%
+        \noexpand\doc at providetarget
+        \noexpand\strut
+        \noexpand\@nameuse{Print#2Name}{\saved at macroname}]}%
+      \@tempa
+    \fi
+    \ifdoc at noindex\else
+      \global\advance\c at CodelineNo\@ne
+      \csname SpecialMain#2Index\expandafter\endcsname
+        \expandafter{\saved at macroname}\nobreak
+      \global\advance\c at CodelineNo\m at ne
+    \fi
+    \if#1\expandafter\DoNotIndex \expandafter {\saved at macroname}\fi
+    \ignorespaces}
+\def\doc at env#1#2[#3]{%
+  \@nameuse{doc at noprint\doc at noprintdefault}%
+  \@nameuse{doc at noindex\doc at noindexdefault}%
+  \csname keys_set:nn\endcsname{doc}{#3}%
+  \begingroup
+    \ifdoc at outer
+      \catcode`\\12
+    \fi
+    \MakePrivateLetters
+    \@doc at env{#1}{#2}%
+}
+
+\def\@doc at describe#1#2{%
+    \ifdoc at noprint\else
+      \marginpar{\raggedleft
+                 \strut
+                 \doc at providetarget
+                 \@nameuse{PrintDescribe#1}{#2}}%
+    \fi
+    \ifdoc at noindex\else
+      \@nameuse{Special#1Index}{#2}%
+    \fi
+  \@esphack
+  \endgroup
+  \ignorespaces}
+\def\doc at describe#1[#2]{%
+  \leavevmode\@bsphack
+  \csname keys_set:nn\endcsname{doc}{#2}%
+  \@doc at describe{#1}}
+\@ifundefined{temptokenb}{\newtoks\@temptokenb}{}
+\def\doc at createspecialindexes#1#2#3{%
+  \@temptokena{\space (#2)}%
+  \@temptokenb{#3:}%
+  \@nameedef{SpecialMain#1Index}##1{%
+    \noexpand\@bsphack
+  \ifdoc at toplevel
+    \noexpand\special at index{##1\noexpand\actualchar
+    {\string\ttfamily\space##1}%
+    \ifx\@nil#2\@nil\else \the\@temptokena \fi
+    \noexpand\encapchar main}%
+  \fi
+  \ifx\@nil#3\@nil\else
+    \noexpand\special at index{\the\@temptokenb\noexpand\levelchar
+      ##1\noexpand\actualchar{\string\ttfamily\space##1}%
+      \noexpand\encapchar main}%
+  \fi
+    \noexpand\@esphack}%
+  \@nameedef{Special#1Index}##1{%
+    \noexpand\@bsphack
+  \ifdoc at toplevel
+    \noexpand\doc at providetarget
+    \noexpand\index{##1\noexpand\actualchar{\string\ttfamily\space##1}%
+    \ifx\@nil#2\@nil\else \the\@temptokena \fi
+           \noexpand\doc at handleencap{usage}}%
+  \fi
+  \ifx\@nil#3\@nil\else
+    \noexpand\index{\the\@temptokenb\noexpand\levelchar
+       ##1\noexpand\actualchar{\string\ttfamily\space##1}%
+           \noexpand\doc at handleencap{usage}}%
+  \fi
+    \noexpand\@esphack}}
+\def\doc at createspecialmacrolikeindexes#1#2#3{%
+  \@temptokena{\space (#2)}%
+  \@temptokenb{#3:}%
+  \@nameedef{Code#1Index}##1##2{%
+    \noexpand\@SpecialIndexHelper@##2\noexpand\@nil
+    \noexpand\@bsphack
+  \noexpand\ifdoc at noindex\noexpand\else
+    \ifdoc at toplevel
+      \noexpand\special at index{\noexpand\@gtempa\noexpand\actualchar
+\string\verb% % to fool emacs highlighting
+\noexpand\quotechar*\noexpand\verbatimchar
+\noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar
+\ifx\@nil#2\@nil\else \the\@temptokena \fi
+\noexpand\encapchar ##1}%
+    \fi
+    \ifx\@nil#3\@nil\else
+      \noexpand\special at index{\the\@temptokenb\noexpand\levelchar
+\noexpand\@gtempa\noexpand\actualchar
+\string\verb% % to fool emacs highlighting
+\noexpand\quotechar*\noexpand\verbatimchar
+\noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar
+\noexpand\encapchar ##1}%
+    \fi
+  \noexpand\fi
+    \noexpand\@esphack}%
+  \@nameedef{SpecialMain#1Index}##1{%
+    \expandafter\noexpand\csname Code#1Index\endcsname
+        {main}{##1}}%
+  \@nameedef{Special#1Index}##1{%
+    \noexpand\@SpecialIndexHelper@##1\noexpand\@nil
+    \noexpand\@bsphack
+  \noexpand\ifdoc at noindex\noexpand\else
+    \ifdoc at toplevel
+      \noexpand\doc at providetarget
+      \noexpand\index{\noexpand\@gtempa\noexpand\actualchar
+\string\verb% % to fool emacs highlighting
+\noexpand\quotechar*\noexpand\verbatimchar
+\noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar
+\ifx\@nil#2\@nil\else \the\@temptokena \fi
+\noexpand\doc at handleencap{usage}}%
+    \fi
+    \ifx\@nil#3\@nil\else
+      \noexpand\index{\the\@temptokenb\noexpand\levelchar
+\noexpand\@gtempa\noexpand\actualchar
+\string\verb% % to fool emacs highlighting
+\noexpand\quotechar*\noexpand\verbatimchar
+\noexpand\bslash\noexpand\@gtempa\noexpand\verbatimchar
+\noexpand\doc at handleencap{usage}}%
+    \fi
+  \noexpand\fi
+    \noexpand\@esphack}}
+
+\def\doc at createdescribe#1{%
+  \@namedef{Describe#1}{%
+    \begingroup
+      \MakePrivateLetters
+      \@ifnextchar[%]
+      {\doc at describe{#1}}{\doc at describe{#1}[]}}}
+\def\doc at createenv#1#2#3{%
+  \@namedef{#3}{%
+    \@ifnextchar[%]
+    {\doc at env{#1}{#2}}{\doc at env{#1}{#2}[]}}%
+  \@namedef{end#3}{\endtrivlist}%
+}
+
+\def\@nameedef#1{\expandafter\edef\csname #1\endcsname}
+
+
+\def\doc at declareerror#1#2{%
+   \PackageError{doc}{Doc element '#1/#2' already defined?\@gobble}%
+      {There is already a definition for
+       '\string\Print#1Name',\MessageBreak
+       '\string\PrintDescribe#1'
+       or the environment '#2'.\MessageBreak
+       Maybe you are overwriting something by mistake!\MessageBreak
+       Otherwise use '\string\RenewDocElement' instead.}%
+}
+
+\def\doc at notdeclarederror#1#2{%
+   \PackageError{doc}{Doc element '#1/#2' unknown}%
+      {I expected an existing definition for
+       '\string\Print#1Name',\MessageBreak
+       '\string\PrintDescribe#1' and
+       the environment '#2' but\MessageBreak
+       not all of them are defined.\MessageBreak
+       Maybe you wanted to use
+       '\string\NewDocElement'?}%
+}
+\newcommand\NewDocElement[3][]{%
+  \@ifundefined{Print#2Name}%
+      {\@ifundefined{PrintDescribe#2}%
+           {\@ifundefined{#3}%
+               {\@ifundefined{end#3}%
+                    {\@NewDocElement{#1}}%
+                    \doc at declareerror
+               }\doc at declareerror
+           }\doc at declareerror
+      }\doc at declareerror
+  {#2}{#3}%
+}
+\newcommand\RenewDocElement[3][]{%
+  \@ifundefined{Print#2Name}\doc at notdeclarederror
+      {\@ifundefined{PrintDescribe#2}\doc at notdeclarederror
+           {\@ifundefined{#3}\doc at notdeclarederror
+               {\@ifundefined{end#3}\doc at notdeclarederror
+                    {\@NewDocElement{#1}}%
+               }%
+           }%
+      }%
+  {#2}{#3}%
+}
+\def\@NewDocElement#1#2#3{%
+  \doc at macrolikefalse
+  \doc at topleveltrue
+  \def\doc at idxtype{#3}%
+  \def\doc at idxgroup{#3s}%
+  \let\doc at printtype\@empty
+  \csname keys_set:nn\endcsname{doc}{#1}%
+  \ifx\doc at printtype\@empty
+    \@temptokena{}%
+  \else
+    \@temptokena\expandafter{\expandafter
+         \textnormal\expandafter{\expandafter
+         \space\expandafter
+         (\doc at printtype)}}%
+  \fi
+  \@nameedef{Print#2Name}##1{%
+     {\noexpand\MacroFont
+      \ifdoc at macrolike
+         \noexpand\string
+      \fi
+      ##1%
+      \the\@temptokena
+     }}%
+  \expandafter\let\csname PrintDescribe#2\expandafter\endcsname
+                  \csname Print#2Name\endcsname
+  \edef\doc at expr{%
+     \ifdoc at macrolike
+       \noexpand\doc at createspecialmacrolikeindexes
+     \else
+       \noexpand\doc at createspecialindexes
+     \fi
+     {#2}%
+    }%
+   \expandafter\expandafter\expandafter
+   \doc at expr
+   \expandafter\expandafter\expandafter
+     {\expandafter\doc at idxtype\expandafter}\expandafter
+     {\doc at idxgroup}%
+  \doc at createdescribe{#2}%
+    \ifdoc at macrolike
+      \doc at createenv{TT}{#2}{#3}%
+    \else
+      \doc at createenv{TF}{#2}{#3}%
+    \fi
+}
+
+
+\NewDocElement[macrolike = true ,
+                idxtype   = ,
+                idxgroup  = ,
+                printtype =
+               ]{Macro}{macro}
+
+\def\SpecialMainIndex{\SpecialMainMacroIndex}
+
+\def\SpecialUsageIndex{\SpecialMacroIndex}
+
+\def\SpecialIndex     {\CodeMacroIndex{code}}
+
+\NewDocElement[macrolike = false ,
+                idxtype   = env.  ,
+                idxgroup  = environments ,
+                printtype = \textit{env.}
+               ]{Env}{environment}
+  \let\@@PrintDescribeMacro \PrintDescribeMacro
+  \let\@@PrintDescribeEnv \PrintDescribeEnv
+  \let\@@PrintMacroName \PrintMacroName
+  \let\@@PrintEnvName \PrintEnvName
+  \let\@@SpecialUsageIndex \SpecialUsageIndex
+  \let\@@SpecialEnvIndex \SpecialEnvIndex
+  \let\@@SortIndex \SortIndex
+  \let\@@DescribeMacro \DescribeMacro
+  \let\@@DescribeEnv \DescribeEnv
+
+\DeclareRobustCommand\cs[1]{\texttt{\bslash #1}}
+\AddToHook{class/amsdtx/after}{%
+  \DeclareRobustCommand\cs[1]{%
+    \@boxorbreak{%
+        \ntt
+        \addbslash#1\@empty
+        \@xp\@xp\@xp\@indexcs\@xp\@nobslash\string#1\@nil
+    }%
+  }%
+  \def\cn{\cs}%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \endinput
 %%
 %% End of file `doc.sty'.

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/docstrip.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/docstrip.tex	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/docstrip.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/exscale.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/fix-cm.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/fixltx2e.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/flafter.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/fleqn.clo	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/fleqn.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/fltrace.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/fontenc.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -118,6 +118,7 @@
 \global\expandafter\let\csname opt at fontenc.sty\endcsname\relax
 \global\let\@ifl at ter@@\@ifl at ter
 \def\@ifl at ter#1#2#3#4#5{\global\let\@ifl at ter\@ifl at ter@@}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \endinput
 %%
 %% End of file `fontenc.sty'.

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/fontmath.cfg
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/fontmath.cfg	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/fontmath.cfg	2022-01-13 21:03:32 UTC (rev 61598)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/fontmath.ltx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/fonttext.cfg	2022-01-13 21:03:32 UTC (rev 61598)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/fonttext.ltx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/graphpap.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/hyphen.ltx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/idx.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ifthen.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/inputenc.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -42,7 +42,6 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 
-
 \NeedsTeXFormat{LaTeX2e}[1995/12/01]
 \ProvidesPackage{inputenc}
    [2021/02/14 v1.3d Input encoding file]

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/lablst.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/lablst.tex	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/lablst.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/latex.ltx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -18,6 +18,7 @@
 %% lterror.dtx  (with options: `2ekernel')
 %% ltpar.dtx  (with options: `2ekernel')
 %% ltpara.dtx  (with options: `2ekernel')
+%% ltmeta.dtx  (with options: `2ekernel')
 %% ltspace.dtx  (with options: `2ekernel')
 %% ltlogos.dtx  (with options: `2ekernel')
 %% ltfiles.dtx  (with options: `2ekernel')
@@ -46,6 +47,7 @@
 %% ltbibl.dtx  (with options: `2ekernel')
 %% ltpage.dtx  (with options: `2ekernel')
 %% ltclass.dtx  (with options: `2ekernel,tracerollback')
+%% ltkeys.dtx  (with options: `2ekernel')
 %% ltfilehook.dtx  (with options: `2ekernel')
 %% ltshipout.dtx  (with options: `2ekernel')
 %% ltoutput.dtx  (with options: `2ekernel')
@@ -58,7 +60,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -87,6 +89,7 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 %%% From File: ltdirchk.dtx
+%% ---- START temporary definitions for bootstrapping; later overwritten ----
 \ifnum\catcode`\{=1
   \errmessage
   {LaTeX must be made using an initex with no format preloaded}
@@ -294,6 +297,7 @@
      \ifx\reserved at a\@empty\else\gdef\@TeXversion{3}\fi}
   \fi
 \fi
+%% ---- END temporary definitions for bootstrapping ----
 %%% From File: ltplain.dtx
 \catcode`\{=1 % left brace is begin-group character
 \catcode`\}=2 % right brace is end-group character
@@ -692,7 +696,7 @@
 \def\fmtname{LaTeX2e}
 \edef\fmtversion
    {2022-06-01}
-\def\patch at level{0}
+\def\patch at level{-1}
 \edef\development at branch@name{develop \the\year-\the\month-\the\day}
 \iffalse
 \def\reserved at a#1/#2/#3\@nil{%
@@ -982,6 +986,14 @@
   \e at alloc\luafunction\e at alloc@chardef
     \e at alloc@luafunction at count\m at ne\e at alloc@top
 }
+\def\newluacmd{%
+  \e at alloc\luafunction\luadef
+    \e at alloc@luafunction at count\m at ne\e at alloc@top
+}
+\def\newprotectedluacmd{%
+  \e at alloc\luafunction{\protected\luadef}
+    \e at alloc@luafunction at count\m at ne\e at alloc@top
+}
 \ifx\e at alloc@whatsit at count\@undefined
   \countdef\e at alloc@whatsit at count=261
   \e at alloc@whatsit at count=\z@
@@ -1124,6 +1136,24 @@
 \cs_gset_eq:NN \@expl at str@map at function@@NN \str_map_function:NN
 \cs_gset_eq:NN \@expl at char@generate@@nn \char_generate:nn
 \ExplSyntaxOff
+\ExplSyntaxOn
+\cs_new_eq:NN \fpeval \fp_eval:n
+\cs_new_eq:NN \inteval \int_eval:n
+\cs_new_eq:NN \dimeval  \dim_eval:n
+\cs_new_eq:NN \skipeval \skip_eval:n
+\ExplSyntaxOff
+
+\ExplSyntaxOn
+\cs_new_eq:NN \UseName \use:c
+\cs_new:Npn \ExpandArgs #1
+  {
+    \cs_if_exist_use:cF { exp_args:N #1 }
+      { \msg_expandable_error:nnn { kernel } { unknown-arg-expansion } {#1} }
+  }
+\msg_new:nnn { kernel } { unknown-arg-expansion }
+  { Unknown~arg~expansion~"#1" }
+\ExplSyntaxOff
+
 %%% From File: ltdefns.dtx
 \def\two at digits#1{\ifnum#1<10 0\fi\number#1}
 \protected\long\def\typeout#1{\begingroup
@@ -1681,8 +1711,8 @@
     \xdef#1{\the\toks@}%
   \endgroup}
 %%% From File: ltcmd.dtx
-\def\ltcmdversion{v1.0h}
-\def\ltcmddate{2021-08-30}
+\def\ltcmdversion{v1.0j}
+\def\ltcmddate{2021-12-31}
 \message{document commands,}
 \ExplSyntaxOn
 \tl_new:N \l__cmd_arg_spec_tl
@@ -1917,8 +1947,6 @@
     \tl_set:Nn \l__cmd_defaults_tl {#5}
     \tl_set:Nn \l__cmd_process_all_tl {#6}
     #4
-    \bool_if:NT \l__cmd_environment_bool
-      { \exp_args:No \__cmd_set_environment_end:n \l__cmd_environment_str }
     \__cmd_run_code:
   }
 \cs_generate_variant:Nn \__cmd_start_aux:NNnnnn { cc }
@@ -1926,6 +1954,8 @@
   {
     \tl_if_empty:NF \l__cmd_defaults_tl { \__cmd_defaults: }
     \tl_if_empty:NF \l__cmd_process_all_tl { \__cmd_args_process: }
+    \bool_if:NT \l__cmd_environment_bool
+      { \exp_args:No \__cmd_set_environment_end:n \l__cmd_environment_str }
     \group_align_safe_end:
     \conditionally at traceon
     \exp_after:wN \l__cmd_fn_code_tl \l__cmd_args_tl
@@ -2857,21 +2887,21 @@
 \cs_new_protected:Npn \__cmd_show_command_aux:nNNn #1 #2 #3 #4
   {
     \__cmd_split_signature:n {#4}
-    \iow_term:x
+    \tl_show:x
       {
-        > ~ \token_to_str:N #2 = #1: \iow_newline:
+        \token_to_str:N #2 = #1: \iow_newline:
         \tl_use:N \l__cmd_tmpa_tl
-        -> \cs_replacement_spec:N #3 .
+        -> \cs_replacement_spec:N #3
       }
   }
 \cs_new_protected:Npn \__cmd_show_environment:N #1
   {
     \exp_after:wN \__cmd_show_environment:Nnnw #1 \q__cmd
-    \iow_term:x
+    \tl_show:x
       {
-        > ~ \token_to_str:N \end { \cs_to_str:N #1 } : \iow_newline:
+        \token_to_str:N \end { \cs_to_str:N #1 } : \iow_newline:
         -> \exp_args:Nc \cs_replacement_spec:N
-          { environment~ \cs_to_str:N #1 ~end~aux~ } .
+          { environment~ \cs_to_str:N #1 ~end~aux~ }
       }
   }
 \cs_new_protected:Npn \__cmd_show_environment:Nnnw #1 #2 #3 #4 \q__cmd
@@ -4306,7 +4336,7 @@
 
 %%% From File: lthooks.dtx
 \def\lthooksversion{v1.0s}
-\def\lthooksdate{2021/09/28}
+\def\lthooksdate{2022/01/06}
 \ExplSyntaxOn
 \bool_new:N \g__hook_debug_bool
 \cs_new_eq:NN \__hook_debug:n \use_none:n
@@ -5972,6 +6002,7 @@
       }
   }
 \ExplSyntaxOff
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%% From File: ltalloc.dtx
 \chardef\@xxxii=32
 \mathchardef\@Mi=10001
@@ -6416,6 +6447,24 @@
 
 \ExplSyntaxOff
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% File: ltmeta.dtx (C) Copyright 2021
+%%% From File: ltmeta.dtx
+\def\ltmetaversion{v1.0a}
+\def\ltmetadate{2021/12/07}
+\protected\def\DocumentMetadata{%
+  \InputIfFileExists{documentmetadata-support.ltx}%
+     {}%
+     {%
+       \@latex at error{No support files for
+                    \noexpand\DocumentMetadata found}
+         {Is the 'LaTeX-lab' bundle installed?%
+         \MessageBreak
+         Without it, the declaration is ignored.}%
+      \let\DocumentMetadata\@gobble
+     }%
+  \DocumentMetadata
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%% From File: ltspace.dtx
 \message{spacing,}
 \DeclareRobustCommand\pagebreak{\@testopt{\@no at pgbk-}4}
@@ -7244,6 +7293,7 @@
   }%
   \egroup
 }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%% From File: ltcounts.dtx
 
 \def\setcounter#1#2{%
@@ -7886,6 +7936,7 @@
  \def\@xviipt{17.28}
  \def\@xxpt{20.74}
  \def\@xxvpt{24.88}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%% From File: ltfssaxes.dtx
 %% Copyright (C) 1999-2020 Frank Mittelbach
 \def\DeclareFontSeriesChangeRule#1#2#3#4{%
@@ -13768,22 +13819,16 @@
   \xdef\@currpath{\ifx\reserved at b\@empty\else\reserved at b/\fi}%
   \global\let\@currext#4%
   \@ifl at aded\@currext\@currname
-    {\@if at ptions\@currext{\@currname}{#2}{}%
-      {\@latex at error
-        {Option clash for \@cls at pkg\space \@currname}%
-        {The package \@currname\space has already been loaded
-         with options:\MessageBreak
-         \space\space[\@ptionlist{\@currname.\@currext}]\MessageBreak
-         There has now been an attempt to load it
-          with options\MessageBreak
-         \space\space[#2]\MessageBreak
-         Adding the global options:\MessageBreak
-         \space\space
-              \@ptionlist{\@currname.\@currext},#2\MessageBreak
-         to your \noexpand\documentclass declaration may fix this.%
-         \MessageBreak
-         Try typing \space <return> \space to proceed.}}%
-     \@firstofone}%
+    {%
+      \@ifundefined{opt at fam@\@currname.\@currext}
+        {\@onefilewithoptions at clashchk{#2}}
+        {%
+          \@namedef{opt@\@currname.\@currext}{#2}%
+          \expandafter\expandafter\expandafter\ProcessKeyPackageOptions
+            \expandafter\expandafter\expandafter
+              [\csname opt at fam@\@currname.\@currext\endcsname]%
+        }%
+    }%
     {\makeatletter
      \@reset at ptions
      \IfFileExists{\@currpath\@currname.\@currext}{}%
@@ -13823,6 +13868,23 @@
      \ifx\@currext\@clsextension\let\LoadClass\@twoloadclasserror\fi}%
     \@popfilename
     \@reset at ptions}
+\def\@onefilewithoptions at clashchk#1{%
+  \@if at ptions\@currext{\@currname}{#1}{}%
+      {\@latex at error
+        {Option clash for \@cls at pkg\space \@currname}%
+        {The package \@currname\space has already been loaded
+         with options:\MessageBreak
+         \space\space[\@ptionlist{\@currname.\@currext}]\MessageBreak
+         There has now been an attempt to load it
+          with options\MessageBreak
+         \space\space[#1]\MessageBreak
+         Adding the global options:\MessageBreak
+         \space\space
+              \@ptionlist{\@currname.\@currext},#1\MessageBreak
+         to your \noexpand\documentclass declaration may fix this.%
+         \MessageBreak
+         Try typing \space <return> \space to proceed.}}%
+     \@firstofone}
 \let\@currpkg at reqd\@empty
 \@onlypreamble\@onefilewithoptions
 \let\@unprocessedoptions\@undefined
@@ -14280,6 +14342,182 @@
     \expandafter\@secondoftwo
   \fi
 }
+%%% From File: ltkeys.dtx
+\ExplSyntaxOn
+\cs_generate_variant:Nn \clist_put_right:Nn { Nv }
+\clist_new:N \l__keys_options_clist
+\bool_new:N \l__keys_options_loading_bool
+\cs_new_protected:Npn \__keys_options:Nn #1#2
+  {
+    \cs_gset_nopar:cpn { opt at fam@\@currname.\@currext } {#2}
+    \cs_set_protected:Npn \__keys_option_end: { }
+    \clist_clear:N \l__keys_options_clist
+    \__keys_options_global:Nn #1 {#2}
+    \__keys_options_local:
+    \keys_if_exist:nnF {#2} { unknown }
+      {
+        \keys_define:nn {#2}
+          {
+            unknown .code:n =
+              {
+                \msg_error:nnxx { keys } { option-unknown }
+                  { \l_keys_key_str } { \@currname }
+              }
+          }
+        \cs_set_protected:Npn \__keys_option_end:
+          { \keys_define:nn {#2} { unknown .undefine: } }
+      }
+    \bool_set_true:N \l__keys_options_loading_bool
+    \keys_set:nV {#2} \l__keys_options_clist
+    \bool_set_false:N \l__keys_options_loading_bool
+    \cs_set_eq:NN \@unprocessedoptions \scan_stop:
+    \__keys_option_end:
+    \__keys_options_loaded:n {#2}
+  }
+\cs_generate_variant:Nn \__keys_options:Nn { NV }
+\msg_new:nnnn { keys } { option-unknown }
+  { Unknown~option~'#1'~for~package~#2. }
+  {
+    LaTeX~has~been~asked~to~set~an~option~called~'#1'~
+    but~the~#2~package~has~not~created~an~option~with~this~name.
+  }
+\cs_new_protected:Npn \__keys_options_global:Nn #1#2
+  {
+    \cs_if_eq:NNF \@classoptionslist \scan_stop:
+      {
+        \cs_if_eq:NNTF \@currext \@clsextension
+          { \__keys_options_class:n {#2} }
+          {
+            \bool_if:NT #1
+             { \__keys_options_package:n {#2} }
+          }
+      }
+  }
+\cs_new_protected:Npn \__keys_options_class:n #1
+  {
+    \cs_if_free:cF { opt@ \@currname . \@currext }
+      {
+        \keys_if_exist:nnTF {#1} { unknown }
+          {
+            \clist_put_right:Nv \l__keys_options_clist
+              { opt@ \@currname . \@currext }
+          }
+          {
+            \clist_map_inline:cn { opt@ \@currname . \@currext }
+              {
+                \keys_if_exist:neTF
+                  {#1} { \__keys_remove_equals:n {##1} }
+                  { \clist_put_right:Nn \l__keys_options_clist {##1} }
+                  { \clist_put_right:Nn \@unusedoptionlist {##1} }
+              }
+          }
+      }
+  }
+\cs_new_protected:Npn \__keys_options_package:n #1
+  {
+    \clist_map_inline:Nn \@classoptionslist
+      {
+        \keys_if_exist:neT {#1} { \__keys_remove_equals:n {##1} }
+          {
+            \clist_put_right:Nn \l__keys_options_clist {##1}
+            \clist_remove_all:Nn \@unusedoptionlist {##1}
+          }
+      }
+  }
+\cs_new_protected:Npn \__keys_options_local:
+  {
+    \cs_if_eq:NNF \@currext \@clsextension
+      {
+        \cs_if_exist:cT { opt@ \@currname . \@currext }
+          {
+            \clist_put_right:Nv \l__keys_options_clist
+              { opt@ \@currname . \@currext }
+          }
+      }
+  }
+\cs_new:Npn \__keys_remove_equals:n #1
+  { \__keys_remove_equals:w #1 = \s__keys_stop }
+\cs_new:Npn \__keys_remove_equals:w #1 = #2 \s__keys_stop { \exp_not:n {#1} }
+\NewDocumentCommand \DeclareKeys { o +m }
+  {
+    \IfNoValueTF {#1}
+      { \exp_args:NV \keys_define:nn \@currname }
+      { \keys_define:nn {#1} }
+        {#2}
+  }
+\NewDocumentCommand \ProcessKeyOptions { o }
+  {
+    \IfNoValueTF {#1}
+      { \__keys_options:NV \c_true_bool \@currname }
+      { \__keys_options:Nn \c_true_bool {#1} }
+  }
+\NewDocumentCommand \ProcessKeyPackageOptions { o }
+  {
+    \IfNoValueTF {#1}
+      { \__keys_options:NV \c_false_bool \@currname }
+      { \__keys_options:Nn \c_false_bool {#1} }
+  }
+\@onlypreamble \ProcessKeyOptions
+\@onlypreamble \ProcessKeyPackageOptions
+\cs_new_protected:Npn \__keys_options_loaded:n #1
+  {
+    \prop_get:NnNT \l_keys_usage_load_prop {#1} \l__keys_tmpa_tl
+      {
+        \clist_map_inline:Nn \l__keys_tmpa_tl
+          {
+            \keys_define:nn {#1}
+              {
+                ##1 .code:n =
+                  \__keys_options_loaded:nn {#1} {##1}
+              }
+          }
+      }
+  }
+\cs_new_protected:Npn \__keys_options_loaded:nn #1#2
+  {
+    \bool_if:NTF \l__keys_options_loading_bool
+      {
+        \msg_warning:nnxx { keys } { load-option-ignored }
+          { \use:c { opt at fam@\@currname.\@currext } } {#2}
+      }
+      { \msg_error:nnnn { keys } { load-only } {#1} {#2} }
+  }
+\msg_new:nnn { keys } { load-option-ignored }
+  { Package~"#1"~has~already~been~loaded:~ignoring~load-time~option~"#2". }
+\msg_new:nnnn { keys } { load-only }
+  { Key~"#2"~may~only~be~used~in~the~during~loading~of~package~"#1". }
+  {
+    LaTeX~was~asked~to~set~a~key~called~"#2",~but~this~is~only~allowed~
+    in~the~optional~argument~when~loading~package~"#1".
+  }
+\tl_gput_left:Nn \@kernel at after@begindocument
+  {
+    \prop_map_inline:Nn \l_keys_usage_preamble_prop
+      {
+        \clist_map_inline:nn {#2}
+          {
+            \keys_define:nn {#1}
+              {
+                ##1 .code:n =
+                  \msg_error:nnn { keys } { preamble-only } {##1}
+              }
+          }
+      }
+  }
+\msg_new:nnnn { keys } { preamble-only }
+  { Key~"#1"~may~only~be~used~in~the~preamble. }
+  {
+    LaTeX~was~asked~to~set~a~key~called~"#1",~but~this~is~only~allowed~
+    before~\begin{document}.~You~will~need~to~set~the~key~earlier.
+  }
+\NewDocumentCommand \SetKeys { o +m }
+  {
+    \IfNoValueTF {#1}
+      { \keys_set:Vn \@currname }
+      { \keys_set:nn {#1} }
+        {#2}
+  }
+\ExplSyntaxOff
 %%% From File: ltfilehook.dtx
 \providecommand\ltfilehookversion{v1.0l}
 \providecommand\ltfilehookdate{2021/08/27}
@@ -14557,12 +14795,13 @@
 \declare at file@substitution{atveryend.sty}{atveryend-ltx.sty}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%
-%% Copyright (C) 2020-2021
+%% Copyright (C) 2020-2022
 %%               Frank Mittelbach, LaTeX Team
 %%
 %%% From File: ltshipout.dtx
-\providecommand\ltshipoutversion{v1.0j}
-\providecommand\ltshipoutdate{2021/06/09}
+\providecommand\ltshipoutversion{v1.0l}
+\providecommand\ltshipoutdate{2022/01/06}
+ %    \cs{AtBeginDvi} is the existing \LaTeXe{} interface to fill the
 \ExplSyntaxOn
 \bool_new:N \g__shipout_debug_bool
 \cs_new_eq:NN \__shipout_debug:n  \use_none:n
@@ -14586,21 +14825,21 @@
 \box_new:N  \l__shipout_raw_box
 \sys_if_engine_luatex:TF
   {
-    \newluafunction \__shipout_finalize_box:
+    \newprotectedluacmd \__shipout_finalize_box:
     \exp_args:Nx \everyjob {
       \exp_not:V \everyjob
       \exp_not:N \lua_now:n {
         luatexbase.create_callback('pre_shipout_filter', 'list')
         local~call, getbox, setbox = luatexbase.call_callback, tex.getbox, tex.setbox~
-        lua.get_functions_table()[\the \__shipout_finalize_box:] = function()
-          local~result = call('pre_shipout_filter', getbox(\the \l_shipout_box))
-          if~not (result == true) then~
+        lua.get_functions_table()[\the \allocationnumber] = function()
+          local~head = getbox(\the \l_shipout_box)
+          local~result = call('pre_shipout_filter', head)
+          if~not (result == head) then~
             setbox(\the \l_shipout_box, result~or~nil)
           end~
         end
       }
     }
-    \protected \luadef \__shipout_finalize_box: \the \__shipout_finalize_box:
   } {
     \cs_set_eq:NN \__shipout_finalize_box: \scan_stop:
   }
@@ -14973,7 +15212,7 @@
               \__shipout_add_foreground_picture:n
 \ExplSyntaxOff
 \ExplSyntaxOn
-\cs_new_protected:Npn \AtEndDvi {\AddToHook{shipout/lastpage}}
+\cs_new_protected:Npn \AtEndDvi #1 {\AddToHook{shipout/lastpage}{#1}}
 \ExplSyntaxOff
 \disable at package@load{atenddvi}
    {\PackageWarning{atenddvi}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/latex209.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/latex209.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/latex209.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -15,7 +15,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -20,6 +20,7 @@
 %% lterror.dtx  (with options: `latexrelease')
 %% ltpar.dtx  (with options: `latexrelease')
 %% ltpara.dtx  (with options: `latexrelease')
+%% ltmeta.dtx  (with options: `latexrelease')
 %% ltspace.dtx  (with options: `latexrelease')
 %% ltlogos.dtx  (with options: `latexrelease')
 %% ltfiles.dtx  (with options: `latexrelease')
@@ -63,7 +64,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -1110,6 +1111,14 @@
   \e at alloc\luafunction\e at alloc@chardef
     \e at alloc@luafunction at count\m at ne\e at alloc@top
 }
+\def\newluacmd{%
+  \e at alloc\luafunction\luadef
+    \e at alloc@luafunction at count\m at ne\e at alloc@top
+}
+\def\newprotectedluacmd{%
+  \e at alloc\luafunction{\protected\luadef}
+    \e at alloc@luafunction at count\m at ne\e at alloc@top
+}
 \ifx\e at alloc@whatsit at count\@undefined
   \countdef\e at alloc@whatsit at count=261
   \e at alloc@whatsit at count=\z@
@@ -1311,6 +1320,44 @@
 \let \@expl at cs@replacement at spec@@N \@undefined
 \let \@expl at str@map at function@@NN \@undefined
 \EndIncludeInRelease
+\IncludeInRelease{2022/06/01}%
+                 {\fpeval}{fp and int calculations}%
+\ExplSyntaxOn
+\cs_new_eq:NN \fpeval \fp_eval:n
+\cs_new_eq:NN \inteval \int_eval:n
+\cs_new_eq:NN \dimeval  \dim_eval:n
+\cs_new_eq:NN \skipeval \skip_eval:n
+\ExplSyntaxOff
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+                 {\fpeval}{fp and int calculations}%
+
+
+\let\fpeval\@undefined
+\let\inteval\@undefined
+\let\dimeval\@undefined
+\let\skipeval\@undefined
+\EndIncludeInRelease
+\IncludeInRelease{2022/06/01}%
+                 {\ExpandArgs}{Some pre-expansion commands}%
+\ExplSyntaxOn
+\cs_new_eq:NN \UseName \use:c
+\cs_new:Npn \ExpandArgs #1
+  {
+    \cs_if_exist_use:cF { exp_args:N #1 }
+      { \msg_expandable_error:nnn { kernel } { unknown-arg-expansion } {#1} }
+  }
+\msg_new:nnn { kernel } { unknown-arg-expansion }
+  { Unknown~arg~expansion~"#1" }
+\ExplSyntaxOff
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+                 {\ExpandArgs}{Some pre-expansion commands}%
+
+
+\let\UseName\@undefined
+\let\ExpandArgs\@undefined
+\EndIncludeInRelease
 %%% From File: ltdefns.dtx
 \IncludeInRelease{2020/10/01}%
                  {\typeout}{Allow "par" in \typeout}%
@@ -1791,8 +1838,8 @@
 
 \EndIncludeInRelease
 %%% From File: ltcmd.dtx
-\def\ltcmdversion{v1.0h}
-\def\ltcmddate{2021-08-30}
+\def\ltcmdversion{v1.0j}
+\def\ltcmddate{2021-12-31}
 \edef\@latexrelease at catcode@null{\the\catcode`\^^@ }
 \catcode`\^^@=12
 \ExplSyntaxOn
@@ -2030,8 +2077,6 @@
     \tl_set:Nn \l__cmd_defaults_tl {#5}
     \tl_set:Nn \l__cmd_process_all_tl {#6}
     #4
-    \bool_if:NT \l__cmd_environment_bool
-      { \exp_args:No \__cmd_set_environment_end:n \l__cmd_environment_str }
     \__cmd_run_code:
   }
 \cs_generate_variant:Nn \__cmd_start_aux:NNnnnn { cc }
@@ -2039,6 +2084,8 @@
   {
     \tl_if_empty:NF \l__cmd_defaults_tl { \__cmd_defaults: }
     \tl_if_empty:NF \l__cmd_process_all_tl { \__cmd_args_process: }
+    \bool_if:NT \l__cmd_environment_bool
+      { \exp_args:No \__cmd_set_environment_end:n \l__cmd_environment_str }
     \group_align_safe_end:
     \conditionally at traceon
     \exp_after:wN \l__cmd_fn_code_tl \l__cmd_args_tl
@@ -2978,21 +3025,21 @@
 \cs_new_protected:Npn \__cmd_show_command_aux:nNNn #1 #2 #3 #4
   {
     \__cmd_split_signature:n {#4}
-    \iow_term:x
+    \tl_show:x
       {
-        > ~ \token_to_str:N #2 = #1: \iow_newline:
+        \token_to_str:N #2 = #1: \iow_newline:
         \tl_use:N \l__cmd_tmpa_tl
-        -> \cs_replacement_spec:N #3 .
+        -> \cs_replacement_spec:N #3
       }
   }
 \cs_new_protected:Npn \__cmd_show_environment:N #1
   {
     \exp_after:wN \__cmd_show_environment:Nnnw #1 \q__cmd
-    \iow_term:x
+    \tl_show:x
       {
-        > ~ \token_to_str:N \end { \cs_to_str:N #1 } : \iow_newline:
+        \token_to_str:N \end { \cs_to_str:N #1 } : \iow_newline:
         -> \exp_args:Nc \cs_replacement_spec:N
-          { environment~ \cs_to_str:N #1 ~end~aux~ } .
+          { environment~ \cs_to_str:N #1 ~end~aux~ }
       }
   }
 \cs_new_protected:Npn \__cmd_show_environment:Nnnw #1 #2 #3 #4 \q__cmd
@@ -4442,7 +4489,7 @@
 
 %%% From File: lthooks.dtx
 \def\lthooksversion{v1.0s}
-\def\lthooksdate{2021/09/28}
+\def\lthooksdate{2022/01/06}
 \ExplSyntaxOn
 \NewModuleRelease{2020/10/01}{lthooks}
                  {The~hook~management~system}
@@ -6422,6 +6469,7 @@
 
 \EndModuleRelease
 \ExplSyntaxOff
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%% From File: ltalloc.dtx
 %%% From File: ltcntrl.dtx
 %%% From File: lterror.dtx
@@ -6614,6 +6662,32 @@
 \EndModuleRelease
 \ExplSyntaxOff
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% File: ltmeta.dtx (C) Copyright 2021
+%%% From File: ltmeta.dtx
+\def\ltmetaversion{v1.0a}
+\def\ltmetadate{2021/12/07}
+\NewModuleRelease{2021/06/01}{ltmeta}
+                 {Document Metadata handling}
+\protected\def\DocumentMetadata{%
+  \InputIfFileExists{documentmetadata-support.ltx}%
+     {}%
+     {%
+       \@latex at error{No support files for
+                    \noexpand\DocumentMetadata found}
+         {Is the 'LaTeX-lab' bundle installed?%
+         \MessageBreak
+         Without it, the declaration is ignored.}%
+      \let\DocumentMetadata\@gobble
+     }%
+  \DocumentMetadata
+}
+\IncludeInRelease{0000/00/00}{ltmeta}%
+                 {Undo Document Metadata handling}
+
+\let\DocumentMetadata\@undefined
+
+\EndModuleRelease
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%% From File: ltspace.dtx
 \IncludeInRelease{2019/10/01}%
                  {\pagebreak}{Make commands robust}%
@@ -7612,6 +7686,7 @@
 \expandafter
   \let\csname\string\T1\string\c-g\endcsname\@undefined
 \EndIncludeInRelease
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%% From File: ltcounts.dtx
 
 \IncludeInRelease{2015/01/01}{\@stpelt}
@@ -8091,6 +8166,7 @@
     \hbadness\z@\showboxdepth\z@\ #1%
     \color at endgroup}}
 \EndIncludeInRelease
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%% From File: ltfssaxes.dtx
 %% Copyright (C) 1999-2020 Frank Mittelbach
 \IncludeInRelease{2020/02/02}%
@@ -13313,22 +13389,16 @@
   \xdef\@currpath{\ifx\reserved at b\@empty\else\reserved at b/\fi}%
   \global\let\@currext#4%
   \@ifl at aded\@currext\@currname
-    {\@if at ptions\@currext{\@currname}{#2}{}%
-      {\@latex at error
-        {Option clash for \@cls at pkg\space \@currname}%
-        {The package \@currname\space has already been loaded
-         with options:\MessageBreak
-         \space\space[\@ptionlist{\@currname.\@currext}]\MessageBreak
-         There has now been an attempt to load it
-          with options\MessageBreak
-         \space\space[#2]\MessageBreak
-         Adding the global options:\MessageBreak
-         \space\space
-              \@ptionlist{\@currname.\@currext},#2\MessageBreak
-         to your \noexpand\documentclass declaration may fix this.%
-         \MessageBreak
-         Try typing \space <return> \space to proceed.}}%
-     \@firstofone}%
+    {%
+      \@ifundefined{opt at fam@\@currname.\@currext}
+        {\@onefilewithoptions at clashchk{#2}}
+        {%
+          \@namedef{opt@\@currname.\@currext}{#2}%
+          \expandafter\expandafter\expandafter\ProcessKeyPackageOptions
+            \expandafter\expandafter\expandafter
+              [\csname opt at fam@\@currname.\@currext\endcsname]%
+        }%
+    }%
     {\makeatletter
      \@reset at ptions
      \IfFileExists{\@currpath\@currname.\@currext}{}%
@@ -13368,6 +13438,23 @@
      \ifx\@currext\@clsextension\let\LoadClass\@twoloadclasserror\fi}%
     \@popfilename
     \@reset at ptions}
+\def\@onefilewithoptions at clashchk#1{%
+  \@if at ptions\@currext{\@currname}{#1}{}%
+      {\@latex at error
+        {Option clash for \@cls at pkg\space \@currname}%
+        {The package \@currname\space has already been loaded
+         with options:\MessageBreak
+         \space\space[\@ptionlist{\@currname.\@currext}]\MessageBreak
+         There has now been an attempt to load it
+          with options\MessageBreak
+         \space\space[#1]\MessageBreak
+         Adding the global options:\MessageBreak
+         \space\space
+              \@ptionlist{\@currname.\@currext},#1\MessageBreak
+         to your \noexpand\documentclass declaration may fix this.%
+         \MessageBreak
+         Try typing \space <return> \space to proceed.}}%
+     \@firstofone}
 \let\@currpkg at reqd\@empty
 \@onlypreamble\@onefilewithoptions
 \let\@unprocessedoptions\@undefined
@@ -14297,12 +14384,13 @@
 \EndIncludeInRelease
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%
-%% Copyright (C) 2020-2021
+%% Copyright (C) 2020-2022
 %%               Frank Mittelbach, LaTeX Team
 %%
 %%% From File: ltshipout.dtx
-\providecommand\ltshipoutversion{v1.0j}
-\providecommand\ltshipoutdate{2021/06/09}
+\providecommand\ltshipoutversion{v1.0l}
+\providecommand\ltshipoutdate{2022/01/06}
+ %    \cs{AtBeginDvi} is the existing \LaTeXe{} interface to fill the
 \IncludeInRelease{2020/10/01}%
                  {\shipout}{Hook management (shipout)}%
 \ExplSyntaxOn
@@ -14328,21 +14416,21 @@
 \box_new:N  \l__shipout_raw_box
 \sys_if_engine_luatex:TF
   {
-    \newluafunction \__shipout_finalize_box:
+    \newprotectedluacmd \__shipout_finalize_box:
     \exp_args:Nx \everyjob {
       \exp_not:V \everyjob
       \exp_not:N \lua_now:n {
         luatexbase.create_callback('pre_shipout_filter', 'list')
         local~call, getbox, setbox = luatexbase.call_callback, tex.getbox, tex.setbox~
-        lua.get_functions_table()[\the \__shipout_finalize_box:] = function()
-          local~result = call('pre_shipout_filter', getbox(\the \l_shipout_box))
-          if~not (result == true) then~
+        lua.get_functions_table()[\the \allocationnumber] = function()
+          local~head = getbox(\the \l_shipout_box)
+          local~result = call('pre_shipout_filter', head)
+          if~not (result == head) then~
             setbox(\the \l_shipout_box, result~or~nil)
           end~
         end
       }
     }
-    \protected \luadef \__shipout_finalize_box: \the \__shipout_finalize_box:
   } {
     \cs_set_eq:NN \__shipout_finalize_box: \scan_stop:
   }
@@ -14754,7 +14842,7 @@
 \IncludeInRelease{2020/10/01}%
                  {\AtEndDvi}{atenddvi emulation}%
 \ExplSyntaxOn
-\cs_new_protected:Npn \AtEndDvi {\AddToHook{shipout/lastpage}}
+\cs_new_protected:Npn \AtEndDvi #1 {\AddToHook{shipout/lastpage}{#1}}
 \ExplSyntaxOff
 \disable at package@load{atenddvi}
    {\PackageWarning{atenddvi}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/latexsym.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/latexsym.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/latexsym.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/latin1.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -42,7 +42,6 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 
-
  \ProvidesFile{latin1.def}
    [2021/02/14 v1.3d Input encoding file]
 \ProvideTextCommandDefault{\textdegree}{\ensuremath{{^\circ}}}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/latin10.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/latin10.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/latin10.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -42,7 +42,6 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 
-
  \ProvidesFile{latin10.def}
    [2021/02/14 v1.3d Input encoding file]
 \ProvideTextCommandDefault{\textdegree}{\ensuremath{{^\circ}}}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/latin2.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/latin2.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/latin2.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -42,7 +42,6 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 
-
  \ProvidesFile{latin2.def}
    [2021/02/14 v1.3d Input encoding file]
 \ProvideTextCommandDefault{\textdegree}{\ensuremath{{^\circ}}}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/latin3.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/latin3.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/latin3.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -42,7 +42,6 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 
-
  \ProvidesFile{latin3.def}
    [2021/02/14 v1.3d Input encoding file]
 \ProvideTextCommandDefault{\textdegree}{\ensuremath{{^\circ}}}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/latin4.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/latin4.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/latin4.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -42,7 +42,6 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 
-
  \ProvidesFile{latin4.def}
    [2021/02/14 v1.3d Input encoding file]
 \ProvideTextCommandDefault{\textdegree}{\ensuremath{{^\circ}}}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/latin5.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/latin5.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/latin5.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -42,7 +42,6 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 
-
  \ProvidesFile{latin5.def}
    [2021/02/14 v1.3d Input encoding file]
 \ProvideTextCommandDefault{\textdegree}{\ensuremath{{^\circ}}}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/latin9.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/latin9.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/latin9.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -42,7 +42,6 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 
-
  \ProvidesFile{latin9.def}
    [2021/02/14 v1.3d Input encoding file]
 \ProvideTextCommandDefault{\textdegree}{\ensuremath{{^\circ}}}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/lcyenc.dfu
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/lcyenc.dfu	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/lcyenc.dfu	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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.
  \ProvidesFile{lcyenc.dfu}
-   [2021/06/21 v1.2n UTF-8 support]
+   [2021/12/13 v1.2o UTF-8 support]
 \DeclareUnicodeCharacter{00A4}{\textcurrency}
 \DeclareUnicodeCharacter{00AB}{\guillemotleft}
 \DeclareUnicodeCharacter{00BB}{\guillemotright}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/leqno.clo
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/leqno.clo	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/leqno.clo	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/leqno.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/letter.cls	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -43,7 +43,7 @@
 %% extension .ins) which are part of the distribution.
 \NeedsTeXFormat{LaTeX2e}[1996/06/01]
 \ProvidesClass{letter}
-              [2021/03/05 v1.3c
+              [2021/12/07 v1.3c
                Standard LaTeX document class]
 \newcommand\@ptsize{}
 \DeclareOption{a4paper}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/letter.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/letter.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/letter.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ltluatex.lua	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 -- (but please observe conditions on bug reports sent to that address!)
 -- 
 -- 
--- Copyright (C) 2015-2021
+-- Copyright (C) 2015-2022
 -- The LaTeX Project and any individual authors listed elsewhere
 -- in this file.
 -- 
@@ -288,8 +288,8 @@
   post_linebreak_filter  = reverselist,
   hpack_filter           = list,
   vpack_filter           = list,
-  hpack_quality          = list,
-  vpack_quality          = list,
+  hpack_quality          = exclusive,
+  vpack_quality          = exclusive,
   pre_output_filter      = list,
   process_rule           = exclusive,
   hyphenate              = simple,
@@ -352,7 +352,6 @@
 local function list_handler(name)
   return function(head, ...)
     local ret
-    local alltrue = true
     for _,i in ipairs(callbacklist[name]) do
       ret = i.func(head, ...)
       if ret == false then
@@ -363,20 +362,18 @@
         return false
       end
       if ret ~= true then
-        alltrue = false
         head = ret
       end
     end
-    return alltrue and true or head
+    return head
   end
 end
-local function list_handler_default()
-  return true
+local function list_handler_default(head)
+return head
 end
 local function reverselist_handler(name)
   return function(head, ...)
     local ret
-    local alltrue = true
     local callbacks = callbacklist[name]
     for i = #callbacks, 1, -1 do
       local cb = callbacks[i]
@@ -389,11 +386,10 @@
         return false
       end
       if ret ~= true then
-        alltrue = false
         head = ret
       end
     end
-    return alltrue and true or head
+    return head
   end
 end
 local function simple_handler(name)
@@ -609,14 +605,10 @@
   if current == false then
     flush_list(head)
     return nil
-  elseif current == true then
-    current = head
   end
   current = call_callback("mlist_to_hlist", current, display_type, need_penalties)
   local post = call_callback("post_mlist_to_hlist_filter", current, display_type, need_penalties)
-  if post == true then
-    return current
-  elseif post == false then
+  if post == false then
     flush_list(current)
     return nil
   end

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ltluatex.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ltluatex.tex	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ltluatex.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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}%
-[2021/10/15 v1.1v
+[2021/12/27 v1.1x
   LuaTeX support for plain TeX (core)
 ]
 \edef\etatcatcode{\the\catcode`\@}
@@ -225,6 +225,14 @@
   \e at alloc\luafunction\e at alloc@chardef
     \e at alloc@luafunction at count\m at ne\e at alloc@top
 }
+\def\newluacmd{%
+  \e at alloc\luafunction\luadef
+    \e at alloc@luafunction at count\m at ne\e at alloc@top
+}
+\def\newprotectedluacmd{%
+  \e at alloc\luafunction{\protected\luadef}
+    \e at alloc@luafunction at count\m at ne\e at alloc@top
+}
 \ifx\e at alloc@whatsit at count\@undefined
   \countdef\e at alloc@whatsit at count=261
   \e at alloc@whatsit at count=\z@

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ltxcheck.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ltxcheck.tex	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ltxcheck.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % The LaTeX Project and any individual authors listed elsewhere
 % in this file.
 %

Added: trunk/Master/texmf-dist/tex/latex-dev/base/ltxdoc.cfg
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ltxdoc.cfg	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ltxdoc.cfg	2022-01-13 21:03:32 UTC (rev 61598)
@@ -0,0 +1,71 @@
+%%
+%% This is file `ltxdoc.cfg',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% ltxdoc.dtx  (with options: `cfg')
+%% 
+%% This is a generated file.
+%% 
+%% The source is maintained by the LaTeX Project team and bug
+%% reports for it can be opened at https://latex-project.org/bugs.html
+%% (but please observe conditions on bug reports sent to that address!)
+%% 
+%% 
+%% Copyright (C) 1993-2022
+%% The LaTeX Project and any individual authors listed elsewhere
+%% in this file.
+%% 
+%% This file was generated from file(s) of the LaTeX base system.
+%% --------------------------------------------------------------
+%% 
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%    https://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008 or later.
+%% 
+%% This file has the LPPL maintenance status "maintained".
+%% 
+%% This file may only be distributed together with a copy of the LaTeX
+%% base system. You may however distribute the LaTeX base system without
+%% such generated files.
+%% 
+%% The list of all files belonging to the LaTeX base distribution is
+%% given in the file `manifest.txt'. See also `legal.txt' for additional
+%% information.
+%% 
+%% The list of derived (unpacked) files belonging to the distribution
+%% and covered by LPPL is defined by the unpacking scripts (with
+%% extension .ins) which are part of the distribution.
+
+\ProvidesFile{ltxdoc.cfg}%
+  [2021/12/07 v2.0c ltxdoc.cls configuration (LaTeX Project)]
+\PassOptionsToClass{a4paper}{article}
+
+
+\AddToHook{package/hyperref/after}{%
+%%  \RequirePackage{hypdoc}%       % this is now triggered by doc
+  \RequirePackage{pdftexcmds}\relax
+  \ifnum\pdf at strcmp{\jobname}{inputenc}=0 %
+    \hypersetup{pdfencoding=auto}%
+    \pdfstringdefDisableCommands{%
+      \def\meta#1{% inputenc.dtx
+        \9060\010#1\9060\011%
+      }%
+    }%
+  \else
+  \fi
+  \pdfstringdefDisableCommands{%
+    \let\env\relax % longtable.dtx
+    \let\mytt\relax % tabularx.dtx
+  }%
+}
+
+
+\endinput
+%%
+%% End of file `ltxdoc.cfg'.


Property changes on: trunk/Master/texmf-dist/tex/latex-dev/base/ltxdoc.cfg
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ltxdoc.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ltxdoc.cls	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ltxdoc.cls	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -43,17 +43,25 @@
 %% extension .ins) which are part of the distribution.
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesClass{ltxdoc}
-         [2020/12/05 v2.1b Standard LaTeX documentation class]
+         [2021/12/07 v2.1d Standard LaTeX documentation class]
 \DeclareOption{a5paper}{\@latexerr{Option not supported}%
    {}}
+\newif\ifltxdoc at load@cfg@ \ltxdoc at load@cfg at true
+\DeclareOption{nocfg}{\ltxdoc at load@cfg at false}
 \DeclareOption*{%
     \PassOptionsToClass  {\CurrentOption}{article}}
+\ProcessOptions
+\ifltxdoc at load@cfg@
 \InputIfFileExists{ltxdoc.cfg}
            {\typeout{*************************************^^J%
                      * Local config file ltxdoc.cfg used^^J%
                      *************************************}}
            {}
-\ProcessOptions
+\else
+   \typeout{*************************************^^J%
+            * Local config file ignored^^J%
+            *************************************}
+\fi
 \LoadClass{article}
 \RequirePackage{doc}
 \AtBeginDocument{\MakeShortVerb{\|}}
@@ -71,7 +79,6 @@
 \setcounter{StandardModuleDepth}{1}
 \def\cmd#1{\cs{\expandafter\cmd at to@cs\string#1}}
 \def\cmd at to@cs#1#2{\char\number`#2\relax}
-\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}}
 \providecommand\marg[1]{%
   {\ttfamily\char`\{}\meta{#1}{\ttfamily\char`\}}}
 \providecommand\oarg[1]{%

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ly1enc.dfu
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ly1enc.dfu	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ly1enc.dfu	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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.
  \ProvidesFile{ly1enc.dfu}
-   [2021/06/21 v1.2n UTF-8 support]
+   [2021/12/13 v1.2o UTF-8 support]
 \DeclareUnicodeCharacter{00A0}{\nobreakspace}
 \DeclareUnicodeCharacter{00A1}{\textexclamdown}
 \DeclareUnicodeCharacter{00A2}{\textcent}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/macce.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/macce.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/macce.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -42,7 +42,6 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 
-
   \ProvidesFile{macce.def}
    [2021/02/14 v1.3d Input encoding file]
 \ProvideTextCommandDefault{\textdegree}{\ensuremath{{^\circ}}}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/makeidx.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/makeidx.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/makeidx.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/newlfont.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/next.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -42,7 +42,6 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 
-
   \ProvidesFile{next.def}
    [2021/02/14 v1.3d Input encoding file]
 \ProvideTextCommandDefault{\textdegree}{\ensuremath{{^\circ}}}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/nfssfont.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/nfssfont.tex	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/nfssfont.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/oldlfont.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/omlcmm.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/omlcmr.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/omlenc.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -49,6 +49,7 @@
 \DeclareTextSymbol{\textless}{OML}{`\<}
 \DeclareTextSymbol{\textgreater}{OML}{`\>}
 \DeclareTextAccent{\t}{OML}{127}  % "7F
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \endinput
 %%
 %% End of file `omlenc.def'.

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/omllcmm.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/omllcmm.fd	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/omllcmm.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/omscmr.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/omscmsy.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/omsenc.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -65,6 +65,7 @@
       \char 13 % "0D
    }%
  \egroup}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \endinput
 %%
 %% End of file `omsenc.def'.

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/omsenc.dfu
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/omsenc.dfu	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/omsenc.dfu	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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.
  \ProvidesFile{omsenc.dfu}
-   [2021/06/21 v1.2n UTF-8 support]
+   [2021/12/13 v1.2o UTF-8 support]
 \DeclareUnicodeCharacter{00A7}{\textsection}
 \DeclareUnicodeCharacter{00B6}{\textparagraph}
 \DeclareUnicodeCharacter{00B7}{\textperiodcentered}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/omslcmsy.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/omslcmsy.fd	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/omslcmsy.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/omxcmex.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/omxlcmex.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/openbib.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmdh.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmfib.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmfr.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmr.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmss.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmtt.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ot1cmvtt.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ot1enc.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -120,6 +120,7 @@
 \ifx\textcommaabove\@undefined\else
 \DeclareTextCompositeCommand{\c}{OT1}{g}{\textcommaabove{g}}
 \fi
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \endinput
 %%
 %% End of file `ot1enc.def'.

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ot1enc.dfu
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ot1enc.dfu	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ot1enc.dfu	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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.
  \ProvidesFile{ot1enc.dfu}
-   [2021/06/21 v1.2n UTF-8 support]
+   [2021/12/13 v1.2o UTF-8 support]
 \DeclareUnicodeCharacter{00A0}{\nobreakspace}
 \DeclareUnicodeCharacter{00A1}{\textexclamdown}
 \DeclareUnicodeCharacter{00A3}{\textsterling}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ot1lcmss.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ot1lcmss.fd	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ot1lcmss.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ot1lcmtt.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ot2enc.dfu	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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.
  \ProvidesFile{ot2enc.dfu}
-   [2021/06/21 v1.2n UTF-8 support]
+   [2021/12/13 v1.2o UTF-8 support]
 \DeclareUnicodeCharacter{00AB}{\guillemotleft}
 \DeclareUnicodeCharacter{00BB}{\guillemotright}
 \DeclareUnicodeCharacter{0131}{\i}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ot4enc.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ot4enc.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ot4enc.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -126,6 +126,7 @@
 \DeclareTextComposite{\.}{OT4}{z}{187}
 \DeclareTextComposite{\'}{OT4}{O}{211}
 \DeclareTextComposite{\'}{OT4}{o}{243}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \endinput
 %%
 %% End of file `ot4enc.def'.

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/preload.cfg
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/preload.cfg	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/preload.cfg	2022-01-13 21:03:32 UTC (rev 61598)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/preload.ltx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/proc.cls	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -43,7 +43,7 @@
 %% extension .ins) which are part of the distribution.
 \NeedsTeXFormat{LaTeX2e}[1995/12/01]
 \ProvidesClass{proc}
-              [2020/11/23 v1.3l
+              [2021/12/09 v1.3m
                Standard LaTeX document class]
 \DeclareOption{a5paper}
     {\ClassError{proc}{Option `a5paper' not supported}{}}
@@ -88,9 +88,12 @@
 \setlength\columnsep{.375in}
 \let\@oddhead\@empty
 \let\@evenhead\@empty
-\def\@oddfoot{\normalfont\rightmark \hfil
-              \pagename{} \thepage}
-\def\@evenfoot{\@oddfoot}
+\def\@oddfoot{\rightmark \hfil \pagename{} \thepage}
+\if at twoside
+  \def\@evenfoot{\pagename{} \thepage \hfil \leftmark}
+\else
+  \def\@evenfoot{\@oddfoot}
+\fi
 \def\maketitle{\par
  \begingroup
    \renewcommand\thefootnote{\fnsymbol{footnote}}%

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/proc.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/proc.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/proc.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -43,7 +43,7 @@
 %% extension .ins) which are part of the distribution.
 \NeedsTeXFormat{LaTeX2e}[1995/12/01]
 \ProvidesFile{proc.sty}
-              [2020/11/23 v1.3l
+              [2021/12/09 v1.3m
                LaTeX 2.09 compatibility style option `proc']
 \if at compatibility
 \else
@@ -84,9 +84,12 @@
 \setlength\columnsep{.375in}
 \let\@oddhead\@empty
 \let\@evenhead\@empty
-\def\@oddfoot{\normalfont\rightmark \hfil
-              \pagename{} \thepage}
-\def\@evenfoot{\@oddfoot}
+\def\@oddfoot{\rightmark \hfil \pagename{} \thepage}
+\if at twoside
+  \def\@evenfoot{\pagename{} \thepage \hfil \leftmark}
+\else
+  \def\@evenfoot{\@oddfoot}
+\fi
 \def\maketitle{\par
  \begingroup
    \renewcommand\thefootnote{\fnsymbol{footnote}}%

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/report.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/report.cls	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/report.cls	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/report.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/sfonts.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/shortvrb.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -43,11 +43,16 @@
 %% extension .ins) which are part of the distribution.
 \NeedsTeXFormat{LaTeX2e}[1994/12/01]
 \ProvidesPackage{shortvrb}
-  [2021/10/04 v2.1n
-   Standard LaTeX documentation package (FMi)]
+  [2022/06/01 v3.0g
+   Standard LaTeX documentation package V3 (FMi)]
 %%
 %% Package `doc' to use with LaTeX 2e
-%% Copyright (C) 1989-2020 Frank Mittelbach, all rights reserved.
+%% Copyright (C) 1989-2022 Frank Mittelbach, all rights reserved.
+
+
+
+
+
 \def\MakeShortVerb{%
   \@ifstar
     {\def\@shortvrbdef{\verb*}\@MakeShortVerb}%
@@ -67,13 +72,20 @@
     \endgroup
     \global\catcode`#1\active
   \else
-    \@shortvrbinfo\@empty{#1 already}{\@empty\verb(*)}%
+    \@shortvrbinfo\@empty{#1 already}%
+                         {\@empty\verb% % to fool emacs highlighting
+                          (*)}%
   \fi}
 \def\DeleteShortVerb#1{%
   \expandafter\ifx\csname cc\string#1\endcsname\relax
-    \@shortvrbinfo\@empty{#1 not}{\@empty\verb(*)}%
+    \@shortvrbinfo\@empty{#1 not}%
+                         {\@empty\verb% % to fool emacs highlighting
+                          (*)}%
   \else
-    \@shortvrbinfo{Deleted }{#1 as}{\@empty\verb(*)}%
+    \@shortvrbinfo{Deleted }{#1 as}%
+                            {\@empty\verb% % to fool emacs
+                                           % highlighting
+                            (*)}%
     \rem at special{#1}%
     \global\catcode`#1\csname cc\string#1\endcsname
     \global \expandafter\let \csname cc\string#1\endcsname \relax
@@ -103,6 +115,7 @@
       \ifnum`#1=`##1 \else \noexpand\@makeother\noexpand##1\fi}%
     \xdef\@sanitize{\@sanitize}%
   \endgroup}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \endinput
 %%
 %% End of file `shortvrb.sty'.

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/showidx.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/showidx.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/showidx.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/size10.clo	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/size11.clo	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/size12.clo	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/slides.cls	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/slides.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/slides.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/source2edoc.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/source2edoc.cls	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/source2edoc.cls	2022-01-13 21:03:32 UTC (rev 61598)
@@ -5,6 +5,8 @@
               [2021/01/14 v0.2b Quick hack to typeset source2.tex
                (not usable for anything else and buggy -- will vanish again)!]
 
+
+
 \LoadClass{l3doc}
 
 \RemoveFromHook{begindocument}[l3doc]          % drop the standard setting  making " a shortverb
@@ -18,7 +20,7 @@
 \ExplSyntaxOn
 
 % in 2e we have a lot of functions that have no ``user-level'' documentation so we disable
-% a bogus backref in that case. Over time the sources should be clean up to have such documentation.
+% a bogus backref in that case. Over time the sources should be cleaned up to have such documentation.
 
 \cs_set_protected:Npn \__codedoc_print_documented:
   {

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/structuredlog.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/structuredlog.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/structuredlog.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/syntonly.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t1cmdh.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t1cmfib.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t1cmfr.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t1cmr.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t1cmss.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t1cmtt.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t1cmvtt.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t1enc.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -291,6 +291,7 @@
 \DeclareTextCompositeCommand{\c}{T1}{R}{\textcommabelow{R}}
 \DeclareTextCompositeCommand{\c}{T1}{r}{\textcommabelow{r}}
 \fi
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \endinput
 %%
 %% End of file `t1enc.def'.

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/t1enc.dfu
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/t1enc.dfu	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t1enc.dfu	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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.
   \ProvidesFile{t1enc.dfu}
-   [2021/06/21 v1.2n UTF-8 support]
+   [2021/12/13 v1.2o UTF-8 support]
 \DeclareUnicodeCharacter{00A0}{\nobreakspace}
 \DeclareUnicodeCharacter{00A1}{\textexclamdown}
 \DeclareUnicodeCharacter{00A3}{\textsterling}
@@ -231,6 +231,15 @@
 \DeclareUnicodeCharacter{017C}{\.z}
 \DeclareUnicodeCharacter{017D}{\v Z}
 \DeclareUnicodeCharacter{017E}{\v z}
+\DeclareUnicodeCharacter{01C4}{D\v Z}
+\DeclareUnicodeCharacter{01C5}{D\v z}
+\DeclareUnicodeCharacter{01C6}{d\v z}
+\DeclareUnicodeCharacter{01C7}{LJ}
+\DeclareUnicodeCharacter{01C8}{Lj}
+\DeclareUnicodeCharacter{01C9}{lj}
+\DeclareUnicodeCharacter{01CA}{NJ}
+\DeclareUnicodeCharacter{01CB}{Nj}
+\DeclareUnicodeCharacter{01CC}{nj}
 \DeclareUnicodeCharacter{01CD}{\v A}
 \DeclareUnicodeCharacter{01CE}{\v a}
 \DeclareUnicodeCharacter{01CF}{\v I}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/t1enc.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/t1enc.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t1enc.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t1lcmss.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t1lcmtt.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t2aenc.dfu	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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.
  \ProvidesFile{t2aenc.dfu}
-   [2021/06/21 v1.2n UTF-8 support]
+   [2021/12/13 v1.2o UTF-8 support]
 \DeclareUnicodeCharacter{00A4}{\textcurrency}
 \DeclareUnicodeCharacter{00A7}{\textsection}
 \DeclareUnicodeCharacter{00AB}{\guillemotleft}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/t2benc.dfu
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/t2benc.dfu	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t2benc.dfu	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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.
  \ProvidesFile{t2benc.dfu}
-   [2021/06/21 v1.2n UTF-8 support]
+   [2021/12/13 v1.2o UTF-8 support]
 \DeclareUnicodeCharacter{00A4}{\textcurrency}
 \DeclareUnicodeCharacter{00A7}{\textsection}
 \DeclareUnicodeCharacter{00AB}{\guillemotleft}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/t2cenc.dfu
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/t2cenc.dfu	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/t2cenc.dfu	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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.
  \ProvidesFile{t2cenc.dfu}
-   [2021/06/21 v1.2n UTF-8 support]
+   [2021/12/13 v1.2o UTF-8 support]
 \DeclareUnicodeCharacter{00A4}{\textcurrency}
 \DeclareUnicodeCharacter{00A7}{\textsection}
 \DeclareUnicodeCharacter{00AB}{\guillemotleft}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/testpage.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/testpage.tex	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/testpage.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 1993-2021
+% Copyright (C) 1993-2022
 % 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/textcomp-2018-08-11.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/textcomp.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/tracefnt.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ts1cmr.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ts1cmss.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ts1cmtt.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ts1cmvtt.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ts1enc.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -192,6 +192,7 @@
 \DeclareTextSymbol{\texteuro}{TS1}{191}
 \DeclareTextSymbol{\texttimes}{TS1}{214}
 \DeclareTextSymbol{\textdiv}{TS1}{246}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \endinput
 %%
 %% End of file `ts1enc.def'.

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/ts1enc.dfu
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/ts1enc.dfu	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ts1enc.dfu	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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.
  \ProvidesFile{ts1enc.dfu}
-   [2021/06/21 v1.2n UTF-8 support]
+   [2021/12/13 v1.2o UTF-8 support]
 \DeclareUnicodeCharacter{00A2}{\textcent}
 \DeclareUnicodeCharacter{00A3}{\textsterling}
 \DeclareUnicodeCharacter{00A4}{\textcurrency}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/tuenc.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/tuenc.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/tuenc.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -74,9 +74,9 @@
         \endgroup
       }
     \else
-      \newluafunction\@remove at tlig@@@@
+      \newprotectedluacmd\@remove at tlig@@@
       \now at and@everyjob{\directlua{
-        local rawchar_func = token.create'@remove at tlig@@@@'.index
+        local rawchar_func = token.create'@remove at tlig@@@'.index
         local forcehmode = tex.forcehmode
         local put_next = token.put_next
         local glyph_id = node.id'glyph'
@@ -92,7 +92,6 @@
           n.char = token.scan_int()
           return node.write(n)
         end
-        token.set_lua('@remove at tlig@@@', rawchar_func, 'global', 'protected')
       }}
       \def\remove at tlig#1{\@remove at tlig@@@#1\relax}
     \fi
@@ -107,7 +106,17 @@
 \def\add at unicode@accent#1#2{%
   \if\relax\detokenize{#2}\relax^^a0\else#2\fi
   \char#1\relax}
-\def\DeclareUnicodeAccent#1#2#3{%
+\def\DeclareUnicodeAccent#1#2{%
+  \edef\reserved at a{#2}%
+  \edef\reserved at b{\UnicodeEncodingName}%
+  \ifx\reserved at a\reserved at b
+    \def\reserved at a{\DeclareUnicodeAccent@{#1}}%
+  \else
+    \def\reserved at a{\DeclareUnicodeAccent@{#1}\UnicodeEncodingName}%
+  \fi
+  \reserved at a{#2}%
+}
+\def\DeclareUnicodeAccent@#1#2#3{%
   \DeclareTextCommand{#1}{#2}{\add at unicode@accent{#3}}%
 }
 {
@@ -134,139 +143,138 @@
   \def\reserved at b{#2}}
 \def\extract at default@composite at b#1#2\@nil{%
   \def\reserved at b{#1#2}}
-\DeclareTextCommand\textquotesingle \UnicodeEncodingName{%
-                                                \remove at tlig{"0027}}
-\DeclareTextCommand\textasciigrave  \UnicodeEncodingName{%
-                                                \remove at tlig{"0060}}
-\DeclareTextCommand\textquotedbl    \UnicodeEncodingName{%
-                                                \remove at tlig{"0022}}
-\DeclareTextSymbol{\textdollar}          \UnicodeEncodingName{"0024}
-\DeclareTextSymbol{\textless}            \UnicodeEncodingName{"003C}
-\DeclareTextSymbol{\textgreater}         \UnicodeEncodingName{"003E}
-\DeclareTextSymbol{\textbackslash}       \UnicodeEncodingName{"005C}
-\DeclareTextSymbol{\textasciicircum}     \UnicodeEncodingName{"005E}
-\DeclareTextSymbol{\textunderscore}      \UnicodeEncodingName{"005F}
-\DeclareTextSymbol{\textbraceleft}       \UnicodeEncodingName{"007B}
-\DeclareTextSymbol{\textbar}             \UnicodeEncodingName{"007C}
-\DeclareTextSymbol{\textbraceright}      \UnicodeEncodingName{"007D}
-\DeclareTextSymbol{\textasciitilde}      \UnicodeEncodingName{"007E}
-\DeclareTextSymbol{\textexclamdown}      \UnicodeEncodingName{"00A1}
-\DeclareTextSymbol{\textcent}            \UnicodeEncodingName{"00A2}
-\DeclareTextSymbol{\textsterling}        \UnicodeEncodingName{"00A3}
-\DeclareTextSymbol{\textcurrency}        \UnicodeEncodingName{"00A4}
-\DeclareTextSymbol{\textyen}             \UnicodeEncodingName{"00A5}
-\DeclareTextSymbol{\textbrokenbar}       \UnicodeEncodingName{"00A6}
-\DeclareTextSymbol{\textsection}         \UnicodeEncodingName{"00A7}
-\DeclareTextSymbol{\textasciidieresis}   \UnicodeEncodingName{"00A8}
-\DeclareTextSymbol{\textcopyright}       \UnicodeEncodingName{"00A9}
-\DeclareTextSymbol{\textordfeminine}     \UnicodeEncodingName{"00AA}
-\DeclareTextSymbol{\guillemetleft}       \UnicodeEncodingName{"00AB}
-\DeclareTextSymbol{\guillemotleft}       \UnicodeEncodingName{"00AB}
-\DeclareTextSymbol{\textlnot}            \UnicodeEncodingName{"00AC}
-\DeclareTextSymbol{\textregistered}      \UnicodeEncodingName{"00AE}
-\DeclareTextSymbol{\textasciimacron}     \UnicodeEncodingName{"00AF}
-\DeclareTextSymbol{\textdegree}          \UnicodeEncodingName{"00B0}
-\DeclareTextSymbol{\textpm}              \UnicodeEncodingName{"00B1}
-\DeclareTextSymbol{\texttwosuperior}     \UnicodeEncodingName{"00B2}
-\DeclareTextSymbol{\textthreesuperior}   \UnicodeEncodingName{"00B3}
-\DeclareTextSymbol{\textasciiacute}      \UnicodeEncodingName{"00B4}
-\DeclareTextSymbol{\textmu}              \UnicodeEncodingName{"00B5}
-\DeclareTextSymbol{\textparagraph}       \UnicodeEncodingName{"00B6}
-\DeclareTextSymbol{\textperiodcentered}  \UnicodeEncodingName{"00B7}
-\DeclareTextSymbol{\textonesuperior}     \UnicodeEncodingName{"00B9}
-\DeclareTextSymbol{\textordmasculine}    \UnicodeEncodingName{"00BA}
-\DeclareTextSymbol{\guillemetright}      \UnicodeEncodingName{"00BB}
-\DeclareTextSymbol{\guillemotright}      \UnicodeEncodingName{"00BB}
-\DeclareTextSymbol{\textonequarter}      \UnicodeEncodingName{"00BC}
-\DeclareTextSymbol{\textonehalf}         \UnicodeEncodingName{"00BD}
-\DeclareTextSymbol{\textthreequarters}   \UnicodeEncodingName{"00BE}
-\DeclareTextSymbol{\textquestiondown}    \UnicodeEncodingName{"00BF}
-\DeclareTextSymbol{\AE}                  \UnicodeEncodingName{"00C6}
-\DeclareTextSymbol{\DH}                  \UnicodeEncodingName{"00D0}
-\DeclareTextSymbol{\texttimes}           \UnicodeEncodingName{"00D7}
-\DeclareTextSymbol{\O}                   \UnicodeEncodingName{"00D8}
-\DeclareTextSymbol{\TH}                  \UnicodeEncodingName{"00DE}
-\DeclareTextSymbol{\ss}                  \UnicodeEncodingName{"00DF}
-\DeclareTextSymbol{\ae}                  \UnicodeEncodingName{"00E6}
-\DeclareTextSymbol{\dh}                  \UnicodeEncodingName{"00F0}
-\DeclareTextSymbol{\textdiv}             \UnicodeEncodingName{"00F7}
-\DeclareTextSymbol{\o}                   \UnicodeEncodingName{"00F8}
-\DeclareTextSymbol{\th}                  \UnicodeEncodingName{"00FE}
-\DeclareTextSymbol{\DJ}                  \UnicodeEncodingName{"0110}
-\DeclareTextSymbol{\dj}                  \UnicodeEncodingName{"0111}
-\DeclareTextSymbol{\i}                   \UnicodeEncodingName{"0131}
-\DeclareTextSymbol{\IJ}                  \UnicodeEncodingName{"0132}
-\DeclareTextSymbol{\ij}                  \UnicodeEncodingName{"0133}
-\DeclareTextSymbol{\L}                   \UnicodeEncodingName{"0141}
-\DeclareTextSymbol{\l}                   \UnicodeEncodingName{"0142}
-\DeclareTextSymbol{\NG}                  \UnicodeEncodingName{"014A}
-\DeclareTextSymbol{\ng}                  \UnicodeEncodingName{"014B}
-\DeclareTextSymbol{\OE}                  \UnicodeEncodingName{"0152}
-\DeclareTextSymbol{\oe}                  \UnicodeEncodingName{"0153}
-\DeclareTextSymbol{\textflorin}          \UnicodeEncodingName{"0192}
-\DeclareTextSymbol{\j}                   \UnicodeEncodingName{"0237}
-\DeclareTextSymbol{\textasciicaron}      \UnicodeEncodingName{"02C7}
-\DeclareTextSymbol{\textasciibreve}      \UnicodeEncodingName{"02D8}
-\DeclareTextSymbol{\textacutedbl}        \UnicodeEncodingName{"02DD}
-\DeclareTextSymbol{\textgravedbl}        \UnicodeEncodingName{"02F5}
-\DeclareTextSymbol{\texttildelow}        \UnicodeEncodingName{"02F7}
-\DeclareTextSymbol{\textbaht}            \UnicodeEncodingName{"0E3F}
-\DeclareTextSymbol{\SS}                  \UnicodeEncodingName{"1E9E}
-\DeclareTextSymbol{\textcompwordmark}    \UnicodeEncodingName{"200C}
-\DeclareTextSymbol{\textendash}          \UnicodeEncodingName{"2013}
-\DeclareTextSymbol{\textemdash}          \UnicodeEncodingName{"2014}
-\DeclareTextCommand{\textnonbreakinghyphen} \UnicodeEncodingName
+\def\DeclareUnicodeSymbol#1{\DeclareTextSymbol{#1}{\UnicodeEncodingName}}
+\def\DeclareUnicodeCommand#1{\DeclareTextCommand{#1}{\UnicodeEncodingName}}
+\DeclareUnicodeCommand\textquotesingle {\remove at tlig{"0027}}
+\DeclareUnicodeCommand\textasciigrave  {\remove at tlig{"0060}}
+\DeclareUnicodeCommand\textquotedbl    {\remove at tlig{"0022}}
+\DeclareUnicodeSymbol{\textdollar}          {"0024}
+\DeclareUnicodeSymbol{\textless}            {"003C}
+\DeclareUnicodeSymbol{\textgreater}         {"003E}
+\DeclareUnicodeSymbol{\textbackslash}       {"005C}
+\DeclareUnicodeSymbol{\textasciicircum}     {"005E}
+\DeclareUnicodeSymbol{\textunderscore}      {"005F}
+\DeclareUnicodeSymbol{\textbraceleft}       {"007B}
+\DeclareUnicodeSymbol{\textbar}             {"007C}
+\DeclareUnicodeSymbol{\textbraceright}      {"007D}
+\DeclareUnicodeSymbol{\textasciitilde}      {"007E}
+\DeclareUnicodeSymbol{\textexclamdown}      {"00A1}
+\DeclareUnicodeSymbol{\textcent}            {"00A2}
+\DeclareUnicodeSymbol{\textsterling}        {"00A3}
+\DeclareUnicodeSymbol{\textcurrency}        {"00A4}
+\DeclareUnicodeSymbol{\textyen}             {"00A5}
+\DeclareUnicodeSymbol{\textbrokenbar}       {"00A6}
+\DeclareUnicodeSymbol{\textsection}         {"00A7}
+\DeclareUnicodeSymbol{\textasciidieresis}   {"00A8}
+\DeclareUnicodeSymbol{\textcopyright}       {"00A9}
+\DeclareUnicodeSymbol{\textordfeminine}     {"00AA}
+\DeclareUnicodeSymbol{\guillemetleft}       {"00AB}
+\DeclareUnicodeSymbol{\guillemotleft}       {"00AB}
+\DeclareUnicodeSymbol{\textlnot}            {"00AC}
+\DeclareUnicodeSymbol{\textregistered}      {"00AE}
+\DeclareUnicodeSymbol{\textasciimacron}     {"00AF}
+\DeclareUnicodeSymbol{\textdegree}          {"00B0}
+\DeclareUnicodeSymbol{\textpm}              {"00B1}
+\DeclareUnicodeSymbol{\texttwosuperior}     {"00B2}
+\DeclareUnicodeSymbol{\textthreesuperior}   {"00B3}
+\DeclareUnicodeSymbol{\textasciiacute}      {"00B4}
+\DeclareUnicodeSymbol{\textmu}              {"00B5}
+\DeclareUnicodeSymbol{\textparagraph}       {"00B6}
+\DeclareUnicodeSymbol{\textperiodcentered}  {"00B7}
+\DeclareUnicodeSymbol{\textonesuperior}     {"00B9}
+\DeclareUnicodeSymbol{\textordmasculine}    {"00BA}
+\DeclareUnicodeSymbol{\guillemetright}      {"00BB}
+\DeclareUnicodeSymbol{\guillemotright}      {"00BB}
+\DeclareUnicodeSymbol{\textonequarter}      {"00BC}
+\DeclareUnicodeSymbol{\textonehalf}         {"00BD}
+\DeclareUnicodeSymbol{\textthreequarters}   {"00BE}
+\DeclareUnicodeSymbol{\textquestiondown}    {"00BF}
+\DeclareUnicodeSymbol{\AE}                  {"00C6}
+\DeclareUnicodeSymbol{\DH}                  {"00D0}
+\DeclareUnicodeSymbol{\texttimes}           {"00D7}
+\DeclareUnicodeSymbol{\O}                   {"00D8}
+\DeclareUnicodeSymbol{\TH}                  {"00DE}
+\DeclareUnicodeSymbol{\ss}                  {"00DF}
+\DeclareUnicodeSymbol{\ae}                  {"00E6}
+\DeclareUnicodeSymbol{\dh}                  {"00F0}
+\DeclareUnicodeSymbol{\textdiv}             {"00F7}
+\DeclareUnicodeSymbol{\o}                   {"00F8}
+\DeclareUnicodeSymbol{\th}                  {"00FE}
+\DeclareUnicodeSymbol{\DJ}                  {"0110}
+\DeclareUnicodeSymbol{\dj}                  {"0111}
+\DeclareUnicodeSymbol{\i}                   {"0131}
+\DeclareUnicodeSymbol{\IJ}                  {"0132}
+\DeclareUnicodeSymbol{\ij}                  {"0133}
+\DeclareUnicodeSymbol{\L}                   {"0141}
+\DeclareUnicodeSymbol{\l}                   {"0142}
+\DeclareUnicodeSymbol{\NG}                  {"014A}
+\DeclareUnicodeSymbol{\ng}                  {"014B}
+\DeclareUnicodeSymbol{\OE}                  {"0152}
+\DeclareUnicodeSymbol{\oe}                  {"0153}
+\DeclareUnicodeSymbol{\textflorin}          {"0192}
+\DeclareUnicodeSymbol{\j}                   {"0237}
+\DeclareUnicodeSymbol{\textasciicaron}      {"02C7}
+\DeclareUnicodeSymbol{\textasciibreve}      {"02D8}
+\DeclareUnicodeSymbol{\textacutedbl}        {"02DD}
+\DeclareUnicodeSymbol{\textgravedbl}        {"02F5}
+\DeclareUnicodeSymbol{\texttildelow}        {"02F7}
+\DeclareUnicodeSymbol{\textbaht}            {"0E3F}
+\DeclareUnicodeSymbol{\SS}                  {"1E9E}
+\DeclareUnicodeSymbol{\textcompwordmark}    {"200C}
+\DeclareUnicodeSymbol{\textendash}          {"2013}
+\DeclareUnicodeSymbol{\textemdash}          {"2014}
+\DeclareUnicodeCommand{\textnonbreakinghyphen}
      {\iffontchar\font "2011 \char "2011 \else \mbox{-}\nobreak\hskip\z@ \fi}
-\DeclareTextCommand{\textfiguredash}     \UnicodeEncodingName
+\DeclareUnicodeCommand{\textfiguredash}
      {\iffontchar\font "2012 \char "2012 \else \char "2013 \fi}
-\DeclareTextCommand{\texthorizontalbar}     \UnicodeEncodingName
+\DeclareUnicodeCommand{\texthorizontalbar}
      {\iffontchar\font "2015 \char "2015 \else \char "2014 \fi}
-\DeclareTextSymbol{\textbardbl}          \UnicodeEncodingName{"2016}
-\DeclareTextSymbol{\textquoteleft}       \UnicodeEncodingName{"2018}
-\DeclareTextSymbol{\textquoteright}      \UnicodeEncodingName{"2019}
-\DeclareTextSymbol{\quotesinglbase}      \UnicodeEncodingName{"201A}
-\DeclareTextSymbol{\textquotedblleft}    \UnicodeEncodingName{"201C}
-\DeclareTextSymbol{\textquotedblright}   \UnicodeEncodingName{"201D}
-\DeclareTextSymbol{\quotedblbase}        \UnicodeEncodingName{"201E}
-\DeclareTextSymbol{\textdagger}          \UnicodeEncodingName{"2020}
-\DeclareTextSymbol{\textdaggerdbl}       \UnicodeEncodingName{"2021}
-\DeclareTextSymbol{\textbullet}          \UnicodeEncodingName{"2022}
-\DeclareTextSymbol{\textellipsis}        \UnicodeEncodingName{"2026}
-\DeclareTextSymbol{\textperthousand}     \UnicodeEncodingName{"2030}
-\DeclareTextSymbol{\textpertenthousand}  \UnicodeEncodingName{"2031}
-\DeclareTextSymbol{\guilsinglleft}       \UnicodeEncodingName{"2039}
-\DeclareTextSymbol{\guilsinglright}      \UnicodeEncodingName{"203A}
-\DeclareTextSymbol{\textreferencemark}   \UnicodeEncodingName{"203B}
-\DeclareTextSymbol{\textinterrobang}     \UnicodeEncodingName{"203D}
-\DeclareTextSymbol{\textfractionsolidus} \UnicodeEncodingName{"2044}
-\DeclareTextSymbol{\textlquill}          \UnicodeEncodingName{"2045}
-\DeclareTextSymbol{\textrquill}          \UnicodeEncodingName{"2046}
-\DeclareTextSymbol{\textdiscount}        \UnicodeEncodingName{"2052}
-\DeclareTextSymbol{\textcolonmonetary}   \UnicodeEncodingName{"20A1}
-\DeclareTextSymbol{\textlira}            \UnicodeEncodingName{"20A4}
-\DeclareTextSymbol{\textnaira}           \UnicodeEncodingName{"20A6}
-\DeclareTextSymbol{\textwon}             \UnicodeEncodingName{"20A9}
-\DeclareTextSymbol{\textdong}            \UnicodeEncodingName{"20AB}
-\DeclareTextSymbol{\texteuro}            \UnicodeEncodingName{"20AC}
-\DeclareTextSymbol{\textpeso}            \UnicodeEncodingName{"20B1}
-\DeclareTextSymbol{\textcelsius}         \UnicodeEncodingName{"2103}
-\DeclareTextSymbol{\textnumero}          \UnicodeEncodingName{"2116}
-\DeclareTextSymbol{\textcircledP}        \UnicodeEncodingName{"2117}
-\DeclareTextSymbol{\textrecipe}          \UnicodeEncodingName{"211E}
-\DeclareTextSymbol{\textservicemark}     \UnicodeEncodingName{"2120}
-\DeclareTextSymbol{\texttrademark}       \UnicodeEncodingName{"2122}
-\DeclareTextSymbol{\textohm}             \UnicodeEncodingName{"2126}
-\DeclareTextSymbol{\textmho}             \UnicodeEncodingName{"2127}
-\DeclareTextSymbol{\textestimated}       \UnicodeEncodingName{"212E}
-\DeclareTextSymbol{\textleftarrow}       \UnicodeEncodingName{"2190}
-\DeclareTextSymbol{\textuparrow}         \UnicodeEncodingName{"2191}
-\DeclareTextSymbol{\textrightarrow}      \UnicodeEncodingName{"2192}
-\DeclareTextSymbol{\textdownarrow}       \UnicodeEncodingName{"2193}
-\DeclareTextSymbol{\textminus}           \UnicodeEncodingName{"2212}
+\DeclareUnicodeSymbol{\textbardbl}          {"2016}
+\DeclareUnicodeSymbol{\textquoteleft}       {"2018}
+\DeclareUnicodeSymbol{\textquoteright}      {"2019}
+\DeclareUnicodeSymbol{\quotesinglbase}      {"201A}
+\DeclareUnicodeSymbol{\textquotedblleft}    {"201C}
+\DeclareUnicodeSymbol{\textquotedblright}   {"201D}
+\DeclareUnicodeSymbol{\quotedblbase}        {"201E}
+\DeclareUnicodeSymbol{\textdagger}          {"2020}
+\DeclareUnicodeSymbol{\textdaggerdbl}       {"2021}
+\DeclareUnicodeSymbol{\textbullet}          {"2022}
+\DeclareUnicodeSymbol{\textellipsis}        {"2026}
+\DeclareUnicodeSymbol{\textperthousand}     {"2030}
+\DeclareUnicodeSymbol{\textpertenthousand}  {"2031}
+\DeclareUnicodeSymbol{\guilsinglleft}       {"2039}
+\DeclareUnicodeSymbol{\guilsinglright}      {"203A}
+\DeclareUnicodeSymbol{\textreferencemark}   {"203B}
+\DeclareUnicodeSymbol{\textinterrobang}     {"203D}
+\DeclareUnicodeSymbol{\textfractionsolidus} {"2044}
+\DeclareUnicodeSymbol{\textlquill}          {"2045}
+\DeclareUnicodeSymbol{\textrquill}          {"2046}
+\DeclareUnicodeSymbol{\textdiscount}        {"2052}
+\DeclareUnicodeSymbol{\textcolonmonetary}   {"20A1}
+\DeclareUnicodeSymbol{\textlira}            {"20A4}
+\DeclareUnicodeSymbol{\textnaira}           {"20A6}
+\DeclareUnicodeSymbol{\textwon}             {"20A9}
+\DeclareUnicodeSymbol{\textdong}            {"20AB}
+\DeclareUnicodeSymbol{\texteuro}            {"20AC}
+\DeclareUnicodeSymbol{\textpeso}            {"20B1}
+\DeclareUnicodeSymbol{\textcelsius}         {"2103}
+\DeclareUnicodeSymbol{\textnumero}          {"2116}
+\DeclareUnicodeSymbol{\textcircledP}        {"2117}
+\DeclareUnicodeSymbol{\textrecipe}          {"211E}
+\DeclareUnicodeSymbol{\textservicemark}     {"2120}
+\DeclareUnicodeSymbol{\texttrademark}       {"2122}
+\DeclareUnicodeSymbol{\textohm}             {"2126}
+\DeclareUnicodeSymbol{\textmho}             {"2127}
+\DeclareUnicodeSymbol{\textestimated}       {"212E}
+\DeclareUnicodeSymbol{\textleftarrow}       {"2190}
+\DeclareUnicodeSymbol{\textuparrow}         {"2191}
+\DeclareUnicodeSymbol{\textrightarrow}      {"2192}
+\DeclareUnicodeSymbol{\textdownarrow}       {"2193}
+\DeclareUnicodeSymbol{\textminus}           {"2212}
 
-\DeclareTextSymbol{\Hwithstroke}         \UnicodeEncodingName{"0126}
-\DeclareTextSymbol{\hwithstroke}         \UnicodeEncodingName{"0127}
-\DeclareTextCommand{\textasteriskcentered}\UnicodeEncodingName{%
+\DeclareUnicodeSymbol{\Hwithstroke}         {"0126}
+\DeclareUnicodeSymbol{\hwithstroke}         {"0127}
+\DeclareUnicodeCommand{\textasteriskcentered}{%
   \iffontchar\font"2217 \char"2217 \else
     \begingroup
       \fontsize
@@ -277,33 +285,33 @@
     \endgroup
   \fi
 }
-\DeclareTextSymbol{\textsurd}            \UnicodeEncodingName{"221A}
-\DeclareTextSymbol{\textlangle}          \UnicodeEncodingName{"2329}
-\DeclareTextSymbol{\textrangle}          \UnicodeEncodingName{"232A}
-\DeclareTextSymbol{\textblank}           \UnicodeEncodingName{"2422}
-\DeclareTextSymbol{\textvisiblespace}    \UnicodeEncodingName{"2423}
-\DeclareTextSymbol{\textopenbullet}      \UnicodeEncodingName{"25E6}
-\DeclareTextSymbol{\textbigcircle}       \UnicodeEncodingName{"25EF}
-\DeclareTextSymbol{\textmusicalnote}     \UnicodeEncodingName{"266A}
-\DeclareTextSymbol{\textmarried}         \UnicodeEncodingName{"26AD}
-\DeclareTextSymbol{\textdivorced}        \UnicodeEncodingName{"26AE}
-\DeclareTextSymbol{\textinterrobangdown} \UnicodeEncodingName{"2E18}
-\DeclareUnicodeAccent{\`}                \UnicodeEncodingName{"0300}
-\DeclareUnicodeAccent{\'}                \UnicodeEncodingName{"0301}
-\DeclareUnicodeAccent{\^}                \UnicodeEncodingName{"0302}
-\DeclareUnicodeAccent{\~}                \UnicodeEncodingName{"0303}
-\DeclareUnicodeAccent{\=}                \UnicodeEncodingName{"0304}
-\DeclareUnicodeAccent{\u}                \UnicodeEncodingName{"0306}
-\DeclareUnicodeAccent{\.}                \UnicodeEncodingName{"0307}
-\DeclareUnicodeAccent{\"}                \UnicodeEncodingName{"0308}
-\DeclareUnicodeAccent{\r}                \UnicodeEncodingName{"030A}
-\DeclareUnicodeAccent{\H}                \UnicodeEncodingName{"030B}
-\DeclareUnicodeAccent{\v}                \UnicodeEncodingName{"030C}
-\DeclareUnicodeAccent{\b}                \UnicodeEncodingName{"0332}
-\DeclareUnicodeAccent{\d}                \UnicodeEncodingName{"0323}
-\DeclareUnicodeAccent{\c}                \UnicodeEncodingName{"0327}
-\DeclareUnicodeAccent{\k}                \UnicodeEncodingName{"0328}
-\DeclareTextCommand\textcommabelow       \UnicodeEncodingName[1]
+\DeclareUnicodeSymbol{\textsurd}            {"221A}
+\DeclareUnicodeSymbol{\textlangle}          {"2329}
+\DeclareUnicodeSymbol{\textrangle}          {"232A}
+\DeclareUnicodeSymbol{\textblank}           {"2422}
+\DeclareUnicodeSymbol{\textvisiblespace}    {"2423}
+\DeclareUnicodeSymbol{\textopenbullet}      {"25E6}
+\DeclareUnicodeSymbol{\textbigcircle}       {"25EF}
+\DeclareUnicodeSymbol{\textmusicalnote}     {"266A}
+\DeclareUnicodeSymbol{\textmarried}         {"26AD}
+\DeclareUnicodeSymbol{\textdivorced}        {"26AE}
+\DeclareUnicodeSymbol{\textinterrobangdown} {"2E18}
+\DeclareUnicodeAccent{\`}{"0300}
+\DeclareUnicodeAccent{\'}{"0301}
+\DeclareUnicodeAccent{\^}{"0302}
+\DeclareUnicodeAccent{\~}{"0303}
+\DeclareUnicodeAccent{\=}{"0304}
+\DeclareUnicodeAccent{\u}{"0306}
+\DeclareUnicodeAccent{\.}{"0307}
+\DeclareUnicodeAccent{\"}{"0308}
+\DeclareUnicodeAccent{\r}{"030A}
+\DeclareUnicodeAccent{\H}{"030B}
+\DeclareUnicodeAccent{\v}{"030C}
+\DeclareUnicodeAccent{\b}{"0332}
+\DeclareUnicodeAccent{\d}{"0323}
+\DeclareUnicodeAccent{\c}{"0327}
+\DeclareUnicodeAccent{\k}{"0328}
+\DeclareUnicodeCommand\textcommabelow[1]
   {\hmode at bgroup\ooalign{\null#1\crcr\hidewidth\raise-.31ex
    \hbox{\check at mathfonts\fontsize\ssf at size\z@
    \math at fontsfalse\selectfont,}\hidewidth}\egroup}
@@ -554,6 +562,7 @@
 \DeclareUnicodeComposite{\d}             {u}{"1EE5}
 \DeclareUnicodeComposite{\d}             {Y}{"1EF4}
 \DeclareUnicodeComposite{\d}             {y}{"1EF5}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \endinput
 %%
 %% End of file `tuenc.def'.

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/tulmdh.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/tulmdh.fd	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/tulmdh.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 2016-2021
+%% Copyright (C) 2016-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/tulmr.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 2016-2021
+%% Copyright (C) 2016-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/tulmss.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 2016-2021
+%% Copyright (C) 2016-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/tulmssq.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 2016-2021
+%% Copyright (C) 2016-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/tulmtt.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 2016-2021
+%% Copyright (C) 2016-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/tulmvtt.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 2016-2021
+%% Copyright (C) 2016-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ucmr.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ucmss.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ucmtt.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ulasy.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/ullasy.fd	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/utf8-2018.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/utf8.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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.
 \ProvidesFile{utf8.def}
-   [2021/06/21 v1.2n UTF-8 support]
+   [2021/12/13 v1.2o UTF-8 support]
 \ifx\ifincsname\@undefined  % old e-pTeX or e-upTeX engines
   \input utf8-2018.def
   \expandafter\@firstofone
@@ -215,11 +215,11 @@
    \endgroup
 }
 \gdef\parse at XML@charref{%
-  \ifnum\count@<"A0\relax
+  \ifnum\count@<"80\relax
     \ifnum\catcode\count@=13
       \uccode`\~=\count@\uppercase{\def\UTFviii at tmp{\@empty\@empty~}}%
     \else
-      \@latex at error{Cannot define non-active Unicode char value < 00A0}%
+      \@latex at error{Cannot define non-active Unicode char value < 0080}%
                    \@eha
       \def\UTFviii at tmp{\UTFviii at tmp}%
     \fi

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/utf8enc.dfu
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/utf8enc.dfu	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/utf8enc.dfu	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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.
  \ProvidesFile{utf8enc.dfu}
-   [2021/06/21 v1.2n UTF-8 support]
+   [2021/12/13 v1.2o UTF-8 support]
 \DeclareUnicodeCharacter{00A0}{\nobreakspace}
 \DeclareUnicodeCharacter{00A1}{\textexclamdown}
 \DeclareUnicodeCharacter{00A2}{\textcent}
@@ -259,6 +259,15 @@
 \DeclareUnicodeCharacter{017D}{\v Z}
 \DeclareUnicodeCharacter{017E}{\v z}
 \DeclareUnicodeCharacter{0192}{\textflorin}
+\DeclareUnicodeCharacter{01C4}{D\v Z}
+\DeclareUnicodeCharacter{01C5}{D\v z}
+\DeclareUnicodeCharacter{01C6}{d\v z}
+\DeclareUnicodeCharacter{01C7}{LJ}
+\DeclareUnicodeCharacter{01C8}{Lj}
+\DeclareUnicodeCharacter{01C9}{lj}
+\DeclareUnicodeCharacter{01CA}{NJ}
+\DeclareUnicodeCharacter{01CB}{Nj}
+\DeclareUnicodeCharacter{01CC}{nj}
 \DeclareUnicodeCharacter{01CD}{\v A}
 \DeclareUnicodeCharacter{01CE}{\v a}
 \DeclareUnicodeCharacter{01CF}{\v I}

Modified: trunk/Master/texmf-dist/tex/latex-dev/base/x2enc.dfu
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/base/x2enc.dfu	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/base/x2enc.dfu	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% 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.
   \ProvidesFile{x2enc.dfu}
-   [2021/06/21 v1.2n UTF-8 support]
+   [2021/12/13 v1.2o UTF-8 support]
 \DeclareUnicodeCharacter{00A4}{\textcurrency}
 \DeclareUnicodeCharacter{00A7}{\textsection}
 \DeclareUnicodeCharacter{00AB}{\guillemotleft}

Modified: trunk/Master/texmf-dist/tex/latex-dev/graphics/color.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/graphics/color.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/graphics/color.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -12,7 +12,7 @@
 %% 
 %% 
 %% color.dtx Copyright (C) 1994--1999 David Carlisle
-%%           Copyright (C) 2005-2021
+%%           Copyright (C) 2005-2022 LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%
@@ -25,7 +25,7 @@
 %%
 \NeedsTeXFormat{LaTeX2e}[1995/12/01]
 \ProvidesPackage{color}
-          [2021/10/11 v1.3b Standard LaTeX Color (DPC)]
+          [2022/01/06 v1.3d Standard LaTeX Color (DPC)]
 \edef\Gin at codes{%
  \catcode`\noexpand\^^A\the\catcode`\^^A\relax
  \catcode`\noexpand\"\the\catcode`\"\relax
@@ -84,7 +84,7 @@
 \let\c at lor@usename\@gobble
 \DeclareOption{usenames}{%
   \def\c at lor@usename#1{%
-    \expandafter\color at named\csname\@backslashchar color @#1\endcsname{#1}}}
+    \expandafter\color at named\csname\@backslashchar color@#1\endcsname{#1}}}
 \DeclareRobustCommand\color{%
   \@ifnextchar[\@undeclaredcolor\@declaredcolor}
 \def\@undeclaredcolor[#1]#2{%
@@ -94,10 +94,10 @@
      \set at color}%
   \ignorespaces}
 \def\@declaredcolor#1{%
-  \@ifundefined{\@backslashchar color @#1}%
+  \@ifundefined{\@backslashchar color@#1}%
     {\c at lor@error{`#1'}}%
     {\expandafter\let\expandafter\current at color
-     \csname\@backslashchar color @#1\endcsname
+     \csname\@backslashchar color@#1\endcsname
      \set at color}%
   \ignorespaces}
 \protected\def\textcolor#1#{\@textcolor{#1}}
@@ -117,10 +117,10 @@
 \protected\def\definecolor#1#2#3{%
   \@ifundefined{color@#2}%
     {\c at lor@error{model `#2'}}%
-    {\@ifundefined{\@backslashchar color @#1}{}%
+    {\@ifundefined{\@backslashchar color@#1}{}%
       {\PackageInfo{color}{Redefining color #1}}%
      \csname color@#2\expandafter\endcsname
-         \csname\@backslashchar color @#1\endcsname{#3}}}
+         \csname\@backslashchar color@#1\endcsname{#3}}}
 \protected\def\DefineNamedColor#1#2#3#4{%
   \@ifundefined{define at color@#1}%
     {\c at lor@error{model `#1'}}%
@@ -167,6 +167,7 @@
  \dimen@\dp\z@\advance\dimen@\fboxsep\dp\z@\dimen@
  {#1{#2\color at block{\wd\z@}{\ht\z@}{\dp\z@}%
       \box\z@}}}
+\input{mathcolor.ltx}
 \def\color at setgroup{\begingroup\set at color}
 \let\color at begingroup\begingroup
 \def\color at endgroup{\endgraf\endgroup}

Modified: trunk/Master/texmf-dist/tex/latex-dev/graphics/dvipdf.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/graphics/dvipdf.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/graphics/dvipdf.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -8,7 +8,7 @@
 %% 
 %% drivers.dtx Copyright (C) 1994      David Carlisle Sebastian Rahtz
 %%             Copyright (C) 1995 1996 1997 1998 1999 David Carlisle
-%%             Copyright (C) 2000-2021
+%%             Copyright (C) 2000-2022 LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%

Modified: trunk/Master/texmf-dist/tex/latex-dev/graphics/dvipsnam.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/graphics/dvipsnam.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/graphics/dvipsnam.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -8,7 +8,7 @@
 %% 
 %% drivers.dtx Copyright (C) 1994      David Carlisle Sebastian Rahtz
 %%             Copyright (C) 1995 1996 1997 1998 1999 David Carlisle
-%%             Copyright (C) 2000-2021
+%%             Copyright (C) 2000-2022 LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%

Modified: trunk/Master/texmf-dist/tex/latex-dev/graphics/dvipsone.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/graphics/dvipsone.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/graphics/dvipsone.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -8,7 +8,7 @@
 %% 
 %% drivers.dtx Copyright (C) 1994      David Carlisle Sebastian Rahtz
 %%             Copyright (C) 1995 1996 1997 1998 1999 David Carlisle
-%%             Copyright (C) 2000-2021
+%%             Copyright (C) 2000-2022 LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%

Modified: trunk/Master/texmf-dist/tex/latex-dev/graphics/dviwin.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/graphics/dviwin.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/graphics/dviwin.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -8,7 +8,7 @@
 %% 
 %% drivers.dtx Copyright (C) 1994      David Carlisle Sebastian Rahtz
 %%             Copyright (C) 1995 1996 1997 1998 1999 David Carlisle
-%%             Copyright (C) 2000-2021
+%%             Copyright (C) 2000-2022 LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%

Modified: trunk/Master/texmf-dist/tex/latex-dev/graphics/emtex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/graphics/emtex.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/graphics/emtex.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -8,7 +8,7 @@
 %% 
 %% drivers.dtx Copyright (C) 1994      David Carlisle Sebastian Rahtz
 %%             Copyright (C) 1995 1996 1997 1998 1999 David Carlisle
-%%             Copyright (C) 2000-2021
+%%             Copyright (C) 2000-2022 LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%

Modified: trunk/Master/texmf-dist/tex/latex-dev/graphics/epsfig.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/graphics/epsfig.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/graphics/epsfig.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -12,7 +12,7 @@
 %% 
 %% 
 %% epsfig.dtx Copyright (C) 1994-1996 1999 Sebastian Rahtz
-%%            Copyright (C) 2000-2021
+%%            Copyright (C) 2000-2022 LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%

Modified: trunk/Master/texmf-dist/tex/latex-dev/graphics/graphics.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/graphics/graphics.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/graphics/graphics.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -12,7 +12,7 @@
 %% 
 %% 
 %% graphics.dtx Copyright (C) 1994      David Carlisle Sebastian Rahtz
-%%              Copyright (C) 1995-2021
+%%              Copyright (C) 1995-2022 LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%

Modified: trunk/Master/texmf-dist/tex/latex-dev/graphics/graphicx.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/graphics/graphicx.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/graphics/graphicx.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -12,7 +12,7 @@
 %% 
 %% 
 %% graphicx.dtx Copyright (C) 1994      David Carlisle Sebastian Rahtz
-%%              Copyright (C) 1995-2021
+%%              Copyright (C) 1995-2022 LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%

Modified: trunk/Master/texmf-dist/tex/latex-dev/graphics/keyval.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/graphics/keyval.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/graphics/keyval.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -12,7 +12,7 @@
 %% 
 %% 
 %% keyval.dtx Copyright (C) 1993 1994 1995 1997 1998 1999 David Carlisle
-%%            Copyright (C) 2000-2021 David Carlisle, LaTeX Project
+%%            Copyright (C) 2000-2022 David Carlisle, LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%

Modified: trunk/Master/texmf-dist/tex/latex-dev/graphics/lscape.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/graphics/lscape.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/graphics/lscape.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -12,7 +12,7 @@
 %% 
 %% 
 %% lscape.dtx Copyright (C) 1994 1999-2000 David Carlisle
-%%            Copyright (C) 2000-2021
+%%            Copyright (C) 2000-2022 LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%

Added: trunk/Master/texmf-dist/tex/latex-dev/graphics/mathcolor.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/graphics/mathcolor.ltx	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex-dev/graphics/mathcolor.ltx	2022-01-13 21:03:32 UTC (rev 61598)
@@ -0,0 +1,97 @@
+%%
+%% This is file `mathcolor.ltx',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% mathcolor.dtx  (with options: `code')
+%% 
+%% The source is maintained by the LaTeX Project team and bug
+%% reports for it can be opened at https://latex-project.org/bugs/
+%% (but please observe conditions on bug reports sent to that address!)
+%% 
+%% 
+%% File: mathcolor.dtx (C) Copyright 2021-2022
+%%% From File: mathcolor.dtx
+\def\mathcolorversion{v1.0a}
+\def\mathcolordate{2022/01/07}
+
+
+\ifcsname mathcolor\endcsname \endinput \fi
+\ExplSyntaxOn
+\seq_new:N \g__mathcolor_seq
+\DeclareDocumentCommand \mathcolor { o m m } {
+  \seq_gpush:No \g__mathcolor_seq \current at color
+  \group_insert_after:N \use_none:n
+  \IfValueTF{#1} { \color[#1]{#2} }{ \color{#2} }
+  #3
+  \__mathcolor_scan_for_scripts:w
+}
+\cs_new_protected:Npn \__mathcolor_scan_for_scripts:w {
+  \__mathcolor_peek_catcode_ignore_filler_expand:NTF \c_math_subscript_token
+    { \__mathcolor_handle_scripts:Nw }
+    { \token_if_math_superscript:NTF \l_peek_token
+      { \__mathcolor_handle_scripts:Nw }
+      { \token_case_meaning:NnTF \l_peek_token
+          {
+            \limits   { \limits }
+            \nolimits { \nolimits }
+            \displaylimits { \displaylimits }
+          }
+          { \__mathcolor_scan_for_scripts:w \use_none:n }
+          { \peek_meaning_remove:NTF '
+            { \__mathcolor_handle_scripts:Nw ^\c_group_begin_token \prim at s }
+            { \reset at color
+              \seq_gpop:NN \g__mathcolor_seq \current at color
+            }
+          }
+      }
+    }
+}
+
+\cs_new_protected:Npn \__mathcolor_handle_scripts:Nw #1 {
+    #1 \c_group_begin_token \c_group_begin_token
+    \seq_get:NN \g__mathcolor_seq \current at color
+    \set at color
+    \group_insert_after:N \c_group_end_token
+    \group_insert_after:N \__mathcolor_scan_for_scripts:w
+    \__mathcolor_peek_catcode_ignore_filler_expand:NTF \c_group_begin_token
+      { \peek_catcode_remove:NT \c_group_begin_token { } }
+      { \__mathcolor_handle_unbraced_script:N }
+  }%    \end{macrocode}
+
+\cs_new_protected:Npn \__mathcolor_handle_unbraced_script:N #1 {
+  #1 \c_group_end_token }
+\tl_new:N \l__mathcolor_peek_tmp_tl
+\cs_new_protected:Npn \__mathcolor_peek_catcode_ignore_filler_expand:NTF #1#2#3
+  {
+    \tl_set:Nn \l__mathcolor_peek_tmp_tl
+      { \token_if_eq_catcode:NNTF \l_peek_token #1 {#2} {#3} }
+    \__mathcolor_peek_expand:w
+  }
+\cs_new_protected:Npn \__mathcolor_peek_expand:w
+  {
+    \exp_after:wN \peek_catcode_remove:NTF
+    \exp_after:wN \c_space_token
+    \exp_after:wN \__mathcolor_peek_test_expand:w
+    \exp_after:wN \__mathcolor_peek_test_relax:w
+    \exp:w \exp_end_continue_f:w
+  }
+\cs_new_protected:Npn \__mathcolor_peek_test_expand:w
+  {
+    \token_if_expandable:NTF \l_peek_token
+      { \__mathcolor_peek_expand:w }
+      { \l__mathcolor_peek_tmp_tl      }
+  }
+\cs_new_protected:Npn \__mathcolor_peek_test_relax:w
+   {
+    \peek_meaning_remove:NTF \scan_stop:
+      { \__mathcolor_peek_expand:w }
+      { \__mathcolor_peek_test_expand:w   }
+   }
+\ExplSyntaxOff
+
+%%%%%%%%%%%%%%%%
+\endinput
+%%
+%% End of file `mathcolor.ltx'.


Property changes on: trunk/Master/texmf-dist/tex/latex-dev/graphics/mathcolor.ltx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex-dev/graphics/pctex32.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/graphics/pctex32.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/graphics/pctex32.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -8,7 +8,7 @@
 %% 
 %% drivers.dtx Copyright (C) 1994      David Carlisle Sebastian Rahtz
 %%             Copyright (C) 1995 1996 1997 1998 1999 David Carlisle
-%%             Copyright (C) 2000-2021
+%%             Copyright (C) 2000-2022 LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%

Modified: trunk/Master/texmf-dist/tex/latex-dev/graphics/pctexhp.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/graphics/pctexhp.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/graphics/pctexhp.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -8,7 +8,7 @@
 %% 
 %% drivers.dtx Copyright (C) 1994      David Carlisle Sebastian Rahtz
 %%             Copyright (C) 1995 1996 1997 1998 1999 David Carlisle
-%%             Copyright (C) 2000-2021
+%%             Copyright (C) 2000-2022 LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%

Modified: trunk/Master/texmf-dist/tex/latex-dev/graphics/pctexps.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/graphics/pctexps.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/graphics/pctexps.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -8,7 +8,7 @@
 %% 
 %% drivers.dtx Copyright (C) 1994      David Carlisle Sebastian Rahtz
 %%             Copyright (C) 1995 1996 1997 1998 1999 David Carlisle
-%%             Copyright (C) 2000-2021
+%%             Copyright (C) 2000-2022 LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%

Modified: trunk/Master/texmf-dist/tex/latex-dev/graphics/pctexwin.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/graphics/pctexwin.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/graphics/pctexwin.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -8,7 +8,7 @@
 %% 
 %% drivers.dtx Copyright (C) 1994      David Carlisle Sebastian Rahtz
 %%             Copyright (C) 1995 1996 1997 1998 1999 David Carlisle
-%%             Copyright (C) 2000-2021
+%%             Copyright (C) 2000-2022 LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%

Modified: trunk/Master/texmf-dist/tex/latex-dev/graphics/rotating.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/graphics/rotating.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/graphics/rotating.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% 
 %% Copyright (C) 1995-1999 Sebastian Rahtz and Leonor Barroca
 %% Copyright (C) 2001-2003,2007-2009 Robin Fairbairns
-%% Copyright (C) 2016-2021 LaTeX Project
+%% Copyright (C) 2016-2022 LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 \NeedsTeXFormat{LaTeX2e}

Modified: trunk/Master/texmf-dist/tex/latex-dev/graphics/tcidvi.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/graphics/tcidvi.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/graphics/tcidvi.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -8,7 +8,7 @@
 %% 
 %% drivers.dtx Copyright (C) 1994      David Carlisle Sebastian Rahtz
 %%             Copyright (C) 1995 1996 1997 1998 1999 David Carlisle
-%%             Copyright (C) 2000-2021
+%%             Copyright (C) 2000-2022 LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%

Modified: trunk/Master/texmf-dist/tex/latex-dev/graphics/trig.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/graphics/trig.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/graphics/trig.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -12,7 +12,7 @@
 %% 
 %% 
 %% File: trig.dtx Copyright (C) 1993-1999 David Carlisle
-%%                Copyright (C) 2000-2021
+%%                Copyright (C) 2000-2022 LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%

Modified: trunk/Master/texmf-dist/tex/latex-dev/graphics/truetex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/graphics/truetex.def	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/graphics/truetex.def	2022-01-13 21:03:32 UTC (rev 61598)
@@ -8,7 +8,7 @@
 %% 
 %% drivers.dtx Copyright (C) 1994      David Carlisle Sebastian Rahtz
 %%             Copyright (C) 1995 1996 1997 1998 1999 David Carlisle
-%%             Copyright (C) 2000-2021
+%%             Copyright (C) 2000-2022 LaTeX Project
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %%

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/.tex	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/afterpage.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/afterpage.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/afterpage.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -12,7 +12,7 @@
 %% reports for it can be opened at https://latex-project.org/bugs/
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/array.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/array.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/array.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/bm.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/bm.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/bm.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -12,7 +12,7 @@
 %% reports for it can be opened at https://latex-project.org/bugs/
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -34,13 +34,13 @@
 %% The list of all files belonging to the LaTeX `Tools Bundle' is
 %% given in the file `manifest.txt'.
 %% 
-%% Copyright 1996 1997 1998 1999 2002 2003 2004 2016 2017 2019
+%% Copyright 1996 1997 1998 1999 2002 2003 2004 2016 2017 2019 2021 2022
 %% David Carlisle Frank Mittelbach
 %%
 %% Development of this package was commissioned by Y&Y Inc.
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesPackage{bm}
-          [2021/04/25 v1.2e Bold Symbol Support (DPC/FMi)]
+          [2022/01/05 v1.2f Bold Symbol Support (DPC/FMi)]
 \DeclareOption{nopmb}{\let\bm at pmb@\@firstofone}
 \DeclareOption{warn}{\def\bm at info{\PackageWarningNoLine{bm}}}
 \DeclareOption{info}{\def\bm at info#1{\PackageInfo{bm}{#1\@gobble}}}
@@ -191,6 +191,7 @@
       \unvcopy{\GenericError{##1}{##2}{##3}{##4}}}%
     \let\DN@\copy
     \let\FN@\copy
+    \let\nolimits@\copy
     \let\next@\copy
     \global\let\bm at first\@empty
     \ifx\uproot@\undefined\else

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/calc.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/calc.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/calc.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/dcolumn.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/dcolumn.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/dcolumn.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/delarray.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/delarray.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/delarray.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/e.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/e.tex	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/e.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/enumerate.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/enumerate.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/enumerate.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/fontsmpl.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/fontsmpl.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/fontsmpl.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/fontsmpl.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/fontsmpl.tex	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/fontsmpl.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/ftnright.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/ftnright.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/ftnright.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/h.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/h.tex	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/h.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/hhline.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/hhline.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/hhline.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/indentfirst.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/indentfirst.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/indentfirst.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/layout.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/layout.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/layout.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/longtable.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/longtable.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/longtable.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -12,7 +12,7 @@
 %% reports for it can be opened at https://latex-project.org/bugs/
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Added: trunk/Master/texmf-dist/tex/latex-dev/tools/multicol-2019-10-01.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/multicol-2019-10-01.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/multicol-2019-10-01.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -0,0 +1,1105 @@
+%% This is a rollback file for multicol to the last version within release 2019-10-01
+%% =======================
+%%
+%%
+%% This is file `multicol.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% multicol.dtx  (with options: `package,badness,check,marktrace,nobalance')
+%% 
+%% This is a generated file.
+%% 
+%% The source is maintained by the LaTeX Project team and bug
+%% reports for it can be opened at https://latex-project.org/bugs/
+%% (but please observe conditions on bug reports sent to that address!)
+%% 
+%% Copyright (C) 1993-2021
+%% The LaTeX Project and any individual authors listed elsewhere
+%% in this file.
+%% 
+%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
+%% --------------------------------------------------------------------------
+%% 
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%%    https://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%% 
+%% This file may only be distributed together with a copy of the LaTeX
+%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle'
+%% without such generated files.
+%% 
+%% The list of all files belonging to the LaTeX `Tools Bundle' is
+%% given in the file `manifest.txt'.
+%% 
+%% Package `multicol' to use with LaTeX2e
+%% Copyright 1989-2019 Frank Mittelbach
+%%
+%%  In addition to the terms of LPPL any distributed version
+%%  (unchanged or modified) of multicol has to keep the statement
+%%  about the moral obligation for using multicol. In case of major
+%%  changes where this would not be appropriate the author of the
+%%  changed version should contact the copyright holder.
+%%
+%%
+%%  Moral obligation for using multicol:
+%%  ------------------------------------
+%%
+%%  Users of multicol who wish to include or use multicol or a modified
+%%  version in a proprietary and commercially market product are asked
+%%  under certain conditions (see below) for the payment of a license
+%%  fee.  The size of this fee is to be determined, in each instance,
+%%  by the commercial user, depending on his/her judgment of the value of
+%%  multicol for his/her product.
+%%
+%%
+%%  The conditions for this are as follows:
+%%
+%%   The producer of a proprietary and commercially market product
+%%   that involves typesetting using multicol is asked to determine
+%%   the value of a license fee for using multicol if
+%%
+%%   - the product is a document and the producer has decided to
+%%     include multicol to typeset (parts of) the document or has
+%%     directed the author of the document to include multicol (for
+%%     example, by providing a class file to be used by the author)
+%%
+%%   - the product is a LaTeX class or package that includes multicol
+%%
+%%
+%%   There is no moral obligation in case
+%%
+%%   - the product is a document but producer has not directed
+%%     the author to include multicol (in that case the moral obligation
+%%     lies with the author of the document)
+%%
+%%   - the product does not involve typesetting, e.g., consists, for
+%%     example, of distributing multicol and its documentation.
+%%
+%%   - the product is not proprietary, i.e., is made available as free
+%%     software itself (which doesn't prohibit its commercial marketing)
+%%
+%%   - multicol is used for non-commercial purposes
+%%
+%%
+%% Determining a license fee might result in a license fee of zero
+%% (i.e., no payment) in case a producer has determined that the use
+%% of multicol has no enhancing effect on the product. This is a
+%% plausible scenario, i.e., in the above two cases the producer is
+%% only asked to evaluate the value of multicol for the product
+%% not for the payment of a license fee per se (which might or might
+%% not follow from this evaluation).
+%%
+%% The license fee, if any, can be payed either to the LaTeX fund
+%% (see ltx3info.txt in the base LaTeX distribution) or to the author of
+%% the program who can be contacted at
+%%
+%%     Frank.Mittelbach at latex-project.org
+%%
+\NeedsTeXFormat{LaTeX2e}[2018-04-01]
+
+\providecommand\DeclareRelease[3]{}
+\providecommand\DeclareCurrentRelease[2]{}
+
+\DeclareRelease{}{2017-04-11}{multicol-2017-04-11.sty}
+\DeclareCurrentRelease{}{2018-04-01}
+
+\ProvidesPackage{multicol}
+          [2019/12/09 v1.8y  multicolumn formatting (FMi)]
+%%
+\DeclareOption{twocolumn}
+   {\PackageWarning{multicol}{May not work
+             with the twocolumn option}}
+\newcount\c at tracingmulticols
+\DeclareOption{errorshow}
+    {\c at tracingmulticols\z@}
+\DeclareOption{infoshow}
+    {\c at tracingmulticols\@ne}
+\DeclareOption{balancingshow}
+    {\c at tracingmulticols\tw@}
+\DeclareOption{markshow}
+    {\c at tracingmulticols\thr@@}
+\DeclareOption{debugshow}
+    {\c at tracingmulticols5\relax}
+\let\mc at gridwarn\maxdimen
+\DeclareOption{grid}{\def\mc at gridwarn{\@maxdepth}}
+\DeclareOption{colaction}{%
+  \def\mc at col@status at write{%
+         \protected at write\@auxout{}%
+              {\string\mc at col@status
+              {\ifmc at firstcol 1\else 2\fi}}%
+         \mc at firstcolfalse}%
+  \def\mc at lastcol@status at write{%
+         \protected at write\@auxout{}%
+              {\string\mc at col@status{3}}}%
+}
+\let\mc at col@status at write\relax
+\let\mc at lastcol@status at write\relax
+\ProcessOptions
+\def\multicols#1{\col at number#1\relax
+  \ifnum\col at number<\tw@
+     \PackageWarning{multicol}%
+      {Using `\number\col at number'
+       columns doesn't seem a good idea.^^J
+       I therefore use two columns instead}%
+     \col at number\tw@ \fi
+  \ifnum\col at number>20
+     \PackageError{multicol}%
+      {Too many columns}%
+      {Current implementation doesn't
+       support more than 20 columns.%
+       \MessageBreak
+       I therefore use 20 columns instead}%
+     \col at number20 \fi
+     \ifx\@footnotetext\mult at footnotetext\else
+       \let\orig at footnotetext\@footnotetext
+       \let\@footnotetext\mult at footnotetext
+     \fi
+  \@ifnextchar[\mult at cols{\mult at cols[]}}
+\long\def\mult at footnotetext#1{\begingroup
+         \columnwidth\textwidth
+         \orig at footnotetext{#1}\endgroup}
+\def\mult at cols[#1]{\@ifnextchar[%
+  {\mult@@cols{#1}}%
+  {\mult@@cols{#1}[\premulticols]}}
+\def\mult@@cols#1[#2]{%
+  \par
+  \ifinner \@boxedmulticolstrue
+  \else
+    \ifnum \doublecol at number>\z@
+       \@boxedmulticolstrue
+    \fi
+  \fi
+  \mult at info\z@
+      {Starting environment with
+       \the\col at number\space columns%
+        \if at boxedmulticols\MessageBreak
+           (boxed mode)\fi
+      }%
+   \enough at room{#2}%
+   #1\par\addvspace\multicolsep
+   \ifdim \prevdepth = -\@m\p@
+   \else
+     \@tempcnta\prevdepth
+     \@tempcntb\baselineskip
+     \divide\@tempcnta\@tempcntb
+     \advance\@tempcnta\@ne
+     \dimen@\prevdepth
+     \advance\dimen@ -\@tempcnta\baselineskip
+     \advance\dimen@ \topskip
+     \kern-\dimen@
+   \fi
+   \begingroup
+     \prepare at multicols
+     \if at boxedmulticols
+       \setbox\mult at box\vbox\bgroup
+                            \color at setgroup
+     \fi
+     \ignorespaces}
+\newif\if at boxedmulticols
+\@boxedmulticolsfalse
+\newbox\mult at box
+\def\enough at room#1{%
+   \if at boxedmulticols\else
+   \par
+   \bgroup\@nobreakfalse\addpenalty\z@\egroup
+   \page at free \pagegoal
+   \advance \page at free -\pagetotal
+     \@tempskipa#1\relax
+   \mult at info\z@
+       {Current page:\MessageBreak
+        height=%
+        \the\pagegoal: used \the\pagetotal
+        \space -> free=\the\page at free
+        \MessageBreak
+        needed \the\@tempskipa
+              \space(for #1)}%
+   \ifdim \page at free <#1\newpage \fi
+  \fi}
+\def\prepare at multicols{%
+  \multicol at leftmargin\@totalleftmargin
+  \@totalleftmargin\z@
+  \parshape\z@
+  \doublecol at number\col at number
+  \multiply\doublecol at number\tw@
+  \advance\doublecol at number\mult at rightbox
+  \if at boxedmulticols
+    \let\l at kept@firstmark\kept at firstmark
+    \let\l at kept@botmark\kept at botmark
+    \global\let\kept at firstmark\@empty
+    \global\let\kept at botmark\@empty
+  \else
+    \nointerlineskip {\topskip\z@\null}%
+    \output{%
+      \global\setbox\partial at page\vbox
+        {%
+         \ifvoid\partial at page\else
+           \PackageError{multicol}%
+            {Error saving partial page}%
+            {The part of the page before
+             the multicols environment was
+             nearly full with^^Jthe result
+             that starting the environment
+             will produce an overfull
+             page.  Some^^Jtext may be lost!
+             Please increase \premulticols
+             either generally or for this%
+             ^^Jenvironment by specifying a
+             suitable value in the second
+             optional argument to^^Jthe
+             multicols environment.}
+           \unvbox\partial at page
+           \box\last at line
+         \fi
+         \unvbox\@cclv
+         \global\setbox\last at line\lastbox
+        }%
+           \prep at keptmarks
+           \global\let\kept at topmark\firstmark
+          }\eject
+    \advance\@colroom-\ht\partial at page
+    \set at mult@vsize\relax
+    \output{\multi at column@out}%
+    \init at mult@footins
+    \reinsert at footnotes
+   \def\clearpage{%
+     \ifx\@deferlist\@empty\else
+       \PackageError{multicol}%
+          {Deferred floats not cleared}%
+          {A \string\clearpage\space inside multicols acts like
+           \string\newpage\space and doesn't clear floats.\MessageBreak
+           Move it before the multicols environment if you need it.}%
+     \fi
+    \newpage}%
+  \fi
+  \vbadness\@Mi \hbadness5000
+  \tolerance\multicoltolerance
+  \pretolerance\multicolpretolerance
+  \setemergencystretch\col at number\hsize
+  \set at floatcmds
+  \advance\baselineskip\multicolbaselineskip
+  \hsize\linewidth \advance\hsize\columnsep
+  \advance\hsize-\col at number\columnsep
+  \divide\hsize\col at number
+  \full at width\linewidth
+  \linewidth\hsize
+  \columnwidth\hsize
+}
+\def\init at mult@footins{%
+    \multiply\count\footins\col at number
+    \multiply\skip \footins\col at number
+}
+\def\set at mult@vsize#1{%
+    \vsize\@colroom
+    \@tempdima\baselineskip
+    \advance\@tempdima-\topskip
+    \advance\vsize\@tempdima
+    \vsize\col at number\vsize
+    \advance\vsize-\@tempdima
+    \advance\vsize\col at number\baselineskip
+    #1\advance\vsize
+        \c at collectmore\baselineskip}
+\newdimen\multicol at leftmargin
+\mathchardef\@Mvi=10006  % 10005 is \columnbreak
+\def\endmulticols{\par
+  \if at boxedmulticols
+    \remove at discardable@items\color at endgroup\egroup
+    \balance at columns
+    \return at nonemptymark{first}%
+                 \kept at firstmark
+    \return at nonemptymark{bot}%
+                  \kept at botmark
+    \page at sofar
+    \global\let\kept at firstmark
+               \l at kept@firstmark
+    \global\let\kept at botmark
+            \l at kept@botmark
+    \mult at info\tw@
+      {Restore kept marks to\MessageBreak
+       first: \meaning\kept at firstmark
+       \MessageBreak bot\space\space:
+                     \meaning\kept at botmark }%
+  \else
+    \ifdim\pagegoal=\maxdimen
+      \ifvoid\colbreak at box\else
+        \mult at info\@ne{Re-adding forced
+                 break(s) for splitting}%
+        \unvbox\colbreak at box\fi
+    \fi
+    \penalty\z@
+    \penalty-\@Mvi
+    \ifvbox\partial at page
+         \unvbox\partial at page\fi
+     \global\let\kept at firstmark\@empty
+     \global\let\kept at botmark\@empty
+     \mult at info\tw@
+       {Make kept marks empty}%
+  \fi
+  \@checkend{multicols}%
+  \endgroup
+  \global\c at unbalance\z@
+  \if at boxedmulticols
+    \mc at col@status at write
+  \else
+    \reinsert at footnotes
+    \ifdim \pagegoal=\maxdimen
+      \global\vsize\@colroom
+    \else
+      \enough at room\postmulticols
+    \fi
+  \fi
+  \addvspace\multicolsep
+ \prevdepth\z@
+  \mult at info\z@
+     {Ending environment
+             \if at boxedmulticols
+                \space(boxed mode)\fi
+              }}
+\newcount\c at unbalance
+\newcount\c at collectmore
+\newcount\doublecol at number
+\newcount\multicoltolerance
+\newcount\multicolpretolerance
+\newdimen\full at width
+\newdimen\page at free
+\newdimen\premulticols
+\newdimen\postmulticols
+\newskip\multicolsep
+\newskip\multicolbaselineskip
+\newbox\partial at page
+\newbox\last at line
+\c at unbalance   = 0
+\c at collectmore = 0
+\multicoltolerance = 9999
+\multicolpretolerance = -1
+\premulticols = 50pt
+\postmulticols= 20pt
+\multicolsep = 12pt plus 4pt minus 3pt
+\multicolbaselineskip=0pt
+\def\process at cols#1#2{\count@#1\relax
+     \loop
+      #2%
+     \advance\count@\tw@
+     \ifnum\count@<\doublecol at number
+   \repeat}
+\def\page at sofar{%
+   \process at cols\mult at rightbox
+       {\ifvoid\count@
+          \setbox\count@\hbox to\hsize{}%
+        \else
+          \wd\count@\hsize
+        \fi}%
+   \count@\col at number \advance\count@\m at ne
+   \mult at info\z@
+    {Column spec: \the\full at width\space = indent
+                  + columns + sep =\MessageBreak
+        \the\multicol at leftmargin\space
+        + \the\col at number\space
+        x \the\hsize\space
+        + \the\count@\space
+        x \the\columnsep
+     }%
+\ifvmode\else\errmessage{Multicol Error}\fi
+   \nointerlineskip
+   \setbox\z@\hbox{p}\global\dimen\tw@\dp\z@
+   \moveright\multicol at leftmargin
+    \hbox to\full at width{%
+       \mc at align@columns
+       \rlap{\phantom p}%
+    }%
+   \prevdepth\z@
+ \kern-\dimen\tw@
+ \ifdim\dimen\tw@ > \mc at gridwarn
+   \PackageWarning{multicol}%
+     {Very deep columns!\MessageBreak
+      Grid alignment might be broken}%
+ \fi
+}
+\def\columnseprulecolor{\normalcolor}
+\def\reinsert at footnotes{\ifvoid\footins\else
+         \insert\footins{}\fi}
+\def\vfilmaxdepth{\vskip \z@ \@plus .0001fil
+                           \@minus \@maxdepth}
+\def\multi at column@out{%
+   \ifnum\outputpenalty <-\@M
+    \speci at ls \else
+    \ifvoid\colbreak at box\else
+      \mult at info\@ne{Re-adding forced
+                break(s) for splitting}%
+      \setbox\@cclv\vbox{%
+       \unvbox\colbreak at box
+       \penalty-\@Mv
+       \unvbox\@cclv}%
+    \fi
+   \splittopskip\topskip
+   \splitmaxdepth\@maxdepth
+   \boxmaxdepth\@maxdepth
+   \dimen@\@colroom
+   \divide\skip\footins\col at number
+   \ifvoid\footins \else
+      \leave at mult@footins
+   \fi
+
+   \ifvbox \@kludgeins
+     \advance \dimen@ -\ht\@kludgeins
+     \ifdim \wd\@kludgeins>\z@
+        \shr at nkingtrue
+     \fi
+   \fi
+   \process at cols\mult at gfirstbox{%
+        \setbox\count@
+            \vsplit\@cclv to\dimen@
+            \set at keptmarks
+            \setbox\count@
+                 \vbox to\dimen@
+                  {\unvbox\count@
+                   \ifshr at nking\vfilmaxdepth\fi}%
+           }%
+   \setbox\mult at rightbox
+       \vsplit\@cclv to\dimen@
+   \set at keptmarks
+   \setbox\mult at rightbox\vbox to\dimen@
+          {\unvbox\mult at rightbox
+           \ifshr at nking\vfilmaxdepth\fi}%
+   \ifvoid\@cclv \else
+       \unvbox\@cclv
+       \ifnum\outputpenalty=\@M
+       \else
+          \penalty\outputpenalty
+       \fi
+       \ifvoid\footins\else
+         \PackageWarning{multicol}%
+          {I moved some lines to
+           the next page.\MessageBreak
+           Footnotes on page
+           \thepage\space might be wrong}%
+       \fi
+       \ifnum \c at tracingmulticols>\thr@@
+                    \hrule\allowbreak \fi
+   \fi
+   \ifx\@empty\kept at firstmark
+      \let\firstmark\kept at topmark
+      \let\botmark\kept at topmark
+   \else
+      \let\firstmark\kept at firstmark
+      \let\botmark\kept at botmark
+   \fi
+   \let\topmark\kept at topmark
+   \mult at info\tw@
+        {Use kept top mark:\MessageBreak
+          \meaning\kept at topmark
+         \MessageBreak
+         Use kept first mark:\MessageBreak
+          \meaning\kept at firstmark
+        \MessageBreak
+         Use kept bot mark:\MessageBreak
+          \meaning\kept at botmark
+        \MessageBreak
+         Produce first mark:\MessageBreak
+          \meaning\firstmark
+        \MessageBreak
+        Produce bot mark:\MessageBreak
+          \meaning\botmark
+         \@gobbletwo}%
+   \boxmaxdepth\maxdimen
+   \setbox\@cclv\vbox{\unvbox\partial at page
+                      \page at sofar}%
+   \@makecol\@outputpage
+     \global\let\kept at topmark\botmark
+     \global\let\kept at firstmark\@empty
+     \global\let\kept at botmark\@empty
+     \mult at info\tw@
+        {(Re)Init top mark:\MessageBreak
+         \meaning\kept at topmark
+         \@gobbletwo}%
+   \global\@colroom\@colht
+   \global \@mparbottom \z@
+   \global \@textfloatsheight \z@
+   \process at deferreds
+   \@whilesw\if at fcolmade\fi{\@outputpage
+      \global\@colroom\@colht
+      \process at deferreds}%
+   \mult at info\@ne
+     {Colroom:\MessageBreak
+      \the\@colht\space
+              after float space removed
+              = \the\@colroom \@gobble}%
+    \set at mult@vsize \global
+  \fi}
+\def\leave at mult@footins{%
+   \advance\dimen at -\skip\footins
+   \advance\dimen at -\ht\footins
+}
+\def\speci at ls{%
+ \ifnum\outputpenalty <-\@Mi
+  \ifnum \outputpenalty<-\@MM
+   \PackageError{multicol}{Document end
+           inside multicols environment}\@ehd
+   \@specialoutput
+  \else
+     \ifnum\outputpenalty = -\@Mv
+         \mult at info\@ne{Forced column
+                        break seen}%
+         \global\advance\vsize-\pagetotal
+         \global\setbox\colbreak at box
+           \vbox{%
+              \ifvoid\colbreak at box
+              \else
+                \unvbox\colbreak at box
+                \penalty-\@Mv
+              \fi
+              \boxmaxdepth\@maxdepth
+              \setbox\@cclv\vbox{%
+                 \unvbox\@cclv
+                 \remove at discardable@items}%
+              \dimen@\dp\@cclv
+              \unvbox\@cclv
+              \kern-\dimen@
+         }%
+         \reinsert at footnotes
+     \else
+       \ifnum\outputpenalty = -\@Mvi
+         \mult at info\@ne{End penalty of multicols seen}%
+         \outputpenalty\@M   % pretend we had a natural forced break
+         \balance at columns@out
+       \else
+        \PackageWarningNoLine{multicol}%
+           {Floats and marginpars not
+            allowed inside `multicols'
+            environment!}%
+        \unvbox\@cclv\reinsert at footnotes
+        \xdef\@freelist{\@freelist\@currlist}%
+        \gdef\@currlist{}%
+      \fi
+    \fi
+  \fi
+ \else \@doclearpage \fi
+}
+\def\process at deferreds{%
+   \@floatplacement
+   \@tryfcolumn\@deferlist
+   \if at fcolmade\else
+     \begingroup
+    \let\@tempb\@deferlist
+      \gdef\@deferlist{}%
+      \let\@elt\@scolelt
+        \@tempb \endgroup
+   \fi}
+\newif\ifshr at nking
+\def\raggedcolumns{%
+   \@bsphack\shr at nkingtrue\@esphack}
+\def\flushcolumns{%
+   \@bsphack\shr at nkingfalse\@esphack}
+\def\balance at columns@out{%
+   \setbox\mult at box\vbox{%
+       \ifvoid\colbreak at box\else
+         \unvbox\colbreak at box
+         \penalty-\@Mv
+         \mult at info\@ne{Re-adding
+           forced break(s) in balancing}%
+       \fi
+       \unvbox\@cclv
+       \remove at discardable@items
+   }%
+   \balance at columns
+   \iftoo at bad
+     \mult at info\@ne
+        {Balancing failed ...
+         cut a normal page}%
+     \setbox\@cclv\vbox
+         {\vskip\topskip
+          \vskip-\splittopskip
+          \unvbox\mult at box
+          \penalty-\@Mvi
+         }%
+     \multi at column@out
+   \else
+     \global\vsize\@colroom
+     \global\advance\vsize\ht\partial at page
+     \ifvbox\@kludgeins\insert\@kludgeins
+                        {\unvbox\@kludgeins}\fi
+     \unvbox\partial at page
+     \return at nonemptymark{first}\kept at firstmark
+     \return at nonemptymark{bot}\kept at botmark
+     \page at sofar
+     \penalty\z@
+  \fi
+}
+\def\balance at columns{%
+   \get at keptmarks\mult at box
+   \setbox\mult at box\vbox{%
+        \penalty-\@M
+        \unvbox\mult at box
+        }%
+   \@tempdima\topskip
+   \splittopskip\@tempdima
+       \@plus\multicolundershoot
+       \@minus\multicolovershoot
+   \splitmaxdepth\@maxdepth
+   \boxmaxdepth\@maxdepth
+   \setbox\@tempboxa\vsplit\mult at box to\z@
+   \@tempdima\ht\mult at box
+   \advance\@tempdima\dp\mult at box
+   \divide\@tempdima\col at number
+   \count@\@tempdima
+   \divide\count@\baselineskip
+   \dimen@\count@\baselineskip
+   \advance\dimen@\topskip
+   \ifdim \dimen@ >\@tempdima
+     \advance\dimen at -\baselineskip
+   \fi
+   \@tempdima\dimexpr
+       \topskip +\c at minrows\baselineskip-\baselineskip\relax
+   \ifnum\dimen@<\@tempdima
+     \mult at info\@ne
+       {Start value
+          \the\dimen@  \space ->
+          \the\@tempdima \space (corrected for minrows)}%
+     \dimen@\@tempdima
+   \fi
+   \advance\dimen@\c at unbalance\baselineskip
+   \mult at info\@ne
+      {Balance columns\on at line:
+        \ifnum\c at unbalance=\z@\else
+       (off balance=\number\c at unbalance)\fi
+      \@gobbletwo}%
+   \ifnum\dimen@<\topskip
+     \mult at info\@ne
+       {Start value
+          \the\dimen@  \space ->
+          \the\topskip \space (corrected)}%
+     \dimen@\topskip
+   \fi
+   \vbadness\@M
+   \vfuzz \maxdimen
+   \last at try-\p@
+   \loop
+    {\process at cols\mult at grightbox
+           {\global\setbox\count@
+                   \box\voidb at x}}%
+    \global\setbox\mult at grightbox
+           \copy\mult at box
+   \too at badfalse
+   \forcedbreak at leftoverfalse
+   {\process at cols\mult at firstbox{%
+         \global\setbox\count@
+         \vsplit\mult at grightbox to\dimen@
+         \global\setbox\count@
+                 \vbox to\dimen@
+                  {\unvbox\count@}%
+         \ifnum\c at tracingmulticols>\@ne
+           \@tempcnta\count@
+           \advance\@tempcnta-\mult at grightbox
+           \divide\@tempcnta \tw@
+           \message{^^JColumn
+              \number\@tempcnta\space
+               badness: \the\badness\space}%
+         \fi
+         \ifnum\badness>\c at columnbadness
+           \ifnum\c at tracingmulticols>\@ne
+             \message{too bad
+                  (>\the\c at columnbadness)}%
+           \fi
+           \too at badtrue
+         \fi
+                        }}%
+   \global\setbox\mult at grightbox
+      \vbox{\unvbox\mult at grightbox}%
+   \setbox\mult at nat@firstbox
+      \vbox{\unvcopy\mult at firstbox}%
+    \ifnum\c at tracingmulticols>\@ne
+       \message{^^JFirst column
+           = \the\dimen@\space
+           (\the\ht\mult at nat@firstbox)}\fi
+    \ifnum\c at tracingmulticols>\@ne
+      \message{<> last column =
+               \the\ht\mult at grightbox^^J}%
+     \fi
+    \ifdim\ht\mult at grightbox >\dimen@
+      \too at badtrue
+      \ifnum\c at tracingmulticols>\@ne
+         \typeout{Rejected: last
+                 column too large!}%
+      \fi
+    \else
+      \setbox\@tempboxa
+           \copy\mult at grightbox
+      \setbox\z@\vsplit\@tempboxa to\maxdimen
+      \ifvoid\@tempboxa
+        \global\setbox\mult at grightbox
+           \vbox to\dimen@
+              {\unvbox\mult at grightbox}%
+        \ifnum\c at tracingmulticols>\@ne
+          \message{Final badness:
+                   \the\badness}%
+        \fi
+        \ifnum\badness>\c at finalcolumnbadness
+          \global\setbox\mult at grightbox
+           \vbox to\dimen@
+              {\unvbox\mult at grightbox\vfil}%
+           \ifnum\c at tracingmulticols>\@ne
+             \message{ setting natural
+              (> \the\c at finalcolumnbadness)}%
+           \fi
+        \fi
+      \else
+       \@tempdima\@colroom
+       \advance\@tempdima \maxbalancingoverflow
+       \ifdim \dimen@ < \@tempdima
+        \too at badtrue
+         \ifnum\c at tracingmulticols>\@ne
+           \typeout{Rejected: unprocessed
+             forced break(s) in last column!}%
+         \fi
+       \else
+         \forcedbreak at leftovertrue
+         \ifnum\c at tracingmulticols>\@ne
+          \typeout{Failed: columns too large
+            with unprocessed forced break(s)!}%
+         \fi
+       \fi
+      \fi
+    \fi
+    \ifdim\ht\mult at nat@firstbox<\dimen@
+      \ifdim\ht\mult at nat@firstbox>\last at try
+        \too at badtrue
+        \ifnum\c at tracingmulticols>\@ne
+           \typeout{Retry: using natural
+                    height of first column!}%
+        \fi
+        \dimen@\ht\mult at nat@firstbox
+        \last at try\dimen@
+        \advance\dimen at -\p@
+      \fi
+    \fi
+    \iftoo at bad
+      \advance\dimen@\p@
+    \repeat
+    \ifforcedbreak at leftover
+       \too at badtrue
+    \else
+     \if at boxedmulticols\else
+       \ifdim\dimen@>\@colroom
+         \dimen@\@colroom
+       \fi
+     \fi
+     \process at cols\mult at rightbox
+         {\@tempcnta\count@
+          \advance\@tempcnta\@ne
+          \vfuzz\z@
+          \setbox\count@\vbox to\dimen@
+             {%
+              \vskip \z@
+                \@plus-\multicolundershoot
+                \@minus-\multicolovershoot
+              \unvbox\@tempcnta
+              \ifshr at nking\vfilmaxdepth\fi
+             }%
+          \ifnum\badness>\@M
+            \vfuzz\maxdimen % no overfull warning
+            \setbox\@tempboxa \vbox to\dimen@
+                 {\vskip-\maxbalancingoverflow
+                  \unvcopy\count@}%
+            \ifnum\badness>\@M
+              \mult at info\@ne
+                {Balanced column more than
+                  \the\maxbalancingoverflow\space
+                  too large}%
+              \too at badtrue
+            \else
+              \mult at info\@ne
+                {Balanced column
+                 too large, but less than
+                 \the\maxbalancingoverflow}%
+            \fi
+          \fi
+         }%
+   \fi
+}
+\newdimen\maxbalancingoverflow
+\maxbalancingoverflow=12pt
+
+\ifnum\numexpr \count20-\count14-1<41   % = 2 * 20 + 1
+  \count14=\@cclv
+\fi
+\newbox\mult at rightbox
+\newbox\mult at grightbox
+\newbox\mult at gfirstbox
+\newbox\mult at firstbox
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa\newbox\@tempa
+\newbox\@tempa
+\let\@tempa\relax
+\@ifundefined{emergencystretch}
+     {\newdimen\emergencystretch}{}
+\def\setemergencystretch#1#2{%
+   \emergencystretch 4pt
+   \multiply\emergencystretch#1}
+
+\def\set at floatcmds{%
+ \let\@dblfloat\@dbflt
+ \def\end at dblfloat{\@endfloatbox
+   \@largefloatcheck
+   \outer at nobreak
+   \ifnum\@floatpenalty<\z@
+     \@cons\@deferlist\@currbox
+   \fi
+   \ifnum\@floatpenalty=-\@Mii
+     \@Esphack
+   \fi}}
+\def\kept at topmark{{}{}}
+\let\kept at firstmark\@empty
+\let\kept at botmark\@empty
+\def\return at nonemptymark#1#2{%
+  \ifx#2\@empty
+  \else
+    \mult at info\tw@
+      {Returned #1 mark:\MessageBreak
+       \meaning#2}%
+    \toks@\expandafter{#2}%
+    \mark{\the\toks@}%
+    \nobreak
+  \fi}
+\def\get at keptmarks#1{%
+  \begingroup
+   \vbadness\@M
+   \setbox#1\copy#1%
+   \setbox#1\vsplit#1to\maxdimen
+   \set at keptmarks
+ \endgroup
+}
+\def\set at keptmarks{%
+   \ifx\kept at firstmark\@empty
+     \expandafter\gdef\expandafter
+        \kept at firstmark
+        \expandafter{\splitfirstmark}%
+     \ifx\kept at firstmark\@empty\else
+       \mult at info\tw@
+         {Set kept first mark:\MessageBreak
+          \meaning\kept at firstmark%
+          \@gobbletwo}%
+     \fi
+   \fi
+   \expandafter\def\expandafter\@tempa
+      \expandafter{\splitbotmark}%
+   \ifx\@tempa\@empty\else
+      \global\let\kept at botmark\@tempa
+      \mult at info\tw@
+        {Set kept bot mark:\MessageBreak
+         \meaning\kept at botmark%
+         \@gobbletwo}%
+   \fi}%
+\def\prep at keptmarks{%
+   \if at boxedmulticols \else
+     \get at keptmarks\partial at page
+   \fi}
+\skip0=0pt
+\edef\the at zero@skip{\the\skip0}
+\def\remove at discardable@items{%
+     \unpenalty
+     \edef\@tempa{\the\lastskip}%
+     \unskip
+     \ifx\@tempa\the at zero@skip
+       \edef\@tempb{\the\lastskip}%
+       \ifx\@tempb\the at zero@skip
+       \else
+         \unskip
+         \ifnum \lastpenalty=\@M
+           \vskip\@tempb\vskip\@tempa\relax
+         \else
+           \remove at discardable@items
+         \fi
+       \fi
+     \else
+       \remove at discardable@items
+     \fi
+}
+\newif\iftoo at bad
+\def\too at badtrue{\global\let\iftoo at bad\iftrue}
+\def\too at badfalse{\global\let\iftoo at bad\iffalse}
+\newif\ifforcedbreak at leftover
+\newcount\c at minrows
+\c at minrows=1
+\newcount\c at columnbadness
+\c at columnbadness=10000
+\newcount\c at finalcolumnbadness
+\c at finalcolumnbadness=9999
+
+\newdimen\last at try
+
+\newdimen\multicolovershoot
+\newdimen\multicolundershoot
+\multicolovershoot=0pt
+\multicolundershoot=2pt
+\newbox\mult at nat@firstbox
+\def\mult at info#1#2{%
+  \ifnum\c at tracingmulticols>#1%
+   \GenericWarning
+       {(multicol)\@spaces\@spaces}%
+       {Package multicol: #2}%
+  \fi
+}
+ \@namedef{multicols*}{%
+   \ifinner
+     \PackageWarning{multicol}%
+       {multicols* inside a box does
+        not make sense.\MessageBreak
+        Going to balance anyway}%
+   \else
+     \def\balance at columns@out
+         {\multi at column@out \penalty-\@Mvi }%
+   \fi
+   \begin{multicols}
+}
+\@namedef{endmulticols*}{%
+   \par
+   \ifdim\lastskip>\z@ \vskip-\lastskip \fi
+   \ifdim \prevdepth>\z@
+     \vskip-\ifdim\prevdepth>\boxmaxdepth
+                  \boxmaxdepth
+            \else \prevdepth \fi
+   \fi
+   \ifshr at nking\else
+     \vfil
+   \fi
+   \end{multicols}}
+\mathchardef\@Mv=10005
+\def\columnbreak{%
+ \ifnum\col at number<\tw@
+  \PackageError{multicol}%
+   {\noexpand\columnbreak outside multicols}%
+   {This command can only be used within
+    a multicols or multicols* environment.}%
+ \else
+  \ifvmode
+    \penalty -\@Mv\relax
+  \else
+    \@bsphack
+    \vadjust{\penalty -\@Mv\relax}%
+    \@esphack
+  \fi
+ \fi}
+\newbox\colbreak at box
+\def\LR at column@boxes{%
+     \process at cols\mult at gfirstbox{%
+       \ifdim\dp\count@>\dimen\tw@
+         \global\dimen\tw@\dp\count@ \fi
+       \mc at col@status at write
+       \box\count@
+       \hss{\columnseprulecolor\vrule
+              \@width\columnseprule}\hss}%
+     \ifdim\dp\mult at rightbox>\dimen\tw@
+       \global\dimen\tw@\dp\mult at rightbox \fi
+     \mc at lastcol@status at write
+     \box\mult at rightbox
+}
+
+\def\RL at column@boxes{%
+     \process at cols\mult at gfirstbox{%
+       \hskip\hsize
+       \hss{\columnseprulecolor\vrule
+              \@width\columnseprule}\hss
+     }%
+     \hskip\hsize
+     \process at cols\mult at gfirstbox{%
+       \ifdim\dp\count@>\dimen\tw@
+         \global\dimen\tw@\dp\count@ \fi
+       \hskip-\hsize
+       \mc at col@status at write
+       \box\count@
+       \hskip-\hsize
+       \hskip-\columnsep
+     }%
+     \ifdim\dp\mult at rightbox>\dimen\tw@
+       \global\dimen\tw@\dp\mult at rightbox \fi
+     \hskip-\hsize
+     \mc at lastcol@status at write
+     \box\mult at rightbox
+     \hskip-\hsize
+     \hskip\full at width
+ }
+\newcommand\RLmulticolcolumns
+    {\let\mc at align@columns
+         \RL at column@boxes}
+\newcommand\LRmulticolcolumns
+    {\let\mc at align@columns
+      \LR at column@boxes}
+\LRmulticolcolumns
+\newcount\mc at col@check at num
+
+\newcommand\docolaction{%
+ \ifx\mc at col@status at write\relax
+     \PackageError{multicol}%
+      {Option 'colaction' not selected}%
+      {\string\docolaction\space
+       requires the use of the 'colaction'
+       option on the package}%
+ \fi
+ \global\advance\mc at col@check at num\@ne
+ \edef\mc at col@type{\expandafter\ifx
+   \csname mc at col-\the\mc at col@check at num
+   \endcsname\relax
+                   0\else
+   \csname mc at col-\the\mc at col@check at num
+   \endcsname
+   \fi}%
+ \@ifstar
+   {\@docolactionstartrue \@docolaction}%
+   {\@docolactionstarfalse\@docolaction}%
+}
+\newcommand\@docolaction[4][1]{%
+ \edef\@docolactioncheck{\write\@auxout
+   {\string\mc at set@col at status
+     {mc at col-\the\mc at col@check at num}%
+     {\mc at col@type}}}%
+ \if at docolactionstar \@docolactioncheck \fi
+ \ifcase \mc at col@type\relax
+     \ifcase #1\or #2\or#3\or#4\fi
+  \or
+     #2%  % 1 First col
+  \or
+     #3%  % 2 any middle col
+  \or
+     #4%  % 3 last col
+  \else
+    \ERRORwrongdefaultgiven
+  \fi
+ \if at docolactionstar \else \@docolactioncheck \fi
+}
+\newif\if at docolactionstar
+\def\mc at col@status#1{%
+    \gdef\mc at curr@col at status{#1}}
+\def\mc at set@col at status#1#2{%
+  \global\expandafter\let\csname #1\endcsname
+                         \mc at curr@col at status}
+\AtEndDocument{\def\mc at set@col at status#1#2{%
+     \ifnum #2=\mc at curr@col at status\else
+       \@tempswatrue
+     \fi}%
+}
+\newif\ifmc at firstcol
+\mc at firstcoltrue
+\endinput
+%%
+%% End of file `multicol.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex-dev/tools/multicol-2019-10-01.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/multicol.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/multicol.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/multicol.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -12,7 +12,7 @@
 %% reports for it can be opened at https://latex-project.org/bugs/
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -104,10 +104,11 @@
 \providecommand\DeclareCurrentRelease[2]{}
 
 \DeclareRelease{}{2017-04-11}{multicol-2017-04-11.sty}
-\DeclareCurrentRelease{}{2018-04-01}
+\DeclareRelease{v1.8}{2019-10-01}{multicol-2019-10-01.sty}
+\DeclareCurrentRelease{}{2021-11-15}
 
 \ProvidesPackage{multicol}
-          [2021/10/28 v1.9b  multicolumn formatting (FMi)]
+          [2021/11/30 v1.9d  multicolumn formatting (FMi)]
 %%
 \DeclareOption{twocolumn}
    {\PackageWarning{multicol}{May not work
@@ -1023,7 +1024,7 @@
      a multicols or multicols* environment.}%
   \else
     \ifvmode
-     \nobreak\vfill\penalty -\@Mv\relax
+     \nobreak\vfill\kern\z@\penalty -\@Mv\relax
    \else
      \@bsphack
      \vadjust{\nobreak\vfill\kern\z@\penalty -\@Mv\relax}%

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/q.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/q.tex	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/q.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/r.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/r.tex	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/r.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/rawfonts.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/rawfonts.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/rawfonts.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/s.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/s.tex	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/s.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/shellesc.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/shellesc.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/shellesc.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -36,7 +36,7 @@
 %% given in the file `manifest.txt'.
 %% 
 %% Source File: shellesc.dtx
-%% Copyright (C) 2015-2021
+%% Copyright (C) 2015-2022
 %%
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/showkeys.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/showkeys.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/showkeys.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/somedefs.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/somedefs.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/somedefs.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/tabularx.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/tabularx.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/tabularx.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -12,7 +12,7 @@
 %% reports for it can be opened at https://latex-project.org/bugs/
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/thb.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/thb.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/thb.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/thc.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/thc.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/thc.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/thcb.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/thcb.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/thcb.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/theorem.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/theorem.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/theorem.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/thm.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/thm.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/thm.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/thmb.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/thmb.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/thmb.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/thp.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/thp.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/thp.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/trace.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/trace.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/trace.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/varioref.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/varioref.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/varioref.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -12,7 +12,7 @@
 %% reports for it can be opened at https://latex-project.org/bugs/
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 
@@ -52,7 +52,7 @@
 \DeclareCurrentRelease{}{2019-10-01}
 
 \ProvidesPackage{varioref}
-    [2021/07/07 v1.6f package for extended references (FMi)]
+    [2022/01/09 v1.6f package for extended references (FMi)]
 %%
 
 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/verbatim.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/verbatim.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/verbatim.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/verbtest.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/verbtest.tex	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/verbtest.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/x.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/x.tex	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/x.tex	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/xr.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/xr.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/xr.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 

Modified: trunk/Master/texmf-dist/tex/latex-dev/tools/xspace.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/tools/xspace.sty	2022-01-13 20:58:44 UTC (rev 61597)
+++ trunk/Master/texmf-dist/tex/latex-dev/tools/xspace.sty	2022-01-13 21:03:32 UTC (rev 61598)
@@ -13,7 +13,7 @@
 %% (but please observe conditions on bug reports sent to that address!)
 %% 
 %% 
-%% Copyright (C) 1993-2021
+%% Copyright (C) 1993-2022
 %% The LaTeX Project and any individual authors listed elsewhere
 %% in this file.
 %% 



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