summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-03-15 20:08:23 +0000
committerKarl Berry <karl@freefriends.org>2022-03-15 20:08:23 +0000
commit269db182a3b5d6df307e49e15092cbd1dd26d898 (patch)
tree3291c66dc473e571ccd897b781c5c39f776ba720
parent664dc1f78cafa6dae96ff3bad0b0c4a5906dc9c2 (diff)
latex-dev (15mar22)
git-svn-id: svn://tug.org/texlive/trunk@62725 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Build/source/texk/texlive/linked_scripts/l3build/l3build.lua4
-rw-r--r--Master/texmf-dist/doc/latex-dev/amsmath/README.md2
-rw-r--r--Master/texmf-dist/doc/latex-dev/amsmath/amsbsy.pdfbin174944 -> 174944 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/amsmath/amscd.pdfbin179945 -> 179945 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/amsmath/amsgen.pdfbin178187 -> 178187 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/amsmath/amsldoc.pdfbin508210 -> 508210 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/amsmath/amsmath.pdfbin418923 -> 419243 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/amsmath/amsopn.pdfbin139709 -> 139917 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/amsmath/amstext.pdfbin217498 -> 217498 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/amsmath/amsxtra.pdfbin113561 -> 113561 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/amsmath/changes.txt12
-rw-r--r--Master/texmf-dist/doc/latex-dev/amsmath/subeqn.pdfbin109731 -> 109731 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/amsmath/technote.pdfbin147462 -> 147462 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/amsmath/testmath.pdfbin454511 -> 454511 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/README.md4
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/alltt.pdfbin223819 -> 223819 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/cfgguide.pdfbin242888 -> 242888 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/changes.txt69
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/classes.pdfbin560350 -> 560350 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/clsguide.pdfbin402780 -> 402780 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/cmfonts.pdfbin292376 -> 292376 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/cyrguide.pdfbin239689 -> 239689 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/doc-code.pdfbin1074045 -> 1073837 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/doc.pdfbin747885 -> 747709 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/docstrip.pdfbin503616 -> 503815 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/encguide.pdfbin1316459 -> 1316459 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/exscale.pdfbin204711 -> 204711 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/fix-cm.pdfbin287733 -> 287733 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/fntguide.pdfbin502880 -> 502880 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/graphpap.pdfbin161713 -> 161713 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ifthen.pdfbin220565 -> 220565 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/inputenc.pdfbin318204 -> 318204 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/lamport-manual.pdfbin170878 -> 170878 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/latexrelease.pdfbin281895 -> 281906 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/latexsym.pdfbin200760 -> 200760 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/lb2.pdfbin252140 -> 252140 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/letter.pdfbin337629 -> 337448 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/lgc2.pdfbin215684 -> 215684 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/lppl.pdfbin132382 -> 132382 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltcmdhooks-code.pdfbin719840 -> 719912 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltcmdhooks-doc.pdfbin478680 -> 478752 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltfilehook-code.pdfbin796171 -> 799522 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltfilehook-doc.pdfbin546618 -> 546499 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/lthooks-code.pdfbin1090969 -> 1090905 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/lthooks-doc.pdfbin702594 -> 702540 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltluatex.pdfbin317700 -> 317700 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews.pdfbin1163142 -> 1169020 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews01.pdfbin161518 -> 161518 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews02.pdfbin159792 -> 159792 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews03.pdfbin159332 -> 159332 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews04.pdfbin152525 -> 152525 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews05.pdfbin174494 -> 174494 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews06.pdfbin142849 -> 142849 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews07.pdfbin137811 -> 137811 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews08.pdfbin155053 -> 155053 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews09.pdfbin129570 -> 129570 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews10.pdfbin169416 -> 169416 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews11.pdfbin111948 -> 111948 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews12.pdfbin156551 -> 156551 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews13.pdfbin182225 -> 182225 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews14.pdfbin170473 -> 170473 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews15.pdfbin130309 -> 130309 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews16.pdfbin138073 -> 138073 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews17.pdfbin166228 -> 166228 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews18.pdfbin38033 -> 38033 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews19.pdfbin230028 -> 230028 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews20.pdfbin318548 -> 318548 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews21.pdfbin244867 -> 244867 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews22.pdfbin317773 -> 317773 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews23.pdfbin286591 -> 286591 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews24.pdfbin265279 -> 265279 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews25.pdfbin204935 -> 204935 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews26.pdfbin379462 -> 379462 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews27.pdfbin250592 -> 250592 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews28.pdfbin376643 -> 376643 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews29.pdfbin455107 -> 455107 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews30.pdfbin511909 -> 511909 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews31.pdfbin526323 -> 526323 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews32.pdfbin546160 -> 546160 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews33.pdfbin522412 -> 522412 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews34.pdfbin508044 -> 508044 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews35.pdfbin507071 -> 516486 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltnews35.tex154
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltpara-code.pdfbin666453 -> 666388 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltpara-doc.pdfbin559920 -> 559858 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltshipout-code.pdfbin819275 -> 819211 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltshipout-doc.pdfbin564643 -> 564577 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltx3info.pdfbin219349 -> 219349 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/ltxdoc.pdfbin233208 -> 233208 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/makeindx.pdfbin165821 -> 165821 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/modguide.pdfbin243605 -> 243605 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/nfssfont.pdfbin211180 -> 211180 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/proc.pdfbin227059 -> 227059 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/slides.pdfbin375286 -> 375286 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/slifonts.pdfbin234191 -> 234191 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/source2e.pdfbin5617293 -> 5629371 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/syntonly.pdfbin189707 -> 189527 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/tlc2.pdfbin290615 -> 290615 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/tulm.pdfbin162772 -> 162772 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/usrguide.pdfbin430994 -> 430994 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/usrguide3.pdfbin390416 -> 403394 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/usrguide3.tex58
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/utf8ienc.pdfbin352642 -> 352824 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/base/webcomp.pdfbin146198 -> 146198 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/firstaid/changes.txt9
-rw-r--r--Master/texmf-dist/doc/latex-dev/firstaid/latex2e-first-aid-for-external-files.pdfbin238410 -> 240432 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/graphics/README.md2
-rw-r--r--Master/texmf-dist/doc/latex-dev/graphics/changes.txt8
-rw-r--r--Master/texmf-dist/doc/latex-dev/graphics/color.pdfbin212223 -> 212223 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/graphics/drivers.pdfbin286459 -> 286459 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/graphics/epsfig.pdfbin159997 -> 159997 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/graphics/graphics.pdfbin303042 -> 303464 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/graphics/graphicx.pdfbin240623 -> 240623 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/graphics/grfguide.pdfbin330978 -> 330978 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/graphics/keyval.pdfbin239823 -> 239823 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/graphics/lscape.pdfbin155986 -> 155986 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/graphics/mathcolor.pdfbin473568 -> 475918 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/graphics/rotating.pdfbin278466 -> 278405 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/graphics/rotex.pdfbin172228 -> 172227 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/graphics/trig.pdfbin199266 -> 199266 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/README.md4
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/afterpage.pdfbin197738 -> 197738 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/array.pdfbin516836 -> 516359 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/bm.pdfbin323432 -> 323432 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/calc.pdfbin370552 -> 370657 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/dcolumn.pdfbin220834 -> 220834 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/delarray.pdfbin191064 -> 191064 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/enumerate.pdfbin215498 -> 215498 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/fileerr.pdfbin187725 -> 187408 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/fontsmpl.pdfbin146446 -> 146446 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/ftnright.pdfbin387226 -> 386912 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/hhline.pdfbin189679 -> 189679 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/indentfirst.pdfbin157954 -> 157954 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/layout.pdfbin259969 -> 259969 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/longtable.pdfbin391313 -> 391313 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/multicol.pdfbin521446 -> 521258 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/rawfonts.pdfbin138963 -> 138963 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/shellesc.pdfbin175929 -> 175929 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/showkeys.pdfbin252158 -> 252158 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/somedefs.pdfbin167572 -> 167572 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/tabularx.pdfbin287073 -> 287073 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/theorem.pdfbin351702 -> 351388 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/tools-overview.pdfbin73672 -> 73672 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/trace.pdfbin222076 -> 222076 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/varioref.pdfbin383856 -> 383856 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/verbatim.pdfbin330963 -> 330963 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/xr.pdfbin169986 -> 169986 bytes
-rw-r--r--Master/texmf-dist/doc/latex-dev/tools/xspace.pdfbin257018 -> 257018 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3build/CHANGELOG.md13
-rw-r--r--Master/texmf-dist/doc/latex/l3build/README.md2
-rw-r--r--Master/texmf-dist/doc/latex/l3build/l3build.pdfbin741313 -> 741870 bytes
-rw-r--r--Master/texmf-dist/doc/man/man1/l3build.12
-rw-r--r--Master/texmf-dist/doc/man/man1/l3build.man1.pdfbin15555 -> 15609 bytes
-rw-r--r--Master/texmf-dist/scripts/l3build/l3build-check.lua2
-rwxr-xr-xMaster/texmf-dist/scripts/l3build/l3build.lua4
-rw-r--r--Master/texmf-dist/source/latex-dev/amsmath/amsmath.dtx25
-rw-r--r--Master/texmf-dist/source/latex-dev/amsmath/amsopn.dtx12
-rw-r--r--Master/texmf-dist/source/latex-dev/base/latexrelease.dtx38
-rw-r--r--Master/texmf-dist/source/latex-dev/base/latexrelease.ins2
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltbibl.dtx37
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltcmd.dtx34
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltexpl.dtx20
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltfilehook.dtx51
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltfinal.dtx34
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltkeys.dtx119
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltvers.dtx22
-rw-r--r--Master/texmf-dist/source/latex-dev/base/utf8ienc.dtx46
-rw-r--r--Master/texmf-dist/source/latex-dev/firstaid/latex2e-first-aid-for-external-files.dtx61
-rw-r--r--Master/texmf-dist/source/latex-dev/graphics/graphics.dtx53
-rw-r--r--Master/texmf-dist/source/latex-dev/graphics/mathcolor.dtx16
-rw-r--r--Master/texmf-dist/source/latex-dev/tools/array.dtx10
-rw-r--r--Master/texmf-dist/source/latex/l3build/l3build.dtx83
-rw-r--r--Master/texmf-dist/tex/latex-dev/amsmath/amsmath.sty15
-rw-r--r--Master/texmf-dist/tex/latex-dev/amsmath/amsopn.sty3
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/atveryend-ltx.sty4
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/latex.ltx127
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/latexrelease.sty116
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/lcyenc.dfu2
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/ly1enc.dfu2
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/omsenc.dfu2
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/ot1enc.dfu2
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/ot2enc.dfu2
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/structuredlog.sty4
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/t1enc.dfu2
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/t2aenc.dfu2
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/t2benc.dfu2
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/t2cenc.dfu2
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/ts1enc.dfu2
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/utf8.def36
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/utf8enc.dfu2
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/x2enc.dfu2
-rw-r--r--Master/texmf-dist/tex/latex-dev/firstaid/everysel-ltx.sty2
-rw-r--r--Master/texmf-dist/tex/latex-dev/firstaid/filehook-ltx.sty2
-rw-r--r--Master/texmf-dist/tex/latex-dev/firstaid/latex2e-first-aid-for-external-files.ltx36
-rw-r--r--Master/texmf-dist/tex/latex-dev/graphics/graphics.sty32
-rw-r--r--Master/texmf-dist/tex/latex-dev/graphics/mathcolor.ltx5
-rw-r--r--Master/texmf-dist/tex/latex-dev/tools/array.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3build/regression-test.tex76
198 files changed, 1073 insertions, 423 deletions
diff --git a/Build/source/texk/texlive/linked_scripts/l3build/l3build.lua b/Build/source/texk/texlive/linked_scripts/l3build/l3build.lua
index 744f7628b8c..80a7b6e3d01 100644
--- a/Build/source/texk/texlive/linked_scripts/l3build/l3build.lua
+++ b/Build/source/texk/texlive/linked_scripts/l3build/l3build.lua
@@ -25,7 +25,7 @@ for those people who are interested.
--]]
-- Version information
-release_date = "2022-02-24"
+release_date = "2022-03-15"
-- File operations are aided by the LuaFileSystem module
local lfs = require("lfs")
@@ -134,7 +134,7 @@ else
end
if #checkconfigs > 1 then
- if options["target"] == "check" then
+ if options["target"] == "check" or options["target"] == "bundlecheck" then
local errorlevel = 0
local failed = { }
for i = 1, #checkconfigs do
diff --git a/Master/texmf-dist/doc/latex-dev/amsmath/README.md b/Master/texmf-dist/doc/latex-dev/amsmath/README.md
index 76f27a1df68..2568576a49c 100644
--- a/Master/texmf-dist/doc/latex-dev/amsmath/README.md
+++ b/Master/texmf-dist/doc/latex-dev/amsmath/README.md
@@ -1,7 +1,7 @@
The amsmath bundle for LaTeX
============================
-Release 2022-06-01 pre-release 1
+Release 2022-06-01 pre-release 2
Overview
--------
diff --git a/Master/texmf-dist/doc/latex-dev/amsmath/amsbsy.pdf b/Master/texmf-dist/doc/latex-dev/amsmath/amsbsy.pdf
index 4c039491e2d..2e7b3dadbc7 100644
--- a/Master/texmf-dist/doc/latex-dev/amsmath/amsbsy.pdf
+++ b/Master/texmf-dist/doc/latex-dev/amsmath/amsbsy.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/amsmath/amscd.pdf b/Master/texmf-dist/doc/latex-dev/amsmath/amscd.pdf
index 806f589986d..6d76336aaaa 100644
--- a/Master/texmf-dist/doc/latex-dev/amsmath/amscd.pdf
+++ b/Master/texmf-dist/doc/latex-dev/amsmath/amscd.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/amsmath/amsgen.pdf b/Master/texmf-dist/doc/latex-dev/amsmath/amsgen.pdf
index b6bb1a8e96a..1cf78ad2923 100644
--- a/Master/texmf-dist/doc/latex-dev/amsmath/amsgen.pdf
+++ b/Master/texmf-dist/doc/latex-dev/amsmath/amsgen.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/amsmath/amsldoc.pdf b/Master/texmf-dist/doc/latex-dev/amsmath/amsldoc.pdf
index a5bf7a8e786..68b317117ca 100644
--- a/Master/texmf-dist/doc/latex-dev/amsmath/amsldoc.pdf
+++ b/Master/texmf-dist/doc/latex-dev/amsmath/amsldoc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/amsmath/amsmath.pdf b/Master/texmf-dist/doc/latex-dev/amsmath/amsmath.pdf
index 7bafbfe1e74..5aab00bfb1c 100644
--- a/Master/texmf-dist/doc/latex-dev/amsmath/amsmath.pdf
+++ b/Master/texmf-dist/doc/latex-dev/amsmath/amsmath.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/amsmath/amsopn.pdf b/Master/texmf-dist/doc/latex-dev/amsmath/amsopn.pdf
index d9f5ea9c8ff..d6781e32096 100644
--- a/Master/texmf-dist/doc/latex-dev/amsmath/amsopn.pdf
+++ b/Master/texmf-dist/doc/latex-dev/amsmath/amsopn.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/amsmath/amstext.pdf b/Master/texmf-dist/doc/latex-dev/amsmath/amstext.pdf
index fc502fd959e..1a49d88d88f 100644
--- a/Master/texmf-dist/doc/latex-dev/amsmath/amstext.pdf
+++ b/Master/texmf-dist/doc/latex-dev/amsmath/amstext.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/amsmath/amsxtra.pdf b/Master/texmf-dist/doc/latex-dev/amsmath/amsxtra.pdf
index 051f596d4f5..aa02d6929f4 100644
--- a/Master/texmf-dist/doc/latex-dev/amsmath/amsxtra.pdf
+++ b/Master/texmf-dist/doc/latex-dev/amsmath/amsxtra.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/amsmath/changes.txt b/Master/texmf-dist/doc/latex-dev/amsmath/changes.txt
index e61d8724ded..95e291d7445 100644
--- a/Master/texmf-dist/doc/latex-dev/amsmath/changes.txt
+++ b/Master/texmf-dist/doc/latex-dev/amsmath/changes.txt
@@ -1,3 +1,15 @@
+2022-02-03 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * amsmath.dtx (subsection{The \env{multline} environment}):
+ Added missing \relax for (gh/716)
+ Also make \shoveleft and \shoveright robust (part of gh/123)
+
+2022-01-20 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * amsopn.dtx:
+ Do not define/reset \operator@font; it is already defined in
+ the LaTeX kernel (gh/734)
+
2021-11-18 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
* All *.dtx: Replaced \StopEventually by \MaybeStop
diff --git a/Master/texmf-dist/doc/latex-dev/amsmath/subeqn.pdf b/Master/texmf-dist/doc/latex-dev/amsmath/subeqn.pdf
index af000da7d09..25deff12538 100644
--- a/Master/texmf-dist/doc/latex-dev/amsmath/subeqn.pdf
+++ b/Master/texmf-dist/doc/latex-dev/amsmath/subeqn.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/amsmath/technote.pdf b/Master/texmf-dist/doc/latex-dev/amsmath/technote.pdf
index f5604758fbd..8e12a5296b5 100644
--- a/Master/texmf-dist/doc/latex-dev/amsmath/technote.pdf
+++ b/Master/texmf-dist/doc/latex-dev/amsmath/technote.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/amsmath/testmath.pdf b/Master/texmf-dist/doc/latex-dev/amsmath/testmath.pdf
index 3cf0d8fd29b..9332b2032f1 100644
--- a/Master/texmf-dist/doc/latex-dev/amsmath/testmath.pdf
+++ b/Master/texmf-dist/doc/latex-dev/amsmath/testmath.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/README.md b/Master/texmf-dist/doc/latex-dev/base/README.md
index 6029313c56e..65c4673cca9 100644
--- a/Master/texmf-dist/doc/latex-dev/base/README.md
+++ b/Master/texmf-dist/doc/latex-dev/base/README.md
@@ -1,7 +1,7 @@
The LaTeX kernel
================
-Release 2022-06-01 pre-release 2
+Release 2022-06-01 pre-release 3
Overview
--------
@@ -94,6 +94,6 @@ version 1.3c or later.
-----
-<p>Copyright (C) 1989-2021 The LaTeX Project <br />
+<p>Copyright (C) 1989-2022 The LaTeX Project <br />
<a href="http://latex-project.org/">http://latex-project.org/</a> <br />
All rights reserved.</p>
diff --git a/Master/texmf-dist/doc/latex-dev/base/alltt.pdf b/Master/texmf-dist/doc/latex-dev/base/alltt.pdf
index 16f4934d9df..d612e91b3b5 100644
--- a/Master/texmf-dist/doc/latex-dev/base/alltt.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/alltt.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/cfgguide.pdf b/Master/texmf-dist/doc/latex-dev/base/cfgguide.pdf
index f1d9b18a00f..e96dd1eadd2 100644
--- a/Master/texmf-dist/doc/latex-dev/base/cfgguide.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/cfgguide.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/changes.txt b/Master/texmf-dist/doc/latex-dev/base/changes.txt
index 0768de673bf..b9bea0a54a3 100644
--- a/Master/texmf-dist/doc/latex-dev/base/changes.txt
+++ b/Master/texmf-dist/doc/latex-dev/base/changes.txt
@@ -1,4 +1,3 @@
-
================================================================================
This file lists changes to the LaTeX2e files in reverse chronological order of
publication (therefore the dates might be out of sequence if there are hotfixes).
@@ -7,11 +6,65 @@ completeness or accuracy and it contains some references to files that
are not part of the distribution.
================================================================================
+2022-03-10 Phelype Oleinik <phelype.oleinik@latex-project.org>
+
+ * ltfilehook.dtx (subsection{Selecting a file (\cs{set@curr@file})}):
+ Add \set@curr@file@nosearch, to ignore \input@path and \l_file_search_path_seq.
+
+2022-03-10 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltbibl.dtx (section{Bibliography Generation}):
+ Ensure that an empty argument given to \cite generates
+ a warning (gh/790)
+
+2022-02-28 Phelype Oleinik <phelype.oleinik@latex-project.org>
+
+ * ltvers.dtx (subsection{Declaring an all-new module}):
+ Detect a missing \IncludeInRelease{0000/00/00} in a new module.
+
+2022-02-28 Phelype Oleinik <phelype.oleinik@latex-project.org>
+
+ * latexrelease.dtx, ltexpl.dtx, ltcmd.dtx:
+ Move most make-harmless redefinitions right after ltexpl.dtx.
+
+2022-02-21 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * ltkeys.dtx:
+ More efficient module expansion
+
+2022-02-19 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltcmd.dtx (subsection{User functions}):
+ Added \IfBlankTF and friends to test if a received argument
+ is empty or contains only normal space characters.
+
+2022-02-19 David Carlisle <David.Carlisle@latex-project.org>
+
+ * utf8ienc.dtx: use \protected definitions.
+ also avoid global definitions for gh/762
+
+2022-02-16 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * ltkeys.dtx:
+ Allow for active characters in module argument
+ \DeclareUnknownKeyHandler better than with the "s"
+
+2022-02-15 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * ltkeys.dtx:
+ Expand optional module argument in design-level commands
+ Add \DeclareUnknownKeysHandler
+
+2022-02-07 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * ltkeys.dtx:
+ Correct definition of .code property
+
2022-02-05 Joseph Wright <Joseph.Wright@latex-project.org>
- * ltkeys.dtx (section{Plain \TeX}):
- Create key properties at the 2e layer
- Add .code property
+ * ltkeys.dtx:
+ Create key properties at the 2e layer
+ Add .code property
2022-01-25 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
@@ -34,12 +87,12 @@ are not part of the distribution.
* ltexpl.dtx (section{Document-level command names for expl3 functions}):
Adjust document-level names for \exp_args:Nc and the like
-2021-12-30 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+2021-12-30 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
* ltmeta.dtx:
Adapted bundle name to new name `LaTeX-lab'
-2021-12-31 Phelype Oleinik <phelype.oleinik@latex-project.org>
+2021-12-31 Phelype Oleinik <phelype.oleinik@latex-project.org>
* ltcmd.dtx (subsubsection{Showing the definition of a command}):
Make \ShowCommand stop for interaction with ltcmd (gh/739)
@@ -169,7 +222,7 @@ All changes above are only part of the development branch for the next release.
# 2021-11-15 Release
#########################
-2021-10-20 Phelype Oleinik <phelype.oleinik@latex-project.org>
+2021-10-20 Phelype Oleinik <phelype.oleinik@latex-project.org>
* ltcmdhooks.dtx (subsubsection{Patching by expansion and redefinition}):
Fix patching of commands that contain parameter tokens (gh/697)
@@ -207,7 +260,7 @@ All changes above are only part of the development branch for the next release.
* classes.dtx, doc.dtx, makeindx.dtx, preload.dtx, slides.dtx, array.dtx
Removed old references to latex.tex or latex.dtx (gh/685)
-2021-09-28 Phelype Oleinik <phelype.oleinik@latex-project.org>
+2021-09-28 Phelype Oleinik <phelype.oleinik@latex-project.org>
* ltcmdhooks.dtx (subsection{Patching commands}):
Make patching of commands with generic cmd hooks a global operation (gh/674)
diff --git a/Master/texmf-dist/doc/latex-dev/base/classes.pdf b/Master/texmf-dist/doc/latex-dev/base/classes.pdf
index f9554c72552..9d7cd6a797e 100644
--- a/Master/texmf-dist/doc/latex-dev/base/classes.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/classes.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/clsguide.pdf b/Master/texmf-dist/doc/latex-dev/base/clsguide.pdf
index bb6d34b20cf..77158a1f32f 100644
--- a/Master/texmf-dist/doc/latex-dev/base/clsguide.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/clsguide.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/cmfonts.pdf b/Master/texmf-dist/doc/latex-dev/base/cmfonts.pdf
index 1519514358b..a281182d364 100644
--- a/Master/texmf-dist/doc/latex-dev/base/cmfonts.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/cmfonts.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/cyrguide.pdf b/Master/texmf-dist/doc/latex-dev/base/cyrguide.pdf
index 6efe42e1b81..f03a3e508b7 100644
--- a/Master/texmf-dist/doc/latex-dev/base/cyrguide.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/cyrguide.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/doc-code.pdf b/Master/texmf-dist/doc/latex-dev/base/doc-code.pdf
index 69c7ad4bbe0..d9fa6ad5444 100644
--- a/Master/texmf-dist/doc/latex-dev/base/doc-code.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/doc-code.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/doc.pdf b/Master/texmf-dist/doc/latex-dev/base/doc.pdf
index 733e15b6242..7963d5c27a6 100644
--- a/Master/texmf-dist/doc/latex-dev/base/doc.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/docstrip.pdf b/Master/texmf-dist/doc/latex-dev/base/docstrip.pdf
index d1fb196f58c..da31ca03b24 100644
--- a/Master/texmf-dist/doc/latex-dev/base/docstrip.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/docstrip.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/encguide.pdf b/Master/texmf-dist/doc/latex-dev/base/encguide.pdf
index 7581f0b892f..5d607801b26 100644
--- a/Master/texmf-dist/doc/latex-dev/base/encguide.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/encguide.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/exscale.pdf b/Master/texmf-dist/doc/latex-dev/base/exscale.pdf
index 5ca05e66722..69119b9f013 100644
--- a/Master/texmf-dist/doc/latex-dev/base/exscale.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/exscale.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/fix-cm.pdf b/Master/texmf-dist/doc/latex-dev/base/fix-cm.pdf
index f763dd53f26..eb83169c235 100644
--- a/Master/texmf-dist/doc/latex-dev/base/fix-cm.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/fix-cm.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/fntguide.pdf b/Master/texmf-dist/doc/latex-dev/base/fntguide.pdf
index dadcf600b24..83e562aba30 100644
--- a/Master/texmf-dist/doc/latex-dev/base/fntguide.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/fntguide.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/graphpap.pdf b/Master/texmf-dist/doc/latex-dev/base/graphpap.pdf
index 1567c9ceb02..655a201a8de 100644
--- a/Master/texmf-dist/doc/latex-dev/base/graphpap.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/graphpap.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ifthen.pdf b/Master/texmf-dist/doc/latex-dev/base/ifthen.pdf
index 3580e40dd4c..08266fb2740 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ifthen.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ifthen.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/inputenc.pdf b/Master/texmf-dist/doc/latex-dev/base/inputenc.pdf
index 139633cba13..5d0a747d3c0 100644
--- a/Master/texmf-dist/doc/latex-dev/base/inputenc.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/inputenc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/lamport-manual.pdf b/Master/texmf-dist/doc/latex-dev/base/lamport-manual.pdf
index 105bf5c8696..1e39b271b24 100644
--- a/Master/texmf-dist/doc/latex-dev/base/lamport-manual.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/lamport-manual.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/latexrelease.pdf b/Master/texmf-dist/doc/latex-dev/base/latexrelease.pdf
index ca626e9ead0..c0c395ee65c 100644
--- a/Master/texmf-dist/doc/latex-dev/base/latexrelease.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/latexrelease.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/latexsym.pdf b/Master/texmf-dist/doc/latex-dev/base/latexsym.pdf
index 0f5279c10e8..5b1fc23b4ef 100644
--- a/Master/texmf-dist/doc/latex-dev/base/latexsym.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/latexsym.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/lb2.pdf b/Master/texmf-dist/doc/latex-dev/base/lb2.pdf
index 6e74caa24ba..a7ae8aa79cc 100644
--- a/Master/texmf-dist/doc/latex-dev/base/lb2.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/lb2.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/letter.pdf b/Master/texmf-dist/doc/latex-dev/base/letter.pdf
index 026c2a5a375..0b843b79a03 100644
--- a/Master/texmf-dist/doc/latex-dev/base/letter.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/letter.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/lgc2.pdf b/Master/texmf-dist/doc/latex-dev/base/lgc2.pdf
index 59fb751186f..a644e1fb936 100644
--- a/Master/texmf-dist/doc/latex-dev/base/lgc2.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/lgc2.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/lppl.pdf b/Master/texmf-dist/doc/latex-dev/base/lppl.pdf
index eea50258aeb..cafe15d94c1 100644
--- a/Master/texmf-dist/doc/latex-dev/base/lppl.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/lppl.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltcmdhooks-code.pdf b/Master/texmf-dist/doc/latex-dev/base/ltcmdhooks-code.pdf
index 1e0744a2a46..12928555fb0 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltcmdhooks-code.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltcmdhooks-code.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltcmdhooks-doc.pdf b/Master/texmf-dist/doc/latex-dev/base/ltcmdhooks-doc.pdf
index 149ae90ad6e..e4e197446f0 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltcmdhooks-doc.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltcmdhooks-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltfilehook-code.pdf b/Master/texmf-dist/doc/latex-dev/base/ltfilehook-code.pdf
index d9cbaf1a3de..58f4b7c4a4c 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltfilehook-code.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltfilehook-code.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltfilehook-doc.pdf b/Master/texmf-dist/doc/latex-dev/base/ltfilehook-doc.pdf
index 5e3ed3d4ab0..d2b75528d27 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltfilehook-doc.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltfilehook-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/lthooks-code.pdf b/Master/texmf-dist/doc/latex-dev/base/lthooks-code.pdf
index a4b7ca6c7d8..41ad4ad269c 100644
--- a/Master/texmf-dist/doc/latex-dev/base/lthooks-code.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/lthooks-code.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/lthooks-doc.pdf b/Master/texmf-dist/doc/latex-dev/base/lthooks-doc.pdf
index 94156c25b54..9c58a21a158 100644
--- a/Master/texmf-dist/doc/latex-dev/base/lthooks-doc.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/lthooks-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltluatex.pdf b/Master/texmf-dist/doc/latex-dev/base/ltluatex.pdf
index 7e4f07d3bb1..819c98563f5 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltluatex.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltluatex.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews.pdf
index 628393f7277..b841c40b85e 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews01.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews01.pdf
index dd2500ff78e..ae346eb39fd 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews01.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews01.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews02.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews02.pdf
index 6f416864b19..103776ed432 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews02.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews02.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews03.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews03.pdf
index 50442a37c65..06119e7712a 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews03.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews03.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews04.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews04.pdf
index d532b318b11..2d752b58151 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews04.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews04.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews05.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews05.pdf
index 2de0565e992..dc337c3faaf 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews05.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews05.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews06.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews06.pdf
index 46d4be0fcc3..87816972de6 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews06.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews06.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews07.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews07.pdf
index a4783c58443..e8992a1f639 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews07.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews07.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews08.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews08.pdf
index 47223098d75..8318a2ae517 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews08.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews08.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews09.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews09.pdf
index b5978dba844..5388d757e35 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews09.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews09.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews10.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews10.pdf
index b4a88ee9d50..628b86746c4 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews10.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews10.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews11.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews11.pdf
index 6f5c117b223..a37246fb948 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews11.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews11.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews12.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews12.pdf
index 73ef1dcb79f..2e38696a7e5 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews12.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews12.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews13.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews13.pdf
index a6c3c88fded..4a04a54aa9c 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews13.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews13.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews14.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews14.pdf
index 0662b70afe0..7ef8a649324 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews14.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews14.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews15.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews15.pdf
index 2049e1cde6b..a4aa674bb8f 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews15.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews15.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews16.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews16.pdf
index b3073b168de..d243dc4e781 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews16.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews16.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews17.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews17.pdf
index 306a5677821..018b6054434 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews17.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews17.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews18.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews18.pdf
index 6b4b445c08c..912c134dfa0 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews18.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews18.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews19.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews19.pdf
index 551ee12be4e..4821f6f5283 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews19.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews19.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews20.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews20.pdf
index e0b015c09e1..1a198102ade 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews20.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews20.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews21.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews21.pdf
index 9ad04a02c50..5c8dcdbf482 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews21.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews21.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews22.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews22.pdf
index 96543a8e39e..86b9829d517 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews22.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews22.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews23.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews23.pdf
index f82c5e1aba1..d13112eab41 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews23.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews23.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews24.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews24.pdf
index 1eeeb95b928..d33dc9585b9 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews24.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews24.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews25.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews25.pdf
index eef51d2b0a2..4779fd294e7 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews25.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews25.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews26.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews26.pdf
index 98b38ea9007..0de0ca04fa2 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews26.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews26.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews27.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews27.pdf
index df69fd7649b..a395576c01b 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews27.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews27.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews28.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews28.pdf
index 7d0afe54d9f..1bbcb49c280 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews28.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews28.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews29.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews29.pdf
index 1ef4e3ce57f..584d2f88c10 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews29.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews29.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews30.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews30.pdf
index b9955d97fcf..543b322d658 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews30.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews30.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews31.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews31.pdf
index 466e2bcf9f4..6a97e288630 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews31.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews31.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews32.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews32.pdf
index f99da0ca4cf..bf985ad3620 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews32.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews32.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews33.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews33.pdf
index 176ced9da84..4825971649f 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews33.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews33.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews34.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews34.pdf
index bc02bb3bf1f..d2c0df1bd02 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews34.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews34.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews35.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews35.pdf
index 045089749a7..34695cb058e 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews35.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews35.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews35.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews35.tex
index e798d4c2e4e..671d6d337ab 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltnews35.tex
+++ b/Master/texmf-dist/doc/latex-dev/base/ltnews35.tex
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 2019-2021
+% Copyright 2021-2022
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
@@ -186,14 +186,44 @@ and also in the documentation of the \pkg{pdfmanagement-testphase} package.
\section{The \pkg{latex-lab} bundle}
-\emph{write about it}
+We added a new \pkg{latex-lab}oratory bundle in which we place new
+code that is going to be available only through a
+\cs{DocumentMetadata} declaration and that is\Dash most
+importantly\Dash work under development and subject to
+change without further notice. This means, that commands and interfaces provided there may
+get altered or removed again after some public testing. The code can
+be accessed through the \cs{DocumentMetadata} key \texttt{testphase}.
+Currently supported values are \texttt{phase-I} and \texttt{phase-II}
+that enable code of the tagged PDF project (phase-I is frozen and
+phase-II the phase we are currently working on). With
+\begin{verbatim}
+\DocumentMetadata{testphase=phase-II}
+\end{verbatim}
+you currently enable tagging for paragraphs and footnotes, more
+document elements will follow soon.
+
+For more detailed testing it is also possible to pass other values to
+\texttt{testphase}, for example, the first incarnation of a template
+design interface based on \pkg{l3keys} can be accessed through the
+value \texttt{prototype}, thus
+\begin{verbatim}
+\DocumentMetadata{testphase={phase-II,prototype}}
+\end{verbatim}
+will enable all of phase-II plus the draft template interface (which
+is not yet integrated in phase-II).
+
+Eventually, code will move (once considered stable) from the
+testphase into the \LaTeX{} kernel itself. Tagging will continue to
+require a \cs{DocumentMetadata} declaration, but you will then be able
+to drop the \texttt{testphase} key setting.
+
\section{New or improved commands}
-\subsection{A kevyal approach to option handling}
+\subsection{A keyval 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
@@ -217,7 +247,7 @@ unless explicitly given as an optional argument.
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
+To support creating key options 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.
@@ -315,19 +345,80 @@ layer)) which was also used in the example above.
\githubissue{735}
+\subsection{Testing for (nearly) empty arguments}
+%
+In addition to \cs{IfNoValueTF} to test if an optional argument was
+provided or not, there is now also \cs{IfBlankTF}, which tests if the
+argument is empty or contains only blanks. Based on the result it
+selects a true or false code branch. As usual, the variants
+\cs{IfBlankT} and \cs{IfBlankF} are also provided for use when only one
+branch leads to some action. Further details and examples are given
+in \file{usrguide3.pdf}.
+
+This test can also be useful if you set up key/value options and want
+to test if a key was specified without giving a value or through
+specifying \enquote{\textit{key}\texttt{ = ,}}.
+
+
+\subsection{Better allocator for Lua command ids}
+
+In \LuaTeX\ we already had the \cs{newluafunction} macro which allocates
+a Lua function identifier which can be used to define commands
+with \cs{luadef}. But this always required two steps: \cs{newluafunction}
+defines the passed control sequence as an integer, which then has to be used
+to define the actual Lua command with \cs{luadef}. After that, the integer is
+no longer needed. This was inconsistent with other allocators. Therefore we
+added two new allocators \cs{newluacmd} and \cs{newexpandableluacmd} which
+directly define a control sequences invoking the allocated Lua function.
+The first one defines a non-expandable Lua command, the second one an expandable
+one. Of course, the associated Lua function still has to be defined by assigning
+a function to the \verb|lua.get_functions_table()| table. The required index is
+available in \cs{allocationnumber}.
+
+An example could be
+\begin{verbatim}
+\newluacmd \greeting
+\directlua {
+lua.get_functions_table()
+ [tex.count.allocationnumber]
+ = function()
+ local name = token.scan_argument()
+ tex.sprint('Hello ', name, '!')
+ end
+}
-\subsection{???}
+\greeting{world}
+\end{verbatim}
%
-\githubissue{???}
+\githubissue{536}
+
+
+
\section{Code improvements}
+\subsection{\cs{protected} UTF-8 character definitions}
+The characters defined via \file{utf8.def} are now defined as \cs{protected}
+macros. This makes them safe to use in expansion contexts where the
+classic \cs{protect} mechanism is not enabled, notably L3 programming
+layer \texttt{e} and \texttt{x} arguments.
+
+Related to this change \cs{MakeUppercase} and \cs{MakeLowercase} have
+been updated to use the Unicode-aware case changing functions
+\cs{text\string_lowercase:n} in place of the \TeX-primitive \cs{lowercase}.
+A similar change will be made in the \pkg{textcase} package.
+
+Note for technical reasons these low level character handling changes
+will not be rolled back if the format version is rolled back using the
+\pkg{latexrelease} package rollback mechanism.
+%
+\githubissue{780}
\subsection{A small update to \cs{obeylines} and \cs{obeyspaces}}
The plain \TeX{} versions of \cs{obeylines} and \cs{obeyspaces} make
-\verb=^^M= and \verb*= = active and force them to execute \cs{par}
+\verb=^^M= and \verb*= = active and force them to execute \cs{par} %*
and \cs{space}, respectively. Don Knuth makes a remark in the \TeX{}book
that one can then use a trick such as
\begin{verbatim}
@@ -445,7 +536,7 @@ displaying different data in the footer line on recto and verso pages.
\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
+D\v Z, D\v z, d\v z, LJ, Lj, lj, NJ, Nj, nj, input as single UTF-8 code points
in the range U+01C4 to U+01CC.
%
\githubissue{gh/723}
@@ -455,7 +546,7 @@ in the range U+01C4 to U+01CC.
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
+have an explicit argument for 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
@@ -474,10 +565,6 @@ argument as their general purpose counterparts do.
-\subsection{???}
-%
-\githubissue{???}
-
\section{Bug fixes}
@@ -503,6 +590,21 @@ is now fixed.
+\subsection{Make \cs{cite}\texttt{\textbraceleft\textbraceright} produce a warning}
+
+When the \cs{cite} command can't resolve a citation label it issue a
+warning \enquote{Citation `\meta{label}' on page \meta{page}
+ undefined}. However, due to some implementation details a completely
+empty argument was always silently accepted. Given that there are probably
+people who write \verb=\cite{}= with the intention to fill in the
+correct label later it is rather unfortunate if that is not generating
+a warning that something in the document is still amiss.
+This has finally been corrected and a warning is now generated also in this case.
+%
+\githubissue{790}
+
+
+
\section{Changes to packages in the \pkg{amsmath} category}
@@ -512,7 +614,7 @@ is now fixed.
The package \pkg{amsopn} used to define \cs{operator@font} but this
command is already provided by the \LaTeX{} format (for at least 14
years). As a result the definition in \pkg{amsopn} is equivalent to a
-reset to the kernel definition, which is unnecessary and suprising if
+reset to the kernel definition, which is unnecessary and surprising if
you alter the math setup (e.g., by loading a package) and at a later
stage add \pkg{amsmath}, which then undoes part of your setup. For
this reason the definition was taken out and
@@ -528,9 +630,15 @@ after loading the package.
%
\githubissue{734}
-\subsection{???}
+\subsection{\pkg{amsmath} Error in \cs{shoveleft}}
+
+If \cs{shoveleft} started out with the words \enquote{plus} or
+\enquote{minus} it was misunderstood as part of a rubber length and
+led either to an error or was swallowed without trace. By adding a
+\cs{relax} this erroneous scanning into the argument of \cs{shoveleft}
+is now prevented.
%
-\githubissue{???}
+\githubissue{714}
\section{Changes to packages in the \pkg{graphics} category}
@@ -576,9 +684,19 @@ This command is \emph{only} allowed in formulas.
For details and further examples, see \file{mathcolor.pdf}.
-\subsection{???}
+\subsection{Fix locating files with \cs{graphicspath}}
%
-\githubissue{???}
+
+If a call to \cs{includegraphics} asked for a file (say, \file{image})
+without extension, and if both \file{A/image.pdf} and \file{B/image.tex}
+existed (both \file{A/} and \file{B/} in \cs{graphicspath}, but neither
+in a folder searched by kpse), then \file{A/image.pdf} would not be
+found, and a \enquote{file not found} error would be incorrectly thrown.
+The issue is now fixed and the graphics file is correctly found.
+%
+\githubissue{776}
+\sxissue{q/630167}
+
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltpara-code.pdf b/Master/texmf-dist/doc/latex-dev/base/ltpara-code.pdf
index ff766c2947f..1447a6bfa8c 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltpara-code.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltpara-code.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltpara-doc.pdf b/Master/texmf-dist/doc/latex-dev/base/ltpara-doc.pdf
index cf0795adb86..11c181ecaa8 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltpara-doc.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltpara-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltshipout-code.pdf b/Master/texmf-dist/doc/latex-dev/base/ltshipout-code.pdf
index a650b930ded..fe21c18e008 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltshipout-code.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltshipout-code.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltshipout-doc.pdf b/Master/texmf-dist/doc/latex-dev/base/ltshipout-doc.pdf
index cc986f8a19c..7ce31427b44 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltshipout-doc.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltshipout-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltx3info.pdf b/Master/texmf-dist/doc/latex-dev/base/ltx3info.pdf
index 9c8852094df..372a87f113d 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltx3info.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltx3info.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/ltxdoc.pdf b/Master/texmf-dist/doc/latex-dev/base/ltxdoc.pdf
index 1889d2644c3..b2a6e7ec7fa 100644
--- a/Master/texmf-dist/doc/latex-dev/base/ltxdoc.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/ltxdoc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/makeindx.pdf b/Master/texmf-dist/doc/latex-dev/base/makeindx.pdf
index 2c0af1153ab..82ecf21cf9d 100644
--- a/Master/texmf-dist/doc/latex-dev/base/makeindx.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/makeindx.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/modguide.pdf b/Master/texmf-dist/doc/latex-dev/base/modguide.pdf
index 25abeace24f..884f6e754d2 100644
--- a/Master/texmf-dist/doc/latex-dev/base/modguide.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/modguide.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/nfssfont.pdf b/Master/texmf-dist/doc/latex-dev/base/nfssfont.pdf
index c8702a68de1..edcf7dc43f8 100644
--- a/Master/texmf-dist/doc/latex-dev/base/nfssfont.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/nfssfont.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/proc.pdf b/Master/texmf-dist/doc/latex-dev/base/proc.pdf
index 575422342cd..927dd765147 100644
--- a/Master/texmf-dist/doc/latex-dev/base/proc.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/proc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/slides.pdf b/Master/texmf-dist/doc/latex-dev/base/slides.pdf
index 52546f73859..0b519f65110 100644
--- a/Master/texmf-dist/doc/latex-dev/base/slides.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/slides.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/slifonts.pdf b/Master/texmf-dist/doc/latex-dev/base/slifonts.pdf
index 624a5b5123b..76dd3c96559 100644
--- a/Master/texmf-dist/doc/latex-dev/base/slifonts.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/slifonts.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/source2e.pdf b/Master/texmf-dist/doc/latex-dev/base/source2e.pdf
index c9f5168a057..88211e88072 100644
--- a/Master/texmf-dist/doc/latex-dev/base/source2e.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/source2e.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/syntonly.pdf b/Master/texmf-dist/doc/latex-dev/base/syntonly.pdf
index 3f149320153..7298566aeab 100644
--- a/Master/texmf-dist/doc/latex-dev/base/syntonly.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/syntonly.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/tlc2.pdf b/Master/texmf-dist/doc/latex-dev/base/tlc2.pdf
index c9c761680e9..f4d49885f24 100644
--- a/Master/texmf-dist/doc/latex-dev/base/tlc2.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/tlc2.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/tulm.pdf b/Master/texmf-dist/doc/latex-dev/base/tulm.pdf
index 4aac3efb425..929194014af 100644
--- a/Master/texmf-dist/doc/latex-dev/base/tulm.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/tulm.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/usrguide.pdf b/Master/texmf-dist/doc/latex-dev/base/usrguide.pdf
index fe712da807b..5975d1567fc 100644
--- a/Master/texmf-dist/doc/latex-dev/base/usrguide.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/usrguide.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/usrguide3.pdf b/Master/texmf-dist/doc/latex-dev/base/usrguide3.pdf
index 5e0cd662240..a15d3c431bb 100644
--- a/Master/texmf-dist/doc/latex-dev/base/usrguide3.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/usrguide3.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/usrguide3.tex b/Master/texmf-dist/doc/latex-dev/base/usrguide3.tex
index 249b708943c..efec9ad2a2c 100644
--- a/Master/texmf-dist/doc/latex-dev/base/usrguide3.tex
+++ b/Master/texmf-dist/doc/latex-dev/base/usrguide3.tex
@@ -37,7 +37,7 @@
\author{\copyright~Copyright 2020-2022, \LaTeX\ Project Team.\\
All rights reserved.}
-\date{2022-01-03}
+\date{2022-02-19}
\NewDocumentCommand\cs{m}{\texttt{\textbackslash\detokenize{#1}}}
\NewDocumentCommand\marg{m}{\arg{#1}}
@@ -356,6 +356,8 @@ defaults with testing for missing values.
Optional arguments make use of dedicated variables to return information about
the nature of the argument received.
+
+
\begin{decl}
|\IfNoValueTF| \arg{arg} \arg{true code} \arg{false code} \\
|\IfNoValueT| \arg{arg} \arg{true code} \\
@@ -391,11 +393,12 @@ will be logically \texttt{false}.
When two optional arguments follow each other (a syntax we typically
discourage), it can make sense to allow users of the command to
specify only the second argument by providing an empty first
-argument. Rather than testing separately for emptiness and for
+argument.
+\NEWdescription{2022/06/01}
+Rather than testing separately for emptiness and for
|-NoValue-| it is then best to use the argument type~|O| with an
-empty default value, and simply test for emptiness using the
-\pkg{expl3} conditional \cs{tl_if_blank:nTF} or its \pkg{etoolbox}
-analogue \cs{ifblank}.
+empty default value, and then test for emptiness using the
+conditional \cs{IfBlankTF} (described below) instead.
\begin{decl}
|\IfValueTF| \arg{arg} \arg{true code} \arg{false code} \\
@@ -406,6 +409,51 @@ The reverse form of the \cs{IfNoValue(TF)} tests are also available
as \cs{IfValue(TF)}. The context will determine which logical
form makes the most sense for a given code scenario.
+
+
+
+
+\begin{decl}[2022/06/01]
+ |\IfBlankTF| \arg{arg} \arg{true code} \arg{false code} \\
+ |\IfBlankT| \arg{arg} \arg{true code} \\
+ |\IfBlankF| \arg{arg} \arg{false code}
+\end{decl}
+
+
+The \cs{IfNoValueTF} command chooses the \meta{true code} if the optional argument has not
+been used at all (and it returns the special \texttt{-NoValue-}
+marker), but not if it has been given an empty value. In contrast
+\cs{IfBlankTF} returns true if its argument is either truly empty or
+only contains one or more normal blanks.
+For example
+\begin{verbatim}
+\NewDocumentCommand\foo{m!o}{\par #1:
+ \IfNoValueTF{#2}{No optional}%
+ {\IfBlankTF{#2}{Blanks in or empty}%
+ {Real content in}}%
+ \space argument!}
+\foo{1}[bar] \foo{2}[ ] \foo{3}[] \foo{4}[\space] \foo{5} [x]
+\end{verbatim}
+results
+in the following output:
+\begin{quote}
+ \NewDocumentCommand\foo{m!o}{\par #1:
+ \IfNoValueTF{#2}{No optional}%
+ {\IfBlankTF{#2}{Blanks in or empty}%
+ {Real content in}}%
+ \space argument!}
+ \foo{1}[bar] \foo{2}[ ] \foo{3}[] \foo{4}[\space] \foo{5} [x]
+\end{quote}
+
+Note that the \cs{space} in (4) is considered real content---because it is
+a command and not a \enquote{space} character---even though it results
+in producing a space. You can also observe in (5) the effect of the
+\texttt{!} specifier, preventing the last \cs{foo}
+from interpreting \texttt{[x]} as its optional argument.
+
+
+
+
\begin{decl}
|\BooleanFalse| \\
|\BooleanTrue|
diff --git a/Master/texmf-dist/doc/latex-dev/base/utf8ienc.pdf b/Master/texmf-dist/doc/latex-dev/base/utf8ienc.pdf
index e60bfe78d6f..8f58daf638b 100644
--- a/Master/texmf-dist/doc/latex-dev/base/utf8ienc.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/utf8ienc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/base/webcomp.pdf b/Master/texmf-dist/doc/latex-dev/base/webcomp.pdf
index 4eee052d2b2..e8bd3d23b14 100644
--- a/Master/texmf-dist/doc/latex-dev/base/webcomp.pdf
+++ b/Master/texmf-dist/doc/latex-dev/base/webcomp.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/firstaid/changes.txt b/Master/texmf-dist/doc/latex-dev/firstaid/changes.txt
index 6f8268c6b6c..a3626f83a49 100644
--- a/Master/texmf-dist/doc/latex-dev/firstaid/changes.txt
+++ b/Master/texmf-dist/doc/latex-dev/firstaid/changes.txt
@@ -1,3 +1,12 @@
+2022-02-20 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * latex2e-first-aid-for-external-files.dtx:
+ Fixes for biditools because taken out as package is updated
+
+2021-11-18 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * All *.dtx: Replaced \StopEventually by \MaybeStop
+
2021-11-11 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
* latex2e-first-aid-for-external-files.dtx:
diff --git a/Master/texmf-dist/doc/latex-dev/firstaid/latex2e-first-aid-for-external-files.pdf b/Master/texmf-dist/doc/latex-dev/firstaid/latex2e-first-aid-for-external-files.pdf
index 9e1f772a226..b1d179b6ed8 100644
--- a/Master/texmf-dist/doc/latex-dev/firstaid/latex2e-first-aid-for-external-files.pdf
+++ b/Master/texmf-dist/doc/latex-dev/firstaid/latex2e-first-aid-for-external-files.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/graphics/README.md b/Master/texmf-dist/doc/latex-dev/graphics/README.md
index fb478e598d9..939930605fd 100644
--- a/Master/texmf-dist/doc/latex-dev/graphics/README.md
+++ b/Master/texmf-dist/doc/latex-dev/graphics/README.md
@@ -1,7 +1,7 @@
The LaTeX `graphics` bundle
===========================
-Release 2022-06-01 pre-release 1
+Release 2022-06-01 pre-release 2
Overview
--------
diff --git a/Master/texmf-dist/doc/latex-dev/graphics/changes.txt b/Master/texmf-dist/doc/latex-dev/graphics/changes.txt
index 72a106c3fdc..2a542dca1b3 100644
--- a/Master/texmf-dist/doc/latex-dev/graphics/changes.txt
+++ b/Master/texmf-dist/doc/latex-dev/graphics/changes.txt
@@ -4,11 +4,17 @@ completeness or accuracy and it contains some references to files that
are not part of the distribution.
=======================================================================
+2022-03-10 Phelype Oleinik <phelype.oleinik@latex-project.org>
+
+ * graphics.dtx:
+ Use \set@curr@file@nosearch to avoid premature inclusion of path
+ from \cs{graphicspath} (gh/776).
+
2022-01-06 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
* mathcolor.dtx:
Support \mathcolor to correctly color parts of formulas without
- spacing problems.
+ spacing problems. This command is *only* supported in math mode.
================================================================================
All changes above are only part of the development branch for the next release.
diff --git a/Master/texmf-dist/doc/latex-dev/graphics/color.pdf b/Master/texmf-dist/doc/latex-dev/graphics/color.pdf
index 499c81c1d0b..ebf13b6cb95 100644
--- a/Master/texmf-dist/doc/latex-dev/graphics/color.pdf
+++ b/Master/texmf-dist/doc/latex-dev/graphics/color.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/graphics/drivers.pdf b/Master/texmf-dist/doc/latex-dev/graphics/drivers.pdf
index ba457906727..4d06da1f610 100644
--- a/Master/texmf-dist/doc/latex-dev/graphics/drivers.pdf
+++ b/Master/texmf-dist/doc/latex-dev/graphics/drivers.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/graphics/epsfig.pdf b/Master/texmf-dist/doc/latex-dev/graphics/epsfig.pdf
index e5feedc670f..3ee5d92b016 100644
--- a/Master/texmf-dist/doc/latex-dev/graphics/epsfig.pdf
+++ b/Master/texmf-dist/doc/latex-dev/graphics/epsfig.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/graphics/graphics.pdf b/Master/texmf-dist/doc/latex-dev/graphics/graphics.pdf
index d3d880dd699..39927a75ebd 100644
--- a/Master/texmf-dist/doc/latex-dev/graphics/graphics.pdf
+++ b/Master/texmf-dist/doc/latex-dev/graphics/graphics.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/graphics/graphicx.pdf b/Master/texmf-dist/doc/latex-dev/graphics/graphicx.pdf
index 0a615312448..0a39aa56ce7 100644
--- a/Master/texmf-dist/doc/latex-dev/graphics/graphicx.pdf
+++ b/Master/texmf-dist/doc/latex-dev/graphics/graphicx.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/graphics/grfguide.pdf b/Master/texmf-dist/doc/latex-dev/graphics/grfguide.pdf
index 70ed7ac3ac6..a0c0914ae2a 100644
--- a/Master/texmf-dist/doc/latex-dev/graphics/grfguide.pdf
+++ b/Master/texmf-dist/doc/latex-dev/graphics/grfguide.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/graphics/keyval.pdf b/Master/texmf-dist/doc/latex-dev/graphics/keyval.pdf
index 9b60667b03e..c95033c86de 100644
--- a/Master/texmf-dist/doc/latex-dev/graphics/keyval.pdf
+++ b/Master/texmf-dist/doc/latex-dev/graphics/keyval.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/graphics/lscape.pdf b/Master/texmf-dist/doc/latex-dev/graphics/lscape.pdf
index 0eb191d6620..51c7be6e474 100644
--- a/Master/texmf-dist/doc/latex-dev/graphics/lscape.pdf
+++ b/Master/texmf-dist/doc/latex-dev/graphics/lscape.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/graphics/mathcolor.pdf b/Master/texmf-dist/doc/latex-dev/graphics/mathcolor.pdf
index 1b5d8683e5f..b4646281e49 100644
--- a/Master/texmf-dist/doc/latex-dev/graphics/mathcolor.pdf
+++ b/Master/texmf-dist/doc/latex-dev/graphics/mathcolor.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/graphics/rotating.pdf b/Master/texmf-dist/doc/latex-dev/graphics/rotating.pdf
index 5529771dcdc..802e0b47168 100644
--- a/Master/texmf-dist/doc/latex-dev/graphics/rotating.pdf
+++ b/Master/texmf-dist/doc/latex-dev/graphics/rotating.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/graphics/rotex.pdf b/Master/texmf-dist/doc/latex-dev/graphics/rotex.pdf
index d7b41106d8e..acd205bc79c 100644
--- a/Master/texmf-dist/doc/latex-dev/graphics/rotex.pdf
+++ b/Master/texmf-dist/doc/latex-dev/graphics/rotex.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/graphics/trig.pdf b/Master/texmf-dist/doc/latex-dev/graphics/trig.pdf
index 52f717b3f59..6f0312bf7a4 100644
--- a/Master/texmf-dist/doc/latex-dev/graphics/trig.pdf
+++ b/Master/texmf-dist/doc/latex-dev/graphics/trig.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/tools/README.md b/Master/texmf-dist/doc/latex-dev/tools/README.md
index 7bef1f9e74d..ab2f88188ce 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/README.md
+++ b/Master/texmf-dist/doc/latex-dev/tools/README.md
@@ -1,7 +1,7 @@
The LaTeX `tools` bundle
========================
-Release 2022-06-01 pre-release 1
+Release 2022-06-01 pre-release 3
Overview
--------
@@ -51,4 +51,4 @@ of the package.
-----
-<p>Copyright (C) 1993-2021 The LaTeX Project <br />
+<p>Copyright (C) 1993-2022 The LaTeX Project <br />
diff --git a/Master/texmf-dist/doc/latex-dev/tools/afterpage.pdf b/Master/texmf-dist/doc/latex-dev/tools/afterpage.pdf
index f84e92a9b69..2a62543a5fb 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/afterpage.pdf
+++ b/Master/texmf-dist/doc/latex-dev/tools/afterpage.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/tools/array.pdf b/Master/texmf-dist/doc/latex-dev/tools/array.pdf
index 408ce71a096..1464eeed558 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/array.pdf
+++ b/Master/texmf-dist/doc/latex-dev/tools/array.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/tools/bm.pdf b/Master/texmf-dist/doc/latex-dev/tools/bm.pdf
index 88beef01cd0..d69a2ff80ae 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/bm.pdf
+++ b/Master/texmf-dist/doc/latex-dev/tools/bm.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/tools/calc.pdf b/Master/texmf-dist/doc/latex-dev/tools/calc.pdf
index 160aca5e234..1b268e31abc 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/calc.pdf
+++ b/Master/texmf-dist/doc/latex-dev/tools/calc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/tools/dcolumn.pdf b/Master/texmf-dist/doc/latex-dev/tools/dcolumn.pdf
index 507d7422d78..b27ae7d9c1f 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/dcolumn.pdf
+++ b/Master/texmf-dist/doc/latex-dev/tools/dcolumn.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/tools/delarray.pdf b/Master/texmf-dist/doc/latex-dev/tools/delarray.pdf
index 56fc25969f8..c104cbde529 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/delarray.pdf
+++ b/Master/texmf-dist/doc/latex-dev/tools/delarray.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/tools/enumerate.pdf b/Master/texmf-dist/doc/latex-dev/tools/enumerate.pdf
index 74229da1afe..4c8e5572459 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/enumerate.pdf
+++ b/Master/texmf-dist/doc/latex-dev/tools/enumerate.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/tools/fileerr.pdf b/Master/texmf-dist/doc/latex-dev/tools/fileerr.pdf
index e8893077a3a..9b5f652c8a0 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/fileerr.pdf
+++ b/Master/texmf-dist/doc/latex-dev/tools/fileerr.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/tools/fontsmpl.pdf b/Master/texmf-dist/doc/latex-dev/tools/fontsmpl.pdf
index 7672a041962..7748fabbd80 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/fontsmpl.pdf
+++ b/Master/texmf-dist/doc/latex-dev/tools/fontsmpl.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/tools/ftnright.pdf b/Master/texmf-dist/doc/latex-dev/tools/ftnright.pdf
index 1da7644d3f8..696be32fd87 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/ftnright.pdf
+++ b/Master/texmf-dist/doc/latex-dev/tools/ftnright.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/tools/hhline.pdf b/Master/texmf-dist/doc/latex-dev/tools/hhline.pdf
index a5c7d3dd823..b5a6e71e1da 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/hhline.pdf
+++ b/Master/texmf-dist/doc/latex-dev/tools/hhline.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/tools/indentfirst.pdf b/Master/texmf-dist/doc/latex-dev/tools/indentfirst.pdf
index 386a69ce15c..a9e20d62442 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/indentfirst.pdf
+++ b/Master/texmf-dist/doc/latex-dev/tools/indentfirst.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/tools/layout.pdf b/Master/texmf-dist/doc/latex-dev/tools/layout.pdf
index eba30ca7f0f..3fe02fe514a 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/layout.pdf
+++ b/Master/texmf-dist/doc/latex-dev/tools/layout.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/tools/longtable.pdf b/Master/texmf-dist/doc/latex-dev/tools/longtable.pdf
index 16112ac0ba6..2b265b2073b 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/longtable.pdf
+++ b/Master/texmf-dist/doc/latex-dev/tools/longtable.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/tools/multicol.pdf b/Master/texmf-dist/doc/latex-dev/tools/multicol.pdf
index 35c3a483642..5b5cc8fa6f4 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/multicol.pdf
+++ b/Master/texmf-dist/doc/latex-dev/tools/multicol.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/tools/rawfonts.pdf b/Master/texmf-dist/doc/latex-dev/tools/rawfonts.pdf
index 6b8d077837b..92be34bcb74 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/rawfonts.pdf
+++ b/Master/texmf-dist/doc/latex-dev/tools/rawfonts.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/tools/shellesc.pdf b/Master/texmf-dist/doc/latex-dev/tools/shellesc.pdf
index c9342b80e64..14db60194a0 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/shellesc.pdf
+++ b/Master/texmf-dist/doc/latex-dev/tools/shellesc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/tools/showkeys.pdf b/Master/texmf-dist/doc/latex-dev/tools/showkeys.pdf
index 1c769e35604..b7e96c83874 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/showkeys.pdf
+++ b/Master/texmf-dist/doc/latex-dev/tools/showkeys.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/tools/somedefs.pdf b/Master/texmf-dist/doc/latex-dev/tools/somedefs.pdf
index 87faf6ff10d..a810649ff5f 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/somedefs.pdf
+++ b/Master/texmf-dist/doc/latex-dev/tools/somedefs.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/tools/tabularx.pdf b/Master/texmf-dist/doc/latex-dev/tools/tabularx.pdf
index 179c1ece888..56f30d5d1e5 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/tabularx.pdf
+++ b/Master/texmf-dist/doc/latex-dev/tools/tabularx.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/tools/theorem.pdf b/Master/texmf-dist/doc/latex-dev/tools/theorem.pdf
index 7d69fb0ecfc..28b67d77883 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/theorem.pdf
+++ b/Master/texmf-dist/doc/latex-dev/tools/theorem.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/tools/tools-overview.pdf b/Master/texmf-dist/doc/latex-dev/tools/tools-overview.pdf
index fc84fd78282..12bb07c3499 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/tools-overview.pdf
+++ b/Master/texmf-dist/doc/latex-dev/tools/tools-overview.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/tools/trace.pdf b/Master/texmf-dist/doc/latex-dev/tools/trace.pdf
index 28b75da6e37..1add25be435 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/trace.pdf
+++ b/Master/texmf-dist/doc/latex-dev/tools/trace.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/tools/varioref.pdf b/Master/texmf-dist/doc/latex-dev/tools/varioref.pdf
index 5c88d950397..952b8bc5a44 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/varioref.pdf
+++ b/Master/texmf-dist/doc/latex-dev/tools/varioref.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/tools/verbatim.pdf b/Master/texmf-dist/doc/latex-dev/tools/verbatim.pdf
index 8b550393ee4..d366ab214cc 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/verbatim.pdf
+++ b/Master/texmf-dist/doc/latex-dev/tools/verbatim.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/tools/xr.pdf b/Master/texmf-dist/doc/latex-dev/tools/xr.pdf
index 0663e1f55e2..62f993eab9f 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/xr.pdf
+++ b/Master/texmf-dist/doc/latex-dev/tools/xr.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex-dev/tools/xspace.pdf b/Master/texmf-dist/doc/latex-dev/tools/xspace.pdf
index dcb1e021a86..bfb3a44214b 100644
--- a/Master/texmf-dist/doc/latex-dev/tools/xspace.pdf
+++ b/Master/texmf-dist/doc/latex-dev/tools/xspace.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3build/CHANGELOG.md b/Master/texmf-dist/doc/latex/l3build/CHANGELOG.md
index a8002e8d80a..129cdab7b90 100644
--- a/Master/texmf-dist/doc/latex/l3build/CHANGELOG.md
+++ b/Master/texmf-dist/doc/latex/l3build/CHANGELOG.md
@@ -7,6 +7,16 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2022-03-15]
+
+### Changed
+- When `\pdfmeta_set_regression_data:` is defined it is used
+ to set metadata
+- Support multiple configurations in bundles
+
+### Fixed
+- Correctly normalize luaotfload font cache path
+
## [2022-02-24]
### Fixed
@@ -574,7 +584,8 @@ this project uses date-based 'snapshot' version identifiers.
- Rationalise short option names: removed `-d`, `-E`, `-r`
- Target `cmdcheck`: specific to LaTeX kernel work
-[Unreleased]: https://github.com/latex3/l3build/compare/2022-02-24...HEAD
+[Unreleased]: https://github.com/latex3/l3build/compare/2022-03-15...HEAD
+[2022-03-15]: https://github.com/latex3/l3build/compare/2022-02-24...2022-03-15
[2022-02-24]: https://github.com/latex3/l3build/compare/2021-12-14...2022-02-24
[2021-12-14]: https://github.com/latex3/l3build/compare/2021-12-09...2021-12-14
[2021-12-09]: https://github.com/latex3/l3build/compare/2021-12-06...2021-12-09
diff --git a/Master/texmf-dist/doc/latex/l3build/README.md b/Master/texmf-dist/doc/latex/l3build/README.md
index d2cc67987db..67f37bd53d6 100644
--- a/Master/texmf-dist/doc/latex/l3build/README.md
+++ b/Master/texmf-dist/doc/latex/l3build/README.md
@@ -1,7 +1,7 @@
l3build: a testing and building system for LaTeX
=================================================
-Release 2022-02-24
+Release 2022-03-15
Overview
--------
diff --git a/Master/texmf-dist/doc/latex/l3build/l3build.pdf b/Master/texmf-dist/doc/latex/l3build/l3build.pdf
index 9e229e7248c..def5d5ec3df 100644
--- a/Master/texmf-dist/doc/latex/l3build/l3build.pdf
+++ b/Master/texmf-dist/doc/latex/l3build/l3build.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/man/man1/l3build.1 b/Master/texmf-dist/doc/man/man1/l3build.1
index 1eaa9ca8651..2329238b1a2 100644
--- a/Master/texmf-dist/doc/man/man1/l3build.1
+++ b/Master/texmf-dist/doc/man/man1/l3build.1
@@ -1,4 +1,4 @@
-.TH l3build 1 "2022-02-24"
+.TH l3build 1 "2022-03-15"
.SH NAME
l3build \- Checking and building packages
.SH SYNOPSIS
diff --git a/Master/texmf-dist/doc/man/man1/l3build.man1.pdf b/Master/texmf-dist/doc/man/man1/l3build.man1.pdf
index 8c53b2dd797..8a26a854238 100644
--- a/Master/texmf-dist/doc/man/man1/l3build.man1.pdf
+++ b/Master/texmf-dist/doc/man/man1/l3build.man1.pdf
Binary files differ
diff --git a/Master/texmf-dist/scripts/l3build/l3build-check.lua b/Master/texmf-dist/scripts/l3build/l3build-check.lua
index 65ac2222717..f016c25a62b 100644
--- a/Master/texmf-dist/scripts/l3build/l3build-check.lua
+++ b/Master/texmf-dist/scripts/l3build/l3build-check.lua
@@ -147,7 +147,7 @@ local function normalize_log(content,engine,errlevels)
-- Images
line = gsub(line, "<" .. pattern .. ">", "<../%1>")
-- luaotfload files start with keywords
- line = gsub(line, "from " .. pattern .. "%(", "from. ./%1(")
+ line = gsub(line, "from " .. pattern .. "$", "from ../%1")
line = gsub(line, ": " .. pattern .. "%)", ": ../%1)")
-- Deal with XeTeX specials
if match(line, "^%.+\\XeTeX.?.?.?file") then
diff --git a/Master/texmf-dist/scripts/l3build/l3build.lua b/Master/texmf-dist/scripts/l3build/l3build.lua
index 744f7628b8c..80a7b6e3d01 100755
--- a/Master/texmf-dist/scripts/l3build/l3build.lua
+++ b/Master/texmf-dist/scripts/l3build/l3build.lua
@@ -25,7 +25,7 @@ for those people who are interested.
--]]
-- Version information
-release_date = "2022-02-24"
+release_date = "2022-03-15"
-- File operations are aided by the LuaFileSystem module
local lfs = require("lfs")
@@ -134,7 +134,7 @@ else
end
if #checkconfigs > 1 then
- if options["target"] == "check" then
+ if options["target"] == "check" or options["target"] == "bundlecheck" then
local errorlevel = 0
local failed = { }
for i = 1, #checkconfigs do
diff --git a/Master/texmf-dist/source/latex-dev/amsmath/amsmath.dtx b/Master/texmf-dist/source/latex-dev/amsmath/amsmath.dtx
index d810e921db4..52509f95449 100644
--- a/Master/texmf-dist/source/latex-dev/amsmath/amsmath.dtx
+++ b/Master/texmf-dist/source/latex-dev/amsmath/amsmath.dtx
@@ -86,7 +86,7 @@ Bug reports can be opened (category \texttt{#1}) at\\%
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesPackage{amsmath}[2021/10/15 v2.17l AMS math features]
+\ProvidesPackage{amsmath}[2022/02/03 v2.17m AMS math features]
% \end{macrocode}
%
% \section{Catcode defenses}
@@ -6130,15 +6130,16 @@ Cannot use `split' here;\MessageBreak trying to recover with `aligned'}%
% in his \fn{amstex.doc} Spivak indicates those commands should never
% be used on a first or last line. Perhaps better to leave the
% question open unless/until real-life examples turn up.
+% \changes{v2.17m}{2022/02/03}{Make \cs{shoveright} robust (if def is not trival)}
% \begin{macrocode}
\iftagsleft@
- \def\shoveright#1{%
+ \protected\def\shoveright#1{%
#1%
\hfilneg
\hskip\multlinegap
}
\else
- \def\shoveright#1{%
+ \protected\def\shoveright#1{%
#1%
\hfilneg
\iftag@
@@ -6153,12 +6154,14 @@ Cannot use `split' here;\MessageBreak trying to recover with `aligned'}%
\fi
}
\fi
-
+% \end{macrocode}
+% \changes{v2.17m}{2022/02/03}{Make \cs{shoveleft} robust (if def is not trival)}
+% \begin{macrocode}
\if@fleqn
\def\shoveleft#1{#1}%
\else
\iftagsleft@
- \def\shoveleft#1{%
+ \protected\def\shoveleft#1{%
\setboxz@h{$\m@th\displaystyle{}#1$}%
\setbox\@ne\hbox{$\m@th\displaystyle#1$}%
\hfilneg
@@ -6173,17 +6176,23 @@ Cannot use `split' here;\MessageBreak trying to recover with `aligned'}%
\hskip\multlinegap
\fi
\hskip.5\wd\@ne
- \hskip-.5\wdz@
+% \end{macrocode}
+% \changes{v2.17m}{2022/02/03}{Added missing \cs{relax} for (gh/716)}
+% \begin{macrocode}
+ \hskip-.5\wdz@ \relax
#1%
}
\else
- \def\shoveleft#1{%
+ \protected\def\shoveleft#1{%
\setboxz@h{$\m@th\displaystyle{}#1$}%
\setbox\@ne\hbox{$\m@th\displaystyle#1$}%
\hfilneg
\hskip\multlinegap
\hskip.5\wd\@ne
- \hskip-.5\wdz@
+% \end{macrocode}
+% \changes{v2.17m}{2022/02/03}{Added missing \cs{relax} for (gh/716)}
+% \begin{macrocode}
+ \hskip-.5\wdz@ \relax
#1%
}
\fi
diff --git a/Master/texmf-dist/source/latex-dev/amsmath/amsopn.dtx b/Master/texmf-dist/source/latex-dev/amsmath/amsopn.dtx
index 20e63b63d78..22801e8cf13 100644
--- a/Master/texmf-dist/source/latex-dev/amsmath/amsopn.dtx
+++ b/Master/texmf-dist/source/latex-dev/amsmath/amsopn.dtx
@@ -58,7 +58,7 @@ Bug reports can be opened (category \texttt{#1}) at\\%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
[1994/12/01]% LaTeX date must December 1994 or later
-\ProvidesPackage{amsopn}[2021/08/26 v2.02 operator names]
+\ProvidesPackage{amsopn}[2022/01/20 v2.03 operator names]
% \end{macrocode}
%
% What \cs{nolimits@} does is keep a \cn{limits} typed by the user
@@ -198,8 +198,16 @@ Bug reports can be opened (category \texttt{#1}) at\\%
% more accessible so that users can call this font for use in special
% constructs that are not ordinary operator names but conceptually
% related.
+%
+% \cs{operator@font} is also declared by the \LaTeX{} kernel (for
+% at least 14 years), thus defining it here effectively means
+% ``resetting it'' to the kernel value, which is counterproductive
+% in situations where the user (or a class) has altered its
+% definition and at a later point \pkg{amsopn} got added.
+% \changes{v2.03}{2022/01/20}{Do not reset \cs{operator@font} it is
+% already defined in the LaTeX kernel (gh/734)}
% \begin{macrocode}
-\def\operator@font{\mathgroup\symoperators}
+%\def\operator@font{\mathgroup\symoperators} % commented out in 2.03
\def\operatorfont{\operator@font}
% \end{macrocode}
% \end{macro}
diff --git a/Master/texmf-dist/source/latex-dev/base/latexrelease.dtx b/Master/texmf-dist/source/latex-dev/base/latexrelease.dtx
index efdfa8c418f..294007553d3 100644
--- a/Master/texmf-dist/source/latex-dev/base/latexrelease.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/latexrelease.dtx
@@ -40,7 +40,7 @@
%<*latexrelease>
% \fi
% \ProvidesFile{latexrelease.dtx}
- [2021/04/29 v1.0n LaTeX release emulation and tests
+ [2022/02/28 v1.0o LaTeX release emulation and tests
(including releases up to \latexreleaseversion)]
% \iffalse
%</latexrelease>
@@ -487,10 +487,9 @@
% \begin{macro}{\sourceLaTeXdate}
% \changes{v1.0l}{2021/01/23}{\cs{sourceLaTeXdate} added}
% \changes{v1.0m}{2021/03/18}{Define \cs{sourceLaTeXdate} conditionally}
-% Store the original \LaTeX{} format version
-% as a number in the format |YYYYMMDD|. This macro has to
-% be defined conditionally, so that it isn't changed in case
-% \file{latexrelease.sty} is loaded twice (for tests), but it
+% Store the original \LaTeX{} format version as a number in the format
+% |YYYYMMDD |. This macro has to be defined conditionally, so that it
+% isn't changed in case \file{latexrelease.sty} is reloaded, but it
% can't be defined in the kernel only, otherwise
% \file{latexrelease.sty} wouldn't work in older \LaTeX{} due
% to the missing macro.
@@ -619,7 +618,7 @@ of this package available from CTAN}
\catcode58=11 % :
\catcode126=10 % ~
\catcode32=09 % <space>
- \xdef\latexrelease@postexpl{\unexpanded{%
+ \xdef\latexrelease@postltexpl{\unexpanded{%
%<@@=latexrelease>
% \end{macrocode}
%
@@ -691,14 +690,13 @@ of this package available from CTAN}
% store each in \cs{l_@@_restores_tl}, save a copy, and redefine each.
% \begin{macrocode}
\tl_clear_new:N \l_@@_restores_tl
-\cs_gset:Npn \@@_tmp:w #1 #2
+\cs_gset:Npn \@@_redefines:w #1 #2
{
- \quark_if_recursion_tail_stop_do:Nn #1
- { \cs_undefine:N \@@_tmp:w }
+ \quark_if_recursion_tail_stop:N #1
\tl_put_right:Nn \l_@@_restores_tl {#1}
\cs_set_eq:cN { @@_ \cs_to_str:N #1 } #1
\cs_set_eq:NN #1 #2
- \@@_tmp:w
+ \@@_redefines:w
}
% \end{macrocode}
%
@@ -731,12 +729,12 @@ of this package available from CTAN}
% \end{description}
% And here we go:
% \begin{macrocode}
-\@@_tmp:w
+\@@_redefines:w
\__kernel_chk_if_free_cs:N \use_none:n
\e@alloc \@@_e@alloc:NnnnnN
\__kernel_msg_error:nnx \use_none:nnn
\msg_new:nnnn \msg_gset:nnnn
- \NewDocumentCommand \DeclareDocumentCommand
+ % \NewDocumentCommand \DeclareDocumentCommand % after ltcmd.dtx
\newcommand \@@_declare_command:w
% \end{macrocode}
% Temp addition \ldots
@@ -752,6 +750,22 @@ of this package available from CTAN}
\msg_redirect_name:nnn { hooks } { exists } { none }
% \end{macrocode}
%
+% Now a one-off for |ltcmd.dtx|: we need to make \cs{NewDocumentCommand}
+% not complain on an already existing command, but it has to be done
+% after \cs{NewDocumentCommand} is defined, so this is separate from
+% the \cs{latexrelease@postltexpl} actions above:
+% \changes{v1.0o}{2022/02/28}
+% {Move most redefinitions to right after ltexpl.dtx}
+% \begin{macrocode}
+\cs_gset_protected:Npn \latexrelease@postltcmd
+ {
+ \@@_redefines:w
+ \NewDocumentCommand \DeclareDocumentCommand
+ \q_recursion_tail \q_recursion_tail
+ \q_recursion_stop
+ }
+% \end{macrocode}
+%
% \begin{macrocode}
}}%
\endgroup
diff --git a/Master/texmf-dist/source/latex-dev/base/latexrelease.ins b/Master/texmf-dist/source/latex-dev/base/latexrelease.ins
index 42cb5885685..cfba0f5c6e0 100644
--- a/Master/texmf-dist/source/latex-dev/base/latexrelease.ins
+++ b/Master/texmf-dist/source/latex-dev/base/latexrelease.ins
@@ -93,7 +93,7 @@ extension .ins) which are part of the distribution.
\from{ltluatex.dtx} {latexrelease}% empty
\from{ltexpl.dtx} {latexrelease}% empty
\from{ltdefns.dtx} {latexrelease}%
- \from{ltcmd.dtx} {latexrelease}%
+ \from{ltcmd.dtx} {latexrelease}% L3 layer module
\from{lthooks.dtx} {latexrelease}% L3 layer module
\from{ltcmdhooks.dtx} {latexrelease}% L3 layer module
\from{ltalloc.dtx} {latexrelease}% empty
diff --git a/Master/texmf-dist/source/latex-dev/base/ltbibl.dtx b/Master/texmf-dist/source/latex-dev/base/ltbibl.dtx
index 9824ca539fd..4c219657b87 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltbibl.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltbibl.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltbibl.dtx}
- [2020/12/10 v1.1s LaTeX Kernel (Bibliography)]
+ [2022/03/10 v1.1t LaTeX Kernel (Bibliography)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltbibl.dtx}
@@ -199,8 +199,41 @@
% \begin{macro}{\cite}
% \changes{v1.1j}{1995/10/16}{(DPC) Make robust}
% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2022/06/01}%
+%<latexrelease> {\cite}{check for blank}%
\DeclareRobustCommand\cite{%
- \@ifnextchar [{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}}
+ \@ifnextchar [{\@tempswatrue\@citex@checkblank}{\@tempswafalse\@citex@checkblank[]}}
+% \end{macrocode}
+% Due to the way \cs{@for} as used in \cs{@citex} behaves an empty
+% argument to \cs{cite} did not produce any warning for a missing
+% citation. So we now inject a command before calling \cs{@citex} that
+% does the checking for us. It is not done in \cs{@citex} directly,
+% because that command is altered by a number of packages/classes
+% and this way it is more likely that the check survives.
+% \changes{v1.1t}{2022/03/10}{Ensure that an empty argument generates
+% a warning (gh/790)}
+% \begin{macrocode}
+\def\@citex@checkblank[#1]#2{%
+ \IfBlankTF {#2}%
+ {\@citex[#1]{\space}}%
+ {\@citex[#1]{#2}}%
+}
+%</2ekernel|latexrelease>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\cite}{check for blank}%
+%<latexrelease>
+%<latexrelease>\DeclareRobustCommand\cite{%
+%<latexrelease> \@ifnextchar [{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}}
+%<latexrelease>\let\@citex@checkblank\@undefined
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
% \end{macrocode}
% \end{macro}
%
diff --git a/Master/texmf-dist/source/latex-dev/base/ltcmd.dtx b/Master/texmf-dist/source/latex-dev/base/ltcmd.dtx
index bf7ae4ea246..f52b32479ed 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltcmd.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltcmd.dtx
@@ -34,8 +34,8 @@
%%% From File: ltcmd.dtx
%
% \begin{macrocode}
-\def\ltcmdversion{v1.0j}
-\def\ltcmddate{2021-12-31}
+\def\ltcmdversion{v1.0k}
+\def\ltcmddate{2022-02-28}
% \end{macrocode}
%
%<*driver>
@@ -4716,6 +4716,27 @@
% \end{macrocode}
% \end{macro}
%
+%
+% \begin{macro}{\IfBlankT, \IfBlankF, \IfBlankTF}
+% Another simple re-naming.
+% \changes{v1.0k}{2022/02/19}{Added \cs{IfBlankTF} and friends}
+% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{2022/06/01}%
+%<latexrelease> {\IfBlankTF}{Testing~for~empty~or~blank}%
+\cs_new_eq:NN \IfBlankF \tl_if_blank:nF
+\cs_new_eq:NN \IfBlankT \tl_if_blank:nT
+\cs_new_eq:NN \IfBlankTF \tl_if_blank:nTF
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{2021/11/15}%
+%<latexrelease> {\IfBlankTF}{Testing~for~empty~or~blank}%
+%<latexrelease>\cs_undefine:N \IfBlankF
+%<latexrelease>\cs_undefine:N \IfBlankT
+%<latexrelease>\cs_undefine:N \IfBlankTF
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\ProcessedArgument}
% Processed arguments are returned using this name, which is reserved
% here although the definition will change.
@@ -4779,7 +4800,14 @@
%<latexrelease>
%<latexrelease>\EndModuleRelease
\ExplSyntaxOff
-%<latexrelease>\@ifundefined{ExplSyntaxOff}{}{\latexrelease@postexpl}
+% \end{macrocode}
+%
+% Now in |latexrelease| mode, redefine \cs{NewDocumentCommand} to not
+% complain on commands already defined.
+% \changes{v1.0k}{2022-02-28}
+% {Move latexrelease redefinitions from ltcmd.dtx}
+% \begin{macrocode}
+%<latexrelease>\@ifundefined{ExplSyntaxOff}{}{\latexrelease@postltcmd}
%<latexrelease>\catcode`\^^@=\@latexrelease@catcode@null\relax
%</2ekernel|latexrelease>
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex-dev/base/ltexpl.dtx b/Master/texmf-dist/source/latex-dev/base/ltexpl.dtx
index e6a83d57250..aab189bec28 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltexpl.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltexpl.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltexpl.dtx}
- [2022/01/06 v1.3e LaTeX Kernel (expl3-dependent code)]
+ [2022/02/28 v1.3f LaTeX Kernel (expl3-dependent code)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltexpl.dtx}
@@ -288,6 +288,14 @@
%<latexrelease>\EndIncludeInRelease
% \end{macrocode}
%
+% Now in |latexrelease| mode, redefine a few commands to avoid ``already
+% defined'' errors.
+% \changes{v1.3f}{2022/02/28}
+% {Move latexrelease redefinitions from ltcmd.dtx}
+% \begin{macrocode}
+%<latexrelease>\@ifundefined{ExplSyntaxOff}{}{\latexrelease@postltexpl}
+% \end{macrocode}
+%
% \changes{v1.3a}{2021/01/21}
% {Move \pkg{xparse} rollback code to \texttt{ltcmd.dtx}}
%
@@ -432,17 +440,17 @@
%<latexrelease>\IncludeInRelease{2022/06/01}%
%<latexrelease> {\fpeval}{fp and int calculations}%
\ExplSyntaxOn
-\cs_new_eq:NN \fpeval \fp_eval:n
+\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
+\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
+\cs_new_eq:NN \dimeval \dim_eval:n
+\cs_new_eq:NN \skipeval \skip_eval:n
\ExplSyntaxOff
% \end{macrocode}
% \end{macro}
@@ -452,7 +460,6 @@
%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{0000/00/00}%
%<latexrelease> {\fpeval}{fp and int calculations}%
-
%<latexrelease>
%<latexrelease>\let\fpeval\@undefined
%<latexrelease>\let\inteval\@undefined
@@ -503,7 +510,6 @@
%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{0000/00/00}%
%<latexrelease> {\ExpandArgs}{Some pre-expansion commands}%
-
%<latexrelease>
%<latexrelease>\let\UseName\@undefined
%<latexrelease>\let\ExpandArgs\@undefined
diff --git a/Master/texmf-dist/source/latex-dev/base/ltfilehook.dtx b/Master/texmf-dist/source/latex-dev/base/ltfilehook.dtx
index 533aacbf2ba..af503b262f5 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltfilehook.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltfilehook.dtx
@@ -31,8 +31,8 @@
%%% From File: ltfilehook.dtx
%
% \begin{macrocode}
-\providecommand\ltfilehookversion{v1.0l}
-\providecommand\ltfilehookdate{2021/08/27}
+\providecommand\ltfilehookversion{v1.0m}
+\providecommand\ltfilehookdate{2022/03/10}
% \end{macrocode}
%
%<*driver>
@@ -1046,7 +1046,8 @@
%
% \subsection{Selecting a file (\cs{set@curr@file})}
%
-% \begin{macro}{\set@curr@file,\@curr@file,\@curr@file@reqd}
+% \begin{macro}{\set@curr@file,\set@curr@file@nosearch}
+% \begin{macro}{\@curr@file,\@curr@file@reqd}
% \changes{v1.0f}{2021/01/31}{set \cs{protect} to \cs{string} gh/481}
% Now we hook into \cs{set@curr@file} to resolve a possible file
% substitution, and add \cs{@expl@@@filehook@set@curr@file@@nNN}
@@ -1070,13 +1071,23 @@
% control sequence.
% \changes{v1.0i}{2021/04/20}
% {Make \string~ expand to a string (tracks change in l3kernel)}
+% \changes{v1.0m}{2022/03/10}
+% {Add \cs{set@curr@file@nosearch} for \pkg{graphicx}}
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
-%<latexrelease>\IncludeInRelease{2021/06/01}%
+%<latexrelease>\IncludeInRelease{2022/06/01}%
%<latexrelease> {\set@curr@file}{Setting current file name}%
-\def\set@curr@file#1{%
+\def\set@curr@file{%
+ \begingroup
+ \set@curr@file@aux}
+\edef\set@curr@file@nosearch{%
\begingroup
+ \let\noexpand\input@path\noexpand\@empty
+ \csname seq_clear:N\endcsname
+ \expandafter\noexpand\csname l_file_search_path_seq\endcsname
+ \noexpand\set@curr@file@aux}
+\def\set@curr@file@aux#1{%
\escapechar\m@ne
\let\protect\string
\edef~{\string~}%
@@ -1117,6 +1128,32 @@
% \end{macrocode}
%
% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{2021/06/01}%
+%<latexrelease> {\set@curr@file}{Setting current file name}%
+%<latexrelease>\def\set@curr@file#1{%
+%<latexrelease> \begingroup
+%<latexrelease> \escapechar\m@ne
+%<latexrelease> \let\protect\string
+%<latexrelease> \edef~{\string~}%
+%<latexrelease> \expandafter\def\csname\expandafter\endcsname
+%<latexrelease> \expandafter{\csname\endcsname}%
+%<latexrelease> \@expl@@@filehook@if@no@extension@@nTF{#1}%
+%<latexrelease> {\@tempswatrue}{\@tempswafalse}%
+%<latexrelease> \@kernel@make@file@csname\@curr@file
+%<latexrelease> \@expl@@@filehook@resolve@file@subst@@w {#1}%
+%<latexrelease> \@expl@@@filehook@if@file@replaced@@TF
+%<latexrelease> {\@kernel@make@file@csname\@curr@file@reqd
+%<latexrelease> \@expl@@@filehook@normalize@file@name@@w{#1}%
+%<latexrelease> \if@tempswa \@expl@@@filehook@drop@extension@@N\@curr@file@reqd \fi}%
+%<latexrelease> {\if@tempswa \@expl@@@filehook@drop@extension@@N\@curr@file \fi
+%<latexrelease> \global\let\@curr@file@reqd\@curr@file}%
+%<latexrelease> \@expl@@@filehook@clear@replacement@flag@@
+%<latexrelease> \endgroup}
+%<latexrelease>\let\set@curr@file@nosearch\@undefined
+%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
+% \begin{macrocode}
%<latexrelease>\IncludeInRelease{2020/10/01}%
%<latexrelease> {\set@curr@file}{Setting current file name}%
%<latexrelease>\def\set@curr@file#1{%
@@ -1136,6 +1173,7 @@
%<latexrelease> \global\let\@curr@file@reqd\@curr@file}%
%<latexrelease> \@expl@@@filehook@clear@replacement@flag@@
%<latexrelease> \endgroup}
+%<latexrelease>\let\set@curr@file@nosearch\@undefined
%<latexrelease>\EndIncludeInRelease
% \end{macrocode}
%
@@ -1152,6 +1190,7 @@
%<latexrelease> \csname\@firstofone#1\@empty\endcsname}}%
%<latexrelease> \endgroup
%<latexrelease>}
+%<latexrelease>\let\set@curr@file@nosearch\@undefined
%<latexrelease>\EndIncludeInRelease
% \end{macrocode}
%
@@ -1159,10 +1198,12 @@
%<latexrelease>\IncludeInRelease{0000/00/00}%
%<latexrelease> {\set@curr@file}{Setting current file name}%
%<latexrelease>\let\set@curr@file\@undefined
+%<latexrelease>\let\set@curr@file@nosearch\@undefined
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
%
%
diff --git a/Master/texmf-dist/source/latex-dev/base/ltfinal.dtx b/Master/texmf-dist/source/latex-dev/base/ltfinal.dtx
index 46c7ded4aac..4f3b3f15a15 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltfinal.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltfinal.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltfinal.dtx}
- [2021/12/07 v2.2q LaTeX Kernel (Final Settings)]
+ [2022/02/20 v2.2r LaTeX Kernel (Final Settings)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltfinal.dtx}
@@ -1037,10 +1037,14 @@
% \begin{macro}{\MakeUppercase}
% \begin{macro}{\MakeUppercase}
% \begin{macro}{\@uclclist}
+% \begin{macro}{\@expl@text@lowercase@@n}
+% \begin{macro}{\@expl@text@uppercase@@n}
+% \begin{macro}{\@uclclist}
+%
%
% \changes{v1.1a}{1997/10/20}{Removed \cs{aa} and \cs{AA} from
% \cs{@uclclist} as these are macros.}
-%
+% \changes{v2.2r}{2022/02/20}{use \cs{text_lowercase:n}}%
% And whilst we're doing things with uc/lc tables, here are two
% commands to upper- and lower-case a string.
%
@@ -1051,7 +1055,18 @@
% mathematics, environment names, labels, etc. A much better
% long-term solution is to use all-caps fonts, but these aren't
% generally available.
+%
+% Two wrappers around the L3 case changing functions.
+% |\protected| to make them mostly safe as replacements for |uppercase|
+% and |\lowercase|.
% \begin{macrocode}
+\ExplSyntaxOn
+\protected\def\@expl@text@lowercase@@n{\text_lowercase:n}
+\protected\def\@expl@text@uppercase@@n{\text_uppercase:n}
+\ExplSyntaxOff
+% \end{macrocode}
+
+%% \begin{macrocode}
\DeclareRobustCommand{\MakeUppercase}[1]{{%
\def\i{I}\def\j{J}%
\def\reserved@a##1##2{\let##1##2\reserved@a}%
@@ -1059,20 +1074,16 @@
% \end{macrocode}
% Tell UTF-8 processing to process chars even though we are in an \cs{protected@edef}.
% \changes{v2.1h}{2019/09/14}{Expand UTF8 chars when case changing (github/177)}
+% \changes{v2.2r}{2022/02/20}
+% {Use \cs{@expl@text@uppercase@@n}, removing local redefinition of \cs{UTF@two@octets@noexpand}}%
% \begin{macrocode}
- \let\UTF@two@octets@noexpand\@empty
- \let\UTF@three@octets@noexpand\@empty
- \let\UTF@four@octets@noexpand\@empty
- \protected@edef\reserved@a{\uppercase{#1}}%
+ \protected@edef\reserved@a{\@expl@text@uppercase@@n{#1}}%
\reserved@a
}}
\DeclareRobustCommand{\MakeLowercase}[1]{{%
\def\reserved@a##1##2{\let##2##1\reserved@a}%
\expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
- \let\UTF@two@octets@noexpand\@empty
- \let\UTF@three@octets@noexpand\@empty
- \let\UTF@four@octets@noexpand\@empty
- \protected@edef\reserved@a{\lowercase{#1}}%
+ \protected@edef\reserved@a{\@expl@text@lowercase@@n{#1}}%
\reserved@a
}}
% \end{macrocode}
@@ -1108,6 +1119,9 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \changes{v1.0h}{1994/05/13}{Added output enc stuff}
% \changes{v1.0i}{1994/05/16}{moved output enc stuff to lfonts}
diff --git a/Master/texmf-dist/source/latex-dev/base/ltkeys.dtx b/Master/texmf-dist/source/latex-dev/base/ltkeys.dtx
index 0ff3d9cfa38..c606d8284d2 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltkeys.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltkeys.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltkeys.dtx}
- [2022/02/04 v1.0b LaTeX Kernel (Kevyal options)]
+ [2022/02/21 v1.0e LaTeX Kernel (Kevyal options)]
% \iffalse
\documentclass{l3doc}
\GetFileInfo{ltkeys.dtx}
@@ -103,6 +103,17 @@
% \cs{ProcessKeyOptions}/\cs{ProcessKeyPackageOptions} act as package options.
% \end{function}
%
+% \begin{function}{\DeclareUnknownKeyHandler}
+% \begin{syntax}
+% \cs{DeclareUnknownKeyHandler} \oarg{family} \marg{code}
+% \end{syntax}
+% The function \cs{DeclareUnknownKeyHandler} may be used to define
+% the behavior when an undefined key is encountered. The \meta{code}
+% will receive the unknown key name as |#1| and the value as |#2|.
+% These can then be processed as appropriate, e.g.~by forwarding
+% to another package.
+% \end{function}
+%
% \begin{function}{\ProcessKeyOptions}
% \begin{syntax}
% \cs{ProcessKeyOptions} \oarg{family}
@@ -153,6 +164,10 @@
% \subsection{Key properties}
%
% \begin{macro}{.code, .if, .store, .usage}
+% \changes{v1.0b}{2022/02/05}
+% {Create properties in \texttt{ltlkeys}}
+% \changes{v1.0c}{2022/02/07}
+% {Correct \texttt.{.code} property}
% \begin{macrocode}
\group_begin:
\cs_set_protected:Npn \@@_tmp:nn #1#2
@@ -164,7 +179,7 @@
\@@_tmp:nn
}
\@@_tmp:nn
- { code } { code }
+ { code:n } { code }
{ legacy_if_set:n } { if }
{ tl_set:N } { store }
{ usage:n } { usage }
@@ -196,7 +211,8 @@
% \end{macrocode}
% \end{variable}
%
-% \begin{macro}{\@@_options:Nn, \@@_options:NV}
+% \begin{macro}{\@@_options:Nn}
+% \begin{macro}{\@@_options:nN}
% \changes{v1.0b}{2022/01/15}
% {Clear option list in end-of-package hook}
% \begin{macro}{\@@_options_end:}
@@ -211,15 +227,17 @@
% in all cases.
% \begin{macrocode}
\cs_new_protected:Npn \@@_options:Nn #1#2
+ { \@@_options_expand_module:Nn \@@_options:nN {#2} #1 }
+\cs_new_protected:Npn \@@_options:nN #1#2
{
- \cs_gset_nopar:cpn { opt@fam@\@currname.\@currext } {#2}
+ \cs_gset_nopar:cpn { opt@fam@\@currname.\@currext } {#1}
\cs_set_protected:Npn \@@_option_end: { }
\clist_clear:N \l_@@_options_clist
- \@@_options_global:Nn #1 {#2}
+ \@@_options_global:Nn #2 {#1}
\@@_options_local:
- \keys_if_exist:nnF {#2} { unknown }
+ \keys_if_exist:nnF {#1} { unknown }
{
- \keys_define:nn {#2}
+ \keys_define:nn {#1}
{
unknown .code:n =
{
@@ -228,16 +246,15 @@
}
}
\cs_set_protected:Npn \@@_option_end:
- { \keys_define:nn {#2} { unknown .undefine: } }
+ { \keys_define:nn {#1} { unknown .undefine: } }
}
\bool_set_true:N \l_@@_options_loading_bool
- \keys_set:nV {#2} \l_@@_options_clist
+ \keys_set:nV {#1} \l_@@_options_clist
\bool_set_false:N \l_@@_options_loading_bool
\AtEndOfPackage { \cs_set_eq:NN \@unprocessedoptions \scan_stop: }
\@@_option_end:
- \@@_options_loaded:n {#2}
+ \@@_options_loaded:n {#1}
}
-\cs_generate_variant:Nn \@@_options:Nn { NV }
\msg_new:nnnn { keys } { option-unknown }
{ Unknown~option~'#1'~for~package~#2. }
{
@@ -247,6 +264,7 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \begin{macro}{\@@_options_global:Nn}
% Global (class) options are handled differently for \LaTeXe{} packages
@@ -355,38 +373,72 @@
%
% \subsection{The document interfaces}
%
+% \begin{macrocode}
+\cs_generate_variant:Nn \keys_define:nn { nx }
+% \end{macrocode}
+%
+% \begin{macro}{\@@_options_expand_module:Nn}
+% \changes{v1.0e}{2022/02/21}
+% {Faster approach to module expansion}
+% \begin{macro}{\@@_options_expand_module:nN}
+% To deal with active characters inside the module argument whilst also
+% expanding that argument, we use a combination of \texttt{c}- and
+% \texttt{f}-type expansion. This works as the definitions for active
+% UTF-8 bytes contain an \cs{ifincsname} test.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_options_expand_module:Nn #1#2
+ {
+ \cs:w @@_options_expand_module:nN \use:e { \cs_end: {#2} } #1
+ }
+\cs_new_protected:Npn \@@_options_expand_module:nN #1#2
+ { #2 {#1} }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
% \begin{macro}{\DeclareKeys}
+% \changes{v1.0c}{2022/02/15}{Expand module argument}
+% \changes{v1.0d}{2022/02/16}{Allow for active characters in module argument}
% 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 }
+\NewDocumentCommand \DeclareKeys { O { \@currname } +m }
+ { \@@_options_expand_module:Nn \keys_define:nn {#1} {#2} }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DeclareUnknownKeyHandler}
+% \changes{v1.0c}{2022/02/15}{Added \cs{DeclareUnknownKeysHandler}}
+% \changes{v1.0d}{2022/02/16}{Allow for active characters in module argument}
+% \changes{v1.0d}{2022/02/16}
+% {Rename \cs{DeclareUnknownKeysHandler} to \cs{DeclareUnknownKeyHandler}}
+% \begin{macrocode}
+\NewDocumentCommand \DeclareUnknownKeyHandler { O { \@currname } +m }
{
- \IfNoValueTF {#1}
- { \exp_args:NV \keys_define:nn \@currname }
- { \keys_define:nn {#1} }
- {#2}
+ \cs_set_protected:cpn { @@_unknown_handler_ #1 :nn } ##1##2 {#2}
+ \@@_options_expand_module:Nn \keys_define:nx {#1}
+ {
+ unknown .code:n =
+ \exp_not:N \exp_args:NV
+ \exp_not:c { @@_unknown_handler_ #1 :nn }
+ \exp_not:N \l_keys_key_str {####1}
+ }
}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\ProcessKeyOptions, \ProcessKeyPackageOptions}
+% \changes{v1.0c}{2022/02/15}{Expand module argument}
+% \changes{v1.0d}{2022/02/16}{Allow for active characters in module argument}
% 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} }
- }
+\NewDocumentCommand \ProcessKeyOptions { O { \@currname } }
+ { \@@_options:Nn \c_true_bool {#1} }
+\NewDocumentCommand \ProcessKeyPackageOptions { O { \@currname } }
+ { \@@_options:Nn \c_false_bool {#1} }
\@onlypreamble \ProcessKeyOptions
\@onlypreamble \ProcessKeyPackageOptions
% \end{macrocode}
@@ -462,15 +514,12 @@
% \subsection{General key setting}
%
% \begin{macro}{\SetKeys}
+% \changes{v1.0c}{2022/02/15}{Expand module argument}
+% \changes{v1.0d}{2022/02/16}{Allow for active characters in module argument}
% A simple wrapper.
% \begin{macrocode}
-\NewDocumentCommand \SetKeys { o +m }
- {
- \IfNoValueTF {#1}
- { \keys_set:Vn \@currname }
- { \keys_set:nn {#1} }
- {#2}
- }
+\NewDocumentCommand \SetKeys { O { \@currname } +m }
+ { \@@_options_expand_module:Nn \keys_set:nn {#1} {#2} }
% \end{macrocode}
% \end{macro}
%
diff --git a/Master/texmf-dist/source/latex-dev/base/ltvers.dtx b/Master/texmf-dist/source/latex-dev/base/ltvers.dtx
index 0bf753f210b..e46851de01a 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltvers.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltvers.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltvers.dtx}
- [2021/08/10 v1.1h LaTeX Kernel (Version Info)]
+ [2022/02/28 v1.1i LaTeX Kernel (Version Info)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltvers.dtx}
@@ -115,7 +115,7 @@
{2022-06-01}
%</2ekernel|latexrelease>
%<*2ekernel>
-\def\patch@level{-2}
+\def\patch@level{-3}
% \end{macrocode}
%
% \begin{macro}{\development@branch@name}
@@ -365,6 +365,8 @@
% \changes{v1.1f}{2021/03/18}{Added \cs{NewModuleRelease}.}
% \changes{v1.1g}{2021/04/16}
% {\cs{NewModuleRelease} with the same arguments as \cs{IncludeInRelease}.}
+% \changes{v1.1i}{2022/02/28}
+% {Detect a missing \cs{IncludeInRelease}\texttt{\{0000/00/00\}}.}
% \begin{macrocode}
\let\if@skipping@module\iffalse
\def\@skipping@moduletrue{\let\if@skipping@module\iftrue}
@@ -379,7 +381,7 @@
\GenericInfo{}{BEGIN module: \new@modulename\space (\new@moduledate)}%
\GenericInfo{}{ \@spaces\@spaces\@spaces\space#3\@gobble}%
\ifnum\sourceLaTeXdate<%
- \expandafter\@parse@version\new@moduledate//00\@nil\relax
+ \expandafter\@parse@version\new@moduledate//00\@nil\relax
\ifnum\expandafter\@parse@version\fmtversion//00\@nil<%
\expandafter\@parse@version\new@moduledate//00\@nil\relax
\GenericInfo{}{Skipping module \new@modulename}%
@@ -394,7 +396,19 @@
\@skipping@moduletrue
\expandafter\new@module@skip
\fi}
-\long\def\new@module@skip#1\IncludeInRelease{\IncludeInRelease}
+\long\def\new@module@skip#1\IncludeInRelease{%
+ \long\def\reserved@a##1\EndModuleRelease{}%
+ \if\relax\detokenize\expandafter{\reserved@a#1{}{}\EndModuleRelease}\relax
+ \else
+ \@latex@error{Missing mandatory \string\IncludeInRelease{0000/00/00}}\@ehc
+ \expandafter\@secondoftwo
+ \fi
+ \@gobble
+ {\@expandtwoargs\IncludeInRelease
+ {0000/00/00}{\new@modulename}%
+ {ERROR! Emergency recovery}%
+ #1}%
+ \IncludeInRelease}
\def\EndModuleRelease{%
\ifx\new@modulename\@empty
\@latex@error{Extra \string\EndModuleRelease.}\@eha
diff --git a/Master/texmf-dist/source/latex-dev/base/utf8ienc.dtx b/Master/texmf-dist/source/latex-dev/base/utf8ienc.dtx
index a0c96357a03..8789dd35efd 100644
--- a/Master/texmf-dist/source/latex-dev/base/utf8ienc.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/utf8ienc.dtx
@@ -216,7 +216,7 @@
%<+ts1> \ProvidesFile{ts1enc.dfu}
%<+x2> \ProvidesFile{x2enc.dfu}
%<+all> \ProvidesFile{utf8enc.dfu}
-%<-utf8-2018> [2021/12/13 v1.2o UTF-8 support]
+%<-utf8-2018> [2022/02/13 v1.3a UTF-8 support]
% \end{macrocode}
%
% \begin{macrocode}
@@ -363,11 +363,12 @@
% \begin{macro}{\UTFviii@two@octets@noexpand}
% \begin{macro}{\UTFviii@three@octets@noexpand}
% \begin{macro}{\UTFviii@four@octets@noexpand}
+% \changes{v1.3a}{2022/02/19}{Use \cs{unexpanded} rather than \cs{noexpand} so only takes one expansion step}%
% These temporarily prevent the active chars from expanding.
% \begin{macrocode}
-\long\def\UTF@two@octets@noexpand#1#2{\noexpand#2\noexpand}
-\long\def\UTF@three@octets@noexpand#1#2#3{\noexpand#2\noexpand#3\noexpand}
-\long\def\UTF@four@octets@noexpand#1#2#3#4{\noexpand#2\noexpand#3\noexpand#4\noexpand}
+\long\def\UTF@two@octets@noexpand#1#2#3{\unexpanded{#2#3}}
+\long\def\UTF@three@octets@noexpand#1#2#3#4{\unexpanded{#2#3#4}}
+\long\def\UTF@four@octets@noexpand#1#2#3#4#5{\unexpanded{#2#3#4#5}}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -376,11 +377,12 @@
% \begin{macro}{\UTFviii@two@octets@string}
% \begin{macro}{\UTFviii@three@octets@string}
% \begin{macro}{\UTFviii@four@octets@string}
+% \changes{v1.3a}{2022/02/19}{Use \cs{detokenize} rather than \cs{string} so only takes one expansion step}%
% And the same with \cs{string} for use in \cs{csname} constructions.
% \begin{macrocode}
-\long\def\UTF@two@octets@string#1#2{\string#2\string}
-\long\def\UTF@three@octets@string#1#2#3{\string#2\string#3\string}
-\long\def\UTF@four@octets@string#1#2#3#4{\string#2\string#3\string#4\string}
+\long\def\UTF@two@octets@string#1#2#3{\detokenize{#2#3}}
+\long\def\UTF@three@octets@string#1#2#3#4{\detokenize{#2#3#4}}
+\long\def\UTF@four@octets@string#1#2#3#4#5{\detokenize{#2#3#4#5}}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -542,15 +544,24 @@
% |\count@| and ending at |\@tempcnta|${} - 1$, each time executing
% the code in |\UTFviii@tmp|.
%
-% All this is done in a group so that temporary catcode changes
-% etc.~vanish after everything is set up.
+% Store current settings so can restore after the loops without using a group (gh/762).
+%
+% \begin{macrocode}
+\edef\reserved@a{%
+\catcode`\noexpand\~=\the\catcode`\~\relax
+\catcode`\noexpand\"=\the\catcode`\"\relax
+\uccode`\noexpand\~=\the\uccode`\~\relax
+\count@=\the\count@\relax
+\@tempcnta=\the\@tempcnta\relax
+\let\noexpand\reserved@a\relax}
+% \end{macrocode}
%
% \begin{macrocode}
-\begingroup
\catcode`\~13
\catcode`\"12
% \end{macrocode}
%
+% \changes{v1.3a}{2022/02/19}{Use local protected definitions in the character definitions}%
% \begin{macrocode}
\def\UTFviii@loop{%
\uccode`\~\count@
@@ -566,7 +577,7 @@
% C0 controls are valid UTF-8 but defined to give the ``Character not defined error''
% They may be defined with |\DeclareUnicodeCharacter|.
% \begin{macrocode}
- \def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@undefined@err{:\string~}}}
+ \def\UTFviii@tmp{\protected\edef~{\noexpand\UTFviii@undefined@err{:\string~}}}
% 0 ^^@ null
\count@"1
\@tempcnta9
@@ -588,7 +599,7 @@
% \begin{macrocode}
\count@"80
\@tempcnta"C2
- \def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@invalid@err\string~}}
+ \def\UTFviii@tmp{\protected\edef~{\noexpand\UTFviii@invalid@err\string~}}
\UTFviii@loop
% \end{macrocode}
%
@@ -597,7 +608,7 @@
% \begin{macrocode}
\count@"C2
\@tempcnta"E0
- \def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@two@octets\noexpand~}}
+ \def\UTFviii@tmp{\protected\edef~{\noexpand\UTFviii@two@octets\noexpand~}}
\UTFviii@loop
% \end{macrocode}
%
@@ -605,7 +616,7 @@
% \begin{macrocode}
\count@"E0
\@tempcnta"F0
- \def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@three@octets\noexpand~}}
+ \def\UTFviii@tmp{\protected\edef~{\noexpand\UTFviii@three@octets\noexpand~}}
\UTFviii@loop
% \end{macrocode}
%
@@ -614,7 +625,7 @@
% \begin{macrocode}
\count@"F0
\@tempcnta"F5
- \def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@four@octets\noexpand~}}
+ \def\UTFviii@tmp{\protected\edef~{\noexpand\UTFviii@four@octets\noexpand~}}
\UTFviii@loop
% \end{macrocode}
%
@@ -623,12 +634,13 @@
% \begin{macrocode}
\count@"F5
\@tempcnta"100
- \def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@invalid@err\string~}}
+ \def\UTFviii@tmp{\protected\edef~{\noexpand\UTFviii@invalid@err\string~}}
\UTFviii@loop
% \end{macrocode}
%
+% Restore values after the loops.
% \begin{macrocode}
-\endgroup
+\reserved@a
% \end{macrocode}
%
% \end{macro}
diff --git a/Master/texmf-dist/source/latex-dev/firstaid/latex2e-first-aid-for-external-files.dtx b/Master/texmf-dist/source/latex-dev/firstaid/latex2e-first-aid-for-external-files.dtx
index fb8d3401373..1e6e286a737 100644
--- a/Master/texmf-dist/source/latex-dev/firstaid/latex2e-first-aid-for-external-files.dtx
+++ b/Master/texmf-dist/source/latex-dev/firstaid/latex2e-first-aid-for-external-files.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: latex2e-first-aid-for-external-files.dtx (C) Copyright 2020-2021
+%% File: latex2e-first-aid-for-external-files.dtx (C) Copyright 2020-2022
%%
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
@@ -99,7 +99,7 @@
% release we have to make and distribute also a matching
% development release.
%
-% \StopEventually{\setlength\IndexMin{200pt} \PrintIndex }
+% \MaybeStop{\setlength\IndexMin{200pt} \PrintIndex }
%
%
% \section{The Implementation}
@@ -111,8 +111,8 @@
% \end{macrocode}
%
% \begin{macrocode}
-\def\LaTeXFirstAidDate{2021/11/11}
-\def\LaTeXFirstAidVersion{v1.0q}
+\def\LaTeXFirstAidDate{2022/02/20}
+\def\LaTeXFirstAidVersion{v1.0r}
% \end{macrocode}
%
% \begin{macrocode}
@@ -311,11 +311,12 @@
%<*kernel>
% \end{macrocode}
%
+% Bidi is now ar a new version: patches are no longer needed.
% \begin{macrocode}
-\AddToHook{file/biditools.sty/after}[firstaid]{%
- \FirstAidNeededT{biditools}{sty}%
- {2020/05/13 v2 Programming tools for bidi package}%
- {%
+%\AddToHook{file/biditools.sty/after}[firstaid]{%
+% \FirstAidNeededT{biditools}{sty}%
+% {2020/05/13 v2 Programming tools for bidi package}%
+% {%
% \end{macrocode}
% \pkg{bidi} adds some code to the beginning of \cs{document} which
% contains \cs{endgroup} and \cs{begingroup} which is no longer
@@ -324,20 +325,20 @@
% Patching \cs{document} using \cs{bidi@patchcmd} doesn't work so
% we take the extra groups out by hand:
% \begin{macrocode}
- \def\firstaid@bidi@document@patch
- \endgroup#1\begingroup#2\firstaid@bidi@document@patch
- {\unexpanded{#1#2}}%
- \edef\document{\expandafter\firstaid@bidi@document@patch\document
- \firstaid@bidi@document@patch}%
+% \def\firstaid@bidi@document@patch
+% \endgroup#1\begingroup#2\firstaid@bidi@document@patch
+% {\unexpanded{#1#2}}%
+% \edef\document{\expandafter\firstaid@bidi@document@patch\document
+% \firstaid@bidi@document@patch}%
% \end{macrocode}
% There are also some patches into \cs{enddocument}, some continue
% to go in but one fails, so we add that now into the right place.
% \begin{macrocode}
- \AddToHook{enddocument/info}%
- {\let\bidi@AfterEndDocumentCheckLabelsRerun\@firstofone
- \bidi@afterenddocumentchecklabelsrerunhook}%
- }%
-}
+% \AddToHook{enddocument/info}%
+% {\let\bidi@AfterEndDocumentCheckLabelsRerun\@firstofone
+% \bidi@afterenddocumentchecklabelsrerunhook}%
+% }%
+%}
% \end{macrocode}
%
%
@@ -559,6 +560,30 @@
}
% \end{macrocode}
%
+% \subsection{The \pkg{german} class first aid}
+%
+% Handling of \cs{protected} UTF-8
+% \begin{macrocode}
+\AddToHook{file/german.sty/after}[firstaid]{%
+ \FirstAidNeededT{german}{sty}{1998/07/08 v2.5e Support for writing german texts (br)}
+ {%
+\let\grmn@active@dq@\@active@dq
+\def\@active@dq{\protect\grmn@active@dq@}%
+\germanTeX
+}%
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\AddToHook{file/ngerman.sty/after}[firstaid]{%
+ \FirstAidNeededT{ngerman}{sty}{1998/07/08 v2.5e Support for writing german texts (br)}
+ {%
+\let\grmn@active@dq@\@active@dq
+\def\@active@dq{\protect\grmn@active@dq@}%
+\ngermanTeX
+}%
+}
+% \end{macrocode}
%
%
%
diff --git a/Master/texmf-dist/source/latex-dev/graphics/graphics.dtx b/Master/texmf-dist/source/latex-dev/graphics/graphics.dtx
index c9b381adad7..92b3c8f335a 100644
--- a/Master/texmf-dist/source/latex-dev/graphics/graphics.dtx
+++ b/Master/texmf-dist/source/latex-dev/graphics/graphics.dtx
@@ -27,7 +27,7 @@
%<driver> \ProvidesFile{graphics.drv}
% \fi
% \ProvidesFile{graphics.dtx}
- [2021/03/04 v1.4d Standard LaTeX Graphics (DPC,SPQR)]
+ [2022/03/10 v1.4e Standard LaTeX Graphics (DPC,SPQR)]
%
% \iffalse
%<*driver>
@@ -1053,33 +1053,39 @@
% \edef{macrocode}
% \end{macro}
%
-% \begin{macro}{\set@curr@file}
+% \begin{macro}{\Gin@set@curr@file}
% \begin{macro}{\quote@name}
% \changes{v1.3c}{2019/10/08}
% {Definitions added for old formats}
+% \changes{v1.4e}{2022/03/10}
+% {Use \cs{Gin@set@curr@file}, and define it appropriately}
+% We have to cope with older formats (rollback as far as 2019-10-01)
+% and Plain. Define a minimal \cs{Gin@set@curr@file} first:
% \begin{macrocode}
-\def\Gin@temp#1{%
- \begingroup
- \escapechar\m@ne
- \xdef\@curr@file{\expandafter\string\csname #1\endcsname}%
- \endgroup
-}
-\ifx\set@curr@file\@Gin@temp
- \let\set@curr@file\@undefined
-\fi
-% \end{macrocode}
-%
-% \begin{macrocode}
-\ifx\set@curr@file\@undefined
-\def\set@curr@file#1{%
+\def\Gin@set@curr@file#1{%
\begingroup
\escapechar\m@ne
\xdef\@curr@file{\expandafter\string\csname\@firstofone#1\@empty\endcsname}%
- \endgroup
-}
-\def\quote@name#1{"\quote@@name#1\@gobble""}
-\def\quote@@name#1"{#1\quote@@name}
-\def\unquote@name#1{\quote@@name#1\@gobble"}
+ \endgroup}
+% \end{macrocode}
+% Then, if \cs{set@curr@file@nosearch} is undefined, we're before
+% 2022-06-01, and if \cs{set@curr@file} is undefined, we're before
+% 2019-10-01 (aka Plain, as far as these tests are concerned). Make
+% \cs{Gin@set@curr@file} be a copy of the most recent macro:
+% \cs{set@curr@file@nosearch} if it exists, and \cs{set@curr@file}
+% otherwise. If neither exist, we also need to define
+% \cs{quote@name} et~al.
+% \begin{macrocode}
+\ifx\set@curr@file@nosearch\@undefined
+ \ifx\set@curr@file\@undefined
+ \def\quote@name#1{"\quote@@name#1\@gobble""}
+ \def\quote@@name#1"{#1\quote@@name}
+ \def\unquote@name#1{\quote@@name#1\@gobble"}
+ \else
+ \let\Gin@set@curr@file\set@curr@file
+ \fi
+\else
+ \let\Gin@set@curr@file\set@curr@file@nosearch
\fi
% \end{macrocode}
% \end{macro}
@@ -1114,8 +1120,11 @@
%
% \changes{v1.3d}{2019/11/01}
% {\cs{curr@name} now unquoted}
+% \changes{v1.4e}{2022/03/10}
+% {Use \cs{set@curr@file@nosearch} to avoid premature inclusion of
+% path from \cs{graphicspath}}
% \begin{macrocode}
- \set@curr@file{#1}%
+ \Gin@set@curr@file{#1}%
\expandafter\filename@parse\expandafter{\@curr@file}%
% \end{macrocode}
% If extension is |.gz| tack on to previous extension, eg |.eps.gz| if available.
diff --git a/Master/texmf-dist/source/latex-dev/graphics/mathcolor.dtx b/Master/texmf-dist/source/latex-dev/graphics/mathcolor.dtx
index 6ed53f8f618..2341e71e284 100644
--- a/Master/texmf-dist/source/latex-dev/graphics/mathcolor.dtx
+++ b/Master/texmf-dist/source/latex-dev/graphics/mathcolor.dtx
@@ -14,8 +14,8 @@
%%% From File: mathcolor.dtx
%
% \begin{macrocode}
-\def\mathcolorversion{v1.0a}
-\def\mathcolordate{2022/01/07}
+\def\mathcolorversion{v1.0b}
+\def\mathcolordate{2022/01/28}
% \end{macrocode}
%<*driver>
\documentclass{l3doc}
@@ -165,7 +165,17 @@
% \begin{macrocode}
\DeclareDocumentCommand \mathcolor { o m m } {
% \end{macrocode}
-% First action is to save the current color value on a stack
+% The \cs{mathcolor} is only supported in math mode because in text
+% mode it has problems scanning away a space after it, for example.
+% We therefore raise an error if it executes
+% anywhere else. The \LaTeXe{} error command is a
+% bit strangely named, because in the kernel it is only used for
+% math alphabets, but the message it gives is fine.
+% \changes{v1.0b}{2022/01/28}{Restrict command to math mode}
+% \begin{macrocode}
+ \mode_if_math:F { \non@alpherr {\mathcolor\space} }
+% \end{macrocode}
+% First real 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}
diff --git a/Master/texmf-dist/source/latex-dev/tools/array.dtx b/Master/texmf-dist/source/latex-dev/tools/array.dtx
index acee0ce5053..c9f77d77a35 100644
--- a/Master/texmf-dist/source/latex-dev/tools/array.dtx
+++ b/Master/texmf-dist/source/latex-dev/tools/array.dtx
@@ -33,7 +33,7 @@
%<+package>\DeclareCurrentRelease{}{2020-10-01}
%<+package>
%<+package>\ProvidesPackage{array}
-%<+package> [2021/10/04 v2.5f Tabular extension package (FMi)]
+%<+package> [2022/03/10 v2.5f Tabular extension package (FMi)]
%
% \fi
%
@@ -890,8 +890,8 @@
% c & 0 & 0 \\
% l & 0 & 1 \\
% r & 0 & 2 \\
-% p-arg & 0 & 3 \\
-% t-arg & 0 & 4 \\
+% m-arg & 0 & 3 \\
+% p-arg & 0 & 4 \\
% b-arg & 0 & 5 \\
% | & 1 & 0 \\
% !-arg & 1 & 1 \\
@@ -907,8 +907,8 @@
% @ & 7 & --- \\
% < & 8 & --- \\
% > & 9 & --- \\
-% p & 10 & 3 \\
-% t & 10 & 4 \\
+% m & 10 & 3 \\
+% p & 10 & 4 \\
% b & 10 & 5
% \end{tabular}
% \end{center}
diff --git a/Master/texmf-dist/source/latex/l3build/l3build.dtx b/Master/texmf-dist/source/latex/l3build/l3build.dtx
index df9d152f9e6..fbd84ff215d 100644
--- a/Master/texmf-dist/source/latex/l3build/l3build.dtx
+++ b/Master/texmf-dist/source/latex/l3build/l3build.dtx
@@ -237,7 +237,7 @@
% }^^A
% }
%
-% \date{Released 2022-02-24}
+% \date{Released 2022-03-15}
%
% \maketitle
% \tableofcontents
@@ -1545,7 +1545,7 @@
% \meta{package}|-ctan.curlopt|. This is then passed to curl using its
% |--config| commandline option. (Using an intermediate file helps
% keep \pkg{l3build} portable between systems using different
-% commandline quoting conventions. Any backslashes are doubled when writing
+% commandline quoting conventions. Any backslashes are doubled when writing
% to this file, so they do not need to be doubled in announcement and note texts.)
%
% By default the file is written into the current directory alongside
@@ -2497,48 +2497,53 @@
% environment side (as not all output can be controlled here).
% There is a limit to what can be done with the underlying PDF structure so
% there is no point entirely suppressing \texttt{Producer}: simply avoid
-% any version numbers.
+% any version numbers. If the pdfmanagement is loaded we use its function
+% if it exists.
% \begin{macrocode}
-\ifnum 0%
- \ifx\pdfoutput\@undefined\else\ifnum\pdfoutput>0 1\fi\fi
- \ifx\outputmode\@undefined\else\ifnum\outputmode>0 1\fi\fi
- >0 %
- \ifx\pdfvariable\@undefined
- \pdfinfo{/Producer (\ifx\directlua\@undefined pdf\else Lua\fi TeX)}
- \ifx\pdfinfoomitdate\@undefined\else
- \pdfinfoomitdate = 1 %
- \pdfsuppressptexinfo = \numexpr
+\ifcsname pdfmeta_set_regression_data:\endcsname
+ \csname pdfmeta_set_regression_data:\endcsname
+\else
+ \ifnum 0%
+ \ifx\pdfoutput\@undefined\else\ifnum\pdfoutput>0 1\fi\fi
+ \ifx\outputmode\@undefined\else\ifnum\outputmode>0 1\fi\fi
+ >0 %
+ \ifx\pdfvariable\@undefined
+ \pdfinfo{/Producer (\ifx\directlua\@undefined pdf\else Lua\fi TeX)}
+ \ifx\pdfinfoomitdate\@undefined\else
+ \pdfinfoomitdate = 1 %
+ \pdfsuppressptexinfo = \numexpr
+ 0
+ + 1 % PTEX.Fullbanner
+ + 2 % PTEX.FileName
+ \relax
+ \pdftrailerid{}
+ \fi
+ \else
+ \pdfextension info{/Producer (LuaTeX)}
+ \pdfvariable suppressoptionalinfo \numexpr
0
- + 1 % PTEX.Fullbanner
- + 2 % PTEX.FileName
+ + 1 % PTEX.Fullbanner
+ + 2 % PTEX.FileName
+ + 32 % CreationDate
+ + 64 % ModDate
+ + 512 % ID
\relax
- \pdftrailerid{}
\fi
\else
- \pdfextension info{/Producer (LuaTeX)}
- \pdfvariable suppressoptionalinfo \numexpr
- 0
- + 1 % PTEX.Fullbanner
- + 2 % PTEX.FileName
- + 32 % CreationDate
- + 64 % ModDate
- + 512 % ID
- \relax
- \fi
-\else
- \ifx\XeTeXversion\@undefined
- \special{! <</DocumentUUID (DocumentUUID)>> setpagedevice}
- \special{! <</InstanceUUID (InstanceUUID)>> setpagedevice}
- \else
- \special{%
- pdf: docinfo
- <<
- /Creator (TeX)
- /CreationDate ()
- /ModDate ()
- /Producer (xdvipdfmx)
- >>
- }
+ \ifx\XeTeXversion\@undefined
+ \special{! <</DocumentUUID (DocumentUUID)>> setpagedevice}
+ \special{! <</InstanceUUID (InstanceUUID)>> setpagedevice}
+ \else
+ \special{%
+ pdf: docinfo
+ <<
+ /Creator (TeX)
+ /CreationDate ()
+ /ModDate ()
+ /Producer (xdvipdfmx)
+ >>
+ }
+ \fi
\fi
\fi
% \end{macrocode}
diff --git a/Master/texmf-dist/tex/latex-dev/amsmath/amsmath.sty b/Master/texmf-dist/tex/latex-dev/amsmath/amsmath.sty
index 2643979483b..49353c0aada 100644
--- a/Master/texmf-dist/tex/latex-dev/amsmath/amsmath.sty
+++ b/Master/texmf-dist/tex/latex-dev/amsmath/amsmath.sty
@@ -27,7 +27,7 @@
\providecommand\DeclareCurrentRelease[2]{}
\DeclareRelease{}{2018-12-01}{amsmath-2018-12-01.sty}
\DeclareCurrentRelease{}{2019-04-01}
-\ProvidesPackage{amsmath}[2021/10/15 v2.17l AMS math features]
+\ProvidesPackage{amsmath}[2022/02/03 v2.17m AMS math features]
\edef\@temp{\catcode 96=\number\catcode 96 }
\catcode\string `\`=12
\def\do#1{\catcode\number`#1=\number\catcode`#1}
@@ -2695,13 +2695,13 @@ Cannot use `split' here;\MessageBreak trying to recover with `aligned'}%
\endgroup
}
\iftagsleft@
- \def\shoveright#1{%
+ \protected\def\shoveright#1{%
#1%
\hfilneg
\hskip\multlinegap
}
\else
- \def\shoveright#1{%
+ \protected\def\shoveright#1{%
#1%
\hfilneg
\iftag@
@@ -2716,12 +2716,11 @@ Cannot use `split' here;\MessageBreak trying to recover with `aligned'}%
\fi
}
\fi
-
\if@fleqn
\def\shoveleft#1{#1}%
\else
\iftagsleft@
- \def\shoveleft#1{%
+ \protected\def\shoveleft#1{%
\setboxz@h{$\m@th\displaystyle{}#1$}%
\setbox\@ne\hbox{$\m@th\displaystyle#1$}%
\hfilneg
@@ -2736,17 +2735,17 @@ Cannot use `split' here;\MessageBreak trying to recover with `aligned'}%
\hskip\multlinegap
\fi
\hskip.5\wd\@ne
- \hskip-.5\wdz@
+ \hskip-.5\wdz@ \relax
#1%
}
\else
- \def\shoveleft#1{%
+ \protected\def\shoveleft#1{%
\setboxz@h{$\m@th\displaystyle{}#1$}%
\setbox\@ne\hbox{$\m@th\displaystyle#1$}%
\hfilneg
\hskip\multlinegap
\hskip.5\wd\@ne
- \hskip-.5\wdz@
+ \hskip-.5\wdz@ \relax
#1%
}
\fi
diff --git a/Master/texmf-dist/tex/latex-dev/amsmath/amsopn.sty b/Master/texmf-dist/tex/latex-dev/amsmath/amsopn.sty
index 1e5d1e98dbf..756929315a5 100644
--- a/Master/texmf-dist/tex/latex-dev/amsmath/amsopn.sty
+++ b/Master/texmf-dist/tex/latex-dev/amsmath/amsopn.sty
@@ -23,7 +23,7 @@
%%
\NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
[1994/12/01]% LaTeX date must December 1994 or later
-\ProvidesPackage{amsopn}[2021/08/26 v2.02 operator names]
+\ProvidesPackage{amsopn}[2022/01/20 v2.03 operator names]
\def\nolimits@{\@ifnextchar\limits{\nolimits\@gobble}{\nolimits}}
\begingroup \catcode`\"=12
\ifx\Umathcode\@undefined
@@ -87,7 +87,6 @@
\def\sup{\qopname\relax m{sup}}
\def\tan{\qopname\relax o{tan}}
\def\tanh{\qopname\relax o{tanh}}
-\def\operator@font{\mathgroup\symoperators}
\def\operatorfont{\operator@font}
\def\operatornamewithlimits{\operatorname*}
\def\varlim@#1#2{%
diff --git a/Master/texmf-dist/tex/latex-dev/base/atveryend-ltx.sty b/Master/texmf-dist/tex/latex-dev/base/atveryend-ltx.sty
index 1670a18a890..2f67da6c799 100644
--- a/Master/texmf-dist/tex/latex-dev/base/atveryend-ltx.sty
+++ b/Master/texmf-dist/tex/latex-dev/base/atveryend-ltx.sty
@@ -42,8 +42,8 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%%% From File: ltfilehook.dtx
-\providecommand\ltfilehookversion{v1.0l}
-\providecommand\ltfilehookdate{2021/08/27}
+\providecommand\ltfilehookversion{v1.0m}
+\providecommand\ltfilehookdate{2022/03/10}
\ProvidesPackage{atveryend-ltx}
[2020/08/19 v1.0a
Emulation of the original atveryend package^^Jwith kernel methods]
diff --git a/Master/texmf-dist/tex/latex-dev/base/latex.ltx b/Master/texmf-dist/tex/latex-dev/base/latex.ltx
index b9cf2952fca..bd313da2fe6 100644
--- a/Master/texmf-dist/tex/latex-dev/base/latex.ltx
+++ b/Master/texmf-dist/tex/latex-dev/base/latex.ltx
@@ -705,7 +705,7 @@
\def\fmtname{LaTeX2e}
\edef\fmtversion
{2022-06-01}
-\def\patch@level{-2}
+\def\patch@level{-3}
\edef\development@branch@name{develop \the\year-\the\month-\the\day}
\iffalse
\def\reserved@a#1/#2/#3\@nil{%
@@ -853,7 +853,7 @@
\GenericInfo{}{BEGIN module: \new@modulename\space (\new@moduledate)}%
\GenericInfo{}{ \@spaces\@spaces\@spaces\space#3\@gobble}%
\ifnum\sourceLaTeXdate<%
- \expandafter\@parse@version\new@moduledate//00\@nil\relax
+ \expandafter\@parse@version\new@moduledate//00\@nil\relax
\ifnum\expandafter\@parse@version\fmtversion//00\@nil<%
\expandafter\@parse@version\new@moduledate//00\@nil\relax
\GenericInfo{}{Skipping module \new@modulename}%
@@ -868,7 +868,19 @@
\@skipping@moduletrue
\expandafter\new@module@skip
\fi}
-\long\def\new@module@skip#1\IncludeInRelease{\IncludeInRelease}
+\long\def\new@module@skip#1\IncludeInRelease{%
+ \long\def\reserved@a##1\EndModuleRelease{}%
+ \if\relax\detokenize\expandafter{\reserved@a#1{}{}\EndModuleRelease}\relax
+ \else
+ \@latex@error{Missing mandatory \string\IncludeInRelease{0000/00/00}}\@ehc
+ \expandafter\@secondoftwo
+ \fi
+ \@gobble
+ {\@expandtwoargs\IncludeInRelease
+ {0000/00/00}{\new@modulename}%
+ {ERROR! Emergency recovery}%
+ #1}%
+ \IncludeInRelease}
\def\EndModuleRelease{%
\ifx\new@modulename\@empty
\@latex@error{Extra \string\EndModuleRelease.}\@eha
@@ -1151,7 +1163,6 @@
\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
@@ -1162,7 +1173,6 @@
\msg_new:nnn { kernel } { unknown-arg-expansion }
{ Unknown~arg~expansion~"#1" }
\ExplSyntaxOff
-
%%% From File: ltdefns.dtx
\def\two@digits#1{\ifnum#1<10 0\fi\number#1}
\protected\long\def\typeout#1{\begingroup
@@ -1720,8 +1730,8 @@
\xdef#1{\the\toks@}%
\endgroup}
%%% From File: ltcmd.dtx
-\def\ltcmdversion{v1.0j}
-\def\ltcmddate{2021-12-31}
+\def\ltcmdversion{v1.0k}
+\def\ltcmddate{2022-02-28}
\message{document commands,}
\ExplSyntaxOn
\tl_new:N \l__cmd_arg_spec_tl
@@ -4323,6 +4333,9 @@
\cs_new:Npn \IfValueF { \tl_if_novalue:nT }
\cs_new:Npn \IfValueT { \tl_if_novalue:nF }
\cs_new:Npn \IfValueTF #1#2#3 { \tl_if_novalue:nTF {#1} {#3} {#2} }
+\cs_new_eq:NN \IfBlankF \tl_if_blank:nF
+\cs_new_eq:NN \IfBlankT \tl_if_blank:nT
+\cs_new_eq:NN \IfBlankTF \tl_if_blank:nTF
\tl_new:N \ProcessedArgument
\cs_new_eq:NN \ReverseBoolean \__cmd_bool_reverse:N
\cs_new_eq:NN \SplitArgument \__cmd_split_argument:nnn
@@ -13366,7 +13379,12 @@ Type H <return> for immediate help.}%
\def\bibcite{\@newl@bel b}
\let\citation\@gobble
\DeclareRobustCommand\cite{%
- \@ifnextchar [{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}}
+ \@ifnextchar [{\@tempswatrue\@citex@checkblank}{\@tempswafalse\@citex@checkblank[]}}
+\def\@citex@checkblank[#1]#2{%
+ \IfBlankTF {#2}%
+ {\@citex[#1]{\space}}%
+ {\@citex[#1]{#2}}%
+}
\def\@citex[#1]#2{\leavevmode
\let\@citea\@empty
\@cite{\@for\@citeb:=#2\do
@@ -14363,7 +14381,7 @@ Type H <return> for immediate help.}%
\__keys_tmp:nn
}
\__keys_tmp:nn
- { code } { code }
+ { code:n } { code }
{ legacy_if_set:n } { if }
{ tl_set:N } { store }
{ usage:n } { usage }
@@ -14374,15 +14392,17 @@ Type H <return> for immediate help.}%
\clist_new:N \l__keys_options_clist
\bool_new:N \l__keys_options_loading_bool
\cs_new_protected:Npn \__keys_options:Nn #1#2
+ { \__keys_options_expand_module:Nn \__keys_options:nN {#2} #1 }
+\cs_new_protected:Npn \__keys_options:nN #1#2
{
- \cs_gset_nopar:cpn { opt@fam@\@currname.\@currext } {#2}
+ \cs_gset_nopar:cpn { opt@fam@\@currname.\@currext } {#1}
\cs_set_protected:Npn \__keys_option_end: { }
\clist_clear:N \l__keys_options_clist
- \__keys_options_global:Nn #1 {#2}
+ \__keys_options_global:Nn #2 {#1}
\__keys_options_local:
- \keys_if_exist:nnF {#2} { unknown }
+ \keys_if_exist:nnF {#1} { unknown }
{
- \keys_define:nn {#2}
+ \keys_define:nn {#1}
{
unknown .code:n =
{
@@ -14391,16 +14411,15 @@ Type H <return> for immediate help.}%
}
}
\cs_set_protected:Npn \__keys_option_end:
- { \keys_define:nn {#2} { unknown .undefine: } }
+ { \keys_define:nn {#1} { unknown .undefine: } }
}
\bool_set_true:N \l__keys_options_loading_bool
- \keys_set:nV {#2} \l__keys_options_clist
+ \keys_set:nV {#1} \l__keys_options_clist
\bool_set_false:N \l__keys_options_loading_bool
\AtEndOfPackage { \cs_set_eq:NN \@unprocessedoptions \scan_stop: }
\__keys_option_end:
- \__keys_options_loaded:n {#2}
+ \__keys_options_loaded:n {#1}
}
-\cs_generate_variant:Nn \__keys_options:Nn { NV }
\msg_new:nnnn { keys } { option-unknown }
{ Unknown~option~'#1'~for~package~#2. }
{
@@ -14464,25 +14483,30 @@ Type H <return> for immediate help.}%
\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 }
+\cs_generate_variant:Nn \keys_define:nn { nx }
+\cs_new_protected:Npn \__keys_options_expand_module:Nn #1#2
{
- \IfNoValueTF {#1}
- { \__keys_options:NV \c_true_bool \@currname }
- { \__keys_options:Nn \c_true_bool {#1} }
+ \cs:w __keys_options_expand_module:nN \use:e { \cs_end: {#2} } #1
}
-\NewDocumentCommand \ProcessKeyPackageOptions { o }
+\cs_new_protected:Npn \__keys_options_expand_module:nN #1#2
+ { #2 {#1} }
+\NewDocumentCommand \DeclareKeys { O { \@currname } +m }
+ { \__keys_options_expand_module:Nn \keys_define:nn {#1} {#2} }
+\NewDocumentCommand \DeclareUnknownKeyHandler { O { \@currname } +m }
{
- \IfNoValueTF {#1}
- { \__keys_options:NV \c_false_bool \@currname }
- { \__keys_options:Nn \c_false_bool {#1} }
+ \cs_set_protected:cpn { __keys_unknown_handler_ #1 :nn } ##1##2 {#2}
+ \__keys_options_expand_module:Nn \keys_define:nx {#1}
+ {
+ unknown .code:n =
+ \exp_not:N \exp_args:NV
+ \exp_not:c { __keys_unknown_handler_ #1 :nn }
+ \exp_not:N \l_keys_key_str {####1}
+ }
}
+\NewDocumentCommand \ProcessKeyOptions { O { \@currname } }
+ { \__keys_options:Nn \c_true_bool {#1} }
+\NewDocumentCommand \ProcessKeyPackageOptions { O { \@currname } }
+ { \__keys_options:Nn \c_false_bool {#1} }
\@onlypreamble \ProcessKeyOptions
\@onlypreamble \ProcessKeyPackageOptions
\cs_new_protected:Npn \__keys_options_loaded:n #1
@@ -14536,17 +14560,12 @@ Type H <return> for immediate help.}%
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}
- }
+\NewDocumentCommand \SetKeys { O { \@currname } +m }
+ { \__keys_options_expand_module:Nn \keys_set:nn {#1} {#2} }
\ExplSyntaxOff
%%% From File: ltfilehook.dtx
-\providecommand\ltfilehookversion{v1.0l}
-\providecommand\ltfilehookdate{2021/08/27}
+\providecommand\ltfilehookversion{v1.0m}
+\providecommand\ltfilehookdate{2022/03/10}
\ExplSyntaxOn
\tl_new:N \CurrentFile
\tl_new:N \CurrentFilePath
@@ -14685,8 +14704,16 @@ Type H <return> for immediate help.}%
\cs_new_eq:NN \undeclare@file@substitution \__filehook_subst_remove:n
\ExplSyntaxOff
\ExplSyntaxOff
-\def\set@curr@file#1{%
+\def\set@curr@file{%
\begingroup
+ \set@curr@file@aux}
+\edef\set@curr@file@nosearch{%
+ \begingroup
+ \let\noexpand\input@path\noexpand\@empty
+ \csname seq_clear:N\endcsname
+ \expandafter\noexpand\csname l_file_search_path_seq\endcsname
+ \noexpand\set@curr@file@aux}
+\def\set@curr@file@aux#1{%
\escapechar\m@ne
\let\protect\string
\edef~{\string~}%
@@ -16650,23 +16677,23 @@ Type H <return> for immediate help.}%
\uccode`\^^9e=`\^^d0 % d-bar
\lccode`\^^[=`\^^[ % oe in OT1
\fi % End of reset block for 8-bit engines
+\ExplSyntaxOn
+\protected\def\@expl@text@lowercase@@n{\text_lowercase:n}
+\protected\def\@expl@text@uppercase@@n{\text_uppercase:n}
+\ExplSyntaxOff
+
+%% \begin{macrocode}
\DeclareRobustCommand{\MakeUppercase}[1]{{%
\def\i{I}\def\j{J}%
\def\reserved@a##1##2{\let##1##2\reserved@a}%
\expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
- \let\UTF@two@octets@noexpand\@empty
- \let\UTF@three@octets@noexpand\@empty
- \let\UTF@four@octets@noexpand\@empty
- \protected@edef\reserved@a{\uppercase{#1}}%
+ \protected@edef\reserved@a{\@expl@text@uppercase@@n{#1}}%
\reserved@a
}}
\DeclareRobustCommand{\MakeLowercase}[1]{{%
\def\reserved@a##1##2{\let##2##1\reserved@a}%
\expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
- \let\UTF@two@octets@noexpand\@empty
- \let\UTF@three@octets@noexpand\@empty
- \let\UTF@four@octets@noexpand\@empty
- \protected@edef\reserved@a{\lowercase{#1}}%
+ \protected@edef\reserved@a{\@expl@text@lowercase@@n{#1}}%
\reserved@a
}}
\def\@uclclist{\oe\OE\o\O\ae\AE
diff --git a/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty b/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty
index 596fc1062cd..616573fd46e 100644
--- a/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty
+++ b/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty
@@ -382,7 +382,7 @@
\GenericInfo{}{BEGIN module: \new@modulename\space (\new@moduledate)}%
\GenericInfo{}{ \@spaces\@spaces\@spaces\space#3\@gobble}%
\ifnum\sourceLaTeXdate<%
- \expandafter\@parse@version\new@moduledate//00\@nil\relax
+ \expandafter\@parse@version\new@moduledate//00\@nil\relax
\ifnum\expandafter\@parse@version\fmtversion//00\@nil<%
\expandafter\@parse@version\new@moduledate//00\@nil\relax
\GenericInfo{}{Skipping module \new@modulename}%
@@ -397,7 +397,19 @@
\@skipping@moduletrue
\expandafter\new@module@skip
\fi}
-\long\def\new@module@skip#1\IncludeInRelease{\IncludeInRelease}
+\long\def\new@module@skip#1\IncludeInRelease{%
+ \long\def\reserved@a##1\EndModuleRelease{}%
+ \if\relax\detokenize\expandafter{\reserved@a#1{}{}\EndModuleRelease}\relax
+ \else
+ \@latex@error{Missing mandatory \string\IncludeInRelease{0000/00/00}}\@ehc
+ \expandafter\@secondoftwo
+ \fi
+ \@gobble
+ {\@expandtwoargs\IncludeInRelease
+ {0000/00/00}{\new@modulename}%
+ {ERROR! Emergency recovery}%
+ #1}%
+ \IncludeInRelease}
\def\EndModuleRelease{%
\ifx\new@modulename\@empty
\@latex@error{Extra \string\EndModuleRelease.}\@eha
@@ -408,7 +420,7 @@
\@skipping@modulefalse
\fi}
\ProvidesPackage{latexrelease}
- [2021/04/29 v1.0n LaTeX release emulation and tests
+ [2022/02/28 v1.0o LaTeX release emulation and tests
(including releases up to \latexreleaseversion)]
\NeedsTeXFormat{LaTeX2e}[1996/06/01]
\@ifundefined{sourceLaTeXdate}{%
@@ -472,7 +484,7 @@ of this package available from CTAN}
\catcode58=11 % :
\catcode126=10 % ~
\catcode32=09 % <space>
- \xdef\latexrelease@postexpl{\unexpanded{%
+ \xdef\latexrelease@postltexpl{\unexpanded{%
\cs_gset_protected:Npn \__latexrelease_declare_command:w
{ \@star@or@long \__latexrelease_declare_command:Nw }
\cs_gset_protected:Npn \__latexrelease_declare_command:Nw #1
@@ -512,26 +524,32 @@ of this package available from CTAN}
{ \cs_set_eq:NN #3 \tex_undefined:D \use:n }
}
\tl_clear_new:N \l__latexrelease_restores_tl
-\cs_gset:Npn \__latexrelease_tmp:w #1 #2
+\cs_gset:Npn \__latexrelease_redefines:w #1 #2
{
- \quark_if_recursion_tail_stop_do:Nn #1
- { \cs_undefine:N \__latexrelease_tmp:w }
+ \quark_if_recursion_tail_stop:N #1
\tl_put_right:Nn \l__latexrelease_restores_tl {#1}
\cs_set_eq:cN { __latexrelease_ \cs_to_str:N #1 } #1
\cs_set_eq:NN #1 #2
- \__latexrelease_tmp:w
+ \__latexrelease_redefines:w
}
-\__latexrelease_tmp:w
+\__latexrelease_redefines:w
\__kernel_chk_if_free_cs:N \use_none:n
\e@alloc \__latexrelease_e@alloc:NnnnnN
\__kernel_msg_error:nnx \use_none:nnn
\msg_new:nnnn \msg_gset:nnnn
- \NewDocumentCommand \DeclareDocumentCommand
+ % \NewDocumentCommand \DeclareDocumentCommand % after ltcmd.dtx
\newcommand \__latexrelease_declare_command:w
\__kernel_msg_error:nnn \use_none:nnn % needed while redirect for kernel msgs doesn't work
\q_recursion_tail \q_recursion_tail
\q_recursion_stop
\msg_redirect_name:nnn { hooks } { exists } { none }
+\cs_gset_protected:Npn \latexrelease@postltcmd
+ {
+ \__latexrelease_redefines:w
+ \NewDocumentCommand \DeclareDocumentCommand
+ \q_recursion_tail \q_recursion_tail
+ \q_recursion_stop
+ }
}}%
\endgroup
%%% From File: ltdirchk.dtx
@@ -1333,6 +1351,7 @@ of this package available from CTAN}
}%
\input{expl3.ltx}
\EndIncludeInRelease
+\@ifundefined{ExplSyntaxOff}{}{\latexrelease@postltexpl}
\IncludeInRelease{2020/10/01}{\@expl@cs@to@str@@N}%
{expl3 macros added for the 2020-10-01 release}%
\ExplSyntaxOn
@@ -1366,7 +1385,6 @@ of this package available from CTAN}
\IncludeInRelease{0000/00/00}%
{\fpeval}{fp and int calculations}%
-
\let\fpeval\@undefined
\let\inteval\@undefined
\let\dimeval\@undefined
@@ -1388,7 +1406,6 @@ of this package available from CTAN}
\IncludeInRelease{0000/00/00}%
{\ExpandArgs}{Some pre-expansion commands}%
-
\let\UseName\@undefined
\let\ExpandArgs\@undefined
\EndIncludeInRelease
@@ -1872,8 +1889,8 @@ of this package available from CTAN}
\EndIncludeInRelease
%%% From File: ltcmd.dtx
-\def\ltcmdversion{v1.0j}
-\def\ltcmddate{2021-12-31}
+\def\ltcmdversion{v1.0k}
+\def\ltcmddate{2022-02-28}
\edef\@latexrelease@catcode@null{\the\catcode`\^^@ }
\catcode`\^^@=12
\ExplSyntaxOn
@@ -4492,6 +4509,19 @@ of this package available from CTAN}
\cs_new:Npn \IfValueF { \tl_if_novalue:nT }
\cs_new:Npn \IfValueT { \tl_if_novalue:nF }
\cs_new:Npn \IfValueTF #1#2#3 { \tl_if_novalue:nTF {#1} {#3} {#2} }
+\IncludeInRelease{2022/06/01}%
+ {\IfBlankTF}{Testing~for~empty~or~blank}%
+\cs_new_eq:NN \IfBlankF \tl_if_blank:nF
+\cs_new_eq:NN \IfBlankT \tl_if_blank:nT
+\cs_new_eq:NN \IfBlankTF \tl_if_blank:nTF
+\EndIncludeInRelease
+\IncludeInRelease{2021/11/15}%
+ {\IfBlankTF}{Testing~for~empty~or~blank}%
+\cs_undefine:N \IfBlankF
+\cs_undefine:N \IfBlankT
+\cs_undefine:N \IfBlankTF
+
+\EndIncludeInRelease
\tl_new:N \ProcessedArgument
\cs_new_eq:NN \ReverseBoolean \__cmd_bool_reverse:N
\cs_new_eq:NN \SplitArgument \__cmd_split_argument:nnn
@@ -4518,7 +4548,7 @@ of this package available from CTAN}
\EndModuleRelease
\ExplSyntaxOff
-\@ifundefined{ExplSyntaxOff}{}{\latexrelease@postexpl}
+\@ifundefined{ExplSyntaxOff}{}{\latexrelease@postltcmd}
\catcode`\^^@=\@latexrelease@catcode@null\relax
%%% From File: lthooks.dtx
@@ -12805,6 +12835,24 @@ of this package available from CTAN}
\EndIncludeInRelease
%%% From File: ltidxglo.dtx
%%% From File: ltbibl.dtx
+\IncludeInRelease{2022/06/01}%
+ {\cite}{check for blank}%
+\DeclareRobustCommand\cite{%
+ \@ifnextchar [{\@tempswatrue\@citex@checkblank}{\@tempswafalse\@citex@checkblank[]}}
+\def\@citex@checkblank[#1]#2{%
+ \IfBlankTF {#2}%
+ {\@citex[#1]{\space}}%
+ {\@citex[#1]{#2}}%
+}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\cite}{check for blank}%
+
+\DeclareRobustCommand\cite{%
+ \@ifnextchar [{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}}
+\let\@citex@checkblank\@undefined
+
+\EndIncludeInRelease
\IncludeInRelease{2021/06/01}%
{\nocite}{Allow nocite in preamble}%
\def\nocite#1{\@bsphack
@@ -13971,8 +14019,8 @@ of this package available from CTAN}
\endgroup%
\EndIncludeInRelease
%%% From File: ltfilehook.dtx
-\providecommand\ltfilehookversion{v1.0l}
-\providecommand\ltfilehookdate{2021/08/27}
+\providecommand\ltfilehookversion{v1.0m}
+\providecommand\ltfilehookdate{2022/03/10}
\IncludeInRelease{2020/10/01}%
{\CurrentFile}{Hook management file}%
\ExplSyntaxOn
@@ -14213,6 +14261,36 @@ of this package available from CTAN}
\let \undeclare@file@substitution \@gobble
\EndIncludeInRelease
+\IncludeInRelease{2022/06/01}%
+ {\set@curr@file}{Setting current file name}%
+\def\set@curr@file{%
+ \begingroup
+ \set@curr@file@aux}
+\edef\set@curr@file@nosearch{%
+ \begingroup
+ \let\noexpand\input@path\noexpand\@empty
+ \csname seq_clear:N\endcsname
+ \expandafter\noexpand\csname l_file_search_path_seq\endcsname
+ \noexpand\set@curr@file@aux}
+\def\set@curr@file@aux#1{%
+ \escapechar\m@ne
+ \let\protect\string
+ \edef~{\string~}%
+ \expandafter\def\csname\expandafter\endcsname
+ \expandafter{\csname\endcsname}%
+ \@expl@@@filehook@if@no@extension@@nTF{#1}%
+ {\@tempswatrue}{\@tempswafalse}%
+ \@kernel@make@file@csname\@curr@file
+ \@expl@@@filehook@resolve@file@subst@@w {#1}%
+ \@expl@@@filehook@if@file@replaced@@TF
+ {\@kernel@make@file@csname\@curr@file@reqd
+ \@expl@@@filehook@normalize@file@name@@w{#1}%
+ \if@tempswa \@expl@@@filehook@drop@extension@@N\@curr@file@reqd \fi}%
+ {\if@tempswa \@expl@@@filehook@drop@extension@@N\@curr@file \fi
+ \global\let\@curr@file@reqd\@curr@file}%
+ \@expl@@@filehook@clear@replacement@flag@@
+ \endgroup}
+\EndIncludeInRelease
\IncludeInRelease{2021/06/01}%
{\set@curr@file}{Setting current file name}%
\def\set@curr@file#1{%
@@ -14234,6 +14312,7 @@ of this package available from CTAN}
\global\let\@curr@file@reqd\@curr@file}%
\@expl@@@filehook@clear@replacement@flag@@
\endgroup}
+\let\set@curr@file@nosearch\@undefined
\EndIncludeInRelease
\IncludeInRelease{2020/10/01}%
{\set@curr@file}{Setting current file name}%
@@ -14254,6 +14333,7 @@ of this package available from CTAN}
\global\let\@curr@file@reqd\@curr@file}%
\@expl@@@filehook@clear@replacement@flag@@
\endgroup}
+\let\set@curr@file@nosearch\@undefined
\EndIncludeInRelease
\IncludeInRelease{2019/10/01}%
{\set@curr@file}{Setting current file name}%
@@ -14267,10 +14347,12 @@ of this package available from CTAN}
\csname\@firstofone#1\@empty\endcsname}}%
\endgroup
}
+\let\set@curr@file@nosearch\@undefined
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
{\set@curr@file}{Setting current file name}%
\let\set@curr@file\@undefined
+\let\set@curr@file@nosearch\@undefined
\EndIncludeInRelease
\IncludeInRelease{2020/10/01}%
{\@kernel@make@file@csname}{Make file csname}%
diff --git a/Master/texmf-dist/tex/latex-dev/base/lcyenc.dfu b/Master/texmf-dist/tex/latex-dev/base/lcyenc.dfu
index 7bb30ad93df..ae384c6bc16 100644
--- a/Master/texmf-dist/tex/latex-dev/base/lcyenc.dfu
+++ b/Master/texmf-dist/tex/latex-dev/base/lcyenc.dfu
@@ -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/12/13 v1.2o UTF-8 support]
+ [2022/02/13 v1.3a UTF-8 support]
\DeclareUnicodeCharacter{00A4}{\textcurrency}
\DeclareUnicodeCharacter{00AB}{\guillemotleft}
\DeclareUnicodeCharacter{00BB}{\guillemotright}
diff --git a/Master/texmf-dist/tex/latex-dev/base/ly1enc.dfu b/Master/texmf-dist/tex/latex-dev/base/ly1enc.dfu
index 8f20ff00ecf..e5787d34b81 100644
--- a/Master/texmf-dist/tex/latex-dev/base/ly1enc.dfu
+++ b/Master/texmf-dist/tex/latex-dev/base/ly1enc.dfu
@@ -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/12/13 v1.2o UTF-8 support]
+ [2022/02/13 v1.3a UTF-8 support]
\DeclareUnicodeCharacter{00A0}{\nobreakspace}
\DeclareUnicodeCharacter{00A1}{\textexclamdown}
\DeclareUnicodeCharacter{00A2}{\textcent}
diff --git a/Master/texmf-dist/tex/latex-dev/base/omsenc.dfu b/Master/texmf-dist/tex/latex-dev/base/omsenc.dfu
index c949332b75a..69b17696cbb 100644
--- a/Master/texmf-dist/tex/latex-dev/base/omsenc.dfu
+++ b/Master/texmf-dist/tex/latex-dev/base/omsenc.dfu
@@ -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/12/13 v1.2o UTF-8 support]
+ [2022/02/13 v1.3a UTF-8 support]
\DeclareUnicodeCharacter{00A7}{\textsection}
\DeclareUnicodeCharacter{00B6}{\textparagraph}
\DeclareUnicodeCharacter{00B7}{\textperiodcentered}
diff --git a/Master/texmf-dist/tex/latex-dev/base/ot1enc.dfu b/Master/texmf-dist/tex/latex-dev/base/ot1enc.dfu
index 24eb4158181..a152259e769 100644
--- a/Master/texmf-dist/tex/latex-dev/base/ot1enc.dfu
+++ b/Master/texmf-dist/tex/latex-dev/base/ot1enc.dfu
@@ -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/12/13 v1.2o UTF-8 support]
+ [2022/02/13 v1.3a UTF-8 support]
\DeclareUnicodeCharacter{00A0}{\nobreakspace}
\DeclareUnicodeCharacter{00A1}{\textexclamdown}
\DeclareUnicodeCharacter{00A3}{\textsterling}
diff --git a/Master/texmf-dist/tex/latex-dev/base/ot2enc.dfu b/Master/texmf-dist/tex/latex-dev/base/ot2enc.dfu
index a4da485ebb9..aa47cff7d0a 100644
--- a/Master/texmf-dist/tex/latex-dev/base/ot2enc.dfu
+++ b/Master/texmf-dist/tex/latex-dev/base/ot2enc.dfu
@@ -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/12/13 v1.2o UTF-8 support]
+ [2022/02/13 v1.3a UTF-8 support]
\DeclareUnicodeCharacter{00AB}{\guillemotleft}
\DeclareUnicodeCharacter{00BB}{\guillemotright}
\DeclareUnicodeCharacter{0131}{\i}
diff --git a/Master/texmf-dist/tex/latex-dev/base/structuredlog.sty b/Master/texmf-dist/tex/latex-dev/base/structuredlog.sty
index 37468669bf4..78bbf19b48e 100644
--- a/Master/texmf-dist/tex/latex-dev/base/structuredlog.sty
+++ b/Master/texmf-dist/tex/latex-dev/base/structuredlog.sty
@@ -42,8 +42,8 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%%% From File: ltfilehook.dtx
-\providecommand\ltfilehookversion{v1.0l}
-\providecommand\ltfilehookdate{2021/08/27}
+\providecommand\ltfilehookversion{v1.0m}
+\providecommand\ltfilehookdate{2022/03/10}
\ProvidesExplPackage
{structuredlog}{\ltfilehookdate}{\ltfilehookversion}
{Structuring the TeX transcript file}
diff --git a/Master/texmf-dist/tex/latex-dev/base/t1enc.dfu b/Master/texmf-dist/tex/latex-dev/base/t1enc.dfu
index 58307f44977..749d3d4a9bf 100644
--- a/Master/texmf-dist/tex/latex-dev/base/t1enc.dfu
+++ b/Master/texmf-dist/tex/latex-dev/base/t1enc.dfu
@@ -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/12/13 v1.2o UTF-8 support]
+ [2022/02/13 v1.3a UTF-8 support]
\DeclareUnicodeCharacter{00A0}{\nobreakspace}
\DeclareUnicodeCharacter{00A1}{\textexclamdown}
\DeclareUnicodeCharacter{00A3}{\textsterling}
diff --git a/Master/texmf-dist/tex/latex-dev/base/t2aenc.dfu b/Master/texmf-dist/tex/latex-dev/base/t2aenc.dfu
index 7565ad750cf..c99141958f6 100644
--- a/Master/texmf-dist/tex/latex-dev/base/t2aenc.dfu
+++ b/Master/texmf-dist/tex/latex-dev/base/t2aenc.dfu
@@ -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/12/13 v1.2o UTF-8 support]
+ [2022/02/13 v1.3a UTF-8 support]
\DeclareUnicodeCharacter{00A4}{\textcurrency}
\DeclareUnicodeCharacter{00A7}{\textsection}
\DeclareUnicodeCharacter{00AB}{\guillemotleft}
diff --git a/Master/texmf-dist/tex/latex-dev/base/t2benc.dfu b/Master/texmf-dist/tex/latex-dev/base/t2benc.dfu
index 38d7d3b04b7..769650ecb4e 100644
--- a/Master/texmf-dist/tex/latex-dev/base/t2benc.dfu
+++ b/Master/texmf-dist/tex/latex-dev/base/t2benc.dfu
@@ -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/12/13 v1.2o UTF-8 support]
+ [2022/02/13 v1.3a UTF-8 support]
\DeclareUnicodeCharacter{00A4}{\textcurrency}
\DeclareUnicodeCharacter{00A7}{\textsection}
\DeclareUnicodeCharacter{00AB}{\guillemotleft}
diff --git a/Master/texmf-dist/tex/latex-dev/base/t2cenc.dfu b/Master/texmf-dist/tex/latex-dev/base/t2cenc.dfu
index 3c45c22a8bd..bdd0aed8137 100644
--- a/Master/texmf-dist/tex/latex-dev/base/t2cenc.dfu
+++ b/Master/texmf-dist/tex/latex-dev/base/t2cenc.dfu
@@ -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/12/13 v1.2o UTF-8 support]
+ [2022/02/13 v1.3a UTF-8 support]
\DeclareUnicodeCharacter{00A4}{\textcurrency}
\DeclareUnicodeCharacter{00A7}{\textsection}
\DeclareUnicodeCharacter{00AB}{\guillemotleft}
diff --git a/Master/texmf-dist/tex/latex-dev/base/ts1enc.dfu b/Master/texmf-dist/tex/latex-dev/base/ts1enc.dfu
index 0e67a6cf154..cdf9b0c224d 100644
--- a/Master/texmf-dist/tex/latex-dev/base/ts1enc.dfu
+++ b/Master/texmf-dist/tex/latex-dev/base/ts1enc.dfu
@@ -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/12/13 v1.2o UTF-8 support]
+ [2022/02/13 v1.3a UTF-8 support]
\DeclareUnicodeCharacter{00A2}{\textcent}
\DeclareUnicodeCharacter{00A3}{\textsterling}
\DeclareUnicodeCharacter{00A4}{\textcurrency}
diff --git a/Master/texmf-dist/tex/latex-dev/base/utf8.def b/Master/texmf-dist/tex/latex-dev/base/utf8.def
index d26edefce1f..0492b2cf590 100644
--- a/Master/texmf-dist/tex/latex-dev/base/utf8.def
+++ b/Master/texmf-dist/tex/latex-dev/base/utf8.def
@@ -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/12/13 v1.2o UTF-8 support]
+ [2022/02/13 v1.3a UTF-8 support]
\ifx\ifincsname\@undefined % old e-pTeX or e-upTeX engines
\input utf8-2018.def
\expandafter\@firstofone
@@ -83,13 +83,13 @@
\fi
\UTFviii@four@octets@combine
}
-\long\def\UTF@two@octets@noexpand#1#2{\noexpand#2\noexpand}
-\long\def\UTF@three@octets@noexpand#1#2#3{\noexpand#2\noexpand#3\noexpand}
-\long\def\UTF@four@octets@noexpand#1#2#3#4{\noexpand#2\noexpand#3\noexpand#4\noexpand}
+\long\def\UTF@two@octets@noexpand#1#2#3{\unexpanded{#2#3}}
+\long\def\UTF@three@octets@noexpand#1#2#3#4{\unexpanded{#2#3#4}}
+\long\def\UTF@four@octets@noexpand#1#2#3#4#5{\unexpanded{#2#3#4#5}}
-\long\def\UTF@two@octets@string#1#2{\string#2\string}
-\long\def\UTF@three@octets@string#1#2#3{\string#2\string#3\string}
-\long\def\UTF@four@octets@string#1#2#3#4{\string#2\string#3\string#4\string}
+\long\def\UTF@two@octets@string#1#2#3{\detokenize{#2#3}}
+\long\def\UTF@three@octets@string#1#2#3#4{\detokenize{#2#3#4}}
+\long\def\UTF@four@octets@string#1#2#3#4#5{\detokenize{#2#3#4#5}}
\long\def\UTFviii@two@octets@combine#1#2{\expandafter
\UTFviii@defined\csname u8:\string#1\string#2\endcsname}
@@ -145,7 +145,13 @@
\expandafter\UTFviii@check@continue
\fi
}
-\begingroup
+\edef\reserved@a{%
+\catcode`\noexpand\~=\the\catcode`\~\relax
+\catcode`\noexpand\"=\the\catcode`\"\relax
+\uccode`\noexpand\~=\the\uccode`\~\relax
+\count@=\the\count@\relax
+\@tempcnta=\the\@tempcnta\relax
+\let\noexpand\reserved@a\relax}
\catcode`\~13
\catcode`\"12
\def\UTFviii@loop{%
@@ -155,7 +161,7 @@
\ifnum\count@<\@tempcnta
\expandafter\UTFviii@loop
\fi}
- \def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@undefined@err{:\string~}}}
+ \def\UTFviii@tmp{\protected\edef~{\noexpand\UTFviii@undefined@err{:\string~}}}
\count@"1
\@tempcnta9
\UTFviii@loop
@@ -167,25 +173,25 @@
\UTFviii@loop
\count@"80
\@tempcnta"C2
- \def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@invalid@err\string~}}
+ \def\UTFviii@tmp{\protected\edef~{\noexpand\UTFviii@invalid@err\string~}}
\UTFviii@loop
\count@"C2
\@tempcnta"E0
- \def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@two@octets\noexpand~}}
+ \def\UTFviii@tmp{\protected\edef~{\noexpand\UTFviii@two@octets\noexpand~}}
\UTFviii@loop
\count@"E0
\@tempcnta"F0
- \def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@three@octets\noexpand~}}
+ \def\UTFviii@tmp{\protected\edef~{\noexpand\UTFviii@three@octets\noexpand~}}
\UTFviii@loop
\count@"F0
\@tempcnta"F5
- \def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@four@octets\noexpand~}}
+ \def\UTFviii@tmp{\protected\edef~{\noexpand\UTFviii@four@octets\noexpand~}}
\UTFviii@loop
\count@"F5
\@tempcnta"100
- \def\UTFviii@tmp{\xdef~{\noexpand\UTFviii@invalid@err\string~}}
+ \def\UTFviii@tmp{\protected\edef~{\noexpand\UTFviii@invalid@err\string~}}
\UTFviii@loop
-\endgroup
+\reserved@a
\@inpenc@test
\ifx\@begindocumenthook\@undefined
\makeatother
diff --git a/Master/texmf-dist/tex/latex-dev/base/utf8enc.dfu b/Master/texmf-dist/tex/latex-dev/base/utf8enc.dfu
index 3d4fa8010a8..450cfe80844 100644
--- a/Master/texmf-dist/tex/latex-dev/base/utf8enc.dfu
+++ b/Master/texmf-dist/tex/latex-dev/base/utf8enc.dfu
@@ -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/12/13 v1.2o UTF-8 support]
+ [2022/02/13 v1.3a UTF-8 support]
\DeclareUnicodeCharacter{00A0}{\nobreakspace}
\DeclareUnicodeCharacter{00A1}{\textexclamdown}
\DeclareUnicodeCharacter{00A2}{\textcent}
diff --git a/Master/texmf-dist/tex/latex-dev/base/x2enc.dfu b/Master/texmf-dist/tex/latex-dev/base/x2enc.dfu
index 5773bce8d04..1c2eea70ab4 100644
--- a/Master/texmf-dist/tex/latex-dev/base/x2enc.dfu
+++ b/Master/texmf-dist/tex/latex-dev/base/x2enc.dfu
@@ -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/12/13 v1.2o UTF-8 support]
+ [2022/02/13 v1.3a UTF-8 support]
\DeclareUnicodeCharacter{00A4}{\textcurrency}
\DeclareUnicodeCharacter{00A7}{\textsection}
\DeclareUnicodeCharacter{00AB}{\guillemotleft}
diff --git a/Master/texmf-dist/tex/latex-dev/firstaid/everysel-ltx.sty b/Master/texmf-dist/tex/latex-dev/firstaid/everysel-ltx.sty
index 2480b6db3fa..d2f2d8d2d96 100644
--- a/Master/texmf-dist/tex/latex-dev/firstaid/everysel-ltx.sty
+++ b/Master/texmf-dist/tex/latex-dev/firstaid/everysel-ltx.sty
@@ -30,7 +30,7 @@
%% `First Aid Bundle'. You may however distribute the LaTeX `First Aid Bundle'
%% without such generated files.
%%
-%% File: latex2e-first-aid-for-external-files.dtx (C) Copyright 2020-2021
+%% File: latex2e-first-aid-for-external-files.dtx (C) Copyright 2020-2022
%%
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
diff --git a/Master/texmf-dist/tex/latex-dev/firstaid/filehook-ltx.sty b/Master/texmf-dist/tex/latex-dev/firstaid/filehook-ltx.sty
index 8ae26decc4f..2dfa89985a5 100644
--- a/Master/texmf-dist/tex/latex-dev/firstaid/filehook-ltx.sty
+++ b/Master/texmf-dist/tex/latex-dev/firstaid/filehook-ltx.sty
@@ -30,7 +30,7 @@
%% `First Aid Bundle'. You may however distribute the LaTeX `First Aid Bundle'
%% without such generated files.
%%
-%% File: latex2e-first-aid-for-external-files.dtx (C) Copyright 2020-2021
+%% File: latex2e-first-aid-for-external-files.dtx (C) Copyright 2020-2022
%%
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
diff --git a/Master/texmf-dist/tex/latex-dev/firstaid/latex2e-first-aid-for-external-files.ltx b/Master/texmf-dist/tex/latex-dev/firstaid/latex2e-first-aid-for-external-files.ltx
index cf96c582e7e..4f3e22c741f 100644
--- a/Master/texmf-dist/tex/latex-dev/firstaid/latex2e-first-aid-for-external-files.ltx
+++ b/Master/texmf-dist/tex/latex-dev/firstaid/latex2e-first-aid-for-external-files.ltx
@@ -30,12 +30,12 @@
%% `First Aid Bundle'. You may however distribute the LaTeX `First Aid Bundle'
%% without such generated files.
%%
-%% File: latex2e-first-aid-for-external-files.dtx (C) Copyright 2020-2021
+%% File: latex2e-first-aid-for-external-files.dtx (C) Copyright 2020-2022
%%
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
-\def\LaTeXFirstAidDate{2021/11/11}
-\def\LaTeXFirstAidVersion{v1.0q}
+\def\LaTeXFirstAidDate{2022/02/20}
+\def\LaTeXFirstAidVersion{v1.0r}
\ProvidesFile{latex2e-first-aid-for-external-files.ltx}
[\LaTeXFirstAidDate\space \LaTeXFirstAidVersion\space
LaTeX kernel fixes to external files and packages]
@@ -52,20 +52,6 @@
\exp_args:Ncx\str_if_eq:onT{ver@#1.#2}{#3}
}
\ExplSyntaxOff
-\AddToHook{file/biditools.sty/after}[firstaid]{%
- \FirstAidNeededT{biditools}{sty}%
- {2020/05/13 v2 Programming tools for bidi package}%
- {%
- \def\firstaid@bidi@document@patch
- \endgroup#1\begingroup#2\firstaid@bidi@document@patch
- {\unexpanded{#1#2}}%
- \edef\document{\expandafter\firstaid@bidi@document@patch\document
- \firstaid@bidi@document@patch}%
- \AddToHook{enddocument/info}%
- {\let\bidi@AfterEndDocumentCheckLabelsRerun\@firstofone
- \bidi@afterenddocumentchecklabelsrerunhook}%
- }%
-}
\AddToHook{file/dinbrief.cls/after}[firstaid]{%
\FirstAidNeededT{dinbrief}{cls}{2000/03/02 LaTeX2e class}%
{\AddToHook{env/document/begin}{\begingroup}}%
@@ -129,6 +115,22 @@
\@vwid@sift}%
}%
}
+\AddToHook{file/german.sty/after}[firstaid]{%
+ \FirstAidNeededT{german}{sty}{1998/07/08 v2.5e Support for writing german texts (br)}
+ {%
+\let\grmn@active@dq@\@active@dq
+\def\@active@dq{\protect\grmn@active@dq@}%
+\germanTeX
+}%
+}
+\AddToHook{file/ngerman.sty/after}[firstaid]{%
+ \FirstAidNeededT{ngerman}{sty}{1998/07/08 v2.5e Support for writing german texts (br)}
+ {%
+\let\grmn@active@dq@\@active@dq
+\def\@active@dq{\protect\grmn@active@dq@}%
+\ngermanTeX
+}%
+}
\ExplSyntaxOn
\sys_if_engine_luatex:T
{
diff --git a/Master/texmf-dist/tex/latex-dev/graphics/graphics.sty b/Master/texmf-dist/tex/latex-dev/graphics/graphics.sty
index 1b4989643d6..e8f630bc665 100644
--- a/Master/texmf-dist/tex/latex-dev/graphics/graphics.sty
+++ b/Master/texmf-dist/tex/latex-dev/graphics/graphics.sty
@@ -31,7 +31,7 @@
\DeclareCurrentRelease{}{2019-10-01}
\ProvidesPackage{graphics}
- [2021/03/04 v1.4d Standard LaTeX Graphics (DPC,SPQR)]
+ [2022/03/10 v1.4e Standard LaTeX Graphics (DPC,SPQR)]
\edef\Gin@codes{%
\catcode`\noexpand\^^A\the\catcode`\^^A\relax
\catcode`\noexpand\"\the\catcode`\"\relax
@@ -171,25 +171,21 @@
\let\Gin@ext\relax
\def\Gin@sepdefault{.}
\edef\Gin@gzext{\detokenize{gz}}
-\def\Gin@temp#1{%
- \begingroup
- \escapechar\m@ne
- \xdef\@curr@file{\expandafter\string\csname #1\endcsname}%
- \endgroup
-}
-\ifx\set@curr@file\@Gin@temp
- \let\set@curr@file\@undefined
-\fi
-\ifx\set@curr@file\@undefined
-\def\set@curr@file#1{%
+\def\Gin@set@curr@file#1{%
\begingroup
\escapechar\m@ne
\xdef\@curr@file{\expandafter\string\csname\@firstofone#1\@empty\endcsname}%
- \endgroup
-}
-\def\quote@name#1{"\quote@@name#1\@gobble""}
-\def\quote@@name#1"{#1\quote@@name}
-\def\unquote@name#1{\quote@@name#1\@gobble"}
+ \endgroup}
+\ifx\set@curr@file@nosearch\@undefined
+ \ifx\set@curr@file\@undefined
+ \def\quote@name#1{"\quote@@name#1\@gobble""}
+ \def\quote@@name#1"{#1\quote@@name}
+ \def\unquote@name#1{\quote@@name#1\@gobble"}
+ \else
+ \let\Gin@set@curr@file\set@curr@file
+ \fi
+\else
+ \let\Gin@set@curr@file\set@curr@file@nosearch
\fi
\def\Ginclude@graphics#1{%
\ifx\detokenize\@undefined\else
@@ -197,7 +193,7 @@
\fi
\begingroup
\let\input@path\Ginput@path
- \set@curr@file{#1}%
+ \Gin@set@curr@file{#1}%
\expandafter\filename@parse\expandafter{\@curr@file}%
\ifx\filename@ext\Gin@gzext
\expandafter\filename@parse\expandafter{\filename@base}%
diff --git a/Master/texmf-dist/tex/latex-dev/graphics/mathcolor.ltx b/Master/texmf-dist/tex/latex-dev/graphics/mathcolor.ltx
index c7d15ccd930..c7588a3e195 100644
--- a/Master/texmf-dist/tex/latex-dev/graphics/mathcolor.ltx
+++ b/Master/texmf-dist/tex/latex-dev/graphics/mathcolor.ltx
@@ -13,14 +13,15 @@
%%
%% File: mathcolor.dtx (C) Copyright 2021-2022
%%% From File: mathcolor.dtx
-\def\mathcolorversion{v1.0a}
-\def\mathcolordate{2022/01/07}
+\def\mathcolorversion{v1.0b}
+\def\mathcolordate{2022/01/28}
\ifcsname mathcolor\endcsname \endinput \fi
\ExplSyntaxOn
\seq_new:N \g__mathcolor_seq
\DeclareDocumentCommand \mathcolor { o m m } {
+ \mode_if_math:F { \non@alpherr {\mathcolor\space} }
\seq_gpush:No \g__mathcolor_seq \current@color
\group_insert_after:N \use_none:n
\IfValueTF{#1} { \color[#1]{#2} }{ \color{#2} }
diff --git a/Master/texmf-dist/tex/latex-dev/tools/array.sty b/Master/texmf-dist/tex/latex-dev/tools/array.sty
index 225321efd22..6d72accba91 100644
--- a/Master/texmf-dist/tex/latex-dev/tools/array.sty
+++ b/Master/texmf-dist/tex/latex-dev/tools/array.sty
@@ -46,7 +46,7 @@
\DeclareCurrentRelease{}{2020-10-01}
\ProvidesPackage{array}
- [2021/10/04 v2.5f Tabular extension package (FMi)]
+ [2022/03/10 v2.5f Tabular extension package (FMi)]
%%
\def\@addtopreamble#1{\xdef\@preamble{\@preamble #1}}
diff --git a/Master/texmf-dist/tex/latex/l3build/regression-test.tex b/Master/texmf-dist/tex/latex/l3build/regression-test.tex
index 2a5c29ef383..0a1ef5fef23 100644
--- a/Master/texmf-dist/tex/latex/l3build/regression-test.tex
+++ b/Master/texmf-dist/tex/latex/l3build/regression-test.tex
@@ -246,46 +246,50 @@
\pdfmapfile{pdftex.map}%
\fi
\fi
-\ifnum 0%
- \ifx\pdfoutput\@undefined\else\ifnum\pdfoutput>0 1\fi\fi
- \ifx\outputmode\@undefined\else\ifnum\outputmode>0 1\fi\fi
- >0 %
- \ifx\pdfvariable\@undefined
- \pdfinfo{/Producer (\ifx\directlua\@undefined pdf\else Lua\fi TeX)}
- \ifx\pdfinfoomitdate\@undefined\else
- \pdfinfoomitdate = 1 %
- \pdfsuppressptexinfo = \numexpr
+\ifcsname pdfmeta_set_regression_data:\endcsname
+ \csname pdfmeta_set_regression_data:\endcsname
+\else
+ \ifnum 0%
+ \ifx\pdfoutput\@undefined\else\ifnum\pdfoutput>0 1\fi\fi
+ \ifx\outputmode\@undefined\else\ifnum\outputmode>0 1\fi\fi
+ >0 %
+ \ifx\pdfvariable\@undefined
+ \pdfinfo{/Producer (\ifx\directlua\@undefined pdf\else Lua\fi TeX)}
+ \ifx\pdfinfoomitdate\@undefined\else
+ \pdfinfoomitdate = 1 %
+ \pdfsuppressptexinfo = \numexpr
+ 0
+ + 1 % PTEX.Fullbanner
+ + 2 % PTEX.FileName
+ \relax
+ \pdftrailerid{}
+ \fi
+ \else
+ \pdfextension info{/Producer (LuaTeX)}
+ \pdfvariable suppressoptionalinfo \numexpr
0
- + 1 % PTEX.Fullbanner
- + 2 % PTEX.FileName
+ + 1 % PTEX.Fullbanner
+ + 2 % PTEX.FileName
+ + 32 % CreationDate
+ + 64 % ModDate
+ + 512 % ID
\relax
- \pdftrailerid{}
\fi
\else
- \pdfextension info{/Producer (LuaTeX)}
- \pdfvariable suppressoptionalinfo \numexpr
- 0
- + 1 % PTEX.Fullbanner
- + 2 % PTEX.FileName
- + 32 % CreationDate
- + 64 % ModDate
- + 512 % ID
- \relax
- \fi
-\else
- \ifx\XeTeXversion\@undefined
- \special{! <</DocumentUUID (DocumentUUID)>> setpagedevice}
- \special{! <</InstanceUUID (InstanceUUID)>> setpagedevice}
- \else
- \special{%
- pdf: docinfo
- <<
- /Creator (TeX)
- /CreationDate ()
- /ModDate ()
- /Producer (xdvipdfmx)
- >>
- }
+ \ifx\XeTeXversion\@undefined
+ \special{! <</DocumentUUID (DocumentUUID)>> setpagedevice}
+ \special{! <</InstanceUUID (InstanceUUID)>> setpagedevice}
+ \else
+ \special{%
+ pdf: docinfo
+ <<
+ /Creator (TeX)
+ /CreationDate ()
+ /ModDate ()
+ /Producer (xdvipdfmx)
+ >>
+ }
+ \fi
\fi
\fi
\reset@catcodes