summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-06-03 03:02:26 +0000
committerNorbert Preining <norbert@preining.info>2024-06-03 03:02:26 +0000
commite83ddb0c0c40cddccb9e35b6a1f83b3a70fc2b3d (patch)
treeee8ec365464694362978c23540a534e20c29592c
parentd751a6e51be81d6c1ba797cd91d4079e7e2e407b (diff)
CTAN sync 202406030302
-rw-r--r--FILES.byname961
-rw-r--r--FILES.byname.gzbin2658761 -> 2658925 bytes
-rw-r--r--FILES.last07days623
-rw-r--r--biblio/ctan-bibdata/ctan.bib108
-rw-r--r--graphics/pgf/contrib/pmdraw/README.md (renamed from graphics/pmdraw/README.md)6
-rw-r--r--graphics/pgf/contrib/pmdraw/examples/example-1.tex (renamed from graphics/pmdraw/examples/example-1.tex)0
-rw-r--r--graphics/pgf/contrib/pmdraw/examples/example-10.tex (renamed from graphics/pmdraw/examples/example-10.tex)0
-rw-r--r--graphics/pgf/contrib/pmdraw/examples/example-11.tex (renamed from graphics/pmdraw/examples/example-11.tex)0
-rw-r--r--graphics/pgf/contrib/pmdraw/examples/example-12.tex (renamed from graphics/pmdraw/examples/example-12.tex)0
-rw-r--r--graphics/pgf/contrib/pmdraw/examples/example-13.tex (renamed from graphics/pmdraw/examples/example-13.tex)0
-rw-r--r--graphics/pgf/contrib/pmdraw/examples/example-14.tex (renamed from graphics/pmdraw/examples/example-14.tex)0
-rw-r--r--graphics/pgf/contrib/pmdraw/examples/example-15.tex (renamed from graphics/pmdraw/examples/example-15.tex)0
-rw-r--r--graphics/pgf/contrib/pmdraw/examples/example-16.tex (renamed from graphics/pmdraw/examples/example-16.tex)0
-rw-r--r--graphics/pgf/contrib/pmdraw/examples/example-17.tex (renamed from graphics/pmdraw/examples/example-17.tex)0
-rw-r--r--graphics/pgf/contrib/pmdraw/examples/example-18.tex (renamed from graphics/pmdraw/examples/example-18.tex)0
-rw-r--r--graphics/pgf/contrib/pmdraw/examples/example-19.tex (renamed from graphics/pmdraw/examples/example-19.tex)0
-rw-r--r--graphics/pgf/contrib/pmdraw/examples/example-2.tex (renamed from graphics/pmdraw/examples/example-2.tex)0
-rw-r--r--graphics/pgf/contrib/pmdraw/examples/example-20.tex (renamed from graphics/pmdraw/examples/example-20.tex)0
-rw-r--r--graphics/pgf/contrib/pmdraw/examples/example-21.tex (renamed from graphics/pmdraw/examples/example-21.tex)0
-rw-r--r--graphics/pgf/contrib/pmdraw/examples/example-22.tex (renamed from graphics/pmdraw/examples/example-22.tex)0
-rw-r--r--graphics/pgf/contrib/pmdraw/examples/example-23.tex (renamed from graphics/pmdraw/examples/example-23.tex)0
-rw-r--r--graphics/pgf/contrib/pmdraw/examples/example-24.tex (renamed from graphics/pmdraw/examples/example-24.tex)0
-rw-r--r--graphics/pgf/contrib/pmdraw/examples/example-25.tex (renamed from graphics/pmdraw/examples/example-25.tex)0
-rw-r--r--graphics/pgf/contrib/pmdraw/examples/example-3.tex (renamed from graphics/pmdraw/examples/example-3.tex)0
-rw-r--r--graphics/pgf/contrib/pmdraw/examples/example-4.tex (renamed from graphics/pmdraw/examples/example-4.tex)0
-rw-r--r--graphics/pgf/contrib/pmdraw/examples/example-5.tex (renamed from graphics/pmdraw/examples/example-5.tex)0
-rw-r--r--graphics/pgf/contrib/pmdraw/examples/example-6.tex (renamed from graphics/pmdraw/examples/example-6.tex)0
-rw-r--r--graphics/pgf/contrib/pmdraw/examples/example-7.tex (renamed from graphics/pmdraw/examples/example-7.tex)0
-rw-r--r--graphics/pgf/contrib/pmdraw/examples/example-8.tex (renamed from graphics/pmdraw/examples/example-8.tex)0
-rw-r--r--graphics/pgf/contrib/pmdraw/examples/example-9.tex (renamed from graphics/pmdraw/examples/example-9.tex)0
-rw-r--r--graphics/pgf/contrib/pmdraw/pmdraw.pdf (renamed from graphics/pmdraw/pmdraw.pdf)bin384283 -> 397582 bytes
-rw-r--r--graphics/pgf/contrib/pmdraw/pmdraw.sty (renamed from graphics/pmdraw/pmdraw.sty)758
-rw-r--r--graphics/pgf/contrib/pmdraw/pmdraw.tex (renamed from graphics/pmdraw/pmdraw.tex)642
-rw-r--r--graphics/pstricks/contrib/pst-optic/Changes1
-rw-r--r--graphics/pstricks/contrib/pst-optic/README5
-rw-r--r--graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.bib11
-rw-r--r--graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.pdfbin516250 -> 518230 bytes
-rw-r--r--graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.tex19
-rw-r--r--graphics/pstricks/contrib/pst-optic/tex/pst-optic.tex28
-rw-r--r--macros/latex/contrib/acmart/README3
-rw-r--r--macros/latex/contrib/acmart/acmart.dtx29
-rw-r--r--macros/latex/contrib/acmart/acmart.pdfbin918998 -> 949483 bytes
-rw-r--r--macros/latex/contrib/acmart/acmguide.pdfbin439778 -> 439879 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmcp.pdfbin214495 -> 214844 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmengage.pdfbin400681 -> 399476 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmlarge.pdfbin611542 -> 613884 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdfbin634239 -> 636571 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdfbin1056847 -> 1059143 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdfbin624039 -> 626360 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall.pdfbin621531 -> 623848 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmtog-conf.pdfbin569299 -> 571812 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmtog.pdfbin569061 -> 571575 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-manuscript.pdfbin623030 -> 625334 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-sigconf-authordraft.pdfbin1048751 -> 1051244 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdfbin622065 -> 624415 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdfbin1060242 -> 1062362 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-sigconf.pdfbin1044964 -> 1047421 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-sigplan.pdfbin1053423 -> 1053423 bytes
-rw-r--r--macros/latex/required/amsmath/README.md4
-rw-r--r--macros/latex/required/amsmath/ams-external.txt1
-rw-r--r--macros/latex/required/amsmath/amsbsy.ins2
-rw-r--r--macros/latex/required/amsmath/amsbsy.pdfbin174946 -> 174946 bytes
-rw-r--r--macros/latex/required/amsmath/amscd.dtx2
-rw-r--r--macros/latex/required/amsmath/amscd.ins4
-rw-r--r--macros/latex/required/amsmath/amscd.pdfbin179951 -> 179951 bytes
-rw-r--r--macros/latex/required/amsmath/amsgen.dtx2
-rw-r--r--macros/latex/required/amsmath/amsgen.ins2
-rw-r--r--macros/latex/required/amsmath/amsgen.pdfbin178193 -> 178193 bytes
-rw-r--r--macros/latex/required/amsmath/amsldoc.pdfbin508230 -> 508230 bytes
-rw-r--r--macros/latex/required/amsmath/amsldoc.tex2
-rw-r--r--macros/latex/required/amsmath/amsmath-2018-12-01.sty6
-rw-r--r--macros/latex/required/amsmath/amsmath.dtx19
-rw-r--r--macros/latex/required/amsmath/amsmath.ins4
-rw-r--r--macros/latex/required/amsmath/amsmath.pdfbin419922 -> 420765 bytes
-rw-r--r--macros/latex/required/amsmath/amsopn.dtx2
-rw-r--r--macros/latex/required/amsmath/amsopn.ins4
-rw-r--r--macros/latex/required/amsmath/amsopn.pdfbin140093 -> 140093 bytes
-rw-r--r--macros/latex/required/amsmath/amstext.dtx2
-rw-r--r--macros/latex/required/amsmath/amstext.ins4
-rw-r--r--macros/latex/required/amsmath/amstext.pdfbin217504 -> 217504 bytes
-rw-r--r--macros/latex/required/amsmath/amsxtra.dtx2
-rw-r--r--macros/latex/required/amsmath/amsxtra.ins4
-rw-r--r--macros/latex/required/amsmath/amsxtra.pdfbin113560 -> 113560 bytes
-rw-r--r--macros/latex/required/amsmath/changes.txt16
-rw-r--r--macros/latex/required/amsmath/subeqn.pdfbin109733 -> 109733 bytes
-rw-r--r--macros/latex/required/amsmath/technote.pdfbin147459 -> 147459 bytes
-rw-r--r--macros/latex/required/amsmath/testmath.pdfbin454658 -> 454643 bytes
-rw-r--r--macros/latex/required/babel/base/README.md19
-rw-r--r--macros/latex/required/babel/base/babel-code.pdfbin647398 -> 650192 bytes
-rw-r--r--macros/latex/required/babel/base/babel.dtx118
-rw-r--r--macros/latex/required/babel/base/babel.ins4
-rw-r--r--macros/latex/required/babel/base/babel.pdfbin423656 -> 423502 bytes
-rw-r--r--macros/latex/required/babel/base/bbcompat.dtx2
-rw-r--r--macros/latex/required/cyrillic/README.md4
-rw-r--r--macros/latex/required/cyrillic/changes.txt5
-rw-r--r--macros/latex/required/cyrillic/cyinpenc.pdfbin215413 -> 215395 bytes
-rw-r--r--macros/latex/required/cyrillic/cyoutenc.dtx11
-rw-r--r--macros/latex/required/cyrillic/cyoutenc.pdfbin157765 -> 157791 bytes
-rw-r--r--macros/latex/required/cyrillic/lcy.pdfbin209026 -> 203741 bytes
-rw-r--r--macros/latex/required/cyrillic/lcycmlh.pdfbin127216 -> 127222 bytes
-rw-r--r--macros/latex/required/cyrillic/ot2.pdfbin113862 -> 113858 bytes
-rw-r--r--macros/latex/required/cyrillic/ot2cmams.pdfbin99754 -> 99753 bytes
-rw-r--r--macros/latex/required/cyrillic/ot2cmlh.pdfbin130462 -> 130460 bytes
-rw-r--r--macros/latex/required/cyrillic/t2lhfnt.pdfbin144082 -> 144073 bytes
-rw-r--r--macros/latex/required/firstaid/changes.txt42
-rw-r--r--macros/latex/required/firstaid/firstaid.ins4
-rw-r--r--macros/latex/required/firstaid/latex2e-first-aid-for-external-files.dtx92
-rw-r--r--macros/latex/required/firstaid/latex2e-first-aid-for-external-files.pdfbin265925 -> 274055 bytes
-rw-r--r--macros/latex/required/graphics/README.md4
-rw-r--r--macros/latex/required/graphics/changes.txt14
-rw-r--r--macros/latex/required/graphics/color.dtx34
-rw-r--r--macros/latex/required/graphics/color.pdfbin212223 -> 212179 bytes
-rw-r--r--macros/latex/required/graphics/drivers.dtx2
-rw-r--r--macros/latex/required/graphics/drivers.pdfbin286459 -> 286448 bytes
-rw-r--r--macros/latex/required/graphics/epsfig.dtx8
-rw-r--r--macros/latex/required/graphics/epsfig.pdfbin159997 -> 159239 bytes
-rw-r--r--macros/latex/required/graphics/graphics-2017-06-25.sty4
-rw-r--r--macros/latex/required/graphics/graphics.dtx74
-rw-r--r--macros/latex/required/graphics/graphics.pdfbin303464 -> 304170 bytes
-rw-r--r--macros/latex/required/graphics/graphicx.dtx2
-rw-r--r--macros/latex/required/graphics/graphicx.pdfbin240623 -> 240618 bytes
-rw-r--r--macros/latex/required/graphics/grfguide.pdfbin330978 -> 331363 bytes
-rw-r--r--macros/latex/required/graphics/grfguide.tex80
-rw-r--r--macros/latex/required/graphics/keyval.dtx2
-rw-r--r--macros/latex/required/graphics/keyval.pdfbin239589 -> 239587 bytes
-rw-r--r--macros/latex/required/graphics/lscape.dtx2
-rw-r--r--macros/latex/required/graphics/lscape.pdfbin155986 -> 155987 bytes
-rw-r--r--macros/latex/required/graphics/mathcolor.pdfbin474666 -> 460494 bytes
-rw-r--r--macros/latex/required/graphics/rotating.dtx2
-rw-r--r--macros/latex/required/graphics/rotating.pdfbin278331 -> 278397 bytes
-rw-r--r--macros/latex/required/graphics/rotex.pdfbin172263 -> 172239 bytes
-rw-r--r--macros/latex/required/graphics/trig.dtx6
-rw-r--r--macros/latex/required/graphics/trig.pdfbin199266 -> 199290 bytes
-rw-r--r--macros/latex/required/latex-lab/README.md4
-rw-r--r--macros/latex/required/latex-lab/blocks-code.pdfbin886150 -> 871980 bytes
-rw-r--r--macros/latex/required/latex-lab/blocks-doc.pdfbin440234 -> 486159 bytes
-rw-r--r--macros/latex/required/latex-lab/changes.txt172
-rw-r--r--macros/latex/required/latex-lab/documentmetadata-support-code.pdfbin523380 -> 539294 bytes
-rw-r--r--macros/latex/required/latex-lab/documentmetadata-support-doc.pdfbin389003 -> 420808 bytes
-rw-r--r--macros/latex/required/latex-lab/documentmetadata-support.dtx136
-rw-r--r--macros/latex/required/latex-lab/latex-lab-amsmath.dtx122
-rw-r--r--macros/latex/required/latex-lab/latex-lab-amsmath.pdfbin357553 -> 381899 bytes
-rw-r--r--macros/latex/required/latex-lab/latex-lab-bib.dtx19
-rw-r--r--macros/latex/required/latex-lab/latex-lab-bib.pdfbin411092 -> 383259 bytes
-rw-r--r--macros/latex/required/latex-lab/latex-lab-block.dtx187
-rw-r--r--macros/latex/required/latex-lab/latex-lab-block.pdfbin886150 -> 871980 bytes
-rw-r--r--macros/latex/required/latex-lab/latex-lab-firstaid.dtx194
-rw-r--r--macros/latex/required/latex-lab/latex-lab-firstaid.pdfbin272864 -> 368000 bytes
-rw-r--r--macros/latex/required/latex-lab/latex-lab-float.dtx77
-rw-r--r--macros/latex/required/latex-lab/latex-lab-float.pdfbin444977 -> 426854 bytes
-rw-r--r--macros/latex/required/latex-lab/latex-lab-footnotes.dtx90
-rw-r--r--macros/latex/required/latex-lab/latex-lab-footnotes.pdfbin815656 -> 819567 bytes
-rw-r--r--macros/latex/required/latex-lab/latex-lab-graphic.dtx20
-rw-r--r--macros/latex/required/latex-lab/latex-lab-graphic.pdfbin496997 -> 517900 bytes
-rw-r--r--macros/latex/required/latex-lab/latex-lab-marginpar.dtx259
-rw-r--r--macros/latex/required/latex-lab/latex-lab-marginpar.pdfbin0 -> 389702 bytes
-rw-r--r--macros/latex/required/latex-lab/latex-lab-math.dtx1561
-rw-r--r--macros/latex/required/latex-lab/latex-lab-math.pdfbin612623 -> 740772 bytes
-rw-r--r--macros/latex/required/latex-lab/latex-lab-mathpkg.dtx35
-rw-r--r--macros/latex/required/latex-lab/latex-lab-mathpkg.pdfbin302371 -> 355622 bytes
-rw-r--r--macros/latex/required/latex-lab/latex-lab-mathtools.dtx15
-rw-r--r--macros/latex/required/latex-lab/latex-lab-mathtools.pdfbin357553 -> 381899 bytes
-rw-r--r--macros/latex/required/latex-lab/latex-lab-minipage.dtx4
-rw-r--r--macros/latex/required/latex-lab/latex-lab-minipage.pdfbin280811 -> 280811 bytes
-rw-r--r--macros/latex/required/latex-lab/latex-lab-namespace.dtx23
-rw-r--r--macros/latex/required/latex-lab/latex-lab-namespace.pdfbin234649 -> 235751 bytes
-rw-r--r--macros/latex/required/latex-lab/latex-lab-new-or-1.dtx2
-rw-r--r--macros/latex/required/latex-lab/latex-lab-new-or-1.pdfbin389721 -> 389721 bytes
-rw-r--r--macros/latex/required/latex-lab/latex-lab-new-or-2.dtx2
-rw-r--r--macros/latex/required/latex-lab/latex-lab-new-or-2.pdfbin632310 -> 632196 bytes
-rw-r--r--macros/latex/required/latex-lab/latex-lab-sec.dtx17
-rw-r--r--macros/latex/required/latex-lab/latex-lab-sec.pdfbin527916 -> 527096 bytes
-rw-r--r--macros/latex/required/latex-lab/latex-lab-table.dtx1350
-rw-r--r--macros/latex/required/latex-lab/latex-lab-table.pdfbin621929 -> 556567 bytes
-rw-r--r--macros/latex/required/latex-lab/latex-lab-testphase.dtx9
-rw-r--r--macros/latex/required/latex-lab/latex-lab-testphase.pdfbin298403 -> 297981 bytes
-rw-r--r--macros/latex/required/latex-lab/latex-lab-text.dtx2
-rw-r--r--macros/latex/required/latex-lab/latex-lab-text.pdfbin307812 -> 307812 bytes
-rw-r--r--macros/latex/required/latex-lab/latex-lab-title.dtx518
-rw-r--r--macros/latex/required/latex-lab/latex-lab-title.pdfbin0 -> 348117 bytes
-rw-r--r--macros/latex/required/latex-lab/latex-lab-toc-hyperref-changes.dtx2
-rw-r--r--macros/latex/required/latex-lab/latex-lab-toc-hyperref-changes.pdfbin296124 -> 296124 bytes
-rw-r--r--macros/latex/required/latex-lab/latex-lab-toc-kernel-changes.dtx8
-rw-r--r--macros/latex/required/latex-lab/latex-lab-toc-kernel-changes.pdfbin361084 -> 361081 bytes
-rw-r--r--macros/latex/required/latex-lab/latex-lab-toc.dtx10
-rw-r--r--macros/latex/required/latex-lab/latex-lab-toc.pdfbin396817 -> 396814 bytes
-rw-r--r--macros/latex/required/latex-lab/latex-lab.ins8
-rw-r--r--macros/latex/required/tools/README.md2
-rw-r--r--macros/latex/required/tools/afterpage.dtx2
-rw-r--r--macros/latex/required/tools/afterpage.ins4
-rw-r--r--macros/latex/required/tools/afterpage.pdfbin198100 -> 198100 bytes
-rw-r--r--macros/latex/required/tools/array-2016-10-06.sty4
-rw-r--r--macros/latex/required/tools/array-2020-02-10.sty9
-rw-r--r--macros/latex/required/tools/array-2023-11-01.sty373
-rw-r--r--macros/latex/required/tools/array.dtx480
-rw-r--r--macros/latex/required/tools/array.pdfbin517410 -> 839197 bytes
-rw-r--r--macros/latex/required/tools/bm.dtx10
-rw-r--r--macros/latex/required/tools/bm.ins4
-rw-r--r--macros/latex/required/tools/bm.pdfbin323929 -> 323640 bytes
-rw-r--r--macros/latex/required/tools/calc.dtx2
-rw-r--r--macros/latex/required/tools/calc.pdfbin370660 -> 370660 bytes
-rw-r--r--macros/latex/required/tools/changes.txt69
-rw-r--r--macros/latex/required/tools/dcolumn.dtx2
-rw-r--r--macros/latex/required/tools/dcolumn.pdfbin221038 -> 221038 bytes
-rw-r--r--macros/latex/required/tools/delarray.dtx2
-rw-r--r--macros/latex/required/tools/delarray.pdfbin191058 -> 191058 bytes
-rw-r--r--macros/latex/required/tools/enumerate.dtx2
-rw-r--r--macros/latex/required/tools/enumerate.pdfbin215077 -> 215077 bytes
-rw-r--r--macros/latex/required/tools/fileerr.dtx2
-rw-r--r--macros/latex/required/tools/fileerr.pdfbin188278 -> 187629 bytes
-rw-r--r--macros/latex/required/tools/fontsmpl.dtx2
-rw-r--r--macros/latex/required/tools/fontsmpl.pdfbin146438 -> 146438 bytes
-rw-r--r--macros/latex/required/tools/ftnright.dtx2
-rw-r--r--macros/latex/required/tools/ftnright.pdfbin387784 -> 387159 bytes
-rw-r--r--macros/latex/required/tools/hhline.dtx2
-rw-r--r--macros/latex/required/tools/hhline.pdfbin189678 -> 189678 bytes
-rw-r--r--macros/latex/required/tools/indentfirst.dtx2
-rw-r--r--macros/latex/required/tools/indentfirst.pdfbin157352 -> 157352 bytes
-rw-r--r--macros/latex/required/tools/l3sys-query.dtx545
-rw-r--r--macros/latex/required/tools/l3sys-query.ins76
-rw-r--r--macros/latex/required/tools/l3sys-query.pdfbin0 -> 482622 bytes
-rw-r--r--macros/latex/required/tools/layout.dtx2
-rw-r--r--macros/latex/required/tools/layout.pdfbin260278 -> 260278 bytes
-rw-r--r--macros/latex/required/tools/longtable-2020-01-07.sty4
-rw-r--r--macros/latex/required/tools/longtable.dtx371
-rw-r--r--macros/latex/required/tools/longtable.ins4
-rw-r--r--macros/latex/required/tools/longtable.pdfbin391258 -> 399651 bytes
-rw-r--r--macros/latex/required/tools/multicol-2017-04-11.sty4
-rw-r--r--macros/latex/required/tools/multicol-2019-10-01.sty13
-rw-r--r--macros/latex/required/tools/multicol.dtx72
-rw-r--r--macros/latex/required/tools/multicol.ins4
-rw-r--r--macros/latex/required/tools/multicol.pdfbin523613 -> 524609 bytes
-rw-r--r--macros/latex/required/tools/rawfonts.dtx2
-rw-r--r--macros/latex/required/tools/rawfonts.pdfbin138956 -> 138956 bytes
-rw-r--r--macros/latex/required/tools/shellesc.dtx2
-rw-r--r--macros/latex/required/tools/shellesc.pdfbin176171 -> 176171 bytes
-rw-r--r--macros/latex/required/tools/showkeys-2014-10-28.sty4
-rw-r--r--macros/latex/required/tools/showkeys.dtx15
-rw-r--r--macros/latex/required/tools/showkeys.pdfbin252975 -> 252923 bytes
-rw-r--r--macros/latex/required/tools/somedefs.dtx2
-rw-r--r--macros/latex/required/tools/somedefs.pdfbin167583 -> 167583 bytes
-rw-r--r--macros/latex/required/tools/tabularx.dtx51
-rw-r--r--macros/latex/required/tools/tabularx.ins4
-rw-r--r--macros/latex/required/tools/tabularx.pdfbin287013 -> 289601 bytes
-rw-r--r--macros/latex/required/tools/theorem.dtx2
-rw-r--r--macros/latex/required/tools/theorem.pdfbin352312 -> 351675 bytes
-rw-r--r--macros/latex/required/tools/tools-overview.pdfbin73673 -> 73673 bytes
-rw-r--r--macros/latex/required/tools/tools-overview.tex2
-rw-r--r--macros/latex/required/tools/tools.ins11
-rw-r--r--macros/latex/required/tools/trace.dtx2
-rw-r--r--macros/latex/required/tools/trace.pdfbin222074 -> 222074 bytes
-rw-r--r--macros/latex/required/tools/varioref-2016-02-16.sty4
-rw-r--r--macros/latex/required/tools/varioref.dtx96
-rw-r--r--macros/latex/required/tools/varioref.ins4
-rw-r--r--macros/latex/required/tools/varioref.pdfbin393134 -> 393884 bytes
-rw-r--r--macros/latex/required/tools/verbatim.dtx15
-rw-r--r--macros/latex/required/tools/verbatim.pdfbin331326 -> 331587 bytes
-rw-r--r--macros/latex/required/tools/xr-2023-07-04.sty84
-rw-r--r--macros/latex/required/tools/xr.dtx231
-rw-r--r--macros/latex/required/tools/xr.pdfbin170451 -> 323877 bytes
-rw-r--r--macros/latex/required/tools/xspace.dtx2
-rw-r--r--macros/latex/required/tools/xspace.pdfbin257027 -> 257027 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb293
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.md52
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha5122
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc16
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.xzbin2577352 -> 2578864 bytes
-rw-r--r--systems/win32/miktex/tm/packages/files.csv.lzmabin821106 -> 821156 bytes
-rw-r--r--systems/win32/miktex/tm/packages/next/files.csv.lzmabin821947 -> 821939 bytes
-rw-r--r--systems/win32/miktex/tm/packages/next/pr.ini10
-rw-r--r--systems/win32/miktex/tm/packages/pr.ini12
-rw-r--r--timestamp2
273 files changed, 8629 insertions, 2970 deletions
diff --git a/FILES.byname b/FILES.byname
index 7a50f0f5c1..991a8a7f29 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -2078,12 +2078,12 @@
2024/04/21 | 1837 | biblio/citation-style-language/README.md
2024/04/21 | 12878 | biblio/citation-style-language/vancouver.csl
2024/04/21 | 4553350 | biblio/citation-style-language.zip
-2024/06/01 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2024/06/02 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
2022/10/08 | 127 | biblio/ctan-bibdata/biblatex-ctan/ctan.cbx
-2024/06/01 | 2870432 | biblio/ctan-bibdata/ctan.bib
-2024/06/01 | 3708800 | biblio/ctan-bibdata/ctan.pdf
+2024/06/02 | 2870432 | biblio/ctan-bibdata/ctan.bib
+2024/06/02 | 3708800 | biblio/ctan-bibdata/ctan.pdf
2023/01/16 | 1489 | biblio/ctan-bibdata/README
-2024/06/01 | 4121957 | biblio/ctan-bibdata.zip
+2024/06/02 | 4121960 | biblio/ctan-bibdata.zip
2023/02/23 | 3126 | biblio/pbibtex/pbibtex-base/cpp.awk
2023/02/23 | 1009 | biblio/pbibtex/pbibtex-base/generate.sh
2023/02/23 | 22362 | biblio/pbibtex/pbibtex-base/jabbrv.bst
@@ -5445,7 +5445,7 @@
1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp
1990/10/02 | 812 | dviware/vutex/vaxvms.ins
1990/10/02 | 127576 | dviware/vutex/vutex.web
-2024/06/01 | 399786 | FILES.last07days
+2024/06/02 | 395484 | FILES.last07days
2021/07/24 | 1139410 | fonts/aboensis/Aboensis.glyphs
2021/07/24 | 18907382 | fonts/aboensis/aboensis.pdf
2021/07/24 | 137860 | fonts/aboensis/Aboensis-Regular.otf
@@ -173426,6 +173426,36 @@
2023/06/11 | 5638 | graphics/pgf/contrib/playcards/playcards.sty
2023/06/11 | 284 | graphics/pgf/contrib/playcards/README.md
2023/06/11 | 561830 | graphics/pgf/contrib/playcards.zip
+2023/11/08 | 1025 | graphics/pgf/contrib/pmdraw/examples/example-10.tex
+2023/11/08 | 1025 | graphics/pgf/contrib/pmdraw/examples/example-11.tex
+2023/11/08 | 3451 | graphics/pgf/contrib/pmdraw/examples/example-12.tex
+2023/11/08 | 3018 | graphics/pgf/contrib/pmdraw/examples/example-13.tex
+2023/11/08 | 1839 | graphics/pgf/contrib/pmdraw/examples/example-14.tex
+2023/11/08 | 1826 | graphics/pgf/contrib/pmdraw/examples/example-15.tex
+2023/11/08 | 3049 | graphics/pgf/contrib/pmdraw/examples/example-16.tex
+2023/11/08 | 1787 | graphics/pgf/contrib/pmdraw/examples/example-17.tex
+2023/11/08 | 1413 | graphics/pgf/contrib/pmdraw/examples/example-18.tex
+2023/11/08 | 1452 | graphics/pgf/contrib/pmdraw/examples/example-19.tex
+2023/11/08 | 875 | graphics/pgf/contrib/pmdraw/examples/example-1.tex
+2023/11/08 | 4403 | graphics/pgf/contrib/pmdraw/examples/example-20.tex
+2023/11/08 | 4525 | graphics/pgf/contrib/pmdraw/examples/example-21.tex
+2023/11/08 | 4583 | graphics/pgf/contrib/pmdraw/examples/example-22.tex
+2023/11/08 | 4591 | graphics/pgf/contrib/pmdraw/examples/example-23.tex
+2023/11/08 | 3884 | graphics/pgf/contrib/pmdraw/examples/example-24.tex
+2023/11/08 | 1529 | graphics/pgf/contrib/pmdraw/examples/example-25.tex
+2023/11/08 | 937 | graphics/pgf/contrib/pmdraw/examples/example-2.tex
+2023/11/08 | 1348 | graphics/pgf/contrib/pmdraw/examples/example-3.tex
+2023/11/08 | 1901 | graphics/pgf/contrib/pmdraw/examples/example-4.tex
+2023/11/08 | 2854 | graphics/pgf/contrib/pmdraw/examples/example-5.tex
+2023/11/08 | 1366 | graphics/pgf/contrib/pmdraw/examples/example-6.tex
+2023/11/08 | 1587 | graphics/pgf/contrib/pmdraw/examples/example-7.tex
+2023/11/08 | 1584 | graphics/pgf/contrib/pmdraw/examples/example-8.tex
+2023/11/08 | 1025 | graphics/pgf/contrib/pmdraw/examples/example-9.tex
+2024/06/02 | 397582 | graphics/pgf/contrib/pmdraw/pmdraw.pdf
+2024/06/02 | 75317 | graphics/pgf/contrib/pmdraw/pmdraw.sty
+2024/06/02 | 101607 | graphics/pgf/contrib/pmdraw/pmdraw.tex
+2024/06/02 | 1857 | graphics/pgf/contrib/pmdraw/README.md
+2024/06/02 | 419059 | graphics/pgf/contrib/pmdraw.zip
2023/11/06 | 183790 | graphics/pgf/contrib/polyhedra/polyhedra-doc.pdf
2023/11/06 | 11140 | graphics/pgf/contrib/polyhedra/polyhedra-doc.tex
2023/11/06 | 17523 | graphics/pgf/contrib/polyhedra/polyhedra.sty
@@ -176610,36 +176640,6 @@
1989/11/26 | 7270 | graphics/pictex/texpictex.tex
1992/08/31 | 11382 | graphics/pictex/tree.sty
2021/06/10 | 1136553 | graphics/pictex.zip
-2023/11/08 | 1025 | graphics/pmdraw/examples/example-10.tex
-2023/11/08 | 1025 | graphics/pmdraw/examples/example-11.tex
-2023/11/08 | 3451 | graphics/pmdraw/examples/example-12.tex
-2023/11/08 | 3018 | graphics/pmdraw/examples/example-13.tex
-2023/11/08 | 1839 | graphics/pmdraw/examples/example-14.tex
-2023/11/08 | 1826 | graphics/pmdraw/examples/example-15.tex
-2023/11/08 | 3049 | graphics/pmdraw/examples/example-16.tex
-2023/11/08 | 1787 | graphics/pmdraw/examples/example-17.tex
-2023/11/08 | 1413 | graphics/pmdraw/examples/example-18.tex
-2023/11/08 | 1452 | graphics/pmdraw/examples/example-19.tex
-2023/11/08 | 875 | graphics/pmdraw/examples/example-1.tex
-2023/11/08 | 4403 | graphics/pmdraw/examples/example-20.tex
-2023/11/08 | 4525 | graphics/pmdraw/examples/example-21.tex
-2023/11/08 | 4583 | graphics/pmdraw/examples/example-22.tex
-2023/11/08 | 4591 | graphics/pmdraw/examples/example-23.tex
-2023/11/08 | 3884 | graphics/pmdraw/examples/example-24.tex
-2023/11/08 | 1529 | graphics/pmdraw/examples/example-25.tex
-2023/11/08 | 937 | graphics/pmdraw/examples/example-2.tex
-2023/11/08 | 1348 | graphics/pmdraw/examples/example-3.tex
-2023/11/08 | 1901 | graphics/pmdraw/examples/example-4.tex
-2023/11/08 | 2854 | graphics/pmdraw/examples/example-5.tex
-2023/11/08 | 1366 | graphics/pmdraw/examples/example-6.tex
-2023/11/08 | 1587 | graphics/pmdraw/examples/example-7.tex
-2023/11/08 | 1584 | graphics/pmdraw/examples/example-8.tex
-2023/11/08 | 1025 | graphics/pmdraw/examples/example-9.tex
-2024/04/09 | 384283 | graphics/pmdraw/pmdraw.pdf
-2024/04/09 | 46170 | graphics/pmdraw/pmdraw.sty
-2024/04/09 | 85072 | graphics/pmdraw/pmdraw.tex
-2024/04/09 | 1857 | graphics/pmdraw/README.md
-2024/04/09 | 404476 | graphics/pmdraw.zip
2018/05/31 | 17537 | graphics/postage/postage.dtx
2018/05/31 | 2443 | graphics/postage/postage.ins
2018/05/30 | 335762 | graphics/postage/postage.pdf
@@ -177912,14 +177912,14 @@
2022/02/06 | 61993 | graphics/pstricks/contrib/pst-optexp/pst-optexp-quickref.pdf
2022/02/06 | 1339 | graphics/pstricks/contrib/pst-optexp/README
2022/02/06 | 3750885 | graphics/pstricks/contrib/pst-optexp.zip
-2024/05/17 | 1362 | graphics/pstricks/contrib/pst-optic/Changes
-2024/05/17 | 3109 | graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.bib
-2024/05/17 | 516250 | graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.pdf
-2024/05/17 | 45880 | graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.tex
+2024/06/02 | 1420 | graphics/pstricks/contrib/pst-optic/Changes
+2023/05/07 | 3303 | graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.bib
+2024/06/02 | 518230 | graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.pdf
+2024/06/02 | 45974 | graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.tex
2023/05/07 | 288 | graphics/pstricks/contrib/pst-optic/latex/pst-optic.sty
-2023/05/07 | 565 | graphics/pstricks/contrib/pst-optic/README
-2024/05/17 | 73799 | graphics/pstricks/contrib/pst-optic/tex/pst-optic.tex
-2024/05/17 | 344385 | graphics/pstricks/contrib/pst-optic.zip
+2024/06/02 | 613 | graphics/pstricks/contrib/pst-optic/README
+2024/06/02 | 73885 | graphics/pstricks/contrib/pst-optic/tex/pst-optic.tex
+2024/06/02 | 345060 | graphics/pstricks/contrib/pst-optic.zip
2023/11/04 | 222 | graphics/pstricks/contrib/pst-osci/Changes
2023/11/04 | 1745977 | graphics/pstricks/contrib/pst-osci/doc/pst-osci-doc.pdf
2023/11/04 | 29242 | graphics/pstricks/contrib/pst-osci/doc/pst-osci-doc.tex
@@ -207366,16 +207366,16 @@
2024/03/27 | 8158393 | install/macros/latex-dev/required/latex-tools-dev.tds.zip
2024/06/01 | 44461371 | install/macros/latex/latex-base.tds.zip
2020/06/01 | 1578753 | install/macros/latex/required/amscls.tds.zip
-2024/05/18 | 3727343 | install/macros/latex/required/babel-base.tds.zip
+2024/06/02 | 3730524 | install/macros/latex/required/babel-base.tds.zip
2024/05/23 | 946356 | install/macros/latex/required/l3backend.tds.zip
2024/05/22 | 14376767 | install/macros/latex/required/l3kernel.tds.zip
-2023/11/01 | 2795407 | install/macros/latex/required/latex-amsmath.tds.zip
+2024/06/01 | 2796532 | install/macros/latex/required/latex-amsmath.tds.zip
2022/06/14 | 242625 | install/macros/latex/required/latexbug.tds.zip
-2022/06/16 | 1352652 | install/macros/latex/required/latex-cyrillic.tds.zip
-2024/02/29 | 271728 | install/macros/latex/required/latex-firstaid.tds.zip
-2022/10/31 | 3109253 | install/macros/latex/required/latex-graphics.tds.zip
-2023/11/01 | 11455452 | install/macros/latex/required/latex-lab.tds.zip
-2023/11/21 | 7343303 | install/macros/latex/required/latex-tools.tds.zip
+2024/06/01 | 1349959 | install/macros/latex/required/latex-cyrillic.tds.zip
+2024/06/01 | 280791 | install/macros/latex/required/latex-firstaid.tds.zip
+2024/06/01 | 3097569 | install/macros/latex/required/latex-graphics.tds.zip
+2024/06/01 | 12492918 | install/macros/latex/required/latex-lab.tds.zip
+2024/06/01 | 8316005 | install/macros/latex/required/latex-tools.tds.zip
2016/09/02 | 108688 | install/macros/luatex/generic/cstypo.tds.zip
2015/10/01 | 154538 | install/macros/luatex/generic/ctablestack.tds.zip
2023/08/20 | 288576 | install/macros/luatex/generic/lualibs.tds.zip
@@ -214696,7 +214696,7 @@
2013/04/01 | 14776 | macros/context/contrib/context-visualcounter/tex/context/third/visualcounter/t-visualcounter.mkvi
2018/03/05 | 11 | macros/context/contrib/context-visualcounter/VERSION
2018/03/22 | 276789 | macros/context/contrib/context-visualcounter.zip
-2024/05/27 | 122897320 | macros/context/latest/cont-tmf.zip
+2024/05/31 | 122901555 | macros/context/latest/cont-tmf.zip
2016/04/21 | 32846 | macros/cstex/base/cmexb.tar.gz
2016/06/26 | 1728262 | macros/cstex/base/csfonts-t1.tar.gz
2007/03/01 | 187106 | macros/cstex/base/csfonts.tar.gz
@@ -224138,43 +224138,43 @@
2024/01/30 | 1333 | macros/latex/contrib/achemso/README.md
2024/01/30 | 918111 | macros/latex/contrib/achemso.zip
2024/04/18 | 2773 | macros/latex/contrib/acmart/acmart.bib
-2024/04/18 | 292953 | macros/latex/contrib/acmart/acmart.dtx
+2024/05/29 | 292974 | macros/latex/contrib/acmart/acmart.dtx
2023/03/26 | 1016 | macros/latex/contrib/acmart/acmart.ins
-2024/04/18 | 918998 | macros/latex/contrib/acmart/acmart.pdf
+2024/06/02 | 949483 | macros/latex/contrib/acmart/acmart.pdf
2023/03/26 | 20721 | macros/latex/contrib/acmart/acmauthoryear.bbx
2023/03/26 | 6245 | macros/latex/contrib/acmart/acmauthoryear.cbx
2023/03/26 | 1093 | macros/latex/contrib/acmart/acmdatamodel.dbx
-2024/04/18 | 439778 | macros/latex/contrib/acmart/acmguide.pdf
+2024/06/02 | 439879 | macros/latex/contrib/acmart/acmguide.pdf
2023/06/12 | 19718 | macros/latex/contrib/acmart/acm-jdslogo.png
2023/03/26 | 19840 | macros/latex/contrib/acmart/acmnumeric.bbx
2023/03/26 | 90 | macros/latex/contrib/acmart/acmnumeric.cbx
2023/03/31 | 90332 | macros/latex/contrib/acmart/ACM-Reference-Format.bst
2024/04/18 | 5512 | macros/latex/contrib/acmart/Makefile
-2024/04/18 | 13713 | macros/latex/contrib/acmart/README
+2024/05/29 | 13797 | macros/latex/contrib/acmart/README
2023/03/26 | 4825 | macros/latex/contrib/acmart/samples/abbrev.bib
2024/02/06 | 12834 | macros/latex/contrib/acmart/samples/acmengage.dtx
-2024/04/18 | 214495 | macros/latex/contrib/acmart/samples/sample-acmcp.pdf
-2024/04/18 | 400681 | macros/latex/contrib/acmart/samples/sample-acmengage.pdf
-2024/04/18 | 611542 | macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
-2024/04/18 | 634239 | macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdf
-2024/04/18 | 1056847 | macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
-2024/04/18 | 621531 | macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
-2024/04/18 | 624039 | macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
-2024/04/18 | 569299 | macros/latex/contrib/acmart/samples/sample-acmtog-conf.pdf
-2024/04/18 | 569061 | macros/latex/contrib/acmart/samples/sample-acmtog.pdf
+2024/06/02 | 214844 | macros/latex/contrib/acmart/samples/sample-acmcp.pdf
+2024/06/02 | 399476 | macros/latex/contrib/acmart/samples/sample-acmengage.pdf
+2024/06/02 | 613884 | macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
+2024/06/02 | 636571 | macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdf
+2024/06/02 | 1059143 | macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
+2024/06/02 | 623848 | macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
+2024/06/02 | 626360 | macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
+2024/06/02 | 571812 | macros/latex/contrib/acmart/samples/sample-acmtog-conf.pdf
+2024/06/02 | 571575 | macros/latex/contrib/acmart/samples/sample-acmtog.pdf
2023/03/26 | 53502 | macros/latex/contrib/acmart/samples/sample-base.bib
2023/03/26 | 95030 | macros/latex/contrib/acmart/samples/sample-franklin.png
-2024/04/18 | 623030 | macros/latex/contrib/acmart/samples/sample-manuscript.pdf
+2024/06/02 | 625334 | macros/latex/contrib/acmart/samples/sample-manuscript.pdf
2024/04/18 | 39521 | macros/latex/contrib/acmart/samples/samples.dtx
-2024/04/18 | 1048751 | macros/latex/contrib/acmart/samples/sample-sigconf-authordraft.pdf
-2024/04/18 | 622065 | macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdf
-2024/04/18 | 1060242 | macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdf
-2024/04/18 | 1044964 | macros/latex/contrib/acmart/samples/sample-sigconf.pdf
-2024/04/18 | 1053423 | macros/latex/contrib/acmart/samples/sample-sigplan.pdf
+2024/06/02 | 1051244 | macros/latex/contrib/acmart/samples/sample-sigconf-authordraft.pdf
+2024/06/02 | 624415 | macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdf
+2024/06/02 | 1062362 | macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdf
+2024/06/02 | 1047421 | macros/latex/contrib/acmart/samples/sample-sigconf.pdf
+2024/06/02 | 1053423 | macros/latex/contrib/acmart/samples/sample-sigplan.pdf
2024/04/18 | 1560 | macros/latex/contrib/acmart/samples/samples.ins
2023/03/26 | 439021 | macros/latex/contrib/acmart/samples/sampleteaser.pdf
2023/03/26 | 5221 | macros/latex/contrib/acmart/samples/software.bib
-2024/04/18 | 12332605 | macros/latex/contrib/acmart.zip
+2024/06/02 | 12388297 | macros/latex/contrib/acmart.zip
2000/05/18 | 66049 | macros/latex/contrib/acmconf/acmconf.dtx
2000/05/18 | 4408 | macros/latex/contrib/acmconf/acmconf.ins
2008/05/14 | 96012 | macros/latex/contrib/acmconf/acmconf.pdf
@@ -259283,111 +259283,111 @@
2020/06/01 | 5281 | macros/latex/required/amscls/upref.dtx
2020/06/01 | 1999 | macros/latex/required/amscls/upref.ins
2020/06/01 | 1208335 | macros/latex/required/amscls.zip
-2023/11/01 | 8663 | macros/latex/required/amsmath/amsbsy.dtx
-2023/11/01 | 1505 | macros/latex/required/amsmath/amsbsy.ins
-2023/11/01 | 174946 | macros/latex/required/amsmath/amsbsy.pdf
-2023/11/01 | 11284 | macros/latex/required/amsmath/amscd.dtx
-2023/11/01 | 1487 | macros/latex/required/amsmath/amscd.ins
-2023/11/01 | 179951 | macros/latex/required/amsmath/amscd.pdf
-2023/11/01 | 5323 | macros/latex/required/amsmath/ams-external.txt
-2023/11/01 | 13442 | macros/latex/required/amsmath/amsgen.dtx
-2023/11/01 | 1484 | macros/latex/required/amsmath/amsgen.ins
-2023/11/01 | 178193 | macros/latex/required/amsmath/amsgen.pdf
-2023/11/01 | 5860 | macros/latex/required/amsmath/ams-internal.txt
-2023/11/01 | 508230 | macros/latex/required/amsmath/amsldoc.pdf
-2023/11/01 | 104792 | macros/latex/required/amsmath/amsldoc.tex
-2023/11/01 | 85099 | macros/latex/required/amsmath/amsmath-2018-12-01.sty
-2023/11/01 | 230377 | macros/latex/required/amsmath/amsmath.dtx
-2023/11/01 | 1504 | macros/latex/required/amsmath/amsmath.ins
-2023/11/01 | 419922 | macros/latex/required/amsmath/amsmath.pdf
-2023/11/01 | 10199 | macros/latex/required/amsmath/amsopn.dtx
-2023/11/01 | 1490 | macros/latex/required/amsmath/amsopn.ins
-2023/11/01 | 140093 | macros/latex/required/amsmath/amsopn.pdf
-2023/11/01 | 69732 | macros/latex/required/amsmath/amstex.sty
-2023/11/01 | 11398 | macros/latex/required/amsmath/amstext.dtx
-2023/11/01 | 1492 | macros/latex/required/amsmath/amstext.ins
-2023/11/01 | 217504 | macros/latex/required/amsmath/amstext.pdf
-2023/11/01 | 4336 | macros/latex/required/amsmath/amsxtra.dtx
-2023/11/01 | 1492 | macros/latex/required/amsmath/amsxtra.ins
-2023/11/01 | 113560 | macros/latex/required/amsmath/amsxtra.pdf
-2023/11/01 | 8425 | macros/latex/required/amsmath/changes.txt
-2023/11/01 | 22605 | macros/latex/required/amsmath/diffs-m.txt
-2023/11/01 | 369 | macros/latex/required/amsmath/manifest.txt
-2023/11/01 | 2709 | macros/latex/required/amsmath/README.md
-2023/11/01 | 109733 | macros/latex/required/amsmath/subeqn.pdf
-2023/11/01 | 6440 | macros/latex/required/amsmath/subeqn.tex
-2023/11/01 | 147459 | macros/latex/required/amsmath/technote.pdf
-2023/11/01 | 12005 | macros/latex/required/amsmath/technote.tex
-2023/11/01 | 454658 | macros/latex/required/amsmath/testmath.pdf
-2023/11/01 | 81184 | macros/latex/required/amsmath/testmath.tex
-2023/11/01 | 2762551 | macros/latex/required/amsmath.zip
-2024/05/18 | 647398 | macros/latex/required/babel/base/babel-code.pdf
-2024/05/18 | 803716 | macros/latex/required/babel/base/babel.dtx
-2024/05/18 | 8961 | macros/latex/required/babel/base/babel.ins
-2024/05/18 | 423656 | macros/latex/required/babel/base/babel.pdf
-2024/05/18 | 21890 | macros/latex/required/babel/base/bbcompat.dtx
-2024/05/18 | 3527 | macros/latex/required/babel/base/bbidxglo.dtx
-2024/05/18 | 1088254 | macros/latex/required/babel/base/locale.zip
-2024/05/18 | 2166 | macros/latex/required/babel/base/README.md
-2024/05/18 | 2369870 | macros/latex/required/babel/base.zip
-2022/06/16 | 5612 | macros/latex/required/cyrillic/changes.txt
-2022/06/16 | 57710 | macros/latex/required/cyrillic/cyinpenc.dtx
-2022/06/16 | 215413 | macros/latex/required/cyrillic/cyinpenc.pdf
-2022/06/16 | 24906 | macros/latex/required/cyrillic/cyoutenc.dtx
-2022/06/16 | 157765 | macros/latex/required/cyrillic/cyoutenc.pdf
-2022/06/16 | 10569 | macros/latex/required/cyrillic/cyrlatex.ins
-2022/06/16 | 10307 | macros/latex/required/cyrillic/lcycmlh.fdd
-2022/06/16 | 127216 | macros/latex/required/cyrillic/lcycmlh.pdf
-2022/06/16 | 12968 | macros/latex/required/cyrillic/lcy.dtx
-2022/06/16 | 209026 | macros/latex/required/cyrillic/lcy.pdf
-2022/06/16 | 951 | macros/latex/required/cyrillic/manifest.txt
-2022/06/16 | 4296 | macros/latex/required/cyrillic/ot2cmams.fdd
-2022/06/16 | 99754 | macros/latex/required/cyrillic/ot2cmams.pdf
-2022/06/16 | 10470 | macros/latex/required/cyrillic/ot2cmlh.fdd
-2022/06/16 | 130462 | macros/latex/required/cyrillic/ot2cmlh.pdf
-2022/06/16 | 7831 | macros/latex/required/cyrillic/ot2.dtx
-2022/06/16 | 113862 | macros/latex/required/cyrillic/ot2.pdf
-2022/06/16 | 1642 | macros/latex/required/cyrillic/README.md
-2022/06/16 | 27558 | macros/latex/required/cyrillic/t2lhfnt.fdd
-2022/06/16 | 144082 | macros/latex/required/cyrillic/t2lhfnt.pdf
-2022/06/16 | 1207156 | macros/latex/required/cyrillic.zip
-2024/02/29 | 5922 | macros/latex/required/firstaid/changes.txt
-2024/02/29 | 2744 | macros/latex/required/firstaid/firstaid.ins
-2024/02/29 | 21588 | macros/latex/required/firstaid/latex2e-first-aid-for-external-files.dtx
-2024/02/29 | 265925 | macros/latex/required/firstaid/latex2e-first-aid-for-external-files.pdf
-2024/02/29 | 474 | macros/latex/required/firstaid/README.md
-2024/03/01 | 266809 | macros/latex/required/firstaid.zip
-2022/10/31 | 15737 | macros/latex/required/graphics/cat.eps
-2022/10/31 | 35660 | macros/latex/required/graphics/changes.txt
-2022/10/31 | 32194 | macros/latex/required/graphics/color.dtx
-2022/10/31 | 212223 | macros/latex/required/graphics/color.pdf
-2022/10/31 | 50819 | macros/latex/required/graphics/drivers.dtx
-2022/10/31 | 286459 | macros/latex/required/graphics/drivers.pdf
-2022/10/31 | 4122 | macros/latex/required/graphics/epsfig.dtx
-2022/10/31 | 159997 | macros/latex/required/graphics/epsfig.pdf
-2022/10/31 | 15429 | macros/latex/required/graphics/graphics-2017-06-25.sty
-2022/10/31 | 2994 | macros/latex/required/graphics/graphics-drivers.ins
-2022/10/31 | 70951 | macros/latex/required/graphics/graphics.dtx
-2022/10/31 | 1189 | macros/latex/required/graphics/graphics.ins
-2022/10/31 | 303464 | macros/latex/required/graphics/graphics.pdf
-2022/10/31 | 30464 | macros/latex/required/graphics/graphicx.dtx
-2022/10/31 | 240623 | macros/latex/required/graphics/graphicx.pdf
-2022/10/31 | 330978 | macros/latex/required/graphics/grfguide.pdf
-2022/10/31 | 37572 | macros/latex/required/graphics/grfguide.tex
-2022/10/31 | 13875 | macros/latex/required/graphics/keyval.dtx
-2022/10/31 | 239589 | macros/latex/required/graphics/keyval.pdf
-2022/10/31 | 3946 | macros/latex/required/graphics/lscape.dtx
-2022/10/31 | 155986 | macros/latex/required/graphics/lscape.pdf
-2022/10/31 | 16168 | macros/latex/required/graphics/mathcolor.dtx
-2022/10/31 | 474666 | macros/latex/required/graphics/mathcolor.pdf
-2022/10/31 | 2076 | macros/latex/required/graphics/README.md
-2022/10/31 | 21067 | macros/latex/required/graphics/rotating.dtx
-2022/10/31 | 278331 | macros/latex/required/graphics/rotating.pdf
-2022/10/31 | 172263 | macros/latex/required/graphics/rotex.pdf
-2022/10/31 | 14575 | macros/latex/required/graphics/rotex.tex
-2022/10/31 | 10753 | macros/latex/required/graphics/trig.dtx
-2022/10/31 | 199266 | macros/latex/required/graphics/trig.pdf
-2022/11/01 | 3072840 | macros/latex/required/graphics.zip
+2024/06/01 | 8663 | macros/latex/required/amsmath/amsbsy.dtx
+2024/06/01 | 1505 | macros/latex/required/amsmath/amsbsy.ins
+2024/06/01 | 174946 | macros/latex/required/amsmath/amsbsy.pdf
+2024/06/01 | 11284 | macros/latex/required/amsmath/amscd.dtx
+2024/06/01 | 1487 | macros/latex/required/amsmath/amscd.ins
+2024/06/01 | 179951 | macros/latex/required/amsmath/amscd.pdf
+2024/06/01 | 5313 | macros/latex/required/amsmath/ams-external.txt
+2024/06/01 | 13442 | macros/latex/required/amsmath/amsgen.dtx
+2024/06/01 | 1484 | macros/latex/required/amsmath/amsgen.ins
+2024/06/01 | 178193 | macros/latex/required/amsmath/amsgen.pdf
+2024/06/01 | 5860 | macros/latex/required/amsmath/ams-internal.txt
+2024/06/01 | 508230 | macros/latex/required/amsmath/amsldoc.pdf
+2024/06/01 | 104792 | macros/latex/required/amsmath/amsldoc.tex
+2024/06/01 | 85247 | macros/latex/required/amsmath/amsmath-2018-12-01.sty
+2024/06/01 | 230689 | macros/latex/required/amsmath/amsmath.dtx
+2024/06/01 | 1504 | macros/latex/required/amsmath/amsmath.ins
+2024/06/01 | 420765 | macros/latex/required/amsmath/amsmath.pdf
+2024/06/01 | 10199 | macros/latex/required/amsmath/amsopn.dtx
+2024/06/01 | 1490 | macros/latex/required/amsmath/amsopn.ins
+2024/06/01 | 140093 | macros/latex/required/amsmath/amsopn.pdf
+2024/06/01 | 69732 | macros/latex/required/amsmath/amstex.sty
+2024/06/01 | 11398 | macros/latex/required/amsmath/amstext.dtx
+2024/06/01 | 1492 | macros/latex/required/amsmath/amstext.ins
+2024/06/01 | 217504 | macros/latex/required/amsmath/amstext.pdf
+2024/06/01 | 4336 | macros/latex/required/amsmath/amsxtra.dtx
+2024/06/01 | 1492 | macros/latex/required/amsmath/amsxtra.ins
+2024/06/01 | 113560 | macros/latex/required/amsmath/amsxtra.pdf
+2024/06/01 | 8924 | macros/latex/required/amsmath/changes.txt
+2024/06/01 | 22605 | macros/latex/required/amsmath/diffs-m.txt
+2024/06/01 | 369 | macros/latex/required/amsmath/manifest.txt
+2024/06/01 | 2723 | macros/latex/required/amsmath/README.md
+2024/06/01 | 109733 | macros/latex/required/amsmath/subeqn.pdf
+2024/06/01 | 6440 | macros/latex/required/amsmath/subeqn.tex
+2024/06/01 | 147459 | macros/latex/required/amsmath/technote.pdf
+2024/06/01 | 12005 | macros/latex/required/amsmath/technote.tex
+2024/06/01 | 454643 | macros/latex/required/amsmath/testmath.pdf
+2024/06/01 | 81184 | macros/latex/required/amsmath/testmath.tex
+2024/06/02 | 2763663 | macros/latex/required/amsmath.zip
+2024/06/02 | 650192 | macros/latex/required/babel/base/babel-code.pdf
+2024/06/02 | 806205 | macros/latex/required/babel/base/babel.dtx
+2024/06/02 | 8962 | macros/latex/required/babel/base/babel.ins
+2024/06/02 | 423502 | macros/latex/required/babel/base/babel.pdf
+2024/06/02 | 21890 | macros/latex/required/babel/base/bbcompat.dtx
+2024/06/02 | 3527 | macros/latex/required/babel/base/bbidxglo.dtx
+2024/06/02 | 1088254 | macros/latex/required/babel/base/locale.zip
+2024/06/02 | 1855 | macros/latex/required/babel/base/README.md
+2024/06/02 | 2372551 | macros/latex/required/babel/base.zip
+2024/06/01 | 5831 | macros/latex/required/cyrillic/changes.txt
+2024/06/01 | 57710 | macros/latex/required/cyrillic/cyinpenc.dtx
+2024/06/01 | 215395 | macros/latex/required/cyrillic/cyinpenc.pdf
+2024/06/01 | 25098 | macros/latex/required/cyrillic/cyoutenc.dtx
+2024/06/01 | 157791 | macros/latex/required/cyrillic/cyoutenc.pdf
+2024/06/01 | 10569 | macros/latex/required/cyrillic/cyrlatex.ins
+2024/06/01 | 10307 | macros/latex/required/cyrillic/lcycmlh.fdd
+2024/06/01 | 127222 | macros/latex/required/cyrillic/lcycmlh.pdf
+2024/06/01 | 12968 | macros/latex/required/cyrillic/lcy.dtx
+2024/06/01 | 203741 | macros/latex/required/cyrillic/lcy.pdf
+2024/06/01 | 951 | macros/latex/required/cyrillic/manifest.txt
+2024/06/01 | 4296 | macros/latex/required/cyrillic/ot2cmams.fdd
+2024/06/01 | 99753 | macros/latex/required/cyrillic/ot2cmams.pdf
+2024/06/01 | 10470 | macros/latex/required/cyrillic/ot2cmlh.fdd
+2024/06/01 | 130460 | macros/latex/required/cyrillic/ot2cmlh.pdf
+2024/06/01 | 7831 | macros/latex/required/cyrillic/ot2.dtx
+2024/06/01 | 113858 | macros/latex/required/cyrillic/ot2.pdf
+2024/06/01 | 1642 | macros/latex/required/cyrillic/README.md
+2024/06/01 | 27558 | macros/latex/required/cyrillic/t2lhfnt.fdd
+2024/06/01 | 144073 | macros/latex/required/cyrillic/t2lhfnt.pdf
+2024/06/02 | 1202142 | macros/latex/required/cyrillic.zip
+2024/06/01 | 6181 | macros/latex/required/firstaid/changes.txt
+2024/06/01 | 2744 | macros/latex/required/firstaid/firstaid.ins
+2024/06/01 | 25037 | macros/latex/required/firstaid/latex2e-first-aid-for-external-files.dtx
+2024/06/01 | 274055 | macros/latex/required/firstaid/latex2e-first-aid-for-external-files.pdf
+2024/06/01 | 474 | macros/latex/required/firstaid/README.md
+2024/06/02 | 275420 | macros/latex/required/firstaid.zip
+2024/06/01 | 15737 | macros/latex/required/graphics/cat.eps
+2024/06/01 | 36030 | macros/latex/required/graphics/changes.txt
+2024/06/01 | 32200 | macros/latex/required/graphics/color.dtx
+2024/06/01 | 212179 | macros/latex/required/graphics/color.pdf
+2024/06/01 | 50819 | macros/latex/required/graphics/drivers.dtx
+2024/06/01 | 286448 | macros/latex/required/graphics/drivers.pdf
+2024/06/01 | 4137 | macros/latex/required/graphics/epsfig.dtx
+2024/06/01 | 159239 | macros/latex/required/graphics/epsfig.pdf
+2024/06/01 | 15577 | macros/latex/required/graphics/graphics-2017-06-25.sty
+2024/06/01 | 2994 | macros/latex/required/graphics/graphics-drivers.ins
+2024/06/01 | 70993 | macros/latex/required/graphics/graphics.dtx
+2024/06/01 | 1189 | macros/latex/required/graphics/graphics.ins
+2024/06/01 | 304170 | macros/latex/required/graphics/graphics.pdf
+2024/06/01 | 30464 | macros/latex/required/graphics/graphicx.dtx
+2024/06/01 | 240618 | macros/latex/required/graphics/graphicx.pdf
+2024/06/01 | 331363 | macros/latex/required/graphics/grfguide.pdf
+2024/06/01 | 38040 | macros/latex/required/graphics/grfguide.tex
+2024/06/01 | 13875 | macros/latex/required/graphics/keyval.dtx
+2024/06/01 | 239587 | macros/latex/required/graphics/keyval.pdf
+2024/06/01 | 3946 | macros/latex/required/graphics/lscape.dtx
+2024/06/01 | 155987 | macros/latex/required/graphics/lscape.pdf
+2024/06/01 | 16168 | macros/latex/required/graphics/mathcolor.dtx
+2024/06/01 | 460494 | macros/latex/required/graphics/mathcolor.pdf
+2024/06/01 | 2090 | macros/latex/required/graphics/README.md
+2024/06/01 | 21067 | macros/latex/required/graphics/rotating.dtx
+2024/06/01 | 278397 | macros/latex/required/graphics/rotating.pdf
+2024/06/01 | 172239 | macros/latex/required/graphics/rotex.pdf
+2024/06/01 | 14575 | macros/latex/required/graphics/rotex.tex
+2024/06/01 | 10749 | macros/latex/required/graphics/trig.dtx
+2024/06/01 | 199290 | macros/latex/required/graphics/trig.pdf
+2024/06/02 | 3060228 | macros/latex/required/graphics.zip
2024/05/23 | 11376 | macros/latex/required/l3backend/CHANGELOG.md
2024/05/23 | 16213 | macros/latex/required/l3backend/l3backend-basics.dtx
2024/05/23 | 14433 | macros/latex/required/l3backend/l3backend-box.dtx
@@ -259516,62 +259516,66 @@
2022/06/14 | 224606 | macros/latex/required/latexbug/latexbug.pdf
2022/06/14 | 248 | macros/latex/required/latexbug/README.md
2022/06/14 | 233263 | macros/latex/required/latexbug.zip
-2023/11/01 | 886150 | macros/latex/required/latex-lab/blocks-code.pdf
-2023/11/01 | 108 | macros/latex/required/latex-lab/blocks-code.tex
-2023/11/01 | 440234 | macros/latex/required/latex-lab/blocks-doc.pdf
-2023/11/01 | 105 | macros/latex/required/latex-lab/blocks-doc.tex
-2023/11/01 | 6593 | macros/latex/required/latex-lab/changes.txt
-2023/11/01 | 523380 | macros/latex/required/latex-lab/documentmetadata-support-code.pdf
-2023/11/01 | 117 | macros/latex/required/latex-lab/documentmetadata-support-code.tex
-2023/11/01 | 389003 | macros/latex/required/latex-lab/documentmetadata-support-doc.pdf
-2023/11/01 | 191 | macros/latex/required/latex-lab/documentmetadata-support-doc.tex
-2023/11/01 | 19447 | macros/latex/required/latex-lab/documentmetadata-support.dtx
-2023/11/01 | 6221 | macros/latex/required/latex-lab/glyphtounicode-cmex.tex
-2023/11/01 | 3179 | macros/latex/required/latex-lab/latex-lab-amsmath.dtx
-2023/11/01 | 357553 | macros/latex/required/latex-lab/latex-lab-amsmath.pdf
-2023/11/01 | 14027 | macros/latex/required/latex-lab/latex-lab-bib.dtx
-2023/11/01 | 411092 | macros/latex/required/latex-lab/latex-lab-bib.pdf
-2023/11/01 | 135159 | macros/latex/required/latex-lab/latex-lab-block.dtx
-2023/11/01 | 886150 | macros/latex/required/latex-lab/latex-lab-block.pdf
-2023/11/01 | 4566 | macros/latex/required/latex-lab/latex-lab-firstaid.dtx
-2023/11/01 | 272864 | macros/latex/required/latex-lab/latex-lab-firstaid.pdf
-2023/11/01 | 16852 | macros/latex/required/latex-lab/latex-lab-float.dtx
-2023/11/01 | 444977 | macros/latex/required/latex-lab/latex-lab-float.pdf
-2023/11/01 | 87681 | macros/latex/required/latex-lab/latex-lab-footnotes.dtx
-2023/11/01 | 815656 | macros/latex/required/latex-lab/latex-lab-footnotes.pdf
-2023/11/01 | 34333 | macros/latex/required/latex-lab/latex-lab-graphic.dtx
-2023/11/01 | 496997 | macros/latex/required/latex-lab/latex-lab-graphic.pdf
-2023/11/01 | 6127 | macros/latex/required/latex-lab/latex-lab.ins
-2023/11/01 | 37115 | macros/latex/required/latex-lab/latex-lab-math.dtx
-2023/11/01 | 612623 | macros/latex/required/latex-lab/latex-lab-math.pdf
-2023/11/01 | 2453 | macros/latex/required/latex-lab/latex-lab-mathpkg.dtx
-2023/11/01 | 302371 | macros/latex/required/latex-lab/latex-lab-mathpkg.pdf
-2023/11/01 | 6134 | macros/latex/required/latex-lab/latex-lab-mathtools.dtx
-2023/11/01 | 357553 | macros/latex/required/latex-lab/latex-lab-mathtools.pdf
-2023/11/01 | 7303 | macros/latex/required/latex-lab/latex-lab-minipage.dtx
-2023/11/01 | 280811 | macros/latex/required/latex-lab/latex-lab-minipage.pdf
-2023/11/01 | 2882 | macros/latex/required/latex-lab/latex-lab-namespace.dtx
-2023/11/01 | 234649 | macros/latex/required/latex-lab/latex-lab-namespace.pdf
-2023/11/01 | 5684 | macros/latex/required/latex-lab/latex-lab-new-or-1.dtx
-2023/11/01 | 389721 | macros/latex/required/latex-lab/latex-lab-new-or-1.pdf
-2023/11/01 | 23812 | macros/latex/required/latex-lab/latex-lab-new-or-2.dtx
-2023/11/01 | 632310 | macros/latex/required/latex-lab/latex-lab-new-or-2.pdf
-2023/11/01 | 26638 | macros/latex/required/latex-lab/latex-lab-sec.dtx
-2023/11/01 | 527916 | macros/latex/required/latex-lab/latex-lab-sec.pdf
-2023/11/01 | 65052 | macros/latex/required/latex-lab/latex-lab-table.dtx
-2023/11/01 | 621929 | macros/latex/required/latex-lab/latex-lab-table.pdf
-2023/11/01 | 4770 | macros/latex/required/latex-lab/latex-lab-testphase.dtx
-2023/11/01 | 298403 | macros/latex/required/latex-lab/latex-lab-testphase.pdf
-2023/11/01 | 3669 | macros/latex/required/latex-lab/latex-lab-text.dtx
-2023/11/01 | 307812 | macros/latex/required/latex-lab/latex-lab-text.pdf
-2023/11/01 | 12805 | macros/latex/required/latex-lab/latex-lab-toc.dtx
-2023/11/01 | 5733 | macros/latex/required/latex-lab/latex-lab-toc-hyperref-changes.dtx
-2023/11/01 | 296124 | macros/latex/required/latex-lab/latex-lab-toc-hyperref-changes.pdf
-2023/11/01 | 18464 | macros/latex/required/latex-lab/latex-lab-toc-kernel-changes.dtx
-2023/11/01 | 361084 | macros/latex/required/latex-lab/latex-lab-toc-kernel-changes.pdf
-2023/11/01 | 396817 | macros/latex/required/latex-lab/latex-lab-toc.pdf
-2023/11/01 | 1142 | macros/latex/required/latex-lab/README.md
-2023/11/01 | 11370239 | macros/latex/required/latex-lab.zip
+2024/06/01 | 871980 | macros/latex/required/latex-lab/blocks-code.pdf
+2024/06/01 | 108 | macros/latex/required/latex-lab/blocks-code.tex
+2024/06/01 | 486159 | macros/latex/required/latex-lab/blocks-doc.pdf
+2024/06/01 | 105 | macros/latex/required/latex-lab/blocks-doc.tex
+2024/06/01 | 13366 | macros/latex/required/latex-lab/changes.txt
+2024/06/01 | 539294 | macros/latex/required/latex-lab/documentmetadata-support-code.pdf
+2024/06/01 | 117 | macros/latex/required/latex-lab/documentmetadata-support-code.tex
+2024/06/01 | 420808 | macros/latex/required/latex-lab/documentmetadata-support-doc.pdf
+2024/06/01 | 191 | macros/latex/required/latex-lab/documentmetadata-support-doc.tex
+2024/06/01 | 23552 | macros/latex/required/latex-lab/documentmetadata-support.dtx
+2024/06/01 | 6221 | macros/latex/required/latex-lab/glyphtounicode-cmex.tex
+2024/06/01 | 7422 | macros/latex/required/latex-lab/latex-lab-amsmath.dtx
+2024/06/01 | 381899 | macros/latex/required/latex-lab/latex-lab-amsmath.pdf
+2024/06/01 | 14373 | macros/latex/required/latex-lab/latex-lab-bib.dtx
+2024/06/01 | 383259 | macros/latex/required/latex-lab/latex-lab-bib.pdf
+2024/06/01 | 137301 | macros/latex/required/latex-lab/latex-lab-block.dtx
+2024/06/01 | 871980 | macros/latex/required/latex-lab/latex-lab-block.pdf
+2024/06/01 | 10996 | macros/latex/required/latex-lab/latex-lab-firstaid.dtx
+2024/06/01 | 368000 | macros/latex/required/latex-lab/latex-lab-firstaid.pdf
+2024/06/01 | 17974 | macros/latex/required/latex-lab/latex-lab-float.dtx
+2024/06/01 | 426854 | macros/latex/required/latex-lab/latex-lab-float.pdf
+2024/06/01 | 89915 | macros/latex/required/latex-lab/latex-lab-footnotes.dtx
+2024/06/01 | 819567 | macros/latex/required/latex-lab/latex-lab-footnotes.pdf
+2024/06/01 | 34475 | macros/latex/required/latex-lab/latex-lab-graphic.dtx
+2024/06/01 | 517900 | macros/latex/required/latex-lab/latex-lab-graphic.pdf
+2024/06/01 | 6601 | macros/latex/required/latex-lab/latex-lab.ins
+2024/06/01 | 8891 | macros/latex/required/latex-lab/latex-lab-marginpar.dtx
+2024/06/01 | 389702 | macros/latex/required/latex-lab/latex-lab-marginpar.pdf
+2024/06/01 | 72667 | macros/latex/required/latex-lab/latex-lab-math.dtx
+2024/06/01 | 740772 | macros/latex/required/latex-lab/latex-lab-math.pdf
+2024/06/01 | 2898 | macros/latex/required/latex-lab/latex-lab-mathpkg.dtx
+2024/06/01 | 355622 | macros/latex/required/latex-lab/latex-lab-mathpkg.pdf
+2024/06/01 | 6269 | macros/latex/required/latex-lab/latex-lab-mathtools.dtx
+2024/06/01 | 381899 | macros/latex/required/latex-lab/latex-lab-mathtools.pdf
+2024/06/01 | 7315 | macros/latex/required/latex-lab/latex-lab-minipage.dtx
+2024/06/01 | 280811 | macros/latex/required/latex-lab/latex-lab-minipage.pdf
+2024/06/01 | 3348 | macros/latex/required/latex-lab/latex-lab-namespace.dtx
+2024/06/01 | 235751 | macros/latex/required/latex-lab/latex-lab-namespace.pdf
+2024/06/01 | 5684 | macros/latex/required/latex-lab/latex-lab-new-or-1.dtx
+2024/06/01 | 389721 | macros/latex/required/latex-lab/latex-lab-new-or-1.pdf
+2024/06/01 | 23812 | macros/latex/required/latex-lab/latex-lab-new-or-2.dtx
+2024/06/01 | 632196 | macros/latex/required/latex-lab/latex-lab-new-or-2.pdf
+2024/06/01 | 26699 | macros/latex/required/latex-lab/latex-lab-sec.dtx
+2024/06/01 | 527096 | macros/latex/required/latex-lab/latex-lab-sec.pdf
+2024/06/01 | 39912 | macros/latex/required/latex-lab/latex-lab-table.dtx
+2024/06/01 | 556567 | macros/latex/required/latex-lab/latex-lab-table.pdf
+2024/06/01 | 4822 | macros/latex/required/latex-lab/latex-lab-testphase.dtx
+2024/06/01 | 297981 | macros/latex/required/latex-lab/latex-lab-testphase.pdf
+2024/06/01 | 3674 | macros/latex/required/latex-lab/latex-lab-text.dtx
+2024/06/01 | 307812 | macros/latex/required/latex-lab/latex-lab-text.pdf
+2024/06/01 | 17010 | macros/latex/required/latex-lab/latex-lab-title.dtx
+2024/06/01 | 348117 | macros/latex/required/latex-lab/latex-lab-title.pdf
+2024/06/01 | 12805 | macros/latex/required/latex-lab/latex-lab-toc.dtx
+2024/06/01 | 5733 | macros/latex/required/latex-lab/latex-lab-toc-hyperref-changes.dtx
+2024/06/01 | 296124 | macros/latex/required/latex-lab/latex-lab-toc-hyperref-changes.pdf
+2024/06/01 | 18465 | macros/latex/required/latex-lab/latex-lab-toc-kernel-changes.dtx
+2024/06/01 | 361081 | macros/latex/required/latex-lab/latex-lab-toc-kernel-changes.pdf
+2024/06/01 | 396814 | macros/latex/required/latex-lab/latex-lab-toc.pdf
+2024/06/01 | 1156 | macros/latex/required/latex-lab/README.md
+2024/06/02 | 12399834 | macros/latex/required/latex-lab.zip
2020/04/01 | 4858 | macros/latex/required/psnfss/8r.enc
2020/04/01 | 8765 | macros/latex/required/psnfss/changes.txt
2020/04/01 | 503 | macros/latex/required/psnfss/charter.map
@@ -259594,78 +259598,83 @@
2020/04/01 | 1004 | macros/latex/required/psnfss/test3.tex
2020/04/01 | 489 | macros/latex/required/psnfss/utopia.map
2020/04/01 | 1211157 | macros/latex/required/psnfss.zip
-2023/11/21 | 14075 | macros/latex/required/tools/afterpage.dtx
-2023/11/21 | 2538 | macros/latex/required/tools/afterpage.ins
-2023/11/21 | 198100 | macros/latex/required/tools/afterpage.pdf
-2023/11/21 | 11749 | macros/latex/required/tools/array-2016-10-06.sty
-2023/11/21 | 12559 | macros/latex/required/tools/array-2020-02-10.sty
-2023/11/21 | 128520 | macros/latex/required/tools/array.dtx
-2023/11/21 | 517410 | macros/latex/required/tools/array.pdf
-2023/11/21 | 61635 | macros/latex/required/tools/bm.dtx
-2023/11/21 | 2524 | macros/latex/required/tools/bm.ins
-2023/11/21 | 323929 | macros/latex/required/tools/bm.pdf
-2023/11/21 | 53167 | macros/latex/required/tools/calc.dtx
-2023/11/21 | 370660 | macros/latex/required/tools/calc.pdf
-2023/11/21 | 63933 | macros/latex/required/tools/changes.txt
-2023/11/21 | 12706 | macros/latex/required/tools/dcolumn.dtx
-2023/11/21 | 221038 | macros/latex/required/tools/dcolumn.pdf
-2023/11/21 | 6789 | macros/latex/required/tools/delarray.dtx
-2023/11/21 | 191058 | macros/latex/required/tools/delarray.pdf
-2023/11/21 | 10637 | macros/latex/required/tools/enumerate.dtx
-2023/11/21 | 215077 | macros/latex/required/tools/enumerate.pdf
-2023/11/21 | 4959 | macros/latex/required/tools/fileerr.dtx
-2023/11/21 | 188278 | macros/latex/required/tools/fileerr.pdf
-2023/11/21 | 10771 | macros/latex/required/tools/fontsmpl.dtx
-2023/11/21 | 146438 | macros/latex/required/tools/fontsmpl.pdf
-2023/11/21 | 39697 | macros/latex/required/tools/ftnright.dtx
-2023/11/21 | 387784 | macros/latex/required/tools/ftnright.pdf
-2023/11/21 | 11148 | macros/latex/required/tools/hhline.dtx
-2023/11/21 | 189678 | macros/latex/required/tools/hhline.pdf
-2023/11/21 | 2219 | macros/latex/required/tools/indentfirst.dtx
-2023/11/21 | 157352 | macros/latex/required/tools/indentfirst.pdf
-2023/11/21 | 32047 | macros/latex/required/tools/layout.dtx
-2023/11/21 | 260278 | macros/latex/required/tools/layout.pdf
-2023/11/21 | 12133 | macros/latex/required/tools/longtable-2020-01-07.sty
-2023/11/21 | 76541 | macros/latex/required/tools/longtable.dtx
-2023/11/21 | 2538 | macros/latex/required/tools/longtable.ins
-2023/11/21 | 391258 | macros/latex/required/tools/longtable.pdf
-2023/11/21 | 3284 | macros/latex/required/tools/manifest.txt
-2023/11/21 | 29712 | macros/latex/required/tools/multicol-2017-04-11.sty
-2023/11/21 | 31646 | macros/latex/required/tools/multicol-2019-10-01.sty
-2023/11/21 | 186367 | macros/latex/required/tools/multicol.dtx
-2023/11/21 | 2576 | macros/latex/required/tools/multicol.ins
-2023/11/21 | 523613 | macros/latex/required/tools/multicol.pdf
-2023/11/21 | 8976 | macros/latex/required/tools/rawfonts.dtx
-2023/11/21 | 138956 | macros/latex/required/tools/rawfonts.pdf
-2023/11/21 | 1651 | macros/latex/required/tools/README.md
-2023/11/21 | 9559 | macros/latex/required/tools/shellesc.dtx
-2023/11/21 | 176171 | macros/latex/required/tools/shellesc.pdf
-2023/11/21 | 8632 | macros/latex/required/tools/showkeys-2014-10-28.sty
-2023/11/21 | 30279 | macros/latex/required/tools/showkeys.dtx
-2023/11/21 | 252975 | macros/latex/required/tools/showkeys.pdf
-2023/11/21 | 5791 | macros/latex/required/tools/somedefs.dtx
-2023/11/21 | 167583 | macros/latex/required/tools/somedefs.pdf
-2023/11/21 | 35874 | macros/latex/required/tools/tabularx.dtx
-2023/11/21 | 2535 | macros/latex/required/tools/tabularx.ins
-2023/11/21 | 287013 | macros/latex/required/tools/tabularx.pdf
-2023/11/21 | 43446 | macros/latex/required/tools/theorem.dtx
-2023/11/21 | 352312 | macros/latex/required/tools/theorem.pdf
-2023/11/21 | 5680 | macros/latex/required/tools/tools.ins
-2023/11/21 | 73673 | macros/latex/required/tools/tools-overview.pdf
-2023/11/21 | 5211 | macros/latex/required/tools/tools-overview.tex
-2023/11/21 | 25146 | macros/latex/required/tools/trace.dtx
-2023/11/21 | 222074 | macros/latex/required/tools/trace.pdf
-2023/11/21 | 33863 | macros/latex/required/tools/varioref-2016-02-16.sty
-2023/11/21 | 114350 | macros/latex/required/tools/varioref.dtx
-2023/11/21 | 2531 | macros/latex/required/tools/varioref.ins
-2023/11/21 | 393134 | macros/latex/required/tools/varioref.pdf
-2023/11/21 | 72554 | macros/latex/required/tools/verbatim.dtx
-2023/11/21 | 331326 | macros/latex/required/tools/verbatim.pdf
-2023/11/21 | 6219 | macros/latex/required/tools/xr.dtx
-2023/11/21 | 170451 | macros/latex/required/tools/xr.pdf
-2023/11/21 | 17856 | macros/latex/required/tools/xspace.dtx
-2023/11/21 | 257027 | macros/latex/required/tools/xspace.pdf
-2023/11/21 | 7252664 | macros/latex/required/tools.zip
+2024/06/01 | 14075 | macros/latex/required/tools/afterpage.dtx
+2024/06/01 | 2538 | macros/latex/required/tools/afterpage.ins
+2024/06/01 | 198100 | macros/latex/required/tools/afterpage.pdf
+2024/06/01 | 11849 | macros/latex/required/tools/array-2016-10-06.sty
+2024/06/01 | 12535 | macros/latex/required/tools/array-2020-02-10.sty
+2024/06/01 | 12587 | macros/latex/required/tools/array-2023-11-01.sty
+2024/06/01 | 140078 | macros/latex/required/tools/array.dtx
+2024/06/01 | 839197 | macros/latex/required/tools/array.pdf
+2024/06/01 | 61642 | macros/latex/required/tools/bm.dtx
+2024/06/01 | 2524 | macros/latex/required/tools/bm.ins
+2024/06/01 | 323640 | macros/latex/required/tools/bm.pdf
+2024/06/01 | 53167 | macros/latex/required/tools/calc.dtx
+2024/06/01 | 370660 | macros/latex/required/tools/calc.pdf
+2024/06/01 | 65914 | macros/latex/required/tools/changes.txt
+2024/06/01 | 12706 | macros/latex/required/tools/dcolumn.dtx
+2024/06/01 | 221038 | macros/latex/required/tools/dcolumn.pdf
+2024/06/01 | 6789 | macros/latex/required/tools/delarray.dtx
+2024/06/01 | 191058 | macros/latex/required/tools/delarray.pdf
+2024/06/01 | 10637 | macros/latex/required/tools/enumerate.dtx
+2024/06/01 | 215077 | macros/latex/required/tools/enumerate.pdf
+2024/06/01 | 4959 | macros/latex/required/tools/fileerr.dtx
+2024/06/01 | 187629 | macros/latex/required/tools/fileerr.pdf
+2024/06/01 | 10771 | macros/latex/required/tools/fontsmpl.dtx
+2024/06/01 | 146438 | macros/latex/required/tools/fontsmpl.pdf
+2024/06/01 | 39697 | macros/latex/required/tools/ftnright.dtx
+2024/06/01 | 387159 | macros/latex/required/tools/ftnright.pdf
+2024/06/01 | 11148 | macros/latex/required/tools/hhline.dtx
+2024/06/01 | 189678 | macros/latex/required/tools/hhline.pdf
+2024/06/01 | 2219 | macros/latex/required/tools/indentfirst.dtx
+2024/06/01 | 157352 | macros/latex/required/tools/indentfirst.pdf
+2024/06/01 | 21076 | macros/latex/required/tools/l3sys-query.dtx
+2024/06/01 | 2554 | macros/latex/required/tools/l3sys-query.ins
+2024/06/01 | 482622 | macros/latex/required/tools/l3sys-query.pdf
+2024/06/01 | 32047 | macros/latex/required/tools/layout.dtx
+2024/06/01 | 260278 | macros/latex/required/tools/layout.pdf
+2024/06/01 | 12282 | macros/latex/required/tools/longtable-2020-01-07.sty
+2024/06/01 | 85756 | macros/latex/required/tools/longtable.dtx
+2024/06/01 | 2538 | macros/latex/required/tools/longtable.ins
+2024/06/01 | 399651 | macros/latex/required/tools/longtable.pdf
+2024/06/01 | 3284 | macros/latex/required/tools/manifest.txt
+2024/06/01 | 29812 | macros/latex/required/tools/multicol-2017-04-11.sty
+2024/06/01 | 31467 | macros/latex/required/tools/multicol-2019-10-01.sty
+2024/06/01 | 188159 | macros/latex/required/tools/multicol.dtx
+2024/06/01 | 2576 | macros/latex/required/tools/multicol.ins
+2024/06/01 | 524609 | macros/latex/required/tools/multicol.pdf
+2024/06/01 | 8976 | macros/latex/required/tools/rawfonts.dtx
+2024/06/01 | 138956 | macros/latex/required/tools/rawfonts.pdf
+2024/06/01 | 1664 | macros/latex/required/tools/README.md
+2024/06/01 | 9559 | macros/latex/required/tools/shellesc.dtx
+2024/06/01 | 176171 | macros/latex/required/tools/shellesc.pdf
+2024/06/01 | 8780 | macros/latex/required/tools/showkeys-2014-10-28.sty
+2024/06/01 | 30386 | macros/latex/required/tools/showkeys.dtx
+2024/06/01 | 252923 | macros/latex/required/tools/showkeys.pdf
+2024/06/01 | 5791 | macros/latex/required/tools/somedefs.dtx
+2024/06/01 | 167583 | macros/latex/required/tools/somedefs.pdf
+2024/06/01 | 37462 | macros/latex/required/tools/tabularx.dtx
+2024/06/01 | 2535 | macros/latex/required/tools/tabularx.ins
+2024/06/01 | 289601 | macros/latex/required/tools/tabularx.pdf
+2024/06/01 | 43446 | macros/latex/required/tools/theorem.dtx
+2024/06/01 | 351675 | macros/latex/required/tools/theorem.pdf
+2024/06/01 | 5771 | macros/latex/required/tools/tools.ins
+2024/06/01 | 73673 | macros/latex/required/tools/tools-overview.pdf
+2024/06/01 | 5211 | macros/latex/required/tools/tools-overview.tex
+2024/06/01 | 25146 | macros/latex/required/tools/trace.dtx
+2024/06/01 | 222074 | macros/latex/required/tools/trace.pdf
+2024/06/01 | 34011 | macros/latex/required/tools/varioref-2016-02-16.sty
+2024/06/01 | 114484 | macros/latex/required/tools/varioref.dtx
+2024/06/01 | 2531 | macros/latex/required/tools/varioref.ins
+2024/06/01 | 393884 | macros/latex/required/tools/varioref.pdf
+2024/06/01 | 72911 | macros/latex/required/tools/verbatim.dtx
+2024/06/01 | 331587 | macros/latex/required/tools/verbatim.pdf
+2024/06/01 | 2749 | macros/latex/required/tools/xr-2023-07-04.sty
+2024/06/01 | 12515 | macros/latex/required/tools/xr.dtx
+2024/06/01 | 323877 | macros/latex/required/tools/xr.pdf
+2024/06/01 | 17856 | macros/latex/required/tools/xspace.dtx
+2024/06/01 | 257027 | macros/latex/required/tools/xspace.pdf
+2024/06/02 | 8221933 | macros/latex/required/tools.zip
2024/03/14 | 2761 | macros/luatex/generic/addtoluatexpath/addtoluatexpath.sty
2024/03/14 | 3397 | macros/luatex/generic/addtoluatexpath/README.md
2024/03/15 | 3220 | macros/luatex/generic/addtoluatexpath.zip
@@ -311870,8 +311879,8 @@
2019/02/28 | 348 | systems/texlive/tlnet/archive/installfont.x86_64-linuxmusl.r46840.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/installfont.x86_64-linux.r19743.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/installfont.x86_64-solaris.r19743.tar.xz
-2024/04/01 | 851468 | systems/texlive/tlnet/archive/install-latex-guide-zh-cn.doc.r70823.tar.xz
-2024/04/01 | 568 | systems/texlive/tlnet/archive/install-latex-guide-zh-cn.r70823.tar.xz
+2024/06/02 | 855636 | systems/texlive/tlnet/archive/install-latex-guide-zh-cn.doc.r71400.tar.xz
+2024/06/02 | 568 | systems/texlive/tlnet/archive/install-latex-guide-zh-cn.r71400.tar.xz
2019/12/18 | 423196 | systems/texlive/tlnet/archive/intcalc.doc.r53168.tar.xz
2019/12/18 | 5436 | systems/texlive/tlnet/archive/intcalc.r53168.tar.xz
2019/12/18 | 12576 | systems/texlive/tlnet/archive/intcalc.source.r53168.tar.xz
@@ -312571,12 +312580,12 @@
2019/02/28 | 348 | systems/texlive/tlnet/archive/latex-git-log.amd64-freebsd.r30983.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/latex-git-log.amd64-netbsd.r30983.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/latex-git-log.armhf-linux.r30983.tar.xz
-2020/03/02 | 110280 | systems/texlive/tlnet/archive/latex-git-log.doc.r54010.tar.xz
+2024/06/02 | 82860 | systems/texlive/tlnet/archive/latex-git-log.doc.r71402.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/latex-git-log.i386-freebsd.r30983.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/latex-git-log.i386-linux.r30983.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/latex-git-log.i386-netbsd.r30983.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/latex-git-log.i386-solaris.r30983.tar.xz
-2020/03/02 | 4880 | systems/texlive/tlnet/archive/latex-git-log.r54010.tar.xz
+2024/06/02 | 4836 | systems/texlive/tlnet/archive/latex-git-log.r71402.tar.xz
2021/02/25 | 340 | systems/texlive/tlnet/archive/latex-git-log.universal-darwin.r57908.tar.xz
2023/02/20 | 2308 | systems/texlive/tlnet/archive/latex-git-log.windows.r65891.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/latex-git-log.x86_64-cygwin.r33557.tar.xz
@@ -318022,7 +318031,7 @@
2022/09/13 | 600 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r64356.tar.xz
-2024/06/01 | 435700 | systems/texlive/tlnet/archive/texlive-scripts.doc.r71398.tar.xz
+2024/06/02 | 435700 | systems/texlive/tlnet/archive/texlive-scripts.doc.r71403.tar.xz
2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.aarch64-linux.r53577.tar.xz
2020/01/27 | 924 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-freebsd.r53577.tar.xz
2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-netbsd.r53577.tar.xz
@@ -318044,7 +318053,7 @@
2022/09/13 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r64356.tar.xz
-2024/06/01 | 114380 | systems/texlive/tlnet/archive/texlive-scripts.r71398.tar.xz
+2024/06/02 | 114384 | systems/texlive/tlnet/archive/texlive-scripts.r71403.tar.xz
2022/09/13 | 580 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r64356.tar.xz
2024/05/10 | 60592 | systems/texlive/tlnet/archive/texlive-scripts.windows.r71215.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r64356.tar.xz
@@ -318694,9 +318703,9 @@
2019/02/28 | 15044 | systems/texlive/tlnet/archive/tpslifonts.doc.r42428.tar.xz
2019/02/28 | 5356 | systems/texlive/tlnet/archive/tpslifonts.r42428.tar.xz
2019/02/28 | 10492 | systems/texlive/tlnet/archive/tpslifonts.source.r42428.tar.xz
-2019/02/28 | 692732 | systems/texlive/tlnet/archive/tqft.doc.r44455.tar.xz
-2019/02/28 | 6808 | systems/texlive/tlnet/archive/tqft.r44455.tar.xz
-2019/02/28 | 12520 | systems/texlive/tlnet/archive/tqft.source.r44455.tar.xz
+2024/06/02 | 742568 | systems/texlive/tlnet/archive/tqft.doc.r71401.tar.xz
+2024/06/02 | 6980 | systems/texlive/tlnet/archive/tqft.r71401.tar.xz
+2024/06/02 | 12988 | systems/texlive/tlnet/archive/tqft.source.r71401.tar.xz
2022/12/14 | 1689036 | systems/texlive/tlnet/archive/tracklang.doc.r65263.tar.xz
2022/12/14 | 19268 | systems/texlive/tlnet/archive/tracklang.r65263.tar.xz
2022/12/14 | 34704 | systems/texlive/tlnet/archive/tracklang.source.r65263.tar.xz
@@ -319991,16 +320000,16 @@
2020/07/18 | 47816 | systems/texlive/tlnet/archive/zztex.doc.r55862.tar.xz
2020/07/18 | 101724 | systems/texlive/tlnet/archive/zztex.r55862.tar.xz
2024/05/02 | 125808 | systems/texlive/tlnet/install-tl
-2024/06/01 | 5751425 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2024/06/01 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2024/06/01 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2024/06/02 | 5752378 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2024/06/02 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2024/06/02 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2024/04/13 | 5743 | systems/texlive/tlnet/install-tl-windows.bat
-2024/06/01 | 27720354 | systems/texlive/tlnet/install-tl-windows.exe
-2024/06/01 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2024/06/01 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2024/06/01 | 34426643 | systems/texlive/tlnet/install-tl.zip
-2024/06/01 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2024/06/01 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2024/06/02 | 27717510 | systems/texlive/tlnet/install-tl-windows.exe
+2024/06/02 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2024/06/02 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2024/06/02 | 34426654 | systems/texlive/tlnet/install-tl.zip
+2024/06/02 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2024/06/02 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2024/03/13 | 1229 | systems/texlive/tlnet/README.md
2024/03/13 | 0 | systems/texlive/tlnet/TEXLIVE_2024
2024/01/02 | 9011 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
@@ -320010,7 +320019,7 @@
2024/01/02 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
2024/01/16 | 50726 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
-2024/06/01 | 7242 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2024/06/02 | 7279 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2024/03/15 | 229654 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt
2020/04/15 | 2606592 | systems/texlive/tlnet/tlpkg/installer/curl/curl.exe
2017/04/16 | 2629 | systems/texlive/tlnet/tlpkg/installer/installer-options.txt
@@ -320052,12 +320061,12 @@
2023/02/21 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2024/05/02 | 5898 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2023/04/08 | 28167 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2024/06/01 | 19492762 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2024/06/01 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2024/06/02 | 19492788 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2024/06/02 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2024/05/02 | 87729 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2024/06/01 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2024/06/01 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2024/06/01 | 2574824 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2024/06/02 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2024/06/02 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2024/06/02 | 2577352 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2023/02/20 | 58928 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2023/06/11 | 42749 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2023/02/21 | 16138 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -324621,9 +324630,9 @@
2016/07/20 | 229228 | systems/win32/miktex/tm/packages/biocon.tar.lzma
2016/10/07 | 6473 | systems/win32/miktex/tm/packages/biolett-bst.tar.lzma
2012/04/04 | 373402 | systems/win32/miktex/tm/packages/bitelist.tar.lzma
-2024/05/05 | 751702 | systems/win32/miktex/tm/packages/bithesis__doc.tar.lzma
-2024/05/05 | 30036 | systems/win32/miktex/tm/packages/bithesis__source.tar.lzma
-2024/05/05 | 23779 | systems/win32/miktex/tm/packages/bithesis.tar.lzma
+2024/06/02 | 753276 | systems/win32/miktex/tm/packages/bithesis__doc.tar.lzma
+2024/06/02 | 30767 | systems/win32/miktex/tm/packages/bithesis__source.tar.lzma
+2024/06/02 | 24516 | systems/win32/miktex/tm/packages/bithesis.tar.lzma
2015/12/15 | 184658 | systems/win32/miktex/tm/packages/bitpattern.tar.lzma
2019/12/13 | 638837 | systems/win32/miktex/tm/packages/bitset.tar.lzma
2023/07/17 | 46998 | systems/win32/miktex/tm/packages/bitter__doc.tar.lzma
@@ -325345,9 +325354,9 @@
2022/08/11 | 361526 | systems/win32/miktex/tm/packages/customdice__doc.tar.lzma
2022/08/11 | 7751 | systems/win32/miktex/tm/packages/customdice__source.tar.lzma
2022/08/11 | 2821 | systems/win32/miktex/tm/packages/customdice.tar.lzma
-2024/05/27 | 1642395 | systems/win32/miktex/tm/packages/customenvs__doc.tar.lzma
-2024/05/27 | 13999 | systems/win32/miktex/tm/packages/customenvs__source.tar.lzma
-2024/05/27 | 11127 | systems/win32/miktex/tm/packages/customenvs.tar.lzma
+2024/06/02 | 1660803 | systems/win32/miktex/tm/packages/customenvs__doc.tar.lzma
+2024/06/02 | 15008 | systems/win32/miktex/tm/packages/customenvs__source.tar.lzma
+2024/06/02 | 12318 | systems/win32/miktex/tm/packages/customenvs.tar.lzma
2021/11/01 | 335032 | systems/win32/miktex/tm/packages/cutwin__doc.tar.lzma
2021/11/01 | 9830 | systems/win32/miktex/tm/packages/cutwin__source.tar.lzma
2021/11/01 | 3013 | systems/win32/miktex/tm/packages/cutwin.tar.lzma
@@ -325725,9 +325734,9 @@
2004/11/28 | 8818 | systems/win32/miktex/tm/packages/elmath.tar.lzma
2016/12/18 | 157386 | systems/win32/miktex/tm/packages/elocalloc.tar.lzma
2005/09/15 | 471815 | systems/win32/miktex/tm/packages/elpres.cab
-2021/08/11 | 374456 | systems/win32/miktex/tm/packages/elpres__doc.tar.lzma
-2021/08/11 | 15875 | systems/win32/miktex/tm/packages/elpres__source.tar.lzma
-2021/08/11 | 75310 | systems/win32/miktex/tm/packages/elpres.tar.lzma
+2024/06/02 | 366536 | systems/win32/miktex/tm/packages/elpres__doc.tar.lzma
+2024/06/02 | 17813 | systems/win32/miktex/tm/packages/elpres__source.tar.lzma
+2024/06/02 | 75723 | systems/win32/miktex/tm/packages/elpres.tar.lzma
2024/04/11 | 792623 | systems/win32/miktex/tm/packages/elsarticle__doc.tar.lzma
2024/04/11 | 26392 | systems/win32/miktex/tm/packages/elsarticle__source.tar.lzma
2024/04/11 | 19171 | systems/win32/miktex/tm/packages/elsarticle.tar.lzma
@@ -326091,7 +326100,7 @@
2022/11/01 | 5115 | systems/win32/miktex/tm/packages/filehook.tar.lzma
2012/12/04 | 924573 | systems/win32/miktex/tm/packages/fileinfo.tar.lzma
2011/09/21 | 281409 | systems/win32/miktex/tm/packages/filemod.tar.lzma
-2024/05/27 | 821106 | systems/win32/miktex/tm/packages/files.csv.lzma
+2024/06/02 | 821156 | systems/win32/miktex/tm/packages/files.csv.lzma
2001/05/14 | 5617 | systems/win32/miktex/tm/packages/finbib.tar.lzma
2015/10/20 | 44379 | systems/win32/miktex/tm/packages/findhyph.tar.lzma
2011/10/21 | 89323 | systems/win32/miktex/tm/packages/fink.tar.lzma
@@ -326785,9 +326794,9 @@
2020/03/06 | 287468 | systems/win32/miktex/tm/packages/icite.tar.lzma
2020/06/28 | 1511708 | systems/win32/miktex/tm/packages/icon-appr.tar.lzma
2008/05/23 | 223531 | systems/win32/miktex/tm/packages/icsv.tar.lzma
-2024/03/26 | 34838 | systems/win32/miktex/tm/packages/ideavault__doc.tar.lzma
-2024/03/26 | 2322 | systems/win32/miktex/tm/packages/ideavault__source.tar.lzma
-2024/03/26 | 3158 | systems/win32/miktex/tm/packages/ideavault.tar.lzma
+2024/06/02 | 35234 | systems/win32/miktex/tm/packages/ideavault__doc.tar.lzma
+2024/06/02 | 2371 | systems/win32/miktex/tm/packages/ideavault__source.tar.lzma
+2024/06/02 | 3198 | systems/win32/miktex/tm/packages/ideavault.tar.lzma
2018/11/02 | 1564 | systems/win32/miktex/tm/packages/identkey.tar.lzma
2015/08/18 | 419875 | systems/win32/miktex/tm/packages/idxcmds.tar.lzma
2012/04/04 | 354168 | systems/win32/miktex/tm/packages/idxlayout.tar.lzma
@@ -327009,8 +327018,8 @@
2024/05/05 | 168514 | systems/win32/miktex/tm/packages/jsonparse__source.tar.lzma
2024/05/05 | 4981 | systems/win32/miktex/tm/packages/jsonparse.tar.lzma
2015/06/03 | 259119 | systems/win32/miktex/tm/packages/jumplines.tar.lzma
-2024/04/27 | 4321427 | systems/win32/miktex/tm/packages/junicode__doc.tar.lzma
-2024/04/27 | 90390145 | systems/win32/miktex/tm/packages/junicode.tar.lzma
+2024/06/02 | 4318927 | systems/win32/miktex/tm/packages/junicode__doc.tar.lzma
+2024/06/02 | 90489003 | systems/win32/miktex/tm/packages/junicode.tar.lzma
2024/01/07 | 2459884 | systems/win32/miktex/tm/packages/junicodevf__doc.tar.lzma
2024/01/07 | 2119730 | systems/win32/miktex/tm/packages/junicodevf.tar.lzma
2020/10/27 | 31646 | systems/win32/miktex/tm/packages/jupynotex.tar.lzma
@@ -327130,9 +327139,9 @@
2024/05/27 | 864882 | systems/win32/miktex/tm/packages/l3backend__doc.tar.lzma
2024/05/27 | 34344 | systems/win32/miktex/tm/packages/l3backend__source.tar.lzma
2024/05/27 | 16486 | systems/win32/miktex/tm/packages/l3backend.tar.lzma
-2024/02/10 | 744747 | systems/win32/miktex/tm/packages/l3build__doc.tar.lzma
-2024/02/10 | 32346 | systems/win32/miktex/tm/packages/l3build__source.tar.lzma
-2024/02/10 | 37094 | systems/win32/miktex/tm/packages/l3build.tar.lzma
+2024/06/02 | 743955 | systems/win32/miktex/tm/packages/l3build__doc.tar.lzma
+2024/06/02 | 32366 | systems/win32/miktex/tm/packages/l3build__source.tar.lzma
+2024/06/02 | 37105 | systems/win32/miktex/tm/packages/l3build.tar.lzma
2013/05/29 | 156214 | systems/win32/miktex/tm/packages/l3ctr2e.tar.lzma
2024/03/17 | 2948170 | systems/win32/miktex/tm/packages/l3experimental__doc.tar.lzma
2024/03/17 | 76093 | systems/win32/miktex/tm/packages/l3experimental__source.tar.lzma
@@ -327227,7 +327236,9 @@
2009/06/30 | 18674 | systems/win32/miktex/tm/packages/latex-fonts.tar.lzma
2024/03/08 | 1665346 | systems/win32/miktex/tm/packages/latex-for-undergraduates__source.tar.lzma
2024/03/08 | 2142926 | systems/win32/miktex/tm/packages/latex-for-undergraduates.tar.lzma
-2020/02/28 | 86786 | systems/win32/miktex/tm/packages/latex-git-log.tar.lzma
+2024/06/02 | 60544 | systems/win32/miktex/tm/packages/latex-git-log__doc.tar.lzma
+2024/06/02 | 1360 | systems/win32/miktex/tm/packages/latex-git-log__source.tar.lzma
+2024/06/02 | 5018 | systems/win32/miktex/tm/packages/latex-git-log.tar.lzma
2020/04/21 | 455359 | systems/win32/miktex/tm/packages/latexgit.tar.lzma
2023/11/04 | 2506662 | systems/win32/miktex/tm/packages/latex-graphics-dev__doc.tar.lzma
2023/06/16 | 57443 | systems/win32/miktex/tm/packages/latex-graphics-dev__source.tar.lzma
@@ -327516,9 +327527,9 @@
2021/06/12 | 788588 | systems/win32/miktex/tm/packages/ltx4yt__doc.tar.lzma
2021/06/12 | 18647 | systems/win32/miktex/tm/packages/ltx4yt__source.tar.lzma
2021/06/12 | 3955 | systems/win32/miktex/tm/packages/ltx4yt.tar.lzma
-2024/01/20 | 36216627 | systems/win32/miktex/tm/packages/ltxbase__doc.tar.lzma
-2024/01/20 | 753054 | systems/win32/miktex/tm/packages/ltxbase__source.tar.lzma
-2024/01/20 | 239233 | systems/win32/miktex/tm/packages/ltxbase.tar.lzma
+2024/06/02 | 36833569 | systems/win32/miktex/tm/packages/ltxbase__doc.tar.lzma
+2024/06/02 | 782992 | systems/win32/miktex/tm/packages/ltxbase__source.tar.lzma
+2024/06/02 | 249199 | systems/win32/miktex/tm/packages/ltxbase.tar.lzma
2023/12/10 | 406527 | systems/win32/miktex/tm/packages/ltxcmds__doc.tar.lzma
2023/12/10 | 13301 | systems/win32/miktex/tm/packages/ltxcmds__source.tar.lzma
2023/12/10 | 4317 | systems/win32/miktex/tm/packages/ltxcmds.tar.lzma
@@ -327591,9 +327602,9 @@
2023/11/20 | 202790 | systems/win32/miktex/tm/packages/luamodulartables__doc.tar.lzma
2023/11/20 | 4554 | systems/win32/miktex/tm/packages/luamodulartables__source.tar.lzma
2023/11/20 | 1599 | systems/win32/miktex/tm/packages/luamodulartables.tar.lzma
-2024/05/27 | 203767 | systems/win32/miktex/tm/packages/luamplib__doc.tar.lzma
-2024/05/27 | 37638 | systems/win32/miktex/tm/packages/luamplib__source.tar.lzma
-2024/05/27 | 19724 | systems/win32/miktex/tm/packages/luamplib.tar.lzma
+2024/06/02 | 203936 | systems/win32/miktex/tm/packages/luamplib__doc.tar.lzma
+2024/06/02 | 37673 | systems/win32/miktex/tm/packages/luamplib__source.tar.lzma
+2024/06/02 | 19863 | systems/win32/miktex/tm/packages/luamplib.tar.lzma
2023/11/23 | 135084 | systems/win32/miktex/tm/packages/luanumint__doc.tar.lzma
2023/07/28 | 3697 | systems/win32/miktex/tm/packages/luanumint__source.tar.lzma
2023/11/23 | 2521 | systems/win32/miktex/tm/packages/luanumint.tar.lzma
@@ -327755,9 +327766,9 @@
2023/09/10 | 471683 | systems/win32/miktex/tm/packages/marginnote__doc.tar.lzma
2023/09/10 | 10839 | systems/win32/miktex/tm/packages/marginnote__source.tar.lzma
2023/09/10 | 3532 | systems/win32/miktex/tm/packages/marginnote.tar.lzma
-2024/05/05 | 1289529 | systems/win32/miktex/tm/packages/markdown__doc.tar.lzma
-2024/05/05 | 130490 | systems/win32/miktex/tm/packages/markdown__source.tar.lzma
-2024/05/05 | 65854 | systems/win32/miktex/tm/packages/markdown.tar.lzma
+2024/06/02 | 1293366 | systems/win32/miktex/tm/packages/markdown__doc.tar.lzma
+2024/06/02 | 131202 | systems/win32/miktex/tm/packages/markdown__source.tar.lzma
+2024/06/02 | 66198 | systems/win32/miktex/tm/packages/markdown.tar.lzma
2012/04/17 | 561606 | systems/win32/miktex/tm/packages/marvosym.tar.lzma
2022/03/12 | 4785503 | systems/win32/miktex/tm/packages/matapli__doc.tar.lzma
2022/03/12 | 11211 | systems/win32/miktex/tm/packages/matapli__source.tar.lzma
@@ -328151,9 +328162,9 @@
2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma
2022/07/26 | 39695 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma
2024/04/27 | 46168 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
-2024/05/27 | 356814 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2024/05/27 | 2091052 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2024/05/27 | 1786331 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2024/06/02 | 357013 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2024/06/02 | 2089394 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2024/06/02 | 1786824 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2022/07/26 | 13519 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma
2024/04/27 | 14535 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma
2016/07/15 | 35914 | systems/win32/miktex/tm/packages/mil3.tar.lzma
@@ -328445,102 +328456,102 @@
2022/11/01 | 230073 | systems/win32/miktex/tm/packages/newverbs__doc.tar.lzma
2022/11/01 | 7969 | systems/win32/miktex/tm/packages/newverbs__source.tar.lzma
2022/11/01 | 3030 | systems/win32/miktex/tm/packages/newverbs.tar.lzma
-2024/05/27 | 821947 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2024/05/27 | 36720 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2024/05/27 | 1172191 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2024/05/27 | 32081 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2024/05/27 | 36772 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2024/05/27 | 67409 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2024/05/27 | 103554 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2024/05/27 | 78343 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2024/05/27 | 31593 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2024/05/27 | 395658 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2024/05/27 | 40383 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2024/05/27 | 59362 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2024/05/27 | 272079 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2024/05/27 | 221456 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2024/05/27 | 106594 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2024/05/27 | 25653 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2024/05/27 | 473113 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2024/05/27 | 54113 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2024/05/27 | 329945 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2024/05/27 | 47373 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2024/05/27 | 137621 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2024/05/27 | 1440898 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2024/05/27 | 104416 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2024/05/27 | 49729 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2024/05/27 | 29138 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2024/05/27 | 77345 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2024/05/27 | 159847 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2024/05/27 | 81561 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2024/05/27 | 82157 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2024/05/27 | 305347 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2024/05/27 | 25606 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2024/05/27 | 105767 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2024/05/27 | 73386 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2024/05/27 | 117786 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2024/05/27 | 44351 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2024/05/27 | 698657 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2024/05/27 | 249344 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
-2024/05/27 | 217595 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2024/05/27 | 109832 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2024/05/27 | 19995 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2024/05/27 | 32898 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2024/05/27 | 707269 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2024/05/27 | 603560 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2024/05/27 | 530402 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2024/05/27 | 104190 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2024/05/27 | 1998478 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2024/05/27 | 82027 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2024/05/27 | 33833 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2024/05/27 | 8880 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2024/05/27 | 231907 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2024/05/27 | 287579 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2024/05/27 | 108647 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2024/05/27 | 142029 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2024/05/27 | 291308 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2024/05/27 | 182759 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2024/05/27 | 55912 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2024/05/27 | 35351 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2024/05/27 | 44069 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2024/05/27 | 48302 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2024/05/27 | 52677 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2024/05/27 | 218565 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2024/05/27 | 43120 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2024/05/27 | 830434 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2024/05/27 | 203332 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2024/05/27 | 245934 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2024/05/27 | 88688 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2024/05/27 | 1342062 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2024/05/27 | 24156 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2024/05/27 | 37600 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2024/05/27 | 75055 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2024/05/27 | 61048 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2024/05/27 | 499652 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
-2024/05/27 | 1531442 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2024/05/27 | 54722 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2024/05/27 | 65139 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2024/05/27 | 27149 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2024/05/27 | 19954 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2024/05/27 | 73416 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2024/05/27 | 174094 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2024/05/27 | 69694 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2024/05/27 | 112482 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2024/05/27 | 2845081 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2024/05/27 | 65004 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2024/05/27 | 44126 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2024/05/27 | 33877 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2024/05/27 | 76158 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2024/05/27 | 352002 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2024/05/27 | 58966 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2024/05/27 | 606817 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2024/05/27 | 45874 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2024/05/27 | 356861 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2024/05/27 | 2090214 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2024/05/27 | 1787199 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2024/05/27 | 14590 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2024/06/02 | 821939 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2024/06/02 | 36727 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2024/06/02 | 1172207 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2024/06/02 | 32085 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2024/06/02 | 36845 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2024/06/02 | 67438 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2024/06/02 | 103731 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2024/06/02 | 78378 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2024/06/02 | 31573 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2024/06/02 | 395278 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2024/06/02 | 40383 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2024/06/02 | 59370 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2024/06/02 | 272040 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2024/06/02 | 221420 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2024/06/02 | 106593 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2024/06/02 | 25611 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2024/06/02 | 473143 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2024/06/02 | 54216 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2024/06/02 | 329643 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2024/06/02 | 47333 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2024/06/02 | 137741 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2024/06/02 | 1437575 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2024/06/02 | 104419 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2024/06/02 | 49739 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2024/06/02 | 29177 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2024/06/02 | 77311 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2024/06/02 | 159953 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2024/06/02 | 81672 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2024/06/02 | 82342 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2024/06/02 | 305565 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2024/06/02 | 25606 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2024/06/02 | 105730 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2024/06/02 | 73397 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2024/06/02 | 117663 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2024/06/02 | 44389 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2024/06/02 | 699228 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2024/06/02 | 249340 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
+2024/06/02 | 209488 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2024/06/02 | 109964 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2024/06/02 | 19994 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2024/06/02 | 32897 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2024/06/02 | 707914 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2024/06/02 | 603495 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2024/06/02 | 530128 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2024/06/02 | 104105 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2024/06/02 | 2003118 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2024/06/02 | 82013 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2024/06/02 | 33847 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2024/06/02 | 8879 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2024/06/02 | 232162 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2024/06/02 | 287494 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2024/06/02 | 108535 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2024/06/02 | 141885 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2024/06/02 | 291219 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2024/06/02 | 182790 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2024/06/02 | 55919 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2024/06/02 | 35356 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2024/06/02 | 44124 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2024/06/02 | 48305 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2024/06/02 | 52697 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2024/06/02 | 218757 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2024/06/02 | 43137 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2024/06/02 | 830231 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2024/06/02 | 203147 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2024/06/02 | 245905 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2024/06/02 | 88633 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2024/06/02 | 1341533 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2024/06/02 | 24139 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2024/06/02 | 37638 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2024/06/02 | 74999 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2024/06/02 | 61064 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2024/06/02 | 499693 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2024/06/02 | 1530896 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2024/06/02 | 54787 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2024/06/02 | 65115 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2024/06/02 | 27237 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2024/06/02 | 19948 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2024/06/02 | 73380 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2024/06/02 | 174119 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2024/06/02 | 69662 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2024/06/02 | 112579 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2024/06/02 | 2844904 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2024/06/02 | 64676 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2024/06/02 | 44090 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2024/06/02 | 33864 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2024/06/02 | 76228 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2024/06/02 | 352028 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2024/06/02 | 58953 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2024/06/02 | 606845 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2024/06/02 | 45900 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2024/06/02 | 357031 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2024/06/02 | 2089548 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2024/06/02 | 1787405 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2024/06/02 | 14588 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
2019/03/12 | 1412 | systems/win32/miktex/tm/packages/nextpage.tar.lzma
-2024/05/27 | 1150 | systems/win32/miktex/tm/packages/next/pr.ini
+2024/06/02 | 1150 | systems/win32/miktex/tm/packages/next/pr.ini
2018/07/06 | 145915 | systems/win32/miktex/tm/packages/nexus-otf.tar.lzma
2017/03/30 | 191149 | systems/win32/miktex/tm/packages/nfssext-cfr.tar.lzma
2023/02/23 | 608421 | systems/win32/miktex/tm/packages/nicefilelist__doc.tar.lzma
@@ -328550,9 +328561,9 @@
2022/06/26 | 7330 | systems/win32/miktex/tm/packages/niceframe__source.tar.lzma
2022/06/26 | 37551 | systems/win32/miktex/tm/packages/niceframe.tar.lzma
2017/06/22 | 276883 | systems/win32/miktex/tm/packages/niceframe-type1.tar.lzma
-2024/02/27 | 2411758 | systems/win32/miktex/tm/packages/nicematrix__doc.tar.lzma
-2024/02/27 | 174117 | systems/win32/miktex/tm/packages/nicematrix__source.tar.lzma
-2024/02/27 | 42058 | systems/win32/miktex/tm/packages/nicematrix.tar.lzma
+2024/06/02 | 2422803 | systems/win32/miktex/tm/packages/nicematrix__doc.tar.lzma
+2024/06/02 | 176598 | systems/win32/miktex/tm/packages/nicematrix__source.tar.lzma
+2024/06/02 | 43007 | systems/win32/miktex/tm/packages/nicematrix.tar.lzma
2015/11/25 | 2555178 | systems/win32/miktex/tm/packages/nicetext.tar.lzma
2018/07/30 | 243633 | systems/win32/miktex/tm/packages/nidanfloat.tar.lzma
2016/01/26 | 74424 | systems/win32/miktex/tm/packages/nihbiosketch.tar.lzma
@@ -328899,9 +328910,9 @@
2022/08/28 | 6310 | systems/win32/miktex/tm/packages/pdfoverlay__source.tar.lzma
2022/08/28 | 3190 | systems/win32/miktex/tm/packages/pdfoverlay.tar.lzma
2015/07/28 | 1817839 | systems/win32/miktex/tm/packages/pdfpagediff.tar.lzma
-2024/01/28 | 324672 | systems/win32/miktex/tm/packages/pdfpages__doc.tar.lzma
-2024/01/28 | 35839 | systems/win32/miktex/tm/packages/pdfpages__source.tar.lzma
-2024/01/28 | 14290 | systems/win32/miktex/tm/packages/pdfpages.tar.lzma
+2024/06/02 | 325123 | systems/win32/miktex/tm/packages/pdfpages__doc.tar.lzma
+2024/06/02 | 35919 | systems/win32/miktex/tm/packages/pdfpages__source.tar.lzma
+2024/06/02 | 14320 | systems/win32/miktex/tm/packages/pdfpages.tar.lzma
2023/10/26 | 205913 | systems/win32/miktex/tm/packages/pdfpc__doc.tar.lzma
2018/07/22 | 82751 | systems/win32/miktex/tm/packages/pdfpc-movie.tar.lzma
2023/10/26 | 3239 | systems/win32/miktex/tm/packages/pdfpc__source.tar.lzma
@@ -329195,7 +329206,7 @@
2023/03/17 | 425296 | systems/win32/miktex/tm/packages/principia__doc.tar.lzma
2023/03/17 | 16206 | systems/win32/miktex/tm/packages/principia__source.tar.lzma
2023/03/17 | 8606 | systems/win32/miktex/tm/packages/principia.tar.lzma
-2024/05/27 | 992 | systems/win32/miktex/tm/packages/pr.ini
+2024/06/02 | 929 | systems/win32/miktex/tm/packages/pr.ini
2010/09/27 | 248469 | systems/win32/miktex/tm/packages/printlen.tar.lzma
2008/06/17 | 77313 | systems/win32/miktex/tm/packages/proba.tar.lzma
2017/07/12 | 988486 | systems/win32/miktex/tm/packages/probsoln.tar.lzma
@@ -329853,9 +329864,9 @@
2021/11/13 | 32113 | systems/win32/miktex/tm/packages/sdaps.tar.lzma
2009/07/13 | 181403 | systems/win32/miktex/tm/packages/sdrt.tar.lzma
2016/05/31 | 1997899 | systems/win32/miktex/tm/packages/sduthesis.tar.lzma
-2024/05/27 | 582011 | systems/win32/miktex/tm/packages/se2thesis__doc.tar.lzma
-2024/05/27 | 29721 | systems/win32/miktex/tm/packages/se2thesis__source.tar.lzma
-2024/05/27 | 9377 | systems/win32/miktex/tm/packages/se2thesis.tar.lzma
+2024/06/02 | 582121 | systems/win32/miktex/tm/packages/se2thesis__doc.tar.lzma
+2024/06/02 | 29765 | systems/win32/miktex/tm/packages/se2thesis__source.tar.lzma
+2024/06/02 | 9399 | systems/win32/miktex/tm/packages/se2thesis.tar.lzma
2010/11/01 | 258578 | systems/win32/miktex/tm/packages/secdot.tar.lzma
2022/02/07 | 447707 | systems/win32/miktex/tm/packages/secnum__doc.tar.lzma
2022/02/07 | 6250 | systems/win32/miktex/tm/packages/secnum__source.tar.lzma
@@ -329967,9 +329978,9 @@
2023/12/02 | 4544 | systems/win32/miktex/tm/packages/simplebnf.tar.lzma
2013/03/01 | 939150 | systems/win32/miktex/tm/packages/simplecd.tar.lzma
2014/11/20 | 300788 | systems/win32/miktex/tm/packages/simplecv.tar.lzma
-2024/04/20 | 2547005 | systems/win32/miktex/tm/packages/simpleicons__doc.tar.lzma
-2024/04/20 | 22366 | systems/win32/miktex/tm/packages/simpleicons__source.tar.lzma
-2024/04/20 | 3507433 | systems/win32/miktex/tm/packages/simpleicons.tar.lzma
+2024/06/02 | 2565351 | systems/win32/miktex/tm/packages/simpleicons__doc.tar.lzma
+2024/06/02 | 22571 | systems/win32/miktex/tm/packages/simpleicons__source.tar.lzma
+2024/06/02 | 3532638 | systems/win32/miktex/tm/packages/simpleicons.tar.lzma
2017/11/03 | 228224 | systems/win32/miktex/tm/packages/simpleinvoice.tar.lzma
2023/10/03 | 137376 | systems/win32/miktex/tm/packages/simplekv__doc.tar.lzma
2023/10/03 | 6386 | systems/win32/miktex/tm/packages/simplekv__source.tar.lzma
@@ -330062,9 +330073,9 @@
2022/03/07 | 90666 | systems/win32/miktex/tm/packages/spark-otf__doc.tar.lzma
2022/03/07 | 192683 | systems/win32/miktex/tm/packages/spark-otf__source.tar.lzma
2022/03/07 | 2304 | systems/win32/miktex/tm/packages/spark-otf.tar.lzma
-2022/11/01 | 1648687 | systems/win32/miktex/tm/packages/spath3__doc.tar.lzma
-2022/11/01 | 56770 | systems/win32/miktex/tm/packages/spath3__source.tar.lzma
-2022/11/01 | 25420 | systems/win32/miktex/tm/packages/spath3.tar.lzma
+2024/06/02 | 1660491 | systems/win32/miktex/tm/packages/spath3__doc.tar.lzma
+2024/06/02 | 58035 | systems/win32/miktex/tm/packages/spath3__source.tar.lzma
+2024/06/02 | 25894 | systems/win32/miktex/tm/packages/spath3.tar.lzma
2024/05/27 | 91106 | systems/win32/miktex/tm/packages/spbmark__doc.tar.lzma
2024/05/27 | 5831 | systems/win32/miktex/tm/packages/spbmark__source.tar.lzma
2024/05/27 | 4321 | systems/win32/miktex/tm/packages/spbmark.tar.lzma
@@ -330635,9 +330646,9 @@
2022/02/09 | 722683 | systems/win32/miktex/tm/packages/tkz-fct__doc.tar.lzma
2022/02/09 | 28126 | systems/win32/miktex/tm/packages/tkz-fct__source.tar.lzma
2022/02/09 | 4927 | systems/win32/miktex/tm/packages/tkz-fct.tar.lzma
-2024/05/18 | 663272 | systems/win32/miktex/tm/packages/tkz-grapheur__doc.tar.lzma
-2024/05/18 | 11682 | systems/win32/miktex/tm/packages/tkz-grapheur__source.tar.lzma
-2024/05/18 | 8760 | systems/win32/miktex/tm/packages/tkz-grapheur.tar.lzma
+2024/06/02 | 849150 | systems/win32/miktex/tm/packages/tkz-grapheur__doc.tar.lzma
+2024/06/02 | 13925 | systems/win32/miktex/tm/packages/tkz-grapheur__source.tar.lzma
+2024/06/02 | 10556 | systems/win32/miktex/tm/packages/tkz-grapheur.tar.lzma
2021/01/22 | 332159 | systems/win32/miktex/tm/packages/tkz-graph.tar.lzma
2018/09/21 | 159649 | systems/win32/miktex/tm/packages/tkz-kiviat.tar.lzma
2018/09/21 | 343489 | systems/win32/miktex/tm/packages/tkz-linknodes.tar.lzma
@@ -330677,7 +330688,9 @@
2023/12/26 | 53599 | systems/win32/miktex/tm/packages/tpic2pdftex__source.tar.lzma
2023/12/26 | 4657 | systems/win32/miktex/tm/packages/tpic2pdftex.tar.lzma
2004/07/28 | 110249 | systems/win32/miktex/tm/packages/tpslifonts.cab
-2017/06/03 | 713049 | systems/win32/miktex/tm/packages/tqft.tar.lzma
+2024/06/02 | 735996 | systems/win32/miktex/tm/packages/tqft__doc.tar.lzma
+2024/06/02 | 21099 | systems/win32/miktex/tm/packages/tqft__source.tar.lzma
+2024/06/02 | 7182 | systems/win32/miktex/tm/packages/tqft.tar.lzma
2022/12/14 | 1690226 | systems/win32/miktex/tm/packages/tracklang__doc.tar.lzma
2022/12/14 | 35181 | systems/win32/miktex/tm/packages/tracklang__source.tar.lzma
2022/12/14 | 19413 | systems/win32/miktex/tm/packages/tracklang.tar.lzma
@@ -331596,7 +331609,7 @@
2014/07/05 | 611 | systems/win32/yandy/README
2014/07/05 | 1004628 | systems/win32/yandy/yandy-src.tar.xz
2014/07/05 | 1012416 | systems/win32/yandy.zip
-2024/06/02 | 186 | timestamp
+2024/06/03 | 186 | timestamp
2002/08/26 | 61898 | usergrps/dante/antrag.pdf
2002/08/26 | 118217 | usergrps/dante/antrag.ps
2021/11/11 | 917 | usergrps/dante/dtk/doc/beispiel.bib
diff --git a/FILES.byname.gz b/FILES.byname.gz
index d611db3a38..cc06f84576 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index 0c68c5ddee..6d82b13f00 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,77 +1,340 @@
+2024/06/02 | 949483 | macros/latex/contrib/acmart/acmart.pdf
+2024/06/02 | 9399 | systems/win32/miktex/tm/packages/se2thesis.tar.lzma
+2024/06/02 | 929 | systems/win32/miktex/tm/packages/pr.ini
+2024/06/02 | 90489003 | systems/win32/miktex/tm/packages/junicode.tar.lzma
+2024/06/02 | 8962 | macros/latex/required/babel/base/babel.ins
+2024/06/02 | 8879 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2024/06/02 | 88633 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2024/06/02 | 855636 | systems/texlive/tlnet/archive/install-latex-guide-zh-cn.doc.r71400.tar.xz
+2024/06/02 | 849150 | systems/win32/miktex/tm/packages/tkz-grapheur__doc.tar.lzma
+2024/06/02 | 830231 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2024/06/02 | 82860 | systems/texlive/tlnet/archive/latex-git-log.doc.r71402.tar.xz
+2024/06/02 | 82342 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2024/06/02 | 8221933 | macros/latex/required/tools.zip
+2024/06/02 | 821939 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2024/06/02 | 821156 | systems/win32/miktex/tm/packages/files.csv.lzma
+2024/06/02 | 82013 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2024/06/02 | 81672 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2024/06/02 | 806205 | macros/latex/required/babel/base/babel.dtx
+2024/06/02 | 78378 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2024/06/02 | 782992 | systems/win32/miktex/tm/packages/ltxbase__source.tar.lzma
+2024/06/02 | 77311 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2024/06/02 | 76228 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2024/06/02 | 75723 | systems/win32/miktex/tm/packages/elpres.tar.lzma
+2024/06/02 | 753276 | systems/win32/miktex/tm/packages/bithesis__doc.tar.lzma
+2024/06/02 | 75317 | graphics/pgf/contrib/pmdraw/pmdraw.sty
+2024/06/02 | 74999 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2024/06/02 | 743955 | systems/win32/miktex/tm/packages/l3build__doc.tar.lzma
+2024/06/02 | 742568 | systems/texlive/tlnet/archive/tqft.doc.r71401.tar.xz
+2024/06/02 | 73885 | graphics/pstricks/contrib/pst-optic/tex/pst-optic.tex
+2024/06/02 | 735996 | systems/win32/miktex/tm/packages/tqft__doc.tar.lzma
+2024/06/02 | 73397 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2024/06/02 | 73380 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2024/06/02 | 7279 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2024/06/02 | 7182 | systems/win32/miktex/tm/packages/tqft.tar.lzma
+2024/06/02 | 707914 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2024/06/02 | 699228 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2024/06/02 | 6980 | systems/texlive/tlnet/archive/tqft.r71401.tar.xz
+2024/06/02 | 69662 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2024/06/02 | 67438 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2024/06/02 | 66198 | systems/win32/miktex/tm/packages/markdown.tar.lzma
+2024/06/02 | 65115 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2024/06/02 | 650192 | macros/latex/required/babel/base/babel-code.pdf
+2024/06/02 | 64676 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2024/06/02 | 636571 | macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdf
+2024/06/02 | 626360 | macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
+2024/06/02 | 625334 | macros/latex/contrib/acmart/samples/sample-manuscript.pdf
+2024/06/02 | 624415 | macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdf
+2024/06/02 | 623848 | macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
+2024/06/02 | 613 | graphics/pstricks/contrib/pst-optic/README
+2024/06/02 | 613884 | macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
+2024/06/02 | 61064 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2024/06/02 | 606845 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2024/06/02 | 60544 | systems/win32/miktex/tm/packages/latex-git-log__doc.tar.lzma
+2024/06/02 | 603495 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2024/06/02 | 59370 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2024/06/02 | 58953 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2024/06/02 | 582121 | systems/win32/miktex/tm/packages/se2thesis__doc.tar.lzma
+2024/06/02 | 58035 | systems/win32/miktex/tm/packages/spath3__source.tar.lzma
+2024/06/02 | 5752378 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2024/06/02 | 571812 | macros/latex/contrib/acmart/samples/sample-acmtog-conf.pdf
+2024/06/02 | 571575 | macros/latex/contrib/acmart/samples/sample-acmtog.pdf
+2024/06/02 | 568 | systems/texlive/tlnet/archive/install-latex-guide-zh-cn.r71400.tar.xz
+2024/06/02 | 55919 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2024/06/02 | 54787 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2024/06/02 | 54216 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2024/06/02 | 530128 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2024/06/02 | 52697 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2024/06/02 | 518230 | graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.pdf
+2024/06/02 | 5018 | systems/win32/miktex/tm/packages/latex-git-log.tar.lzma
+2024/06/02 | 499693 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2024/06/02 | 49739 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2024/06/02 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2024/06/02 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2024/06/02 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2024/06/02 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2024/06/02 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2024/06/02 | 4836 | systems/texlive/tlnet/archive/latex-git-log.r71402.tar.xz
+2024/06/02 | 48305 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2024/06/02 | 47333 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2024/06/02 | 473143 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2024/06/02 | 45974 | graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.tex
+2024/06/02 | 45900 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2024/06/02 | 44389 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2024/06/02 | 44124 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2024/06/02 | 44090 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2024/06/02 | 439879 | macros/latex/contrib/acmart/acmguide.pdf
+2024/06/02 | 435700 | systems/texlive/tlnet/archive/texlive-scripts.doc.r71403.tar.xz
+2024/06/02 | 4318927 | systems/win32/miktex/tm/packages/junicode__doc.tar.lzma
+2024/06/02 | 43137 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2024/06/02 | 43007 | systems/win32/miktex/tm/packages/nicematrix.tar.lzma
+2024/06/02 | 423502 | macros/latex/required/babel/base/babel.pdf
+2024/06/02 | 419059 | graphics/pgf/contrib/pmdraw.zip
+2024/06/02 | 4121960 | biblio/ctan-bibdata.zip
+2024/06/02 | 40383 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2024/06/02 | 399476 | macros/latex/contrib/acmart/samples/sample-acmengage.pdf
+2024/06/02 | 397582 | graphics/pgf/contrib/pmdraw/pmdraw.pdf
+2024/06/02 | 395278 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2024/06/02 | 37673 | systems/win32/miktex/tm/packages/luamplib__source.tar.lzma
+2024/06/02 | 37638 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2024/06/02 | 3730524 | install/macros/latex/required/babel-base.tds.zip
+2024/06/02 | 37105 | systems/win32/miktex/tm/packages/l3build.tar.lzma
+2024/06/02 | 3708800 | biblio/ctan-bibdata/ctan.pdf
+2024/06/02 | 36845 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2024/06/02 | 36833569 | systems/win32/miktex/tm/packages/ltxbase__doc.tar.lzma
+2024/06/02 | 36727 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2024/06/02 | 366536 | systems/win32/miktex/tm/packages/elpres__doc.tar.lzma
+2024/06/02 | 35919 | systems/win32/miktex/tm/packages/pdfpages__source.tar.lzma
+2024/06/02 | 357031 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2024/06/02 | 357013 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2024/06/02 | 35356 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2024/06/02 | 3532638 | systems/win32/miktex/tm/packages/simpleicons.tar.lzma
+2024/06/02 | 3527 | macros/latex/required/babel/base/bbidxglo.dtx
+2024/06/02 | 35234 | systems/win32/miktex/tm/packages/ideavault__doc.tar.lzma
+2024/06/02 | 352028 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2024/06/02 | 345060 | graphics/pstricks/contrib/pst-optic.zip
+2024/06/02 | 34426654 | systems/texlive/tlnet/install-tl.zip
+2024/06/02 | 33864 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2024/06/02 | 33847 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2024/06/02 | 329643 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2024/06/02 | 32897 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2024/06/02 | 325123 | systems/win32/miktex/tm/packages/pdfpages__doc.tar.lzma
+2024/06/02 | 32366 | systems/win32/miktex/tm/packages/l3build__source.tar.lzma
+2024/06/02 | 32085 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2024/06/02 | 3198 | systems/win32/miktex/tm/packages/ideavault.tar.lzma
+2024/06/02 | 31573 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2024/06/02 | 30767 | systems/win32/miktex/tm/packages/bithesis__source.tar.lzma
+2024/06/02 | 3060228 | macros/latex/required/graphics.zip
+2024/06/02 | 305565 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2024/06/02 | 29765 | systems/win32/miktex/tm/packages/se2thesis__source.tar.lzma
+2024/06/02 | 29177 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2024/06/02 | 291219 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2024/06/02 | 287494 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2024/06/02 | 2870432 | biblio/ctan-bibdata/ctan.bib
+2024/06/02 | 2844904 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2024/06/02 | 27717510 | systems/texlive/tlnet/install-tl-windows.exe
+2024/06/02 | 2763663 | macros/latex/required/amsmath.zip
+2024/06/02 | 275420 | macros/latex/required/firstaid.zip
+2024/06/02 | 27237 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2024/06/02 | 272040 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2024/06/02 | 25894 | systems/win32/miktex/tm/packages/spath3.tar.lzma
+2024/06/02 | 2577352 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2024/06/02 | 2565351 | systems/win32/miktex/tm/packages/simpleicons__doc.tar.lzma
+2024/06/02 | 25611 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2024/06/02 | 25606 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2024/06/02 | 249340 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
+2024/06/02 | 249199 | systems/win32/miktex/tm/packages/ltxbase.tar.lzma
+2024/06/02 | 245905 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2024/06/02 | 24516 | systems/win32/miktex/tm/packages/bithesis.tar.lzma
+2024/06/02 | 2422803 | systems/win32/miktex/tm/packages/nicematrix__doc.tar.lzma
+2024/06/02 | 24139 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2024/06/02 | 2372551 | macros/latex/required/babel/base.zip
+2024/06/02 | 2371 | systems/win32/miktex/tm/packages/ideavault__source.tar.lzma
+2024/06/02 | 232162 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2024/06/02 | 22571 | systems/win32/miktex/tm/packages/simpleicons__source.tar.lzma
+2024/06/02 | 221420 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2024/06/02 | 21890 | macros/latex/required/babel/base/bbcompat.dtx
+2024/06/02 | 218757 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2024/06/02 | 214844 | macros/latex/contrib/acmart/samples/sample-acmcp.pdf
+2024/06/02 | 21099 | systems/win32/miktex/tm/packages/tqft__source.tar.lzma
+2024/06/02 | 209488 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2024/06/02 | 2089548 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2024/06/02 | 2089394 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2024/06/02 | 203936 | systems/win32/miktex/tm/packages/luamplib__doc.tar.lzma
+2024/06/02 | 203147 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2024/06/02 | 2003118 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2024/06/02 | 19994 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2024/06/02 | 19948 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2024/06/02 | 19863 | systems/win32/miktex/tm/packages/luamplib.tar.lzma
+2024/06/02 | 19492788 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2024/06/02 | 1857 | graphics/pgf/contrib/pmdraw/README.md
+2024/06/02 | 1855 | macros/latex/required/babel/base/README.md
+2024/06/02 | 182790 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2024/06/02 | 1787405 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2024/06/02 | 1786824 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2024/06/02 | 17813 | systems/win32/miktex/tm/packages/elpres__source.tar.lzma
+2024/06/02 | 176598 | systems/win32/miktex/tm/packages/nicematrix__source.tar.lzma
+2024/06/02 | 174119 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2024/06/02 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2024/06/02 | 1660803 | systems/win32/miktex/tm/packages/customenvs__doc.tar.lzma
+2024/06/02 | 1660491 | systems/win32/miktex/tm/packages/spath3__doc.tar.lzma
+2024/06/02 | 159953 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2024/06/02 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2024/06/02 | 1530896 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2024/06/02 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2024/06/02 | 15008 | systems/win32/miktex/tm/packages/customenvs__source.tar.lzma
+2024/06/02 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2024/06/02 | 14588 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2024/06/02 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2024/06/02 | 1437575 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2024/06/02 | 14320 | systems/win32/miktex/tm/packages/pdfpages.tar.lzma
+2024/06/02 | 1420 | graphics/pstricks/contrib/pst-optic/Changes
+2024/06/02 | 141885 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2024/06/02 | 13925 | systems/win32/miktex/tm/packages/tkz-grapheur__source.tar.lzma
+2024/06/02 | 137741 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2024/06/02 | 1360 | systems/win32/miktex/tm/packages/latex-git-log__source.tar.lzma
+2024/06/02 | 1341533 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2024/06/02 | 131202 | systems/win32/miktex/tm/packages/markdown__source.tar.lzma
+2024/06/02 | 12988 | systems/texlive/tlnet/archive/tqft.source.r71401.tar.xz
+2024/06/02 | 1293366 | systems/win32/miktex/tm/packages/markdown__doc.tar.lzma
+2024/06/02 | 12399834 | macros/latex/required/latex-lab.zip
+2024/06/02 | 12388297 | macros/latex/contrib/acmart.zip
+2024/06/02 | 12318 | systems/win32/miktex/tm/packages/customenvs.tar.lzma
+2024/06/02 | 1202142 | macros/latex/required/cyrillic.zip
+2024/06/02 | 117663 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2024/06/02 | 1172207 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2024/06/02 | 1150 | systems/win32/miktex/tm/packages/next/pr.ini
+2024/06/02 | 114384 | systems/texlive/tlnet/archive/texlive-scripts.r71403.tar.xz
+2024/06/02 | 112579 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2024/06/02 | 109964 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2024/06/02 | 1088254 | macros/latex/required/babel/base/locale.zip
+2024/06/02 | 108535 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2024/06/02 | 106593 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2024/06/02 | 1062362 | macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdf
+2024/06/02 | 1059143 | macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
+2024/06/02 | 105730 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2024/06/02 | 10556 | systems/win32/miktex/tm/packages/tkz-grapheur.tar.lzma
+2024/06/02 | 1053423 | macros/latex/contrib/acmart/samples/sample-sigplan.pdf
+2024/06/02 | 1051244 | macros/latex/contrib/acmart/samples/sample-sigconf-authordraft.pdf
+2024/06/02 | 1047421 | macros/latex/contrib/acmart/samples/sample-sigconf.pdf
+2024/06/02 | 104419 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2024/06/02 | 104105 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2024/06/02 | 103731 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2024/06/02 | 101607 | graphics/pgf/contrib/pmdraw/pmdraw.tex
2024/06/01 | 99 | macros/latex/base/ltpara-code.tex
+2024/06/01 | 99753 | macros/latex/required/cyrillic/ot2cmams.pdf
2024/06/01 | 9935 | macros/latex/base/ltnews21.tex
2024/06/01 | 96 | macros/latex/base/doc-code.tex
+2024/06/01 | 9559 | macros/latex/required/tools/shellesc.dtx
2024/06/01 | 9557 | macros/latex/base/ltcntrl.dtx
+2024/06/01 | 951 | macros/latex/required/cyrillic/manifest.txt
2024/06/01 | 9398 | macros/latex/base/syntonly.dtx
2024/06/01 | 9345 | macros/latex/base/preload.dtx
2024/06/01 | 93175 | macros/latex/base/ltdefns.dtx
2024/06/01 | 92294 | macros/latex/base/utf8ienc.dtx
2024/06/01 | 9068 | macros/latex/base/lppl-1-0.txt
2024/06/01 | 90618 | macros/latex/base/lttemplates.dtx
+2024/06/01 | 89915 | macros/latex/required/latex-lab/latex-lab-footnotes.dtx
+2024/06/01 | 8976 | macros/latex/required/tools/rawfonts.dtx
2024/06/01 | 89727 | macros/latex/base/slides.dtx
2024/06/01 | 8970 | macros/latex/base/ltnews17.tex
+2024/06/01 | 8924 | macros/latex/required/amsmath/changes.txt
+2024/06/01 | 8891 | macros/latex/required/latex-lab/latex-lab-marginpar.dtx
+2024/06/01 | 8780 | macros/latex/required/tools/showkeys-2014-10-28.sty
+2024/06/01 | 871980 | macros/latex/required/latex-lab/latex-lab-block.pdf
+2024/06/01 | 871980 | macros/latex/required/latex-lab/blocks-code.pdf
2024/06/01 | 870037 | info/install-latex-guide-zh-cn.zip
+2024/06/01 | 8663 | macros/latex/required/amsmath/amsbsy.dtx
2024/06/01 | 8626 | macros/latex/base/oldlfont.dtx
+2024/06/01 | 85756 | macros/latex/required/tools/longtable.dtx
+2024/06/01 | 85247 | macros/latex/required/amsmath/amsmath-2018-12-01.sty
2024/06/01 | 84220 | macros/latex/base/ltfssini.dtx
+2024/06/01 | 839197 | macros/latex/required/tools/array.pdf
2024/06/01 | 834 | macros/latex/contrib/tqft/README.txt
2024/06/01 | 83363 | macros/latex/contrib/tqft/tqft_code.dtx
+2024/06/01 | 8316005 | install/macros/latex/required/latex-tools.tds.zip
2024/06/01 | 829826 | info/install-latex-guide-zh-cn/install-latex-guide-zh-cn.pdf
2024/06/01 | 82917 | macros/latex/base/ltfssbas.dtx
2024/06/01 | 821491 | macros/latex/base/ltshipout-code.pdf
+2024/06/01 | 819567 | macros/latex/required/latex-lab/latex-lab-footnotes.pdf
+2024/06/01 | 81184 | macros/latex/required/amsmath/testmath.tex
2024/06/01 | 80747 | macros/latex/base/ltshipout.dtx
2024/06/01 | 806632 | macros/latex/base/ltfilehook-code.pdf
2024/06/01 | 80521 | macros/latex/base/ltmarks.dtx
2024/06/01 | 8051 | macros/latex/base/ltnews.tex
2024/06/01 | 7901 | info/install-latex-guide-zh-cn/appendix/updateinfo.tex
2024/06/01 | 786401 | macros/latex/contrib/tqft.zip
+2024/06/01 | 7831 | macros/latex/required/cyrillic/ot2.dtx
2024/06/01 | 758204 | macros/latex/base/lthooks-doc.pdf
2024/06/01 | 757812 | macros/latex/base/doc.pdf
2024/06/01 | 75392 | macros/latex/base/ltluatex.dtx
2024/06/01 | 753489 | macros/latex/base/ltcmdhooks-code.pdf
2024/06/01 | 7528 | macros/latex/base/ltxguide.cls
2024/06/01 | 75111 | macros/latex/base/ltfssdcl.dtx
+2024/06/01 | 7422 | macros/latex/required/latex-lab/latex-lab-amsmath.dtx
+2024/06/01 | 740772 | macros/latex/required/latex-lab/latex-lab-math.pdf
+2024/06/01 | 73673 | macros/latex/required/tools/tools-overview.pdf
+2024/06/01 | 7315 | macros/latex/required/latex-lab/latex-lab-minipage.dtx
+2024/06/01 | 72911 | macros/latex/required/tools/verbatim.dtx
+2024/06/01 | 72667 | macros/latex/required/latex-lab/latex-lab-math.dtx
2024/06/01 | 72493 | macros/latex/base/ltfsstrc.dtx
2024/06/01 | 7244 | macros/latex/base/ltnews20.tex
-2024/06/01 | 7242 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2024/06/01 | 7216 | macros/latex/base/exscale.dtx
2024/06/01 | 7200 | macros/latex/base/sample2e.tex
2024/06/01 | 717841 | macros/latex/base/ltmarks-code.pdf
2024/06/01 | 7104 | macros/latex/base/alltt.dtx
+2024/06/01 | 70993 | macros/latex/required/graphics/graphics.dtx
2024/06/01 | 7029 | macros/latex/base/ltnews13.tex
+2024/06/01 | 69732 | macros/latex/required/amsmath/amstex.sty
2024/06/01 | 69441 | macros/latex/base/clsguide-historic.tex
2024/06/01 | 6911 | macros/latex/base/source2edoc.cls
2024/06/01 | 69002 | macros/latex/base/ltpictur.dtx
2024/06/01 | 68746 | macros/latex/base/usrguide-historic.tex
2024/06/01 | 68352 | macros/latex/base/ltcmdhooks.dtx
+2024/06/01 | 6789 | macros/latex/required/tools/delarray.dtx
2024/06/01 | 67898 | macros/latex/base/ltfilehook.dtx
2024/06/01 | 6760 | macros/latex/base/slides.ins
2024/06/01 | 672571 | macros/latex/base/ltpara-code.pdf
2024/06/01 | 6709 | macros/latex/base/latexsym.dtx
+2024/06/01 | 6601 | macros/latex/required/latex-lab/latex-lab.ins
+2024/06/01 | 65914 | macros/latex/required/tools/changes.txt
2024/06/01 | 65689 | macros/latex/base/ltmiscen.dtx
2024/06/01 | 64639 | macros/latex/base/clsguide.tex
+2024/06/01 | 6440 | macros/latex/required/amsmath/subeqn.tex
2024/06/01 | 6424 | macros/latex/base/ltnews14.tex
2024/06/01 | 6357 | macros/latex/base/newlfont.dtx
2024/06/01 | 63280 | macros/latex/base/letter.dtx
+2024/06/01 | 632196 | macros/latex/required/latex-lab/latex-lab-new-or-2.pdf
2024/06/01 | 62897 | macros/latex/base/ltfiles.dtx
+2024/06/01 | 6269 | macros/latex/required/latex-lab/latex-lab-mathtools.dtx
2024/06/01 | 6264724 | macros/latex/base/source2e.pdf
+2024/06/01 | 6221 | macros/latex/required/latex-lab/glyphtounicode-cmex.tex
2024/06/01 | 6202 | macros/latex/base/latexrelease.ins
+2024/06/01 | 6181 | macros/latex/required/firstaid/changes.txt
+2024/06/01 | 61642 | macros/latex/required/tools/bm.dtx
2024/06/01 | 6155 | macros/latex/base/ltpar.dtx
2024/06/01 | 60434 | macros/latex/base/ltplain.dtx
2024/06/01 | 60422 | macros/latex/base/fontdef.dtx
2024/06/01 | 598832 | macros/latex/base/ltsockets-code.pdf
2024/06/01 | 5986 | macros/latex/base/ltnews15.tex
2024/06/01 | 5941 | macros/latex/base/ltmeta.dtx
+2024/06/01 | 5860 | macros/latex/required/amsmath/ams-internal.txt
2024/06/01 | 5859 | macros/latex/base/ltidxglo.dtx
2024/06/01 | 58548 | macros/latex/base/ltfssaxes.dtx
2024/06/01 | 58474 | macros/latex/base/usrguide.tex
+2024/06/01 | 5831 | macros/latex/required/cyrillic/changes.txt
2024/06/01 | 5825 | macros/latex/base/ltnews10.tex
+2024/06/01 | 5791 | macros/latex/required/tools/somedefs.dtx
2024/06/01 | 5775 | macros/latex/base/ltnews16.tex
+2024/06/01 | 5771 | macros/latex/required/tools/tools.ins
+2024/06/01 | 57710 | macros/latex/required/cyrillic/cyinpenc.dtx
2024/06/01 | 575822 | macros/latex/base/ltmarks-doc.pdf
-2024/06/01 | 5751425 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2024/06/01 | 5733 | macros/latex/required/latex-lab/latex-lab-toc-hyperref-changes.dtx
2024/06/01 | 5732 | macros/latex/base/ltnews08.tex
2024/06/01 | 5714 | macros/latex/base/inputenc.ins
2024/06/01 | 5699 | macros/latex/base/ltnews05.tex
2024/06/01 | 5691 | macros/latex/base/ltnews27.tex
+2024/06/01 | 5684 | macros/latex/required/latex-lab/latex-lab-new-or-1.dtx
2024/06/01 | 5678 | macros/latex/base/ltnews04.tex
2024/06/01 | 567649 | macros/latex/base/ltshipout-doc.pdf
2024/06/01 | 563305 | macros/latex/base/ltnews35.pdf
@@ -82,6 +345,7 @@
2024/06/01 | 5574 | macros/latex/base/ltnews12.tex
2024/06/01 | 557307 | macros/latex/base/ltproperties-code.pdf
2024/06/01 | 55687 | macros/latex/base/ltfloat.dtx
+2024/06/01 | 556567 | macros/latex/required/latex-lab/latex-lab-table.pdf
2024/06/01 | 5544 | macros/latex/base/ltnews06.tex
2024/06/01 | 5529 | macros/latex/base/ltnews11.tex
2024/06/01 | 551976 | macros/latex/base/ltfilehook-doc.pdf
@@ -92,132 +356,212 @@
2024/06/01 | 5451 | info/install-latex-guide-zh-cn/appendix/mirror.tex
2024/06/01 | 54507 | macros/latex/base/ltpara.dtx
2024/06/01 | 540170 | macros/latex/base/ltnews39.pdf
+2024/06/01 | 539294 | macros/latex/required/latex-lab/documentmetadata-support-code.pdf
2024/06/01 | 5369 | macros/latex/base/ltnews03.tex
2024/06/01 | 53334 | macros/latex/base/lb2.err
+2024/06/01 | 53167 | macros/latex/required/tools/calc.dtx
+2024/06/01 | 5313 | macros/latex/required/amsmath/ams-external.txt
2024/06/01 | 52813 | macros/latex/base/encguide.tex
2024/06/01 | 5273 | macros/latex/base/cmextra.ins
+2024/06/01 | 527096 | macros/latex/required/latex-lab/latex-lab-sec.pdf
2024/06/01 | 526681 | macros/latex/base/ltnews31.pdf
2024/06/01 | 5246 | macros/latex/base/ltnews01.tex
+2024/06/01 | 524609 | macros/latex/required/tools/multicol.pdf
2024/06/01 | 523675 | macros/latex/base/ltnews38.pdf
2024/06/01 | 522757 | macros/latex/base/ltnews33.pdf
2024/06/01 | 522678 | macros/latex/base/fntguide.pdf
+2024/06/01 | 5211 | macros/latex/required/tools/tools-overview.tex
2024/06/01 | 517934 | macros/latex/base/ltnews36.pdf
+2024/06/01 | 517900 | macros/latex/required/latex-lab/latex-lab-graphic.pdf
2024/06/01 | 512240 | macros/latex/base/ltnews30.pdf
2024/06/01 | 51163 | macros/latex/base/ltfinal.dtx
2024/06/01 | 508345 | macros/latex/base/ltnews34.pdf
+2024/06/01 | 508230 | macros/latex/required/amsmath/amsldoc.pdf
+2024/06/01 | 50819 | macros/latex/required/graphics/drivers.dtx
2024/06/01 | 506366 | macros/latex/base/docstrip.pdf
2024/06/01 | 5041 | macros/latex/base/latexsym.ins
2024/06/01 | 50097 | macros/latex/base/ltboxes.dtx
2024/06/01 | 498508 | macros/latex/base/ltcmdhooks-doc.pdf
+2024/06/01 | 4959 | macros/latex/required/tools/fileerr.dtx
2024/06/01 | 4945 | macros/latex/base/lthyphen.dtx
2024/06/01 | 490149 | macros/latex/base/clsguide.pdf
-2024/06/01 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
-2024/06/01 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2024/06/01 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2024/06/01 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2024/06/01 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2024/06/01 | 487553 | macros/latex/base/usrguide.pdf
+2024/06/01 | 486159 | macros/latex/required/latex-lab/blocks-doc.pdf
+2024/06/01 | 482622 | macros/latex/required/tools/l3sys-query.pdf
+2024/06/01 | 4822 | macros/latex/required/latex-lab/latex-lab-testphase.dtx
2024/06/01 | 48185 | macros/latex/base/tlc3.err
2024/06/01 | 481683 | macros/latex/base/ltsockets-doc.pdf
2024/06/01 | 47896 | macros/latex/base/lttab.dtx
2024/06/01 | 476908 | macros/latex/contrib/tqft/tqft.pdf
2024/06/01 | 4757 | macros/latex/base/ltlength.dtx
+2024/06/01 | 474 | macros/latex/required/firstaid/README.md
2024/06/01 | 47308 | macros/latex/base/ltspace.dtx
+2024/06/01 | 460494 | macros/latex/required/graphics/mathcolor.pdf
2024/06/01 | 456933 | macros/latex/base/ltnews37.pdf
2024/06/01 | 455437 | macros/latex/base/ltnews29.pdf
+2024/06/01 | 454643 | macros/latex/required/amsmath/testmath.pdf
2024/06/01 | 45347 | macros/latex/base/latexrelease.dtx
2024/06/01 | 44531 | macros/latex/base/cmfonts.fdd
2024/06/01 | 44461371 | install/macros/latex/latex-base.tds.zip
2024/06/01 | 439393 | macros/latex/base/usrguide-historic.pdf
2024/06/01 | 4390 | macros/latex/base/ec.ins
2024/06/01 | 43860977 | macros/latex/base.zip
-2024/06/01 | 435700 | systems/texlive/tlnet/archive/texlive-scripts.doc.r71398.tar.xz
+2024/06/01 | 43446 | macros/latex/required/tools/theorem.dtx
+2024/06/01 | 4336 | macros/latex/required/amsmath/amsxtra.dtx
2024/06/01 | 4324 | macros/latex/base/cmfonts.ins
2024/06/01 | 431822 | macros/latex/base/ltproperties-doc.pdf
2024/06/01 | 4298 | macros/latex/base/ltalloc.dtx
+2024/06/01 | 4296 | macros/latex/required/cyrillic/ot2cmams.fdd
2024/06/01 | 4273 | macros/latex/base/docstrip.ins
2024/06/01 | 42708 | macros/latex/base/changes.old.txt
+2024/06/01 | 426854 | macros/latex/required/latex-lab/latex-lab-float.pdf
2024/06/01 | 4254 | macros/latex/base/newdc.ins
2024/06/01 | 42287 | macros/latex/base/ltmath.dtx
2024/06/01 | 4219 | macros/latex/base/latex209.ins
+2024/06/01 | 420808 | macros/latex/required/latex-lab/documentmetadata-support-doc.pdf
+2024/06/01 | 420765 | macros/latex/required/amsmath/amsmath.pdf
2024/06/01 | 4190 | macros/latex/base/ltnews19.tex
2024/06/01 | 415956 | macros/latex/base/clsguide-historic.pdf
-2024/06/01 | 4121957 | biblio/ctan-bibdata.zip
+2024/06/01 | 4137 | macros/latex/required/graphics/epsfig.dtx
2024/06/01 | 412098 | macros/latex/base/changes.txt
2024/06/01 | 4087 | macros/latex/base/classes.ins
2024/06/01 | 4079 | macros/latex/base/lablst.tex
+2024/06/01 | 399651 | macros/latex/required/tools/longtable.pdf
+2024/06/01 | 39912 | macros/latex/required/latex-lab/latex-lab-table.dtx
2024/06/01 | 39839 | macros/latex/base/ltnews18.pdf
+2024/06/01 | 39697 | macros/latex/required/tools/ftnright.dtx
+2024/06/01 | 396814 | macros/latex/required/latex-lab/latex-lab-toc.pdf
2024/06/01 | 3960 | macros/latex/base/olddc.ins
+2024/06/01 | 3946 | macros/latex/required/graphics/lscape.dtx
+2024/06/01 | 393884 | macros/latex/required/tools/varioref.pdf
+2024/06/01 | 389721 | macros/latex/required/latex-lab/latex-lab-new-or-1.pdf
+2024/06/01 | 389702 | macros/latex/required/latex-lab/latex-lab-marginpar.pdf
2024/06/01 | 38730 | macros/latex/base/latex209.dtx
+2024/06/01 | 387159 | macros/latex/required/tools/ftnright.pdf
+2024/06/01 | 383259 | macros/latex/required/latex-lab/latex-lab-bib.pdf
2024/06/01 | 38225 | macros/latex/base/ltnews35.tex
+2024/06/01 | 381899 | macros/latex/required/latex-lab/latex-lab-mathtools.pdf
+2024/06/01 | 381899 | macros/latex/required/latex-lab/latex-lab-amsmath.pdf
+2024/06/01 | 38040 | macros/latex/required/graphics/grfguide.tex
2024/06/01 | 379733 | macros/latex/base/ltnews26.pdf
2024/06/01 | 3781 | macros/latex/base/tulm.ins
2024/06/01 | 37744 | systems/texlive/tlnet/archive/spath3.source.r71396.tar.xz
2024/06/01 | 37710 | macros/latex/base/ltsockets.dtx
2024/06/01 | 376950 | macros/latex/base/ltnews28.pdf
2024/06/01 | 375493 | macros/latex/base/slides.pdf
+2024/06/01 | 37462 | macros/latex/required/tools/tabularx.dtx
2024/06/01 | 3725 | macros/latex/base/ltlogos.dtx
-2024/06/01 | 3708800 | biblio/ctan-bibdata/ctan.pdf
+2024/06/01 | 370660 | macros/latex/required/tools/calc.pdf
+2024/06/01 | 369 | macros/latex/required/amsmath/manifest.txt
2024/06/01 | 368933 | macros/latex/base/tlc3.pdf
+2024/06/01 | 368000 | macros/latex/required/latex-lab/latex-lab-firstaid.pdf
+2024/06/01 | 3674 | macros/latex/required/latex-lab/latex-lab-text.dtx
2024/06/01 | 36288 | systems/texlive/tlnet/archive/ideavault.doc.r71397.tar.xz
2024/06/01 | 36156 | macros/latex/base/ltnews39.tex
2024/06/01 | 36154 | macros/latex/base/ltlists.dtx
+2024/06/01 | 361081 | macros/latex/required/latex-lab/latex-lab-toc-kernel-changes.pdf
+2024/06/01 | 36030 | macros/latex/required/graphics/changes.txt
+2024/06/01 | 355622 | macros/latex/required/latex-lab/latex-lab-mathpkg.pdf
2024/06/01 | 35431 | macros/latex/base/ltdirchk.dtx
2024/06/01 | 353557 | macros/latex/base/utf8ienc.pdf
+2024/06/01 | 351675 | macros/latex/required/tools/theorem.pdf
2024/06/01 | 3500344 | systems/texlive/tlnet/archive/simpleicons.r71395.tar.xz
-2024/06/01 | 34426643 | systems/texlive/tlnet/install-tl.zip
+2024/06/01 | 348117 | macros/latex/required/latex-lab/latex-lab-title.pdf
+2024/06/01 | 34475 | macros/latex/required/latex-lab/latex-lab-graphic.dtx
2024/06/01 | 3434 | macros/latex/base/makeindx.ins
2024/06/01 | 34139 | macros/latex/base/ltproperties.dtx
2024/06/01 | 3401 | macros/latex/base/proc.ins
+2024/06/01 | 34011 | macros/latex/required/tools/varioref-2016-02-16.sty
2024/06/01 | 33928 | macros/latex/base/ltsect.dtx
2024/06/01 | 33911 | macros/latex/base/ltnews33.tex
2024/06/01 | 337678 | macros/latex/base/letter.pdf
2024/06/01 | 3372 | macros/latex/base/letter.ins
2024/06/01 | 3367 | macros/latex/base/ltoutenc.ins
+2024/06/01 | 3348 | macros/latex/required/latex-lab/latex-lab-namespace.dtx
2024/06/01 | 3338 | macros/latex/base/exscale.ins
2024/06/01 | 33243 | macros/latex/base/ltnews32.tex
+2024/06/01 | 331587 | macros/latex/required/tools/verbatim.pdf
+2024/06/01 | 331363 | macros/latex/required/graphics/grfguide.pdf
2024/06/01 | 33083 | macros/latex/base/ltnews37.tex
+2024/06/01 | 3284 | macros/latex/required/tools/manifest.txt
2024/06/01 | 3282 | macros/latex/base/bugs.txt
2024/06/01 | 325142 | macros/latex/base/ltluatex.pdf
+2024/06/01 | 323877 | macros/latex/required/tools/xr.pdf
+2024/06/01 | 323640 | macros/latex/required/tools/bm.pdf
2024/06/01 | 32331 | macros/latex/base/ltnews34.tex
+2024/06/01 | 32200 | macros/latex/required/graphics/color.dtx
+2024/06/01 | 32047 | macros/latex/required/tools/layout.dtx
2024/06/01 | 318372 | macros/latex/base/inputenc.pdf
2024/06/01 | 3181 | macros/latex/base/unpack.ins
2024/06/01 | 318193 | macros/latex/base/ltnews20.pdf
2024/06/01 | 318026 | macros/latex/base/ltnews22.pdf
+2024/06/01 | 31467 | macros/latex/required/tools/multicol-2019-10-01.sty
2024/06/01 | 3100 | macros/latex/base/README.md
+2024/06/01 | 3097569 | install/macros/latex/required/latex-graphics.tds.zip
+2024/06/01 | 307812 | macros/latex/required/latex-lab/latex-lab-text.pdf
2024/06/01 | 30499 | macros/latex/base/doc-2021-06-01.sty
+2024/06/01 | 30464 | macros/latex/required/graphics/graphicx.dtx
2024/06/01 | 304577 | macros/latex/base/lthooks.dtx
2024/06/01 | 30448 | macros/latex/base/ltnews31.tex
+2024/06/01 | 304170 | macros/latex/required/graphics/graphics.pdf
+2024/06/01 | 30386 | macros/latex/required/tools/showkeys.dtx
2024/06/01 | 2996 | systems/texlive/tlnet/archive/ideavault.r71397.tar.xz
2024/06/01 | 29965 | macros/latex/base/doc-2016-02-15.sty
+2024/06/01 | 2994 | macros/latex/required/graphics/graphics-drivers.ins
+2024/06/01 | 29812 | macros/latex/required/tools/multicol-2017-04-11.sty
+2024/06/01 | 297981 | macros/latex/required/latex-lab/latex-lab-testphase.pdf
+2024/06/01 | 296124 | macros/latex/required/latex-lab/latex-lab-toc-hyperref-changes.pdf
2024/06/01 | 29270 | macros/latex/base/ltfntcmd.dtx
2024/06/01 | 292600 | macros/latex/base/cmfonts.pdf
2024/06/01 | 292287 | macros/latex/contrib/tqft/tqft_code.pdf
2024/06/01 | 290257 | macros/latex/base/tlc2.pdf
+2024/06/01 | 2898 | macros/latex/required/latex-lab/latex-lab-mathpkg.dtx
2024/06/01 | 2896 | macros/latex/base/syntonly.ins
+2024/06/01 | 289601 | macros/latex/required/tools/tabularx.pdf
2024/06/01 | 2893 | macros/latex/base/nfssfont.ins
2024/06/01 | 2892 | macros/latex/base/graphpap.ins
2024/06/01 | 2892 | macros/latex/base/fix-cm.ins
2024/06/01 | 2890 | macros/latex/base/alltt.ins
2024/06/01 | 2888 | macros/latex/base/ifthen.ins
2024/06/01 | 287727 | macros/latex/base/fix-cm.pdf
-2024/06/01 | 2870432 | biblio/ctan-bibdata/ctan.bib
2024/06/01 | 286824 | macros/latex/base/ltnews23.pdf
+2024/06/01 | 286448 | macros/latex/required/graphics/drivers.pdf
2024/06/01 | 282095 | macros/latex/base/latexrelease.pdf
-2024/06/01 | 27720354 | systems/texlive/tlnet/install-tl-windows.exe
+2024/06/01 | 280811 | macros/latex/required/latex-lab/latex-lab-minipage.pdf
+2024/06/01 | 280791 | install/macros/latex/required/latex-firstaid.tds.zip
+2024/06/01 | 2796532 | install/macros/latex/required/latex-amsmath.tds.zip
+2024/06/01 | 278397 | macros/latex/required/graphics/rotating.pdf
+2024/06/01 | 27558 | macros/latex/required/cyrillic/t2lhfnt.fdd
+2024/06/01 | 2749 | macros/latex/required/tools/xr-2023-07-04.sty
+2024/06/01 | 2744 | macros/latex/required/firstaid/firstaid.ins
+2024/06/01 | 274055 | macros/latex/required/firstaid/latex2e-first-aid-for-external-files.pdf
2024/06/01 | 2728 | macros/latex/base/ltpageno.dtx
+2024/06/01 | 2723 | macros/latex/required/amsmath/README.md
2024/06/01 | 27122 | macros/latex/base/ltxcheck.tex
2024/06/01 | 27069 | macros/latex/base/lterror.dtx
2024/06/01 | 2705 | macros/latex/base/idx.tex
+2024/06/01 | 26699 | macros/latex/required/latex-lab/latex-lab-sec.dtx
2024/06/01 | 265497 | macros/latex/base/ltnews24.pdf
2024/06/01 | 264168 | macros/latex/base/cfgguide.pdf
+2024/06/01 | 260278 | macros/latex/required/tools/layout.pdf
2024/06/01 | 257825 | macros/latex/base/modguide.pdf
-2024/06/01 | 2574824 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2024/06/01 | 2576 | macros/latex/required/tools/multicol.ins
2024/06/01 | 257359 | macros/latex/base/cyrguide.pdf
+2024/06/01 | 257027 | macros/latex/required/tools/xspace.pdf
2024/06/01 | 25664 | systems/texlive/tlnet/archive/spath3.r71396.tar.xz
2024/06/01 | 2556064 | systems/texlive/tlnet/archive/simpleicons.doc.r71395.tar.xz
+2024/06/01 | 2554 | macros/latex/required/tools/l3sys-query.ins
+2024/06/01 | 2538 | macros/latex/required/tools/longtable.ins
+2024/06/01 | 2538 | macros/latex/required/tools/afterpage.ins
+2024/06/01 | 2535 | macros/latex/required/tools/tabularx.ins
+2024/06/01 | 2531 | macros/latex/required/tools/varioref.ins
+2024/06/01 | 252923 | macros/latex/required/tools/showkeys.pdf
2024/06/01 | 252519 | macros/latex/base/lb2.pdf
+2024/06/01 | 2524 | macros/latex/required/tools/bm.ins
+2024/06/01 | 25146 | macros/latex/required/tools/trace.dtx
2024/06/01 | 251283 | macros/latex/base/ltnews27.pdf
+2024/06/01 | 25098 | macros/latex/required/cyrillic/cyoutenc.dtx
+2024/06/01 | 25037 | macros/latex/required/firstaid/latex2e-first-aid-for-external-files.dtx
2024/06/01 | 24869 | macros/latex/base/ltcounts.dtx
2024/06/01 | 24793 | macros/latex/base/lttagging.dtx
2024/06/01 | 245228 | macros/latex/base/ltnews21.pdf
@@ -227,118 +571,209 @@
2024/06/01 | 241390 | macros/latex/base/doc.dtx
2024/06/01 | 240 | macros/latex/base/ltsockets-doc.tex
2024/06/01 | 240 | macros/latex/base/ltshipout-doc.tex
+2024/06/01 | 240618 | macros/latex/required/graphics/graphicx.pdf
+2024/06/01 | 239587 | macros/latex/required/graphics/keyval.pdf
2024/06/01 | 238 | macros/latex/base/ltmarks-doc.tex
2024/06/01 | 238 | macros/latex/base/lthooks-doc.tex
2024/06/01 | 238 | macros/latex/base/ltcmdhooks-doc.tex
+2024/06/01 | 23812 | macros/latex/required/latex-lab/latex-lab-new-or-2.dtx
2024/06/01 | 23646 | macros/latex/base/ltnews30.tex
+2024/06/01 | 235751 | macros/latex/required/latex-lab/latex-lab-namespace.pdf
+2024/06/01 | 23552 | macros/latex/required/latex-lab/documentmetadata-support.dtx
2024/06/01 | 23516 | macros/latex/base/fix-cm.dtx
2024/06/01 | 234 | macros/latex/base/ltpara-doc.tex
2024/06/01 | 233905 | macros/latex/base/slifonts.pdf
2024/06/01 | 23386 | macros/latex/base/lppl.tex
+2024/06/01 | 230689 | macros/latex/required/amsmath/amsmath.dtx
2024/06/01 | 22946 | macros/latex/base/ltnews38.tex
2024/06/01 | 22822 | macros/latex/base/ltxdoc.dtx
2024/06/01 | 22723 | macros/latex/base/cfgguide.tex
2024/06/01 | 227065 | macros/latex/base/proc.pdf
+2024/06/01 | 22605 | macros/latex/required/amsmath/diffs-m.txt
2024/06/01 | 225936 | macros/latex/base/ltnews19.pdf
2024/06/01 | 223861 | macros/latex/base/alltt.pdf
2024/06/01 | 222460 | macros/latex/base/ifthen.pdf
+2024/06/01 | 222074 | macros/latex/required/tools/trace.pdf
+2024/06/01 | 2219 | macros/latex/required/tools/indentfirst.dtx
+2024/06/01 | 221038 | macros/latex/required/tools/dcolumn.pdf
2024/06/01 | 219358 | macros/latex/base/ltx3info.pdf
2024/06/01 | 21882 | macros/latex/base/ltxref.dtx
2024/06/01 | 217663 | macros/latex/base/lgc2.pdf
+2024/06/01 | 217504 | macros/latex/required/amsmath/amstext.pdf
+2024/06/01 | 215395 | macros/latex/required/cyrillic/cyinpenc.pdf
+2024/06/01 | 215077 | macros/latex/required/tools/enumerate.pdf
2024/06/01 | 21488 | macros/latex/base/ltnews.cls
2024/06/01 | 21229 | macros/latex/base/lgc2.err
+2024/06/01 | 212179 | macros/latex/required/graphics/color.pdf
2024/06/01 | 211314 | macros/latex/base/nfssfont.pdf
+2024/06/01 | 21076 | macros/latex/required/tools/l3sys-query.dtx
2024/06/01 | 21071 | info/install-latex-guide-zh-cn/chapter/windows.tex
+2024/06/01 | 21067 | macros/latex/required/graphics/rotating.dtx
+2024/06/01 | 2090 | macros/latex/required/graphics/README.md
2024/06/01 | 205100 | macros/latex/base/ltnews25.pdf
2024/06/01 | 204708 | macros/latex/base/exscale.pdf
+2024/06/01 | 203741 | macros/latex/required/cyrillic/lcy.pdf
2024/06/01 | 200759 | macros/latex/base/latexsym.pdf
2024/06/01 | 20030 | macros/latex/base/ltexpl.dtx
2024/06/01 | 20012 | macros/latex/base/ltkeys.dtx
-2024/06/01 | 19492762 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2024/06/01 | 199290 | macros/latex/required/graphics/trig.pdf
+2024/06/01 | 198100 | macros/latex/required/tools/afterpage.pdf
2024/06/01 | 1941 | macros/latex/base/minimal.cls
2024/06/01 | 19333 | macros/latex/base/ltnews36.tex
+2024/06/01 | 191 | macros/latex/required/latex-lab/documentmetadata-support-doc.tex
2024/06/01 | 19199 | macros/latex/base/ifthen.dtx
+2024/06/01 | 191058 | macros/latex/required/tools/delarray.pdf
2024/06/01 | 19040 | macros/latex/base/lppl.txt
+2024/06/01 | 189678 | macros/latex/required/tools/hhline.pdf
2024/06/01 | 18944 | macros/latex/base/ltnews29.tex
2024/06/01 | 189355 | macros/latex/base/syntonly.pdf
2024/06/01 | 189005 | macros/latex/base/ltcmd.dtx
+2024/06/01 | 188159 | macros/latex/required/tools/multicol.dtx
+2024/06/01 | 187629 | macros/latex/required/tools/fileerr.pdf
+2024/06/01 | 18465 | macros/latex/required/latex-lab/latex-lab-toc-kernel-changes.dtx
2024/06/01 | 18401 | macros/latex/base/nfssfont.dtx
2024/06/01 | 18299 | macros/latex/base/ltx3info.tex
2024/06/01 | 182483 | macros/latex/base/ltnews13.pdf
+2024/06/01 | 179951 | macros/latex/required/amsmath/amscd.pdf
+2024/06/01 | 17974 | macros/latex/required/latex-lab/latex-lab-float.dtx
+2024/06/01 | 17856 | macros/latex/required/tools/xspace.dtx
2024/06/01 | 178564 | macros/latex/base/ltoutput.dtx
+2024/06/01 | 178193 | macros/latex/required/amsmath/amsgen.pdf
2024/06/01 | 17782 | macros/latex/base/cyrguide.tex
+2024/06/01 | 176171 | macros/latex/required/tools/shellesc.pdf
2024/06/01 | 175211 | macros/latex/base/ltnews05.pdf
+2024/06/01 | 174946 | macros/latex/required/amsmath/amsbsy.pdf
2024/06/01 | 17389 | macros/latex/base/ltbibl.dtx
2024/06/01 | 173013 | macros/latex/base/tlc2.err
+2024/06/01 | 172239 | macros/latex/required/graphics/rotex.pdf
2024/06/01 | 171410 | macros/latex/base/docstrip.dtx
2024/06/01 | 170876 | macros/latex/base/lamport-manual.pdf
2024/06/01 | 170722 | macros/latex/base/ltnews14.pdf
+2024/06/01 | 17010 | macros/latex/required/latex-lab/latex-lab-title.dtx
2024/06/01 | 169553 | macros/latex/base/ltnews01.pdf
2024/06/01 | 1694 | macros/latex/base/small2e.tex
2024/06/01 | 169433 | macros/latex/base/ltnews10.pdf
2024/06/01 | 1682276 | systems/texlive/tlnet/archive/spath3.doc.r71396.tar.xz
-2024/06/01 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2024/06/01 | 167583 | macros/latex/required/tools/somedefs.pdf
+2024/06/01 | 1664 | macros/latex/required/tools/README.md
2024/06/01 | 166269 | macros/latex/base/ltnews17.pdf
2024/06/01 | 165816 | macros/latex/base/makeindx.pdf
2024/06/01 | 16500 | macros/latex/base/modguide.tex
+2024/06/01 | 1642 | macros/latex/required/cyrillic/README.md
2024/06/01 | 162773 | macros/latex/base/tulm.pdf
2024/06/01 | 161722 | macros/latex/base/graphpap.pdf
+2024/06/01 | 16168 | macros/latex/required/graphics/mathcolor.dtx
+2024/06/01 | 159239 | macros/latex/required/graphics/epsfig.pdf
+2024/06/01 | 157791 | macros/latex/required/cyrillic/cyoutenc.pdf
+2024/06/01 | 15737 | macros/latex/required/graphics/cat.eps
+2024/06/01 | 157352 | macros/latex/required/tools/indentfirst.pdf
2024/06/01 | 15693 | macros/latex/base/slifonts.fdd
2024/06/01 | 156764 | macros/latex/base/ltnews12.pdf
2024/06/01 | 156260 | macros/latex/base/classes.dtx
+2024/06/01 | 155987 | macros/latex/required/graphics/lscape.pdf
+2024/06/01 | 15577 | macros/latex/required/graphics/graphics-2017-06-25.sty
2024/06/01 | 155442 | macros/latex/base/ltnews08.pdf
2024/06/01 | 15479 | macros/latex/base/source2e.tex
-2024/06/01 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
2024/06/01 | 15346 | macros/latex/base/ltvers.dtx
-2024/06/01 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
2024/06/01 | 152551 | macros/latex/base/ltnews04.pdf
2024/06/01 | 151773 | macros/latex/base/ltnews02.pdf
2024/06/01 | 151324 | macros/latex/base/ltnews03.pdf
2024/06/01 | 150769 | macros/latex/base/ltclass.dtx
+2024/06/01 | 1505 | macros/latex/required/amsmath/amsbsy.ins
+2024/06/01 | 1504 | macros/latex/required/amsmath/amsmath.ins
2024/06/01 | 15047 | macros/latex/base/ltnews28.tex
+2024/06/01 | 1492 | macros/latex/required/amsmath/amsxtra.ins
+2024/06/01 | 1492 | macros/latex/required/amsmath/amstext.ins
+2024/06/01 | 1490 | macros/latex/required/amsmath/amsopn.ins
+2024/06/01 | 1487 | macros/latex/required/amsmath/amscd.ins
2024/06/01 | 148564 | macros/latex/base/ltoutenc.dtx
+2024/06/01 | 1484 | macros/latex/required/amsmath/amsgen.ins
+2024/06/01 | 147459 | macros/latex/required/amsmath/technote.pdf
+2024/06/01 | 146438 | macros/latex/required/tools/fontsmpl.pdf
2024/06/01 | 146205 | macros/latex/base/webcomp.pdf
-2024/06/01 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2024/06/01 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2024/06/01 | 14575 | macros/latex/required/graphics/rotex.tex
2024/06/01 | 14421 | macros/latex/base/lppl-1-2.txt
+2024/06/01 | 144073 | macros/latex/required/cyrillic/t2lhfnt.pdf
+2024/06/01 | 14373 | macros/latex/required/latex-lab/latex-lab-bib.dtx
2024/06/01 | 14341 | macros/latex/base/lppl-1-1.txt
2024/06/01 | 142867 | macros/latex/base/ltnews06.pdf
2024/06/01 | 14091 | macros/latex/base/ltpage.dtx
+2024/06/01 | 14075 | macros/latex/required/tools/afterpage.dtx
2024/06/01 | 1404362 | macros/latex/base/ltnews.pdf
+2024/06/01 | 140093 | macros/latex/required/amsmath/amsopn.pdf
+2024/06/01 | 140078 | macros/latex/required/tools/array.dtx
+2024/06/01 | 138956 | macros/latex/required/tools/rawfonts.pdf
+2024/06/01 | 13875 | macros/latex/required/graphics/keyval.dtx
2024/06/01 | 138214 | macros/latex/base/ltnews07.pdf
2024/06/01 | 138107 | macros/latex/base/ltnews16.pdf
2024/06/01 | 13759 | macros/latex/base/lamport-manual.err
+2024/06/01 | 137301 | macros/latex/required/latex-lab/latex-lab-block.dtx
2024/06/01 | 13589 | macros/latex/base/proc.dtx
+2024/06/01 | 1349959 | install/macros/latex/required/latex-cyrillic.tds.zip
+2024/06/01 | 13442 | macros/latex/required/amsmath/amsgen.dtx
2024/06/01 | 1341 | macros/latex/base/ltnews18.tex
+2024/06/01 | 13366 | macros/latex/required/latex-lab/changes.txt
2024/06/01 | 132370 | macros/latex/base/lppl.pdf
2024/06/01 | 1318576 | macros/latex/base/encguide.pdf
+2024/06/01 | 130460 | macros/latex/required/cyrillic/ot2cmlh.pdf
2024/06/01 | 130328 | macros/latex/base/ltnews15.pdf
2024/06/01 | 130028 | macros/latex/base/ltnews09.pdf
+2024/06/01 | 12968 | macros/latex/required/cyrillic/lcy.dtx
+2024/06/01 | 12805 | macros/latex/required/latex-lab/latex-lab-toc.dtx
2024/06/01 | 1279 | macros/latex/base/legal.txt
+2024/06/01 | 127222 | macros/latex/required/cyrillic/lcycmlh.pdf
+2024/06/01 | 12706 | macros/latex/required/tools/dcolumn.dtx
+2024/06/01 | 12587 | macros/latex/required/tools/array-2023-11-01.sty
+2024/06/01 | 12535 | macros/latex/required/tools/array-2020-02-10.sty
2024/06/01 | 12520 | macros/latex/base/testpage.tex
+2024/06/01 | 12515 | macros/latex/required/tools/xr.dtx
+2024/06/01 | 12492918 | install/macros/latex/required/latex-lab.tds.zip
2024/06/01 | 1248534 | macros/latex/base/lthooks-code.pdf
2024/06/01 | 12334 | macros/latex/base/ltnews24.tex
+2024/06/01 | 12282 | macros/latex/required/tools/longtable-2020-01-07.sty
2024/06/01 | 12246 | macros/latex/base/tulm.fdd
+2024/06/01 | 12005 | macros/latex/required/amsmath/technote.tex
+2024/06/01 | 1189 | macros/latex/required/graphics/graphics.ins
+2024/06/01 | 11849 | macros/latex/required/tools/array-2016-10-06.sty
+2024/06/01 | 117 | macros/latex/required/latex-lab/documentmetadata-support-code.tex
+2024/06/01 | 1156 | macros/latex/required/latex-lab/README.md
2024/06/01 | 11463 | macros/latex/base/manifest.txt
+2024/06/01 | 114484 | macros/latex/required/tools/varioref.dtx
2024/06/01 | 114477 | macros/latex/base/lttextcomp.dtx
-2024/06/01 | 114380 | systems/texlive/tlnet/archive/texlive-scripts.r71398.tar.xz
+2024/06/01 | 11398 | macros/latex/required/amsmath/amstext.dtx
+2024/06/01 | 113858 | macros/latex/required/cyrillic/ot2.pdf
+2024/06/01 | 113560 | macros/latex/required/amsmath/amsxtra.pdf
+2024/06/01 | 11284 | macros/latex/required/amsmath/amscd.dtx
2024/06/01 | 112208 | macros/latex/base/ltnews11.pdf
+2024/06/01 | 11148 | macros/latex/required/tools/hhline.dtx
2024/06/01 | 111448 | macros/latex/base/fntguide.tex
+2024/06/01 | 10996 | macros/latex/required/latex-lab/latex-lab-firstaid.dtx
+2024/06/01 | 109733 | macros/latex/required/amsmath/subeqn.pdf
+2024/06/01 | 108 | macros/latex/required/latex-lab/blocks-code.tex
2024/06/01 | 107 | macros/latex/base/ltproperties-code.tex
2024/06/01 | 10798 | macros/latex/base/ltnews26.tex
2024/06/01 | 10792 | macros/latex/base/ltnews22.tex
2024/06/01 | 10791 | macros/latex/base/ltnews23.tex
2024/06/01 | 1078869 | macros/latex/base/doc-code.pdf
+2024/06/01 | 10771 | macros/latex/required/tools/fontsmpl.dtx
+2024/06/01 | 10749 | macros/latex/required/graphics/trig.dtx
2024/06/01 | 106906 | macros/latex/base/inputenc.dtx
+2024/06/01 | 10637 | macros/latex/required/tools/enumerate.dtx
2024/06/01 | 10601 | macros/latex/base/makeindx.dtx
+2024/06/01 | 105 | macros/latex/required/latex-lab/blocks-doc.tex
2024/06/01 | 105 | macros/latex/base/ltfilehook-code.tex
+2024/06/01 | 10569 | macros/latex/required/cyrillic/cyrlatex.ins
2024/06/01 | 104 | macros/latex/base/ltsockets-code.tex
2024/06/01 | 104 | macros/latex/base/ltshipout-code.tex
+2024/06/01 | 104792 | macros/latex/required/amsmath/amsldoc.tex
+2024/06/01 | 10470 | macros/latex/required/cyrillic/ot2cmlh.fdd
2024/06/01 | 103 | macros/latex/base/ltcmdhooks-code.tex
2024/06/01 | 10370 | macros/latex/base/ltfsscmp.dtx
+2024/06/01 | 10307 | macros/latex/required/cyrillic/lcycmlh.fdd
2024/06/01 | 102 | macros/latex/base/ltmarks-code.tex
2024/06/01 | 102 | macros/latex/base/lthooks-code.tex
2024/06/01 | 10247 | macros/latex/base/webcomp.err
+2024/06/01 | 10199 | macros/latex/required/amsmath/amsopn.dtx
2024/06/01 | 10169 | macros/latex/base/ltthm.dtx
2024/06/01 | 10072 | macros/latex/base/format.ins
2024/05/31 | 91676 | systems/texlive/tlnet/archive/nicematrix.source.r71390.tar.xz
@@ -421,6 +856,7 @@
2024/05/31 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsfour.tfm
2024/05/31 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsfive.tfm
2024/05/31 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconseight.tfm
+2024/05/31 | 122901555 | macros/context/latest/cont-tmf.zip
2024/05/31 | 1207 | fonts/simpleicons/README.md
2024/05/31 | 11779 | support/latex-git-log/latex-git-log
2024/05/30 | 99872 | fonts/junicode/tfm/Junicode-Bold-lf-sc-t1.tfm
@@ -4671,6 +5107,7 @@
2024/05/29 | 302686 | macros/latex/contrib/pdfpages/pdfpages.pdf
2024/05/29 | 3016002 | macros/latex/contrib/nicematrix.zip
2024/05/29 | 2983 | macros/latex/contrib/pdfpages/pdfpages.ins
+2024/05/29 | 292974 | macros/latex/contrib/acmart/acmart.dtx
2024/05/29 | 263242 | macros/latex/contrib/nicematrix/nicematrix.tex
2024/05/29 | 25856 | systems/texlive/tlnet/archive/se2thesis.source.r71380.tar.xz
2024/05/29 | 254031 | macros/latex/contrib/nicematrix/nicematrix-french.tex
@@ -4681,6 +5118,7 @@
2024/05/29 | 1667004 | systems/texlive/tlnet/archive/customenvs.doc.r71379.tar.xz
2024/05/29 | 1488504 | systems/texlive/tlnet/archive/tex4ht.source.r71381.tar.xz
2024/05/29 | 1382 | macros/latex/contrib/pdfpages/README
+2024/05/29 | 13797 | macros/latex/contrib/acmart/README
2024/05/29 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r71381.tar.xz
2024/05/29 | 130872 | systems/texlive/tlnet/archive/markdown.source.r71378.tar.xz
2024/05/29 | 1292608 | systems/texlive/tlnet/archive/markdown.doc.r71378.tar.xz
@@ -4740,11 +5178,9 @@
2024/05/28 | 1039498 | macros/generic/markdown/markdown.html
2024/05/28 | 10208 | graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-exemples-integrales.tex
2024/05/27 | 9999 | macros/latex-dev/required/l3kernel/l3news10.tex
-2024/05/27 | 992 | systems/win32/miktex/tm/packages/pr.ini
2024/05/27 | 9625313 | systems/win32/miktex/tm/packages/profcollege__doc.tar.lzma
2024/05/27 | 9465 | macros/latex-dev/required/l3kernel/l3news08.tex
2024/05/27 | 9445 | macros/latex-dev/required/l3kernel/l3fp-assign.dtx
-2024/05/27 | 9377 | systems/win32/miktex/tm/packages/se2thesis.tar.lzma
2024/05/27 | 92895 | macros/latex-dev/required/l3kernel/l3int.dtx
2024/05/27 | 91719 | macros/latex-dev/required/l3kernel/l3skip.dtx
2024/05/27 | 91106 | systems/win32/miktex/tm/packages/spbmark__doc.tar.lzma
@@ -4752,9 +5188,7 @@
2024/05/27 | 889885 | systems/win32/miktex/tm/packages/babel__source.tar.lzma
2024/05/27 | 8895 | macros/latex/contrib/se2thesis/se2fonts.dtx
2024/05/27 | 88899 | systems/win32/miktex/tm/packages/hyperref.tar.lzma
-2024/05/27 | 8880 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
2024/05/27 | 88794 | macros/latex-dev/required/l3kernel/l3expan.dtx
-2024/05/27 | 88688 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
2024/05/27 | 88239 | macros/latex-dev/required/l3kernel/l3coffins.dtx
2024/05/27 | 87816 | macros/latex-dev/required/l3kernel/l3box.dtx
2024/05/27 | 8676 | systems/texlive/tlnet/archive/mltex.doc.r71363.tar.xz
@@ -4766,56 +5200,37 @@
2024/05/27 | 84789 | macros/latex-dev/required/l3kernel/l3fp-basics.dtx
2024/05/27 | 83835 | macros/latex-dev/required/l3kernel/l3msg.dtx
2024/05/27 | 83169 | macros/latex-dev/required/l3kernel/l3clist.dtx
-2024/05/27 | 830434 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
2024/05/27 | 828860 | install/macros/latex/contrib/l3build.tds.zip
2024/05/27 | 82843 | macros/latex-dev/required/l3kernel/l3prefixes.pdf
2024/05/27 | 824968 | macros/latex/contrib/l3build.zip
2024/05/27 | 82462 | macros/latex-dev/required/l3kernel/l3str.dtx
-2024/05/27 | 821947 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2024/05/27 | 82157 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2024/05/27 | 821106 | systems/win32/miktex/tm/packages/files.csv.lzma
-2024/05/27 | 82027 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2024/05/27 | 81561 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
2024/05/27 | 8093 | macros/latex/contrib/l3build/l3build-variables.lua
2024/05/27 | 80271 | systems/win32/miktex/tm/packages/babel-french__source.tar.lzma
2024/05/27 | 80271 | macros/latex-dev/required/l3kernel/l3names.dtx
2024/05/27 | 8008 | systems/win32/miktex/tm/packages/liftarm__source.tar.lzma
2024/05/27 | 8008 | systems/texlive/tlnet/archive/xetex.r71363.tar.xz
-2024/05/27 | 78343 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
2024/05/27 | 7831 | macros/latex-dev/required/l3kernel/l3fp-functions.dtx
2024/05/27 | 78047 | systems/win32/miktex/tm/packages/piton__source.tar.lzma
2024/05/27 | 776316 | systems/texlive/tlnet/archive/uplatex.doc.r71363.tar.xz
2024/05/27 | 7755 | macros/latex/contrib/l3build/l3build-arguments.lua
-2024/05/27 | 77345 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
2024/05/27 | 77268 | systems/texlive/tlnet/archive/cweb.doc.r71359.tar.xz
-2024/05/27 | 765779 | fonts/algolrevived.zip
2024/05/27 | 76534 | macros/latex-dev/required/l3kernel/l3fp.dtx
2024/05/27 | 76370 | macros/latex-dev/required/l3kernel/l3text-case.dtx
2024/05/27 | 7620915 | macros/latex-dev/required/l3kernel/source3.pdf
-2024/05/27 | 76158 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
2024/05/27 | 7578 | macros/latex/contrib/se2thesis/CHANGELOG.md
-2024/05/27 | 75055 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
2024/05/27 | 750224 | macros/latex/contrib/l3build/l3build.pdf
2024/05/27 | 73845 | macros/latex-dev/required/l3kernel/l3fp-trig.dtx
-2024/05/27 | 73416 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2024/05/27 | 73386 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
2024/05/27 | 7201 | macros/latex/contrib/l3build/l3build-manifest.lua
2024/05/27 | 71457 | macros/latex-dev/required/l3kernel/expl3.dtx
2024/05/27 | 7142 | systems/win32/miktex/tm/packages/libertinust1math__source.tar.lzma
2024/05/27 | 70830 | macros/latex-dev/required/l3kernel/l3prg.dtx
2024/05/27 | 7079 | macros/latex-dev/required/l3kernel/l3term-glossary.tex
-2024/05/27 | 707269 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
2024/05/27 | 7019 | macros/latex/contrib/l3build/l3build.lua
-2024/05/27 | 698657 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2024/05/27 | 69694 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
2024/05/27 | 69637214 | support/texshop/texshop536.zip
-2024/05/27 | 67409 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
2024/05/27 | 6707 | systems/win32/miktex/tm/packages/mpkiviat__source.tar.lzma
2024/05/27 | 6677 | macros/latex-dev/required/l3kernel/l3news02.tex
2024/05/27 | 6538 | macros/latex/contrib/l3build/l3build-typesetting.lua
-2024/05/27 | 65139 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
2024/05/27 | 6512 | macros/latex/contrib/se2thesis/se2thesis.tex
-2024/05/27 | 65004 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
2024/05/27 | 6482 | macros/latex-dev/required/l3kernel/l3news03.tex
2024/05/27 | 6433 | macros/latex-dev/required/l3kernel/l3news06.tex
2024/05/27 | 6429 | systems/win32/miktex/tm/packages/liftarm.tar.lzma
@@ -4830,41 +5245,28 @@
2024/05/27 | 624743 | systems/win32/miktex/tm/packages/l3kernel__source.tar.lzma
2024/05/27 | 6219 | macros/latex-dev/required/l3kernel/l3syntax-changes.tex
2024/05/27 | 618017 | macros/latex/contrib/se2thesis.zip
-2024/05/27 | 61048 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
2024/05/27 | 610409 | macros/latex-dev/required/l3kernel/expl3.pdf
-2024/05/27 | 606817 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
2024/05/27 | 60553 | macros/latex/contrib/se2thesis/se2thesis.dtx
-2024/05/27 | 603560 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
2024/05/27 | 59985 | macros/latex-dev/required/l3kernel/CHANGELOG.md
-2024/05/27 | 59362 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2024/05/27 | 58966 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
2024/05/27 | 588 | systems/texlive/tlnet/archive/latex-bin.r71362.tar.xz
2024/05/27 | 5831 | systems/win32/miktex/tm/packages/spbmark__source.tar.lzma
-2024/05/27 | 582011 | systems/win32/miktex/tm/packages/se2thesis__doc.tar.lzma
2024/05/27 | 5703 | systems/win32/miktex/tm/packages/algolrevived__source.tar.lzma
2024/05/27 | 5678680 | systems/win32/miktex/tm/packages/profcollege__source.tar.lzma
2024/05/27 | 565557 | macros/latex-dev/required/l3kernel/l3doc.pdf
2024/05/27 | 560367 | systems/win32/miktex/tm/packages/profsio__doc.tar.lzma
2024/05/27 | 56023 | systems/win32/miktex/tm/packages/zref-clever__source.tar.lzma
-2024/05/27 | 55912 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
2024/05/27 | 5540 | systems/texlive/tlnet/archive/hitex.r71363.tar.xz
2024/05/27 | 54894 | systems/win32/miktex/tm/packages/pdfmanagement-testphase.tar.lzma
-2024/05/27 | 54722 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
2024/05/27 | 5429 | macros/latex-dev/required/l3kernel/l3news04.tex
-2024/05/27 | 54113 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
2024/05/27 | 5368 | systems/win32/miktex/tm/packages/catppuccinpalette__source.tar.lzma
2024/05/27 | 53672 | systems/texlive/tlnet/archive/latex-bin.doc.r71362.tar.xz
2024/05/27 | 532664 | systems/win32/miktex/tm/packages/pgf-periodictable__source.tar.lzma
-2024/05/27 | 530402 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2024/05/27 | 52677 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
2024/05/27 | 5242 | support/texshop/texshop536.html
2024/05/27 | 516049 | systems/win32/miktex/tm/packages/pgf-periodictable.tar.lzma
2024/05/27 | 51091 | macros/latex-dev/required/l3kernel/l3fp-extended.dtx
2024/05/27 | 50744 | systems/texlive/tlnet/archive/uplatex.source.r71363.tar.xz
-2024/05/27 | 499652 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
2024/05/27 | 4977 | macros/latex-dev/required/l3kernel/l3news07.tex
2024/05/27 | 4973 | macros/latex/contrib/l3build/l3build-ctan.lua
-2024/05/27 | 49729 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
2024/05/27 | 49438 | macros/latex-dev/required/l3kernel/l3prefixes.csv
2024/05/27 | 49387 | systems/win32/miktex/tm/packages/thuthesis__source.tar.lzma
2024/05/27 | 4937 | macros/latex-dev/required/l3kernel/l3news01.tex
@@ -4873,79 +5275,49 @@
2024/05/27 | 48985 | macros/latex-dev/required/l3kernel/l3text.dtx
2024/05/27 | 4890 | macros/latex-dev/required/l3kernel/l3news.tex
2024/05/27 | 486905 | systems/win32/miktex/tm/packages/babel-french__doc.tar.lzma
-2024/05/27 | 48302 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2024/05/27 | 47373 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2024/05/27 | 473113 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
2024/05/27 | 472 | systems/texlive/tlnet/archive/luajittex.r71366.tar.xz
2024/05/27 | 47237 | macros/latex-dev/required/l3kernel/l3fp-aux.dtx
2024/05/27 | 4716 | macros/latex-dev/required/l3kernel/l3news05.tex
2024/05/27 | 45971 | systems/win32/miktex/tm/packages/easybook__source.tar.lzma
-2024/05/27 | 45874 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
2024/05/27 | 4570 | macros/latex-dev/required/l3kernel/l3legacy.dtx
2024/05/27 | 452 | systems/texlive/tlnet/archive/xelatex-dev.r71363.tar.xz
2024/05/27 | 448 | systems/texlive/tlnet/archive/luahbtex.r71362.tar.xz
2024/05/27 | 44757 | systems/win32/miktex/tm/packages/thuthesis.tar.lzma
-2024/05/27 | 44351 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2024/05/27 | 44126 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2024/05/27 | 44069 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
2024/05/27 | 4353 | macros/latex/contrib/l3build/l3build-stdmain.lua
2024/05/27 | 4321 | systems/win32/miktex/tm/packages/spbmark.tar.lzma
2024/05/27 | 43211 | macros/latex-dev/required/l3kernel/l3sys.dtx
-2024/05/27 | 43120 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
2024/05/27 | 42292 | systems/texlive/tlnet/archive/platex.r71363.tar.xz
2024/05/27 | 418961 | systems/win32/miktex/tm/packages/hyperref__source.tar.lzma
2024/05/27 | 41859 | macros/latex-dev/required/l3kernel/l3debug.dtx
2024/05/27 | 4156 | macros/latex/contrib/l3build/l3build-zip.lua
2024/05/27 | 40727 | macros/latex-dev/required/l3kernel/l3sort.dtx
-2024/05/27 | 40383 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
2024/05/27 | 396223 | macros/latex-dev/required/l3kernel/l3news.pdf
2024/05/27 | 3958461 | systems/win32/miktex/tm/packages/hyperref__doc.tar.lzma
-2024/05/27 | 395658 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
2024/05/27 | 3881 | systems/win32/miktex/tm/packages/colortbl.tar.lzma
2024/05/27 | 388086 | systems/win32/miktex/tm/packages/algolrevived.tar.lzma
2024/05/27 | 38677 | macros/latex/contrib/l3build/l3build-check.lua
-2024/05/27 | 37638 | systems/win32/miktex/tm/packages/luamplib__source.tar.lzma
-2024/05/27 | 37600 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2024/05/27 | 36772 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2024/05/27 | 36720 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
2024/05/27 | 3647 | systems/win32/miktex/tm/packages/hvqrurl__source.tar.lzma
2024/05/27 | 360486 | macros/latex/contrib/se2thesis/se2thesis.pdf
-2024/05/27 | 356861 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2024/05/27 | 356814 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
2024/05/27 | 35639 | macros/latex-dev/required/l3kernel/l3unicode.dtx
-2024/05/27 | 35351 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
2024/05/27 | 35218 | macros/latex-dev/required/l3kernel/l3quark.dtx
-2024/05/27 | 352002 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
2024/05/27 | 344894 | support/TeX4ht/source/tex4ht-ooffice.tex
2024/05/27 | 34447 | macros/latex-dev/required/l3kernel/l3cctab.dtx
2024/05/27 | 34344 | systems/win32/miktex/tm/packages/l3backend__source.tar.lzma
-2024/05/27 | 33877 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2024/05/27 | 33833 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2024/05/27 | 329945 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2024/05/27 | 32898 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
2024/05/27 | 3267 | systems/win32/miktex/tm/packages/rub-kunstgeschichte__source.tar.lzma
-2024/05/27 | 32081 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
2024/05/27 | 31936 | macros/latex/contrib/se2thesis/se2packages.dtx
2024/05/27 | 31788 | systems/texlive/tlnet/archive/jadetex.doc.r71362.tar.xz
2024/05/27 | 316049 | systems/win32/miktex/tm/packages/nxuthesis__doc.tar.lzma
-2024/05/27 | 31593 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
2024/05/27 | 31533 | macros/latex-dev/required/l3kernel/l3intarray.dtx
2024/05/27 | 31020 | macros/latex-dev/required/l3kernel/l3kernel-functions.dtx
2024/05/27 | 3078 | macros/latex-dev/required/l3kernel/README.md
2024/05/27 | 305486 | macros/latex-dev/required/l3kernel/l3regex.dtx
-2024/05/27 | 305347 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
2024/05/27 | 3044 | systems/win32/miktex/tm/packages/catppuccinpalette.tar.lzma
2024/05/27 | 30356 | systems/texlive/tlnet/archive/luajittex.doc.r71366.tar.xz
2024/05/27 | 30240 | systems/texlive/tlnet/archive/luahbtex.doc.r71362.tar.xz
2024/05/27 | 3016 | macros/latex/contrib/se2thesis/se2thesis.ins
2024/05/27 | 29888 | systems/texlive/tlnet/archive/jadetex.r71362.tar.xz
-2024/05/27 | 29721 | systems/win32/miktex/tm/packages/se2thesis__source.tar.lzma
2024/05/27 | 296602 | macros/latex-dev/required/l3kernel/l3styleguide.pdf
-2024/05/27 | 29138 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2024/05/27 | 291308 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2024/05/27 | 287579 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
2024/05/27 | 2864 | macros/latex/contrib/l3build/l3build.1
-2024/05/27 | 2845081 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
2024/05/27 | 28379 | systems/win32/miktex/tm/packages/nxuthesis.tar.lzma
2024/05/27 | 2821 | macros/latex-dev/required/l3kernel/l3prefixes.tex
2024/05/27 | 2800 | systems/win32/miktex/tm/packages/mpkiviat.tar.lzma
@@ -4953,24 +5325,17 @@
2024/05/27 | 27750 | systems/win32/miktex/tm/packages/l3packages__source.tar.lzma
2024/05/27 | 2746 | macros/latex/contrib/l3build/l3build-unpack.lua
2024/05/27 | 273170 | systems/win32/miktex/tm/packages/listings__source.tar.lzma
-2024/05/27 | 272079 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2024/05/27 | 27149 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
2024/05/27 | 27084 | systems/texlive/tlnet/archive/cweb.r71359.tar.xz
2024/05/27 | 26790 | macros/latex-dev/required/l3kernel/l3pdf.dtx
2024/05/27 | 2644972 | systems/texlive/tlnet/archive/hitex.doc.r71363.tar.xz
2024/05/27 | 25937 | systems/win32/miktex/tm/packages/zref-clever.tar.lzma
-2024/05/27 | 25653 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2024/05/27 | 25606 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
2024/05/27 | 2532055 | systems/win32/miktex/tm/packages/circuitikz__doc.tar.lzma
2024/05/27 | 250702 | systems/win32/miktex/tm/packages/rub-kunstgeschichte__doc.tar.lzma
2024/05/27 | 250161 | macros/latex-dev/required/l3kernel/l3news09.pdf
-2024/05/27 | 249344 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
2024/05/27 | 24906 | macros/latex-dev/required/l3kernel/l3deprecation.dtx
2024/05/27 | 24830 | macros/latex-dev/required/l3kernel/source3body.tex
2024/05/27 | 2471 | macros/latex/contrib/l3build/l3build-help.lua
-2024/05/27 | 245934 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
2024/05/27 | 242247 | macros/latex-dev/required/l3kernel/l3term-glossary.pdf
-2024/05/27 | 24156 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
2024/05/27 | 24057 | macros/latex/contrib/l3build/CHANGELOG.md
2024/05/27 | 2384 | macros/latex-dev/required/l3kernel/l3docstrip.dtx
2024/05/27 | 23831 | macros/latex-dev/required/l3kernel/l3luatex.dtx
@@ -4978,32 +5343,20 @@
2024/05/27 | 23581 | macros/latex-dev/required/l3kernel/l3fp-random.dtx
2024/05/27 | 232636 | macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf
2024/05/27 | 23206 | macros/latex-dev/required/l3kernel/l3fp-logic.dtx
-2024/05/27 | 231907 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
2024/05/27 | 231447 | macros/latex-dev/required/l3kernel/l3syntax-changes.pdf
2024/05/27 | 2286 | macros/latex/contrib/l3build/l3build-tagging.lua
2024/05/27 | 2282 | macros/latex-dev/required/l3kernel/source3.tex
-2024/05/27 | 221456 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2024/05/27 | 218565 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2024/05/27 | 217595 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
2024/05/27 | 2145 | macros/latex/contrib/l3build/l3build-clean.lua
-2024/05/27 | 2091052 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2024/05/27 | 2090214 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
2024/05/27 | 20729 | systems/win32/miktex/tm/packages/profsio.tar.lzma
2024/05/27 | 206258 | systems/win32/miktex/tm/packages/catppuccinpalette__doc.tar.lzma
2024/05/27 | 20600 | systems/win32/miktex/tm/packages/l3packages.tar.lzma
2024/05/27 | 205020 | macros/latex-dev/required/l3kernel/l3news12.pdf
2024/05/27 | 20460 | macros/latex-dev/required/l3kernel/l3text-purify.dtx
2024/05/27 | 20406 | systems/win32/miktex/tm/packages/piton.tar.lzma
-2024/05/27 | 203767 | systems/win32/miktex/tm/packages/luamplib__doc.tar.lzma
-2024/05/27 | 203332 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
2024/05/27 | 20310 | macros/latex-dev/required/l3kernel/l3fp-symbolic.dtx
2024/05/27 | 2028298 | systems/win32/miktex/tm/packages/liftarm__doc.tar.lzma
-2024/05/27 | 19995 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2024/05/27 | 1998478 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2024/05/27 | 19954 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
2024/05/27 | 198705 | systems/win32/miktex/tm/packages/circuitikz.tar.lzma
2024/05/27 | 1982656 | systems/texlive/tlnet/archive/platex.doc.r71363.tar.xz
-2024/05/27 | 19724 | systems/win32/miktex/tm/packages/luamplib.tar.lzma
2024/05/27 | 19637 | macros/latex-dev/required/l3kernel/l3fp-convert.dtx
2024/05/27 | 1962904 | systems/texlive/tlnet/archive/luatex.doc.r71366.tar.xz
2024/05/27 | 19547 | macros/latex-dev/required/l3kernel/l3bitset.dtx
@@ -5015,29 +5368,22 @@
2024/05/27 | 19067 | systems/win32/miktex/tm/packages/profsio__source.tar.lzma
2024/05/27 | 18528 | macros/latex-dev/required/l3kernel/l3fp-round.dtx
2024/05/27 | 1833 | systems/win32/miktex/tm/packages/hvqrurl.tar.lzma
-2024/05/27 | 182759 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
2024/05/27 | 18232 | systems/texlive/tlnet/archive/xmltex.r71362.tar.xz
2024/05/27 | 180796 | systems/win32/miktex/tm/packages/l3kernel.tar.lzma
2024/05/27 | 1802512 | macros/latex-dev/required/l3kernel/interface3.pdf
-2024/05/27 | 1787199 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2024/05/27 | 1786331 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2024/05/27 | 17839 | systems/win32/miktex/tm/packages/easybook.tar.lzma
-2024/05/27 | 174094 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
2024/05/27 | 170102 | macros/latex-dev/required/l3kernel/l3news11.pdf
2024/05/27 | 17004 | systems/texlive/tlnet/archive/xmltex.doc.r71362.tar.xz
2024/05/27 | 16624 | macros/latex-dev/required/l3kernel/l3text-map.dtx
2024/05/27 | 16486 | systems/win32/miktex/tm/packages/l3backend.tar.lzma
-2024/05/27 | 1642395 | systems/win32/miktex/tm/packages/customenvs__doc.tar.lzma
2024/05/27 | 163484 | macros/latex-dev/required/l3kernel/l3news08.pdf
2024/05/27 | 1628044 | systems/win32/miktex/tm/packages/thuthesis__doc.tar.lzma
2024/05/27 | 15993 | systems/win32/miktex/tm/packages/babel-french.tar.lzma
2024/05/27 | 159900 | macros/latex-dev/required/l3kernel/l3doc.dtx
-2024/05/27 | 159847 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
2024/05/27 | 1580 | systems/texlive/tlnet/archive/hvqrurl.r71361.tar.xz
2024/05/27 | 1548138 | systems/win32/miktex/tm/packages/libertinust1math__doc.tar.lzma
2024/05/27 | 1541532 | systems/texlive/tlnet/archive/libertinust1math.doc.r71360.tar.xz
2024/05/27 | 1537 | macros/latex/contrib/l3build/l3build.ins
-2024/05/27 | 1531442 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
2024/05/27 | 151591 | macros/latex-dev/required/l3kernel/l3news06.pdf
2024/05/27 | 151323 | macros/latex-dev/required/l3kernel/l3docstrip.pdf
2024/05/27 | 150919 | macros/latex-dev/required/l3kernel/l3news02.pdf
@@ -5050,24 +5396,18 @@
2024/05/27 | 14618 | systems/win32/miktex/tm/packages/nxuthesis__source.tar.lzma
2024/05/27 | 146028 | systems/win32/miktex/tm/packages/listings.tar.lzma
2024/05/27 | 1459860 | systems/win32/miktex/tm/packages/l3packages__doc.tar.lzma
-2024/05/27 | 14590 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
2024/05/27 | 145032 | systems/win32/miktex/tm/packages/pdfmanagement-testphase__source.tar.lzma
2024/05/27 | 144193 | macros/latex-dev/required/l3kernel/l3file.dtx
-2024/05/27 | 1440898 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
2024/05/27 | 14375464 | install/macros/latex-dev/required/l3kernel-dev.tds.zip
2024/05/27 | 1431 | systems/win32/miktex/tm/packages/rub-kunstgeschichte.tar.lzma
-2024/05/27 | 142029 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
2024/05/27 | 141841 | systems/win32/miktex/tm/packages/semesterplannerlua__doc.tar.lzma
2024/05/27 | 14152 | macros/latex-dev/required/l3kernel/l3flag.dtx
2024/05/27 | 1414609 | systems/win32/miktex/tm/packages/profcollege.tar.lzma
2024/05/27 | 14104831 | macros/latex-dev/required/l3kernel.zip
2024/05/27 | 140240 | systems/texlive/tlnet/archive/platex.source.r71363.tar.xz
2024/05/27 | 14000 | systems/texlive/tlnet/archive/latex-bin-dev.doc.r71362.tar.xz
-2024/05/27 | 13999 | systems/win32/miktex/tm/packages/customenvs__source.tar.lzma
2024/05/27 | 138821 | macros/latex-dev/required/l3kernel/l3basics.dtx
-2024/05/27 | 137621 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
2024/05/27 | 13612 | systems/texlive/tlnet/archive/luatex.r71366.tar.xz
-2024/05/27 | 1342062 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
2024/05/27 | 13292 | macros/latex-dev/required/l3kernel/l3tl-build.dtx
2024/05/27 | 13186 | macros/latex/contrib/l3build/l3build-upload.lua
2024/05/27 | 130071 | macros/latex-dev/required/l3kernel/l3keys.dtx
@@ -5081,69 +5421,24 @@
2024/05/27 | 1247580 | systems/texlive/tlnet/archive/libertinust1math.r71360.tar.xz
2024/05/27 | 123452 | systems/texlive/tlnet/archive/hvqrurl.doc.r71361.tar.xz
2024/05/27 | 122959 | macros/latex-dev/required/l3kernel/l3news01.pdf
-2024/05/27 | 122897320 | macros/context/latest/cont-tmf.zip
2024/05/27 | 120890 | systems/win32/miktex/tm/packages/hvqrurl__doc.tar.lzma
2024/05/27 | 12055616 | systems/win32/miktex/tm/packages/l3kernel__doc.tar.lzma
2024/05/27 | 11882 | macros/latex-dev/required/l3kernel/l3styleguide.tex
-2024/05/27 | 117786 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
2024/05/27 | 117222 | macros/latex-dev/required/l3kernel/l3token.dtx
-2024/05/27 | 1172191 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
2024/05/27 | 1152 | macros/latex/contrib/se2thesis/README.md
-2024/05/27 | 1150 | systems/win32/miktex/tm/packages/next/pr.ini
2024/05/27 | 114754 | macros/latex-dev/required/l3kernel/l3news04.pdf
2024/05/27 | 114217 | macros/latex/contrib/l3build/l3build.dtx
2024/05/27 | 113735 | macros/latex-dev/required/l3kernel/l3str-convert.dtx
2024/05/27 | 112524 | macros/latex-dev/required/l3kernel/l3news05.pdf
-2024/05/27 | 112482 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
2024/05/27 | 112260 | macros/latex-dev/required/l3kernel/l3color.dtx
-2024/05/27 | 11127 | systems/win32/miktex/tm/packages/customenvs.tar.lzma
2024/05/27 | 11077 | macros/latex/contrib/l3build/l3build-install.lua
2024/05/27 | 11010 | systems/win32/miktex/tm/packages/semesterplannerlua__source.tar.lzma
-2024/05/27 | 109832 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2024/05/27 | 108647 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
2024/05/27 | 108445 | macros/latex-dev/required/l3kernel/l3prop.dtx
2024/05/27 | 10782 | macros/latex/contrib/l3build/l3build-manifest-setup.lua
2024/05/27 | 107383 | macros/latex-dev/required/l3kernel/l3news09.tex
-2024/05/27 | 106594 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
2024/05/27 | 1063658 | systems/win32/miktex/tm/packages/zref-clever__doc.tar.lzma
-2024/05/27 | 105767 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
2024/05/27 | 1053414 | systems/win32/miktex/tm/packages/babel__doc.tar.lzma
2024/05/27 | 105021 | macros/latex-dev/required/l3kernel/l3fp-parse.dtx
-2024/05/27 | 104416 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2024/05/27 | 104190 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
2024/05/27 | 103700 | systems/win32/miktex/tm/packages/mpkiviat__doc.tar.lzma
-2024/05/27 | 103554 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
2024/05/27 | 1021 | macros/latex/contrib/l3build/README.md
2024/05/27 | 100428 | macros/latex-dev/required/l3kernel/l3seq.dtx
-2024/05/26 | 9170 | macros/latex/contrib/hvqrurl/doc/hvqrurl.tex
-2024/05/26 | 72868 | fonts/algolrevived/type1/AlgolRevived.pfb
-2024/05/26 | 68244 | fonts/algolrevived/type1/AlgolRevived-Medium.pfb
-2024/05/26 | 657668 | macros/latex/contrib/colortbl.zip
-2024/05/26 | 645 | macros/latex/contrib/hvqrurl/Changes
-2024/05/26 | 63282 | fonts/algolrevived/type1/AlgolRevived-MediumSlanted.pfb
-2024/05/26 | 6321121 | fonts/libertinust1math.zip
-2024/05/26 | 6010 | macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte.dtx
-2024/05/26 | 502 | macros/latex/contrib/rub-kunstgeschichte/README.md
-2024/05/26 | 49124 | macros/latex/contrib/colortbl/colortbl.dtx
-2024/05/26 | 42844 | fonts/algolrevived/opentype/AlgolRevived.otf
-2024/05/26 | 42740 | fonts/algolrevived/opentype/AlgolRevived-Medium.otf
-2024/05/26 | 42728 | fonts/algolrevived/opentype/AlgolRevived-MediumSlanted.otf
-2024/05/26 | 376 | macros/latex/contrib/colortbl/README.txt
-2024/05/26 | 3709 | fonts/algolrevived/README
-2024/05/26 | 36684 | macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte-example.pdf
-2024/05/26 | 351 | macros/latex/contrib/hvqrurl/README
-2024/05/26 | 346722 | macros/latex/contrib/colortbl/colortbl-DE.pdf
-2024/05/26 | 312925 | macros/latex/contrib/colortbl/colortbl.pdf
-2024/05/26 | 2794444 | systems/texlive/tlnet/archive/listings.doc.r71355.tar.xz
-2024/05/26 | 2767 | macros/latex/contrib/hvqrurl/latex/hvqrurl.sty
-2024/05/26 | 2750 | macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte.ins
-2024/05/26 | 272428 | systems/texlive/tlnet/archive/listings.source.r71355.tar.xz
-2024/05/26 | 262749 | macros/latex/contrib/rub-kunstgeschichte.zip
-2024/05/26 | 2529800 | systems/texlive/tlnet/archive/circuitikz.doc.r71354.tar.xz
-2024/05/26 | 23591 | macros/latex/contrib/colortbl/colortbl-DE.tex
-2024/05/26 | 232043 | macros/latex/contrib/rub-kunstgeschichte/rub-kunstgeschichte.pdf
-2024/05/26 | 180304 | systems/texlive/tlnet/archive/circuitikz.r71354.tar.xz
-2024/05/26 | 147464 | systems/texlive/tlnet/archive/listings.r71355.tar.xz
-2024/05/26 | 129 | macros/latex/contrib/colortbl/colortbl.ins
-2024/05/26 | 125042 | macros/latex/contrib/hvqrurl.zip
-2024/05/26 | 122767 | macros/latex/contrib/hvqrurl/doc/hvqrurl.pdf
diff --git a/biblio/ctan-bibdata/ctan.bib b/biblio/ctan-bibdata/ctan.bib
index 0bc26ad6b6..2a31e7cc3f 100644
--- a/biblio/ctan-bibdata/ctan.bib
+++ b/biblio/ctan-bibdata/ctan.bib
@@ -1,7 +1,7 @@
%% bib file of all CTAN packages
%% (C) Herbert Voß
%%
-%% created at 02-06-2024, 02:00:04
+%% created at 03-06-2024, 02:00:04
%%
%% This file is provided under the terms of the LPPL v1.3 or
@@ -479,8 +479,8 @@
title = {The \texttt{acmart} package},
subtitle = {Class for typesetting publications of ACM},
author = {Boris Veytsman},
- date = {2024-04-18},
- version = {2.07},
+ date = {2024-06-02},
+ version = {2.08},
license = {lppl1.3},
mirror = {https://mirror.ctan.org/macros/latex/contrib/acmart},
url = {https://ctan.org/pkg/acmart},
@@ -3251,8 +3251,8 @@
title = {The \texttt{array} package},
subtitle = {Extending the array and tabular environments},
author = {Frank Mittelbach and {The LaTeX Project Team}},
- date = {2023-11-01},
- version = {2.5g},
+ date = {2024-06-02},
+ version = {2.6c},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/required/tools},
url = {https://ctan.org/pkg/array},
@@ -3377,7 +3377,7 @@
title = {The \texttt{article} package},
subtitle = {Default class for composing an article},
author = {{The LaTeX Project Team}},
- date = {2024-01-15},
+ date = {2024-06-02},
version = {1.4n},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/base},
@@ -5194,8 +5194,8 @@
title = {The \texttt{babel} package},
subtitle = {Multilingual support for \LaTeX{}, LuaLaTeX, \XeLaTeX{}, and Plain \TeX{}},
author = {Javier Bezos López and Johannes L. Braams},
- date = {2024-05-18},
- version = {24.5},
+ date = {2024-06-02},
+ version = {24.6},
license = {lppl1.3},
mirror = {https://mirror.ctan.org/macros/latex/required/babel/base},
url = {https://ctan.org/pkg/babel},
@@ -9148,7 +9148,7 @@
title = {The \texttt{bm} package},
subtitle = {Access bold symbols in maths mode},
author = {David Carlisle and Frank Mittelbach and {The LaTeX Project Team}},
- date = {2023-11-01},
+ date = {2024-06-02},
version = {1.2f},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/required/tools},
@@ -9404,7 +9404,7 @@
title = {The \texttt{book} package},
subtitle = {A class for typesetting books},
author = {{The LaTeX Project Team}},
- date = {2024-01-15},
+ date = {2024-06-02},
version = {1.4n},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/base},
@@ -14185,7 +14185,7 @@
title = {The \texttt{color} package},
subtitle = {Colour control for \LaTeX{} documents},
author = {David Carlisle and {The LaTeX Project Team}},
- date = {2022-06-08},
+ date = {2024-06-02},
version = {1.3d},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/required/graphics},
@@ -22809,7 +22809,7 @@
title = {The \texttt{epsfig} package},
subtitle = {Include Encapsulated PostScript in \LaTeX{} documents},
author = {Sebastian Rahtz and David Carlisle and {The LaTeX Project Team}},
- date = {2021-06-01},
+ date = {2024-06-02},
version = {1.7b},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/required/graphics},
@@ -30395,8 +30395,8 @@
title = {The \texttt{graphics} package},
subtitle = {Standard \LaTeX{} graphics},
author = {David Carlisle and {The LaTeX Project Team}},
- date = {2022-06-08},
- version = {1.4e},
+ date = {2024-06-02},
+ version = {1.4g},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/required/graphics},
url = {https://ctan.org/pkg/graphics},
@@ -38050,7 +38050,7 @@
title = {The \texttt{latex-amsmath} package},
subtitle = {AMS mathematical facilities for \LaTeX{}},
author = {{The LaTeX Project Team}},
- date = {2023-11-01},
+ date = {2024-06-02},
version = {},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/required/amsmath},
@@ -38079,7 +38079,7 @@
title = {The \texttt{latex-base} package},
subtitle = {Base sources of \LaTeX{}},
author = {{The LaTeX Project Team} and Frank Mittelbach},
- date = {2024-06-01},
+ date = {2024-06-02},
version = {2024-06-01 PL0},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/base},
@@ -38169,8 +38169,8 @@
title = {The \texttt{cyrillic} package},
subtitle = {Support for Cyrillic fonts in \LaTeX{}},
author = {{The LaTeX Project Team}},
- date = {2022-06-16},
- version = {2022-06-01-PL1},
+ date = {2024-06-02},
+ version = {},
license = {lppl1.3},
mirror = {https://mirror.ctan.org/macros/latex/required/cyrillic},
url = {https://ctan.org/pkg/latex-cyrillic},
@@ -38202,8 +38202,8 @@
title = {The \texttt{latex-doc} package},
subtitle = {Documentation supplied as part of the \LaTeX{} distribution},
author = {{The LaTeX Project Team}},
- date = {2024-01-15},
- version = {2023-11-01 PL1},
+ date = {2024-06-02},
+ version = {},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/base},
url = {https://ctan.org/pkg/latex-doc},
@@ -38260,8 +38260,8 @@
title = {The \texttt{latex-firstaid} package},
subtitle = {First aid for external \LaTeX{} files and packages that need updating},
author = {{The LaTeX Project Team}},
- date = {2024-03-01},
- version = {1.1c},
+ date = {2024-06-02},
+ version = {1.1e},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/required/firstaid},
url = {https://ctan.org/pkg/latex-firstaid},
@@ -38319,7 +38319,7 @@
title = {The \texttt{latex-graphics} package},
subtitle = {The \LaTeX{} standard graphics bundle},
author = {{The LaTeX Project Team}},
- date = {2022-11-01},
+ date = {2024-06-02},
version = {},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/required/graphics},
@@ -38370,7 +38370,7 @@
title = {The \texttt{latex-lab} package},
subtitle = {LaTeX laboratory},
author = {{The LaTeX Project Team}},
- date = {2023-11-01},
+ date = {2024-06-02},
version = {},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/required/latex-lab},
@@ -38523,8 +38523,8 @@
title = {The \texttt{latex-tools} package},
subtitle = {The \LaTeX{} standard tools bundle},
author = {{The LaTeX Project Team}},
- date = {2023-11-21},
- version = {2023-11-01c},
+ date = {2024-06-02},
+ version = {},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/required/tools},
url = {https://ctan.org/pkg/latex-tools},
@@ -38605,8 +38605,8 @@
title = {The \texttt{latex} package},
subtitle = {A \TeX{} macro package that defines \LaTeX{}},
author = {{The LaTeX Project Team} and Leslie Lamport},
- date = {2024-01-15},
- version = {2023-11-01 PL1},
+ date = {2024-06-02},
+ version = {},
license = {lppl1.3c},
url = {https://ctan.org/pkg/latex},
}
@@ -41110,8 +41110,8 @@
title = {The \texttt{longtable} package},
subtitle = {Allow tables to flow over page boundaries},
author = {David Carlisle and David Kastrup and {The LaTeX Project Team}},
- date = {2023-11-01},
- version = {4.19},
+ date = {2024-06-02},
+ version = {4.20},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/required/tools},
url = {https://ctan.org/pkg/longtable},
@@ -47805,8 +47805,8 @@
title = {The \texttt{multicol} package},
subtitle = {Intermix single and multiple columns},
author = {Frank Mittelbach and {The LaTeX Project Team}},
- date = {2023-06-09},
- version = {1.9f},
+ date = {2024-06-02},
+ version = {1.9h},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/required/tools},
url = {https://ctan.org/pkg/multicol},
@@ -49337,8 +49337,8 @@
title = {The \texttt{nfssfont} package},
subtitle = {Typesetting font tables using \LaTeX{}’s NFSS notation},
author = {Frank Mittelbach and {The LaTeX Project Team}},
- date = {2024-01-15},
- version = {2.2e},
+ date = {2024-06-02},
+ version = {2.2f},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/base},
url = {https://ctan.org/pkg/nfssfont},
@@ -54969,10 +54969,10 @@
title = {The \texttt{pmdraw} package},
subtitle = {Draw elements of the diagram monoids},
author = {Matthias Fresacher},
- date = {2024-04-09},
- version = {1.3},
+ date = {2024-06-02},
+ version = {1.4},
license = {lppl1.3},
- mirror = {https://mirror.ctan.org/graphics/pmdraw},
+ mirror = {https://mirror.ctan.org/graphics/pgf/contrib/pmdraw},
url = {https://ctan.org/pkg/pmdraw},
}
@@ -57430,8 +57430,8 @@
title = {The \texttt{pst-optic} package},
subtitle = {Drawing optics diagrams},
author = {Manuel Luque and Herbert Voß},
- date = {2024-05-17},
- version = {1.03},
+ date = {2024-06-02},
+ version = {1.04},
license = {lppl},
mirror = {https://mirror.ctan.org/graphics/pstricks/contrib/pst-optic},
url = {https://ctan.org/pkg/pst-optic},
@@ -60033,7 +60033,7 @@
title = {The \texttt{report} package},
subtitle = {Typeset a multi-chapter report},
author = {{The LaTeX Project Team}},
- date = {2024-01-15},
+ date = {2024-06-02},
version = {1.4n},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/base},
@@ -63527,8 +63527,8 @@
title = {The \texttt{shortvrb} package},
subtitle = {Abbreviated verbatim commands},
author = {{The LaTeX Project Team}},
- date = {2024-01-15},
- version = {3.0m},
+ date = {2024-06-02},
+ version = {3.0p},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/base},
url = {https://ctan.org/pkg/shortvrb},
@@ -63636,8 +63636,8 @@
title = {The \texttt{showkeys} package},
subtitle = {Show label, ref, cite and bib keys},
author = {David Carlisle},
- date = {2023-11-01},
- version = {3.19},
+ date = {2024-06-02},
+ version = {3.21},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/required/tools},
url = {https://ctan.org/pkg/showkeys},
@@ -66269,7 +66269,7 @@
title = {The \texttt{structuredlog} package},
subtitle = {Report files opened and closed in the log, including nesting level},
author = {{The LaTeX Project Team}},
- date = {2024-02-11},
+ date = {2024-06-02},
version = {1.0o},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/base},
@@ -67595,8 +67595,8 @@
title = {The \texttt{tabularx} package},
subtitle = {Tabulars with adjustable-width columns},
author = {David Carlisle and {The LaTeX Project Team}},
- date = {2023-11-01},
- version = {2.11c},
+ date = {2024-06-02},
+ version = {2.12a},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/required/tools},
url = {https://ctan.org/pkg/tabularx},
@@ -73184,7 +73184,7 @@
title = {The \texttt{trig} package},
subtitle = {Simple trigonometric functions},
author = {David Carlisle and {The LaTeX Project Team}},
- date = {2021-11-12},
+ date = {2024-06-02},
version = {1.11},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/required/graphics},
@@ -76122,8 +76122,8 @@
title = {The \texttt{varioref} package},
subtitle = {Intelligent page references},
author = {Frank Mittelbach},
- date = {2023-06-09},
- version = {1.6f},
+ date = {2024-06-02},
+ version = {1.6g},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/required/tools},
url = {https://ctan.org/pkg/varioref},
@@ -76356,8 +76356,8 @@
title = {The \texttt{verbatim} package},
subtitle = {Reimplementation of and extensions to \LaTeX{} verbatim},
author = {Rainer Schöpf and {The LaTeX Project Team}},
- date = {2023-11-21},
- version = {1.5v},
+ date = {2024-06-02},
+ version = {1.5x},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/required/tools},
url = {https://ctan.org/pkg/verbatim},
@@ -79323,8 +79323,8 @@
title = {The \texttt{xr} package},
subtitle = {References to other \LaTeX{} documents},
author = {David Carlisle and Jean-Pierre Drucbert and {The LaTeX Project Team}},
- date = {2023-11-01},
- version = {5.06},
+ date = {2024-06-02},
+ version = {6.00},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/required/tools},
url = {https://ctan.org/pkg/xr},
diff --git a/graphics/pmdraw/README.md b/graphics/pgf/contrib/pmdraw/README.md
index dd9954a495..dfc3e2924d 100644
--- a/graphics/pmdraw/README.md
+++ b/graphics/pgf/contrib/pmdraw/README.md
@@ -1,12 +1,12 @@
pmdraw
======
-*README V1.3 2024-04-09*
+*README V1.4 2024-06-02*
<!--
*------------------------------*
-|0````````````````````````````8|
+|6````````````````````````````5|
|`````____````____`````````````|
|````|MFMF\ /MFMF|````````````|
|````|MF|MF\/MF|MF|````````````|
@@ -18,7 +18,7 @@ pmdraw
|``````````````|MF|````````````|
|``````````````|MF|````````````|
|``````````````|MF|````````````|
-|1````````````````````````````3|
+|4````````````````````````````1|
*------------------------------*
-->
diff --git a/graphics/pmdraw/examples/example-1.tex b/graphics/pgf/contrib/pmdraw/examples/example-1.tex
index 402c418a15..402c418a15 100644
--- a/graphics/pmdraw/examples/example-1.tex
+++ b/graphics/pgf/contrib/pmdraw/examples/example-1.tex
diff --git a/graphics/pmdraw/examples/example-10.tex b/graphics/pgf/contrib/pmdraw/examples/example-10.tex
index 01d1502f32..01d1502f32 100644
--- a/graphics/pmdraw/examples/example-10.tex
+++ b/graphics/pgf/contrib/pmdraw/examples/example-10.tex
diff --git a/graphics/pmdraw/examples/example-11.tex b/graphics/pgf/contrib/pmdraw/examples/example-11.tex
index 9729320f40..9729320f40 100644
--- a/graphics/pmdraw/examples/example-11.tex
+++ b/graphics/pgf/contrib/pmdraw/examples/example-11.tex
diff --git a/graphics/pmdraw/examples/example-12.tex b/graphics/pgf/contrib/pmdraw/examples/example-12.tex
index f21946849f..f21946849f 100644
--- a/graphics/pmdraw/examples/example-12.tex
+++ b/graphics/pgf/contrib/pmdraw/examples/example-12.tex
diff --git a/graphics/pmdraw/examples/example-13.tex b/graphics/pgf/contrib/pmdraw/examples/example-13.tex
index c3a189e202..c3a189e202 100644
--- a/graphics/pmdraw/examples/example-13.tex
+++ b/graphics/pgf/contrib/pmdraw/examples/example-13.tex
diff --git a/graphics/pmdraw/examples/example-14.tex b/graphics/pgf/contrib/pmdraw/examples/example-14.tex
index 0ad77f546d..0ad77f546d 100644
--- a/graphics/pmdraw/examples/example-14.tex
+++ b/graphics/pgf/contrib/pmdraw/examples/example-14.tex
diff --git a/graphics/pmdraw/examples/example-15.tex b/graphics/pgf/contrib/pmdraw/examples/example-15.tex
index 672965eb13..672965eb13 100644
--- a/graphics/pmdraw/examples/example-15.tex
+++ b/graphics/pgf/contrib/pmdraw/examples/example-15.tex
diff --git a/graphics/pmdraw/examples/example-16.tex b/graphics/pgf/contrib/pmdraw/examples/example-16.tex
index efacb4d246..efacb4d246 100644
--- a/graphics/pmdraw/examples/example-16.tex
+++ b/graphics/pgf/contrib/pmdraw/examples/example-16.tex
diff --git a/graphics/pmdraw/examples/example-17.tex b/graphics/pgf/contrib/pmdraw/examples/example-17.tex
index 97c6052f8a..97c6052f8a 100644
--- a/graphics/pmdraw/examples/example-17.tex
+++ b/graphics/pgf/contrib/pmdraw/examples/example-17.tex
diff --git a/graphics/pmdraw/examples/example-18.tex b/graphics/pgf/contrib/pmdraw/examples/example-18.tex
index 2d1014a1cb..2d1014a1cb 100644
--- a/graphics/pmdraw/examples/example-18.tex
+++ b/graphics/pgf/contrib/pmdraw/examples/example-18.tex
diff --git a/graphics/pmdraw/examples/example-19.tex b/graphics/pgf/contrib/pmdraw/examples/example-19.tex
index 32c24bcf23..32c24bcf23 100644
--- a/graphics/pmdraw/examples/example-19.tex
+++ b/graphics/pgf/contrib/pmdraw/examples/example-19.tex
diff --git a/graphics/pmdraw/examples/example-2.tex b/graphics/pgf/contrib/pmdraw/examples/example-2.tex
index c80de8e5a3..c80de8e5a3 100644
--- a/graphics/pmdraw/examples/example-2.tex
+++ b/graphics/pgf/contrib/pmdraw/examples/example-2.tex
diff --git a/graphics/pmdraw/examples/example-20.tex b/graphics/pgf/contrib/pmdraw/examples/example-20.tex
index 8d0bc25cb3..8d0bc25cb3 100644
--- a/graphics/pmdraw/examples/example-20.tex
+++ b/graphics/pgf/contrib/pmdraw/examples/example-20.tex
diff --git a/graphics/pmdraw/examples/example-21.tex b/graphics/pgf/contrib/pmdraw/examples/example-21.tex
index e4bd9556cc..e4bd9556cc 100644
--- a/graphics/pmdraw/examples/example-21.tex
+++ b/graphics/pgf/contrib/pmdraw/examples/example-21.tex
diff --git a/graphics/pmdraw/examples/example-22.tex b/graphics/pgf/contrib/pmdraw/examples/example-22.tex
index c7aa5c4cba..c7aa5c4cba 100644
--- a/graphics/pmdraw/examples/example-22.tex
+++ b/graphics/pgf/contrib/pmdraw/examples/example-22.tex
diff --git a/graphics/pmdraw/examples/example-23.tex b/graphics/pgf/contrib/pmdraw/examples/example-23.tex
index d2ae85c4e7..d2ae85c4e7 100644
--- a/graphics/pmdraw/examples/example-23.tex
+++ b/graphics/pgf/contrib/pmdraw/examples/example-23.tex
diff --git a/graphics/pmdraw/examples/example-24.tex b/graphics/pgf/contrib/pmdraw/examples/example-24.tex
index 7b93adc805..7b93adc805 100644
--- a/graphics/pmdraw/examples/example-24.tex
+++ b/graphics/pgf/contrib/pmdraw/examples/example-24.tex
diff --git a/graphics/pmdraw/examples/example-25.tex b/graphics/pgf/contrib/pmdraw/examples/example-25.tex
index bea76db2f3..bea76db2f3 100644
--- a/graphics/pmdraw/examples/example-25.tex
+++ b/graphics/pgf/contrib/pmdraw/examples/example-25.tex
diff --git a/graphics/pmdraw/examples/example-3.tex b/graphics/pgf/contrib/pmdraw/examples/example-3.tex
index 09a5256eac..09a5256eac 100644
--- a/graphics/pmdraw/examples/example-3.tex
+++ b/graphics/pgf/contrib/pmdraw/examples/example-3.tex
diff --git a/graphics/pmdraw/examples/example-4.tex b/graphics/pgf/contrib/pmdraw/examples/example-4.tex
index bbbf5bd819..bbbf5bd819 100644
--- a/graphics/pmdraw/examples/example-4.tex
+++ b/graphics/pgf/contrib/pmdraw/examples/example-4.tex
diff --git a/graphics/pmdraw/examples/example-5.tex b/graphics/pgf/contrib/pmdraw/examples/example-5.tex
index e7a9c63e96..e7a9c63e96 100644
--- a/graphics/pmdraw/examples/example-5.tex
+++ b/graphics/pgf/contrib/pmdraw/examples/example-5.tex
diff --git a/graphics/pmdraw/examples/example-6.tex b/graphics/pgf/contrib/pmdraw/examples/example-6.tex
index 18a47a794c..18a47a794c 100644
--- a/graphics/pmdraw/examples/example-6.tex
+++ b/graphics/pgf/contrib/pmdraw/examples/example-6.tex
diff --git a/graphics/pmdraw/examples/example-7.tex b/graphics/pgf/contrib/pmdraw/examples/example-7.tex
index 171bf113a4..171bf113a4 100644
--- a/graphics/pmdraw/examples/example-7.tex
+++ b/graphics/pgf/contrib/pmdraw/examples/example-7.tex
diff --git a/graphics/pmdraw/examples/example-8.tex b/graphics/pgf/contrib/pmdraw/examples/example-8.tex
index 6ed2f2cf5c..6ed2f2cf5c 100644
--- a/graphics/pmdraw/examples/example-8.tex
+++ b/graphics/pgf/contrib/pmdraw/examples/example-8.tex
diff --git a/graphics/pmdraw/examples/example-9.tex b/graphics/pgf/contrib/pmdraw/examples/example-9.tex
index 8e7d87023f..8e7d87023f 100644
--- a/graphics/pmdraw/examples/example-9.tex
+++ b/graphics/pgf/contrib/pmdraw/examples/example-9.tex
diff --git a/graphics/pmdraw/pmdraw.pdf b/graphics/pgf/contrib/pmdraw/pmdraw.pdf
index 4809713987..1cc4de9135 100644
--- a/graphics/pmdraw/pmdraw.pdf
+++ b/graphics/pgf/contrib/pmdraw/pmdraw.pdf
Binary files differ
diff --git a/graphics/pmdraw/pmdraw.sty b/graphics/pgf/contrib/pmdraw/pmdraw.sty
index 0cfa1f2709..36f506b51f 100644
--- a/graphics/pmdraw/pmdraw.sty
+++ b/graphics/pgf/contrib/pmdraw/pmdraw.sty
@@ -1,8 +1,8 @@
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{pmdraw}[2024-04-09 v1.3 pmdraw]
+\ProvidesPackage{pmdraw}[2024-06-02 v1.4 pmdraw]
% *------------------------------*
-% |2````````````````````````````3|
+% |7````````````````````````````4|
% |`````____````____`````````````|
% |````|MFMF\ /MFMF|````````````|
% |````|MF|MF\/MF|MF|````````````|
@@ -14,7 +14,7 @@
% |``````````````|MF|````````````|
% |``````````````|MF|````````````|
% |``````````````|MF|````````````|
-% |1````````````````````````````1|
+% |3````````````````````````````4|
% *------------------------------*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -42,8 +42,28 @@
\newcommand{\pmdraw@drawAedgesOptions}{}% Draw options for added edges in product diagram
\newcommand{\pmdraw@drawAedges}[2]{% Draws added edges in product diagram from #1 vertex to #2 vertex, assumes #1<#2
- \foreach \x in {#1,...,#2} {% For each vertex in range
- \draw[dotted,thick,apply style/.expand once=\pmdraw@drawAedgesOptions] (\x,0) -- (\x,-\pmdraw@diagSep);% Draw concatenation edge
+ \@ifclassloaded{beamer}{% If in beamer
+ \uncover<\pmdraw@edgesAddedUncover>{% Uncovers added edges
+ \foreach \x in {#1,...,#2} {% For each vertex in range
+ \ifnum\value{pmdraw@ifEdgesAdded}=0% If drawing added edges
+ \draw[dotted,thick,apply style/.expand once=\pmdraw@drawAedgesOptions] (\x,0) -- (\x,-\pmdraw@diagSep);% Draw concatenation edge
+ \else% If hiding top vertices
+ \phantom{%
+ \draw[dotted,thick,apply style/.expand once=\pmdraw@drawAedgesOptions] (\x,0) -- (\x,-\pmdraw@diagSep);% Draw concatenation edge
+ }%
+ \fi%
+ }%
+ }%
+ }{% If not in beamer
+ \foreach \x in {#1,...,#2} {% For each vertex in range
+ \ifnum\value{pmdraw@ifEdgesAdded}=0% If drawing added edges
+ \draw[dotted,thick,apply style/.expand once=\pmdraw@drawAedgesOptions] (\x,0) -- (\x,-\pmdraw@diagSep);% Draw concatenation edge
+ \else% If hiding top vertices
+ \phantom{%
+ \draw[dotted,thick,apply style/.expand once=\pmdraw@drawAedgesOptions] (\x,0) -- (\x,-\pmdraw@diagSep);% Draw concatenation edge
+ }%
+ \fi%
+ }%
}%
\pmdraw@AedgesLoop% Restart for loop
}
@@ -111,6 +131,44 @@
}
\let\pmdraw@drawLedgesDraw\pmdraw@drawLedgesDrawDefault% Draws lower non-transversal edge from #1 vertex to #2 vertex, assumes #1<#2
+\newcommand{\pmdraw@drawNoLabelBa}{-1}% 1st vertex to skip label in bottom row
+\newcommand{\pmdraw@drawNoLabelBb}{-1}% 2nd vertex to skip label in bottom row
+\newcommand{\pmdraw@drawNoLabelBc}{-1}% 3rd vertex to skip label in bottom row
+\newcommand{\pmdraw@drawNoLabelBd}{-1}% 4th vertex to skip label in bottom row
+\newcommand{\pmdraw@drawNoLabelBe}{-1}% 5th vertex to skip label in bottom row
+\newcommand{\pmdraw@drawNoLabelBf}{-1}% 6th vertex to skip label in bottom row
+\newcommand{\pmdraw@drawNoLabelBg}{-1}% 7th vertex to skip label in bottom row
+\newcommand{\pmdraw@drawNoLabelBh}{-1}% 8th vertex to skip label in bottom row
+\newcommand{\pmdraw@drawNoLabelBi}{-1}% 9th vertex to skip label in bottom row
+\newcommand{\pmdraw@drawNoLabelTa}{-1}% 1st vertex to skip label in top row
+\newcommand{\pmdraw@drawNoLabelTb}{-1}% 2nd vertex to skip label in top row
+\newcommand{\pmdraw@drawNoLabelTc}{-1}% 3rd vertex to skip label in top row
+\newcommand{\pmdraw@drawNoLabelTd}{-1}% 4th vertex to skip label in top row
+\newcommand{\pmdraw@drawNoLabelTe}{-1}% 5th vertex to skip label in top row
+\newcommand{\pmdraw@drawNoLabelTf}{-1}% 6th vertex to skip label in top row
+\newcommand{\pmdraw@drawNoLabelTg}{-1}% 7th vertex to skip label in top row
+\newcommand{\pmdraw@drawNoLabelTh}{-1}% 8th vertex to skip label in top row
+\newcommand{\pmdraw@drawNoLabelTi}{-1}% 9th vertex to skip label in top row
+
+\newcommand{\pmdraw@drawNoVertexBa}{-1}% 1st vertex to skip in bottom row
+\newcommand{\pmdraw@drawNoVertexBb}{-1}% 2nd vertex to skip in bottom row
+\newcommand{\pmdraw@drawNoVertexBc}{-1}% 3rd vertex to skip in bottom row
+\newcommand{\pmdraw@drawNoVertexBd}{-1}% 4th vertex to skip in bottom row
+\newcommand{\pmdraw@drawNoVertexBe}{-1}% 5th vertex to skip in bottom row
+\newcommand{\pmdraw@drawNoVertexBf}{-1}% 6th vertex to skip in bottom row
+\newcommand{\pmdraw@drawNoVertexBg}{-1}% 7th vertex to skip in bottom row
+\newcommand{\pmdraw@drawNoVertexBh}{-1}% 8th vertex to skip in bottom row
+\newcommand{\pmdraw@drawNoVertexBi}{-1}% 9th vertex to skip in bottom row
+\newcommand{\pmdraw@drawNoVertexTa}{-1}% 1st vertex to skip in top row
+\newcommand{\pmdraw@drawNoVertexTb}{-1}% 2nd vertex to skip in top row
+\newcommand{\pmdraw@drawNoVertexTc}{-1}% 3rd vertex to skip in top row
+\newcommand{\pmdraw@drawNoVertexTd}{-1}% 4th vertex to skip in top row
+\newcommand{\pmdraw@drawNoVertexTe}{-1}% 5th vertex to skip in top row
+\newcommand{\pmdraw@drawNoVertexTf}{-1}% 6th vertex to skip in top row
+\newcommand{\pmdraw@drawNoVertexTg}{-1}% 7th vertex to skip in top row
+\newcommand{\pmdraw@drawNoVertexTh}{-1}% 8th vertex to skip in top row
+\newcommand{\pmdraw@drawNoVertexTi}{-1}% 9th vertex to skip in top row
+
\newcommand{\pmdraw@drawTedgesDrawOptions}{}% Draw options for transversal edges
\newcommand{\pmdraw@drawTedgesDrawDefault}[2]{% Draws transversal edge from #1 vertex in top row to #2 vertex in bottom row - DEFAULT
\ifnum\pmdraw@ifTedgeHorizontal=0% If drawing a straight line edge
@@ -145,6 +203,10 @@
\fill[apply style/.expand once=\pmdraw@drawVertexOptions] (#1,#2) circle (.17);%
}
+\newcommand{\pmdraw@edgeUncover}{1-}% Sets the uncover options of edge
+\newcommand{\pmdraw@edgesAddedUncover}{1-}% Sets the uncover options of added edges
+\newcommand{\pmdraw@edgesUncover}{1-}% Sets the uncover options of edges
+
\newcommand{\pmdraw@hookAfterBrick}{}% Hook after drawing a brick
\newcommand{\pmdraw@hookAfterDiagram}{}% Hook after drawing a diagram
\newcommand{\pmdraw@hookBeforeBrick}{}% Hook before drawing a brick
@@ -165,6 +227,7 @@
\renewcommand{\pmdraw@diagSep}{1}% Resets vertical space between product diagrams
\renewcommand{\pmdraw@drawAedgesOptions}{}% Resets draw options for added edges in product diagram
\let\pmdraw@drawDots\pmdraw@drawDotsDefault% Resets drawing of dots between bricks
+ \renewcommand{\pmdraw@edgesAddedUncover}{1-}% Resets the uncover options of added edges
\renewcommand{\pmdraw@hookAfterDiagram}{}% Clears hook after drawing a diagram
\renewcommand{\pmdraw@hookBeforeDiagram}{}% Clears hook before drawing a diagram
\renewcommand{\pmdraw@ifGrid}{0}% Hides grid
@@ -177,12 +240,16 @@
\setcounter{pmdraw@bottomShift}{0}% Resets shift on right end of bottom row of brick
\setcounter{pmdraw@topShift}{0}% Resets shift on right end of top row of brick
\setcounter{pmdraw@ifDiagWDotsFirst}{1}% Reset if drawing first brick of diagram
+ \setcounter{pmdraw@ifEdgesAdded}{0}% Resets boolean if hiding added edges
}
\newcommand{\pmdraw@rowSep}{2}% Vertical separation between rows of vertices in brick
\newcommand{\pmdraw@tikz}{}% Tikz options
+\newcommand{\pmdraw@verticesBottomUncover}{1-}% Sets the uncover options of bottom vertices
+\newcommand{\pmdraw@verticesTopUncover}{1-}% Sets the uncover options of top vertices
+
\newcommand{\pmdraw@vertexSep}{0}% Vertical separation between bottom row of top diagram and top row of bottom diagram in product diagram not for added edges
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -210,6 +277,18 @@
\newcounter{pmdraw@ifDiagWDotsFirst}% In drawing with dots, boolean if drawing first brick of diagram
\setcounter{pmdraw@ifDiagWDotsFirst}{1}
+\newcounter{pmdraw@ifEdge}% Boolean if hiding edge
+\setcounter{pmdraw@ifEdge}{0}
+\newcounter{pmdraw@ifEdgesAdded}% Boolean if hiding added edges
+\setcounter{pmdraw@ifEdgesAdded}{0}
+\newcounter{pmdraw@ifEdges}% Boolean if hiding edges
+\setcounter{pmdraw@ifEdges}{0}
+
+\newcounter{pmdraw@ifVerticesBottom}% Boolean if hiding bottom row of vertices
+\setcounter{pmdraw@ifVerticesBottom}{0}
+\newcounter{pmdraw@ifVerticesTop}% Boolean if hiding top row of vertices
+\setcounter{pmdraw@ifVerticesTop}{0}
+
\newcounter{pmdraw@labelStartB}% Starting value of labels of vertices in bottom row
\setcounter{pmdraw@labelStartB}{1}
\newcounter{pmdraw@labelStartT}% Starting value of labels of vertices in top row
@@ -257,6 +336,61 @@
\define@key{pmdraw@brick}{vertices}{% Sets the draw options of vertices
\renewcommand{\pmdraw@drawVertexOptions}{#1}%
}
+\define@key{pmdraw@brick}{no vertex bottom 1}{% Sets 1st vertex to skip in bottom row
+ \renewcommand{\pmdraw@drawNoVertexBa}{#1}%
+}
+\define@key{pmdraw@brick}{no vertex bottom 2}{% Sets 2nd vertex to skip in bottom row
+ \renewcommand{\pmdraw@drawNoVertexBb}{#1}%
+}
+\define@key{pmdraw@brick}{no vertex bottom 3}{% Sets 3rd vertex to skip in bottom row
+ \renewcommand{\pmdraw@drawNoVertexBc}{#1}%
+}
+\define@key{pmdraw@brick}{no vertex bottom 4}{% Sets 4th vertex to skip in bottom row
+ \renewcommand{\pmdraw@drawNoVertexBd}{#1}%
+}
+\define@key{pmdraw@brick}{no vertex bottom 5}{% Sets 5th vertex to skip in bottom row
+ \renewcommand{\pmdraw@drawNoVertexBe}{#1}%
+}
+\define@key{pmdraw@brick}{no vertex bottom 6}{% Sets 6th vertex to skip in bottom row
+ \renewcommand{\pmdraw@drawNoVertexBf}{#1}%
+}
+\define@key{pmdraw@brick}{no vertex bottom 7}{% Sets 7th vertex to skip in bottom row
+ \renewcommand{\pmdraw@drawNoVertexBg}{#1}%
+}
+\define@key{pmdraw@brick}{no vertex bottom 8}{% Sets 8th vertex to skip in bottom row
+ \renewcommand{\pmdraw@drawNoVertexBh}{#1}%
+}
+\define@key{pmdraw@brick}{no vertex bottom 9}{% Sets 9th vertex to skip in bottom row
+ \renewcommand{\pmdraw@drawNoVertexBi}{#1}%
+}
+\define@key{pmdraw@brick}{no vertex top 1}{% Sets 1st vertex to skip in top row
+ \renewcommand{\pmdraw@drawNoVertexTa}{#1}%
+}
+\define@key{pmdraw@brick}{no vertex top 2}{% Sets 2nd vertex to skip in top row
+ \renewcommand{\pmdraw@drawNoVertexTb}{#1}%
+}
+\define@key{pmdraw@brick}{no vertex top 3}{% Sets 3rd vertex to skip in top row
+ \renewcommand{\pmdraw@drawNoVertexTc}{#1}%
+}
+\define@key{pmdraw@brick}{no vertex top 4}{% Sets 4th vertex to skip in top row
+ \renewcommand{\pmdraw@drawNoVertexTd}{#1}%
+}
+\define@key{pmdraw@brick}{no vertex top 5}{% Sets 5th vertex to skip in top row
+ \renewcommand{\pmdraw@drawNoVertexTe}{#1}%
+}
+\define@key{pmdraw@brick}{no vertex top 6}{% Sets 6th vertex to skip in top row
+ \renewcommand{\pmdraw@drawNoVertexTf}{#1}%
+}
+\define@key{pmdraw@brick}{no vertex top 7}{% Sets 7th vertex to skip in top row
+ \renewcommand{\pmdraw@drawNoVertexTg}{#1}%
+}
+\define@key{pmdraw@brick}{no vertex top 8}{% Sets 8th vertex to skip in top row
+ \renewcommand{\pmdraw@drawNoVertexTh}{#1}%
+}
+\define@key{pmdraw@brick}{no vertex top 9}{% Sets 9th vertex to skip in top row
+ \renewcommand{\pmdraw@drawNoVertexTi}{#1}%
+}
+
\define@key{pmdraw@brick}{vertices options}{% Sets the draw command of vertices
\renewcommand{\pmdraw@drawVertex}[2]{#1}%
}
@@ -283,6 +417,61 @@
\setcounter{pmdraw@labelStartT}{#1}%
}
+\define@key{pmdraw@brick}{no label bottom 1}{% Sets 1st label to skip in bottom row
+ \renewcommand{\pmdraw@drawNoLabelBa}{#1}%
+}
+\define@key{pmdraw@brick}{no label bottom 2}{% Sets 2nd label to skip in bottom row
+ \renewcommand{\pmdraw@drawNoLabelBb}{#1}%
+}
+\define@key{pmdraw@brick}{no label bottom 3}{% Sets 3rd label to skip in bottom row
+ \renewcommand{\pmdraw@drawNoLabelBc}{#1}%
+}
+\define@key{pmdraw@brick}{no label bottom 4}{% Sets 4th label to skip in bottom row
+ \renewcommand{\pmdraw@drawNoLabelBd}{#1}%
+}
+\define@key{pmdraw@brick}{no label bottom 5}{% Sets 5th label to skip in bottom row
+ \renewcommand{\pmdraw@drawNoLabelBe}{#1}%
+}
+\define@key{pmdraw@brick}{no label bottom 6}{% Sets 6th label to skip in bottom row
+ \renewcommand{\pmdraw@drawNoLabelBf}{#1}%
+}
+\define@key{pmdraw@brick}{no label bottom 7}{% Sets 7th label to skip in bottom row
+ \renewcommand{\pmdraw@drawNoLabelBg}{#1}%
+}
+\define@key{pmdraw@brick}{no label bottom 8}{% Sets 8th label to skip in bottom row
+ \renewcommand{\pmdraw@drawNoLabelBh}{#1}%
+}
+\define@key{pmdraw@brick}{no label bottom 9}{% Sets 9th label to skip in bottom row
+ \renewcommand{\pmdraw@drawNoLabelBi}{#1}%
+}
+\define@key{pmdraw@brick}{no label top 1}{% Sets 1st label to skip in top row
+ \renewcommand{\pmdraw@drawNoLabelTa}{#1}%
+}
+\define@key{pmdraw@brick}{no label top 2}{% Sets 2nd label to skip in top row
+ \renewcommand{\pmdraw@drawNoLabelTb}{#1}%
+}
+\define@key{pmdraw@brick}{no label top 3}{% Sets 3rd label to skip in top row
+ \renewcommand{\pmdraw@drawNoLabelTc}{#1}%
+}
+\define@key{pmdraw@brick}{no label top 4}{% Sets 4th label to skip in top row
+ \renewcommand{\pmdraw@drawNoLabelTd}{#1}%
+}
+\define@key{pmdraw@brick}{no label top 5}{% Sets 5th label to skip in top row
+ \renewcommand{\pmdraw@drawNoLabelTe}{#1}%
+}
+\define@key{pmdraw@brick}{no label top 6}{% Sets 6th label to skip in top row
+ \renewcommand{\pmdraw@drawNoLabelTf}{#1}%
+}
+\define@key{pmdraw@brick}{no label top 7}{% Sets 7th label to skip in top row
+ \renewcommand{\pmdraw@drawNoLabelTg}{#1}%
+}
+\define@key{pmdraw@brick}{no label top 8}{% Sets 8th label to skip in top row
+ \renewcommand{\pmdraw@drawNoLabelTh}{#1}%
+}
+\define@key{pmdraw@brick}{no label top 9}{% Sets 9th label to skip in top row
+ \renewcommand{\pmdraw@drawNoLabelTi}{#1}%
+}
+
\define@key{pmdraw@brick}{labels bottom draw}{% Sets the draw options for labels of bottom vertices
\renewcommand{\pmdraw@drawLabelBDrawOptions}{#1}%
}
@@ -299,7 +488,7 @@
\define@key{pmdraw@brick}{labels bottom options}{% Sets the draw command of labels of bottom vertices
\renewcommand{\pmdraw@drawLabelBottom}[3]{#1}%
}
-\define@key{pmdraw@brick}{labels top options}{% Sets the draw command of labels of bottom vertices
+\define@key{pmdraw@brick}{labels top options}{% Sets the draw command of labels of top vertices
\renewcommand{\pmdraw@drawLabelTop}[3]{#1}%
}
@@ -314,6 +503,20 @@
\renewcommand{\pmdraw@drawDotsNodeOptions}{#1}%
}
+\define@key{pmdraw@brick}{vertices bottom phantom}[]{% Does not draw bottom vertices
+ \setcounter{pmdraw@ifVerticesBottom}{1}%
+}
+\define@key{pmdraw@brick}{vertices top phantom}[]{% Does not draw top vertices
+ \setcounter{pmdraw@ifVerticesTop}{1}%
+}
+
+\define@key{pmdraw@brick}{vertices bottom uncover}{% Sets the uncover options of bottom vertices
+ \renewcommand{\pmdraw@verticesBottomUncover}{#1}%
+}
+\define@key{pmdraw@brick}{vertices top uncover}{% Sets the uncover options of top vertices
+ \renewcommand{\pmdraw@verticesTopUncover}{#1}%
+}
+
\define@key{pmdraw@brick}{levels}[1]{% Sets number of horizontal levels for non-transversal edges and evenly spaces them
\tikzmath{%
\pmdraw{edgeSepU} = (0.5*\pmdraw@rowSep)/(#1 + 1);% Calculates vertical separation between each edge
@@ -374,6 +577,14 @@
\renewcommand{\pmdraw@ifTedgesFirst}{1}%
}
+\define@key{pmdraw@brick}{edges phantom}[]{% Does not draw edges
+ \setcounter{pmdraw@ifEdges}{1}%
+}
+
+\define@key{pmdraw@brick}{edges uncover}{% Sets the uncover options of edges
+ \renewcommand{\pmdraw@edgesUncover}{#1}%
+}
+
\define@key{pmdraw@brick}{brace}{% Draws a brace
\setkeys{pmdraw@brace}{#1}% Processes details of brace
\pmdraw@drawBrace{\value{pmdraw@braceL}}{\value{pmdraw@braceR}}{\pmdraw@braceLabel}% Draws brace
@@ -414,6 +625,12 @@
\renewcommand{\pmdraw@drawUedgesDraw}[2]{#1}%
\renewcommand{\pmdraw@drawLedgesDraw}[2]{#1}%
}
+\define@key{pmdraw@NTedges}{phantom}[]{% Does not draw edge
+ \setcounter{pmdraw@ifEdge}{1}%
+}
+\define@key{pmdraw@NTedges}{uncover}{% Sets the uncover options of edge
+ \renewcommand{\pmdraw@edgeUncover}{#1}%
+}
\define@key{pmdraw@Tedges}{height}{% Sets manual height of transversal edge
\tikzmath{%
\pmdraw{Tlevel} = #1;%
@@ -426,6 +643,12 @@
\define@key{pmdraw@Tedges}{options}{% Sets the draw command of transversal edge
\renewcommand{\pmdraw@drawTedgesDraw}[2]{#1}%
}
+\define@key{pmdraw@Tedges}{phantom}[]{% Does not draw edge
+ \setcounter{pmdraw@ifEdge}{1}%
+}
+\define@key{pmdraw@Tedges}{uncover}{% Sets the uncover options of edge
+ \renewcommand{\pmdraw@edgeUncover}{#1}%
+}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
@@ -485,6 +708,12 @@
\define@key{pmdraw@diagram}{edges added}{% Sets the draw options for drawing of added edges in product diagram
\renewcommand{\pmdraw@drawAedgesOptions}{#1}%
}
+\define@key{pmdraw@diagram}{edges added phantom}[]{% Does not draw added edges
+ \setcounter{pmdraw@ifEdgesAdded}{1}%
+}
+\define@key{pmdraw@diagram}{edges added uncover}{% Sets the uncover options of added edges
+ \renewcommand{\pmdraw@edgesAddedUncover}{#1}%
+}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
@@ -684,11 +913,47 @@
\fi%
\fi%
\foreach \x in {1,...,\value{pmdraw@degreeB}} {% For each vertex in row
- \pmdraw@drawVertex{\x + \value{pmdraw@blankB}}{0}% Draw lower vertex
- \ifnum\pmdraw@ifLabelsB=1% If drawing labels
- \pmdraw@drawLabelBottom{\x + \value{pmdraw@blankT}}{0}{\thepmdraw@labelStartB}% Draw label
- \stepcounter{pmdraw@labelStartB}% Update label counter
+ \ifnum\pmdraw@drawNoVertexBa=\x\else% If not skipping vertex
+ \ifnum\pmdraw@drawNoVertexBb=\x\else% If not skipping vertex
+ \ifnum\pmdraw@drawNoVertexBc=\x\else% If not skipping vertex
+ \ifnum\pmdraw@drawNoVertexBd=\x\else% If not skipping vertex
+ \ifnum\pmdraw@drawNoVertexBe=\x\else% If not skipping vertex
+ \ifnum\pmdraw@drawNoVertexBf=\x\else% If not skipping vertex
+ \ifnum\pmdraw@drawNoVertexBg=\x\else% If not skipping vertex
+ \ifnum\pmdraw@drawNoVertexBh=\x\else% If not skipping vertex
+ \ifnum\pmdraw@drawNoVertexBi=\x\else% If not skipping vertex
+ \pmdraw@drawVertex{\x + \value{pmdraw@blankB}}{0}% Draw lower vertex
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
\fi%
+ \ifnum\pmdraw@drawNoLabelBa=\x\else% If not skipping label
+ \ifnum\pmdraw@drawNoLabelBb=\x\else% If not skipping label
+ \ifnum\pmdraw@drawNoLabelBc=\x\else% If not skipping label
+ \ifnum\pmdraw@drawNoLabelBd=\x\else% If not skipping label
+ \ifnum\pmdraw@drawNoLabelBe=\x\else% If not skipping label
+ \ifnum\pmdraw@drawNoLabelBf=\x\else% If not skipping label
+ \ifnum\pmdraw@drawNoLabelBg=\x\else% If not skipping label
+ \ifnum\pmdraw@drawNoLabelBh=\x\else% If not skipping label
+ \ifnum\pmdraw@drawNoLabelBi=\x\else% If not skipping label
+ \ifnum\pmdraw@ifLabelsB=1% If drawing labels
+ \pmdraw@drawLabelBottom{\x + \value{pmdraw@blankT}}{0}{\thepmdraw@labelStartB}% Draw label
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \stepcounter{pmdraw@labelStartB}% Update label counter
}%
}
\newcommand{\pmdraw@drawBrickInit}[1]{% Initialises the drawing of a brick
@@ -708,53 +973,269 @@
\setkeys{pmdraw@brick}{levels,#1}% Processes options and set default levels
\pmdraw@hookBeforeBrick% Hook before drawing brick
\ifnum\pmdraw@ifEdgesFirst=0% If drawing vertices first
- \pmdraw@drawTopVertices% Draw base diagram
- \pmdraw@drawBottomVertices% Draw base diagram
- \ifnum\pmdraw@ifTedgesFirst=0% If drawing non-transversals first
- \pmdraw@UedgesLoop% Draws upper edges
- #2%
- \pmdEmpty%
- \pmdraw@LedgesLoop% Draws lower edges
- #3%
- \pmdEmpty%
- \pmdraw@TedgesLoop% Draws transversals
- #4%
- \pmdEmpty%
- \else% If drawing transversal first
- \pmdraw@TedgesLoop% Draws transversals
- #4%
- \pmdEmpty%
- \pmdraw@UedgesLoop% Draws upper edges
- #2%
- \pmdEmpty%
- \pmdraw@LedgesLoop% Draws lower edges
- #3%
- \pmdEmpty%
- \fi%
+ \@ifclassloaded{beamer}{% If in beamer
+ \uncover<\pmdraw@verticesTopUncover>{% Uncovers top vertices
+ \ifnum\value{pmdraw@ifVerticesTop}=0% If drawing top vertices
+ \pmdraw@drawTopVertices% Draw base diagram
+ \else% If hiding top vertices
+ \phantom{%
+ \pmdraw@drawTopVertices% Draw base diagram
+ }%
+ \fi%
+ }%
+ \uncover<\pmdraw@verticesBottomUncover>{% Uncovers bottom vertices
+ \ifnum\value{pmdraw@ifVerticesBottom}=0% If drawing bottom vertices
+ \pmdraw@drawBottomVertices% Draw base diagram
+ \else% If hiding top vertices
+ \phantom{%
+ \pmdraw@drawBottomVertices% Draw base diagram
+ }%
+ \fi%
+ }%
+ \uncover<\pmdraw@edgesUncover>{% Uncovers edges
+ \ifnum\value{pmdraw@ifEdges}=0% If drawing edges
+ \ifnum\pmdraw@ifTedgesFirst=0% If drawing non-transversals first
+ \pmdraw@UedgesLoop% Draws upper edges
+ #2%
+ \pmdEmpty%
+ \pmdraw@LedgesLoop% Draws lower edges
+ #3%
+ \pmdEmpty%
+ \pmdraw@TedgesLoop% Draws transversals
+ #4%
+ \pmdEmpty%
+ \else% If drawing transversal first
+ \pmdraw@TedgesLoop% Draws transversals
+ #4%
+ \pmdEmpty%
+ \pmdraw@UedgesLoop% Draws upper edges
+ #2%
+ \pmdEmpty%
+ \pmdraw@LedgesLoop% Draws lower edges
+ #3%
+ \pmdEmpty%
+ \fi%
+ \else% If hiding edges
+ \phantom{%
+ \ifnum\pmdraw@ifTedgesFirst=0% If drawing non-transversals first
+ \pmdraw@UedgesLoop% Draws upper edges
+ #2%
+ \pmdEmpty%
+ \pmdraw@LedgesLoop% Draws lower edges
+ #3%
+ \pmdEmpty%
+ \pmdraw@TedgesLoop% Draws transversals
+ #4%
+ \pmdEmpty%
+ \else% If drawing transversal first
+ \pmdraw@TedgesLoop% Draws transversals
+ #4%
+ \pmdEmpty%
+ \pmdraw@UedgesLoop% Draws upper edges
+ #2%
+ \pmdEmpty%
+ \pmdraw@LedgesLoop% Draws lower edges
+ #3%
+ \pmdEmpty%
+ \fi%
+ }%
+ \fi%
+ }%
+ }{% If not in beamer
+ \ifnum\value{pmdraw@ifVerticesTop}=0% If drawing top vertices
+ \pmdraw@drawTopVertices% Draw base diagram
+ \else% If hiding top vertices
+ \phantom{%
+ \pmdraw@drawTopVertices% Draw base diagram
+ }%
+ \fi%
+ \ifnum\value{pmdraw@ifVerticesBottom}=0% If drawing bottom vertices
+ \pmdraw@drawBottomVertices% Draw base diagram
+ \else% If hiding top vertices
+ \phantom{%
+ \pmdraw@drawBottomVertices% Draw base diagram
+ }%
+ \fi%
+ \ifnum\value{pmdraw@ifEdges}=0% If drawing edges
+ \ifnum\pmdraw@ifTedgesFirst=0% If drawing non-transversals first
+ \pmdraw@UedgesLoop% Draws upper edges
+ #2%
+ \pmdEmpty%
+ \pmdraw@LedgesLoop% Draws lower edges
+ #3%
+ \pmdEmpty%
+ \pmdraw@TedgesLoop% Draws transversals
+ #4%
+ \pmdEmpty%
+ \else% If drawing transversal first
+ \pmdraw@TedgesLoop% Draws transversals
+ #4%
+ \pmdEmpty%
+ \pmdraw@UedgesLoop% Draws upper edges
+ #2%
+ \pmdEmpty%
+ \pmdraw@LedgesLoop% Draws lower edges
+ #3%
+ \pmdEmpty%
+ \fi%
+ \else% If hiding edges
+ \phantom{%
+ \ifnum\pmdraw@ifTedgesFirst=0% If drawing non-transversals first
+ \pmdraw@UedgesLoop% Draws upper edges
+ #2%
+ \pmdEmpty%
+ \pmdraw@LedgesLoop% Draws lower edges
+ #3%
+ \pmdEmpty%
+ \pmdraw@TedgesLoop% Draws transversals
+ #4%
+ \pmdEmpty%
+ \else% If drawing transversal first
+ \pmdraw@TedgesLoop% Draws transversals
+ #4%
+ \pmdEmpty%
+ \pmdraw@UedgesLoop% Draws upper edges
+ #2%
+ \pmdEmpty%
+ \pmdraw@LedgesLoop% Draws lower edges
+ #3%
+ \pmdEmpty%
+ \fi%
+ }%
+ \fi%
+ }%
\else% If drawing edges first
- \ifnum\pmdraw@ifTedgesFirst=0% If drawing non-transversals first
- \pmdraw@UedgesLoop% Draws upper edges
- #2%
- \pmdEmpty%
- \pmdraw@LedgesLoop% Draws lower edges
- #3%
- \pmdEmpty%
- \pmdraw@TedgesLoop% Draws transversals
- #4%
- \pmdEmpty%
- \else% If drawing transversal first
- \pmdraw@TedgesLoop% Draws transversals
- #4%
- \pmdEmpty%
- \pmdraw@UedgesLoop% Draws upper edges
- #2%
- \pmdEmpty%
- \pmdraw@LedgesLoop% Draws lower edges
- #3%
- \pmdEmpty%
- \fi%
- \pmdraw@drawTopVertices% Draw base diagram
- \pmdraw@drawBottomVertices% Draw base diagram
+ \@ifclassloaded{beamer}{% If in beamer
+ \uncover<\pmdraw@edgesUncover>{% Uncovers edges
+ \ifnum\value{pmdraw@ifEdges}=0% If drawing edges
+ \ifnum\pmdraw@ifTedgesFirst=0% If drawing non-transversals first
+ \pmdraw@UedgesLoop% Draws upper edges
+ #2%
+ \pmdEmpty%
+ \pmdraw@LedgesLoop% Draws lower edges
+ #3%
+ \pmdEmpty%
+ \pmdraw@TedgesLoop% Draws transversals
+ #4%
+ \pmdEmpty%
+ \else% If drawing transversal first
+ \pmdraw@TedgesLoop% Draws transversals
+ #4%
+ \pmdEmpty%
+ \pmdraw@UedgesLoop% Draws upper edges
+ #2%
+ \pmdEmpty%
+ \pmdraw@LedgesLoop% Draws lower edges
+ #3%
+ \pmdEmpty%
+ \fi%
+ \else% If hiding edges
+ \phantom{%
+ \ifnum\pmdraw@ifTedgesFirst=0% If drawing non-transversals first
+ \pmdraw@UedgesLoop% Draws upper edges
+ #2%
+ \pmdEmpty%
+ \pmdraw@LedgesLoop% Draws lower edges
+ #3%
+ \pmdEmpty%
+ \pmdraw@TedgesLoop% Draws transversals
+ #4%
+ \pmdEmpty%
+ \else% If drawing transversal first
+ \pmdraw@TedgesLoop% Draws transversals
+ #4%
+ \pmdEmpty%
+ \pmdraw@UedgesLoop% Draws upper edges
+ #2%
+ \pmdEmpty%
+ \pmdraw@LedgesLoop% Draws lower edges
+ #3%
+ \pmdEmpty%
+ \fi%
+ }%
+ \fi%
+ }%
+ \uncover<\pmdraw@verticesTopUncover>{% Uncovers top vertices
+ \ifnum\value{pmdraw@ifVerticesTop}=0% If drawing top vertices
+ \pmdraw@drawTopVertices% Draw base diagram
+ \else% If hiding top vertices
+ \phantom{%
+ \pmdraw@drawTopVertices% Draw base diagram
+ }%
+ \fi%
+ }%
+ \uncover<\pmdraw@verticesBottomUncover>{% Uncovers bottm vertices
+ \ifnum\value{pmdraw@ifVerticesBottom}=0% If drawing bottom vertices
+ \pmdraw@drawBottomVertices% Draw base diagram
+ \else% If hiding top vertices
+ \phantom{%
+ \pmdraw@drawBottomVertices% Draw base diagram
+ }%
+ \fi%
+ }%
+ }{% If not in beamer
+ \ifnum\value{pmdraw@ifEdges}=0% If drawing edges
+ \ifnum\pmdraw@ifTedgesFirst=0% If drawing non-transversals first
+ \pmdraw@UedgesLoop% Draws upper edges
+ #2%
+ \pmdEmpty%
+ \pmdraw@LedgesLoop% Draws lower edges
+ #3%
+ \pmdEmpty%
+ \pmdraw@TedgesLoop% Draws transversals
+ #4%
+ \pmdEmpty%
+ \else% If drawing transversal first
+ \pmdraw@TedgesLoop% Draws transversals
+ #4%
+ \pmdEmpty%
+ \pmdraw@UedgesLoop% Draws upper edges
+ #2%
+ \pmdEmpty%
+ \pmdraw@LedgesLoop% Draws lower edges
+ #3%
+ \pmdEmpty%
+ \fi%
+ \else% If hiding edges
+ \phantom{%
+ \ifnum\pmdraw@ifTedgesFirst=0% If drawing non-transversals first
+ \pmdraw@UedgesLoop% Draws upper edges
+ #2%
+ \pmdEmpty%
+ \pmdraw@LedgesLoop% Draws lower edges
+ #3%
+ \pmdEmpty%
+ \pmdraw@TedgesLoop% Draws transversals
+ #4%
+ \pmdEmpty%
+ \else% If drawing transversal first
+ \pmdraw@TedgesLoop% Draws transversals
+ #4%
+ \pmdEmpty%
+ \pmdraw@UedgesLoop% Draws upper edges
+ #2%
+ \pmdEmpty%
+ \pmdraw@LedgesLoop% Draws lower edges
+ #3%
+ \pmdEmpty%
+ \fi%
+ }%
+ \fi%
+ \ifnum\value{pmdraw@ifVerticesTop}=0% If drawing top vertices
+ \pmdraw@drawTopVertices% Draw base diagram
+ \else% If hiding top vertices
+ \phantom{%
+ \pmdraw@drawTopVertices% Draw base diagram
+ }%
+ \fi%
+ \ifnum\value{pmdraw@ifVerticesBottom}=0% If drawing bottom vertices
+ \pmdraw@drawBottomVertices% Draw base diagram
+ \else% If hiding top vertices
+ \phantom{%
+ \pmdraw@drawBottomVertices% Draw base diagram
+ }%
+ \fi%
+ }%
\fi%
\pmdraw@hookAfterBrick% Hook after drawing brick
% Resets user keys and other flags to default values
@@ -767,6 +1248,42 @@
\renewcommand{\pmdraw@drawLabelTDrawOptions}{}%
\renewcommand{\pmdraw@drawLabelTNodeOptions}{}%
\renewcommand{\pmdraw@drawLedgesDrawOptions}{}%
+ \renewcommand{\pmdraw@drawNoLabelBa}{-1}%
+ \renewcommand{\pmdraw@drawNoLabelBb}{-1}%
+ \renewcommand{\pmdraw@drawNoLabelBc}{-1}%
+ \renewcommand{\pmdraw@drawNoLabelBd}{-1}%
+ \renewcommand{\pmdraw@drawNoLabelBe}{-1}%
+ \renewcommand{\pmdraw@drawNoLabelBf}{-1}%
+ \renewcommand{\pmdraw@drawNoLabelBg}{-1}%
+ \renewcommand{\pmdraw@drawNoLabelBh}{-1}%
+ \renewcommand{\pmdraw@drawNoLabelBi}{-1}%
+ \renewcommand{\pmdraw@drawNoLabelTa}{-1}%
+ \renewcommand{\pmdraw@drawNoLabelTb}{-1}%
+ \renewcommand{\pmdraw@drawNoLabelTc}{-1}%
+ \renewcommand{\pmdraw@drawNoLabelTd}{-1}%
+ \renewcommand{\pmdraw@drawNoLabelTe}{-1}%
+ \renewcommand{\pmdraw@drawNoLabelTf}{-1}%
+ \renewcommand{\pmdraw@drawNoLabelTg}{-1}%
+ \renewcommand{\pmdraw@drawNoLabelTh}{-1}%
+ \renewcommand{\pmdraw@drawNoLabelTi}{-1}%
+ \renewcommand{\pmdraw@drawNoVertexBa}{-1}%
+ \renewcommand{\pmdraw@drawNoVertexBb}{-1}%
+ \renewcommand{\pmdraw@drawNoVertexBc}{-1}%
+ \renewcommand{\pmdraw@drawNoVertexBd}{-1}%
+ \renewcommand{\pmdraw@drawNoVertexBe}{-1}%
+ \renewcommand{\pmdraw@drawNoVertexBf}{-1}%
+ \renewcommand{\pmdraw@drawNoVertexBg}{-1}%
+ \renewcommand{\pmdraw@drawNoVertexBh}{-1}%
+ \renewcommand{\pmdraw@drawNoVertexBi}{-1}%
+ \renewcommand{\pmdraw@drawNoVertexTa}{-1}%
+ \renewcommand{\pmdraw@drawNoVertexTb}{-1}%
+ \renewcommand{\pmdraw@drawNoVertexTc}{-1}%
+ \renewcommand{\pmdraw@drawNoVertexTd}{-1}%
+ \renewcommand{\pmdraw@drawNoVertexTe}{-1}%
+ \renewcommand{\pmdraw@drawNoVertexTf}{-1}%
+ \renewcommand{\pmdraw@drawNoVertexTg}{-1}%
+ \renewcommand{\pmdraw@drawNoVertexTh}{-1}%
+ \renewcommand{\pmdraw@drawNoVertexTi}{-1}%
\renewcommand{\pmdraw@drawTedgesDrawOptions}{}%
\renewcommand{\pmdraw@drawUedgesDrawOptions}{}%
\renewcommand{\pmdraw@drawVertexOptions}{}%
@@ -776,6 +1293,9 @@
\renewcommand{\pmdraw@ifLabelsB}{0}%
\renewcommand{\pmdraw@ifLabelsT}{0}%
\renewcommand{\pmdraw@ifTedgesFirst}{0}%
+ \renewcommand{\pmdraw@edgesUncover}{1-}%
+ \renewcommand{\pmdraw@verticesBottomUncover}{1-}%
+ \renewcommand{\pmdraw@verticesTopUncover}{1-}%
\let\pmdraw@drawLabelBottom\pmdraw@drawLabelBottomDefault%
\let\pmdraw@drawLabelTop\pmdraw@drawLabelTopDefault%
\let\pmdraw@drawLabelBottom\pmdraw@drawLabelBottomDefault%
@@ -783,6 +1303,9 @@
\setcounter{pmdraw@blankT}{0}%
\setcounter{pmdraw@labelStartB}{1}%
\setcounter{pmdraw@labelStartT}{1}%
+ \setcounter{pmdraw@ifEdges}{0}%
+ \setcounter{pmdraw@ifVerticesBottom}{0}%
+ \setcounter{pmdraw@ifVerticesTop}{0}%
}
\newcommand{\pmdraw@drawLedges}[3][]{% Draws lower non-transversal edge, #1 options, #2 L vertex, #3 R vertex
\setcounter{pmdraw@NTlevel}{1}% Store default level of edge
@@ -796,28 +1319,105 @@
\pmdraw{edgeHeight}=\pmdraw@NTedgesHeight;% Set manual height
}%
\fi%
- \pmdraw@drawLedgesDraw{#2}{#3}% Draw edge
+ \@ifclassloaded{beamer}{% If in beamer
+ \uncover<\pmdraw@edgeUncover>{% Uncovers edge
+ \ifnum\value{pmdraw@ifEdge}=0% If drawing edge
+ \pmdraw@drawLedgesDraw{#2}{#3}% Draw edge
+ \else% If hiding edge
+ \phantom{%
+ \pmdraw@drawLedgesDraw{#2}{#3}% Draw edge
+ }%
+ \fi%
+ }%
+ }{% If not in beamer
+ \ifnum\value{pmdraw@ifEdge}=0% If drawing edge
+ \pmdraw@drawLedgesDraw{#2}{#3}% Draw edge
+ \else% If hiding edge
+ \phantom{%
+ \pmdraw@drawLedgesDraw{#2}{#3}% Draw edge
+ }%
+ \fi%
+ }%
% Resets user keys and other flags to default values
\renewcommand{\pmdraw@NTedgesHeight}{-1000}%
+ \renewcommand{\pmdraw@edgeUncover}{1-}%
+ \setcounter{pmdraw@ifEdge}{0}%
\let\pmdraw@drawLedgesDraw\pmdraw@drawLedgesDrawDefault%
\pmdraw@LedgesLoop% Restart for loop
}
\newcommand{\pmdraw@drawTedges}[3][]{% Draws transversal edge, #1 options, #2 upper vertex, #3 lower vertex
\setkeys{pmdraw@Tedges}{#1}% Processes options
- \pmdraw@drawTedgesDraw{#2}{#3}% Draw edge
- \let\pmdraw@drawTedgesDraw\pmdraw@drawTedgesDrawDefault% Resets user keys and other flags to default values
+ \@ifclassloaded{beamer}{% If in beamer
+ \uncover<\pmdraw@edgeUncover>{% Uncovers edge
+ \ifnum\value{pmdraw@ifEdge}=0% If drawing edge
+ \pmdraw@drawTedgesDraw{#2}{#3}% Draw edge
+ \else% If hiding edge
+ \phantom{%
+ \pmdraw@drawTedgesDraw{#2}{#3}% Draw edge
+ }%
+ \fi%
+ }%
+ }{% If not in beamer
+ \ifnum\value{pmdraw@ifEdge}=0% If drawing edge
+ \pmdraw@drawTedgesDraw{#2}{#3}% Draw edge
+ \else% If hiding edge
+ \phantom{%
+ \pmdraw@drawTedgesDraw{#2}{#3}% Draw edge
+ }%
+ \fi%
+ }%
+ % Resets user keys and other flags to default values
+ \renewcommand{\pmdraw@edgeUncover}{1-}%
+ \setcounter{pmdraw@ifEdge}{0}%
+ \let\pmdraw@drawTedgesDraw\pmdraw@drawTedgesDrawDefault%
\pmdraw@TedgesLoop% Restart for loop
}
\newcommand{\pmdraw@drawTopVertices}{% Draws top row of vertices
- \setcounter{pmdraw@topTotal}{\value{pmdraw@blankT}}% Store size of top row of vertices
- \addtocounter{pmdraw@topTotal}{\value{pmdraw@degreeT}}% Store size of top row of vertices
- \foreach \x in {1,...,\value{pmdraw@degreeT}} {% For each vertex in row
- \pmdraw@drawVertex{\x + \value{pmdraw@blankT}}{\pmdraw@rowSep}% Draw upper vertex
- \ifnum\pmdraw@ifLabelsT=1% If drawing labels
- \pmdraw@drawLabelTop{\x + \value{pmdraw@blankT}}{\pmdraw@rowSep}{\thepmdraw@labelStartT}% Draw label
- \stepcounter{pmdraw@labelStartT}% Update label counter
- \fi%
- }%
+ \setcounter{pmdraw@topTotal}{\value{pmdraw@blankT}}% Store size of top row of vertices
+ \addtocounter{pmdraw@topTotal}{\value{pmdraw@degreeT}}% Store size of top row of vertices
+ \foreach \x in {1,...,\value{pmdraw@degreeT}} {% For each vertex in row
+ \ifnum\pmdraw@drawNoVertexTa=\x\else% If not skipping vertex
+ \ifnum\pmdraw@drawNoVertexTb=\x\else% If not skipping vertex
+ \ifnum\pmdraw@drawNoVertexTc=\x\else% If not skipping vertex
+ \ifnum\pmdraw@drawNoVertexTd=\x\else% If not skipping vertex
+ \ifnum\pmdraw@drawNoVertexTe=\x\else% If not skipping vertex
+ \ifnum\pmdraw@drawNoVertexTf=\x\else% If not skipping vertex
+ \ifnum\pmdraw@drawNoVertexTg=\x\else% If not skipping vertex
+ \ifnum\pmdraw@drawNoVertexTh=\x\else% If not skipping vertex
+ \ifnum\pmdraw@drawNoVertexTi=\x\else% If not skipping vertex
+ \pmdraw@drawVertex{\x + \value{pmdraw@blankT}}{\pmdraw@rowSep}% Draw upper vertex
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \ifnum\pmdraw@drawNoLabelTa=\x\else% If not skipping label
+ \ifnum\pmdraw@drawNoLabelTb=\x\else% If not skipping label
+ \ifnum\pmdraw@drawNoLabelTc=\x\else% If not skipping label
+ \ifnum\pmdraw@drawNoLabelTd=\x\else% If not skipping label
+ \ifnum\pmdraw@drawNoLabelTe=\x\else% If not skipping label
+ \ifnum\pmdraw@drawNoLabelTf=\x\else% If not skipping label
+ \ifnum\pmdraw@drawNoLabelTg=\x\else% If not skipping label
+ \ifnum\pmdraw@drawNoLabelTh=\x\else% If not skipping label
+ \ifnum\pmdraw@drawNoLabelTi=\x\else% If not skipping label
+ \ifnum\pmdraw@ifLabelsT=1% If drawing labels
+ \pmdraw@drawLabelTop{\x + \value{pmdraw@blankT}}{\pmdraw@rowSep}{\thepmdraw@labelStartT}% Draw label
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+ \stepcounter{pmdraw@labelStartT}% Update label counter
+ }%
}
\newcommand{\pmdraw@drawUedges}[3][]{% Draws upper non-transversal edge, #1 options, #2 L vertex, #3 R vertex
\setcounter{pmdraw@NTlevel}{1}% Store default level of edge
@@ -831,9 +1431,29 @@
\pmdraw{edgeHeight}=\pmdraw@rowSep-\pmdraw@NTedgesHeight;% Set manual height
}%
\fi%
- \pmdraw@drawUedgesDraw{#2}{#3}% Draw edge
+ \@ifclassloaded{beamer}{% If in beamer
+ \uncover<\pmdraw@edgeUncover>{% Uncovers edge
+ \ifnum\value{pmdraw@ifEdge}=0% If drawing edge
+ \pmdraw@drawUedgesDraw{#2}{#3}% Draw edge
+ \else% If hiding edge
+ \phantom{%
+ \pmdraw@drawUedgesDraw{#2}{#3}% Draw edge
+ }%
+ \fi%
+ }%
+ }{% If not in beamer
+ \ifnum\value{pmdraw@ifEdge}=0% If drawing edge
+ \pmdraw@drawUedgesDraw{#2}{#3}% Draw edge
+ \else% If hiding edge
+ \phantom{%
+ \pmdraw@drawUedgesDraw{#2}{#3}% Draw edge
+ }%
+ \fi%
+ }%
% Resets user keys and other flags to default values
\renewcommand{\pmdraw@NTedgesHeight}{-1000}%
+ \renewcommand{\pmdraw@edgeUncover}{1-}%
+ \setcounter{pmdraw@ifEdge}{0}%
\let\pmdraw@drawLedgesDraw\pmdraw@drawLedgesDrawDefault%
\let\pmdraw@drawUedgesDraw\pmdraw@drawUedgesDrawDefault%
\pmdraw@UedgesLoop% Restart for loop
diff --git a/graphics/pmdraw/pmdraw.tex b/graphics/pgf/contrib/pmdraw/pmdraw.tex
index bba50fdd59..b4111bcff2 100644
--- a/graphics/pmdraw/pmdraw.tex
+++ b/graphics/pgf/contrib/pmdraw/pmdraw.tex
@@ -1,7 +1,7 @@
\documentclass{ltxdoc}
% *------------------------------*
-% |7````````````````````````````6|
+% |6````````````````````````````2|
% |`````____````____`````````````|
% |````|MFMF\ /MFMF|````````````|
% |````|MF|MF\/MF|MF|````````````|
@@ -13,7 +13,7 @@
% |``````````````|MF|````````````|
% |``````````````|MF|````````````|
% |``````````````|MF|````````````|
-% |8````````````````````````````4|
+% |3````````````````````````````0|
% *------------------------------*
\usepackage{pmdraw}
@@ -26,7 +26,7 @@
\hypersetup{colorlinks, linkcolor=blue, urlcolor=blue}
\title{The \textsf{pmdraw} package\thanks{This document
- corresponds to \textsf{pmdraw}~v1.3, 2024-04-09.}}
+ corresponds to \textsf{pmdraw}~v1.4, 2024-06-02.}}
\author{Matthias Fresacher \\ \texttt{matthias.ypg37@slmail.me}}
\maketitle
@@ -773,6 +773,63 @@ passes through options to the \verb`\draw` command of vertices. The default is n
\end{minipage}%
\end{center}
+\DescribeMacro{no vertex bottom 1}
+\DescribeMacro{ \vdots}
+\DescribeMacro{no vertex bottom 9}
+\DescribeMacro{no vertex top 1}
+\DescribeMacro{ \vdots}
+\DescribeMacro{no vertex top 9}
+specifies a vertex that is not drawn. Any of the nine available keys can be used in any order. It can be used to draw single vertices that are different to the others. If more than nine vertices need to be excluded, simply draw multiple bricks next to each other. The default is no argument.
+\begin{center}
+ \begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
+ \begin{minipage}[c]{0.4\linewidth}
+\begin{verbatim}
+\pmdBrick[ % Options
+ degree=5,
+ no vertex top 1=2,
+ no vertex top 2=3,
+ no vertex bottom 1=4,
+ decorate after={
+ \fill[red] (4,0) circle (.1);
+ }
+]{ % Upper non-transversal edges
+ {1}{2}
+ {2}{5}
+}{ % Lower non-transversal edges
+ {1}{2}
+ {3}{4}
+}{ % Transversal edges
+ {1}{1}
+ {3}{4}
+}
+\end{verbatim}
+ \end{minipage}
+ \hfill
+ \begin{minipage}[c]{0.4\linewidth}
+ \end{minipage}
+ \end{minipage}%
+\end{center}
+\begin{center}
+\pmdBrick[ % Options
+ degree=5,
+ no vertex top 1=2,
+ no vertex top 2=3,
+ no vertex bottom 1=4,
+ decorate after={
+ \fill[red] (4,0) circle (.1);
+ }
+]{ % Upper non-transversal edges
+ {1}{2}
+ {2}{5}
+}{ % Lower non-transversal edges
+ {1}{2}
+ {3}{4}
+}{ % Transversal edges
+ {1}{1}
+ {3}{4}
+}
+\end{center}
+
\DescribeMacro{vertices options}
allows for the redefinition of the command that draws the vertices. It has two arguments, the \( x \) and \( y \)-position of the vertex. The default is
\begin{verbatim}
@@ -907,6 +964,65 @@ sets the starting value of the labels for the vertices. The default is one.
\end{minipage}%
\end{center}
+\DescribeMacro{no labels bottom 1}
+\DescribeMacro{ \vdots}
+\DescribeMacro{no labels bottom 9}
+\DescribeMacro{no labels top 1}
+\DescribeMacro{ \vdots}
+\DescribeMacro{no labels top 9}
+specifies a vertex for which no label is drawn. Any of the nine available keys can be used in any order. It can be used to insert single unique labels that are different to the others. If more than nine labels need to be excluded, simply draw multiple bricks next to each other. The default is no argument.
+\begin{center}
+ \begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
+ \begin{minipage}[c]{0.4\linewidth}
+\begin{verbatim}
+\pmdBrick[ % Options
+ degree=5,
+ labels,
+ no label top 1=2,
+ no label top 2=3,
+ no label bottom 1=4,
+ decorate after={
+ \draw (3,2) node[above=6pt,red] {\(x\)};
+ }
+]{ % Upper non-transversal edges
+ {1}{2}
+ {2}{5}
+}{ % Lower non-transversal edges
+ {1}{2}
+ {3}{4}
+}{ % Transversal edges
+ {1}{1}
+ {3}{4}
+}
+\end{verbatim}
+ \end{minipage}
+ \hfill
+ \begin{minipage}[c]{0.4\linewidth}
+ \end{minipage}
+ \end{minipage}%
+\end{center}
+\begin{center}
+\pmdBrick[ % Options
+ degree=5,
+ labels,
+ no label top 1=2,
+ no label top 2=3,
+ no label bottom 1=4,
+ decorate after={
+ \draw (3,2) node[above=6pt,red] {\(x\)};
+ }
+]{ % Upper non-transversal edges
+ {1}{2}
+ {2}{5}
+}{ % Lower non-transversal edges
+ {1}{2}
+ {3}{4}
+}{ % Transversal edges
+ {1}{1}
+ {3}{4}
+}
+\end{center}
+
\DescribeMacro{labels top draw}\DescribeMacro{labels top node}\DescribeMacro{labels bottom draw}\DescribeMacro{labels bottom node}
passes through options to the \verb`\draw` and \verb`node` command of the labels of vertices. The default is no argument.
\begin{center}
@@ -1164,6 +1280,89 @@ passes through options to the \verb`\draw` and \verb`node` command of the dots.
}
\end{center}
+\DescribeMacro{vertices top phantom}\DescribeMacro{vertices bottom phantom}
+These flags allow for all of the top or bottom vertices to be hidden using the \texttt{phantom} command. Simply wraps the vertex drawing macros with a \texttt{phantom} command. This hiding will also apply to the labels of that row (top or bottom) of vertices. To only hide a selected number of vertices, use seperate bricks. The default is false.
+\begin{center}
+ \begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
+ \begin{minipage}[c]{0.4\linewidth}
+\begin{verbatim}
+\pmdBrick[ % Options
+ degree=5,
+ vertices top phantom,
+]{ % Upper non-transversal edges
+ {1}{2}
+ {2}{5}
+}{ % Lower non-transversal edges
+ {1}{2}
+ {3}{4}
+}{ % Transversal edges
+ {1}{1}
+ {3}{4}
+}
+\end{verbatim}
+ \end{minipage}
+ \hfill
+ \begin{minipage}[c]{0.4\linewidth}
+\pmdBrick[ % Options
+ degree=5,
+ vertices top phantom
+]{ % Upper non-transversal edges
+ {1}{2}
+ {2}{5}
+}{ % Lower non-transversal edges
+ {1}{2}
+ {3}{4}
+}{ % Transversal edges
+ {1}{1}
+ {3}{4}
+}
+ \end{minipage}
+ \end{minipage}%
+\end{center}
+
+\DescribeMacro{vertices top uncover}\DescribeMacro{vertices bottom uncover}
+allows for all of the top or bottom vertices to be uncovered in a \texttt{beamer} presentation using the command \verb`\uncover<n->{text}`. Simply passes the slide uncover information \verb`<n->` to the embedded \texttt{uncover} command within the vertex drawing macros. This uncover will also apply to the labels of that row (top or bottom) of vertices. To only uncover a selected number of vertices, use seperate bricks. The default is~\texttt{1-}.
+\begin{center}
+ \begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
+ \begin{minipage}[c]{0.4\linewidth}
+\begin{verbatim}
+\pmdBrick[ % Options
+ degree=5,
+ vertices top uncover={2,4-7,9-},
+ vertices bottom uncover={3-}
+]{ % Upper non-transversal edges
+ {1}{2}
+ {2}{5}
+}{ % Lower non-transversal edges
+ {1}{2}
+ {3}{4}
+}{ % Transversal edges
+ {1}{1}
+ {3}{4}
+}
+\end{verbatim}
+ \end{minipage}
+ \hfill
+ \begin{minipage}[c]{0.4\linewidth}
+\pmdBrick[ % Options
+ degree=5,
+ vertices top uncover={2,4-7,9-},
+ vertices bottom uncover={3-}
+]{ % Upper non-transversal edges
+ {1}{2}
+ {2}{5}
+}{ % Lower non-transversal edges
+ {1}{2}
+ {3}{4}
+}{ % Transversal edges
+ {1}{1}
+ {3}{4}
+}
+ \end{minipage}
+ \end{minipage}%
+\end{center}
+
+
\subsubsection{Edge options}
These options should be read in conjunction with Section~\ref{sec: edge/options}.
@@ -1472,6 +1671,86 @@ flag ensures transversal edges are drawn before non-transversal edges. The defau
\end{minipage}%
\end{center}
+\DescribeMacro{edges phantom}
+This flag allows for all edges to be hidden using the \texttt{phantom} command. Simply wraps the edge drawing macros with a \texttt{phantom} command. The default is false.
+\begin{center}
+ \begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
+ \begin{minipage}[c]{0.4\linewidth}
+\begin{verbatim}
+\pmdBrick[ % Options
+ degree=5,
+ edges phantom
+]{ % Upper non-transversal edges
+ {1}{2}
+ {2}{5}
+}{ % Lower non-transversal edges
+ {1}{2}
+ {3}{4}
+}{ % Transversal edges
+ {1}{1}
+ {3}{4}
+}
+\end{verbatim}
+ \end{minipage}
+ \hfill
+ \begin{minipage}[c]{0.4\linewidth}
+\pmdBrick[ % Options
+ degree=5,
+ edges phantom
+]{ % Upper non-transversal edges
+ {1}{2}
+ {2}{5}
+}{ % Lower non-transversal edges
+ {1}{2}
+ {3}{4}
+}{ % Transversal edges
+ {1}{1}
+ {3}{4}
+}
+ \end{minipage}
+ \end{minipage}%
+\end{center}
+
+\DescribeMacro{edges uncover}
+allows for all edges to be uncovered in a \texttt{beamer} presentation using the command \verb`\uncover<n->{text}`. Simply passes the slide uncover information \verb`<n->` to the embedded \texttt{uncover} command within the edge drawing macros. The default is~\texttt{1-}.
+\begin{center}
+ \begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
+ \begin{minipage}[c]{0.4\linewidth}
+\begin{verbatim}
+\pmdBrick[ % Options
+ degree=5,
+ edges uncover={2,4-7,9-}
+]{ % Upper non-transversal edges
+ {1}{2}
+ {2}{5}
+}{ % Lower non-transversal edges
+ {1}{2}
+ {3}{4}
+}{ % Transversal edges
+ {1}{1}
+ {3}{4}
+}
+\end{verbatim}
+ \end{minipage}
+ \hfill
+ \begin{minipage}[c]{0.4\linewidth}
+\pmdBrick[ % Options
+ degree=5,
+ edges uncover={2,4-7,9-}
+]{ % Upper non-transversal edges
+ {1}{2}
+ {2}{5}
+}{ % Lower non-transversal edges
+ {1}{2}
+ {3}{4}
+}{ % Transversal edges
+ {1}{1}
+ {3}{4}
+}
+ \end{minipage}
+ \end{minipage}%
+\end{center}
+
\subsubsection{Brace}
\DescribeMacro{brace}
@@ -1893,16 +2172,33 @@ passes through options to the \verb`\draw` command of the edge. The default is n
\DescribeMacro{options}
allows for the redefinition of the command that draws the non-transversal edge. It has two arguments, the start and end \( x \)-position of the edge. The default for an upper non-transversal is
\begin{verbatim}
- \draw[apply style/.expand once=\pmdraw@drawUedgesDrawOptions,apply style/.expand once=\pmdraw@drawEdgeDrawOptions] (#1,\pmdraw@rowSep) arc (180:270:\pmdraw{edgeHeight});% Draw left arch
- \draw[apply style/.expand once=\pmdraw@drawUedgesDrawOptions,apply style/.expand once=\pmdraw@drawEdgeDrawOptions] (#1+\pmdraw{edgeHeight},\pmdraw@rowSep-\pmdraw{edgeHeight}) -- (#2-\pmdraw{edgeHeight},\pmdraw@rowSep-\pmdraw{edgeHeight});% Draw straight line
- \draw[apply style/.expand once=\pmdraw@drawUedgesDrawOptions,apply style/.expand once=\pmdraw@drawEdgeDrawOptions] (#2-\pmdraw{edgeHeight},\pmdraw@rowSep-\pmdraw{edgeHeight}) arc (270:360:\pmdraw{edgeHeight});% Draw right arc
+ \draw[apply style/.expand once=\pmdraw@drawUedgesDrawOptions,
+ apply style/.expand once=\pmdraw@drawEdgeDrawOptions]
+ (#1,\pmdraw@rowSep) arc (180:270:\pmdraw{edgeHeight});% Draw left arch
+ \draw[apply style/.expand once=\pmdraw@drawUedgesDrawOptions,
+ apply style/.expand once=\pmdraw@drawEdgeDrawOptions]
+ (#1+\pmdraw{edgeHeight},\pmdraw@rowSep-\pmdraw{edgeHeight})
+ -- (#2-\pmdraw{edgeHeight},\pmdraw@rowSep-\pmdraw{edgeHeight});
+ % Draw straight line
+ \draw[apply style/.expand once=\pmdraw@drawUedgesDrawOptions,
+ apply style/.expand once=\pmdraw@drawEdgeDrawOptions]
+ (#2-\pmdraw{edgeHeight},\pmdraw@rowSep-\pmdraw{edgeHeight})
+ arc (270:360:\pmdraw{edgeHeight});% Draw right arc
\renewcommand{\pmdraw@drawEdgeDrawOptions}{}% Reset draw options for edge
\end{verbatim}
and for a lower non-transversal
\begin{verbatim}
- \draw[apply style/.expand once=\pmdraw@drawLedgesDrawOptions,apply style/.expand once=\pmdraw@drawEdgeDrawOptions] (#1,0) arc (180:90:\pmdraw{edgeHeight});% Draw left arch
- \draw[apply style/.expand once=\pmdraw@drawLedgesDrawOptions,apply style/.expand once=\pmdraw@drawEdgeDrawOptions] (#1+\pmdraw{edgeHeight},\pmdraw{edgeHeight}) -- (#2-\pmdraw{edgeHeight},\pmdraw{edgeHeight});% Draw straight line
- \draw[apply style/.expand once=\pmdraw@drawLedgesDrawOptions,apply style/.expand once=\pmdraw@drawEdgeDrawOptions] (#2-\pmdraw{edgeHeight},\pmdraw{edgeHeight}) arc (90:0:\pmdraw{edgeHeight});% Draw right arc
+ \draw[apply style/.expand once=\pmdraw@drawLedgesDrawOptions,
+ apply style/.expand once=\pmdraw@drawEdgeDrawOptions]
+ (#1,0) arc (180:90:\pmdraw{edgeHeight});% Draw left arch
+ \draw[apply style/.expand once=\pmdraw@drawLedgesDrawOptions,
+ apply style/.expand once=\pmdraw@drawEdgeDrawOptions]
+ (#1+\pmdraw{edgeHeight},\pmdraw{edgeHeight})
+ -- (#2-\pmdraw{edgeHeight},\pmdraw{edgeHeight});% Draw straight line
+ \draw[apply style/.expand once=\pmdraw@drawLedgesDrawOptions,
+ apply style/.expand once=\pmdraw@drawEdgeDrawOptions]
+ (#2-\pmdraw{edgeHeight},\pmdraw{edgeHeight})
+ arc (90:0:\pmdraw{edgeHeight});% Draw right arc
\renewcommand{\pmdraw@drawEdgeDrawOptions}{}% Reset draw options for edge
\end{verbatim}
An example use is
@@ -1948,6 +2244,82 @@ An example use is
}
\end{center}
+\DescribeMacro{phantom}
+This flag allows for the edge to be hidden using the \texttt{phantom} command. Simply wraps the edge drawing macros with a \texttt{phantom} command. The default is false.
+\begin{center}
+ \begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
+ \begin{minipage}[c]{0.4\linewidth}
+\begin{verbatim}
+\pmdBrick[ % Options
+ degree=5
+]{ % Upper non-transversal edges
+ [phantom]{1}{2}
+ {2}{5}
+}{ % Lower non-transversal edges
+ [phantom]{1}{2}
+ {3}{4}
+}{ % Transversal edges
+ {1}{1}
+ {3}{4}
+}
+\end{verbatim}
+ \end{minipage}
+ \hfill
+ \begin{minipage}[c]{0.4\linewidth}
+\pmdBrick[ % Options
+ degree=5
+]{ % Upper non-transversal edges
+ [phantom]{1}{2}
+ {2}{5}
+}{ % Lower non-transversal edges
+ [phantom]{1}{2}
+ {3}{4}
+}{ % Transversal edges
+ {1}{1}
+ {3}{4}
+}
+ \end{minipage}
+ \end{minipage}%
+\end{center}
+
+\DescribeMacro{uncover}
+allows for that edge to be uncovered in a \texttt{beamer} presentation using the command \verb`\uncover<n->{text}`. Simply passes the slide uncover information \verb`<n->` to the embedded \texttt{uncover} command within the edge drawing macros. This uncover is nested inside the \texttt{edges uncover} and hence the limitations of nested uncovers are present here. For example, an individual edge will not uncover until the \texttt{edges uncover} has been uncovered. In such instances only use individual uncovers for each edge. The default is~\texttt{1-}.
+\begin{center}
+ \begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
+ \begin{minipage}[c]{0.4\linewidth}
+\begin{verbatim}
+\pmdBrick[ % Options
+ degree=5
+]{ % Upper non-transversal edges
+ [uncover={2,4-7,9-}]{1}{2}
+ {2}{5}
+}{ % Lower non-transversal edges
+ [uncover={3-}]{1}{2}
+ {3}{4}
+}{ % Transversal edges
+ {1}{1}
+ {3}{4}
+}
+\end{verbatim}
+ \end{minipage}
+ \hfill
+ \begin{minipage}[c]{0.4\linewidth}
+\pmdBrick[ % Options
+ degree=5
+]{ % Upper non-transversal edges
+ [uncover={2,4-7,9-}]{1}{2}
+ {2}{5}
+}{ % Lower non-transversal edges
+ [uncover={3-}]{1}{2}
+ {3}{4}
+}{ % Transversal edges
+ {1}{1}
+ {3}{4}
+}
+ \end{minipage}
+ \end{minipage}%
+\end{center}
+
\subsubsection{Transversal edge options} \label{sec: T edge/options}
\DescribeMacro{height}
@@ -2178,6 +2550,81 @@ An example use is
}
\end{center}
+\DescribeMacro{phantom}
+This flag allows for the edge to be hidden using the \texttt{phantom} command. Simply wraps the edge drawing macros with a \texttt{phantom} command. The default is false.
+\begin{center}
+ \begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
+ \begin{minipage}[c]{0.4\linewidth}
+\begin{verbatim}
+\pmdBrick[ % Options
+ degree=5
+]{ % Upper non-transversal edges
+ {1}{2}
+ {2}{5}
+}{ % Lower non-transversal edges
+ {1}{2}
+ {3}{4}
+}{ % Transversal edges
+ [phantom]{1}{1}
+ {3}{4}
+}
+\end{verbatim}
+ \end{minipage}
+ \hfill
+ \begin{minipage}[c]{0.4\linewidth}
+\pmdBrick[ % Options
+ degree=5
+]{ % Upper non-transversal edges
+ {1}{2}
+ {2}{5}
+}{ % Lower non-transversal edges
+ {1}{2}
+ {3}{4}
+}{ % Transversal edges
+ [phantom]{1}{1}
+ {3}{4}
+}
+ \end{minipage}
+ \end{minipage}%
+\end{center}
+
+\DescribeMacro{uncover}
+allows for that edge to be uncovered in a \texttt{beamer} presentation using the command \verb`\uncover<n->{text}`. Simply passes the slide uncover information \verb`<n->` to the embedded \texttt{uncover} command within the edge drawing macros. This uncover is nested inside the \texttt{edges uncover} and hence the limitations of nested uncovers are present here. For example, an individual edge will not uncover until the \texttt{edges uncover} has been uncovered. In such instances only use individual uncovers for each edge. The default is~\texttt{1-}.
+\begin{center}
+ \begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
+ \begin{minipage}[c]{0.4\linewidth}
+\begin{verbatim}
+\pmdBrick[ % Options
+ degree=5
+]{ % Upper non-transversal edges
+ {1}{2}
+ {2}{5}
+}{ % Lower non-transversal edges
+ {1}{2}
+ {3}{4}
+}{ % Transversal edges
+ [uncover={2,4-7,9-}]{1}{1}
+ {3}{4}
+}
+\end{verbatim}
+ \end{minipage}
+ \hfill
+ \begin{minipage}[c]{0.4\linewidth}
+\pmdBrick[ % Options
+ degree=5
+]{ % Upper non-transversal edges
+ {1}{2}
+ {2}{5}
+}{ % Lower non-transversal edges
+ {1}{2}
+ {3}{4}
+}{ % Transversal edges
+ [uncover={2,4-7,9-}]{1}{1}
+ {3}{4}
+}
+ \end{minipage}
+ \end{minipage}%
+\end{center}
\subsection{Brace} \label{sec: brace}
@@ -3020,6 +3467,178 @@ passes through options to the \verb`\draw` command of the added edges. The defau
}
\end{center}
+\DescribeMacro{edges added phantom}
+This flag allows for the added edges to be hidden using the \texttt{phantom} command. Simply wraps the edge drawing macros with a \texttt{phantom} command. The default is false.
+\begin{center}
+ \begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
+ \begin{minipage}[c]{0.4\linewidth}
+\begin{verbatim}
+\pmdProduct[ % Options
+ edges added phantom
+]{ % Added edges
+ {1}{5}
+}{ % Top diagram
+ { % Brick 1
+ [ % Options
+ degree=5
+ ]{ % Upper non-transversal edges
+ \pmdEmpty
+ }{ % Lower non-transversal edges
+ \pmdEmpty
+ }{ % Transversal edges
+ {1}{1}
+ {2}{2}
+ {3}{3}
+ {4}{4}
+ {5}{5}
+ }
+ }
+}{ % Bottom diagram
+ { % Brick 1
+ [ % Options
+ degree=5
+ ]{ % Upper non-transversal edges
+ {2}{3}
+ {4}{5}
+ }{ % Lower non-transversal edges
+ {2}{3}
+ {4}{5}
+ }{ % Transversal edges
+ {1}{1}
+ }
+ }
+}
+\end{verbatim}
+ \end{minipage}
+ \hfill
+ \begin{minipage}[c]{0.4\linewidth}
+ \end{minipage}
+ \end{minipage}%
+\end{center}
+\begin{center}
+\pmdProduct[ % Options
+ edges added phantom
+]{ % Added edges
+ {1}{5}
+}{ % Top diagram
+ { % Brick 1
+ [ % Options
+ degree=5
+ ]{ % Upper non-transversal edges
+ \pmdEmpty
+ }{ % Lower non-transversal edges
+ \pmdEmpty
+ }{ % Transversal edges
+ {1}{1}
+ {2}{2}
+ {3}{3}
+ {4}{4}
+ {5}{5}
+ }
+ }
+}{ % Bottom diagram
+ { % Brick 1
+ [ % Options
+ degree=5
+ ]{ % Upper non-transversal edges
+ {2}{3}
+ {4}{5}
+ }{ % Lower non-transversal edges
+ {2}{3}
+ {4}{5}
+ }{ % Transversal edges
+ {1}{1}
+ }
+ }
+}
+\end{center}
+
+\DescribeMacro{edges added uncover}
+allows for the added edges to be uncovered in a \texttt{beamer} presentation using the command \verb`\uncover<n->{text}`. Simply passes the slide uncover information \verb`<n->` to the embedded \texttt{uncover} command within the added edge drawing macros. The default is~\texttt{1-}.
+\begin{center}
+ \begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
+ \begin{minipage}[c]{0.4\linewidth}
+\begin{verbatim}
+\pmdProduct[ % Options
+ edges added uncover={2,4-7,9-}
+]{ % Added edges
+ {1}{5}
+}{ % Top diagram
+ { % Brick 1
+ [ % Options
+ degree=5
+ ]{ % Upper non-transversal edges
+ \pmdEmpty
+ }{ % Lower non-transversal edges
+ \pmdEmpty
+ }{ % Transversal edges
+ {1}{1}
+ {2}{2}
+ {3}{3}
+ {4}{4}
+ {5}{5}
+ }
+ }
+}{ % Bottom diagram
+ { % Brick 1
+ [ % Options
+ degree=5
+ ]{ % Upper non-transversal edges
+ {2}{3}
+ {4}{5}
+ }{ % Lower non-transversal edges
+ {2}{3}
+ {4}{5}
+ }{ % Transversal edges
+ {1}{1}
+ }
+ }
+}
+\end{verbatim}
+ \end{minipage}
+ \hfill
+ \begin{minipage}[c]{0.4\linewidth}
+ \end{minipage}
+ \end{minipage}%
+\end{center}
+\begin{center}
+\pmdProduct[ % Options
+ edges added uncover={2,4-7,9-}
+]{ % Added edges
+ {1}{5}
+}{ % Top diagram
+ { % Brick 1
+ [ % Options
+ degree=5
+ ]{ % Upper non-transversal edges
+ \pmdEmpty
+ }{ % Lower non-transversal edges
+ \pmdEmpty
+ }{ % Transversal edges
+ {1}{1}
+ {2}{2}
+ {3}{3}
+ {4}{4}
+ {5}{5}
+ }
+ }
+}{ % Bottom diagram
+ { % Brick 1
+ [ % Options
+ degree=5
+ ]{ % Upper non-transversal edges
+ {2}{3}
+ {4}{5}
+ }{ % Lower non-transversal edges
+ {2}{3}
+ {4}{5}
+ }{ % Transversal edges
+ {1}{1}
+ }
+ }
+}
+\end{center}
+
\section{Future features/work}
I have attempted to make most use cases easy to use with dedicated functionality that does not require significant \LaTeX\ knowledge whilst at the same time provide more advanced interfaces to allow for hopefully almost complete customisability for those who put in the effort.
@@ -3032,13 +3651,16 @@ The following are some of the aims for the future for this package:
\item Add warning and error messages to log.
\item Allow all brick keys to work as diagram keys that apply to all bricks in a diagram. This will require setting up a flag for each key so that the diagram key sets the brick key but the brick key is not reset after drawing the first brick. This process also will need to be able to handle when a single brick has a custom special different key value and that this is reset to the digram key value and not the global default key value.
\item Allow appropriate diagram keys to work as brick keys. Notably the \texttt{grid} key.
- \item The creation of user profiles that allows for fast and efficient setting of default key values that are different to the package defaults. Hence within a diagram, there can be a number of different diagram styles that can be accessed with one command.
+ \item The creation of user profiles that allows for fast and efficient setting of default key values that are different to the package defaults. Hence within a diagram, there can be a number of different diagram styles that can be accessed with one command. That is, in the options for a diagram, have this profile key.
+ \item Have global settings so that all diagrams in a document have the specified options.
\item Allow for adjusting the horizontal spacing of vertices. Need to think about making that a simple scale factor so that integer interface for edge positions is the same but then hooks will have very messy coordinates or keep it as absolute coordinates with messy edges. Alternatively, do both, allowing the user to choose which option to do and somehow distinguish between the two in the background.
\item Create \texttt{pmdMirror} command that mirrors all upper non-transversals into lower non-transversals.
\item Create \texttt{invert} key for bricks, diagrams and product diagrams that inverts everything. Probably easiest done with a \texttt{scope} environment around everything and \texttt{yscale=-1}.
\item For product diagram, have interface where you input diagram instead of bricks so that you have access to diagram options.
\item Create a transversal edge key \texttt{identity} so that all edges in between the two values are straight vertical edges. Thus eliminating the need to write out each edge manually.
\item Create \texttt{shift} key for edges that shifts horizontal position.
+ \item Decouple the uncover of labels from \texttt{vertices top uncover}/\texttt{vertices bottom uncover}.
+ \item Decouple the phantom of labels from \texttt{vertices top phantom}/\texttt{vertices bottom phantom}.
\end{enumerate}
\section{Examples}
diff --git a/graphics/pstricks/contrib/pst-optic/Changes b/graphics/pstricks/contrib/pst-optic/Changes
index 9d04151b68..e51864d848 100644
--- a/graphics/pstricks/contrib/pst-optic/Changes
+++ b/graphics/pstricks/contrib/pst-optic/Changes
@@ -1,4 +1,5 @@
---- pst-optic.tex
+1.04 2024-06-02 - small fixes to code and documentation
1.03 2024-05-17 - small fixes to code and documentation
1.02a 2023-05-07 - fix documentation for \psRefractionRay
1.02 2016-07-10 - added option onlyrays, preset to false
diff --git a/graphics/pstricks/contrib/pst-optic/README b/graphics/pstricks/contrib/pst-optic/README
index 47b0c29eb1..0f33952022 100644
--- a/graphics/pstricks/contrib/pst-optic/README
+++ b/graphics/pstricks/contrib/pst-optic/README
@@ -3,7 +3,7 @@
%% Manuel Luque <Mluque5130@aol.com> (France)
%% Herbert Voss <hvoss@tug.org> (Germany)
%%
-%% 2023-05-07
+%% 2024-06-02
%%
Save the files
@@ -21,5 +21,6 @@ dvips pst-optic-doc.dvi
to get a PostScript file. But pay attention, that the pst-optic
files are saved in the above mentioned way, before you run
-latex on the documentation file.
+latex on the documentation file. Or simply use lualatex to get
+directly the pdf.
diff --git a/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.bib b/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.bib
index 740cf6db59..6eea964780 100644
--- a/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.bib
+++ b/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.bib
@@ -96,7 +96,7 @@
@Article{dtk02.1:voss:mathematischen,
- author = {Herbert Voß},
+ author = {Herbert Vo{\ss}},
title = {Die mathematischen {F}unktionen von {P}ostscript},
journal = dtk,
year = 2002,
@@ -105,7 +105,7 @@
altnumber = 14,
month = mar,
pages = {40--47},
- annote = "Bretter, die die Welt bedeuten",
+ annote = bretter,
abstract = { \PS, faktisch genauso alt wie {\TeX}, ist im
Verh{\"a}ltnis dazu allgemein noch weniger bekannt, wenn es
darum geht zu beurteilen, was es denn nun im eigentlichen
@@ -117,3 +117,10 @@
gezeigt. }
}
+@ctan{pstlens:2001,
+ Title = {PST-lens - {\PS} macros for Generic TeX},
+ Author = {Denis Girou and Manuel Luque},
+ url = {/graphics/pstricks/contrib/pst-lens/},
+ year = 2001,
+}
+
diff --git a/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.pdf b/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.pdf
index 35ec09b5b8..182863a16e 100644
--- a/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.pdf
+++ b/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.pdf
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.tex b/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.tex
index 96ca28bbec..5ec11a0297 100644
--- a/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.tex
+++ b/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.tex
@@ -1,4 +1,4 @@
-%% $Id: pst-optic-doc.tex 896 2024-05-17 10:13:27Z herbert $
+%% $Id: pst-optic-doc.tex 903 2024-06-02 06:16:43Z herbert $
\DocumentMetadata{}
\documentclass[11pt,english,bibliography=totoc,parskip=false,headings=small,
@@ -132,7 +132,7 @@ There are macros for the convergent and divergent lens
\begin{BDef}
\Lcs{lens}\OptArgs\\
\Lcs{lensCVG} \% \textbf{C}on\textbf{v}er\textbf{g}ent (Collecting lens ) -- default\\
-\Lcs{lensDVG} \% \textbf{D}i\textbf{v}er\textbf{g}ent (Scatter lens )
+\Lcs{lensDVG} \% \textbf{D}i\textbf{v}er\textbf{g}ent (Scatter lens )\\
\Lcs{pslensCVG}\OptArgs \Largb{lens width}\Largb{lens height}\\
\Lcs{pslensDVG}\OptArgs \Largb{lens width}\Largb{lens height}\\
\end{BDef}
@@ -148,7 +148,7 @@ The predefined options for \Lcs{lens} are \texttt{xLeft=-7.5, xRight=7.5, yBotto
\subsection{Short forms}
-The two macros \Lcs{lensCVG} and \Lcs{lensDVG} are only short forms of the main macro \Lcs{lens}
+The two macros \Lcs{lensCVG} and \Lcs{lensDVG} draw some more rays as the main macro \Lcs{lens}
with the setting \Lkeyval{lensType}\texttt{=CVG|DVG}.
The only valid arguments are \Lkeyword{lensScale}, \Lkeyword{lensWidth}, and \Lkeyword{lensHeight},
which must be set by \Lcs{psset}.
@@ -235,16 +235,17 @@ Using \Lcs{lens}\OptArg{\Lkeyword{lensType}=\ldots} gives the in figures \ref{fi
Lense width in cm & \Lkeyword{lensWidth} & 0.5cm\footnotemark\\
vertical scale (obsolet) & \Lkeyword{lensScale} & 1\\
View the lens & \Lkeyword{lensGlass} & \true\\
- show onyl the rays & \Lkeyword{onlyrays} & \false\\
+ show only the rays & \Lkeyword{onlyrays} & \false\\
Second lens & \Lkeyword{lensTwo} & \false\\
Focus in cm & \Lkeyword{focus} & 2\\
- Distance $\mathrm{\overline{OA}}$& \Lkeyword{OA} & -4\\
- Distance $\mathrm{\overline{AB}}$& \Lkeyword{AB} & 1.5\\
- Lens color & \Lkeyword{lenscolor} & \black\\
- Arrow length in cm & \Lkeyword{lensarrowsize} & 0.2\\
- Arrow inset in cm & \Lkeyword{lensarrowinset} & 0.5\\
+ Distance $\mathrm{\overline{OA}}$& \Lkeyword{OA} & -3\\
+ Distance $\mathrm{\overline{AB}}$& \Lkeyword{AB} & 1\\
+ Lens color & \Lkeyword{lenscolor}\footnotemark & \black\\
+ Arrow length in cm & \Lkeyword{lensArrowSize}${}^2$ & 0.2\\
+ Arrow inset in cm & \Lkeyword{lensArrowInset}${}^2$ & 0.5\\
\end{tabular}
\footnotetext{\textsuperscript{1} only for \Lkeyset{lensGlass=true}, otherwise set to \texttt{2\textbackslash pslinewidth}}
+\footnotetext{\textsuperscript{2} only for \Lkeyset{lensGlass=false}}
\end{minipage}
\end{table}
diff --git a/graphics/pstricks/contrib/pst-optic/tex/pst-optic.tex b/graphics/pstricks/contrib/pst-optic/tex/pst-optic.tex
index f145993fc6..0c06f849b3 100644
--- a/graphics/pstricks/contrib/pst-optic/tex/pst-optic.tex
+++ b/graphics/pstricks/contrib/pst-optic/tex/pst-optic.tex
@@ -1,4 +1,4 @@
-%%%% $Id: pst-optic.tex 896 2024-05-17 10:13:27Z herbert $
+%%%% $Id: pst-optic.tex 903 2024-06-02 06:16:43Z herbert $
%% This is file `pst-optic.tex',
%%
%% IMPORTANT NOTICE:
@@ -8,7 +8,7 @@
%% Manuel Luque <Mluque5130@aol.com> (France)
%% Herbert Voss <hvoss@tug.org> (Germany)
%%
-%% 2024-05-17
+%% 2024-06-02
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN archives
@@ -30,8 +30,8 @@
\ifx\PSTMultidoLoaded\endinput\else\input multido.tex\fi
\ifx\PSTXKeyLoaded\endinput\else \input pst-xkey\fi
%
-\def\fileversion{1.03}
-\def\filedate{2024/05/17}
+\def\fileversion{1.04}
+\def\filedate{2024/06/02}
\message{`PST-Optic' v\fileversion, \filedate\space (Manuel Luque and Herbert Voss)}
%
\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
@@ -798,13 +798,19 @@
\begingroup%
\ifPst@lensGlass
\rput(! XO YO){%
- \ifx\psk@optic@lensType\lensTypeCVG\lensCVG%
- \else\ifx\psk@optic@lensType\lensTypePCVG\lensCVG
- \else\lensDVG\fi\fi}%
- \else%
- \ifx\psk@optic@lensType\lensTypeDVG\psset{arrows=>-<}\else
- \ifx\psk@optic@lensType\lensTypePDVG\psset{arrows=>-<}\else\psset{arrows=<->}
- \fi\fi
+ \ifx\psk@optic@lensType\lensTypeCVG \lensCVG%
+ \else\ifx\psk@optic@lensType\lensTypePCVG \lensCVG
+ \else\lensDVG
+ \fi\fi}%
+ \else
+ \ifx\psk@optic@lensType\lensTypeDVG
+ \psset{arrows=>-<}
+ \else
+ \ifx\psk@optic@lensType\lensTypePDVG
+ \psset{arrows=>-<}%
+ \else
+ \psset{arrows=<->}%
+ \fi\fi
\psline[linecolor=\psk@optic@lensColor,
linewidth=\psk@optic@lensWidth,arrowsize=\psk@optic@lensArrowSize,
arrowinset=\psk@optic@lensArrowInset]%
diff --git a/macros/latex/contrib/acmart/README b/macros/latex/contrib/acmart/README
index 22919f31f8..7d79e34935 100644
--- a/macros/latex/contrib/acmart/README
+++ b/macros/latex/contrib/acmart/README
@@ -12,6 +12,9 @@ The production version is the one on CTAN and ACM sites.
Changes
+Version 2.08. Section titles are in lowercase now.
+ Documentation updates.
+
Version 2.07. Corrected typo in TELO eISSN.
Version 2.06. Added eISSN for a number of journals.
diff --git a/macros/latex/contrib/acmart/acmart.dtx b/macros/latex/contrib/acmart/acmart.dtx
index baebaccaab..0ff7a902b7 100644
--- a/macros/latex/contrib/acmart/acmart.dtx
+++ b/macros/latex/contrib/acmart/acmart.dtx
@@ -386,11 +386,13 @@
%
% The option |balance| determines whether the last page in the two
% column mode has balanced columns. By default it is |true|; however,
-% it may lead to problems for some documents. Set it to |false| if
-% you encounter compilation errors. Note that for one page documents
-% \cs{balance} command might cause problems. An alternative is the
+% it may lead to problems for some documents. When there are many
+% figures near the end of the document, the attempts to balance
+% columns may lead to the loss of the figures. Set this option to |false| if
+% you encounter problems. An alternative is the
% (experimental) option |pbalance|, which uses the new package
-% |pbalance| for this end.
+% |pbalance|. You may want to try |pbalance=true| to see if you get
+% better results.
%
% The option |urlbreakonhyphens| determines whether URLs can be split
% between lines after hyphens. By default it is true. Set it to
@@ -2262,7 +2264,7 @@
\ProvidesFile{acmart.dtx}
%</gobble>
%<class>\ProvidesClass{acmart}
-[2024/04/17 v2.07 Typesetting articles for the Association for Computing Machinery]
+[2024/05/27 v2.08 Typesetting articles for the Association for Computing Machinery]
% \end{macrocode}
%
% \changes{v1.00}{2016/04/14}{First released version}
@@ -8178,9 +8180,10 @@
% \cs{sffamily}\cs{bfseries}}
% \changes{v1.67}{2020/01/11}{Deleted redefinitions of sections}
% \changes{1.85}{2022/05/08}{Added: acmengage}
+% \changes{2.08}{2024/05/27}{Deleted uppercasing}
% Fonts for sections etc. are different for different formats.
% \begin{macrocode}
-\def\@secfont{\sffamily\bfseries\section@raggedright\MakeTextUppercase}
+\def\@secfont{\sffamily\bfseries\section@raggedright}
\def\@subsecfont{\sffamily\bfseries\section@raggedright}
\def\@subsubsecfont{\sffamily\itshape}
\def\@parfont{\itshape}
@@ -8189,16 +8192,16 @@
\relax % manuscript
\or % acmsmall
\or % acmlarge
- \def\@secfont{\sffamily\large\section@raggedright\MakeTextUppercase}
+ \def\@secfont{\sffamily\large\section@raggedright}
\def\@subsecfont{\sffamily\large\section@raggedright}
\or % acmtog
- \def\@secfont{\sffamily\large\section@raggedright\MakeTextUppercase}
+ \def\@secfont{\sffamily\large\section@raggedright}
\def\@subsecfont{\sffamily\large\section@raggedright}
\or % sigconf
- \def\@secfont{\bfseries\Large\section@raggedright\MakeTextUppercase}
+ \def\@secfont{\bfseries\Large\section@raggedright}
\def\@subsecfont{\bfseries\Large\section@raggedright}
\or % siggraph
- \def\@secfont{\sffamily\bfseries\Large\section@raggedright\MakeTextUppercase}
+ \def\@secfont{\sffamily\bfseries\Large\section@raggedright}
\def\@subsecfont{\sffamily\bfseries\Large\section@raggedright}
\or % sigplan
\def\@secfont{\bfseries\Large\section@raggedright}
@@ -8208,14 +8211,14 @@
\def\@subparfont{\itshape}
\or % sigchi
\setcounter{secnumdepth}{1}
- \def\@secfont{\sffamily\bfseries\section@raggedright\MakeTextUppercase}
+ \def\@secfont{\sffamily\bfseries\section@raggedright}
\def\@subsecfont{\sffamily\bfseries\section@raggedright}
\or % sigchi-a
\setcounter{secnumdepth}{0}
- \def\@secfont{\sffamily\bfseries\section@raggedright\MakeTextUppercase}
+ \def\@secfont{\sffamily\bfseries\section@raggedright}
\def\@subsecfont{\sffamily\bfseries\section@raggedright}
\or % acmengage
- \def\@secfont{\bfseries\Large\section@raggedright\MakeTextUppercase}
+ \def\@secfont{\bfseries\Large\section@raggedright}
\def\@subsecfont{\bfseries\Large\section@raggedright}
\or %acmcp
\fi
diff --git a/macros/latex/contrib/acmart/acmart.pdf b/macros/latex/contrib/acmart/acmart.pdf
index c19fdf3a8b..9a91d07bf7 100644
--- a/macros/latex/contrib/acmart/acmart.pdf
+++ b/macros/latex/contrib/acmart/acmart.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/acmguide.pdf b/macros/latex/contrib/acmart/acmguide.pdf
index bd2ce2d7ba..927dd7c750 100644
--- a/macros/latex/contrib/acmart/acmguide.pdf
+++ b/macros/latex/contrib/acmart/acmguide.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmcp.pdf b/macros/latex/contrib/acmart/samples/sample-acmcp.pdf
index 3f02d1ac9c..c57d1898d1 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmcp.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmcp.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmengage.pdf b/macros/latex/contrib/acmart/samples/sample-acmengage.pdf
index aa7fea6b41..366843b28e 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmengage.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmengage.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf b/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
index 2637448012..25a90ec394 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdf
index dce1688580..d644e32874 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall-biblatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
index f4fd622fcf..6e1488235e 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
index 4086b70e26..e0471c8a27 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
index 6c3fbbb20a..17c719abda 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmtog-conf.pdf b/macros/latex/contrib/acmart/samples/sample-acmtog-conf.pdf
index 5493a7abf7..71e87b73b1 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmtog-conf.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmtog-conf.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmtog.pdf b/macros/latex/contrib/acmart/samples/sample-acmtog.pdf
index be5a4b8e1c..1e39a159d3 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmtog.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmtog.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-manuscript.pdf b/macros/latex/contrib/acmart/samples/sample-manuscript.pdf
index a594aaec45..301caf80cb 100644
--- a/macros/latex/contrib/acmart/samples/sample-manuscript.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-manuscript.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-sigconf-authordraft.pdf b/macros/latex/contrib/acmart/samples/sample-sigconf-authordraft.pdf
index 87c7559042..a465c8463e 100644
--- a/macros/latex/contrib/acmart/samples/sample-sigconf-authordraft.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-sigconf-authordraft.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdf b/macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdf
index 26d05c90b6..b4052f9363 100644
--- a/macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-sigconf-biblatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdf b/macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdf
index 4404065b41..dc0e0fe12e 100644
--- a/macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-sigconf-i13n.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-sigconf.pdf b/macros/latex/contrib/acmart/samples/sample-sigconf.pdf
index a29449278f..ab5954e602 100644
--- a/macros/latex/contrib/acmart/samples/sample-sigconf.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-sigconf.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-sigplan.pdf b/macros/latex/contrib/acmart/samples/sample-sigplan.pdf
index 7edc0c62bd..534e00da12 100644
--- a/macros/latex/contrib/acmart/samples/sample-sigplan.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-sigplan.pdf
Binary files differ
diff --git a/macros/latex/required/amsmath/README.md b/macros/latex/required/amsmath/README.md
index 9235c7c6b3..38e4da1427 100644
--- a/macros/latex/required/amsmath/README.md
+++ b/macros/latex/required/amsmath/README.md
@@ -1,7 +1,7 @@
The amsmath bundle for LaTeX
============================
-Release 2023-11-01
+Release 2024-06-01 patch level 0
Overview
--------
@@ -77,5 +77,5 @@ version 1.3c or later.
-----
<p>Copyright (C) 2001-2004, 2007, 2008, 2010, 2011, 2013 American Mathematical Society. <br />
-<p>Copyright (C) 2016-2023 The LaTeX Project and American Mathematical Society. <br />
+<p>Copyright (C) 2016-2024 The LaTeX Project and American Mathematical Society. <br />
diff --git a/macros/latex/required/amsmath/ams-external.txt b/macros/latex/required/amsmath/ams-external.txt
index fa2dbea556..69f5689c15 100644
--- a/macros/latex/required/amsmath/ams-external.txt
+++ b/macros/latex/required/amsmath/ams-external.txt
@@ -60,7 +60,6 @@
\Rightarrow
\Tilde
\Umathaccent
-\Umathcar
\Umathchar
\Umathcharnumdef
\Umathcode
diff --git a/macros/latex/required/amsmath/amsbsy.ins b/macros/latex/required/amsmath/amsbsy.ins
index 62b4e9a67c..2d0cdd7be3 100644
--- a/macros/latex/required/amsmath/amsbsy.ins
+++ b/macros/latex/required/amsmath/amsbsy.ins
@@ -26,7 +26,7 @@
\preamble
Copyright (C) 1995, 1999 American Mathematical Society.
-Copyright (C) 2016-2023 LaTeX Project and American Mathematical Society.
+Copyright (C) 2016-2024 LaTeX Project and American Mathematical Society.
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/macros/latex/required/amsmath/amsbsy.pdf b/macros/latex/required/amsmath/amsbsy.pdf
index dba61eacae..28e261f75d 100644
--- a/macros/latex/required/amsmath/amsbsy.pdf
+++ b/macros/latex/required/amsmath/amsbsy.pdf
Binary files differ
diff --git a/macros/latex/required/amsmath/amscd.dtx b/macros/latex/required/amsmath/amscd.dtx
index 85475708cc..e1eba3aec2 100644
--- a/macros/latex/required/amsmath/amscd.dtx
+++ b/macros/latex/required/amsmath/amscd.dtx
@@ -2,7 +2,7 @@
% \iffalse meta-comment
%
% Copyright (C) 1995, 1999 American Mathematical Society.
-% Copyright (C) 2016-2023 LaTeX Project and American Mathematical Society.
+% Copyright (C) 2016-2024 LaTeX Project and American Mathematical Society.
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/macros/latex/required/amsmath/amscd.ins b/macros/latex/required/amsmath/amscd.ins
index 56aedca375..8f2e5decd4 100644
--- a/macros/latex/required/amsmath/amscd.ins
+++ b/macros/latex/required/amsmath/amscd.ins
@@ -1,6 +1,6 @@
%%
%% Copyright (C) 2010 American Mathematical Society.
-%% Copyright (C) 2016-2023 LaTeX Project and American Mathematical Society.
+%% Copyright (C) 2016-2024 LaTeX Project and American Mathematical Society.
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
@@ -25,7 +25,7 @@
\preamble
Copyright (C) 1995, 1999 American Mathematical Society.
-Copyright (C) 2016-2023 LaTeX Project and American Mathematical Society.
+Copyright (C) 2016-2024 LaTeX Project and American Mathematical Society.
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/macros/latex/required/amsmath/amscd.pdf b/macros/latex/required/amsmath/amscd.pdf
index e993750122..7f052e0bda 100644
--- a/macros/latex/required/amsmath/amscd.pdf
+++ b/macros/latex/required/amsmath/amscd.pdf
Binary files differ
diff --git a/macros/latex/required/amsmath/amsgen.dtx b/macros/latex/required/amsmath/amsgen.dtx
index 6c4aefed67..a7b1ebc87f 100644
--- a/macros/latex/required/amsmath/amsgen.dtx
+++ b/macros/latex/required/amsmath/amsgen.dtx
@@ -2,7 +2,7 @@
% \iffalse meta-comment
%
% Copyright (C) 1995, 1999 American Mathematical Society.
-% Copyright (C) 2016-2023 LaTeX Project and American Mathematical Society.
+% Copyright (C) 2016-2024 LaTeX Project and American Mathematical Society.
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/macros/latex/required/amsmath/amsgen.ins b/macros/latex/required/amsmath/amsgen.ins
index faef4aa275..8b6f418595 100644
--- a/macros/latex/required/amsmath/amsgen.ins
+++ b/macros/latex/required/amsmath/amsgen.ins
@@ -25,7 +25,7 @@
\preamble
Copyright (C) 1995, 1999 American Mathematical Society.
-Copyright (C) 2016-2023 LaTeX Project and American Mathematical Society.
+Copyright (C) 2016-2024 LaTeX Project and American Mathematical Society.
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/macros/latex/required/amsmath/amsgen.pdf b/macros/latex/required/amsmath/amsgen.pdf
index 87c0c3c6ab..230bbd5e06 100644
--- a/macros/latex/required/amsmath/amsgen.pdf
+++ b/macros/latex/required/amsmath/amsgen.pdf
Binary files differ
diff --git a/macros/latex/required/amsmath/amsldoc.pdf b/macros/latex/required/amsmath/amsldoc.pdf
index 64ec8110b7..87aff77bd5 100644
--- a/macros/latex/required/amsmath/amsldoc.pdf
+++ b/macros/latex/required/amsmath/amsldoc.pdf
Binary files differ
diff --git a/macros/latex/required/amsmath/amsldoc.tex b/macros/latex/required/amsmath/amsldoc.tex
index 5c4b9e0d89..91e6ada7e6 100644
--- a/macros/latex/required/amsmath/amsldoc.tex
+++ b/macros/latex/required/amsmath/amsldoc.tex
@@ -1,6 +1,6 @@
%
% Copyright (C) 1995, 2000, 2013 American Mathematical Society.
-% Copyright (C) 2016-2023 LaTeX Project and American Mathematical Society.
+% Copyright (C) 2016-2024 LaTeX Project and American Mathematical Society.
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/macros/latex/required/amsmath/amsmath-2018-12-01.sty b/macros/latex/required/amsmath/amsmath-2018-12-01.sty
index ab45172a32..ca5ac506fb 100644
--- a/macros/latex/required/amsmath/amsmath-2018-12-01.sty
+++ b/macros/latex/required/amsmath/amsmath-2018-12-01.sty
@@ -1,4 +1,8 @@
%%
+%% This is an old release of `amsmath.sty' used during rollback operations.
+%% Do not use this file directly.
+%% ==============================
+%%
%% This is file `amsmath.sty',
%% generated with the docstrip utility.
%%
@@ -517,7 +521,7 @@ Foreign command \@backslashchar#1;\MessageBreak
\else % \not \mathxxx
\@xp\Umathch@\meaning@"0"\Umathch@
\ifgtest@ % if \Umathchar
- \else % else not \Umathcar
+ \else % else not \Umathchar
\@xp\macro@\meaning@@\macro@
\ifgtest@ % if macro test
\@xp\not@\meaning@\not@
diff --git a/macros/latex/required/amsmath/amsmath.dtx b/macros/latex/required/amsmath/amsmath.dtx
index bf8aa418df..ec44957a89 100644
--- a/macros/latex/required/amsmath/amsmath.dtx
+++ b/macros/latex/required/amsmath/amsmath.dtx
@@ -2,7 +2,7 @@
% \iffalse meta-comment
%
% Copyright (C) 1995, 2000, 2013 American Mathematical Society.
-% Copyright (C) 2016-2023 LaTeX Project and American Mathematical Society.
+% Copyright (C) 2016-2024 LaTeX Project and American Mathematical Society.
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
@@ -76,17 +76,16 @@ Bug reports can be opened (category \texttt{#1}) at\\%
[1994/12/01]% LaTeX date must be December 1994 or later
% \end{macrocode}
%
-% Providing a rollback to earlier version(s)
+% Providing a rollback to earlier version(s). Anything prior to
+% 2018 we attempt to fulfill by using the version from 2018.
% \begin{macrocode}
-\providecommand\DeclareRelease[3]{}
-\providecommand\DeclareCurrentRelease[2]{}
-%
+\DeclareRelease{}{1994-06-01}{amsmath-2018-12-01.sty}
\DeclareRelease{}{2018-12-01}{amsmath-2018-12-01.sty}
\DeclareCurrentRelease{}{2019-04-01}
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesPackage{amsmath}[2023/05/13 v2.17o AMS math features]
+\ProvidesPackage{amsmath}[2024/05/23 v2.17q AMS math features]
% \end{macrocode}
%
% \section{Catcode defenses}
@@ -1162,7 +1161,7 @@ Foreign command \@backslashchar#1;\MessageBreak
% \begin{macrocode}
\@xp\Umathch@\meaning@"0"\Umathch@
\ifgtest@ % if \Umathchar
- \else % else not \Umathcar
+ \else % else not \Umathchar
% \end{macrocode}
% \begin{macrocode}
\@xp\macro@\meaning@@\macro@
@@ -4153,6 +4152,12 @@ and fix things up.}
% cause \cs{row@} to be advanced twice instead of once.
% \begin{macrocode}
\global\advance\row@\@ne
+% \end{macrocode}
+% Also reset \cs{lineht@} to avoid that this is incorrectly picked
+% up by a following environment, such as \env{align}.
+% \changes{v2.17p}{2024/03/11}{Reset \cs{lineht@} (gh/1289)}
+% \begin{macrocode}
+ \global\lineht@\z@
\cr
}
% \end{macrocode}
diff --git a/macros/latex/required/amsmath/amsmath.ins b/macros/latex/required/amsmath/amsmath.ins
index f92839f959..528700f238 100644
--- a/macros/latex/required/amsmath/amsmath.ins
+++ b/macros/latex/required/amsmath/amsmath.ins
@@ -1,6 +1,6 @@
%%
%% Copyright (C) 2010 American Mathematical Society.
-%% Copyright (C) 2016-2023 LaTeX Project and American Mathematical Society.
+%% Copyright (C) 2016-2024 LaTeX Project and American Mathematical Society.
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
@@ -25,7 +25,7 @@
\preamble
Copyright (C) 1995, 1999, 2000, 2013 American Mathematical Society.
-Copyright (C) 2016-2023 LaTeX Project and American Mathematical Society.
+Copyright (C) 2016-2024 LaTeX Project and American Mathematical Society.
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/macros/latex/required/amsmath/amsmath.pdf b/macros/latex/required/amsmath/amsmath.pdf
index 4eff5231f7..185206a8b2 100644
--- a/macros/latex/required/amsmath/amsmath.pdf
+++ b/macros/latex/required/amsmath/amsmath.pdf
Binary files differ
diff --git a/macros/latex/required/amsmath/amsopn.dtx b/macros/latex/required/amsmath/amsopn.dtx
index b089749c17..11ad62ddc1 100644
--- a/macros/latex/required/amsmath/amsopn.dtx
+++ b/macros/latex/required/amsmath/amsopn.dtx
@@ -2,7 +2,7 @@
% \iffalse meta-comment
%
% Copyright (C) 1995, 1999 American Mathematical Society.
-% Copyright (C) 2016-2023 LaTeX Project and American Mathematical Society.
+% Copyright (C) 2016-2024 LaTeX Project and American Mathematical Society.
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/macros/latex/required/amsmath/amsopn.ins b/macros/latex/required/amsmath/amsopn.ins
index 859e3d7e5a..67b2b3c077 100644
--- a/macros/latex/required/amsmath/amsopn.ins
+++ b/macros/latex/required/amsmath/amsopn.ins
@@ -1,6 +1,6 @@
%%
%% Copyright (C) 2010 American Mathematical Society.
-%% Copyright (C) 2016-2023 LaTeX Project and American Mathematical Society.
+%% Copyright (C) 2016-2024 LaTeX Project and American Mathematical Society.
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
@@ -25,7 +25,7 @@
\preamble
Copyright (C) 1995, 1999 American Mathematical Society.
-Copyright (C) 2016-2023 LaTeX Project and American Mathematical Society.
+Copyright (C) 2016-2024 LaTeX Project and American Mathematical Society.
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/macros/latex/required/amsmath/amsopn.pdf b/macros/latex/required/amsmath/amsopn.pdf
index f2177722b9..a6901ac7c4 100644
--- a/macros/latex/required/amsmath/amsopn.pdf
+++ b/macros/latex/required/amsmath/amsopn.pdf
Binary files differ
diff --git a/macros/latex/required/amsmath/amstext.dtx b/macros/latex/required/amsmath/amstext.dtx
index a4bc541d34..68299946b0 100644
--- a/macros/latex/required/amsmath/amstext.dtx
+++ b/macros/latex/required/amsmath/amstext.dtx
@@ -2,7 +2,7 @@
% \iffalse meta-comment
%
% Copyright (C) 1995, 1999 American Mathematical Society.
-% Copyright (C) 2016-2023 LaTeX Project and American Mathematical Society.
+% Copyright (C) 2016-2024 LaTeX Project and American Mathematical Society.
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/macros/latex/required/amsmath/amstext.ins b/macros/latex/required/amsmath/amstext.ins
index 11ed56cc3c..8ecb9523c9 100644
--- a/macros/latex/required/amsmath/amstext.ins
+++ b/macros/latex/required/amsmath/amstext.ins
@@ -1,6 +1,6 @@
%%
%% Copyright (C) 2010 American Mathematical Society.
-%% Copyright (C) 2016-2023 LaTeX Project and American Mathematical Society.
+%% Copyright (C) 2016-2024 LaTeX Project and American Mathematical Society.
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
@@ -25,7 +25,7 @@
\preamble
Copyright (C) 1995, 1999 American Mathematical Society.
-Copyright (C) 2016-2023 LaTeX Project and American Mathematical Society.
+Copyright (C) 2016-2024 LaTeX Project and American Mathematical Society.
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/macros/latex/required/amsmath/amstext.pdf b/macros/latex/required/amsmath/amstext.pdf
index 31d39a346b..6735db64f6 100644
--- a/macros/latex/required/amsmath/amstext.pdf
+++ b/macros/latex/required/amsmath/amstext.pdf
Binary files differ
diff --git a/macros/latex/required/amsmath/amsxtra.dtx b/macros/latex/required/amsmath/amsxtra.dtx
index a1f2c6686c..5ace38995d 100644
--- a/macros/latex/required/amsmath/amsxtra.dtx
+++ b/macros/latex/required/amsmath/amsxtra.dtx
@@ -2,7 +2,7 @@
% \iffalse meta-comment
%
% Copyright (C) 1995, 1999 American Mathematical Society.
-% Copyright (C) 2016-2023 LaTeX Project and American Mathematical Society.
+% Copyright (C) 2016-2024 LaTeX Project and American Mathematical Society.
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/macros/latex/required/amsmath/amsxtra.ins b/macros/latex/required/amsmath/amsxtra.ins
index 4707222513..2ba4f22138 100644
--- a/macros/latex/required/amsmath/amsxtra.ins
+++ b/macros/latex/required/amsmath/amsxtra.ins
@@ -1,6 +1,6 @@
%%
%% Copyright (C) 2010 American Mathematical Society.
-%% Copyright (C) 2016-2023 LaTeX Project and American Mathematical Society.
+%% Copyright (C) 2016-2024 LaTeX Project and American Mathematical Society.
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
@@ -25,7 +25,7 @@
\preamble
Copyright (C) 1995, 1999 American Mathematical Society.
-Copyright (C) 2016-2023 LaTeX Project and American Mathematical Society.
+Copyright (C) 2016-2024 LaTeX Project and American Mathematical Society.
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/macros/latex/required/amsmath/amsxtra.pdf b/macros/latex/required/amsmath/amsxtra.pdf
index 4d1ff74d58..7df65cd7f9 100644
--- a/macros/latex/required/amsmath/amsxtra.pdf
+++ b/macros/latex/required/amsmath/amsxtra.pdf
Binary files differ
diff --git a/macros/latex/required/amsmath/changes.txt b/macros/latex/required/amsmath/changes.txt
index 10ce2ec83b..588e7d36d0 100644
--- a/macros/latex/required/amsmath/changes.txt
+++ b/macros/latex/required/amsmath/changes.txt
@@ -6,6 +6,22 @@ All changes above are only part of the development branch for the next release.
# 2023-11-01 Release
#########################
+2024-05-23 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * amsmath.dtx:
+ Do not error with "suspicous date" when rolling back to
+ early years of LaTeX2e (gh/1336)
+
+2024-03-11 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * amsmath.dtx (subsection{The \env{gather} environment}):
+ Reset \lineht@ to avoid that this is incorrectly picked
+ up by a following environment, such as align. (gh/1289)
+
+#########################
+# 2023-11-01 Release
+#########################
+
2023-08-24 David Carlisle <David.Carlisle@latex-project.org>
* testmath.tex: remove spaces before ~,
diff --git a/macros/latex/required/amsmath/subeqn.pdf b/macros/latex/required/amsmath/subeqn.pdf
index e5beafd105..18be7c3be5 100644
--- a/macros/latex/required/amsmath/subeqn.pdf
+++ b/macros/latex/required/amsmath/subeqn.pdf
Binary files differ
diff --git a/macros/latex/required/amsmath/technote.pdf b/macros/latex/required/amsmath/technote.pdf
index b8ebef38d0..a563ee67d6 100644
--- a/macros/latex/required/amsmath/technote.pdf
+++ b/macros/latex/required/amsmath/technote.pdf
Binary files differ
diff --git a/macros/latex/required/amsmath/testmath.pdf b/macros/latex/required/amsmath/testmath.pdf
index 51eae10c15..1c4a265eb3 100644
--- a/macros/latex/required/amsmath/testmath.pdf
+++ b/macros/latex/required/amsmath/testmath.pdf
Binary files differ
diff --git a/macros/latex/required/babel/base/README.md b/macros/latex/required/babel/base/README.md
index 3247ec987f..c1a3fc40c0 100644
--- a/macros/latex/required/babel/base/README.md
+++ b/macros/latex/required/babel/base/README.md
@@ -1,6 +1,6 @@
-## Babel 24.5
+## Babel 24.6
-2024-05-18
+2024-06-02
`babel` is the multilingual framework for localizing documents in
LaTeX, LuaLaTeX, XeLaTeX. It manages culturally-determined
@@ -10,9 +10,9 @@ languages even work with Plain formats.
The latest stable version is available on <https://ctan.org/pkg/babel>.
-Changes in version 24.5 are described in:
+Changes in version 24.6 are described in:
-https://latex3.github.io/babel/news/whats-new-in-babel-24.5.html
+https://latex3.github.io/babel/news/whats-new-in-babel-24.6.html
Apart from the manual, you can find information on some aspects of babel at:
@@ -48,16 +48,11 @@ respective authors.
### Summary of latest changes
```
-24.5 2024-05-18
- * Change the first item in `abjad` and `maghrebi.abjad` counters
- in `ar-DZ`, `ar-MA` and `ar-TN`), from ا to أ. Suggested by
- @seloumi.
- * Fixed an error when a locale is loaded on the fly and there are empty
- captions in another language (#294)
- * Fix in transforms (lua): negative values in `space` and `spacefactor`
- raised and error.
+24.6 2024-06-02
+ * New keys in transforms (lua): kern, norule, after, node.
```
+
### Previous changes
See https://latex3.github.io/babel/#whats-new
diff --git a/macros/latex/required/babel/base/babel-code.pdf b/macros/latex/required/babel/base/babel-code.pdf
index fc188152cf..5bba76d722 100644
--- a/macros/latex/required/babel/base/babel-code.pdf
+++ b/macros/latex/required/babel/base/babel-code.pdf
Binary files differ
diff --git a/macros/latex/required/babel/base/babel.dtx b/macros/latex/required/babel/base/babel.dtx
index 6a129d2c32..6b6da6ed7c 100644
--- a/macros/latex/required/babel/base/babel.dtx
+++ b/macros/latex/required/babel/base/babel.dtx
@@ -32,7 +32,7 @@
%
% \iffalse
%<*filedriver>
-\ProvidesFile{babel.dtx}[2024/05/18 v24.5 The Babel package]
+\ProvidesFile{babel.dtx}[2024/06/02 v24.6 The Babel package]
\documentclass{ltxdoc}
\GetFileInfo{babel.dtx}
\usepackage{fontspec}
@@ -865,7 +865,7 @@ behavior is not desired, you may use the environment
\begin{warning}
Being similar to |\selectlanguage|, the warning above about the
internal |\write| also applies here. The current mode (vertical or
- horizonal) is also not changed.
+ horizontal) is also not changed.
\end{warning}
\Describe{\begin\menv{otherlanguage*}}%
@@ -1600,7 +1600,7 @@ files, with |\babelprovide| (or |provide=|). With these languages,
|\babelprovide| with a valueless |import|, which will load the |ini|
file with the tag given in parenthesis.
-Many locale are quite useable, provided captions and dates are
+Many locale are quite usable, provided captions and dates are
not required (which is a very frequent case, particularly in ancient
languages). So, they are included in the default \babel{} distribution.
This can serve to encourage contributions, too. A warning will remember
@@ -2731,12 +2731,12 @@ one whose script is Latin.
Sets the interword space for the writing system of the language, in em
units (so, |0 .1 0| is |0em plus .1em|). Like |\spaceskip|, the em unit
applied is that of the current text (more precisely, the previous
-glyph). Currently used only in Southeast Asian scrips, like Thai, and
+glyph). Currently used only in Southeast Asian scripts, like Thai, and
CJK.
\Describe{intrapenalty=}{\meta{penalty}}
Sets the interword penalty for the writing system of this language.
-Currently used only in Southeast Asian scrips, like Thai. Ignored if 0
+Currently used only in Southeast Asian scripts, like Thai. Ignored if 0
(which is the default value).
\Describe{transforms=}{\meta{transform-list}}
@@ -3148,7 +3148,7 @@ Each language in the \babel{} sense has its own unique numeric
identifier, which can be retrieved with |\localeid|.
The |\localeid| is not the same as the |\language| identifier, which
-refers to a set of hyphenation patters (which, in turn, is just a
+refers to a set of hyphenation patterns (which, in turn, is just a
component of the line breaking algorithm described in the next
section). The data about preloaded patterns are store in an internal
macro named |\bbl@languages| (see the code for further details), but
@@ -3901,7 +3901,7 @@ will be fine in most cases, but numbers, for example, will be rendered
in the wrong order.
In \luatex, the preferred method is |basic|, which supports both L and
-R text. |basic-r| was a first attempt to create a bidi algorith and
+R text. |basic-r| was a first attempt to create a bidi algorithm and
provides a simple and fast method for R text in some typical cases.
(They are named \texttt{basic} mainly because they only consider the
intrinsic direction of scripts and weak directionality.)
@@ -4131,7 +4131,7 @@ There are \textit{three} R blocks and \textit{two} L blocks, and the
order is \textit{RTL B and still ltr 1 ltr text RTL A}. This is by
design to provide the proper behavior in the most usual cases — but if
you need to use |\ref| in an L text inside R, the L text must be marked
-up explictly; for example:
+up explicitly; for example:
\begin{verbatim}
RTL A \foreignlanguage{english}{ltr text \thechapter{} and still ltr} RTL B
\end{verbatim}
@@ -5479,8 +5479,8 @@ wouldn’t exist.
% \section{Tools}
%
% \begin{macrocode}
-%<<version=24.5>>
-%<<date=2024/05/18>>
+%<<version=24.6>>
+%<<date=2024/06/02>>
% \end{macrocode}
%
% \textbf{Do not use the following macros in \texttt{ldf} files. They
@@ -11537,7 +11537,7 @@ wouldn’t exist.
\typeout{*******}}
% \end{macrocode}
%
-% \section{Adjusting the Babel bahavior}
+% \section{Adjusting the Babel behavior}
%
% A generic high level interface is provided to adjust some global
% and general settings.
@@ -11997,7 +11997,7 @@ wouldn’t exist.
% documentclasses \cls{report} and \cls{book} define and set the
% headings for the page. While doing so they also store a copy of
% |\markboth| in |\@mkboth|. Therefore we need to check whether
-% |\@mkboth| has already been set. If so we neeed to do that again
+% |\@mkboth| has already been set. If so we need to do that again
% with the new definition of |\markboth|. (As of Oct 2019, \LaTeX{}
% stores the definition in an intermediate macro, so it's not
% necessary anymore, but it's preserved for older versions.)
@@ -12111,7 +12111,7 @@ wouldn’t exist.
% \end{macrocode}
%
% The package \pkg{varioref} defines |\Ref| to be a robust command
-% wich uppercases the first character of the reference text. In
+% which uppercases the first character of the reference text. In
% order to be able to do that it needs to access the expandable form
% of |\ref|. So we employ a little trick here. We redefine the
% (internal) command \verb*|\Ref | to call |\org@ref| instead of
@@ -12395,16 +12395,16 @@ wouldn’t exist.
\fi
\fi
% TODO? Separate:
-\ifnum\bbl@bidimode=\@ne % Any bidi= except default=1
+\ifnum\bbl@bidimode=\@ne % bidi=default
\let\bbl@beforeforeign\leavevmode
- \ifodd\bbl@engine
+ \ifodd\bbl@engine % lua
\newattribute\bbl@attr@dir
\directlua{ Babel.attr_dir = luatexbase.registernumber'bbl@attr@dir' }
\bbl@exp{\output{\bodydir\pagedir\the\output}}
\fi
\AtEndOfPackage{%
- \EnableBabelHook{babel-bidi}%
- \ifodd\bbl@engine\else
+ \EnableBabelHook{babel-bidi}% pdf/lua/xe
+ \ifodd\bbl@engine\else % pdf/xe
\bbl@xebidipar
\fi}
\fi
@@ -13995,12 +13995,12 @@ wouldn’t exist.
%<*xetex|texxet>
\providecommand\bbl@provide@intraspace{}
\bbl@trace{Redefinitions for bidi layout}
-\def\bbl@sspre@caption{%
+\def\bbl@sspre@caption{% TODO: Unused!
\bbl@exp{\everyhbox{\\\bbl@textdir\bbl@cs{wdir@\bbl@main@language}}}}
\ifx\bbl@opt@layout\@nnil\else % if layout=..
\def\bbl@startskip{\ifcase\bbl@thepardir\leftskip\else\rightskip\fi}
\def\bbl@endskip{\ifcase\bbl@thepardir\rightskip\else\leftskip\fi}
-\ifx\bbl@beforeforeign\leavevmode % A poor test for bidi=
+\ifnum\bbl@bidimode>\z@ % TODO: always?
\def\@hangfrom#1{%
\setbox\@tempboxa\hbox{{#1}}%
\hangindent\ifcase\bbl@thepardir\wd\@tempboxa\else-\wd\@tempboxa\fi
@@ -14092,7 +14092,7 @@ wouldn’t exist.
%
% Which start just above, because some code is shared with \xetex. Now,
% 8-bit specific stuff. If just one encoding has been declared, then
-% asume no switching is necessary (1).
+% assume no switching is necessary (1).
%
% \begin{macrocode}
%<*texxet>
@@ -14357,6 +14357,7 @@ wouldn’t exist.
\endinput\fi
% Here stops reading code for hyphen.cfg
% The following is read the 2nd time it's loaded
+ % First, global declarations for lua
\begingroup % TODO - to a lua file
\catcode`\%=12
\catcode`\'=12
@@ -14364,6 +14365,10 @@ wouldn’t exist.
\catcode`\:=12
\directlua{
Babel = Babel or {}
+ function Babel.lua_error(e, a)
+ tex.print([[\noexpand\csname bbl@error\endcsname{]] ..
+ e .. '}{' .. (a or '') .. '}{}{}')
+ end
function Babel.bytes(line)
return line:gsub("(.)",
function (chr) return unicode.utf8.char(string.byte(chr)) end)
@@ -15323,7 +15328,12 @@ end
local rep = [=[##1]=]
rep = rep:gsub('^%s*(remove)%s*$', 'remove = true')
rep = rep:gsub('^%s*(insert)%s*,', 'insert = true, ')
+ rep = rep:gsub('^%s*(after)%s*,', 'after = true, ')
rep = rep:gsub('(string)%s*=%s*([^%s,]*)', Babel.capture_func)
+ rep = rep:gsub('node%s*=%s*(%a+)%s*(%a*)', Babel.capture_node)
+ rep = rep:gsub(&%
+ '(norule)%s*=%s*([%-%d%.]+)%s+([%-%d%.]+)%s+([%-%d%.]+)',
+ 'norule = {' .. '%2, %3, %4' .. '}')
if #1 == 0 or #1 == 2 then
rep = rep:gsub(&%
'(space)%s*=%s*([%-%d%.]+)%s+([%-%d%.]+)%s+([%-%d%.]+)',
@@ -15342,7 +15352,7 @@ end
\bbl@foreach\babeltempb{&%
\bbl@forkv{{##1}}{&%
\in@{,####1,}{,nil,step,data,remove,insert,string,no,pre,&%
- no,post,penalty,kashida,space,spacefactor,}&%
+ no,post,penalty,kashida,space,spacefactor,kern,node,after,}&%
\ifin@\else
\bbl@error{bad-transform-option}{####1}{}{}&%
\fi}}&%
@@ -16358,6 +16368,7 @@ function Babel.hyphenate_replace(head, mode)
print('=====')
end
local new -- used when inserting and removing nodes
+ local dummy_node -- used by after
local matches = { u.match(w, p, last_match) }
@@ -16402,7 +16413,8 @@ function Babel.hyphenate_replace(head, mode)
-- rc = the replacement table index
local rc = 0
- while rc < last-first+1 do -- for each replacement
+------- TODO. dummy_node?
+ while rc < last-first+1 or dummy_node do -- for each replacement
if Babel.debug then
print('.....', rc + 1)
end
@@ -16434,11 +16446,31 @@ function Babel.hyphenate_replace(head, mode)
end
if crep then
- step = crep.step or 0
+ step = crep.step or step
+ end
+
+ if crep and crep.after then
+ crep.insert = true
+ if dummy_node then
+ item = dummy_node
+ else -- TODO. if there is a node after?
+ d = node.copy(item_base)
+ head, item = node.insert_after(head, item, d)
+ dummy_node = item
+ end
+ end
+
+ if crep and not crep.after and dummy_node then
+ node.remove(head, dummy_node)
+ dummy_node = nil
end
if (not enabled) or (crep and next(crep) == nil) then -- = {}
- last_match = save_last -- Optimization
+ if step == 0 then
+ last_match = save_last -- Optimization
+ else
+ last_match = utf8.offset(w, sc+step)
+ end
goto next
elseif crep == nil or crep.remove then
@@ -16448,7 +16480,7 @@ function Babel.hyphenate_replace(head, mode)
sc = sc - 1 -- Nothing has been inserted.
last_match = utf8.offset(w, sc+1+step)
goto next
-
+
elseif crep and crep.kashida then -- Experimental
node.set_attribute(item,
Babel.attr_kashida,
@@ -16526,6 +16558,15 @@ function Babel.hyphenate_replace(head, mode)
placeholder = ' '
end
head, new = node.insert_before(head, item, d)
+
+ elseif crep and crep.norule then
+ -- 655360 = 10 pt = 10 * 65536 sp
+ d = node.new(2, 3) -- (rule, empty) = \no*rule
+ local quad = font.getfont(item_base.font).size or 655360
+ d.width = crep.norule[1] * quad
+ d.height = crep.norule[2] * quad
+ d.depth = crep.norule[3] * quad
+ head, new = node.insert_before(head, item, d)
elseif crep and crep.spacefactor then
d = node.new(12, 13) -- (glue, spaceskip)
@@ -16541,10 +16582,22 @@ function Babel.hyphenate_replace(head, mode)
elseif mode == 0 and crep and crep.space then
-- ERROR
+
+ elseif crep and crep.kern then
+ d = node.new(13, 1) -- (kern, user)
+ local quad = font.getfont(item_base.font).size or 655360
+ d.attr = item_base.attr
+ d.kern = crep.kern * quad
+ head, new = node.insert_before(head, item, d)
+
+ elseif crep and crep.node then
+ d = node.new(crep.node[1], crep.node[2])
+ d.attr = item_base.attr
+ head, new = node.insert_before(head, item, d)
end -- ie replacement cases
- -- Shared by disc, space and penalty.
+ -- Shared by disc, space(factor), kern, node and penalty.
if sc == 1 then
word_head = head
end
@@ -16568,6 +16621,11 @@ function Babel.hyphenate_replace(head, mode)
print('.....', '/')
Babel.debug_hyph(w, w_nodes, sc, first, last, last_match)
end
+
+ if dummy_node then
+ node.remove(head, dummy_node)
+ dummy_node = nil
+ end
end -- for match
@@ -16649,6 +16707,14 @@ function Babel.capture_kashida(key, wt)
return 'kashida = ' .. wt
end
+function Babel.capture_node(id, subtype)
+ local sbt = 0
+ for k, v in pairs(node.subtypes(id)) do
+ if v == subtype then sbt = k end
+ end
+ return 'node = {' .. node.id(id) .. ', ' .. sbt .. '}'
+end
+
-- Experimental: applies prehyphenation transforms to a string (letters
-- and spaces).
function Babel.string_prehyphenation(str, locale)
diff --git a/macros/latex/required/babel/base/babel.ins b/macros/latex/required/babel/base/babel.ins
index d70ae40c62..70cf2a0be7 100644
--- a/macros/latex/required/babel/base/babel.ins
+++ b/macros/latex/required/babel/base/babel.ins
@@ -26,7 +26,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%%
-\def\filedate{2024/05/18}
+\def\filedate{2024/06/02}
\def\batchfile{babel.ins}
\input docstrip.tex
@@ -48,7 +48,7 @@
% Modify docstrip. A pseudo-guard is defined to set variables:
% <<name=value>>. These variables are used with <@name@> Two further
% pseudo-guards define "block" variables: <<*name>> and <</name>>
-% delimite the lines to be retrived with <@name@>. Note the verbatim
+% delimite the lines to be retrieved with <@name@>. Note the verbatim
% guard is overridden, but it's not used here. This is done in two
% passes: 1) with saving true, there is a dummy pass, generating
% nothing, but blocks are read and saved; 2) with saving false, blocks
diff --git a/macros/latex/required/babel/base/babel.pdf b/macros/latex/required/babel/base/babel.pdf
index b541f0bf05..73f9ce8633 100644
--- a/macros/latex/required/babel/base/babel.pdf
+++ b/macros/latex/required/babel/base/babel.pdf
Binary files differ
diff --git a/macros/latex/required/babel/base/bbcompat.dtx b/macros/latex/required/babel/base/bbcompat.dtx
index 00e5a6b8b5..e4d9db4708 100644
--- a/macros/latex/required/babel/base/bbcompat.dtx
+++ b/macros/latex/required/babel/base/bbcompat.dtx
@@ -30,7 +30,7 @@
%
% \iffalse
%<*dtx>
-\ProvidesFile{bbcompat.dtx}[2024/05/18 v24.5]
+\ProvidesFile{bbcompat.dtx}[2024/06/02 v24.6]
%</dtx>
%
%% File 'bbcompat.dtx'
diff --git a/macros/latex/required/cyrillic/README.md b/macros/latex/required/cyrillic/README.md
index edb52a9b19..804680ad97 100644
--- a/macros/latex/required/cyrillic/README.md
+++ b/macros/latex/required/cyrillic/README.md
@@ -1,7 +1,7 @@
The LaTeX `cyrillic` bundle
===========================
-Release 2022-06-01 patch level 1
+Release 2024-06-01 patch level 0
Overview
--------
@@ -51,4 +51,4 @@ of the package.
-----
-<p>Copyright (C) 2005-2019 The LaTeX Project <br />
+<p>Copyright (C) 2005-2024 The LaTeX Project <br />
diff --git a/macros/latex/required/cyrillic/changes.txt b/macros/latex/required/cyrillic/changes.txt
index ab1a4188a9..3d0d2be357 100644
--- a/macros/latex/required/cyrillic/changes.txt
+++ b/macros/latex/required/cyrillic/changes.txt
@@ -4,6 +4,11 @@ completeness or accuracy and it contains some references to files that
are not part of the distribution.
=======================================================================
+2023-11-07 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * cyoutenc.dtx (section{The Cyrillic font encodings: T2A, T2B, T2C, and X2}):
+ Add \hmode@bgroup to \k to match other encoding definitions (gh/1148)
+
2022-06-11 David Carlisle <David.Carlisle@latex-project.org>
* cyinpenc.dtx cyoutenc.dtx lyc.dtx ot2.dtx:
diff --git a/macros/latex/required/cyrillic/cyinpenc.pdf b/macros/latex/required/cyrillic/cyinpenc.pdf
index c6ca1c0a89..d651362793 100644
--- a/macros/latex/required/cyrillic/cyinpenc.pdf
+++ b/macros/latex/required/cyrillic/cyinpenc.pdf
Binary files differ
diff --git a/macros/latex/required/cyrillic/cyoutenc.dtx b/macros/latex/required/cyrillic/cyoutenc.dtx
index 89304a754f..7bd6b94546 100644
--- a/macros/latex/required/cyrillic/cyoutenc.dtx
+++ b/macros/latex/required/cyrillic/cyoutenc.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 1993-2022
+% Copyright 1993-2023
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
@@ -65,7 +65,7 @@
%<T2A>\ProvidesFile{t2aenc.def}
%<T2B>\ProvidesFile{t2benc.def}
%<T2C>\ProvidesFile{t2cenc.def}
- [2022/06/11 v1.0j Cyrillic encoding definition file]
+ [2023/11/07 v1.0k Cyrillic encoding definition file]
% \end{macrocode}
%
% To assure that |\MakeUppercase| and |\MakeLowercase| will work
@@ -118,8 +118,13 @@
\DeclareTextCommand{\d}{\LastDeclaredEncoding}[1]
{\hmode@bgroup
\o@lign{\relax#1\crcr\hidewidth\ltx@sh@ft{-1ex}.\hidewidth}\egroup}
+% \end{macrocode}
+%
+% \changes{v1.0k}{2023/11/07}{Add \cs{hmode@bgroup} to \cs{k} to match
+% other encoding definitions (gh/1148)}
+% \begin{macrocode}
\DeclareTextCommand{\k}{\LastDeclaredEncoding}[1]
- {\oalign{\null#1\crcr\hidewidth\char12}}
+ {\hmode@bgroup\oalign{\null#1\crcr\hidewidth\char12}\egroup}
\DeclareTextCommand{\textperthousand}{\LastDeclaredEncoding}
{\%\char 24 }
\DeclareTextCommand{\textpertenthousand}{\LastDeclaredEncoding}
diff --git a/macros/latex/required/cyrillic/cyoutenc.pdf b/macros/latex/required/cyrillic/cyoutenc.pdf
index 04346ccb9d..a6c285a16a 100644
--- a/macros/latex/required/cyrillic/cyoutenc.pdf
+++ b/macros/latex/required/cyrillic/cyoutenc.pdf
Binary files differ
diff --git a/macros/latex/required/cyrillic/lcy.pdf b/macros/latex/required/cyrillic/lcy.pdf
index 455a4bc353..1df0829e6b 100644
--- a/macros/latex/required/cyrillic/lcy.pdf
+++ b/macros/latex/required/cyrillic/lcy.pdf
Binary files differ
diff --git a/macros/latex/required/cyrillic/lcycmlh.pdf b/macros/latex/required/cyrillic/lcycmlh.pdf
index b5d0d00cae..1cf3919d71 100644
--- a/macros/latex/required/cyrillic/lcycmlh.pdf
+++ b/macros/latex/required/cyrillic/lcycmlh.pdf
Binary files differ
diff --git a/macros/latex/required/cyrillic/ot2.pdf b/macros/latex/required/cyrillic/ot2.pdf
index a4cfd087cf..f810b1ab8a 100644
--- a/macros/latex/required/cyrillic/ot2.pdf
+++ b/macros/latex/required/cyrillic/ot2.pdf
Binary files differ
diff --git a/macros/latex/required/cyrillic/ot2cmams.pdf b/macros/latex/required/cyrillic/ot2cmams.pdf
index c69a20d590..8f30e6f891 100644
--- a/macros/latex/required/cyrillic/ot2cmams.pdf
+++ b/macros/latex/required/cyrillic/ot2cmams.pdf
Binary files differ
diff --git a/macros/latex/required/cyrillic/ot2cmlh.pdf b/macros/latex/required/cyrillic/ot2cmlh.pdf
index 048efadca2..4674e6fc16 100644
--- a/macros/latex/required/cyrillic/ot2cmlh.pdf
+++ b/macros/latex/required/cyrillic/ot2cmlh.pdf
Binary files differ
diff --git a/macros/latex/required/cyrillic/t2lhfnt.pdf b/macros/latex/required/cyrillic/t2lhfnt.pdf
index 613eb3e02d..d282db7f15 100644
--- a/macros/latex/required/cyrillic/t2lhfnt.pdf
+++ b/macros/latex/required/cyrillic/t2lhfnt.pdf
Binary files differ
diff --git a/macros/latex/required/firstaid/changes.txt b/macros/latex/required/firstaid/changes.txt
index 6e53f7f010..7ddcfbcec2 100644
--- a/macros/latex/required/firstaid/changes.txt
+++ b/macros/latex/required/firstaid/changes.txt
@@ -1,27 +1,37 @@
+2024-03-22 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+
+ * latex2e-first-aid-for-external-files.dtx: add firstaid for cleveref
+ to support five data in \newlabel.
+
+2024-03-18 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * latex2e-first-aid-for-external-files.dtx:
+ add first aid for acro to not patch longtable (never worked in
+ the past, but now errors)
+
2024-02-29 Joseph Wright <Joseph.Wright@latex-project.org>
* latex2e-first-aid-for-external-files.dtx:
- - add firstaid for acro to declare a temporary prop
- - add firstaid for chemformula to load l3keys2e
+ - add first aid for acro to declare a temporary prop
+ - add first aid for chemformula to load l3keys2e
- add chemnum for acro to declare a temporary prop
2023-09-20 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
- * latex2e-first-aid-for-external-files.dtx: add firstaid for underscore to
+ * latex2e-first-aid-for-external-files.dtx: add firstaid for underscore to
make the active char protected and safe for use in csnames.
-
+
2023-07-18 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
- * latex2e-first-aid-for-external-files.dtx: remove no longer needed code for
- everysel
- * latex2e-first-aid-for-external-files.dtx: remove no longer needed code for bidi
- * latex2e-first-aid-for-external-files.dtx:
- remove no longer needed code for memoir/stockheight
-
+ * latex2e-first-aid-for-external-files.dtx:
+ remove no longer needed code for everysel
+ remove no longer needed code for bidi
+ remove no longer needed code for memoir/stockheight
+
2023-05-20 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
- * latex2e-first-aid-for-external-files.dtx: removed temporary fix for
- GitHub issue 591, unneeded now and it breaks for luatex the fix for gh 989
- (minipage/list spacing)
+ * latex2e-first-aid-for-external-files.dtx: removed temporary fix for
+ GitHub issue 591, unneeded now and it breaks for luatex the fix for gh 989
+ (minipage/list spacing)
2022-12-06 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
@@ -38,17 +48,17 @@
* latex2e-first-aid-for-external-files.dtx (subsection{The unicode-math package first aid}):
A first aid for unicode-math used together with the doc package.
-2022-10-27 Joseph Wright <Joseph.Wright@latex-project.org>
+2022-10-27 Joseph Wright <Joseph.Wright@latex-project.org>
* latex2e-first-aid-for-external-files.dtx:
Much easier babel patch
-2022-10-27 Joseph Wright <Joseph.Wright@latex-project.org>
+2022-10-27 Joseph Wright <Joseph.Wright@latex-project.org>
* latex2e-first-aid-for-external-files.dtx:
Add first aid for babel to undo a no-longer required patch
-2022-10-03 Joseph Wright <Joseph.Wright@latex-project.org>
+2022-10-03 Joseph Wright <Joseph.Wright@latex-project.org>
* latex2e-first-aid-for-external-files.dtx:
Add first aid for memoir to support kernel-provided
diff --git a/macros/latex/required/firstaid/firstaid.ins b/macros/latex/required/firstaid/firstaid.ins
index 22067390cd..5de510ba51 100644
--- a/macros/latex/required/firstaid/firstaid.ins
+++ b/macros/latex/required/firstaid/firstaid.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 2020-2023
+%% Copyright (C) 2020-2024
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -44,7 +44,7 @@ reports for it can be opened at https://latex-project.org/bugs/
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 2020-2023
+Copyright (C) 2020-2024
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/required/firstaid/latex2e-first-aid-for-external-files.dtx b/macros/latex/required/firstaid/latex2e-first-aid-for-external-files.dtx
index 2317c05141..152737eaf7 100644
--- a/macros/latex/required/firstaid/latex2e-first-aid-for-external-files.dtx
+++ b/macros/latex/required/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-2023
+%% File: latex2e-first-aid-for-external-files.dtx (C) Copyright 2020-2024
%%
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
@@ -111,8 +111,8 @@
% \end{macrocode}
%
% \begin{macrocode}
-\def\LaTeXFirstAidDate{2024/02/29}
-\def\LaTeXFirstAidVersion{v1.1c}
+\def\LaTeXFirstAidDate{2024/03/20}
+\def\LaTeXFirstAidVersion{v1.1e}
% \end{macrocode}
%
% \begin{macrocode}
@@ -612,8 +612,21 @@
% routines in \pkg{expl3}.
% \begin{macrocode}
\AddToHook{package/acro/after}[firstaid]{%
- \FirstAidNeededT{acro}{sty}{2022/04/01 v3.8 typeset acronyms and other abbreviations (CN)}
- {\UseName{prop_new:c}{l__acro_tmpa_prop}}%
+ \FirstAidNeededT{acro}{sty}{2022/04/01 v3.8 typeset acronyms
+ and other abbreviations (CN)}
+ {\UseName{prop_new:c}{l__acro_tmpa_prop}%
+% \end{macrocode}
+% With the 2024 June release of \LaTeX{} it will also fail to patch
+% \cs{endlongtable} and therefore errors when loading. However, the
+% patch it tries never worked (because it was setting a local
+% boolean at a point where it was more or less immediately
+% reset). Thus, rather than fixing the patch approach (which
+% requires to surround the patch with \cs{ExplSyntaxOn}
+% \verb*/\catcode`\ =10 / and \cs{ExplSyntaxOff}) we simply disable
+% the patch for now.
+% \begin{macrocode}
+ \acsetup{patch/longtable=false}%
+ }%
}
% \end{macrocode}
%
@@ -636,11 +649,78 @@
% routines in \pkg{expl3}.
% \begin{macrocode}
\AddToHook{package/chemnum/after}[firstaid]{%
- \FirstAidNeededT{chemnum}{sty}{2021/01/21 v1.3a a comprehensive approach for the numbering of chemical compounds (CN)}
+ \FirstAidNeededT{chemnum}{sty}{2021/01/21 v1.3a a comprehensive
+ approach for the numbering of chemical compounds (CN)}
{\UseName{prop_new:c}{l__chemnum_tmpa_prop}}%
}
% \end{macrocode}
%
+% \subsection{The \pkg{cleveref} package first aid}
+%
+% The \pkg{cleveref} package expects only two data containers
+% for its internal \cs{newlabel} command. This fails if
+% \pkg{xr-hyper} is used which expands every \cs{newlabel} to
+% five data container and puts the file name into the last one.
+% \begin{macrocode}
+\AddToHook{package/cleveref/after}[firstaid]{%
+ \FirstAidNeededT{cleveref}{sty}{2018/03/27 v0.21.4 Intelligent cross-referencing}
+ {%
+% \end{macrocode}
+% This are the two commands which retrieve the data from the label info.
+% We change them to expect five arguments.
+% \begin{macrocode}
+ \def\cref@getref#1#2{%
+ \expandafter\let\expandafter#2\csname r@#1@cref\endcsname%
+ \expandafter\expandafter\expandafter\def%
+ \expandafter\expandafter\expandafter#2%
+ \expandafter\expandafter\expandafter{%
+ \expandafter\@firstoffive#2}}% <-------- five
+ \def\cpageref@getref#1#2{%
+ \expandafter\let\expandafter#2\csname r@#1@cref\endcsname%
+ \expandafter\expandafter\expandafter\def%
+ \expandafter\expandafter\expandafter#2%
+ \expandafter\expandafter\expandafter{%
+ \expandafter\@secondoffive#2}}% <----------- five
+% \end{macrocode}
+% We also need to redefine the internal label commands of cleveref.
+% This must be done after \pkg{cleveref} has made its changes
+% in \texttt{begindocument} so we add it to the same hook using
+% the hook label used by \pkg{cleveref}.
+% This way it is guaranteed to overwrite the definitions.
+% \begin{macrocode}
+ \AddToHook{begindocument}[cleveref]{%
+ \def\label@noarg#1{%
+ \cref@old@label{#1}%
+ \@bsphack%
+ \edef\@tempa{{page}{\the\c@page}}%
+ \setcounter{page}{1}%
+ \edef\@tempb{\thepage}%
+ \expandafter\setcounter\@tempa%
+ \cref@constructprefix{page}{\cref@result}%
+ \protected@write\@auxout{}%
+ {\string\newlabel{#1@cref}{{\cref@currentlabel}%
+ {[\@tempb][\arabic{page}][\cref@result]\thepage}{}{}{}}}% <----- five
+ \@esphack}%
+ \def\label@optarg[#1]#2{%
+ \cref@old@label{#2}%
+ \@bsphack%
+ \edef\@tempa{{page}{\the\c@page}}%
+ \setcounter{page}{1}%
+ \edef\@tempb{\thepage}%
+ \expandafter\setcounter\@tempa%
+ \cref@constructprefix{page}{\cref@result}%
+ \protected@edef\cref@currentlabel{%
+ \expandafter\cref@override@label@type%
+ \cref@currentlabel\@nil{#1}}%
+ \protected@write\@auxout{}%
+ {\string\newlabel{#2@cref}{{\cref@currentlabel}%
+ {[\@tempb][\arabic{page}][\cref@result]\thepage}{}{}{}}}% <------- five
+ \@esphack}%
+ }
+ }%
+}
+% \end{macrocode}
+%
% \begin{macrocode}
%</kernel>
% \end{macrocode}
diff --git a/macros/latex/required/firstaid/latex2e-first-aid-for-external-files.pdf b/macros/latex/required/firstaid/latex2e-first-aid-for-external-files.pdf
index ab5db23f44..7dd3d43aa8 100644
--- a/macros/latex/required/firstaid/latex2e-first-aid-for-external-files.pdf
+++ b/macros/latex/required/firstaid/latex2e-first-aid-for-external-files.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/README.md b/macros/latex/required/graphics/README.md
index 8c89a0611d..bcab2e8f31 100644
--- a/macros/latex/required/graphics/README.md
+++ b/macros/latex/required/graphics/README.md
@@ -1,7 +1,7 @@
The LaTeX `graphics` bundle
===========================
-Release 2022-11-01
+Release 2024-06-01 patch level 0
Overview
--------
@@ -61,4 +61,4 @@ of the package.
-----
-<p>Copyright (C) 1993-2022 The LaTeX Project <br />
+<p>Copyright (C) 1993-2024 The LaTeX Project <br />
diff --git a/macros/latex/required/graphics/changes.txt b/macros/latex/required/graphics/changes.txt
index 55dde0358f..face90b342 100644
--- a/macros/latex/required/graphics/changes.txt
+++ b/macros/latex/required/graphics/changes.txt
@@ -9,6 +9,20 @@ All changes above are only part of the development branch for the next release.
================================================================================
#########################
+# 2023-11-01 Release
+#########################
+
+2024-05-23 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * graphics.dtx:
+ Do not error with "suspicious date" when rolling back to
+ early years of LaTeX2e (gh/1336)
+
+2024-04-28 David Carlisle <David.Carlisle@latex-project.org>
+
+ * grfguide.tex: add \resizebox* example for gh/1339
+
+#########################
# 2022-11-01 Release
#########################
diff --git a/macros/latex/required/graphics/color.dtx b/macros/latex/required/graphics/color.dtx
index cf3a7efbcf..130a960d09 100644
--- a/macros/latex/required/graphics/color.dtx
+++ b/macros/latex/required/graphics/color.dtx
@@ -2,7 +2,7 @@
% \iffalse
%
%% color.dtx Copyright (C) 1994--1999 David Carlisle
-%% Copyright (C) 2005-2022 LaTeX Project
+%% Copyright (C) 2005-2024 LaTeX Project
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -21,7 +21,7 @@
%<driver> \ProvidesFile{color.drv}
% \fi
% \ProvidesFile{color.dtx}
- [2022/01/06 v1.3d Standard LaTeX Color (DPC)]
+ [2024/01/14 v1.3d Standard LaTeX Color (DPC)]
%
% \iffalse
%<*driver>
@@ -168,7 +168,7 @@
%
% \begin{option}{dvips}
% \begin{option}{xdvi}
-% Tom Rokicki's dvips driver, and the X Windows previewer, xdvi which uses
+% Tom Rokicki's dvips driver, and the X Windows previewer, xdvi, which uses
% (a subset of) the same |\specials|.
% \begin{macrocode}
\DeclareOption{dvips}{\def\Gin@driver{dvips.def}%
@@ -248,7 +248,7 @@
% \changes{v0.3k}{1995/09/07}
% {Merge dviwindo and dvipsone options}
% The drivers of the Y\&Y \TeX\ system.
-% (Which use the same |\specials|).
+% (Which use the same |\specials|.)
% \begin{macrocode}
\DeclareOption{dvipsone}{\def\Gin@driver{dvipsone.def}}
\DeclareOption{dviwindo}{\ExecuteOptions{dvipsone}}
@@ -360,7 +360,7 @@
% The |dvipsnames| option predeclares all the names in the colour
% prologue of dvips. The |dvips| option automatically implies
% |dvipsnames| unless this choice is overruled with the |nodvipsnames|
-% option. For other drivers, eg |textures| you may use this option to
+% option. For other drivers, eg |textures|, you may use this option to
% explicitly request that these names be declared.
% \begin{macrocode}
\DeclareOption{dvipsnames}{\def\c@lor@namefile{dvipsnam.def}}
@@ -371,7 +371,7 @@
%
% \begin{option}{usenames}
% The |usenames| option modifies the behaviour of |\DefineNamedColor|
-% So that it declares the same name as a ```user's colour'' for use in
+% so that it declares the same name as a ``user's colour'' for use in
% a |\color| command, as well as a name in the |named| colour model.
% The normal behaviour is just to declare the name in the named colour
% model.
@@ -530,7 +530,7 @@
% |\color| or |\textcolor| commands to refer to a colour specified by
% \emph{colour-spec} in the colour model \emph{model}.
%
-% |\definecolor| associates the \emph{name} the to a colour in
+% |\definecolor| associates the \emph{name} to a colour in
% \emph{model}. So |\color{|\emph{name}|}| would check \emph{name}
% then issue a |\special| for the colour model \emph{model}.
%
@@ -579,12 +579,12 @@
% names.
%
% The `color1' drivers (dvips) currently ignore the specification of
-% the colour, and once a name is defined, just put the colour name in
-% the dvi file. For dvips, The header file \texttt{color.pro} is used to
+% the colour and, once a name is defined, just put the colour name in
+% the dvi file. For dvips, the header file \texttt{color.pro} is used to
% give the cmyk equivalents of the names.
%
% The `color2' drivers (textures) use a special postscript operator
-% that takes both the name and the cmyk equivalent. so if the names are
+% that takes both the name and the cmyk equivalent, so if the names are
% not being used, `fall back' definitions in the cmyk model are available.
% These drivers also allow a numeric value to affect the `density'
% of the colour to use.
@@ -688,9 +688,9 @@
%
% \begin{macro}{\normalcolor}
% Early versions of this package redefined |\reset@font| to reset the
-% color as well. Current versions do not do this (there are too many
-% |\reset@font| commands hidden in strange places) and so defines a
-% separate command, |\normalcolor| to reset the colour to the colour in
+% color as well. Current versions do not do this (since there are too many
+% |\reset@font| commands hidden in strange places) and so they define a
+% separate command, |\normalcolor|, to reset the colour to the colour in
% effect at the start of the document.
%
% |\normalcolor| is defined (to |\relax|) in the \LaTeX\ kernel, so it
@@ -722,9 +722,9 @@
% the truth as the `macro layer' of \TeX\ does not know where the output
% routine is going to re-insert floats. This is why drivers must
% maintain their own stack of colours in order to fully support these
-% commands.
+% commands.)
%
-% For dvips, the |\current@color| it is something like `|Black|' or
+% For dvips, the |\current@color| is something like `|Black|' or
% `|rgb 0 1 0|', but other packages should not rely on any particular
% format for this macro.
%
@@ -755,7 +755,7 @@
% definition of this command. A graphics package may want to define it
% using a special to produce (for example) a PostScript line. Producing
% the line in the |\special| has the advantage that on a preview that
-% does not understand |\special|s, the line is automatically omited,
+% does not understand |\special|s, the line is automatically omitted,
% without needing to modify the source of the document (for instance by
% adding the |monochrome| option).
%
@@ -894,7 +894,7 @@
% \end{macro}
%
% \begin{macro}{\color@vbox}
-% To be used to open a `coloured hbox'
+% To be used to open a `coloured vbox'
% \changes{v0.3h}{1994/11/22}
% {Macro added}
% \begin{macrocode}
diff --git a/macros/latex/required/graphics/color.pdf b/macros/latex/required/graphics/color.pdf
index f42f9dfe1c..8f4c2e2128 100644
--- a/macros/latex/required/graphics/color.pdf
+++ b/macros/latex/required/graphics/color.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/drivers.dtx b/macros/latex/required/graphics/drivers.dtx
index e1c19e0296..fb5132272b 100644
--- a/macros/latex/required/graphics/drivers.dtx
+++ b/macros/latex/required/graphics/drivers.dtx
@@ -3,7 +3,7 @@
%
%% drivers.dtx Copyright (C) 1994 David Carlisle Sebastian Rahtz
%% Copyright (C) 1995 1996 1997 1998 1999 David Carlisle
-%% Copyright (C) 2000-2022 LaTeX Project
+%% Copyright (C) 2000-2024 LaTeX Project
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
diff --git a/macros/latex/required/graphics/drivers.pdf b/macros/latex/required/graphics/drivers.pdf
index 4b370f3600..d4f9e82581 100644
--- a/macros/latex/required/graphics/drivers.pdf
+++ b/macros/latex/required/graphics/drivers.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/epsfig.dtx b/macros/latex/required/graphics/epsfig.dtx
index b8927f2da5..46dc36d0bf 100644
--- a/macros/latex/required/graphics/epsfig.dtx
+++ b/macros/latex/required/graphics/epsfig.dtx
@@ -2,7 +2,7 @@
% \iffalse
%
%% epsfig.dtx Copyright (C) 1994-1996 1999 Sebastian Rahtz
-%% Copyright (C) 2000-2022 LaTeX Project
+%% Copyright (C) 2000-2024 LaTeX Project
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -19,7 +19,7 @@
%<driver> \ProvidesFile{epsfig.drv}
% \fi
% \ProvidesFile{epsfig.dtx}
- [2017/06/25 v1.7b (e)psfig emulation (SPQR)]
+ [2024/01/14 v1.7b (e)psfig emulation (SPQR)]
%
% \iffalse
%<*driver>
@@ -51,7 +51,7 @@
\RequirePackage{graphicx}
% \end{macrocode}
% \subsection{Emulation of `psfig' syntax}
-% Emulate "epsfig.sty", and most varieties of psfig
+% Emulate \texttt{epsfig.sty}, and most varieties of psfig
% \begin{macro}{\psfig,\epsfig}
% \begin{macrocode}
\def\psfig#1{%
@@ -83,7 +83,7 @@
% \end{macrocode}
% \end{macro}
% \subsection{Emulation of `epsf' syntax}
-% Emulate Rokicki's "epsf.tex" supplied with the ever-popular dvips.
+% Emulate Rokicki's \texttt{epsf.tex}, supplied with the ever-popular dvips.
% \begin{macro}{\epsfbox,\epsffile}
% \begin{macrocode}
\newdimen\epsfxsize
diff --git a/macros/latex/required/graphics/epsfig.pdf b/macros/latex/required/graphics/epsfig.pdf
index 92edcf7b41..d37c0d912d 100644
--- a/macros/latex/required/graphics/epsfig.pdf
+++ b/macros/latex/required/graphics/epsfig.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/graphics-2017-06-25.sty b/macros/latex/required/graphics/graphics-2017-06-25.sty
index 154867d99a..24f6443124 100644
--- a/macros/latex/required/graphics/graphics-2017-06-25.sty
+++ b/macros/latex/required/graphics/graphics-2017-06-25.sty
@@ -1,4 +1,8 @@
%%
+%% This is an old release of `graphics.sty' used during rollback operations.
+%% Do not use this file directly.
+%% ==============================
+%%
%% This is file `graphics.sty',
%% generated with the docstrip utility.
%%
diff --git a/macros/latex/required/graphics/graphics.dtx b/macros/latex/required/graphics/graphics.dtx
index 92b3c8f335..2392ac09d1 100644
--- a/macros/latex/required/graphics/graphics.dtx
+++ b/macros/latex/required/graphics/graphics.dtx
@@ -2,7 +2,7 @@
% \iffalse
%
%% graphics.dtx Copyright (C) 1994 David Carlisle Sebastian Rahtz
-%% Copyright (C) 1995-2022 LaTeX Project
+%% Copyright (C) 1995-2024 LaTeX Project
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -17,9 +17,9 @@
\ProvidesFile{graphics.dtx}
%</dtx>
%<+package>\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-%<+package>\providecommand\DeclareRelease[3]{}
-%<+package>\providecommand\DeclareCurrentRelease[2]{}
%<+package>
+% Try to fulfill rollback requests to early years by using the 2017 version:
+%<+package>\DeclareRelease{}{1994-06-01}{graphics-2017-06-25.sty}
%<+package>\DeclareRelease{}{2017-06-25}{graphics-2017-06-25.sty}
%<+package>\DeclareCurrentRelease{}{2019-10-01}
%<+package>
@@ -27,7 +27,7 @@
%<driver> \ProvidesFile{graphics.drv}
% \fi
% \ProvidesFile{graphics.dtx}
- [2022/03/10 v1.4e Standard LaTeX Graphics (DPC,SPQR)]
+ [2024/05/23 v1.4g Standard LaTeX Graphics (DPC,SPQR)]
%
% \iffalse
%<*driver>
@@ -69,18 +69,18 @@
% \section{Introduction}
%
% This package implements various `graphics' functions. The main
-% features are a) inclusion of `graphics' files. b) Rotation of sections
-% of the page, c) Scaling of sections of the page.
+% features are: a) inclusion of `graphics' files; b) rotation of sections
+% of the page; c) scaling of sections of the page.
%
% The design is split into three `levels'.
% \begin{itemize}
% \item The user interface. This is the collection of commands designed
-% to appear in a document text. Actually two separate user interface
+% to appear in a document text. Actually two separate user interfaces
% have been implemented. The `standard' interface, described here, and a
% more powerful, and more `user-friendly' interface provided by the
% |graphicx| package.
% \item The core functions. These functions, which are also implemented
-% in this file do all the `main work'. The `user-interface functions
+% in this file, do all the `main work'. The `user-interface functions'
% just collect together the information from any optional-arguments or
% star-forms, and then call one of these functions.
% \item The driver files. It is not possible to achieve the
@@ -90,7 +90,7 @@
% and the syntax required to pass instructions to the drivers is also
% not standardised. So the `core functions' never access |\special|
% directly, but rather call a series of commands that must be defined in
-% a special file customised for each driver. The accompanying file,
+% a special file customised for each driver. The accompanying file
% |drivers.dtx| has suitable files for a range of popular drivers.
% \end{itemize}
%
@@ -99,9 +99,9 @@
% driver that is to be used to print the document. You may wish to set
% up a configuration file so that this option always takes effect, even
% if not specified in the document. To do this, produce a file
-% |graphics.cfg| containing the line:\\
+% |graphics.cfg| containing the line\\
% |\ExecuteOptions{dvips}|\\
-% (or whichever other driver you wish.)
+% (or whichever other driver you wish).
%
% Apart from the driver options there are a few other options to control
% the behaviour of the package.
@@ -166,7 +166,7 @@
% |\graphicspath{{eps/}{tiff/}}|
% would cause the system to look in the subdirectories |eps| and |tiff|
% of the current directory. The default setting of this path is
-% |\input@path| that is: graphics files will be found wherever \TeX\
+% |\input@path|, so that graphics files will be found wherever \TeX\
% files are found.
%
% \DescribeMacro
@@ -204,7 +204,7 @@
% \emph{default rule}. For instance the |dvips| driver file declares all
% files to be of type |eps| unless a more specific rule is declared.
%
-% Since Version v0.6, extensions should be specified including the |.|
+% Since Version v0.6, extensions should be specified including the |.|,
% that is, |.eps| not |eps|.
%
% \emph{type} is the `type' of file involved. All files of the same type
@@ -241,7 +241,7 @@
% used to denote the filename. Thus using the dvips driver, one may
% use\\
% |\DeclareGraphicsRule{.ps.gz}{eps}{.ps.bb}{`zcat #1}|\\
-% the final argument causes dvips to use the |zcat| command to unzip the
+% The final argument causes dvips to use the |zcat| command to unzip the
% file before inserting it into the PostScript output.
%
% \subsection{Rotation}
@@ -297,18 +297,18 @@
% \DescribeMacro
% {\Gread@eps}\marg{file}\\
% For each \emph{type} of graphics file supported, the driver file must
-% define |\Ginclude@|\emph{type} and, optionally |\Gread@|\emph{type}.
+% define |\Ginclude@|\emph{type} and, optionally, |\Gread@|\emph{type}.
% The read command is responsible for obtaining size information from
-% the file specified in the |\DeclareGraphicsRule| command. However the
+% the file specified in the |\DeclareGraphicsRule| command. However, the
% kernel defines a function, |\Gread@eps|, which can read PostScript
% files to find the
% |%%BoundingBox| comment. This function will be used for any type for
% which a specific function has not been declared. |\Gread@eps| accepts
% a generalised version of the bounding box comment. \TeX\ units may be
% used (but there must be no space before the unit). If the unit is
-% omitted |bp| is assumed. So\\
+% omitted, |bp| is assumed. So\\
% |%%BoundingBox 0 0 2in 3in|\\
-% Would be accepted by this function, to produce a 2in wide, by 3in high
+% would be accepted by this function, to produce a 2in wide by 3in high
% graphic.
%
% \subsection{Rotation}
@@ -334,7 +334,7 @@
% \DescribeMacro
% {\Gscale@box@dddd}
% \marg{dima}\marg{dimb}\marg{dimc}\marg{dimd}\marg{text}\\
-% Scale \emph{text} in horizontally by a factor \emph{dima}/\emph{dimb},
+% Scale \emph{text} horizontally by a factor \emph{dima}/\emph{dimb},
% and vertically by a factor of \emph{dimc}/\emph{dimd}.
%
% \DescribeMacro
@@ -353,7 +353,7 @@
% |\Ginclude@|\emph{type}\\
% The Graphics kernel function will call this driver-defined function
% with the filename as argument, and certain additional information will
-% be provided as follows.:
+% be provided as follows:
%
% \noindent\begin{tabular}{p{.4\textwidth}p{.5\textwidth}}
% |\Gin@llx|, |\Gin@lly|,\newline
@@ -362,7 +362,7 @@
% Registers storing the natural size.\\
% |\Gin@req@width|\newline |\Gin@req@height| &
% Registers storing the required size, after scaling.\\
-% |\Gin@scalex|, |\Gin@scaley| & macros with the scale factors. A value
+% |\Gin@scalex|, |\Gin@scaley| & Macros with the scale factors. A value
% of |!| means: Scale by the same amount as the other direction.\\
% |\ifGin@clip| & |\newif| token, true if the graphic should be
% `clipped' to the bounding box.
@@ -371,11 +371,11 @@
% Optionally the driver may define a command of the form:\\
% |\Gread@|\emph{type}\\
% This is responsible for reading an external file to find the bounding
-% box information. If such a command is not declared, but a read-file is
-% specified the command |\Gread@eps|, which is defined in the Graphics
-% Kernel will be used.
+% box information. If such a command is not declared but a read-file is
+% specified, the command |\Gread@eps|, which is defined in the Graphics
+% Kernel, will be used.
%
-% \subsection{Literal Postscript}
+% \subsection{Literal PostScript}
% Drivers that are producing PostScript output may want to define
% the following macros. They each take one argument which should be
% passed to an appropriate special. They are not used directly by this
@@ -384,7 +384,7 @@
% |\Gin@PS@raw|, Literal PostScript special.\\
% |\Gin@PS@restored|, Literal PostScript special, the driver will
% surround this with a save-restore pair.\\
-% |\Gin@PS@literal@header|, Postscript to be inserted in the header
+% |\Gin@PS@literal@header|, PostScript to be inserted in the header
% section of the PostScript file.\\
% |\Gin@PS@file@header|, external file to be inserted in the header
% section of the PostScript file.
@@ -550,7 +550,7 @@
% \changes{v0.3g}{1994/03/15}
% {Use dvips def file not development version}
% \begin{option}{xdvi}
-% Tomas Rockicki's PostScript driver (unix, MSDOS, VMS\ldots).
+% Tomas Rokicki's PostScript driver (unix, MSDOS, VMS\ldots).
% The |X11| previewer |xdvi| supports basically the same set of
% |\specials|.
% \begin{macrocode}
@@ -672,7 +672,7 @@
% \begin{option}{pctex32}
% \changes{v1.0b}{1996/10/29}
% {pctex32 option added}
-% PC\TeX\ (MSDOS/Windows) .
+% PC\TeX\ (MSDOS/Windows).
% \begin{macrocode}
\DeclareOption{pctexps}{\def\Gin@driver{pctexps.def}}
\DeclareOption{pctexwin}{\def\Gin@driver{pctexwin.def}}
@@ -913,7 +913,7 @@
% \end{macro}
%
% \begin{macro}{\Gin@iii}
-% Set the coordinates of the {\bfseries l}lower {\bfseries l}eft corner,
+% Set the coordinates of the {\bfseries l}ower {\bfseries l}eft corner,
% and the coordinates of the {\bfseries u}pper {\bfseries r}ight
% corner. The coordinates may be any \TeX\ dimension, defaulting to |bp|.
% \changes{v0.6c}{1994/12/15}
@@ -944,8 +944,8 @@
% is invisibly small but files conforming to Adobe DSC should have
% \emph{integer} Bounding Box Coordinates, and conceivably some drivers
% might demand integer values.
-% (Although most seem to accept real values (if they accept bounding box
-% coordinates at all) in the |\special|. This is the reason why the
+% Although most seem to accept real values (if they accept bounding box
+% coordinates at all) in the |\special|, this is the reason why the
% mechanism uses |\def| and not \TeX\ lengths, as in earlier releases of
% the package.
% \begin{macrocode}
@@ -1454,8 +1454,8 @@
% {New macro}
% \begin{macro}{\Gread@generic@aux}
% \begin{macro}{\Gread@eps}
-% Read an EPS file (|#1|) and search for a line
-% starting with |%%BoundingBox| and returns the result
+% Read an EPS file (|#1|), search for a line
+% starting with |%%BoundingBox|; then return the result
% by setting four dimension registers
% |\Gin@llx|, |\Gin@lly|, |\Gin@urx| and |\Gin@ury|.
% \changes{v0.5e}{1994/11/02}
@@ -1701,7 +1701,7 @@
% \begin{macro}{\Grot@left}
% \begin{macro}{\Grot@right}
% \begin{macro}{\Grot@depth}
-% Final Rotated box dimensions
+% Final rotated box dimensions
% \begin{macrocode}
\let\Grot@height\@ovxx
\let\Grot@left\@ovyy
@@ -1920,8 +1920,8 @@
% \end{macrocode}
% Now we should translate back by $(O_x,O_y)$, but \TeX\ can not really
% deal with boxes that do not have the reference point at the left edge.
-% (Everything with a $-$ve $x$-coordinate would over-print earlier
-% text). So we modify the horizontal translation so that the
+% (Everything with a negative $x$-coordinate would over-print earlier
+% text.) So we modify the horizontal translation so that the
% reference point as understood by \TeX\ \emph{is} at the left edge.
% This means that the `centre of rotation' is not fixed by |\rotatebox|,
% but typically moves horizontally. We also need to find the image of
@@ -2157,7 +2157,7 @@
% \end{macrocode}
% \end{macro}
%
-% Restore Catcodes
+% Restore catcodes.
% \begin{macrocode}
\Gin@codes
\let\Gin@codes\relax
diff --git a/macros/latex/required/graphics/graphics.pdf b/macros/latex/required/graphics/graphics.pdf
index 86e7de9270..f7191c9f48 100644
--- a/macros/latex/required/graphics/graphics.pdf
+++ b/macros/latex/required/graphics/graphics.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/graphicx.dtx b/macros/latex/required/graphics/graphicx.dtx
index 8c20091585..92f1af1d39 100644
--- a/macros/latex/required/graphics/graphicx.dtx
+++ b/macros/latex/required/graphics/graphicx.dtx
@@ -2,7 +2,7 @@
% \iffalse
%
%% graphicx.dtx Copyright (C) 1994 David Carlisle Sebastian Rahtz
-%% Copyright (C) 1995-2022 LaTeX Project
+%% Copyright (C) 1995-2024 LaTeX Project
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
diff --git a/macros/latex/required/graphics/graphicx.pdf b/macros/latex/required/graphics/graphicx.pdf
index b85aa0f3c9..f33d34a4bd 100644
--- a/macros/latex/required/graphics/graphicx.pdf
+++ b/macros/latex/required/graphics/graphicx.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/grfguide.pdf b/macros/latex/required/graphics/grfguide.pdf
index ec17a48ff7..8e0bc91ce7 100644
--- a/macros/latex/required/graphics/grfguide.pdf
+++ b/macros/latex/required/graphics/grfguide.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/grfguide.tex b/macros/latex/required/graphics/grfguide.tex
index 585e87adc7..959486c05c 100644
--- a/macros/latex/required/graphics/grfguide.tex
+++ b/macros/latex/required/graphics/grfguide.tex
@@ -1,5 +1,5 @@
%% grfguide.tex Copyright (C) 1994-1999 David Carlisle
-%% Copyright (C) 2005-2021
+%% Copyright (C) 2005-2024
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -62,7 +62,8 @@ stroke
\begin{document}
\title{Packages in the `graphics' bundle}
\author{D. P. Carlisle \and The \LaTeX\ Project}
-\date{2021-03-05}
+
+\date{2024-05-22}
\maketitle
@@ -95,8 +96,10 @@ For special requirements you may edit a copy of these |cfg| files
to set up a site default for these options. Suppose that you wish
the \package{color} package to always default to use specials for the
PostScript driver, |dvisvgm|. In that case, create a file |color.cfg|
-containing the line:\\
-|\ExecuteOptions{dvisvgm}|\\
+containing the line:
+\begin{quote}
+ |\ExecuteOptions{dvisvgm}|
+\end{quote}
Normally you will want an identical file |graphics.cfg| to set a similar
default for the graphics packages.
@@ -113,12 +116,12 @@ The following two options are also supported, they do not correspond
to separate definition files, but are essentially aliases for the
|dvips| option (and |monochrome| in the case of |xdvi|).
\begin{quote}\raggedright
- |xdvi|, |oztex|
+ |xdvi|, |oztex|
\end{quote}
The following set of options are supported by these packages
with associated driver files extracted from the |drivers.dtx|
-documented source in this bundle. These are now, mainly of historic
+documented source in this bundle. These are now mainly of historic
interest but the documented sources do contain some useful code
and advice if you need to produce a new definition file for a new
driver or \TeX\ system. |drivers.dtx| also contains documented
@@ -206,11 +209,11 @@ your own colours use the |\definecolor| command.
This defines \m{name} as a colour which can be used in later colour
-commands. For example
-\begin{verbatim}
-\definecolor{light-blue}{rgb}{0.8,0.85,1}
-\definecolor{mygrey}{gray}{0.75}
-\end{verbatim}
+commands. For example:
+\begin{quote}
+ |\definecolor{light-blue}{rgb}{0.8,0.85,1}| \\
+ |\definecolor{mygrey}{gray}{0.75}|
+\end{quote}
\definecolor{light-blue}{rgb}{0.8,0.85,1}
\definecolor{mygrey}{gray}{0.75}
@@ -227,7 +230,7 @@ The basic syntax is:
|\color|\arg{name}
\end{decl}
-This is a \emph{declaration}, like |\bfseries| It changes the current
+This is a \emph{declaration}, like |\bfseries|. It changes the current
colour to \m{name} until the end of the current group or
environment.
@@ -259,7 +262,6 @@ See \texttt{mathcolor.pdf} for details on this command.
\subsubsection{Using colour specifications directly}
-
\begin{decl}
|\color|\oarg{model}\arg{specification}\\
|\textcolor|\oarg{model}\arg{specification}\arg{text}\\
@@ -271,18 +273,23 @@ the document preamble, but sometimes it is convenient to directly use
a colour without naming it first. To achieve this |\color| (and all
the other colour commands) take an optional argument specifying the
model. If this is used then the mandatory argument takes a
-\m{colour specification} instead of a \m{name}. For example:\\
-|\color[rgb]{1,0.2,0.3}|\\
+\m{colour specification} instead of a \m{name}. For example:
+\begin{quote}
+ |\color[rgb]{1,0.2,0.3}|
+\end{quote}
would directly select that colour.
-This is particularly useful for accessing the \textbf{named} model:\\
-|\color[named]{BrickRed}| selects the |dvips| colour BrickRed.
+This is particularly useful for accessing the \textbf{named} model:
+\begin{quote}
+ |\color[named]{BrickRed}|
+\end{quote}
+selects the |dvips| colour BrickRed.
Rather than repeatedly use |[named]| you may use |\definecolor| to
-provide convenient aliases:\\
-|\definecolor{myred}{named}{WildStrawberry}|
- \ldots\ |\color{myred}|\ \ldots
-
+provide convenient aliases:
+\begin{quote}
+ |\definecolor{myred}{named}{WildStrawberry}|\ldots |\color{myred}|\kern-10pt
+\end{quote}
Alternatively if you are happy to use the existing names from the
\textbf{named} model, you may use the |usenames| package option, which
effectively calls |\definecolor| on every colour in the \textbf{named}
@@ -396,7 +403,7 @@ you should set up a site-default in a file,
The graphics packages have some other options for controlling how many
of the features to enable:
\begin{description}
-\item[draft] suppress all the `special' features. In particular
+\item[draft] Suppress all the `special' features. In particular
graphics files are not included (but they are still read for size
info) just the filename is printed in a box of the correct size.
\item[final] The opposite of |draft|. Useful to over-ride a global
@@ -480,18 +487,23 @@ An abbreviation for |\scalebox{-1}[1]|\arg{text}.
Scale \emph{text} so that the width is \emph{h-length}.
If |!| is used as either length argument, the other argument is used
to determine a scale factor that is used in both directions.
- Normally \emph{v-length} refers to the height of the box, but in the
- star form, it refers to the `height + depth'.
+
As normal for \LaTeXe\ box length arguments, |\height|,
|\width|, |\totalheight|, |\depth| may be used to refer to the
original size of the box.
+ Normally \emph{v-length} refers to the height of the box, but in the
+ star form, |\resizebox*|, it refers to the `height + depth'.
+
|\resizebox{1in}{\height}{Some text}|:
\resizebox{1in}{\height}{Some text}
|\resizebox{1in}{!}{Some text}|:
\resizebox{1in}{!}{Some text}
+|\resizebox{!}{20pt}{Q} \resizebox*{!}{20pt}{Q}|:
+\resizebox{!}{20pt}{Q} \resizebox*{!}{20pt}{Q}
+
\subsection{Including Graphics Files}
The functions for graphics inclusion try to give the same user syntax
for including any kind of graphics file that can be understood by the
@@ -568,7 +580,7 @@ otherwise it will not use one of the others,
with a driver-defined order of preference.
|MediaBox| is always present.
-The |pagebox| key may be used to specify which bounding box specification to use,
+The |pagebox| key may be used to specify which bounding box specification to use.
The value should be one of
|mediabox|, |cropbox|, |bleedbox|, |trimbox|, |artbox|.
\item[viewport]\NEWfeature{1995/06/01}
@@ -602,7 +614,7 @@ The value should be one of
\item[scale] Scale factor.
\item[clip] Either `true' or `false' (or no value, which is equivalent
to `true'). Clip the graphic to the bounding box.
-\item[draft] a boolean valued key, like `clip'. Locally switches to
+\item[draft] A boolean valued key, like `clip'. Locally switches to
draft mode.
\item[type] Specify the graphics type.
\item[ext] Specify the file extension. This should \emph{only} be
@@ -614,12 +626,16 @@ The value should be one of
\item[quiet]\NEWfeature{2017/06/01}
Skip writing information to the log.
\item[page]\NEWfeature{2017/06/01}
-Page of a multi-page PDF file. (by default the first page will be used.)
+Page of a multi-page PDF file. (By default the first page will be used.)
\item[interpolate]\NEWfeature{2017/06/01}
Enable/disable interpolation of bitmap images by the viewer.
+\item[alt]\NEWfeature{2021/09/16}
+ Alternative text for accessibility uses. By default this key is not used
+ but users are encouraged to add descriptive text here that may be used in
+ tagged PDF or as the |alt| attribute in conversions to HTML.
\end{description}
-For the keys specifying the original size (i.e,, the bounding box,
+For the keys specifying the original size (i.e., the bounding box,
trim and viewport keys) the units can be omitted, in
which case bp (i.e., PostScript points) are assumed.
@@ -710,7 +726,7 @@ the \LaTeXe\ primitive |\input@path|. A list of directories, each in a
as the directory separator, even on Windows.)
The default setting of this path is
- |\input@path| that is: graphics files will be found wherever \TeX\
+ |\input@path|, so that graphics files will be found wherever \TeX\
files are found.
\begin{decl}
@@ -748,7 +764,7 @@ must exist at the time \LaTeX\ is used.
extension from the \emph{ext-list} specified with
|\DeclareGraphicsExtensions|.)
-\emph{ext} the file extension for which this rule applies. As a special
+\emph{ext} is the file extension for which this rule applies. As a special
case, \emph{ext} may be given as |*| to denote the default behaviour for
all undeclared extensions (see the example below).
@@ -838,7 +854,7 @@ argument would change (and generate errors) if the user were to load
\section{Remaining packages in the graphics bundle}
\subsection{Epsfig}
-This is a small package essentially a `wrapper' around the
+This is a small package, essentially a `wrapper' around the
\package{graphicx} package, defining a command |\psfig| which has the
syntax\\
|\psfig{file=xxx,...}| rather than |\includegraphics[...]{xxx}|.\\
@@ -860,7 +876,7 @@ As well as being used as a \LaTeX\ package, the macros may be extracted
with the \package{docstrip} options \texttt{plain,package}. In this case
the \LaTeX\ package declarations are omitted from the file, and the
macros may be directly used as part of another macro file (they work
-with any format based on plain \TeX.)
+with any format based on plain \TeX).
\subsection{Keyval}
The \package{keyval} package is intended to be used by other
diff --git a/macros/latex/required/graphics/keyval.dtx b/macros/latex/required/graphics/keyval.dtx
index 9fce6267e0..02f9a15ec7 100644
--- a/macros/latex/required/graphics/keyval.dtx
+++ b/macros/latex/required/graphics/keyval.dtx
@@ -1,7 +1,7 @@
%
% \iffalse
%% keyval.dtx Copyright (C) 1993 1994 1995 1997 1998 1999 David Carlisle
-%% Copyright (C) 2000-2022 David Carlisle, LaTeX Project
+%% Copyright (C) 2000-2024 David Carlisle, LaTeX Project
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
diff --git a/macros/latex/required/graphics/keyval.pdf b/macros/latex/required/graphics/keyval.pdf
index 2babfc58b9..a53bbf67a3 100644
--- a/macros/latex/required/graphics/keyval.pdf
+++ b/macros/latex/required/graphics/keyval.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/lscape.dtx b/macros/latex/required/graphics/lscape.dtx
index d173af6468..eca5aa432b 100644
--- a/macros/latex/required/graphics/lscape.dtx
+++ b/macros/latex/required/graphics/lscape.dtx
@@ -2,7 +2,7 @@
% \iffalse
%
%% lscape.dtx Copyright (C) 1994 1999-2000 David Carlisle
-%% Copyright (C) 2000-2022 LaTeX Project
+%% Copyright (C) 2000-2024 LaTeX Project
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
diff --git a/macros/latex/required/graphics/lscape.pdf b/macros/latex/required/graphics/lscape.pdf
index 015d7cf79e..465c1e5ea6 100644
--- a/macros/latex/required/graphics/lscape.pdf
+++ b/macros/latex/required/graphics/lscape.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/mathcolor.pdf b/macros/latex/required/graphics/mathcolor.pdf
index fec16fca01..f88db97f8f 100644
--- a/macros/latex/required/graphics/mathcolor.pdf
+++ b/macros/latex/required/graphics/mathcolor.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/rotating.dtx b/macros/latex/required/graphics/rotating.dtx
index ac64086082..bac5759956 100644
--- a/macros/latex/required/graphics/rotating.dtx
+++ b/macros/latex/required/graphics/rotating.dtx
@@ -5,7 +5,7 @@
% File: rotating.dtx
%% Copyright (C) 1995-1999 Sebastian Rahtz and Leonor Barroca
%% Copyright (C) 2001-2003,2007-2009 Robin Fairbairns
-%% Copyright (C) 2016-2022 LaTeX Project
+%% Copyright (C) 2016-2024 LaTeX Project
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%
diff --git a/macros/latex/required/graphics/rotating.pdf b/macros/latex/required/graphics/rotating.pdf
index f0e918b1a0..3acb6b72fc 100644
--- a/macros/latex/required/graphics/rotating.pdf
+++ b/macros/latex/required/graphics/rotating.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/rotex.pdf b/macros/latex/required/graphics/rotex.pdf
index c779c32b95..8df385137b 100644
--- a/macros/latex/required/graphics/rotex.pdf
+++ b/macros/latex/required/graphics/rotex.pdf
Binary files differ
diff --git a/macros/latex/required/graphics/trig.dtx b/macros/latex/required/graphics/trig.dtx
index 4b673494af..d2fa91f91f 100644
--- a/macros/latex/required/graphics/trig.dtx
+++ b/macros/latex/required/graphics/trig.dtx
@@ -1,6 +1,6 @@
% \iffalse
%% File: trig.dtx Copyright (C) 1993-1999 David Carlisle
-%% Copyright (C) 2000-2022 LaTeX Project
+%% Copyright (C) 2000-2024 LaTeX Project
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -19,7 +19,7 @@
%<driver> \ProvidesFile{trig.drv}
% \fi
% \ProvidesFile{trig.dtx}
- [2021/08/11 v1.11 sin cos tan (DPC)]
+ [2023/12/02 v1.11 sin cos tan (DPC)]
%
% \iffalse
%</!plain>
@@ -214,7 +214,7 @@
% \end{macro}
%
% \begin{macro}{\TG@reduce}
-% Repeatedly use one of the the relations
+% Repeatedly use one of the relations
% $\sin(x)=\sin(180-x)=\sin(-180-x)$ to get $x$ in the range $-90 \leq
% x\leq 90$. Then call |\TG@series|.
% \begin{macrocode}
diff --git a/macros/latex/required/graphics/trig.pdf b/macros/latex/required/graphics/trig.pdf
index 28ba18ae5c..b901f23572 100644
--- a/macros/latex/required/graphics/trig.pdf
+++ b/macros/latex/required/graphics/trig.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/README.md b/macros/latex/required/latex-lab/README.md
index b27d0dc8fb..d87f6fedf9 100644
--- a/macros/latex/required/latex-lab/README.md
+++ b/macros/latex/required/latex-lab/README.md
@@ -1,6 +1,6 @@
# LaTeX laboratory
-Release 2023-11-01
+Release 2024-06-01 patch level 0
## Overview
@@ -38,5 +38,5 @@ The license is LPPL 1.3c.
This README file is
-Copyright (C) 2021-2023
+Copyright (C) 2021-2024
The LaTeX Project
diff --git a/macros/latex/required/latex-lab/blocks-code.pdf b/macros/latex/required/latex-lab/blocks-code.pdf
index 91771be25c..f4898a522c 100644
--- a/macros/latex/required/latex-lab/blocks-code.pdf
+++ b/macros/latex/required/latex-lab/blocks-code.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/blocks-doc.pdf b/macros/latex/required/latex-lab/blocks-doc.pdf
index 5f56e9052f..90b0bd984c 100644
--- a/macros/latex/required/latex-lab/blocks-doc.pdf
+++ b/macros/latex/required/latex-lab/blocks-doc.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/changes.txt b/macros/latex/required/latex-lab/changes.txt
index 1a65830e8b..cd53086b2b 100644
--- a/macros/latex/required/latex-lab/changes.txt
+++ b/macros/latex/required/latex-lab/changes.txt
@@ -1,12 +1,176 @@
+2024-05-25 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-table.dtx: disable table headers in presentation tables.
+
+2024-05-25 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-firstaid.dtx: add firstaid for booktabs cmidrules,
+ see tagging-issue 69.
+
+2024-04-18 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * documentmetadata-support.dtx: change handling of default language.
+ The code now tries to detect languages set by babel/polyglossia.
+
+2024-04-16 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-math.dtx: use tagging socket to disable math-writing if tagging
+ is suspended
+
+2024-03-24 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * latex-lab-namespace.xlsx:
+ File added (draft) replacing tagnames-commands.md
+
+2024-03-23 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * documentmetadata-support.dtx: keys for A4-E and A4-F
+
+2024-03-23 Yukai Chou <muzimuzhi@gmail.com>
+
+ * latex-lab-float.dtx (subsection{Patching}):
+ Fix missing underscore (_) in csname
+ Adjust white space before comment in \end@dblfloat
+
+2024-03-23 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-block.dtx: store main text-unit number for marginpars.
+
+2024-03-22 David Carlisle <David.Carlisle@latex-project.org>
+
+ * latex-lab-float.dtx (subsection{Patching}):
+ Adjust white space before comments
+
+2024-03-19 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * latex-lab-firstaid.dtx (subsection{verse}):
+ Added first aid for the verse package.
+
+ * latex-lab-block.dtx (subsection{Object and template interfaces}):
+ Change default for item-indent from 0pt to \itemindent. Otherwise, an
+ explicit setting for \itemindent in a legacy \list environment is
+ not picked up.
+
+2024-03-12 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * latex-lab-footnotes.dtx (section{Reimplementing the \pkg{footmisc} package}):
+ Typeset the footnote mark twice if the hang option is used. This means it can't
+ contain material that alter state, e.g., counters or labels.
+
+2024-03-11 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * latex-lab-footnotes.dtx (subsection{Debugging sockets and hooks}):
+ Added \DebugFNotesOn (and \DebugFNotesOff) not doing much for
+ now. Default is now to have debugging turned off (gh/58).
+
+ (subsubsection{Making documents use the new \cs{@makefntext}}):
+ Before attempting to patch old classes or packages check if the new
+ definition of \@makefntext is the one that was suppliedd by footmisc for
+ the hang option. (gh/12)
+
+ (subsubsection{Making documents use the new \cs{@makefntext}}):
+ Some classes/styles use \makebox rather than \hb@xt@, so try to patch
+ them too. Of course, none of this is very robust. By the end of the
+ day well need updating to the new standard solution.
+
+2024-02-23 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-amsmath.dtx, latex-lab-mathpkg.dtx: handle \pbm and poormans \bm
+ (luatex only)
+
+2024-02-23 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * update tagpdf and pdfmanagement
+
+2024-02-16 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-graphic.dtx: move end structure behind \fi, tagging-project#64
+
+2024-02-12 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-block.dtx: left align description labels.
+
+2024-02-07 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-table.dtx: change value layout to presentation (as in ARIA).
+
+2024-02-09 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-math.dtx: add keys to suppress AF-files locally
+
+2024-02-09 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-title.dtx: force DisplayDocTitle if UA-standard is detected
+
+2024-02-08 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-testphase.dtx: add marginpar tagging to phase-III
+
+2024-02-08 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-math.dtx, latex-lab-table.dtx: adapt tagpdfsetup keys
+
+2024-02-07 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-table.dtx: change key names from table-tagging to table/tagging
+
+2024-02-05 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-float.dtx: fix caption outside float error
+
+2024-02-05 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-toc-kernel-changes.dtx: fix spurious space, tagging-project#50
+
+2024-01-29 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-math.dtx: disable mathgrabbing in begindocument hook.
+
+2024-01-18 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-firstaid.dtx: add support for \authors from amsart.
+
+2024-01-18 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-title.dtx: make \@title and \@author robust to avoid errors
+ if they are not set.
+
+2024-01-18 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-table.dtx: add support for layout tables.
+
+2024-01-18 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-block.dtx: add support to set an attribute-class for para-main.
+
+2024-01-18 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-table.dtx: add option table-tagging=layout
+
+2024-01-17 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-math.dtx, latex-lab-amsmath.dtx, redefine \text to
+ avoid faulty structure and faulty PDF from \mathchoice.
+ Add statistic for mathml handling.
+
+2024-01-14 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-float.dtx, correct destination, see tagging issue #55
+
+2024-01-14 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-block.dtx, correct error message for environments,
+ see tagging issue #57
+
+2024-01-12 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-table.dtx: add some variables for tag names
+
+2024-01-08 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * move mathml-AF support into latex-lab-math.ltx
+
+2023-12-27 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * added latex-lab-title.dtx for maketitle/title and author tagging.
+
+2023-11-18 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-block.dtx, correct error message for items outside lists
+ see tagging issue #35
+
+2023-11-17 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-block.dtx, latex-lab-sec.dtx: use wrapper for para counter,
+ see tagging issue #34
+
+2023-11-12 Joseph Wright <Joseph.Wright@latex-project.org>
+ * latex-lab-math.dtx: tidy variant creation, switch to e-type expansion
+
+2023-11-05 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-math.dtx: remove processor in \(..\), see tagging issue #29
+
+2023-11-05 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * latex-lab-math.dtx: handle also tabular*, see tagging issue #25
+ * latex-lab-table.dtx: use cmd hook for array, see tagging issue #28
+
2023-10-30 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
- * added latex-lab-table.dtx for basic table tagging.
+ * added latex-lab-table.dtx for basic table tagging.
2023-10-21 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
* latex-lab-minipage.dtx: use sockets to allow local changes
2023-10-13 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
- * latex-lab-toc.dtx, latex-lab-sec.dtx, latex-lab-toc-kernel-changes: extend
- \MakeLinkTarget to store the target-structure relationship too, see tagging issue #20
+ * latex-lab-toc.dtx, latex-lab-sec.dtx, latex-lab-toc-kernel-changes: extend
+ \MakeLinkTarget to store the target-structure relationship too, see tagging issue #20
2023-10-13 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
* latex-lab-graphic.dtx: fix handling of scale factor, tagging issue #16
@@ -21,7 +185,7 @@
2023-09-04 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
* label-lab-new-or-1.dtx latex-lab-new-or-2.dtx
fix position of kernel hook in \@makecol (tagpdf issue #58)
-
+
2023-09-04 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
* documentmetadata-support.dtx: add debug key to load tagpdf-debug.
* new latex-lab-namespace.dtx with role mappings
diff --git a/macros/latex/required/latex-lab/documentmetadata-support-code.pdf b/macros/latex/required/latex-lab/documentmetadata-support-code.pdf
index d419630dff..9720f83a60 100644
--- a/macros/latex/required/latex-lab/documentmetadata-support-code.pdf
+++ b/macros/latex/required/latex-lab/documentmetadata-support-code.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/documentmetadata-support-doc.pdf b/macros/latex/required/latex-lab/documentmetadata-support-doc.pdf
index a1c42b21f4..e45892165c 100644
--- a/macros/latex/required/latex-lab/documentmetadata-support-doc.pdf
+++ b/macros/latex/required/latex-lab/documentmetadata-support-doc.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/documentmetadata-support.dtx b/macros/latex/required/latex-lab/documentmetadata-support.dtx
index b37ae6c9d7..a629d9c551 100644
--- a/macros/latex/required/latex-lab/documentmetadata-support.dtx
+++ b/macros/latex/required/latex-lab/documentmetadata-support.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
%
%% File: documentmetadata-support.dtx
-% Copyright (C) 2021-2023 The LaTeX Project
+% Copyright (C) 2021-2024 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -18,8 +18,8 @@
% for those people who are interested or want to report an issue.
%
% \begin{macrocode}
-\def\documentmetadatasupportversion{1.0f}
-\def\documentmetadatasupportdate{2023-09-01}
+\def\documentmetadatasupportversion{1.0h}
+\def\documentmetadatasupportdate{2024-03-26}
% \end{macrocode}
%
%
@@ -84,8 +84,17 @@
% features developed as part of the multi-year ``Tagged PDF''
% project~\cite{blueprint}.
%
-%
-%
+% \section{The \cs{DocumentMetadata} command}
+%
+% \begin{function}{\DocumentMetadata}
+% \begin{syntax}
+% \cs{DocumentMetadata}\Arg{key-value list}
+% \end{syntax}
+%
+% The command should be used as the first command in a document, before
+% \cs{documentclass}. It takes a key-value argument.
+% \end{function}
+
% \section{Currently supported key/values}
%
%
@@ -116,7 +125,8 @@
% e.g., \texttt{lang=de-DE}. If not given the default value used is |en-US|.
%
% \item[\texttt{pdfstandard}] Choice key to set the pdf standard.
-% Currently |A-1b|, |A-2a|, |A-2b|, |A-2u|, |A-3a|, |A-3b|, |A-3u| and |A-4| are accepted as
+% Currently |A-1b|, |A-2a|, |A-2b|, |A-2u|, |A-3a|, |A-3b|, |A-3u|, |A-4|, |A-4E|
+% and |A-4F| are accepted as
% values. The casing is irrelevant, |a-1b| works too.
% Note that using these
% key doesn't mean that the document actually follows the standard. \LaTeX{}
@@ -162,12 +172,12 @@
% \item[\texttt{phase-I}]
% This value loads code implementing the first phase of the project~\cite{blueprint}, i.e., it
% will load the tagpdf package. It will also activate tagging by issuing
-% |\tagpdfsetup{activate,interwordspace}|. This phase
+% |\tagpdfsetup{activate,activate/spaces}|. This phase
% is frozen.
% \item[\texttt{phase-II}]
% It differs from \texttt{phase-I} only in one point: It will
% additionally activate tagging of paragraphs with
-% |\tagpdfsetup{paratagging}|. In the upcoming months it will
+% |\tagpdfsetup{para/tagging}|. In the upcoming months it will
% also enable automatic tagging of other basic document elements.
% \item[\texttt{phase-III}]
% This is the current development phase.
@@ -179,7 +189,7 @@
% and it supports only a limited number of add-on packages.
% \end{description}
%
-% The various testphase modules can also be loaded individually (and least in theory,
+% The various testphase modules can also be loaded individually (at least in theory,
% there can be hidden dependencies). If loaded like this, the tagpdf package is not
% loaded and tagging is not activated! The list of modules will change over time.
% \begin{description}
@@ -213,8 +223,19 @@
% \item[\texttt{text}] This module adds tagging support to the \LaTeX{} logo and
% to the \cs{emph} command.
% This code is also loaded by the \texttt{phase-III} key.
+% \item[\texttt{marginpar}] This module adds tagging support to the \cs{marginpar}
+% command. This code is also loaded by the \texttt{phase-III} key.
+% \item[\texttt{title}] This module add tagging support to the \cs{maketitle}
+% command if a standard class is used. It also enhances the \cs{title}
+% and \cs{author} commands to fill the XMP-metadata and set the window title.
+% It is not compatible with packages and classes which redefine these commands
+% too. The module is currently not loaded by any \texttt{phase} key.
% \item[\texttt{math}] This adapts math for tagging. This is only a prototype.
% The module is currently not loaded by any \texttt{phase} key.
+% \item[\texttt{table}] This provides basic tagging for
+% \texttt{tabular}, \texttt{longtable} and similar table environments.
+% The module is currently not loaded by any \texttt{phase} key. Its use and
+% restrictions is documented in \texttt{latex-lab-table.pdf}.%
% \item[\texttt{firstaid}] This contains small adjustments to external packages.
% The module is currently not loaded by any \texttt{phase} key.
% \end{description}
@@ -274,8 +295,28 @@
\ExplSyntaxOn\makeatletter
% \end{macrocode}
+% \subsection{Variables}
+% These variable definitions are currently also done in ltdocinit.
+% They can be removed from there once latex-lab has been updated to
+% provide them too.
+% \begin{variable}{\g_@@_firstaidoff_clist}
+% A list to store the firstaid code which should be disabled
+% \begin{macrocode}
+\clist_if_exist:NF \g_@@_firstaidoff_clist
+ { \clist_new:N \g_@@_firstaidoff_clist }
+% \end{macrocode}
+% \end{variable}
+% \begin{variable}{\g_@@_testphase_tl}
+% a tl to store the testphase loading code so that we can load them at
+% the end of the command.
+% \begin{macrocode}
+\tl_if_exist:NF \g_@@_testphase_tl
+ { \tl_new:N \g_@@_testphase_tl }
+% \end{macrocode}
+% \end{variable}
-
+% \subsection{\cs{DocumentMetadata}}
+%
% \begin{macro}{\DocumentMetadata}
%
% \cs{DocumentMetadata} should not be used after
@@ -309,14 +350,35 @@
\file_input:n {l3backend-testphase-\c_sys_backend_str.def}
\ExplSyntaxOff\makeatother
% \end{macrocode}
-% Set the default language (this requires that the backend has been loaded),
-% process the rest of the keys,
-% and setup the generic driver.
+%
+% Process the init keys and setup the generic driver.
% \begin{macrocode}
- \keys_set_filter:nnn { document / metadata } { init } { lang=en-US, #1 }
+ \keys_set_filter:nnn { document / metadata } { init } { #1 }
\bool_if:NT \g_@@_active_bool
{
\PassOptionsToPackage{customdriver=hgeneric-testphase}{hyperref}
+% \end{macrocode}
+% Finally we setup the language default.
+% This is done after the begindocument hook so that it can pick up settings
+% from babel. If the Catalog dictionary already contains a lang value we do nothing,
+% otherwise we use the value stored in \cs{BCPdata}, either the main language
+% (if its exists) or the fall back language.
+% Note: if babel is loaded without a language this gives the language \texttt{und}.
+% \begin{macrocode}
+ \g@addto@macro\@kernel@after@begindocument
+ {
+ \pdfdict_get:nnN {g__pdf_Core/Catalog}{Lang}\l_@@_tmpa_tl
+ \quark_if_no_value:NT\l_@@_tmpa_tl
+ {
+ \tl_if_empty:eTF { \BCPdata{main.language} }
+ { \tl_set:Ne \l_@@_tmpb_tl { \BCPdata{language} } }
+ { \tl_set:Ne \l_@@_tmpb_tl { \BCPdata{main.language} } }
+ \msg_warning:nne { meta } { lang-missing }{ \l_@@_tmpb_tl }
+ \exp_last_unbraced:Ne
+ \AddToDocumentProperties{[document]{lang}{\l_@@_tmpb_tl}}
+ \pdfmanagement_add:nne {Catalog} {Lang}{(\l_@@_tmpb_tl)}
+ }
+ }
}
% \end{macrocode}
% \cs{pdfmanagement_add:nnn} has collected values in this hook.
@@ -348,15 +410,8 @@
% \end{macrocode}
% \end{macro}
-
-
-
+%\subsection{\cs{DocumentMetadata} keys}
% \begin{macrocode}
-%FMi defined elsewhere
-%FMi
-%FMi \clist_new:N \g_@@_firstaidoff_clist
-%FMi \tl_new:N \g_@@_testphase_tl
-% UFi should the definition move to here?
\keys_define:nn { document / metadata }
{
backend .choices:nn =
@@ -388,7 +443,7 @@
% this uses internal command from pdfmeta, it should probably move there ...
,pdfstandard .code:n =
{
- \exp_args:Nnx
+ \exp_args:Nne
\keys_set:nn {document / metadata} {_pdfstandard=\str_uppercase:n{#1}}
}
,_pdfstandard .choices:nn =
@@ -400,6 +455,30 @@
}
\AddToDocumentProperties [document]{pdfstandard}{#1}
}
+ ,_pdfstandard / A-4F .code:n =
+ {
+ \prop_if_exist:cTF { g__pdfmeta_standard_pdf/A-4F_prop }
+ {
+ \prop_gset_eq:Nc \g__pdfmeta_standard_prop { g__pdfmeta_standard_pdf/A-4F_prop }
+ }
+ {
+ \prop_gset_eq:Nc \g__pdfmeta_standard_prop { g__pdfmeta_standard_pdf/A-4_prop }
+ \prop_gput:Nnn \g__pdfmeta_standard_prop{conformance}{F}
+ }
+ \AddToDocumentProperties [document]{pdfstandard}{A-4F}
+ }
+ ,_pdfstandard / A-4E .code:n =
+ {
+ \prop_if_exist:cTF { g__pdfmeta_standard_pdf/A-4E_prop }
+ {
+ \prop_gset_eq:Nc \g__pdfmeta_standard_prop { g__pdfmeta_standard_pdf/A-4E_prop }
+ }
+ {
+ \prop_gset_eq:Nc \g__pdfmeta_standard_prop { g__pdfmeta_standard_pdf/A-4_prop }
+ \prop_gput:Nnn \g__pdfmeta_standard_prop{conformance}{E}
+ }
+ \AddToDocumentProperties [document]{pdfstandard}{A-4E}
+ }
,_pdfstandard / unknown .code:n =
{
\msg_warning:nnn{pdf}{unknown-standard}{#1}
@@ -413,7 +492,7 @@
{
\RequirePackage{tagpdf}
\AddToDocumentProperties [document]{testphase/tagpdf}{loaded}
- \tagpdfsetup{activate,paratagging,interwordspace}
+ \tagpdfsetup{activate,para/tagging,activate/spaces}
\AddToDocumentProperties [document]{tagging}{active}
\AddToDocumentProperties [document]{tagging/para}{active}
\AddToDocumentProperties [document]{tagging/interwordspace}{active}
@@ -450,7 +529,7 @@
package/tagpdf/after
}
{
- \tagpdfsetup{paratagging-show}
+ \tagpdfsetup{debug/show=para}
}
}
,debug / log .code:n =
@@ -460,7 +539,7 @@
package/tagpdf/after
}
{
- \tagpdfsetup{log=#1}
+ \tagpdfsetup{debug/log=#1}
}
}
,debug / tagpdf .code:n =
@@ -498,6 +577,11 @@
{
LaTeX-lab~package~'#1'~not~found.
}
+\msg_new:nnn { meta } { lang-missing }
+ {
+ The~language~has~not~been~set~in~\token_to_str:N
+ \DocumentMetadata.\\Setting~it~to~'#1'~as~fallback.
+ }
% \end{macrocode}
%
% \begin{macrocode}
diff --git a/macros/latex/required/latex-lab/latex-lab-amsmath.dtx b/macros/latex/required/latex-lab/latex-lab-amsmath.dtx
index e1f95730fa..57e27067cb 100644
--- a/macros/latex/required/latex-lab/latex-lab-amsmath.dtx
+++ b/macros/latex/required/latex-lab/latex-lab-amsmath.dtx
@@ -2,7 +2,7 @@
%
%% File: latex-lab-amsmath.dtx
%
-% Copyright (C) 2022,2023 The LaTeX Project
+% Copyright (C) 2022-2024 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -66,7 +66,7 @@
% \subsection{File declaration}
% \begin{macrocode}
\ProvidesFile{latex-lab-amsmath.ltx}
- [2023-01-05 v0.1a amsmath adaptions]
+ [2024-02-12 v0.1b amsmath adaptions]
% \end{macrocode}
% \subsection{Tagpdf support}
% To make the code independent from tagging being loaded and active
@@ -90,7 +90,11 @@
\def\intertext##1{%
\ifvmode\else\\\@empty\fi
\noalign{%
- \penalty\postdisplaypenalty\vskip\belowdisplayskip
+% \end{macrocode}
+% we have to flip the sign and use a negative \cs{belowdisplayskip}
+% as we flipped the sign at the outside.
+% \begin{macrocode}
+ \penalty\postdisplaypenalty\vskip-\belowdisplayskip
\vbox{
% \end{macrocode}
% Stop tagging when measuring:
@@ -105,9 +109,13 @@
% \begin{macrocode}
\tag_mc_end_push:
% \end{macrocode}
-% We are already in a par so we change now to Span:
+% We are already in a par so we change now to text:
+% \begin{macrocode}
+ \tagpdfsetup{para/tag=P}%
+% \end{macrocode}
+% TODO why \cs{tagpdfparaOn} needed?
% \begin{macrocode}
- \tagpdfsetup{paratag=Span}%
+ \tagpdfparaOn
\noindent\ignorespaces##1\par
% \end{macrocode}
% Restart the MC
@@ -119,6 +127,110 @@
}
% \end{macrocode}
%
+% \subsection{\cs{text}}
+%
+% The \cs{text} command uses \cs{mathchoice} which \enquote{typesets} the argument
+% four times. This makes it quite problematic for tagging. Without precautions
+% structure objects would be created four times and would get MC-chunks as kids
+% that doesn't really exist. amsmath contains a switch that allows to execute code
+% only in the first (displaymath) branch, but that isn't usable here. At first because
+% we don't know if the first branch creates the same structure as the one that is
+% actually used. At second because the engines executes some commands like \cs{label}
+% and \cs{pdfannot} only at shipout from the branch that really was used. So we would
+% get structure data from one \cs{mathchoice}-branch and MC-labels and links from another
+% one and that gets very messy.
+%
+% We therefore have to avoid that tagging is active in unused branches. In pdflatex it
+% is not possible to detect the mathstyle before, so we use a label. With lualatex is
+% is possible to redefine \cs{text} not to use \cs{mathchoice}
+%
+% \begin{macrocode}
+\AddToHook{package/amstext/after}
+ {
+% \end{macrocode}
+% currently amsmath is loaded in a begindocument hook, so this
+% test is fine. If amstext is loaded earlier (in the kernel), this needs perhaps a change.
+% \begin{macrocode}
+ \tag_if_active:T
+ {
+ \sys_if_engine_luatex:TF
+ {
+ \def\text@#1{{%
+ \ifcase\mathstyle
+ \hbox{{#1}}\or
+ \hbox{{#1}}\or
+ \hbox{{#1}}\or
+ \hbox{{#1}}\or
+ \hbox{{\let\f@size\sf@size\selectfont#1}}\or
+ \hbox{{\let\f@size\sf@size\selectfont#1}}\or
+ \hbox{{\let\f@size\ssf@size\selectfont#1}}\or
+ \hbox{{\let\f@size\ssf@size\selectfont#1}}\or
+ \ERROR
+ \fi
+ \check@mathfonts
+ }}
+ }
+ {
+ \def\text@#1
+ {{
+ \int_gincr:N\g__math_mathchoice_int
+ \tag_stop:
+ \mathchoice
+ {
+ \@@_tag_if_mathstyle:en{mathchoice-\int_use:N\g__math_mathchoice_int}{0}
+ \textdef@\displaystyle\f@size{#1}
+ }
+ {
+ \@@_tag_if_mathstyle:en{mathchoice-\int_use:N\g__math_mathchoice_int}{2}
+ \textdef@\textstyle\f@size{\firstchoice@false #1}
+ }
+ {
+ \@@_tag_if_mathstyle:en{mathchoice-\int_use:N\g__math_mathchoice_int}{4}
+ \textdef@\textstyle\sf@size{\firstchoice@false #1}
+ }
+ {
+ \@@_tag_if_mathstyle:en{mathchoice-\int_use:N\g__math_mathchoice_int}{6}
+ \textdef@\textstyle \ssf@size{\firstchoice@false #1}
+ }
+ \check@mathfonts
+ }}
+ }
+ }
+ }
+% \end{macrocode}
+%
+% \subsection{\cs{pmb}}
+% \cs{pmb} prints is argument three times. For tagging we must mark
+% two of occurences as artifact.
+% For luatex the attributes in the box must be reset, for this
+% we switch to expl3-boxes.
+% \begin{macrocode}
+\AddToHook{package/amsbsy/after}
+ {
+ \def\pmb@@@@#1#2#3{\leavevmode\hbox_set:Nn\l_@@_tmpa_box{xxx#3}
+ \dimen@-\box_wd:N\l_@@_tmpa_box
+ \kern-.5\ex@\box_use:N\l_@@_tmpa_box
+ \tag_mc_end:\tag_mc_begin:n{artifact}
+ \tag_mc_reset_box:N\l_@@_tmpa_box
+ \kern\dimen@\kern.25\ex@\raise.4\ex@\box_use:N\l_@@_tmpa_box
+ \kern\dimen@\kern.25\ex@\box_use_drop:N\l_@@_tmpa_box
+ \tag_mc_end:\tag_mc_begin:n{}
+ }
+ \def\pmb@#1#2{\hbox_set:Nn\l_@@_tmpa_box{$\m@th#1{#2}$}
+ \setboxz@h{$\m@th#1\mkern.5mu$}\pmbraise@\wdz@
+ \binrel@{#2}
+ \dimen@-\box_wd:N\l_@@_tmpa_box
+ \binrel@@@@{
+ \mkern-.8mu\box_use:N\l_@@_tmpa_box
+ \tag_mc_end:\tag_mc_begin:n{artifact}
+ \tag_mc_reset_box:N\l_@@_tmpa_box
+ \kern\dimen@\mkern.4mu\raise\pmbraise@\box_use:N\l_@@_tmpa_box
+ \kern\dimen@\mkern.4mu\box_use_drop:N\l_@@_tmpa_box
+ \tag_mc_end:\tag_mc_begin:n{}
+ }
+ }
+ }
+% \end{macrocode}
% \begin{macrocode}
\ExplSyntaxOff
% \end{macrocode}
diff --git a/macros/latex/required/latex-lab/latex-lab-amsmath.pdf b/macros/latex/required/latex-lab/latex-lab-amsmath.pdf
index 54ffaaf99a..bb5a689c31 100644
--- a/macros/latex/required/latex-lab/latex-lab-amsmath.pdf
+++ b/macros/latex/required/latex-lab/latex-lab-amsmath.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/latex-lab-bib.dtx b/macros/latex/required/latex-lab/latex-lab-bib.dtx
index a467bf3158..e8ee192a7b 100644
--- a/macros/latex/required/latex-lab/latex-lab-bib.dtx
+++ b/macros/latex/required/latex-lab/latex-lab-bib.dtx
@@ -16,8 +16,8 @@
%
% for those people who are interested or want to report an issue.
%
-\def\ltlabbibdate{2023-07-20}
-\def\ltlabbibversion{0.81a}
+\def\ltlabbibdate{2024-02-12}
+\def\ltlabbibversion{0.81b}
%<*driver>
\documentclass{l3doc}
\EnableCrossrefs
@@ -124,6 +124,17 @@
% but has to test if this anchor is already known.
% \end{description}
%
+% \section{Provided or redefined commands}
+%
+% \begin{function}{\@extra@binfo,\@extra@b@citeb}
+%
+% These are taken from hyperref, they are for chapterbib compability (and also
+% signal to chapterbib not to change the citation commands)
+% \end{function}
+%
+% \begin{function}{\@bibitem,\@lbibitem}
+% The internal item commands.
+% \end{function}
%
% \section{Implementation}
% \begin{macrocode}
@@ -264,7 +275,7 @@
\AddToHookWithArguments{bibcite/before}
{
\tag_mc_end_push:
- \exp_args:Nx\tagstructbegin{tag=Reference,ref=cite.#1\@extra@b@citeb}
+ \exp_args:Ne\tagstructbegin{tag=Reference,ref=cite.#1\@extra@b@citeb}
\tagmcbegin{}
}
\AddToHookWithArguments{bibcite/after}[tag]
@@ -318,7 +329,7 @@
{
\leavevmode
\tag_mc_end_push:
- \exp_args:Nx\tag_struct_begin:n{tag=Reference,ref=cite.#1\@extra@b@citeb}
+ \exp_args:Ne\tag_struct_begin:n{tag=Reference,ref=cite.#1\@extra@b@citeb}
\tag_mc_begin:n{}
}
\AddToHook{cmd/hyper@natlinkend/after}
diff --git a/macros/latex/required/latex-lab/latex-lab-bib.pdf b/macros/latex/required/latex-lab/latex-lab-bib.pdf
index fabcc7cfa3..7befa83ed9 100644
--- a/macros/latex/required/latex-lab/latex-lab-bib.pdf
+++ b/macros/latex/required/latex-lab/latex-lab-bib.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/latex-lab-block.dtx b/macros/latex/required/latex-lab/latex-lab-block.dtx
index e0a723ca87..7d08b270d2 100644
--- a/macros/latex/required/latex-lab/latex-lab-block.dtx
+++ b/macros/latex/required/latex-lab/latex-lab-block.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: latex-lab-block.dtx (C) Copyright 2021-2023 LaTeX Project
+%% File: latex-lab-block.dtx (C) Copyright 2021-2024 LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -9,10 +9,10 @@
%
% https://www.latex-project.org/lppl.txt
%
-\def\ltlabblockdate{2023-09-01}
-\def\ltlabblockversion{0.8h}
+\def\ltlabblockdate{2024-03-23}
+\def\ltlabblockversion{0.8n}
%<*driver>
-\documentclass{l3doc}
+\documentclass[kernel]{l3doc}
\usepackage{amstext}
\EnableCrossrefs
\CodelineIndex
@@ -308,7 +308,7 @@
% \end{TemplateDescription}
%
% The maximum number of \xt{blockenv}s that can be nested into each
-% other is is restricted by the \LaTeX{} counter
+% other is restricted by the \LaTeX{} counter
% \texttt{maxblocklevels} with a default value of \texttt{6}. If this
% value is increased then it is necessary to provide additional
% instances, e.g., \texttt{displayblock-7}, etc. Decreasing is, of
@@ -646,11 +646,59 @@
%
% \end{description}
%
+% \section{Debugging}
+%
+% \begin{function}{\DebugBlocksOn,\DebugBlocksOff, \block_debug_on:, \block_debug_off:}
+%
+% These commands enable/disable debugging messages.
+%
+% \end{function}
%
+% \section{New and redefined kernel command}
+%
+% \begin{function}{\@doendpe}
+% The original \LaTeXe{} command is augmented to allow for tagging.
+% \end{function}
%
+% \begin{function}{\legacyverbatimsetup,\legacylistsetupcode}
+% \emph{to be documented}
+% \end{function}
+%
+% \begin{function}{\@setupverbinvisiblespace}
+% A counterpart definition to the kernel command \cs{@setupverbinvisiblespace},
+% needed as we need to handle real space chars in verbatim.
+% \end{function}
+%
+% \begin{function}{endblockenv,\g_block_nesting_depth_int}
+% \emph{to be documented}
+% \end{function}
+%
+% \begin{function}{\newtheorem,\@thm,\@begintheorem}
+% Redefined to make theorems tagging aware.
+% \end{function}
%
+% \begin{function}{\item,\@itemlabel}
+% The \cs{item} is redefined.
+% \end{function}
%
-%
+% \begin{function}{\c@maxblocklevels}
+% A counter to increase or decrease the number of supported
+% level. If increased, one needs to supply additional level instances.
+% \end{function}
+%
+% \begin{function}{\begin}
+% The \cs{begin} is slightly redefine to handle \cs{@doendpe} better.
+% TODO: move to kernel
+% \end{function}
+%
+% \begin{function}{\para_end:}
+% TODO: consider name, document
+% \end{function}
+%
+% \begin{function}{para/begin}
+% The para/begin hook is enhanced to support list ends
+% \end{function}
+%
% \end{documentation}
%
% \StopEventually{\setlength\IndexMin{200pt} \PrintIndex }
@@ -674,10 +722,6 @@
blockenv implementation]
% \end{macrocode}
%
-% We make use of templates:
-% \begin{macrocode}
-\RequirePackage{xtemplate}
-% \end{macrocode}
% Generell kernel changes, also loaded by the sec and toc code.
% \begin{macrocode}
\RequirePackage{latex-lab-kernel-changes}
@@ -691,7 +735,7 @@
\tl_new:N \l_@@_item_align_tl
\tl_new:N\l_@@_legacy_env_params_tl
% \end{macrocode}
-
+%
% \subsection{Handling \cs{par} after the end of the list}
%
% An empty line (or a \cs{par}) after a list has semantic meaning as
@@ -767,11 +811,11 @@
% given use in the document. This section is devoted to template
% interfaces, and the template code is covered later.
% \begin{macrocode}
-\DeclareObjectType{blockenv}{1}
-\DeclareObjectType{block}{1}
-\DeclareObjectType{para}{1}
-\DeclareObjectType{list}{1}
-\DeclareObjectType{item}{1}
+\NewTemplateType{blockenv}{1}
+\NewTemplateType{block}{1}
+\NewTemplateType{para}{1}
+\NewTemplateType{list}{1}
+\NewTemplateType{item}{1}
% \end{macrocode}
% \end{objecttype}
%
@@ -854,7 +898,7 @@
item-instance : instance{item} = basic ,
item-skip : skip = \itemsep ,
item-penalty : integer = \UseName{@itempenalty} ,
- item-indent : length = 0pt , % was \itemindent
+ item-indent : length = \itemindent ,
label-width : length = \labelwidth ,
label-sep : length = \labelsep ,
legacy-support : boolean = false ,
@@ -893,8 +937,8 @@
% This section collects \pkg{expl3} commands that will be useful.
%
% \begin{macro}{\@@_skip_set_to_last:N,\@@_skip_remove_last:}
-% Set a skiip register to the value of an immediately preceding
-% skip or zero if there was none
+% Set a skip register to the value of an immediately preceding
+% skip or zero if there was none.
% \begin{macrocode}
\cs_new_protected:Npn \@@_skip_set_to_last:N #1 {
\skip_set:Nn #1 { \tex_lastskip:D }
@@ -907,12 +951,9 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\tl_if_novalue:nTF}
-%
% \begin{macrocode}
\cs_generate_variant:Nn \tl_if_novalue:nTF { o }
% \end{macrocode}
-% \end{macro}
%
%
% \subsubsection{Debugging}
@@ -1342,14 +1383,14 @@
\@definecounter {#2}
\IfNoValueTF {#4}
{ % @ynthm
- \tl_gset:cx { the #2 }
+ \tl_gset:ce { the #2 }
{
\@thmcounter{#2}
}
}
{ % @xnthm
\@newctr{#1}[#4]
- \tl_gset:cx { the #2 }
+ \tl_gset:ce { the #2 }
{
\expandafter\noexpand\csname the#4\endcsname
\@thmcountersep
@@ -1802,7 +1843,7 @@
fixed-word-spaces = \l__par_fixed_word_spaces_bool , % name??
final-hyphen-demerits = \finalhyphendemerits ,
cr-cmd = \\ ,
- para-class = \l_tag_para_attr_class_tl ,
+ para-class = \l__tag_para_attr_class_tl ,
}
{
\tl_if_empty:nF {#1} { \SetTemplateKeys{para}{std}{#1} }
@@ -2260,6 +2301,9 @@
\exp_after:wN \use_ii:nn \l_@@_item_align_tl
}
}
+% \end{macrocode}
+% Add another box level to the label box:
+% \begin{macrocode}
\hbox_set:Nn \l_@@_one_label_box
{ \box_use_drop:N \l_@@_one_label_box }
}
@@ -2488,10 +2532,13 @@
{
\@inmatherr \item
% \end{macrocode}
-% TODO: Test for being outside of a list needs updating!
+% TODO: Check if test for being outside of a list is sensible
% \begin{macrocode}
- \tl_if_empty:oTF \@@_item_instance:n %%FMi?
- { \msg_error:nnn { @@ } { item-in-nonlist } { \item[{#1}] } }
+ \cs_if_free:NTF \@@_item_instance:n
+ {
+ \@latex@error{Lonely~\string\item--perhaps~a~missing~
+ list~environment}\@ehc
+ }
{
\legacy_if:nTF { @newlist }
{ \__kernel_list_item_begin: }
@@ -2630,7 +2677,7 @@
%
% \item Then open an new (inner) structure (by default
% \texttt{Figure} but typically the one specified on the instance).
-% \item At the end of the block close the the inner structure
+% \item At the end of the block close the inner structure
% (\texttt{Figure} or explicit one)
% but leave the \texttt{text-unit} open to be either continued or closed due to a
% following \cs{par}.
@@ -3290,6 +3337,7 @@
\DeclareInstance{item}{description}{std}
{
label-format = \normalfont\bfseries #1 ,
+ label-align = left
}
% \end{macrocode}
% \end{instance}
@@ -3303,10 +3351,10 @@
{
\tagpdfsetup
{
- newattribute = {justify} {/O /Layout /TextAlign/Justify},
- newattribute = {center} {/O /Layout /TextAlign/Center},
- newattribute = {raggedright}{/O /Layout /TextAlign/Start},
- newattribute = {raggedleft} {/O /Layout /TextAlign/End},
+ role/new-attribute = {justify} {/O /Layout /TextAlign/Justify},
+ role/new-attribute = {center} {/O /Layout /TextAlign/Center},
+ role/new-attribute = {raggedright}{/O /Layout /TextAlign/Start},
+ role/new-attribute = {raggedleft} {/O /Layout /TextAlign/End},
}
}
% \end{macrocode}
@@ -3389,9 +3437,7 @@
%
% In this section we provide code to the various kernel hooks to support
% the tagging of the different displayblock environments.
-%
-%
-%
+%
% All of the following definitions should only be made if tagging
% is active!
% \begin{macrocode}
@@ -3424,8 +3470,13 @@
{
\int_compare:nNnT \l_@@_flattened_level_int < 2
{
- \int_gincr:N \g__tag_para_main_begin_int
- \tagstructbegin{tag=\l__tag_para_main_tag_tl}
+ \__tag_gincr_para_main_begin_int:
+ \tag_struct_begin:n
+ {
+ tag=\l__tag_para_main_tag_tl,
+ attribute-class=\l__tag_para_main_attr_class_tl,
+ }
+ \__tag_para_main_store_struct:
}
}
}
@@ -3445,7 +3496,7 @@
\cs_set:Npn \@@_beginpar_hmode:N #1
{
\tag_mc_end:
- \int_gincr:N \g__tag_para_end_int
+ \__tag_gincr_para_end_int:
\@@_debug_typeout:n{increment~ /P \on@line }
\bool_if:NT \l__tag_para_show_bool
{ \tag_mc_begin:n{artifact}
@@ -3492,7 +3543,7 @@
{
\@@_debug_typeout:n{Structure-end~
\l__tag_para_main_tag_tl\space after~ displayblock \on@line }
- \int_gincr:N \g__tag_para_main_end_int
+ \__tag_gincr_para_main_end_int:
\tag_struct_end: %text-unit
}
}
@@ -3551,16 +3602,21 @@
{
\bool_if:NF \l__tag_para_flattened_bool
{
- \int_gincr:N \g__tag_para_main_begin_int
- \tag_struct_begin:n{tag=\l__tag_para_main_tag_tl}
+ \__tag_gincr_para_main_begin_int:
+ \tag_struct_begin:n
+ {
+ tag=\l__tag_para_main_tag_tl,
+ attribute-class=\l__tag_para_main_attr_class_tl,
+ }
+ \__tag_para_main_store_struct:
}
}
- \int_gincr:N \g__tag_para_begin_int
+ \__tag_gincr_para_begin_int:
\@@_debug_typeout:n{increment~ P \on@line }
\tag_struct_begin:n
{
tag=\l__tag_para_tag_tl
- ,attribute-class=\l_tag_para_attr_class_tl
+ ,attribute-class=\l__tag_para_attr_class_tl
}
\__tag_check_para_begin_show:nn {green}{#1}
\tag_mc_begin:n {}
@@ -3572,15 +3628,20 @@
\cs_new_protected:Npn \@@_start_para_structure_unconditionally:n #1 {
\bool_if:NF \l__tag_para_flattened_bool
{
- \int_gincr:N \g__tag_para_main_begin_int
- \tag_struct_begin:n{tag=\l__tag_para_main_tag_tl}
+ \__tag_gincr_para_main_begin_int:
+ \tag_struct_begin:n
+ {
+ tag=\l__tag_para_main_tag_tl,
+ attribute-class=\l__tag_para_main_attr_class_tl,
+ }
+ \__tag_para_main_store_struct:
}
- \int_gincr:N \g__tag_para_begin_int
+ \__tag_gincr_para_begin_int:
\@@_debug_typeout:n{increment~ P \on@line }
\tag_struct_begin:n
{
tag=\l__tag_para_tag_tl
- ,attribute-class=\l_tag_para_attr_class_tl
+ ,attribute-class=\l__tag_para_attr_class_tl
}
\__tag_check_para_begin_show:nn {green}{#1}
\tag_mc_begin:n {}
@@ -3594,14 +3655,14 @@
{
\bool_if:NT \l__tag_para_bool
{
- \int_gincr:N \g__tag_para_end_int
+ \__tag_gincr_para_end_int:
\@@_debug_typeout:n{increment~ /P \on@line }
\tag_mc_end:
\__tag_check_para_end_show:nn {red}{}
\tag_struct_end:
\bool_if:NF \l__tag_para_flattened_bool
{
- \int_gincr:N \g__tag_para_main_end_int
+ \__tag_gincr_para_main_end_int:
\tag_struct_end:
}
}
@@ -3657,7 +3718,7 @@
\DeclareRobustCommand*\begin[1]{%
\UseHook{env/#1/before}%
\@ifundefined{#1}%
- {\def\reserved@a{\@latex@error{Environment #1 undefined}\@eha}}%
+ {\def\reserved@a{\@latex@error{Environment~#1~undefined}\@eha}}%
{\def\reserved@a{\def\@currenvir{#1}%
\edef\@currenvline{\on@line}%
\@execute@begin@hook{#1}%
@@ -3680,7 +3741,7 @@
{
\bool_if:NF \l__tag_para_flattened_bool
{
- \int_gincr:N \g__tag_para_main_end_int
+ \__tag_gincr_para_main_end_int:
\tag_struct_end:
}
\@endpefalse
@@ -3722,7 +3783,7 @@
\@@_debug_typeout:n{block-end \on@line}
\legacy_if:nT { @endpe }
{
- \int_gincr:N \g__tag_para_main_end_int
+ \__tag_gincr_para_main_end_int:
\@@_debug_typeout:n{close~ /text-unit \on@line}
\tagstructend
}
@@ -3752,11 +3813,17 @@
{
\tagpdfsetup
{
+ role/new-attribute = {itemize}{/O /List /ListNumbering/Unordered},
+ role/new-attribute = {enumerate}{/O /List /ListNumbering/Ordered},
+ role/new-attribute = {description}{/O /List /ListNumbering/Description},
+% \end{macrocode}
+% Initially, we had \texttt{/None} for the basic \env{list}
+% environment, but that is not allowed in PDF/UA-2 if the list
+% contains any Lbl tags. So now we default to
+% \texttt{Unordered}.
+% \begin{macrocode}
% default if unknown
- newattribute = {list}{/O /List /ListNumbering/None},
- newattribute = {itemize}{/O /List /ListNumbering/Unordered},
- newattribute = {enumerate}{/O /List /ListNumbering/Ordered},
- newattribute = {description}{/O /List /ListNumbering/Description},
+ role/new-attribute = {list}{/O /List /ListNumbering/Unordered},
}
}
% \end{macrocode}
@@ -3792,7 +3859,7 @@
\cs_set:Npn \__kernel_list_label_begin: {
%
% FMi: this needs a different logic to decide when to make the label
-% an artifact (after cleaning up the the \item code ), therefore
+% an artifact (after cleaning up the \item code ), therefore
% disabled for now
% \tl_if_empty:oTF \@itemlabel
% {
@@ -3835,7 +3902,7 @@
\cs_set:Npn \@@_list_item_end: {
\legacy_if:nT { @endpe }
{
- \int_gincr:N \g__tag_para_main_end_int
+ \__tag_gincr_para_main_end_int:
\tagstructend % text-unit
% \@@_debug_typeout:n{Structure-end~ P~ at~ item-end \on@line }
}
@@ -3854,7 +3921,7 @@
\cs_set:Npn \@@_list_end: {
\legacy_if:nT { @endpe }
{
- \int_gincr:N \g__tag_para_main_end_int
+ \__tag_gincr_para_main_end_int:
\tagstructend % text-unit
\@@_debug_typeout:n{Structure-end~ P~ at~ list-end \on@line }
}
diff --git a/macros/latex/required/latex-lab/latex-lab-block.pdf b/macros/latex/required/latex-lab/latex-lab-block.pdf
index ad89aede81..34e2a248fa 100644
--- a/macros/latex/required/latex-lab/latex-lab-block.pdf
+++ b/macros/latex/required/latex-lab/latex-lab-block.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/latex-lab-firstaid.dtx b/macros/latex/required/latex-lab/latex-lab-firstaid.dtx
index e2ee78b2ff..ce0d46f815 100644
--- a/macros/latex/required/latex-lab/latex-lab-firstaid.dtx
+++ b/macros/latex/required/latex-lab/latex-lab-firstaid.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: latex-lab-firstaid.dtx (C) Copyright 2023 LaTeX Project
+%% File: latex-lab-firstaid.dtx (C) Copyright 2023-2024 LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -16,8 +16,8 @@
%
% for those people who are interested or want to report an issue.
%
-\def\ltlabfirstaiddate{2023-07-20}
-\def\ltlabfirstaidversion{0.85a}
+\def\ltlabfirstaiddate{2024-05-25}
+\def\ltlabfirstaidversion{0.85d}
%<*driver>
\documentclass{l3doc}
\EnableCrossrefs
@@ -55,6 +55,7 @@
% patches once the packages have been updated.
% \section{Implementation}
+%
% \begin{macrocode}
%<*package>
%<@@=tag>
@@ -64,8 +65,153 @@
\ltlabfirstaiddate\space v\ltlabfirstaiddate\space
Temporary patches to external packages needed for the tagging project]
% \end{macrocode}
+% \begin{macro}{\FirstAidNeededT}
+% This is a very simple help to ensure that we only apply first aid
+% to an unmodified package or class. It only works in the case the
+% file has already been loaded and the csname \cs{ver@\#1.\#2} got
+% defined (holding the current date, version, and short description
+% info). We then compare its content to a frozen string and make
+% the modification \verb=#3= only if both agree. If they differ we
+% assume that the package/class in question got updated by its
+% maintainer.
+% \begin{macrocode}
+\ExplSyntaxOn
+\providecommand\FirstAidNeededT[3]{
+ \exp_args:Ncx\str_if_eq:onF{ver@#1.#2}{#3}
+ { \typeout{==>~ First~ Aid~ for~ #1.#2~ no~ longer~ applied!^^J
+ \@spaces Expected:^^J
+ \@spaces\@spaces #3^^J
+ \@spaces but~ found:^^J
+ \@spaces\@spaces \use:c{ver@#1.#2}^^J
+ \@spaces so~ I'm~ assuming~ it~ got~ fixed.
+ } }
+ \exp_args:Ncx\str_if_eq:onT{ver@#1.#2}{#3}
+}
+\ExplSyntaxOff
+% \end{macrocode}
+% \end{macro}
+% \subsection{ams classes}
+% The amsart and amsbook classes do not use \cs{@author} to store the author list
+% but a command \cs{authors}. To be able to nevertheless use the authors in the
+% xmp-metadata we map \cs{@author} to this new command.
+%
+% \begin{macrocode}
+\AddToHook{class/amsart/after}
+ {\def\@author{\authors}}
+\AddToHook{class/amsbook/after}
+ {\def\@author{\authors}}
+% \end{macrocode}
+%
+%
+%
+% \subsection{verse}
+%
+% The \pkg{verse} package has its own definition of the
+% \env{verse} environment, which would tag correctly, except that
+% it is overwritten by the block code in the hook
+% \texttt{begindocument/before}. So the simplest way to make
+% tagging work is to reinstall the package version afterwards,
+% which is what we are doing here.
+% \begin{macrocode}
+\AddToHook{package/verse/after}[latex-lab-firstaid]{%
+ \FirstAidNeededT{verse}{sty}{2014/05/10 v2.4b verse typesetting}%
+ {%
+ \AtBeginDocument{%
+ \renewenvironment{verse}[1][\linewidth]{%
+ \stepcounter{verse@envctr}%
+ \setcounter{poemline}{0}\refstepcounter{poemline}%
+ \setcounter{vslineno}{1}%
+ \let\\=\@vscentercr
+ \list{}{\itemsep \z@
+ \itemindent -\vindent
+ \listparindent\itemindent
+ \parsep \stanzaskip
+ \ifdim #1 < \linewidth
+ \rightmargin \z@
+ \setlength{\leftmargin}{\linewidth}%
+ \addtolength{\leftmargin}{-#1}%
+ \addtolength{\leftmargin}{-0.5\leftmargin}%
+ \else
+ \rightmargin \leftmargin
+ \fi
+ \addtolength{\leftmargin}{\vindent}}%
+ \item[]%
+ }%
+ {\endlist}%
+ }%
+ }%
+}
+% \end{macrocode}
+% Of course, this means that the
+% optional argument of the environment then only accepts a length
+% value and not any more a key value list for altering the
+% environment settings.
+%
+% A more elabroate version could be something like this that allows
+% key/val and legacy interface. Or one could extend the list
+% template to support a \texttt{list-width} key.
+%\begin{verbatim}
+% \ExplSyntaxOn
+% \cs_new_protected:Npn \ExtractAndDropKey #1#2#3#4#5 {
+% \tl_set_eq:NN #4 \c_novalue_tl % or empty?
+% \keys_define:nn { #1 } { #2 .code:n = \tl_set:Nn #4{##1} }
+% \keys_set_known:nnN { #1 } { #3 } #5
+% }
+% \ExplSyntaxOff
+%
+% % Change the env definition for verse matching verse.sty
+% % This keeps the verse.sty interface as it is and only adjusts the
+% % main environment to use the basic list env with the verse.sty
+% % specific settings.
+% \makeatletter
+%
+% \AddToHook{package/verse/after}{%
+% \AtBeginDocument{%
+% \RenewDocumentEnvironment{verse}{={verse-width}!O{\linewidth}}%
+% {%
+% \stepcounter{verse@envctr}%
+% \setcounter{poemline}{0}\refstepcounter{poemline}%
+% \setcounter{vslineno}{1}%
+% \let\\=\@vscentercr
+% %
+% \ExtractAndDropKey{verse}{verse-width}{#1}\@vswidth\@vsremainingkvlist
+% % If other keys have been specified but not verse-width we have no
+% % default for \@vswidth and need to set it again
+% \ExpandArgs{o}\IfNoValueT \@vswidth
+% {\def\@vswidth{\linewidth}}%
+% %
+% % This is a bit ugly but we can't stick \cs{@vsremainingkvlist} into
+% % the instance argument as keys are expected to be visible on
+% % top-level not hidden inside a macro. The alternative is to push
+% % in \verb=#1= but then the key/value \verb/verse-width=.../ is
+% % passed into the instance which is not known there (not harmful as
+% % it will get ignored but noticeably more and unnecessary
+% % processing).
+% %
+% \def\next##1{%
+% \UseInstance{blockenv}{list}%
+% {%
+% item-indent =-\vindent,%
+% parindent =-\vindent,%
+% par-skip =\stanzaskip,%
+% item-skip =0pt,%
+% leftmargin = (\linewidth-\@vswidth)/2+\vindent,%
+% rightmargin = \ifdim\@vswidth<\linewidth 0pt
+% \else (\linewidth-\@vswidth)/2\fi,%
+% ##1%
+% }}%
+% \ExpandArgs{o}\next\@vsremainingkvlist
+% \item\relax
+% }{\endblockenv}%
+% }%
+% }
+% \makeatother
+%\end{verbatim}
+%
+%
% \subsection{blindtext}
+%
% The blindtext package generates lists with nested \cs{loop} command.
% The inner loop introduces a group around the list which error when lists are tagged
% as \cs{@doendpe} is lost.
@@ -106,7 +252,10 @@
}%
}
% \end{macrocode}
+%
+%
% \subsection{cleveref}
+%
% The cleveref package redefines \cs{@makefntext} and this means that the patches in
% the new footnote code fails. We use a hook instead
% \begin{macrocode}
@@ -130,9 +279,48 @@
}%
}
% \end{macrocode}
+%
+% \subsection{booktabs}
+% In some cases booktabs inserts a
+% \cs{multispan} into the table (through the commands \cs{@cmidruleb}
+% and \cs{@cmidrulea} and this then errors
+% with the tagging code.
+% This affects both tabular and longtable
+% (but longtable more as booktabs handles lines in longtable differently).
+% See also issue \url{https://github.com/latex3/tagging-project/issues/69}
+%
+%
+\ExplSyntaxOn
+\AddToHook{package/booktabs/after}
+ {
+ \def\@cmidrulea{
+ \multispan\@cmidla
+ &\multispan\@cmidlb
+ \unskip\hskip\cmrkern@l
+ {
+ \tag_mc_begin:n{artifact}
+ \CT@arc@\leaders\hrule \@height\@thisrulewidth\hfill\kern\z@}
+ \hskip\cmrkern@r
+ \tag_mc_end: \int_gdecr:N \g__tbl_row_int
+ \cr}
+
+ \def\@cmidruleb{%
+ \multispan\@cmidlb
+ \unskip\hskip \cmrkern@l%
+ {
+ \tag_mc_begin:n{artifact}
+ \CT@arc@\leaders\hrule \@height\@thisrulewidth\hfill\kern\z@}
+ \hskip\cmrkern@r
+ \tag_mc_end: \int_gdecr:N \g__tbl_row_int
+ \cr}
+ }
+\ExplSyntaxOff
+%
% \begin{macrocode}
%</package>
% \end{macrocode}
+%
+%
% \begin{macrocode}
%<*latex-lab>
\ProvidesFile{firstaid-latex-lab-testphase.ltx}
diff --git a/macros/latex/required/latex-lab/latex-lab-firstaid.pdf b/macros/latex/required/latex-lab/latex-lab-firstaid.pdf
index c2b3b49a43..5df8b1cf4e 100644
--- a/macros/latex/required/latex-lab/latex-lab-firstaid.pdf
+++ b/macros/latex/required/latex-lab/latex-lab-firstaid.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/latex-lab-float.dtx b/macros/latex/required/latex-lab/latex-lab-float.dtx
index 3bd3483600..a817133713 100644
--- a/macros/latex/required/latex-lab/latex-lab-float.dtx
+++ b/macros/latex/required/latex-lab/latex-lab-float.dtx
@@ -16,8 +16,8 @@
%
% for those people who are interested or want to report an issue.
%
-\def\ltlabfloatdate{2023-07-20}
-\def\ltlabfloatversion{0.81a}
+\def\ltlabfloatdate{2024-03-23}
+\def\ltlabfloatversion{0.81e}
%<*driver>
\documentclass{l3doc}
\EnableCrossrefs
@@ -86,8 +86,8 @@
% In PDF~2.0 there is the suitable \texttt{Aside} tag which hopefully will
% be handled correctly regarding the reading order once processor actually support
% PDF~2.0. But in PDF~1.7 we rolemap it to \texttt{Note} and this doesn't lead to
-% a good reading order. The code therefore collect the float structures and moves
-% them to a \texttt{Sect} the end of the document or the chapter
+% a good reading order. The code therefore collects the float structures and moves
+% them to a \texttt{Sect} at the end of the document or the chapter
% (H-floats once they are handled will not be moved).
%
% To fulfill the requirement that a \texttt{Caption} should be at the begin or end, we always
@@ -106,6 +106,8 @@
%
% The code add two keys for the \cs{tagtool} command
%
+%
+% \begin{function}{flush-floats,split-float}
% \begin{description}
% \item[flush-floats] This will flush out the collected floats sofar (currently
% table and figure. The value is a sectioning level, e.g. \texttt{section} or \texttt{chapter},
@@ -117,9 +119,19 @@
% \item[split-float] This can be used inside a float if there are two captions.
% It will only work reasonably well if the content of the float parts are in a sensible order
% and can be separated by this command. More complex setups with tabulars will need more
-% thoughts
+% thoughts.
+% \end{description}
+% \end{function}
+%
+% \section{Kernel commands}
+% \begin{function}{\@current@float@struct}
+% This variable holds the structure number of current float structure.
+% \end{function}
%
-% \end{description}
+% \begin{function}{\@makecaption}
+% \cs{@makecaption} is defined by the classes so we overwrite it for now
+% at begin document.
+% \end{function}
%
%
% \begin{macrocode}
@@ -182,7 +194,7 @@
\seq_map_inline:Nn\g_@@_float_types_seq
{
\tag_struct_begin:n{tag=##1s,stash}
- \prop_gput:Nnx\g_@@_float_sect_prop {##1-struct}{\int_use:N\c@g__tag_struct_abs_int}
+ \prop_gput:Nne\g_@@_float_sect_prop {##1-struct}{\int_use:N\c@g__tag_struct_abs_int}
\tag_struct_end:
}
}
@@ -239,6 +251,7 @@
{\par\__tag_sec_end:n{-10}\@@_float_stop_sect:}
\DeclareHookRule{tagpdf/finish/before}{latex-lab/float}{before}{tagpdf}
% \end{macrocode}
+%
% \subsection{Splitting floats}
% \begin{macro}{split-float}
% TODO: check if the target affect spacing!!
@@ -249,7 +262,7 @@
{
\@@_float_end:
\@@_float_begin:
- \MakeLinkTarget[tagstructure]{g__tag_struct_abs_int}
+ \MakeLinkTarget*{floatstructure.\int_use:N\c@g__tag_struct_abs_int}
}
}
% \end{macrocode}
@@ -290,12 +303,12 @@
{
\exp_args:Ne
\tag_struct_begin:n{tag=float,parent=0\prop_item:No\g_@@_float_sect_prop{\@captype-struct}}%
- \prop_gput:Nxx \g_@@_float_sect_prop {\@captype-used}{true}
+ \prop_gput:Nee \g_@@_float_sect_prop {\@captype-used}{true}
}
{
\tag_struct_begin:n{tag=float}
}
- \tl_set:Nx\@current@float@struct{\tag_get:n{struct_num}}%
+ \tl_set:Ne\@current@float@struct{\tag_get:n{struct_num}}%
\typeout{Float structure: \@current@float@struct}
}
@@ -324,7 +337,7 @@
% \end{macrocode}
% If the float is in hmode we have to interrupt the P
% \begin{macrocode}
- \@nameuse{@@_float_stoppar:} %<---end P
+ \@nameuse{@@_float_stop_par:}% <---end P
\@floatpenalty -\@Mii
\else
\@floatpenalty-\@Miii
@@ -381,7 +394,7 @@
% \end{macrocode}
% We add a target for links. TODO: check that it doesn't affect spacing!!
% \begin{macrocode}
- \MakeLinkTarget[tagstructure]{g__tag_struct_abs_int}%
+ \MakeLinkTarget*{floatstructure.\number\value{g__tag_struct_abs_int}}%
}%
% \end{macrocode}
% The end code of the float ...
@@ -400,7 +413,7 @@
\penalty\@floatpenalty
\else
\vadjust{\penalty -\@Miv \vbox{}\penalty\@floatpenalty}\@Esphack
- \@nameuse{@@_float_start_par:} %restart P safe here??
+ \@nameuse{@@_float_start_par:}% restart P safe here??
\fi
\fi
}
@@ -423,7 +436,7 @@
\penalty\@floatpenalty
\else
\vadjust{\penalty -\@Miv \vbox{}\penalty\@floatpenalty}\@Esphack
- \@nameuse{@@_float_start_par:} %restart P safe here??
+ \@nameuse{@@_float_start_par:}% restart P safe here??
\fi
\fi
\else
@@ -446,10 +459,24 @@
\let\@kernel@refstepcounter\refstepcounter %as long it is not in the kernel
\def\caption{%
\ifx\@captype\@undefined
- \@latex@error{\noexpand\caption outside float}\@ehd
+ \@latex@error{\noexpand\caption\c_space_tl outside~float}\@ehd
\expandafter\@gobble
- \else
- \@kernel@refstepcounter\@captype
+ \else
+% \end{macrocode}
+% if a caption is used outside a float no
+% target has been set and \cs{@current@float@struct} is empty
+% \begin{macrocode}
+ \tl_if_empty:NTF\@current@float@struct
+ {
+ \refstepcounter\@captype
+ }
+ {
+ \@kernel@refstepcounter\@captype
+% \end{macrocode}
+% we need to reset the target for \cs{addcontentsline}.
+% \begin{macrocode}
+ \xdef\@currentHref{floatstructure.\@current@float@struct}%
+ }
\expandafter\@firstofone
\fi
{\@dblarg{\@caption\@captype}}%
@@ -471,7 +498,6 @@
{
\long\def\@makecaption#1#2{%
\vskip\abovecaptionskip
- \xdef\@currentHref{tagstructure.\@current@float@struct}%
% \end{macrocode}
% we don't want tagging when storing the caption for the singleline check
% \begin{macrocode}
@@ -482,12 +508,21 @@
% we stop paratagging. TODO: check
% \begin{macrocode}
\tagtool{para=false}
- \tag_struct_begin:n{tag=Caption,parent=\@current@float@struct}
+% \end{macrocode}
+% if caption is used outside a float there is perhaps no number, then we use
+% the parent structure and hope ...
+% \begin{macrocode}
+ \tl_if_empty:NT \@current@float@struct
+ { \tl_set:Ne \@current@float@struct {\tag_get:n{struct_num}} }
+ \tag_struct_begin:n{tag=Caption,parent=\@current@float@struct}
% \end{macrocode}
% move the caption to the begin of the float structure:
% \begin{macrocode}
- \seq_gpop_right:cN {g__tag_struct_kids_\@current@float@struct _seq}\l_@@_tmpa_tl
- \seq_gput_left:cV {g__tag_struct_kids_\@current@float@struct _seq}\l_@@_tmpa_tl
+ \tag_if_active:T
+ {
+ \seq_gpop_right:cN {g__tag_struct_kids_\@current@float@struct _seq}\l_@@_tmpa_tl
+ \seq_gput_left:cV {g__tag_struct_kids_\@current@float@struct _seq}\l_@@_tmpa_tl
+ }
\ifdim \wd\@tempboxa >\hsize
\tag_struct_begin:n{tag=Lbl}
\tag_mc_begin:n{}
diff --git a/macros/latex/required/latex-lab/latex-lab-float.pdf b/macros/latex/required/latex-lab/latex-lab-float.pdf
index 8655d7309f..ecba3f3d17 100644
--- a/macros/latex/required/latex-lab/latex-lab-float.pdf
+++ b/macros/latex/required/latex-lab/latex-lab-float.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/latex-lab-footnotes.dtx b/macros/latex/required/latex-lab/latex-lab-footnotes.dtx
index 2389906c5a..a3d044ab87 100644
--- a/macros/latex/required/latex-lab/latex-lab-footnotes.dtx
+++ b/macros/latex/required/latex-lab/latex-lab-footnotes.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
%
%% File: latex-lab-footnotes.dtx
-% Copyright (C) 2022-2023 The LaTeX Project
+% Copyright (C) 2022-2024 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -17,8 +17,8 @@
%
% for those people who are interested or want to report an issue.
%
-\def\ltlabfootnotedate{2023-09-04}
-\def\ltlabfootnoteversion{0.8c}
+\def\ltlabfootnotedate{2024-03-12}
+\def\ltlabfootnoteversion{0.8d}
%<*driver>
\documentclass{l3doc}
@@ -454,6 +454,14 @@
% option.
% \end{itemize}
%
+% \subsection{Debugging sockets and hooks}
+%
+% For some rudimentary debugging we currently have \cs{DebugFNotesOn}
+% (and \cs{DebugFNotesOff}). At the moment \cs{DebugFNotesOn} only
+% shows the current settings for hooks and sockets related to the
+% footnote code and then
+% automatically turns itself off again.
+%
%
% \section{Tagging and hyperlinking support}
%
@@ -978,13 +986,22 @@
% \end{hookdecl}
%
% \subsection{Debugging code}
-% the debugging code is just temporary
+% The debugging code is just temporary
%
-% For now we have debugging turned on by default
% \begin{macrocode}
\bool_new:N \g_fnote_debug_bool
-\bool_gset_true:N \g_fnote_debug_bool
% \end{macrocode}
+
+% \begin{macro}{\DebugFNotesOn,\DebugFNotesOff}
+%
+% \begin{macrocode}
+\cs_new_protected:Npn \DebugFNotesOn { \bool_gset_true:N \g_fnote_debug_bool }
+\cs_new_protected:Npn \DebugFNotesOff { \bool_gset_false:N \g_fnote_debug_bool }
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
% We log the hooks in the footnote mark command, but only once
% \begin{macrocode}
\cs_new_protected:Npn \@@_debug_footnotemark:
@@ -1485,10 +1502,18 @@
\tl_if_in:NnTF \l_@@_patch_tl { \hb@xt@ }
{ \cs_set_eq:NN \@@_tmp:w \@@_patch_hb@xt@:w }
{
- \tl_if_in:NnTF \l_@@_patch_tl { \@makefnmark }
- { \cs_set_eq:NN \@@_tmp:w \@@_patch_@makefnmark:w }
- { \ERROR
- \cs_set_eq:NN \@@_tmp:w \exp_stop_f: }
+% \end{macrocode}
+% Some styles/classes use \verb=\makebox[...][...]= instead of \cs{hb@xt@}
+% so try to patch those too.
+% \begin{macrocode}
+ \tl_if_in:NnTF \l_@@_patch_tl { \makebox }
+ { \cs_set_eq:NN \@@_tmp:w \@@_patch_makebox:w }
+ {
+ \tl_if_in:NnTF \l_@@_patch_tl { \@makefnmark }
+ { \cs_set_eq:NN \@@_tmp:w \@@_patch_@makefnmark:w }
+ { \ERROR
+ \cs_set_eq:NN \@@_tmp:w \exp_stop_f: }
+ }
}
}
\tl_set:Nf \l_@@_patch_tl
@@ -1512,6 +1537,17 @@
% \begin{macrocode}
\cs_new:Npn \@@_patch_hb@xt@:w #1 \hb@xt@ #2 #
{ \exp_stop_f: #1 \@makefntext@processX { \hb@xt@ #2 } }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new:Npn \@@_patch_makebox:w #1 \makebox #2 #
+ { \exp_stop_f: #1 \@makefntext@processX { \makebox #2 } }
+% \end{macrocode}
+%
+% If the definition contains neither \cs{hbox}, \cs{hb@xt@} nor \cs{makebox},
+% we see if it contains \cs{@makefnmark} and if so put the socket
+% before that.
+% \begin{macrocode}
\cs_new:Npn \@@_patch_@makefnmark:w #1 \@makefnmark
{ \exp_stop_f: #1 \@makefntext@processX { \use:n } { \@makefnmark } }
% \end{macrocode}
@@ -1539,7 +1575,12 @@
\cs_set_eq:NN \@makefntext \fnote_makefntext:n
}
{
- \@@_patch:
+% \end{macrocode}
+% If \cs{@makefntext} contains the definition from \pkg{footmisc}
+% we do nothing, otherwise we try to patch.
+% \begin{macrocode}
+ \cs_if_eq:NNF \@makefntext \footmisc@hang@makefntext
+ { \@@_patch: }
}
}
@@ -2421,8 +2462,9 @@
\else
\ifFN@hangfoot
- \long\def\@makefntext#1{%
+ \long\def\footmisc@hang@makefntext#1{%
\bgroup
+ \SuspendTagging{footmisc}%
\setbox\@tempboxa\hbox{%
\ifdim\footnotemargin>\z@
\hb@xt@\footnotemargin{\@makefnmark\hss}%
@@ -2437,14 +2479,33 @@
\parshape \@ne \leftmargin \linewidth
\footnotesize
\@setpar{{\@@par}}%
+ \ResumeTagging{footmisc}%
\leavevmode
- \llap{\box\@tempboxa}%
+% \end{macrocode}
+% Typesetting the mark twice means that one can't have any material
+% inside that gets unhappy in that case. Tha shouldn't be a
+% problem, but perhaps we have to come up with a more elaborate
+% solution in the end.
+% \begin{macrocode}
+ \UseSocket{tagsupport/fntext/mark}%
+ {\llap{%
+ \ifdim\footnotemargin>\z@
+ \hb@xt@\footnotemargin{\@makefnmark\hss}%
+ \else
+ \@makefnmark
+ \fi
+ }}%
\parskip\hangfootparskip\relax
\parindent\hangfootparindent\relax
\footnotelayout#1%
\par
\egroup
}
+% \end{macrocode}
+% Defined in a roundabout way so that we can test for it when
+% patching classes that are not updated.
+% \begin{macrocode}
+ \let \@makefntext \footmisc@hang@makefntext
\else
@@ -2723,9 +2784,8 @@
\@footnotemark
}
% \end{macrocode}
-% TEMP PATCHES FOR TESTING
+%
% \begin{macrocode}
-
\endinput
%</footmisc>
% \end{macrocode}
diff --git a/macros/latex/required/latex-lab/latex-lab-footnotes.pdf b/macros/latex/required/latex-lab/latex-lab-footnotes.pdf
index 8f55486a67..b949e4680c 100644
--- a/macros/latex/required/latex-lab/latex-lab-footnotes.pdf
+++ b/macros/latex/required/latex-lab/latex-lab-footnotes.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/latex-lab-graphic.dtx b/macros/latex/required/latex-lab/latex-lab-graphic.dtx
index 158b0d2a9c..5ea4a2db9c 100644
--- a/macros/latex/required/latex-lab/latex-lab-graphic.dtx
+++ b/macros/latex/required/latex-lab/latex-lab-graphic.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: latex-lab-graphic.dtx (C) Copyright 2022-2023 LaTeX Project
+%% File: latex-lab-graphic.dtx (C) Copyright 2022-2024 LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -15,8 +15,8 @@
% https://github.com/latex3/latex2e/required/latex-lab
%
% for those people who are interested or want to report an issue.
-\def\ltlabgraphicdate{2023-10-13}
-\def\ltlabgraphicversion{0.80b}
+\def\ltlabgraphicdate{2024-03-13}
+\def\ltlabgraphicversion{0.80d}
%
%<*driver>
\documentclass{l3doc}
@@ -184,7 +184,10 @@
\RequirePackage{l3opacity}
% \end{macrocode}
%
-%
+% Needed during switch to e-type:
+% \begin{macrocode}
+\cs_generate_variant:Nn \@@_prop_gput:Nnn {cne}
+% \end{macrocode}
% \begin{macro}{\@@_graphic_savepos:n}
% this is the command which stores the position. Similar to
% zref-savepos it uses two savepos commands
@@ -323,7 +326,7 @@
\msg_new:nnn {tag}{alt-text-missing}
{
Alternative~text~for~graphic~is~missing.\\
- Using~'#1'~instead
+ Using~the~file~name~'#1'~instead.
}
\cs_new_protected:Npn\Gin@tag@struct@begin
{
@@ -449,8 +452,9 @@
% \end{macrocode}
% and here the tagging stops.
% \begin{macrocode}
+ \fi
\Gin@tag@struct@end %new
- \fi}
+ }
}
% \end{macrocode}
%
@@ -894,7 +898,7 @@
% The structure and the mc must be open earlier, before the \cs{setbox} (at least
% for luatex it has to). TODO: think about interface if more attributes are needed.
% \begin{macrocode}
- \@@_prop_gput:cnx
+ \@@_prop_gput:cne
{ g_@@_struct_\int_eval:n {\c@g_@@_struct_abs_int}_prop }
{ A }
{
@@ -970,7 +974,7 @@
{red}
{\int_use:N\g_@@_graphic_int}
}
- \@@_prop_gput:cnx
+ \@@_prop_gput:cne
{ g_@@_struct_\int_eval:n {\c@g_@@_struct_abs_int}_prop }
{ A }
{
diff --git a/macros/latex/required/latex-lab/latex-lab-graphic.pdf b/macros/latex/required/latex-lab/latex-lab-graphic.pdf
index a8570de484..18ae18a5a1 100644
--- a/macros/latex/required/latex-lab/latex-lab-graphic.pdf
+++ b/macros/latex/required/latex-lab/latex-lab-graphic.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/latex-lab-marginpar.dtx b/macros/latex/required/latex-lab/latex-lab-marginpar.dtx
new file mode 100644
index 0000000000..ca79d8a67f
--- /dev/null
+++ b/macros/latex/required/latex-lab/latex-lab-marginpar.dtx
@@ -0,0 +1,259 @@
+% \iffalse meta-comment
+%
+%% File: latex-lab-marginpar.dtx
+%%
+% Copyright (C) 2024 LaTeX Project
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version. The latest version
+% of this license is in the file
+%
+% https://www.latex-project.org/lppl.txt
+%
+%
+% The development version of the bundle can be found below
+%
+% https://github.com/latex3/latex2e/required/latex-lab
+%
+% for those people who are interested or want to report an issue.
+%
+\def\ltlabmarginpardate{2024-02-12}
+\def\ltlabmarginparversion{0.85b}
+
+%<*driver>
+\documentclass[kernel]{l3doc}
+\EnableCrossrefs
+\CodelineIndex
+\begin{document}
+ \DocInput{latex-lab-marginpar.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+% \title{The \textsf{latex-lab-marginpar} package\\
+% Changes related to the tagging of margin notes}
+% \author{\LaTeX{} Project\thanks{Initial implementation done by Ulrike Fischer}}
+% \date{v\ltlabmarginparversion\ \ltlabmarginpardate}
+%
+% \maketitle
+%
+% \newcommand{\xt}[1]{\textsl{\textsf{#1}}}
+% \newcommand{\TODO}[1]{\textbf{[TODO:} #1\textbf{]}}
+% \newcommand{\docclass}{document class \marginpar{\raggedright document class
+% customizations}}
+%
+% \providecommand\hook[1]{\texttt{#1\DescribeHook[noprint]{#1}}}
+% \providecommand\socket[1]{\texttt{#1\DescribeSocket[noprint]{#1}}}
+% \providecommand\plug[1]{\texttt{#1\DescribePlug[noprint]{#1}}}
+%
+% \NewDocElement[printtype=\textit{socket},idxtype=socket,idxgroup=Sockets]{Socket}{socketdecl}
+% \NewDocElement[printtype=\textit{hook},idxtype=hook,idxgroup=Hooks]{Hook}{hookdecl}
+% \NewDocElement[printtype=\textit{plug},idxtype=plug,idxgroup=Plugs]{Plug}{plugdecl}
+%
+% \begin{abstract}
+% \end{abstract}
+%
+% \section{Introduction}
+%
+% This module contains changes to improve the tagging (in the standard classes) of
+% margin notes created with the \cs{marginpar} command.
+%
+% Such margin notes are rather small but nevertheless tagging is not trivial and poses
+% a number of interesting problems both regarding the structure and the implementation.
+%
+% \subsection{Structure}
+% \cs{marginpar} creates small boxes in the margin of a page.
+% While they are technically floats they also typically
+% relate to the paragraph beside them, so their structure element should be placed near
+% such a paragraph.
+%
+% They can be tagged either as artifacts (if they are merely distracting decoration),
+% as small headings before the paragraph, or as |Aside|. Unlike the PDF 1.7 fallback |Note|
+% the structure |Aside| is not allowed inside |P|,
+% so if |Aside| is used, it must be placed before or after the current |P| in the surounding |text-unit|,
+% or it must split the |P|. Splitting is probably not so good as
+% |\marginpar| is often used somewhere in the middle of sentence.
+% The best default is probably to use |Aside|, find the parent |text-unit| and add it there.
+%
+% \subsection{Implementation}
+%
+% |marginpar| has an optional argument which allows to define a different content
+% on left/right margins for odd/even pages (depending on twoside and \cs{reversemarginpar}).
+%
+% The current implementation stores *both* arguments in boxes and
+% decides in the output routine which
+% one to use. This is quite problematic for tagging, as the unused box produces
+% structure objects, literals, labels, MCID numbers,
+% and perhaps OBJR-objects from links
+% which must be later thrown away again (or are thrown away by the engine).
+% While it is theoretically not impossible to create
+% both boxes while taging is active but to keep everything on hold and insert
+% the real structure only when the box is used it is in practice quite difficult,
+% slow and error prone.
+%
+% There are a number of options to avoid this hassle.
+%
+% \begin{description}
+% \item[Minimal tagging] One option is to disable tagging when the boxes
+% are built and when the box is used to surround them with a simple Aside.
+%
+% \begin{description}
+% \item[Pro:] easy to implement
+% \item[Contra:]
+% Content that perhaps needed tagging (|\LaTeX| logo with /ActualText, images, links) is not tagged.
+% \end{description}
+%
+% \item[Remaking the box]
+% Tagging is deactivated when the boxes are created.
+% The arguments are stored and when the box should be used in the output routine
+% (and when it is known which one will be used) the box is (re)created, now with proper tagging.
+%
+% Contra: The content can change e.g. if it uses counters or macros that are redefine later before the
+% output routine is called. As tagging is done later, it is not trivial to insert the
+% |Aside| in the right place in the paragraph structure.
+%
+% \item[Two pass compilation]
+% A label is used to detect which argument/boxed is used and
+% tagging is activated only for this one.
+%
+% Contra: costs a |label| and requires a two pass compilation (which is needed anyway).
+% This should be ok. |\marginnote| uses a label too, and the same
+% label could also be used to resolve problems if a margin note
+% moves to a new page (and so replace the mparhack package).
+% \end{description}
+%
+% The last option seems the best and is therefore implemented.
+%
+%
+% \section{Implementation}
+% \begin{macrocode}
+%<*package>
+%<@@=tag>
+% \end{macrocode}
+% \begin{macrocode}
+\ProvidesExplPackage {latex-lab-testphase-marginpar} {\ltlabmarginpardate} {\ltlabmarginparversion}
+ {Changes related to the tagging of the margin notes}
+% \end{macrocode}
+% \subsection{Variables}
+% We need a variable to make the label unique.
+% Todo: Not sure about the name.
+% \begin{macro}{\g__kernel_marginpar_int}
+% \begin{macrocode}
+\int_new:N \g__kernel_marginpar_int
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Tagging sockets}
+%
+% \begin{socketdecl}{tagsupport/marginpar/begin,tagsupport/marginpar/end}
+% \begin{macrocode}
+\socket_new:nn {tagsupport/marginpar/begin}{0}
+\socket_new:nn {tagsupport/marginpar/end}{0}
+% \end{macrocode}
+% \end{socketdecl}
+% \begin{plugdecl}{tagsupport/marginpar/begin,tagsupport/marginpar/end}
+% \begin{macrocode}
+\socket_new_plug:nnn {tagsupport/marginpar/begin}{default}
+ {
+ \if_mode_horizontal:
+ \tag_mc_end:
+ \tag_struct_begin:n{tag=Aside,parent=\g__tag_para_main_struct_tl}%
+ \else:
+ \tag_struct_begin:n{tag=Aside}%
+ \fi:
+ }
+\socket_new_plug:nnn {tagsupport/marginpar/end}{default}
+ {
+ \tag_struct_end:
+ \if_mode_horizontal: \tag_mc_begin:n{} \fi:
+ }
+\socket_assign_plug:nn {tagsupport/marginpar/begin}{default}
+\socket_assign_plug:nn {tagsupport/marginpar/end}{default}
+% \end{macrocode}
+% \end{plugdecl}
+
+% \subsection{Kernel command changes}
+% \begin{macro}{\@savemarbox }
+% We add sockets that add a tagging structure Aside:
+% \begin{macrocode}
+\long\def \@savemarbox #1#2{%
+ \UseTaggingSocket{marginpar/begin}
+ \global\setbox #1%
+ \color@vbox
+ \vtop{%
+ \hsize\marginparwidth
+ \@parboxrestore
+ \@marginparreset
+ #2\par
+ \@minipagefalse
+ \outer@nobreak
+ }%
+ \color@endbox
+ \UseTaggingSocket{marginpar/end}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@ympar}
+% We must avoid that \cs{@xympar} creates tagging structure:
+% \begin{macrocode}
+\long\def\@ympar#1{%
+ \@savemarbox\@marbox{#1}%
+ \global\setbox\@currbox\copy\@marbox
+ \tag_stop:
+ \@xympar
+ \tag_start:}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@xmpar}
+% \cs{@xmpar} is the command used if an optional argument is present.
+% In this case we must stop tagging for \cs{@xympar} as above
+% but also decide which of the two @savemarbox should have tagging active.
+% We add a label to \cs{@marbox}. If that exist tagging is activated for this
+% box else for the other one.
+% \begin{macrocode}
+\long\def\@xmpar[#1]#2{%
+ \int_gincr:N\g__kernel_marginpar_int
+ \property_if_recorded:eTF { tag_marginpar-opt-\int_use:N\g__kernel_marginpar_int }
+ {
+ \@savemarbox\@marbox {#1
+ \property_record:ee
+ { tag_marginpar-opt-\int_use:N\g__kernel_marginpar_int }{page}
+ }%
+ \tag_stop:
+ \@savemarbox\@currbox{#2}%
+ \tag_start:
+ }
+% \end{macrocode}
+% order matters! the tagged box should be first so that it can pick up
+% the correct text-unit number.
+% \begin{macrocode}
+ {
+ \@savemarbox\@currbox{#2}%
+ \tag_stop:
+ \@savemarbox\@marbox{#1
+ \property_record:ee
+ { tag_marginpar-opt-\int_use:N\g__kernel_marginpar_int }{page}}
+ \tag_start:
+ }
+ \tag_stop:
+ \@xympar
+ \tag_start:
+ }
+%</package>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+%<*latex-lab>
+\ProvidesFile{marginpar-latex-lab-testphase.ltx}
+ [\ltlabmarginpardate\space v\ltlabmarginparversion\space
+ Changes related to the tagging of the margin notes]
+
+\RequirePackage{latex-lab-testphase-marginpar}
+
+%</latex-lab>
+% \end{macrocode}
diff --git a/macros/latex/required/latex-lab/latex-lab-marginpar.pdf b/macros/latex/required/latex-lab/latex-lab-marginpar.pdf
new file mode 100644
index 0000000000..5379c2d640
--- /dev/null
+++ b/macros/latex/required/latex-lab/latex-lab-marginpar.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/latex-lab-math.dtx b/macros/latex/required/latex-lab/latex-lab-math.dtx
index 285471addc..0dbc591185 100644
--- a/macros/latex/required/latex-lab/latex-lab-math.dtx
+++ b/macros/latex/required/latex-lab/latex-lab-math.dtx
@@ -2,7 +2,7 @@
%
%% File: latex-lab-math.dtx
%
-% Copyright (C) 2022-2023 The LaTeX Project
+% Copyright (C) 2022-2024 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -19,8 +19,8 @@
% for those people who are interested or want to report an issue.
%
%
-\def\ltlabmathdate{2023-09-11}
-\def\ltlabmathversion{0.5c}
+\def\ltlabmathdate{2024-04-16}
+\def\ltlabmathversion{0.5j}
%
%<*driver>
\documentclass{l3doc}
@@ -46,7 +46,14 @@
% \newcommand\NEW[1]{\marginpar{\mbox{}\hfill\fbox{New: #1}}}
% \providecommand\class[1]{\texttt{#1.cls}}
% \providecommand\pkg[1]{\texttt{#1}}
-% \providecommand\hook[1]{\texttt{#1}}
+%
+% \providecommand\hook[1]{\texttt{#1\DescribeHook[noprint]{#1}}}
+% \providecommand\socket[1]{\texttt{#1\DescribeSocket[noprint]{#1}}}
+% \providecommand\plug[1]{\texttt{#1\DescribePlug[noprint]{#1}}}
+%
+% \NewDocElement[printtype=\textit{socket},idxtype=socket,idxgroup=Sockets]{Socket}{socketdecl}
+% \NewDocElement[printtype=\textit{hook},idxtype=hook,idxgroup=Hooks]{Hook}{hookdecl}
+% \NewDocElement[printtype=\textit{plug},idxtype=plug,idxgroup=Plugs]{Plug}{plugdecl}
%
% ^^A \car {...} for marginal comments
% ^^A \car*{...} for longer inline comments
@@ -59,8 +66,6 @@
% {\IfBooleanTF{#1}{\todo[inline,#2]{#3}}^^A
% {\todo[#2]{#3}}}
%
-%
-%
% \begin{abstract}
% This is an experimental prototype. It captures math material
% (basically okay, but the interfaces for packages aren't yet
@@ -75,6 +80,18 @@
% \car*{Todo: update all the documentation! Both here and
% (what little there is!) in the implementation section.}
%
+% Tagging math involves a variety of tasks that require that math is captured before the
+% typesetting
+% \begin{itemize}
+% \item When typesetting the math MC-tags and structure commands must
+% be inserted at the begin and the end, and perhaps also around lines
+% or other subparts of the equation.
+% \item The source and/or a mathml-representation of the source must be available
+% so that it can be (perhaps after some preprocessing) be used in an associated file
+% or in an alternate text
+% \item It must be possible to measure the math for e.g. a bbox setting.
+% \end{itemize}
+%
% This file implements capture of all math mode material at the outer
% level, i.e., a formula is captured in its entirety with inner text
% blocks (possibly containing further math) absorbed as part of the
@@ -84,7 +101,24 @@
%\end{verbatim}
% would only result in a single capture of the tokens
% ``\verb*/a \in A \text{ for all $a<5$}/''.
+%
%
+% \section{Math capture} \label{sec:mathcapture}
+% In the current setup
+% \begin{itemize}
+% \item |$|, |\(...\)| and |$$| grab (through a command in \cs{everymath}/cs{everydisplay})
+% if the boolean \cs{l_@@_collected_bool} is false.
+% If the boolean is true they behave normally and can for example contain verbatim.
+%
+% \item All (registered) environments grab their body
+% regardless of the state of the boolean. For
+% |equation|, |equation*| and |math| this is a change as they no longer can
+% contain verbatim.
+%
+% \item BUG: |\[...\]| grabs if \cs{l_@@_collected_bool} is false. If it is
+% true it falls back to |equation*| and then errors because this can't find the end.
+% \end{itemize}
+%
% \subsection{Code level interfaces}
%
% \begin{function}{\math_register_env:n, \math_register_env:nn}
@@ -109,7 +143,8 @@
% \end{syntax}
% Declares that the captured math content should be passed to the
% \meta{tokens}, which will receive the environment type as |#1| and
-% the content as |#2|.
+% the content as |#2|. The processing is done before the typesetting. It is not
+% applied if \cs{ifmeasuring@} is true.
% \end{function}
%
% \subsection{Document level interfaces}
@@ -129,38 +164,275 @@
% \end{itemize}
% \end{function}
%
+% \section{Math tagging}
+%
+% The tagging code has to handle
+% \begin{itemize}
+% \item the embedding into the surrounding. This means
+% \begin{itemize}
+% \item closing and reopening MC-chunks
+% \item closing and reopening text/P-structures
+% \item handling interferences of the tagging code with penalties and spacing.
+% \end{itemize}
+% \item the actual tagging which means to do some or all of the following tasks:
+% \begin{itemize}
+% \item setup content for an associated source file
+% \item setup content for an associated mathml file
+% \item setup content for the /Alt key
+% \item setup content for the /ActualText key
+% \item setup attributes
+% \item add associated files
+% \item add a Formula structure
+% \item surround subparts (e.g. lines) with Formula sub structures
+% (perhaps with their own set of additional content)
+% \item surround elements of the equation with mathml structure elements
+% (currently only luatex with luamml)
+% \end{itemize}
+% \end{itemize}
+%
+% \subsection{Inline math}
+%
+% The embedding code is added through
+% the sockets
+% \begin{itemize}
+% \item |tagsupport/math/inline/begin|
+% \item |tagsupport/math/inline/end|
+% \end{itemize}
+% The sockets simply push and pop the MC currently. Without
+% tagging they use the noop-plug.
+%
+% The actual tagging is in done through the sockets
+% \begin{itemize}
+% \item |tagsupport/math/inline/formula/begin|
+% This socket takes the math as argument and its code
+% should output it for typesetting. Without tagging the
+% socket uses the identity plug.
+% The |default| plug of the socket calls these three internal sockets
+% for the tagging support:
+% \begin{itemize}
+% \item |tagsupport/math/content| This should set up the various
+% content variables (empty variables are ignored by the structure code
+% and so can be used to suppress a setting).
+% \item |tagsupport/math/struct/begin| This calls \cs{tag_struct_begin:n}.
+% It should also write the associated files if needed.
+% \item |tagsupport/math/substruct/begin| this handles subparts.
+% TODO: does it really make sense in inline math to have that??
+% \end{itemize}
+% \item |tagsupport/math/inline/formula/end|
+% This socket ends the formula structure(s). The |default|
+% plug calls these internal sockets:
+% \begin{itemize}
+% \item |tagsupport/math/substruct/end|
+% \item |tagsupport/math/struct/end|
+% \end{itemize}
+% \end{itemize}
+%
+% \subsection{Display math}
+%
+% \textit{to be written}
+%
+% \subsection{Associated Files}
+%
+% The current code allows the attachment of two types of associated file to the
+% Formula structure:
+% the \LaTeX\ source and a MathML representation.
+% Technically both can be attached---AF is an array
+% of file references---practically there can be problems with PDF consumers:
+% e.g. ngpdf used both and so showed the equation twice
+% (this has been corrected in the newest version) and
+% Foxit seems to see only the first AF in the array (so we attach the
+% mathml as first file).
+%
+% The \LaTeX\ source can be (and is) attached automatically.
+% It can be suppressed by an option with
+% \texttt{math/tex/AF=false}, see below.
+%
+% The MathML is attached if a file |\jobname-mathml.html| is found and
+% if it contains a suitable MathML snippet for the current formula.
+% The MathML processing can be suppressed globally by emptying the list of
+% mathml files with |math/mathml/sources=|. Locally for a formula |math/mathml/AF=false|
+% can be used.
+%
+% For a MathML representation a file with such representations must be provided.
+% If the equation is numbered the numbering should be part of the MathML as
+% the |Lbl| substructure is ignored if an MathML is used (see https://github.com/foxitsoftware/PDF_UA-2).
+%
+% The MathML representation is given in a special format.
+% It is meant to be a valid html file
+% that can be viewed in a browser.
+% For this it can start with |<!DOCTYPE html><html>| and end with |</html>|
+% It should have the extension \texttt{.html}. The \meta{mathml} content
+% is read with special catcodes, so can contain ambersands, hashes, comment chars
+% and unmatched braces such as |<mo>{</mo>|
+%
+% The file should contain a number of representations in this format:
+% \begin{quote}
+% |<div>| \\
+% | <h2>\mml| \meta{key}|</h2>|\\
+% | <p>|\meta{source}|</p>| \\
+% | <p>|\meta{hash}|</p>| \\
+% | <math | \meta{attributes} |>|\\
+% \meta{mathml}\\
+% | </math>|\\
+% |</div>|
+% \end{quote}
+% The keywords |<div>|, |<h2>\mml|, |<p>|, |<math|, |</math>| |</div>| are required as
+% they are used to delimit the arguments by the \LaTeX{} code.
+%
+% \meta{key} and \meta{source} are only used for debugging, they help to identify
+% the equation referred by this representation. The source should be used correctly escaped
+% |&| and |<| so that if gives valid html!
+%
+% \meta{attributes} is not required either, but can e.g. contain attributes
+% to improve the display in a browser:
+% \begin{verbatim}
+% <math alttext="\mathbf{G}" class="ltx_Math" display="inline">
+% \end{verbatim}
+% It can also contain the name space declaration: |xmlns="http://www.w3.org/1998/Math/MathML"|%
+% \footnote{But it is probably not needed and only blows up the PDF.}
+%
+%
+% By default the code tries at the begin of the document
+% to read a file |\jobname-mathml.html| in the |html|-format.
+% The file name can be changed with |mathml/setfiles={filename1,filename2}|
+% (without extension, |html| is added automatically).
+% If there is a list, all files are loaded.
+% If a file doesn't exist it is ignored, only an info is written to the log.
+%
+% Currently every MathML-snippet from a file is embedded into the PDF,
+% it is not checked first if it is actually used (simply writing everything to the PDF
+% is a bit easier than keeping everything in memory and also means that
+% the snippets are one after the other in the PDF).
+%
+% As mentioned above the MathML-AF can be suppressed for the equations in a group with
+% |math/mathml/AF=false|, or
+% completly by setting |math/mathml/sources=| in the preamble.
+%
+% Files embedded in a PDF can be listed in the attachments panel of a PDF viewer.
+% This is probably not so useful for lots of small files (but one could create
+% collections), but as long as PDF editors or viewers don't offer
+% proper support to access the AF it can help so have them there. The MathML are
+% added by default, but the \LaTeX{} source not. This can be changed with
+% |viewer/pane/mathsource=true| (anywhere in the document) and |viewer/pane/mathml=false| (in the
+% preamble, before the external file is read).
+%
+% \subsection{Options}
+%
+%
% \section{Known current bugs, etc.}
% \car*{New Section, now with subsections.\\
% As indicated, these lists are probably incomplete.\\
% Some of these have been addressed in a more recent branch.}
%
% \subsection{Capture/grabbing problems}
-%
+%
% \begin{enumerate}
% \item Incorrect grabbing of |$|-math when there is also
% explicit |$|-math within a \textit{text environment}
% that is itself within the math that should all be grabbed.
+% For example,
+% \begin{verbatim}
+% $a\begin{minipage}{1cm}$b$\end{minipage}$
+% \end{verbatim}
+% would only result in the capture of the tokens
+% ``\verb*/a\begin {minipage}{1cm}/''.
+% This can be avoided by an additional brace group:
+% \begin{verbatim}
+% $a{\begin{minipage}{1cm}$b$\end{minipage}}$
+% \end{verbatim}
+%
% \item Similar incorrect grabbing with |$$| also.
+%
% \item The grabbing, for all the display environments (and |\) \]|), needs
% to deal with nesting: \pkg{amsmath} contains code for this.
-% \item
+%
+% \item The math can't contain verbatim and verbatim-like commands. This is
+% nothing new for the \pkg{amsmath} environments but changes |$| and |\[\]|
+% and |equation*| (see e.g. tagging-project issue \#30).
+%
+% \item Begin and end of the math or math environment can not be hidden in commands.
+% For example \verb+>{$}l<{$}+ in a tabular would lead to errors.
+% Defining |\[| to fall back to |equation*| doesn't work if |equation*| is
+% a grabbing environment.
+%
+% \item The behaviour of |\[...\]| is faulty. See above.
% \end{enumerate}
%
+% \subsection{Fake math}
+% In a number of places in \LaTeX{} math commands (mainly |$|) is used
+% only for technical reason, e.g. to access a math font, to setup a symbol
+% or to use \cs{vcenter}.
+%
+% The code identifies such fake math mostly by making use of the \cs{m@th} command
+% where two methods are used for the automatic detection:
+%
+% \begin{itemize}
+% \item After grabbing math content the code checks if the content contains the token
+% \cs{m@th} and if yes it doesn't call the processor before reinserting
+% the content and perhaps adding tagging code.
+% This method requires that the math can be grabbed (e.g. that the end dollar is visible)
+% and that the \cs{m@th} is visible. It applies for example in \cs{@iiiparbox} where the
+% code from |$\vcenter| to |\m@th$| is grabbed an put back. It does not work for
+% example for |tabular| where the dollars and the \cs{m@th} token are spread around
+% over three commands. |tabular| needs therefore manual intervention.
+%
+% A look in the list of usages (in \texttt{usage-of-m@th.md}) justifies this approach.
+% All usages are either not math at all, or related to small elements that probably
+% shouldn't be grabbed and processed on their own.
+%
+% \item \cs{m@th} is redefined so that it sets the boolean \cs{l_@@_collected_bool}
+% to true. If \cs{m@th} is used inside math that has been grabbed
+% this doesn't change much as the boolean is set by the grabbing anyway. For usages
+% outside math the benefit is not so clear: The setting avoids that in \cs{LaTeXe}
+% the epsilon is processed as math, but it also prevents that the content of the amsmath
+% command \cs{boxed} is processed as math.
+% It means that if one wants to reenable math processing inside some (fake) math
+% one has to do it after \cs{m@th} calls.
+% \end{itemize}
+%
+% Open problems
+% \begin{enumerate}
+% \item The grabbing code doesn't pass the info that it detected a \cs{m@th} token.
+% This means that the tagging code has to do the same check (and doesn't do this
+% in all cases yet).
+%
+% \item Commands are missing to locally disable the grabbing and processing, e.g.
+% to handle |tabular|.
+%
+% \item It must be checked if setting the boolean in \cs{m@th} really makes sense
+% or if commands like \cs{LaTeXe} should be handled manually.
+%
+% \end{enumerate}
+%
+% \subsection{Processor}
+%
+% The grabbed math is at first passed to the processor. The processor is not called
+% in a measuring phase (from the amsmath \cs{ifmeasuring@}) and if the \cs{m@th}
+% token is detected.
+% It is not quite clear what purpose the processor has. As it is a public interface
+% it can't be used for internal code. And typesetting happens later and the processor
+% can't really change this. Currently it is mostly used for debugging and messages.
+% If the \cs{m@th} is found the \cs{l_@@_fakemath_bool} is set, so if the code
+% is changed this must be preserved.
+%
% \subsection{Other problems}
%
% \begin{enumerate}
% \item
-% The presence of \cs{m@th} in association with \cs{ensuremath}
+% The presence of \cs{m@th} in association with \cs{ensuremath}
% does not necessarily indicate fakemath. This is because
% wanting mathsurround to be zero is very reasonable and common,
% \emph{even when the math is genuine} (and hence needs to be collected).
+%
+% TODO: this claim needs some examples.
+%
% \item User-defined environments can create problems; but this area, of
% new, copied and changed environments, has not yet been developed.
%
% \car*{Joseph wrote, inter alia:\\
% My thinking [regarding] \cs{RegisterMathEnvironment}\\
% - (New) Math environments should not be created-then-patched, but only
-% generated by a [(future)] dedicated command (\cs{DeclareMathEnviornment},
+% generated by a [(future)] dedicated command (\cs{DeclareMathEnvironment},
% presumably)\\
% - Math environments created with \pkg{ltcmd} [commands] should not be copied, . . .\\
% - Package authors should be able to manually set up math environments with a public boolean.}
@@ -172,7 +444,10 @@
% \begin{enumerate}
% \item Add (some of) the math display commands that were \enquote{lifted from
% plain}, e.g., \cs{displaylines} \cs{eqalign}(??).
-% \item
+% \item The breqn packages changes catcodes and that isn't yet covered
+% by our mechanism.
+% \item \cs{intertext} is not correctly taken into account by the
+% code splitting multiline math into subformulas.
% \end{enumerate}
%
%
@@ -218,36 +493,823 @@
% have conditional definitions and deals with how to define \cs{[}/\cs{]}
% neatly.
% \begin{macrocode}
-\tl_gput_right:Nn \@kernel@before@begindocument
- { \RequirePackage { amsmath } }
+\AddToHook{begindocument/before}{ \RequirePackage { amsmath } }
% \end{macrocode}
%
%
% \subsection{Data structures}
%
-%
-%
-% \begin{variable}{\l_@@_collected_bool}
+% \begin{variable}{\l_@@_collected_bool}
% Tracks whether math mode material has been collected, which happens inside
% \pkg{amsmath} environments as well as those handled directly here.
+% If true following math will not grab and/or process.
+% See \ref{sec:mathcapture} for details.
+% \begin{macrocode}
+\bool_new:N \l_@@_collected_bool
+% \end{macrocode}
+% \end{variable}
%
+% \begin{variable}{\l_@@_fakemath_bool}
+% Tracks whether math mode material has been identified as fake math during
+% the grabbing phase, which happens currently if the
+% grabbed contents contains the \cs{m@th} token.
%
% \begin{macrocode}
-\bool_new:N \l_@@_collected_bool
+\bool_new:N \l_@@_fakemath_bool
% \end{macrocode}
% \end{variable}
-%
+%
+%
% \car{Change first tl name below: `env' $=>$ `info'?\\
% Or do we need an extra storage tl?}
%
% \begin{variable}{\g_@@_grabbed_env_tl, \g_@@_grabbed_math_tl}
-% \cs{g_@@_grabbed_env_tl} contains the name of the math environment (\texttt{math} in the case
-% of inline math, \cs{g_@@_grabbed_math_tl} the math content.
+% \cs{g_@@_grabbed_env_tl} contains the name of the math environment
+% (\texttt{math} in the case of inline math,
+% \cs{g_@@_grabbed_math_tl} the math content.
% \begin{macrocode}
\tl_new:N \g_@@_grabbed_env_tl
\tl_new:N \g_@@_grabbed_math_tl
% \end{macrocode}
% \end{variable}
+%
+% \begin{variable}{\l_@@_tmpa_tl,\l_@@_tmpa_skip,\l_@@_tmpa_str}
+% Temporary variables
+% \begin{macrocode}
+\tl_new:N \l_@@_tmpa_tl
+\skip_new:N \l_@@_tmpa_skip
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{variable}{\l_@@_content_alt_tl,
+% \l_@@_content_actual_tl,
+% \l_@@_content_AF_tl}
+% Temporary variables to hold math content that should
+% be used in actual or alt text and stored as AF.
+% \begin{macrocode}
+\tl_new:N \l_@@_content_alt_tl
+\tl_new:N \l_@@_content_actual_tl
+\tl_new:N \l_@@_content_AF_source_tl
+\tl_new:N \l_@@_content_AF_source_tmpa_tl
+\tl_new:N \l_@@_content_AF_mathml_tl
+% \end{macrocode}
+% \end{variable}
+%
+% \subsection{Tagging tools}
+% The following commands implement small tagging code chunks.
+% This should probably be collected and moved into tagpdf later.
+% \begin{macro}{\__tag_tool_close_P:}
+% This closes a P/text-chunk, both the MC and the structure and
+% increases the counter manually.
+% \begin{macrocode}
+\cs_new_protected:Npn \__tag_tool_close_P:
+ {
+ \tag_if_active:T
+ {
+ \tag_mc_end: %end P-chunk, should perhaps be \tag_mc_end_push: ...
+ \__tag_gincr_para_end_int:
+ \__tag_check_para_end_show:nn{red}{} %debug: show para
+ \tag_struct_end:
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% We add also an attribute.
+% \begin{macrocode}
+\tl_new:N\l_@@_attribute_class_tl
+\tagpdfsetup
+ {role/new-attribute = {inline} {/O /Layout /Placement/Inline},
+ role/new-attribute = {display} {/O /Layout /Placement/Block},
+ }
+% \end{macrocode}
+%
+% \subsection{Code related to AF}
+% Booleans to handle the options.
+% \begin{variable}{
+% \l__tag_math_texsource_AF_bool,
+% \l__tag_math_texsource_pane_bool,
+% \l__tag_math_mathml_AF_bool,
+% \g__tag_math_mathml_AF_bool,
+% \l__tag_math_mathml_pane_bool,
+% \l__tag_math_alt_bool
+% }
+% \begin{macrocode}
+\bool_new:N\l__tag_math_texsource_AF_bool
+\bool_new:N\l__tag_math_texsource_pane_bool
+\bool_new:N\l__tag_math_mathml_AF_bool
+\bool_new:N\g__tag_math_mathml_AF_bool
+\bool_new:N\l__tag_math_mathml_pane_bool
+\bool_new:N\l__tag_math_alt_bool
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{variable}{
+% \g_@@_mathml_total_int,
+% \g_@@_mathml_int,
+% \g_@@_math_total_int,
+% \g_@@_mathml_AF_found_int,
+% \g_@@_mathml_AF_attached_int,
+% }
+% \cs{g_@@_mml_total_int} records the mathml fragments read in.
+% \cs{g_@@_mml_int} records the mathml fragments read in with a different hash.
+% \cs{g_@@_AF_total_int} records the number of math structures that try to
+% attach a mathml AF.
+% \cs{g_@@_AF_found_int} records the number of math structures for which a fitting
+% mathml is found.
+% \cs{g_@@_AF_attached_int} records the number of math structures which got a mathml fragment
+% (if mathml-AF are not disabled locally this should be the equal to the previous number.
+%
+% \begin{macrocode}
+\int_new:N\g_@@_mathml_total_int
+\int_new:N\g_@@_mathml_int
+\int_new:N\g_@@_math_total_int
+\int_new:N\g_@@_mathml_AF_found_int
+\int_new:N\g_@@_mathml_AF_attached_int
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{variable}{\l__tag_math_mathml_files_clist}
+% A sequence to store the file list for the mathml.
+% \begin{macrocode}
+\clist_new:N\l__tag_math_mathml_files_clist
+\clist_put_right:Ne\l__tag_math_mathml_files_clist {\c_sys_jobname_str-mathml}
+% \end{macrocode}
+% \end{variable}
+
+% This is the internal variant of the \cs{mml} command.
+% \begin{macro}{\@@_AF_mml:nnnn}
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_AF_mml:nnnn #1 #2 #3 #4
+%#1 number, #2 tex source for debugging, #3 hash, #4 mathml
+ {
+ \int_gincr:N \g_@@_mathml_total_int
+% \end{macrocode}
+% mathml with the same hash should be included only once:
+% \begin{macrocode}
+ \tl_if_exist:cF { g_@@_mathml_#3_tl }
+ {
+ \int_gincr:N \g_@@_mathml_int
+% \end{macrocode}
+% a simple Desc key, take care that it is a valid string!
+% \begin{macrocode}
+ \pdfdict_put:nne {l_pdffile/Filespec} {Desc}{(mathml-#1)}
+ \pdffile_embed_stream:nnN {#4}{mathml-#1.xml}\l_@@_tmpa_tl
+% \end{macrocode}
+% not strictly necessary but makes the files visible in the file attachment
+% page
+% \begin{macrocode}
+ \bool_if:NT \l__tag_math_mathml_pane_bool
+ {\pdfmanagement_add:nne {Catalog/Names}{EmbeddedFiles}{\l_@@_tmpa_tl}}
+ \tl_new:c{g_@@_mathml_#3_tl}
+ \tl_gset_eq:cN{g_@@_mathml_#3_tl}\l_@@_tmpa_tl
+ }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% The html reader.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_AF_html_reader:w#1</h2>#2<p>#3</p>#4<p>#5</p>#6<math{
+ \begingroup
+ \char_set_catcode_other:N\{
+ \char_set_catcode_other:N\}
+ \char_set_catcode_other:N\#
+ \char_set_catcode_other:N\%
+ \@@_AF_html_reader_verb:w{#1}{#3}{#5}<math
+}
+% \end{macrocode}
+% \begin{macrocode}
+\cs_new_protected:Npn\@@_AF_html_reader_verb:w#1#2#3#4~</div>{
+ \endgroup
+ \@@_AF_mml:nnnn{#1}{#2}{#3}{#4}
+ }
+% \end{macrocode}
+
+%
+% \begin{socketdecl}{tagsupport/math/mathml/write}
+% This writes a html-dummy with the hash and the math content.
+% This should be optional, so it uses a socket that can be disabled
+%
+% \begin{macrocode}
+\socket_new:nn {tagsupport/math/mathml/write}{0}
+% \end{macrocode}
+% \end{socketdecl}
+%
+% \begin{plugdecl}{On}
+% \begin{macrocode}
+\socket_new_plug:nnn{tagsupport/math/mathml/write}{On}
+ {
+ \str_set:NV\l_@@_tmpa_str\l_@@_content_AF_source_tl
+ \str_replace_all:Nnn\l_@@_tmpa_str{&}{&amp;}
+ \str_replace_all:Nnn\l_@@_tmpa_str{<}{&lt;}
+ \iow_now:Ne \g_@@_writedummy_iow
+ {
+ \iow_newline:
+ <div>
+ \iow_newline:
+ <h2>\c_backslash_str mml\c_space_tl \int_use:N \g_@@_math_total_int </h2>
+ \iow_newline:
+ <p>\l_@@_tmpa_str</p>
+ \iow_newline:
+ <p>\l_@@_content_hash_tl </p>
+ \iow_newline:
+ <math></math>
+ \iow_newline:
+ </div>
+ \iow_newline:
+ }
+ }
+% \end{macrocode}
+% \end{plugdecl}
+% And now a key to activate the socket.
+% \begin{macrocode}
+
+\keys_define:nn { __tag / setup }
+ {
+ math/mathml/write-dummy .code:n =
+ {
+ \bool_gset_true:N \g__tag_math_mathml_AF_bool
+ \tl_if_exist:NF\g_@@_writedummy_iow
+ {
+ \iow_new:N \g_@@_writedummy_iow
+ \iow_open:Nn \g_@@_writedummy_iow
+ {
+ \c_sys_jobname_str-mathml-dummy.html
+ }
+ \iow_now:Ne \g_@@_writedummy_iow
+ {
+ <!DOCTYPE~html>
+ \iow_newline:
+ <html>
+ }
+ \AssignSocketPlug {tagsupport/math/mathml/write}{On}
+ \AddToHook{enddocument/afterlastpage}
+ {
+ \iow_now:Nn \g_@@_writedummy_iow {</html>}
+ \iow_close:N \g_@@_writedummy_iow
+ }
+ }
+ },
+ math/mathml/write-dummy .usage:n=preamble
+ }
+% \end{macrocode}
+%
+% \begin{macro}{\@@_AF_process_mathml_files:}
+% \begin{macrocode}
+\box_new:N\l_@@_tmpa_box
+\cs_new_protected:Npn \@@_AF_process_mathml_files:
+ {
+ \hbox_set:Nn \l_@@_tmpa_box
+ {
+ \pdfdict_put:nnn { l_pdffile/Filespec }{AFRelationship} { /Supplement }
+ \pdfdict_put:nne
+ { l_pdffile }{Subtype}
+ { \pdf_name_from_unicode_e:n{application/mathml+xml} }
+ \char_set_catcode_other:N \#
+ \cs_set_eq:NN\mml \@@_AF_html_reader:w
+ \clist_map_inline:Nn \l__tag_math_mathml_files_clist
+ {
+ \file_if_exist:nTF {##1.html}
+ {
+ \typeout{Info:~reading~mathml~file~##1}
+ \file_input:n {##1.html}
+ \bool_gset_true:N\g__tag_math_mathml_AF_bool
+ }
+ {
+ \typeout{Info:~mathml~file~##1~does~not~exist}%info message
+ }
+ }
+ }
+ \bool_if:NT\g__tag_math_mathml_AF_bool
+ {
+ \typeout{Info:~Activating~mathml~support}
+ \AssignSocketPlug{tagsupport/math/struct/begin}{test-mathml}
+ \AssignSocketPlug{tagsupport/math/struct/end}{test-mathml}
+% \end{macrocode}
+% mathml handling doesn't like subparts, so we disable them for now:
+% \begin{macrocode}
+ \AssignSocketPlug{tagsupport/math/substruct/begin}{single}
+ \AssignSocketPlug{tagsupport/math/substruct/end}{single}
+ \AddToHook{enddocument/info}
+ {
+ \iow_term:n{MathML~statistic}
+ \iow_term:n{================}
+ \iow_term:e{==>~\int_use:N\g_@@_mathml_total_int\c_space_tl
+ MathML~fragments~read}
+ \iow_term:e{==>~\int_use:N\g_@@_mathml_int\c_space_tl
+ different~MathML~fragments}
+ \iow_term:e{==>~\int_use:N\g_@@_math_total_int\c_space_tl
+ math~fragments~found}
+ \iow_term:e{==>~\int_use:N\g_@@_mathml_AF_found_int\c_space_tl
+ fitting~MathML~AF~found}
+ \iow_term:e{==>~\int_use:N\g_@@_mathml_AF_attached_int\c_space_tl
+ MathML~AF~attached}
+ }
+ }
+ }
+\AddToHook{begindocument}{\@@_AF_process_mathml_files:}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Mathstyle detection}
+% In some cases we need to detect the mathstyle used in a \cs{mathchoice}
+% command and to disable/enable tagging in the unused branches.
+% This is currently only used in the amstext command \cs{text}
+% but is perhaps also needed in other cases, so we create a general command.
+%
+%\begin{macro}{\l_@@_mathstyle_int,\g_@@_mathchoice_int,mathstyle}
+% \begin{macrocode}
+\int_new:N \l_@@_mathstyle_int
+\int_new:N \g_@@_mathchoice_int
+\property_new:nnnn{mathstyle}{now}{-1}{\int_use:N \l_@@_mathstyle_int }
+% \end{macrocode}
+%\end{macro}
+% For now internal, but perhaps will need a public version.
+% The command should be used in every branch of a \cs{mathchoice}
+% (with the correct mathstyle number) and with an unique label (which should
+% be the same in every branch).
+% \cs{g_@@_mathchoice_int} can be e.g. increased before the mathchoice and
+% then used.
+% \begin{macro}{\@@_tag_if_mathstyle:nn}
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_tag_if_mathstyle:nn #1 #2
+ %#1 refers to label
+ %#2 is a number for the mathstyle (typically 0,2,4,6)
+ {
+ \int_set:Nn \l_@@_mathstyle_int {#2}
+ \property_record:nn {#1} { mathstyle }
+ \int_compare:nNnTF { \property_ref:nn {#1}{ mathstyle} } = { #2 }
+ { \tag_start: }{ \tag_stop: }
+ }
+\cs_generate_variant:Nn \@@_tag_if_mathstyle:nn {en}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Tagging options}
+% \begin{macrocode}
+\keys_define:nn { __tag / setup }
+ {
+ math/mathml/sources .clist_set:N = \l__tag_math_mathml_files_clist,
+ math/alt/use .bool_set:N = \l__tag_math_alt_bool,
+ viewer/pane/mathml .bool_set:N = \l__tag_math_mathml_pane_bool,
+ viewer/pane/mathml .initial:n = true,
+ viewer/pane/mathsource .bool_set:N = \l__tag_math_texsource_pane_bool,
+ math/mathml/AF .bool_set:N = \l__tag_math_mathml_AF_bool,
+ math/mathml/AF .initial:n = true,
+ math/tex/AF .bool_set:N = \l__tag_math_texsource_AF_bool,
+ math/tex/AF .initial:n = true
+ }
+% \end{macrocode}
+%
+% \subsection{Sockets}
+% \subsubsection{Main inline math sockets}
+%
+% \begin{socketdecl}
+% {
+% tagsupport/math/inline/begin,
+% tagsupport/math/inline/end,
+% tagsupport/math/inline/formula/begin,
+% tagsupport/math/inline/formula/end,
+% }
+% The first two sockets are meant to embed inline
+% math into the surrounding (so to close/reopen e.g. MC-chunks).
+% The other two implement the actual formula structure.
+% The formula sockets are despite their naming not symmetric:
+% the begin socket is issued after the math has started, while
+% the end socket is after the math!
+% \begin{macrocode}
+\socket_new:nn {tagsupport/math/inline/begin}{0}
+\socket_new:nn {tagsupport/math/inline/end}{0}
+\socket_new:nn {tagsupport/math/inline/formula/begin}{1} %
+\socket_new:nn {tagsupport/math/inline/formula/end}{0}
+% \end{macrocode}
+%\end{socketdecl}
+%
+%
+% \begin{plugdecl}{MC}
+% \begin{macrocode}
+\socket_new_plug:nnn
+ {tagsupport/math/inline/begin}
+ {MC}
+ {\tag_mc_end_push:}
+\socket_new_plug:nnn
+ {tagsupport/math/inline/end}
+ {MC}
+ {\tag_mc_begin_pop:n{}}
+% \end{macrocode}
+% \end{plugdecl}
+%
+% We probably will want to test different tagging receipes.
+% \begin{plugdecl}{default}
+% \begin{macrocode}
+\socket_new_plug:nnn
+ {tagsupport/math/inline/formula/begin}
+ {default}
+ {
+ \socket_use:n{tagsupport/math/content}
+ \socket_use:n{tagsupport/math/struct/begin}
+% \end{macrocode}
+% TODO: does inline math need subformula handling?
+% \begin{macrocode}
+ % inner formula if multiple parts (not really implemented yet)
+ \socket_use:n{tagsupport/math/substruct/begin}
+ #1
+ \socket_use:n{tagsupport/math/end}
+ }
+\socket_new_plug:nnn
+ {tagsupport/math/inline/formula/end}
+ {default}
+ {
+ \socket_use:n{tagsupport/math/substruct/end}
+ \socket_use:n{tagsupport/math/struct/end}
+ }
+% \end{macrocode}
+% \end{plugdecl}
+%
+% \subsubsection{Main display math sockets}
+%
+% \begin{socketdecl}
+% {
+% tagsupport/math/display/begin,
+% tagsupport/math/display/end,
+% tagsupport/math/display/formula/begin,
+% tagsupport/math/display/formula/end,
+% }
+% The first two sockets are meant to embed display
+% math into the surrounding (so to close/reopen e.g. MC-chunks and
+% P-structure).
+% The other two implement the actual formula structure.
+% The formula sockets are despite their naming not symmetric:
+% the begin socket is issued after the math has started, while
+% the end socket is after the math!
+% \begin{macrocode}
+\socket_new:nn {tagsupport/math/display/begin}{0}
+\socket_new:nn {tagsupport/math/display/end}{0}
+\socket_new:nn {tagsupport/math/display/formula/begin}{1} %
+\socket_new:nn {tagsupport/math/display/formula/end}{0}
+% \end{macrocode}
+%\end{socketdecl}
+
+% \begin{plugdecl}{default}
+% \begin{macrocode}
+\socket_new_plug:nnn
+ {tagsupport/math/display/begin}
+ {default}
+ { \__tag_tool_close_P: }
+\socket_new_plug:nnn
+ {tagsupport/math/display/end}
+ {default}
+ {
+ }
+% \end{macrocode}
+% \end{plugdecl}
+
+
+% \begin{plugdecl}{default}
+% \begin{macrocode}
+\socket_new_plug:nnn
+ {tagsupport/math/display/formula/begin}
+ {default}
+ {
+ \socket_use:n{tagsupport/math/content}
+ \socket_use:n{tagsupport/math/struct/begin}
+ \socket_use:n{tagsupport/math/substruct/begin}
+ #1
+ \socket_use:n{tagsupport/math/end}
+ }
+\socket_new_plug:nnn
+ {tagsupport/math/display/formula/end}
+ {default}
+ {
+ \socket_use:n{tagsupport/math/substruct/end}
+ \socket_use:n{tagsupport/math/struct/end}
+ }
+% \end{macrocode}
+% \end{plugdecl}
+%
+% \subsubsection{Internal sockets}
+%
+% \begin{variable}{\l_@@_content_template_tl}
+% The default text used as alt or actual text.
+% \begin{macrocode}
+\tl_new:N\l_@@_content_template_tl
+\tl_set:Nn \l_@@_content_template_tl
+ {
+ LaTeX~ formula~ starts~
+ \exp_not:N\begin{\g_@@_grabbed_env_tl}
+ \c_space_tl
+ \exp_not:V\g_@@_grabbed_math_tl
+ \c_space_tl
+ \exp_not:N\end{\g_@@_grabbed_env_tl}
+ \c_space_tl LaTeX~ formula~ ends~
+ }
+% \end{macrocode}
+% \end{variable}
+
+% \begin{variable}{\l_@@_texsource_template_tl}
+% The default text used as texsource
+% \begin{macrocode}
+\tl_new:N\l_@@_texsource_template_tl
+\tl_const:Nn\c_@@_inline_env_tl {math}
+\tl_set:Nn \l_@@_texsource_template_tl
+ {
+ \tl_if_eq:NNTF\g_@@_grabbed_env_tl\c_@@_inline_env_tl
+ {
+ $
+ \exp_not:V\g_@@_grabbed_math_tl
+ $
+ }
+ {
+ \exp_not:N\begin{\g_@@_grabbed_env_tl}
+ \exp_not:V\g_@@_grabbed_math_tl
+ \exp_not:N\end{\g_@@_grabbed_env_tl}
+ }
+ }
+% \end{macrocode}
+% \end{variable}
+
+%
+% \begin{socketdecl}{tagsupport/math/content}
+% The math content is stored in associated files and used for
+% actual and alternative text. As the exact text is still
+% unclear we use a socket to be able to test variants.
+% The socket should set all four tl vars above, if needed
+% to identical values. It can use the two variables
+% \cs{g_@@_grabbed_env_tl} and \cs{g_@@_grabbed_math_tl}
+% \begin{macrocode}
+\socket_new:nn {tagsupport/math/content}{0}
+% \end{macrocode}
+% \end{socketdecl}
+%
+% Some default sockets to set the contents.
+% TODO: think about naming convention.
+% TODO: think how this should organized so that one
+% has options to change from the outside and so that
+% there are less repetitions.
+% \begin{plugdecl}{actual+source}
+% \begin{macrocode}
+\socket_new_plug:nnn
+ {tagsupport/math/content}
+ {actual+source}
+ {
+ \tl_set:Ne\l_@@_content_actual_tl
+ {
+ \l_@@_content_template_tl
+ }
+ \tl_set:Ne \l_@@_content_AF_source_tl
+ {
+ \l_@@_texsource_template_tl
+ }
+ \tl_set:Nn \l_@@_content_AF_mathml_tl {}
+ \tl_set:Nn \l_@@_content_alt_tl {}
+ }
+% \end{macrocode}
+% \end{plugdecl}
+%
+% \begin{plugdecl}{alt+source}
+% \begin{macrocode}
+\socket_new_plug:nnn
+ {tagsupport/math/content}
+ {alt+source}
+ {
+ \tl_set:Ne\l_@@_content_alt_tl
+ {
+ \l_@@_content_template_tl
+ }
+ \tl_set:Ne \l_@@_content_AF_source_tl
+ {
+ \l_@@_texsource_template_tl
+ }
+ \tl_set:Nn \l_@@_content_AF_mathml_tl {}
+ \tl_set:Nn \l_@@_content_actual_tl {}
+ }
+% \end{macrocode}
+% \end{plugdecl}
+% \begin{macrocode}
+\socket_assign_plug:nn {tagsupport/math/content}{alt+source}
+% \end{macrocode}
+%
+% \begin{socketdecl}{tagsupport/math/struct/begin,
+% tagsupport/math/struct/end}
+% For the main structure we use a socket too.
+% This allow e.g. to create a special one for luamml
+% which setups additional objects.
+% The begin socket can use the two variables
+% \cs{g_@@_grabbed_env_tl} and \cs{g_@@_grabbed_math_tl}
+% \begin{macrocode}
+\socket_new:nn {tagsupport/math/struct/begin}{0}
+\socket_new:nn {tagsupport/math/struct/end}{0}
+% \end{macrocode}
+% \end{socketdecl}
+%
+% \begin{plugdecl}{default}
+% TODO: think about some naming convention ...
+% \begin{macrocode}
+\socket_new_plug:nnn
+ {tagsupport/math/struct/begin}
+ {default}
+ {
+ \bool_if:NTF\l__tag_math_texsource_AF_bool
+ { \tl_set_eq:NN \l_@@_content_AF_source_tmpa_tl \l_@@_content_AF_source_tl }
+ { \tl_clear:N \l_@@_content_AF_source_tmpa_tl }
+ \tag_struct_begin:n
+ {
+ tag=Formula,
+ texsource = \l_@@_content_AF_source_tmpa_tl,
+ title-o = \g_@@_grabbed_env_tl,
+ actualtext = \l_@@_content_actual_tl,
+ alt = \l_@@_content_alt_tl
+ }
+ }
+\socket_new_plug:nnn
+ {tagsupport/math/struct/end}
+ {default}
+ { \tag_struct_end: }
+
+\socket_assign_plug:nn {tagsupport/math/struct/begin}{default}
+\socket_assign_plug:nn {tagsupport/math/struct/end}{default}
+% \end{macrocode}
+% \end{plugdecl}
+%
+% \begin{plugdecl}{test-mathml}
+% This (test-)socket tries to add a mathml-AF to formula.
+% It is activated if a mathml.html has been found and loaded.
+% Additionally it also sets an attribute
+% (this can perhaps be done by default anyway.)
+% As it disturbs the reading of the AF it currently deactivates the /Alt key,
+% unless it has been reenabled with |math/alt/use=true|
+% \begin{macrocode}
+\cs_generate_variant:Nn \str_mdfive_hash:n {o}
+\tl_new:N\l_@@_content_hash_tl
+% \end{macrocode}
+% we need to save the grabbed math:
+% \begin{macrocode}
+\tl_new:N\l_@@_grabbed_math_tl
+% \end{macrocode}
+% the socket definition
+% \begin{macrocode}
+\socket_new_plug:nnn
+ {tagsupport/math/struct/begin}
+ {test-mathml}
+ {
+ \int_gincr:N\g_@@_math_total_int
+ \tl_set:Ne\l_@@_content_hash_tl
+ {\str_mdfive_hash:o { \l_@@_content_AF_source_tl }}
+ \tl_set_eq:NN\l_@@_grabbed_math_tl\g_@@_grabbed_math_tl
+ \tl_if_eq:NnTF\g_@@_grabbed_env_tl {math}
+ {
+ \tl_set:Nn\l_@@_attribute_class_tl{inline}
+ }
+ {
+ \tl_set:Nn\l_@@_attribute_class_tl{display}
+ }
+ \bool_if:NF\l__tag_math_alt_bool
+ { \tl_set:Nn \l_@@_content_alt_tl{} }
+% \end{macrocode}
+% debugging option. TODO: hide in debug key.
+% \begin{macrocode}
+ \tl_if_exist:cTF { g_@@_mathml_ \l_@@_content_hash_tl _tl }
+ {
+ \int_gincr:N\g_@@_mathml_AF_found_int
+ \bool_if:NTF \l__tag_math_mathml_AF_bool
+ {
+ \int_gincr:N\g_@@_mathml_AF_attached_int
+ \typeout {Inserting~mathml~with~Hash~\l_@@_content_hash_tl}
+ }
+ {
+ \typeout {Ignoring~mathml~with~Hash~\l_@@_content_hash_tl}
+ }
+ }
+ {
+ \typeout{WARNING:~mathml~missing~for~hash~\l_@@_content_hash_tl}
+ }
+ \socket_use:n {tagsupport/math/mathml/write} % write hash if request
+ \bool_if:NTF\l__tag_math_texsource_AF_bool
+ { \tl_set_eq:NN \l_@@_content_AF_source_tmpa_tl \l_@@_content_AF_source_tl }
+ { \tl_clear:N \l_@@_content_AF_source_tmpa_tl }
+ \tag_struct_begin:n
+ {
+ tag=Formula,
+ attribute-class=\l_@@_attribute_class_tl, %
+ AFref =
+ \bool_if:NT\l__tag_math_mathml_AF_bool
+ {
+ \cs_if_exist_use:c {g_@@_mathml_ \l_@@_content_hash_tl _tl}
+ },
+ texsource = \l_@@_content_AF_source_tmpa_tl, % should be after mathml AF!
+ title-o = \g_@@_grabbed_env_tl, %
+ alt = \l_@@_content_alt_tl
+ }
+ }
+% \end{macrocode}
+% not really needed but looks more symmetric:
+% \begin{macrocode}
+\socket_new_plug:nnn
+ {tagsupport/math/struct/end}
+ {test-mathml}
+ {
+ \tag_struct_end:
+ }
+% \end{macrocode}
+% \end{plugdecl}
+%
+% \begin{socketdecl}{tagsupport/math/substruct/begin,
+% tagsupport/math/substruct/end}
+% This holds the code to handle subparts of the formula.
+% \begin{macrocode}
+\socket_new:nn {tagsupport/math/substruct/begin}{0}
+\socket_new:nn {tagsupport/math/substruct/end}{0}
+% \end{macrocode}
+% \end{socketdecl}
+%
+% \begin{plugdecl}{default}
+% \begin{macrocode}
+\socket_new_plug:nnn
+ {tagsupport/math/substruct/begin}
+ {default}
+ { \grabaformulapartandstart }
+\socket_new_plug:nnn
+ {tagsupport/math/substruct/end}
+ {default}
+ {
+ \tagmcend
+ \if@subformulas
+ \tagstructend
+ \fi
+ }
+\socket_assign_plug:nn {tagsupport/math/substruct/begin}{default}
+\socket_assign_plug:nn {tagsupport/math/substruct/end}{default}
+% \end{macrocode}
+% \end{plugdecl}
+
+% \begin{plugdecl}{single}
+% We need an option to disable subparts as it is unclear
+% if consumers can handle them:
+% \begin{macrocode}
+\socket_new_plug:nnn
+ {tagsupport/math/substruct/begin}
+ {single}
+ {
+ \typeout{====>subpart~splitting~deactivated}
+ \typeout{====>grabbed~math=\meaning\g_@@_grabbed_math_tl}
+ \tag_mc_begin:n{}
+ }
+\socket_new_plug:nnn
+ {tagsupport/math/substruct/end}
+ {single}
+ { \tag_mc_end:}
+% \end{macrocode}
+% \end{plugdecl}
+%
+% \begin{socketdecl}{tagsupport/math/end}
+% A socket used at the end of the math (before the closing dollar(s))
+% which can e.g. set a flag for luamml.
+% \begin{macrocode}
+\socket_new:nn {tagsupport/math/end}{0}
+% \end{macrocode}
+% \end{socketdecl}
+
+%
+% \begin{macro}{\__tag_math_disable:}
+% Similar to the table code we collect the plugs that should be
+% assigned to do nothing if we don't want tagging
+% \begin{macrocode}
+\cs_new_protected:Npn \__tag_math_disable:
+ {
+ \socket_assign_plug:nn {tagsupport/math/inline/begin}{noop}
+ \socket_assign_plug:nn {tagsupport/math/inline/end}{noop}
+ \socket_assign_plug:nn {tagsupport/math/inline/formula/begin}{identity}
+ \socket_assign_plug:nn {tagsupport/math/inline/formula/end}{noop}
+ \socket_assign_plug:nn {tagsupport/math/display/begin}{noop}
+ \socket_assign_plug:nn {tagsupport/math/display/end}{noop}
+ \socket_assign_plug:nn {tagsupport/math/display/formula/begin}{identity}
+ \socket_assign_plug:nn {tagsupport/math/display/formula/end}{noop}
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\__tag_math_enable:}
+% Similar to the table code we collect the default plugs that should be
+% assigned if we want tagging
+% \begin{macrocode}
+\cs_new_protected:Npn \__tag_math_enable:
+ {
+ \socket_assign_plug:nn {tagsupport/math/inline/begin}{MC}
+ \socket_assign_plug:nn {tagsupport/math/inline/end}{MC}
+ \socket_assign_plug:nn {tagsupport/math/inline/formula/begin}{default}
+ \socket_assign_plug:nn {tagsupport/math/inline/formula/end}{default}
+ \socket_assign_plug:nn {tagsupport/math/display/begin}{default}
+ \socket_assign_plug:nn {tagsupport/math/display/end}{default}
+ \socket_assign_plug:nn {tagsupport/math/display/formula/begin}{default}
+ \socket_assign_plug:nn {tagsupport/math/display/formula/end}{default}
+ }
+% \end{macrocode}
+% \end{macro}
+% At begin document we can activate:
+% \begin{macrocode}
+\AtBeginDocument{\tag_if_active:T{\__tag_math_enable: }}
+% \end{macrocode}
%
% \subsection{Interface commands}
%
@@ -260,7 +1322,8 @@
{
\legacy_if:nF { measuring@ }
{
- \tl_if_in:nnF {#2} { \m@th }
+ \tl_if_in:nnTF {#2} { \m@th }
+ { \bool_set_true:N\l_@@_fakemath_bool }
{ \tl_trim_spaces_apply:nN {#2} \@@_process_auxi:nn {#1} }
}
}
@@ -287,15 +1350,15 @@
%
% \begin{macro}{\@@_grab_dollar:w}
% Grab up to a single |$|, for inline math mode, suppressing
-% any processing if the first token is \tn{m@th}.
+% any processing if the token is \tn{m@th} found in the content.
+%
+% \fmi{what's that test doing?}
%
-% \fmi{what's that test doing?}
+% \car{It is some kind of fix, to avoid the remote
+% possibility that the math is empty, making the code
+% produce an unwanted \texttt{\$\$}.}
%
-% \car{It is some kind of fix, to avoid the remote
-% possibility that the math is empty, making the code
-% produce an unwanted \texttt{\$\$}.}
-%
-%\car{cf.~the code for this in \cs{@ensuredmath}}
+%\car{cf.~the code for this in \cs{@ensuredmath}}
%
%\car{It is harmless but unnecessary in the dollardollar grabbing below.}
%
@@ -309,91 +1372,62 @@
\tl_if_blank:nF {#1}
{
\@@_process:nn { math } {#1} % $
-% fairly simple this one
% \end{macrocode}
-% We do not want math tagging in fakemath or when measuring,
-% so we imitate the test inside \cs{@@_process:nn} for now,
-% see https://github.com/latex3/tagging-project/issues/5
-% TODO: use socket to get more control about typesetting variants (tagged, drop etc)?
+% We do not want math tagging in fakemath or when measuring,
+% We also do not want math tagging if tagging has been suspended.
% \begin{macrocode}
- \legacy_if:nTF { measuring@ }
- { #1 $ }
- {
- \tl_if_in:nnTF {#1} { \m@th }
- { #1 $ }
- {
- \tagmcend %end P-chunk, in code: \tag_mc_end_push:
- \@kernel@math@begin
- #1 $
- \@kernel@math@end
- \tagmcbegin{} % restart P-chunk (whatsits in pdftex)
- }
- }
+ \bool_lazy_or:nnTF
+ {\legacy_if_p:n { measuring@ }}
+ { \l_@@_fakemath_bool }
+ { #1 $ }
+ {
+ \tag_socket_use:n {math/inline/begin} %end P-MC
+ \tag_socket_use:nn {math/inline/formula/begin}{#1}
+ $
+ \tag_socket_use:n {math/inline/formula/end}
+ \tag_socket_use:n {math/inline/end} % restart P-MC
+ }
}
}
% \end{macrocode}
% \end{macro}
+%
% \begin{macro}{\@@_grab_dollardollar:w}
% And for the classical \TeX{} display structure.
% \begin{macrocode}
-
-\skip_new:N \l_@@_tmpa_skip
-
\cs_new_protected:Npn \@@_grab_dollardollar:w % $$
#1 $$
{
\tl_if_blank:nF {#1}
{
- \@@_tag_dollardollar_display:nn { equation* }{#1}
- #1
+ \@@_process:nn { equation* } {#1}
+ \socket_use:n {tagsupport/math/display/begin}
+ \socket_use:nn{tagsupport/math/display/formula/begin}{#1}
$$
}
}
% \end{macrocode}
-% To allow to use the code without tagging we guard. But probably tagpdf should
-% provide some tools for such manual para-ends.
+%
+% The end code is added through a \cs{aftergroup} so we
+% store it inside a command.
% \begin{macrocode}
-\cs_new_protected:Npn \@kernel@close@P {
- \tag_if_active:T
- {
- \tagmcend %end P-chunk, should perhaps be \tag_mc_end_push: ...
- \int_gincr:N \g__tag_para_end_int
- \bool_if:NT \l__tag_para_show_bool
- { \tag_mc_begin:n{artifact}
- \rlap{\color_select:n{red}\tiny\ \int_use:N\g__tag_para_end_int}
- \tag_mc_end:
- }
- \tag_struct_end:
- }
-}
-
-
-
-\cs_new_protected:Npn \@@_tag_dollardollar_display:nn #1#2 {
- \@@_process:nn {#1} {#2}
- \@kernel@close@P
- \@kernel@math@begin
-% \skip_set:Nn \belowdisplayskip {-\belowdisplayskip}
-% \skip_set:Nn \belowdisplayshortskip {-\belowdisplayshortskip}
-% \int_set:Nn \postdisplaypenalty {10000}
-%%
-% \group_insert_after:N \@@_tag_dollardollar_display_end:
-}
-
-\cs_new_protected:Npn \@@_tag_dollardollar_display_end: {
-% \typeout{== tag dollarldollar display end}
-% \ShowTagging{struct-stack}
- \tagpdfparaOff
- \para_raw_end:
- \tagpdfparaOn
- \l_@@_tmpa_skip \lastskip
- \@kernel@math@end
- \penalty \postdisplaypenalty
+\cs_new_protected:Npn \@@_tag_dollardollar_display_end:
+ {
+ % \typeout{== tag dollarldollar display end}
+ % \ShowTagging{struct-stack}
+ \para_raw_end:
+% \end{macrocode}
+% TODO why is that needed? where is para-tagging disabled?
+% \begin{macrocode}
+ \tagpdfparaOn
+ \l_@@_tmpa_skip \lastskip
+ \socket_use:n{tagsupport/math/display/formula/end}
+ \penalty \postdisplaypenalty
% \end{macrocode}
% This reinserts the below display skips. It must be doubled to
% get the right amount:
% \begin{macrocode}
- \skip_vertical:n { -\l_@@_tmpa_skip * 2 }
+ \skip_vertical:n { -\l_@@_tmpa_skip * 2 }
%
\@doendpe % this has no \end{...} to take care of it
}
@@ -410,13 +1444,13 @@
{
\tl_if_blank:nF {#1}
{
- \@@_process:nn { math } {#1}
$ #1 $
}
\bool_set_false:N \l_@@_collected_bool
}
% \end{macrocode}
% \end{macro}
+%
% \begin{macro}{\@@_grab_eqn:w}
% For the most common use of \cs{[}/\cs{]}: turn into an environment.
% \begin{macrocode}
@@ -463,7 +1497,7 @@
% \begin{macro}{\math_register_env:n}
% \begin{macro}{\RegisterMathEnvironment}
% Set up to capture environment content and make available.
-%
+%
% \begin{macrocode}
\cs_new_protected:Npn \math_register_env:nn #1#2
{
@@ -472,15 +1506,8 @@
\cs_gset_eq:cc { @@_env_ #1 _begin: } {#1}
\cs_gset_eq:cc { @@_env_ #1 _end: } { end #1 }
%
- \ExpandArgs { nnx } \RenewDocumentEnvironment {#1} { b }
+ \ExpandArgs { nne } \RenewDocumentEnvironment {#1} { b }
{
-% \bool_set_true:N \exp_not:N \l_@@_collected_bool
-% \cs_if_exist:cTF { @@_env #1 _aux: }
-% {
-% \exp_not:c { @@_env #1 _aux: }
-% ####1 \exp_not:N \@@_env_end: {#1}
-% }
-% { \exp_not:N \@@_process:nn {#1} {####1} }
\exp_not:N \bool_if:NTF \exp_not:N \l_@@_collected_bool
{
% \typeout{===>B1}
@@ -490,34 +1517,22 @@
\cs_if_exist:cTF { @@_env #1 _aux: }
{
\exp_not:c { @@_env #1 _aux: }
- ####1 \exp_not:N \@@_env_end: {#1}
+ ##1 \exp_not:N \@@_env_end: {#1}
}
- { \exp_not:N \@@_process:nn {#1} {####1} }
+ { \exp_not:N \@@_process:nn {#1} {##1} }
\exp_not:n { \@kernel@math@registered@begin }
\bool_set_true:N \exp_not:N \l_@@_collected_bool
}
-% \exp_not:N \tracingall
+% \exp_not:N \tracingall
\exp_not:c { @@_env_ #1 _begin: }
- ####1
+ ##1
\exp_not:c { @@_env_ #1 _end: }
-% \exp_not:c { @@_env_ #1 _end: }
% \exp_not:N \tracingnone
-% \exp_not:n { \@kernel@math@registered@end }
}
- {
- }
+ {
+ }
}
-\cs_set_protected:Npn \__cs_tmp:w #1
- {
- \group_begin:
- \exp_args:No \__cs_generate_internal_variant:n
- { \tl_to_str:n {#1} }
- \group_end:
- }
-\__cs_tmp:w { nnxx }
-
-
\cs_new_protected:Npn \math_register_halign_env:nn #1#2
{
\tl_set:Nn \l_@@_env_name_tl {#1}
@@ -525,15 +1540,8 @@
\cs_gset_eq:cc { @@_env_ #1 _begin: } {#1}
\cs_gset_eq:cc { @@_env_ #1 _end: } { end #1 }
%
- \ExpandArgs { nnxx } \RenewDocumentEnvironment {#1} { b }
+ \ExpandArgs { nnee } \RenewDocumentEnvironment {#1} { b }
{
-% \bool_set_true:N \exp_not:N \l_@@_collected_bool
-% \cs_if_exist:cTF { @@_env #1 _aux: }
-% {
-% \exp_not:c { @@_env #1 _aux: }
-% ####1 \exp_not:N \@@_env_end: {#1}
-% }
-% { \exp_not:N \@@_process:nn {#1} {####1} }
\exp_not:N \bool_if:NTF \exp_not:N \l_@@_collected_bool
{
% \typeout{===>B1}
@@ -543,23 +1551,24 @@
\cs_if_exist:cTF { @@_env #1 _aux: }
{
\exp_not:c { @@_env #1 _aux: }
- ####1 \exp_not:N \@@_env_end: {#1}
+ ##1 \exp_not:N \@@_env_end: {#1}
}
- { \exp_not:N \@@_process:nn {#1} {####1} }
+ { \exp_not:N \@@_process:nn {#1} {##1} }
\exp_not:n { \@kernel@math@registered@begin }
\bool_set_true:N \exp_not:N \l_@@_collected_bool
}
-% \exp_not:N \tracingall
+% \exp_not:N \tracingall
\exp_not:c { @@_env_ #1 _begin: }
- ####1
-% \exp_not:c { @@_env_ #1 _end: }
+ ##1
% \exp_not:N \tracingnone
}
- {
- \exp_not:c { @@_env_ #1 _end: }
- }
+ {
+ \exp_not:c { @@_env_ #1 _end: }
+ }
}
-
+% \end{macrocode}
+% TODO: the following command is neither documented nor used. Is is needed?
+% \begin{macrocode}
\cs_new_protected:Npn \math_register_odd_env:nn #1#2
{
\tl_set:Nn \l_@@_env_name_tl {#1}
@@ -567,7 +1576,7 @@
\cs_gset_eq:cc { @@_env_ #1 _begin: } {#1}
\cs_gset_eq:cc { @@_env_ #1 _end: } { end #1 }
%
- \ExpandArgs { nnxx } \RenewDocumentEnvironment {#1} { b }
+ \ExpandArgs { nnee } \RenewDocumentEnvironment {#1} { b }
{
\exp_not:N \bool_if:NTF \exp_not:N \l_@@_collected_bool
{
@@ -578,19 +1587,19 @@
\cs_if_exist:cTF { @@_env #1 _aux: }
{
\exp_not:c { @@_env #1 _aux: }
- ####1 \exp_not:N \@@_env_end: {#1}
+ ##1 \exp_not:N \@@_env_end: {#1}
}
- { \exp_not:N \@@_process:nn {#1} {####1} }
+ { \exp_not:N \@@_process:nn {#1} {##1} }
\exp_not:n { \@kernel@math@registered@begin }
\bool_set_true:N \exp_not:N \l_@@_collected_bool
}
-% \exp_not:N \tracingall
+% \exp_not:N \tracingall
\exp_not:c { @@_env_ #1 _begin: }
- ####1
+ ##1
}
{
\exp_not:c { @@_env_ #1 _end: }
-% needed if we don't have $$...$$
+% needed if we don't have $$...$$
% \exp_not:n { \typeout{---> @kernel@math@registered@end }}
\exp_not:n { \@kernel@math@registered@end }
}
@@ -614,7 +1623,7 @@
\cs_new:Npn \@kernel@math@registered@begin {
-% \ShowTagging{struct-stack}
+% \ShowTagging{struct-stack}
%\typeout{==>A1}\ShowTagging{struct-stack,mc-current}
\mode_if_vertical:TF
{
@@ -623,19 +1632,21 @@
% { \__block_list_beginpar_vmode: }
%
% \typeout{==>~ at:~ \g__tag_struct_tag_tl}
-%
- \exp_args:Noo\str_if_eq:nnF \g__tag_struct_tag_tl { \l__tag_para_main_tag_tl } % needs correction!
+%
+ \tag_if_active:T
+ {
+ \exp_args:Noo\str_if_eq:nnF \g__tag_struct_tag_tl { \l__tag_para_main_tag_tl } % needs correction!
{
% \typeout{==>A2}
\__block_beginpar_vmode:
} % needs correction!
+ }
}
{
% \typeout{==>A3}
- \@kernel@close@P
-% \tagmcend % needs correction!
+ \__tag_tool_close_P:
}
- \@kernel@math@begin
+ \socket_use:nn{tagsupport/math/display/formula/begin}{}
\tagpdfparaOff
% \typeout{==>MC1}\ShowTagging{mc-current}
}
@@ -644,13 +1655,14 @@
% \typeout{==>MC2}\ShowTagging{mc-current}
\para_raw_end:
\tagpdfparaOn
- \@kernel@math@end
+ \socket_use:n{tagsupport/math/display/formula/end}
% \typeout{==>MC3}\ShowTagging{mc-current}
\@endpetrue
}
-
+
\cs_new_protected:Npn \math_register_env:n #1
{ \math_register_env:nn {#1} { } }
+
\NewDocumentCommand \RegisterMathEnvironment { O{} m }
{ \math_register_env:nn {#2} {#1} }
% \end{macrocode}
@@ -660,12 +1672,12 @@
%
% \begin{macro}{\@@_env_forward:w}
% \begin{macrocode}
-\cs_new_protected:Npn \@@_env_forward:w #1 \@@_env_end: #2
+\cs_new_protected:Npn \@@_env_forward:w #1 \@@_env_end: #2
{ \@@_process:nn {#2} {#1} }
% \end{macrocode}
% \end{macro}
-%
-% \subsection{Document commands}
+%
+% \subsection{Document commands}
%
% \car*{Add one more here: \texttt{displaymath}, which
% is equivalent to \cs{[} , \cs{]}\\
@@ -692,9 +1704,9 @@
% at the moment register_env can only do display math
% \math_register_env:n { math }
\RenewDocumentEnvironment{math} {b}{$#1$}{}
-% and this one doesn't work either
+% and this one doesn't work either
% \math_register_env:n { displaymath }
- \RenewDocumentEnvironment{displaymath} {b}{\[#1\]}{}
+ \RenewDocumentEnvironment{displaymath} {b}{\[#1\]}{}
}
% \end{macrocode}
% \end{macro}
@@ -737,29 +1749,31 @@
{
\cs_gset_protected:Npn \[ % \]
{
- \bool_if:NTF \l_@@_collected_bool
- { \begin { equation* } }
- { \@@_grab_eqn:w }
+ \@@_grab_eqn:w
+ % \bool_if:NTF \l_@@_collected_bool
+% { \begin { equation* } }
+% { \@@_grab_eqn:w }
} % \[
\cs_gset_protected:Npn \]
{
- \bool_if:NTF \l_@@_collected_bool
- { \end{ equation* } }
- { \@badmath }
+ \@badmath
+% \bool_if:NTF \l_@@_collected_bool
+% { \end{ equation* } }
+% { \@badmath }
}
}
% \end{macrocode}
% \end{macro}
-%
+%
%
% \begin{macro}{\ensuremath}
% A bit of nesting fun to make sure we collect only if required.
% \fmi{why does ensuremath need handling at all?}
-%
-% \car{Indeed! Currently, this is setup to process the math that
-% it has anyways already captured as its argument; thus it is more
+%
+% \car{Indeed! Currently, this is setup to process the math that
+% it has anyways already captured as its argument; thus it is more
% efficient than leaving the capture to be repeated by the \cs{everymath}}
-%
+%
% \begin{macrocode}
%\cs_gset_protected:Npn \ensuremath #1
% {
@@ -786,47 +1800,6 @@
% have macro control.
% \begin{macrocode}
-\tl_new:N\tmpmathcontent
-
-
-\def\@kernel@math@begin {
-% \typeout{==>~math~begin}
-% needs different handling if we support nesting
- \tl_gset:Nx\tmpmathcontent
- {
- LaTeX~ formula~ starts~
- \exp_not:N\begin{\g_@@_grabbed_env_tl}
- \space
- \exp_not:V\g_@@_grabbed_math_tl
- \space
- \exp_not:N\end{\g_@@_grabbed_env_tl}
- \space LaTeX~ formula~ ends~
- }
- \tagstructbegin{tag=Formula,
- AFinline-o=\tmpmathcontent,
- title-o=\g_@@_grabbed_env_tl,
- actualtext=\tmpmathcontent
-% alt=\tmpmathcontent
- }
-% inner formula if multiple parts (not really implemented yet)
- \grabaformulapartandstart
-% the above does:
-% \tagstructbegin{tag=Formula}\tagmcbegin{}
-% or just
-% \tagmcbegin{}
-}
-\def\@kernel@math@end {
-% \typeout{==>~math~end}
-% \ShowTagging{struct-stack}
- \tagmcend
- \if@subformulas
- \tagstructend
- \else
- \fi
- \tagstructend
-% \ShowTagging{struct-stack}
-}
-
\exp_args:No \tex_everymath:D
{
\tex_the:D \tex_everymath:D
@@ -841,24 +1814,21 @@
{
\tex_the:D \tex_everydisplay:D
\iftrue % this may have to be a settable flag!
-% {
% \typeout{==>~ in~ everydisplay}
% \end{macrocode}
-% flipping the \cs{belowdisplay} values is done so that we get (assumption)
-% a negative skip and not make the page bigger then we take that out,
-% then we add the tagging code (in \cs{@@_tag_dollardollar_display_end} ) and
-% then we put a real \cs{postdisplaypenalty} in and
-% the right skip (of which we don't know if it is short or a
-% normal \cs{belowdisplayskip}). This might need some refinement if that skip
-% is actually negative from the start
+% flipping the \cs{belowdisplay} values is done so that we get (assumption)
+% a negative skip and not make the page bigger then we take that out,
+% then we add the tagging code (in \cs{@@_tag_dollardollar_display_end} ) and
+% then we put a real \cs{postdisplaypenalty} in and
+% the right skip (of which we don't know if it is short or a
+% normal \cs{belowdisplayskip}). This might need some refinement if that skip
+% is actually negative from the start
% (not sure it ever is and is worth bothering about)
% \begin{macrocode}
\skip_set:Nn \belowdisplayskip {-\belowdisplayskip}
\skip_set:Nn \belowdisplayshortskip {-\belowdisplayshortskip}
\int_set:Nn \postdisplaypenalty {10000}
-%
\group_insert_after:N \@@_tag_dollardollar_display_end:
-% }
\fi
\bool_if:NF \l_@@_collected_bool
{
@@ -876,14 +1846,23 @@
\math_register_env:n { eqnarray* }
% \end{macrocode}
%
-% Places where math mode is (ab)used.
+% Tabulars currently contain a \$ that shouldn't trigger math
+% tagging.
% \begin{macrocode}
-\clist_map_inline:nn
- { tabular }
- {
- \AddToHook{ env / #1 / begin }
- { \bool_set_true:N \l_@@_collected_bool }
- }
+\RequirePackage{array}
+\tl_if_in:NnT\@tabular{$}
+ {
+ \def\@tabular{%
+ \leavevmode
+ \UseTaggingSocket{tbl/hmode/begin}%
+ \hbox \bgroup
+ \bool_set_true:N \l_@@_collected_bool
+ $
+ \bool_set_false:N \l_@@_collected_bool
+ \col@sep\tabcolsep \let\d@llarbegin\begingroup
+ \let\d@llarend\endgroup
+ \@tabarray}
+ }
% \end{macrocode}
%
% \begin{macro}{\@@_m@th:, \m@th}
@@ -898,6 +1877,20 @@
}
% \end{macrocode}
% \end{macro}
+%
+% \subsection{Disable math grabbing in the begindocument hook}
+% For example amsart uses math to measure text there.
+%
+% \begin{macrocode}
+\tl_gput_right:Nn\@kernel@before@begindocument
+ {
+ \bool_set_true:N\l_@@_collected_bool
+ }
+\tl_gput_right:Nn\@kernel@after@begindocument
+ {
+ \bool_set_false:N\l_@@_collected_bool
+ }
+% \end{macrocode}
%
% \subsection{Modifying \pkg{amsmath}}
%
@@ -934,7 +1927,7 @@
$$\ignorespacesafterend
}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\def\common@align@ending {
\math@cr \black@\totwidth@
@@ -1007,9 +2000,11 @@
% \end{macrocode}
%
% \begin{macrocode}
-%
+%
\math_register_halign_env:nn {align}{}
\math_register_halign_env:nn {align*}{}
+ \math_register_halign_env:nn {alignat}{}
+ \math_register_halign_env:nn {alignat*}{}
\math_register_halign_env:nn {flalign}{}
\math_register_halign_env:nn {flalign*}{}
\math_register_halign_env:nn {gather}{}
@@ -1032,44 +2027,8 @@
\fi
}
% \end{macrocode}
-%
-% \begin{macrocode}
- \def\intertext@{%
- \def\intertext##1{%
- \ifvmode\else\\\@empty\fi
- \noalign{%
-% we have to flip the sign on the skip because we flipped it on the outside
- \penalty\postdisplaypenalty\vskip-\belowdisplayskip
- \vbox{
-% \end{macrocode}
-% Stop tagging when measuring:
-% \begin{macrocode}
- \ifmeasuring@\tag_stop:\fi
- \normalbaselines
- \ifdim\linewidth=\columnwidth
- \else \parshape\@ne \@totalleftmargin \linewidth
- \fi
-% \end{macrocode}
-% End the previous mc:\fmi{if we use 2 levels of formulas this would
-% need changing}
-% \begin{macrocode}
- \tag_mc_end_push:
-% \end{macrocode}
-% We are already in a par so we change now to Span:\fmi{not true any longer}
-% \begin{macrocode}
- \tagpdfsetup{paratag=P}%
- \tagpdfparaOn
- \noindent\ignorespaces##1\par
-% \end{macrocode}
-% Restart the MC
-% \begin{macrocode}
- \tag_mc_begin_pop:n{}}%
- \penalty\predisplaypenalty\vskip\abovedisplayskip%
- }%
- }
- }
-% \end{macrocode}
-%
+%
+%
% \begin{macrocode}
\@namedef{math@cr @ @ @ gather}{%
\ifst@rred\nonumber\fi
@@ -1083,7 +2042,7 @@
\cr
}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\@namedef{math@cr @ @ @ align}{%
\ifst@rred\nonumber\fi
@@ -1104,7 +2063,7 @@
\cr
}
% \end{macrocode}
-%
+%
% \begin{macrocode}
\def\restore@math@cr{\@namedef{math@cr @ @ @}{
%
@@ -1113,7 +2072,7 @@
\cr}}
\restore@math@cr
% \end{macrocode}
-%
+%
% \begin{macrocode}
}
% \end{macrocode}
@@ -1125,9 +2084,18 @@
%
%
-% \begin{macro}{}
+% \begin{macro}{\@@_split_at_nl:NN}
+% This splits grabbed math at newlines.
%
% \begin{macrocode}
+\cs_new:Npn \@@_split_at_nl:NN #1#2 {
+ \tl_set:Nf \l_@@_tmpa_tl {
+ \exp_after:wN \@@_split_at_nl_first:w #1 \\ \q_nil \\ \s_stop }
+ \exp_after:wN \@@_split_at_nl_aux:nnNN \l_@@_tmpa_tl #1 #2
+}
+% \end{macrocode}
+% and the auxiliary commands
+% \begin{macrocode}
\cs_new:Npn \@@_split_at_nl_first:w #1 \\ #2 \\ #3 \s_stop
{
\quark_if_nil:nTF {#2}
@@ -1137,8 +2105,15 @@
#2 \\ #3 \s_stop
}
}
-\cs_new:Npn \@@_split_chk_if_begin:ww #1 \begin #2 #3 \s_mark
- #4 \\ \q_nil \\ \s_stop
+
+\cs_new_protected:Npn \@@_split_at_nl_aux:nnNN #1 #2 #3 #4
+ {
+ \tl_gset:Nn #4 {#1}
+ \tl_gset:Nn #3 {#2}
+ }
+
+\cs_new:Npn \@@_split_chk_if_begin:ww
+ #1 \begin #2 #3 \s_mark #4 \\ \q_nil \\ \s_stop
{
\quark_if_nil:nTF {#2}
{ {#1} {#4} }
@@ -1148,7 +2123,9 @@
{ } { 1 }
}
}
+
\cs_new:Npn \@@_split_cleanup_begin_q_nil:w #1 \begin \q_nil {#1}
+
\cs_new:Npn \@@_split_collect_one_end:w #1 \end #2 #3 \s_stop #4 #5
{
\exp_args:Nf \@@_split_check_count_begins:nnnn
@@ -1157,14 +2134,16 @@
}
\cs_new:Npn \@@_split_count_begins:n #1
{ \int_eval:n { 0 \@@_split_count_begins:w #1 \begin \q_nil } }
+
\cs_new:Npn \@@_split_count_begins:w #1 \begin #2
{ \quark_if_nil:nF {#2} { +1 \@@_split_count_begins:w } }
+
\cs_new:Npn \@@_split_check_count_begins:nnnn #1 #2 #3 #4
{
\int_compare:nNnTF {#1} = {#2}
{
\exp_last_unbraced:Nf \@@_split_final_cleanup:nn
- { \split:n { \@@_split_guard:n {#3} #4 } }
+ { \@@_split:n { \@@_split_guard:n {#3} #4 } }
}
{
\exp_args:No \use_ii_i:nn
@@ -1184,29 +2163,17 @@
{ \exp_end: { #4 #1 } }
{ \@@_split_final_cleanup:w #3 \s_mark { #4 #1 #2 } }
}
-\NewDocumentCommand \splitnl { mm +m }
- {
- \tl_set:Nf \l_tmpa_tl { \split:n {#3} }
- \show \l_tmpa_tl
- \exp_after:wN \__splitnl_aux:nnNN \l_tmpa_tl #1 #2
- }
-
-
-\cs_new:Npn \split:n #1 {
+
+\cs_new:Npn \@@_split:n #1 {
\@@_split_at_nl_first:w #1 \\ \q_nil \\ \s_stop }
-
-\cs_new:Npn \@@_split_at_nl:NN #1#2 {
- \tl_set:Nf \l_tmpa_tl {
- \exp_after:wN \@@_split_at_nl_first:w #1 \\ \q_nil \\ \s_stop }
- \exp_after:wN \@@_split_at_nl_aux:nnNN \l_tmpa_tl #1 #2
-}
-
-\cs_new_protected:Npn \@@_split_at_nl_aux:nnNN #1 #2 #3 #4
- {
- \tl_gset:Nn #4 {#1}
- \tl_gset:Nn #3 {#2}
-}
-
+
+% this looks unused.
+%\NewDocumentCommand \splitnl { mm +m }
+% {
+% \tl_set:Nf \l_@@_tmpa_tl { \split:n {#3} }
+% \show \l_@@_tmpa_tl
+% \exp_after:wN \__splitnl_aux:nnNN \l_@@_tmpa_tl #1 #2
+% }
% \end{macrocode}
% \end{macro}
%
@@ -1233,9 +2200,11 @@
\edef\resulttitle{\g_@@_grabbed_env_tl\space (part)}
\tagstructbegin{tag=Formula,
% \end{macrocode}
-% For now we don't put anything in /alt or /ActualText on subformulas
+% For now we don't put real content in /alt or /ActualText on subformulas
+% but we add a short text to satisfy the pdf/ua-2 validator
% \begin{macrocode}
% alt=\result,
+ alt = subformula,
title-o=\resulttitle
}
}
@@ -1301,10 +2270,6 @@
% \end{macrocode}
%
% \begin{macrocode}
-%
-% \end{macrocode}
-%
-% \begin{macrocode}
%</kernel>
% \end{macrocode}
%
diff --git a/macros/latex/required/latex-lab/latex-lab-math.pdf b/macros/latex/required/latex-lab/latex-lab-math.pdf
index e65f6cd1bb..728777fa58 100644
--- a/macros/latex/required/latex-lab/latex-lab-math.pdf
+++ b/macros/latex/required/latex-lab/latex-lab-math.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/latex-lab-mathpkg.dtx b/macros/latex/required/latex-lab/latex-lab-mathpkg.dtx
index 14d8e94362..31e7d31ef6 100644
--- a/macros/latex/required/latex-lab/latex-lab-mathpkg.dtx
+++ b/macros/latex/required/latex-lab/latex-lab-mathpkg.dtx
@@ -2,7 +2,7 @@
%
%% File: latex-lab-mathpkg.dtx
%
-% Copyright (C) 2022,2023 The LaTeX Project
+% Copyright (C) 2022-2024 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -68,15 +68,8 @@
\ProvidesFile{latex-lab-mathpkg.ltx}
[2023-01-05 v0.1a mathpkg adaptions]
% \end{macrocode}
-% \subsection{Tagpdf support}
-% To make the code independent from tagging being loaded and active
-% we load the \pkg{tagpdf-base} package:
-%
-% \begin{macrocode}
-\RequirePackage{tagpdf-base}
-% \end{macrocode}
-%
%
+% \subsection{breqn}
% \begin{macrocode}
\AddToHook{package/breqn/after}{
\RegisterMathEnvironment{dmath}
@@ -86,6 +79,7 @@
}
% \end{macrocode}
%
+% \subsection{cases}
% Force loading of \pkg{amsmath} before \pkg{cases}.
% \begin{macrocode}
\AddToHook {package/cases/before}{\RequirePackage{amsmath}}
@@ -94,6 +88,29 @@
}
% \end{macrocode}
%
+% \subsection{bm}
+% Similar to the amsbsy code in latex-lab-amsmath for \cs{pmb} we need to mark up
+% copies as artifact:
+%
+% \begin{macrocode}
+\ExplSyntaxOn
+\AddToHook{package/bm/after}
+ {
+ \def\bm@pmb@@@@#1#2#3{{%
+ \hbox_set:Nn\l_@@_tmpa_box{$\m@th#1#3$}%
+ \dimen@#2\wd\tw@
+ \rlap{\box_use:N\l_@@_tmpa_box}%
+ \tag_mc_end:\tag_mc_begin:n{artifact}
+ \tag_mc_reset_box:N\l_@@_tmpa_box
+ \kern\dimen@
+ \raise1.5\dimen@\rlap{\box_use:N\l_@@_tmpa_box}%
+ \kern\dimen@
+ \box_use_drop:N\l_@@_tmpa_box
+ \tag_mc_end:\tag_mc_begin:n{}%
+ }}
+ }
+\ExplSyntaxOff
+% \end{macrocode}
% \begin{macrocode}
%</kernel>
% \end{macrocode}
diff --git a/macros/latex/required/latex-lab/latex-lab-mathpkg.pdf b/macros/latex/required/latex-lab/latex-lab-mathpkg.pdf
index 6669de2eb6..19f9fbbb03 100644
--- a/macros/latex/required/latex-lab/latex-lab-mathpkg.pdf
+++ b/macros/latex/required/latex-lab/latex-lab-mathpkg.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/latex-lab-mathtools.dtx b/macros/latex/required/latex-lab/latex-lab-mathtools.dtx
index c3f43243b1..aa27cbf01d 100644
--- a/macros/latex/required/latex-lab/latex-lab-mathtools.dtx
+++ b/macros/latex/required/latex-lab/latex-lab-mathtools.dtx
@@ -2,7 +2,7 @@
%
%% File: latex-lab-mathtools.dtx
%
-% Copyright (C) 2022,2023 The LaTeX Project
+% Copyright (C) 2022-2024 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -109,7 +109,7 @@
\def\intertext##1{%
\ifvmode\else\\\@empty\fi
\noalign{%
- \penalty\postdisplaypenalty\vskip\belowdisplayskip
+ \penalty\postdisplaypenalty\vskip-\belowdisplayskip
\vskip-\lineskiplimit % CCS
\vskip\normallineskiplimit % CCS
\vskip\l_MT_above_intertext_sep
@@ -135,7 +135,7 @@
% \end{macrocode}
% We are already in a par so we change now to Span:
% \begin{macrocode}
- \tagpdfsetup{paratag=Span}
+ \tagpdfsetup{para/tag=Span}
\noindent\ignorespaces##1\par
% \end{macrocode}
% Restart the MC
@@ -169,7 +169,8 @@
\parshape\@ne \@totalleftmargin \linewidth
\MH_fi:
\tag_mc_end_push:
- \tagpdfsetup{paratag=Span}
+ \tagpdfsetup{para/tag=Span}
+ \tagpdfparaOn
\noindent\ignorespaces#1\par
\tag_mc_begin_pop:n{}}
\penalty\predisplaypenalty\vskip\abovedisplayshortskip%
@@ -197,7 +198,11 @@
\parshape\@ne \@totalleftmargin \linewidth
\MH_fi:
\tag_mc_end_push:
- \tagpdfsetup{paratag=Span}
+ \tagpdfsetup{para/tag=P}
+% \end{macrocode}
+% Why is it needed to enable paratagging??
+% \begin{macrocode}
+ \tagpdfparaOn
\noindent\ignorespaces#1\par
\tag_mc_begin_pop:n{}}%
\penalty\predisplaypenalty\vskip\abovedisplayshortskip%
diff --git a/macros/latex/required/latex-lab/latex-lab-mathtools.pdf b/macros/latex/required/latex-lab/latex-lab-mathtools.pdf
index e079d79d48..d89429b3d2 100644
--- a/macros/latex/required/latex-lab/latex-lab-mathtools.pdf
+++ b/macros/latex/required/latex-lab/latex-lab-mathtools.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/latex-lab-minipage.dtx b/macros/latex/required/latex-lab/latex-lab-minipage.dtx
index 1d3ee828aa..ffbe5357e7 100644
--- a/macros/latex/required/latex-lab/latex-lab-minipage.dtx
+++ b/macros/latex/required/latex-lab/latex-lab-minipage.dtx
@@ -1,6 +1,8 @@
% \iffalse meta-comment
%
-%% File: latex-lab-minipage.dtx (C) Copyright 2023 LaTeX Project
+%% File: latex-lab-minipage.dtx
+%%
+% Copyright (C) 2023-2024 LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
diff --git a/macros/latex/required/latex-lab/latex-lab-minipage.pdf b/macros/latex/required/latex-lab/latex-lab-minipage.pdf
index 3ee22bfc51..9eaffaeb9b 100644
--- a/macros/latex/required/latex-lab/latex-lab-minipage.pdf
+++ b/macros/latex/required/latex-lab/latex-lab-minipage.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/latex-lab-namespace.dtx b/macros/latex/required/latex-lab/latex-lab-namespace.dtx
index 2ec9b0584b..cfc06c7b09 100644
--- a/macros/latex/required/latex-lab/latex-lab-namespace.dtx
+++ b/macros/latex/required/latex-lab/latex-lab-namespace.dtx
@@ -1,6 +1,8 @@
% \iffalse meta-comment
%
-%% File: latex-lab-namespace.dtx (C) Copyright 2023 LaTeX Project
+%% File: latex-lab-namespace.dtx
+%%
+% Copyright (C) 2023-2024 LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -24,7 +26,7 @@
% \fi
% \title{Prototype reimplementation of \LaTeXe{}'s role mapping}
% \author{\LaTeX{} Project, initial implementation Ulrike Fischer}
-% \date{v0.8 2023-09-04}
+% \date{v0.8b 2024-03-24}
%
% \maketitle
%
@@ -60,18 +62,33 @@
% \begin{macrocode}
title, Title, pdf2,
part, Title, pdf2,
+% \end{macrocode}
+% Headings differ in article and book class. This here is for article:
+% \begin{macrocode}
section, H1, pdf2,
subsection, H2, pdf2,
subsubsection,H3, pdf2,
paragraph, H4, pdf2,
subparagraph, H5, pdf2,
+% \end{macrocode}
+% And this here is used in book:
+% \begin{macrocode}
+%chapter, H1, pdf2,
+%section, H2, pdf2,
+%subsection, H3, pdf2,
+%subsubsection, H4, pdf2,
+%paragraph, H5, pdf2,
+%subparagraph, H6, pdf2,
+% \end{macrocode}
+%
+% \begin{macrocode}
list, L, pdf2,
itemize, L, pdf2,
enumerate, L, pdf2,
description, L, pdf2,
quote, BlockQuote,pdf,
quotation, BlockQuote,pdf,
-verbatim, Div, pdf2,
+verbatim, Div, pdf2, % overwritten by block
item, LI, pdf2,
itemlabel, Lbl, pdf2,
itembody, LBody, pdf2,
diff --git a/macros/latex/required/latex-lab/latex-lab-namespace.pdf b/macros/latex/required/latex-lab/latex-lab-namespace.pdf
index d8c4cba427..2dfea04dee 100644
--- a/macros/latex/required/latex-lab/latex-lab-namespace.pdf
+++ b/macros/latex/required/latex-lab/latex-lab-namespace.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/latex-lab-new-or-1.dtx b/macros/latex/required/latex-lab/latex-lab-new-or-1.dtx
index cc60f50de0..9994b15cb8 100644
--- a/macros/latex/required/latex-lab/latex-lab-new-or-1.dtx
+++ b/macros/latex/required/latex-lab/latex-lab-new-or-1.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: latex-lab-new-or-1.dtx (C) Copyright 2020-2023 Frank Mittelbach
+%% File: latex-lab-new-or-1.dtx (C) Copyright 2020-2024 Frank Mittelbach
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
diff --git a/macros/latex/required/latex-lab/latex-lab-new-or-1.pdf b/macros/latex/required/latex-lab/latex-lab-new-or-1.pdf
index 501f7ac3d2..dbfef1a84c 100644
--- a/macros/latex/required/latex-lab/latex-lab-new-or-1.pdf
+++ b/macros/latex/required/latex-lab/latex-lab-new-or-1.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/latex-lab-new-or-2.dtx b/macros/latex/required/latex-lab/latex-lab-new-or-2.dtx
index d2011256b1..ee20331a8f 100644
--- a/macros/latex/required/latex-lab/latex-lab-new-or-2.dtx
+++ b/macros/latex/required/latex-lab/latex-lab-new-or-2.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
%
%% File: latex-lab-new-or-2.dtx
-% Copyright (C) 2022-2023 The LaTeX Project
+% Copyright (C) 2022-2024 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
diff --git a/macros/latex/required/latex-lab/latex-lab-new-or-2.pdf b/macros/latex/required/latex-lab/latex-lab-new-or-2.pdf
index e15dd5abd0..6a354382ac 100644
--- a/macros/latex/required/latex-lab/latex-lab-new-or-2.pdf
+++ b/macros/latex/required/latex-lab/latex-lab-new-or-2.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/latex-lab-sec.dtx b/macros/latex/required/latex-lab/latex-lab-sec.dtx
index ae7a0b85c3..f3786c2ddb 100644
--- a/macros/latex/required/latex-lab/latex-lab-sec.dtx
+++ b/macros/latex/required/latex-lab/latex-lab-sec.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: latex-lab-sec.dtx (C) Copyright 2022-2023 LaTeX Project
+%% File: latex-lab-sec.dtx (C) Copyright 2022-2024 LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -16,10 +16,10 @@
%
% for those people who are interested or want to report an issue.
%
-\def\ltlabsecdate{2023-10-16}
-\def\ltlabsecversion{0.84b}
+\def\ltlabsecdate{2024-02-12}
+\def\ltlabsecversion{0.84c}
%<*driver>
-\documentclass{l3doc}
+\documentclass[kernel]{l3doc}
\EnableCrossrefs
\CodelineIndex
\begin{document}
@@ -214,11 +214,11 @@
\fi
\IfBooleanTF {#1}
{
- \tl_gset:Nx \@currentHref {#3}
+ \tl_gset:Ne \@currentHref {#3}
}
{
\int_gincr:N\g__kernel_target_int
- \tl_gset:Nx \@currentHref {target*.\int_use:N\g__kernel_target_int}
+ \tl_gset:Ne \@currentHref {target*.\int_use:N\g__kernel_target_int}
}
}
\ExplSyntaxOff
@@ -260,7 +260,7 @@
tag= {\int_compare:nNnTF {#1}={-1}{Part}{Sect}}
,#2
}
- \seq_gpush:Nx \g__tag_sec_stack_seq {{\g__tag_struct_tag_tl}{\int_eval:n{#1}}}
+ \seq_gpush:Ne \g__tag_sec_stack_seq {{\g__tag_struct_tag_tl}{\int_eval:n{#1}}}
}
% \end{macrocode}
% \end{macro}
@@ -289,7 +289,7 @@
\__tag_sec_end:n {#1}
}
{
- \msg_warning:nnxx {tag}{wrong-sect-nesting}
+ \msg_warning:nnee {tag}{wrong-sect-nesting}
{ \exp_last_unbraced:NV\use_i:nn \l__tag_tmpa_tl }
{ \exp_last_unbraced:NV\use_i:nn \l__tag_tmpb_tl }
}
@@ -670,6 +670,7 @@
\cs_new_protected:Npn \@kernel@tag@hangfrom #1
{
\tagstructbegin{tag=\l__tag_para_tag_tl}
+ \cs_if_exist_use:N \__tag_gincr_para_begin_int:
\tagstructbegin{tag=Lbl}
\setbox\@tempboxa
\hbox
diff --git a/macros/latex/required/latex-lab/latex-lab-sec.pdf b/macros/latex/required/latex-lab/latex-lab-sec.pdf
index d470f9bbfb..6471291a8a 100644
--- a/macros/latex/required/latex-lab/latex-lab-sec.pdf
+++ b/macros/latex/required/latex-lab/latex-lab-sec.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/latex-lab-table.dtx b/macros/latex/required/latex-lab/latex-lab-table.dtx
index 700d4ce6c1..38596478ae 100644
--- a/macros/latex/required/latex-lab/latex-lab-table.dtx
+++ b/macros/latex/required/latex-lab/latex-lab-table.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: latex-lab-table.dtx (C) Copyright 2023 LaTeX Project
+%% File: latex-lab-table.dtx (C) Copyright 2023-2024 LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -16,8 +16,8 @@
%
% for those people who are interested or want to report an issue.
%
-\def\ltlabtbldate{2023-10-30}
-\def\ltlabtblversion{0.85d}
+\def\ltlabtbldate{2024-05-25}
+\def\ltlabtblversion{0.85i}
%<*driver>
\documentclass{l3doc}
\EnableCrossrefs
@@ -115,9 +115,20 @@
% Such tables can be nested.
%
% If a table should not be tagged as table, for example because it is merely used
-% to produce a layout or because it is a not yet (fully) supported table structure,
+% as a layout to ensure that the content is properly aligned
+% or because it is a not yet (fully) supported table structure,
% the tagging can be disabled with
-% \verb|\tagpdfsetup{table-tagging=false}|.
+% \verb|\tagpdfsetup{table/tagging=false}| or with \verb|\tagpdfsetup{table/tagging=presentation}|%
+% \footnote{The key has been renamed. The old name `table-tagging` still works but is
+% deprecated. The value \texttt{presentation} refers to the ARIA role \enquote{presentation}.}
+% The first option disables the table tagging code and the content of the tabular
+% is then treated more or less like running text. This works ok for simple tables using
+% only hmode-cells (l/c/r) with normal text content, but fails if the table uses vmode-cells
+% (p/m/b). In such cases the second option works better: it keeps the tagging code active
+% but changes the tag names to \texttt{Div} and the grouping structure \texttt{NonStruct}. It also
+% (re)sets the \texttt{table/header-rows} key to empty.
+% The key should currently only be used in a group as there is no key (yet) to reset to the default
+% tag names.
%
% Inside cells the automatic tagging of paragraphs is disabled with the exception of
% p/m/b-type cells.
@@ -126,9 +137,10 @@
% added with an empty TD-structure.
%
% There is some basic support\footnote{This is not meant to be the
-% final interface, though.} for headers. With
+% final interface, though.} for headers. With\footnote{The old key name \texttt{table-header-rows} still
+% works but is deprecated.}
% \begin{quote}
-% \verb|\tagpdfsetup{table-header-rows={|\meta{list of row numbers}\verb|}|
+% \verb|\tagpdfsetup{table/header-rows={|\meta{list of row numbers}\verb|}|
% \end{quote}
% you can
% declare which (absolute) row numbers should be tagged as header rows.
@@ -139,7 +151,7 @@
% for header columns yet. In a \env{longtable} the code will currently use the \cs{endhead} or
% \cs{endfirsthead} rows as header if one of these commands has been
% used and in that case the code
-% ignores a \texttt{table-header-rows} setting.
+% ignores a \texttt{table/header-rows} setting.
%
% You should not insert meaningful text with \verb+!{...}+ or \verb+@{...}+ or \cs{noalign}
% between the rows or columns of the table.
@@ -193,7 +205,8 @@
%
% \item Not every table should be tagged as a Table structure, often they are
% only used as layout help, e.g. to align authors in a title pages. In such uses
-% the tagging of the table must be deactivated with \verb|\tagpdfsetup{table-tagging=false}|.
+% the tagging of the table must be deactivated with \verb|\tagpdfsetup{table/tagging=false}|
+% or \verb|\tagpdfsetup{table/tagging=presentation}|.
%
% \item Only simple header rows are currently supported. Columns and complex headers with
% subheaders will be handled later as that needs some syntax changes. Tables
@@ -210,6 +223,8 @@
%
% \item The \env{longtable} environment supports footnotes in p-type columns, but it hasn't been
% tested yet if this works also with the tagging code.
+%
+% \item Vertical boxes (\cs{parbox}, \texttt{minipage}, \ldots) inside cells can be problematic.
%
% \item The code is quite noisy and fills the log with lots of
% messages.\footnote{Helpful for us at this stage.}
@@ -271,10 +286,11 @@
% \begin{macro}
% {
% \l_@@_celltag_tl
+% \l_@@_pcelltag_tl
% ,\l_@@_rowtag_tl
+% ,\l_@@_table_tl
% ,\l_@@_cellattribute_tl
% ,\l_@@_rowattribute_tl
-% ,\g_@@_missingcells_int
% ,\l_@@_tmpa_clist
% ,\l_@@_tmpa_seq
% ,\l_@@_tmpa_tl
@@ -283,12 +299,19 @@
% \begin{macrocode}
\tl_new:N \l_@@_celltag_tl
\tl_set:Nn \l_@@_celltag_tl {TD}
+\tl_new:N \l_@@_pcelltag_tl
+\tl_set:Nn \l_@@_pcelltag_tl {TD}
% \end{macrocode}
% For the rowtag, probably always TR:
% \begin{macrocode}
\tl_new:N \l_@@_rowtag_tl
\tl_set:Nn \l_@@_rowtag_tl {TR}
% \end{macrocode}
+% For the tabletag, probably always Table:
+% \begin{macrocode}
+\tl_new:N \l_@@_tabletag_tl
+\tl_set:Nn \l_@@_tabletag_tl {Table}
+% \end{macrocode}
% And here cell and row attributes:
% \begin{macrocode}
\tl_new:N \l_@@_cellattribute_tl
@@ -296,94 +319,27 @@
\tl_new:N \l_@@_rowattribute_tl
\tl_set:Nn \l_@@_rowattribute_tl {}
% \end{macrocode}
-% This will contain the number of missing cells used:
-% \begin{macrocode}
-\int_new:N \g_@@_missing_cells_int
-% \end{macrocode}
% Temp variables
% \begin{macrocode}
\clist_new:N \l_@@_tmpa_clist
-\seq_new:N \l_@@_tmpa_seq
\tl_new:N \l_@@_tmpa_tl
% \end{macrocode}
% \end{macro}
%
-% \subsection{Sockets}
-%
-% The code uses a number of sockets to inject the tagging
-% commands. These can be easily set to a noop-plug in case the
-% automated tagging is not wanted At first sockets for the begin and
-% end of cells and rows
-%
-% \begin{socketdecl}{tagsupport/tblcell/begin,
-% tagsupport/tblcell/end,
-% tagsupport/tblrow/begin,
-% tagsupport/tblrow/end,
-% }
-% \begin{macrocode}
-\NewSocket{tagsupport/tblcell/begin}{0}
-\NewSocket{tagsupport/tblcell/end}{0}
-\NewSocket{tagsupport/tblrow/begin}{0}
-\NewSocket{tagsupport/tblrow/end}{0}
-% \end{macrocode}
-% \end{socketdecl}
-%
-% \begin{socketdecl}{tagsupport/tbl/init}
-% This socket should be at the begin of the table, inside a group.
-% It is meant for settings like disabling paratagging. This socket
-% can perhaps be merged later into the begin-sockets when they are
-% no longer added as hooks but in the environment definitions.
-% \begin{macrocode}
-\NewSocket{tagsupport/tbl/init}{0}
-% \end{macrocode}
-% \end{socketdecl}
-%
-%
-% \begin{socketdecl}{tagsupport/tbl/finalize}
-% To fine tune the structure (change cells to header cells, remove
-% unwanted structures, move a foot to the end, etc.) we also need a
-% socket that is executed at the end of the table but \emph{before}
-% all the variables are restored to the outer or default values.
-% The code in the socket can make assignments, but probably
-% shouldn't do typesetting and not write whatsits.
-% \begin{macrocode}
-\NewSocket{tagsupport/tbl/finalize}{0}
-% \end{macrocode}
-% \end{socketdecl}
+% \subsection{Tagging support sockets}
%
-% \begin{socketdecl}{tagsupport/tbl/finalize/longtable}
-% \env{longtable} needs its own socket to fine tune the structure.
-% Simply switching the plug in the previous socket interferes with
-% enabling/disabling the tagging.
-% \begin{macrocode}
-\NewSocket{tagsupport/tbl/finalize/longtable}{0}
-% \end{macrocode}
-% \end{socketdecl}
-%
-% \begin{socketdecl}{tagsupport/tblhmode/begin,
-% tagsupport/tblhmode/end,
-% tagsupport/tblvmode/begin,
-% tagsupport/tblvmode/end
-% }
-%
-% These sockets are used in the begin and end code of environments,
-% to allow a fast enabling and disabling of the tagging. We
-% distinguish between tables that can be used inside paragraphs and
-% standalone tables like longtable.
-% \begin{macrocode}
-\NewSocket{tagsupport/tblhmode/begin}{0}
-\NewSocket{tagsupport/tblhmode/end}{0}
-\NewSocket{tagsupport/tblvmode/begin}{0}
-\NewSocket{tagsupport/tblvmode/end}{0}
-% \end{macrocode}
-% \end{socketdecl}
%
% This are the standard plugs for tagging of cells and rows.
%
% \begin{plugdecl}{TD}
% \begin{macrocode}
-\NewSocketPlug{tagsupport/tblcell/begin}{TD}
+\NewSocketPlug{tagsupport/tbl/cell/begin}{TD}
{
+% \end{macrocode}
+% Next line was previously outside of the plug, so if we want to execute it
+% always even if the noop plug is in force this needs a different solution.
+% \begin{macrocode}
+ \@@_show_curr_cell_data:
\tag_struct_begin:n
{
tag =\l_@@_celltag_tl,
@@ -405,7 +361,7 @@
%
% \begin{plugdecl}{TD}
% \begin{macrocode}
-\NewSocketPlug{tagsupport/tblcell/end}{TD}
+\NewSocketPlug{tagsupport/tbl/cell/end}{TD}
{
\tag_mc_end:
\tag_struct_end:
@@ -415,14 +371,14 @@
%
% In p-columns we need a slightly different plug which reactivates the
% paragraph tagging.
-% tagging
-% \begin{plugdecl}{TD}
+% \begin{plugdecl}{TDpbox}
% \begin{macrocode}
-\NewSocketPlug{tagsupport/tblcell/begin}{TDpbox}
+\NewSocketPlug{tagsupport/tbl/pcell/begin}{TDpbox}
{
+ \@@_show_curr_cell_data:
\tag_struct_begin:n
{
- tag =\l__tbl_celltag_tl,
+ tag =\l__tbl_pcelltag_tl,
attribute-class =\l__tbl_cellattribute_tl
}
\seq_gput_right:Ne \g__tbl_struct_cur_seq { \tag_get:n {struct_num} }
@@ -436,9 +392,9 @@
% \end{macrocode}
% \end{plugdecl}
%
-% \begin{plugdecl}{TD}
+% \begin{plugdecl}{TDpbox}
% \begin{macrocode}
-\NewSocketPlug{tagsupport/tblcell/end}{TDpbox}
+\NewSocketPlug{tagsupport/tbl/pcell/end}{TDpbox}
{
\tag_struct_end:
}
@@ -447,7 +403,7 @@
%
% \begin{plugdecl}{TR}
% \begin{macrocode}
-\NewSocketPlug{tagsupport/tblrow/begin}{TR}
+\NewSocketPlug{tagsupport/tbl/row/begin}{TR}
{
\seq_gclear:N \g_@@_struct_cur_seq
\tag_struct_begin:n
@@ -462,24 +418,28 @@
%
% \begin{plugdecl}{TR}
% \begin{macrocode}
-\NewSocketPlug{tagsupport/tblrow/end}{TR}
+\NewSocketPlug{tagsupport/tbl/row/end}{TR}
{
- \__tag_tbl_add_missing_cells:n { \g_@@_missing_cells_int }
+ \tag_if_active:T
+ {
+ \@@_add_missing_cells:
\seq_gput_right:Ne \g_@@_struct_cells_seq
{
\seq_use:Nn \g_@@_struct_cur_seq {,}
}
- \int_compare:nNnTF { \g_@@_row_int } = { \seq_count:N\g_@@_struct_cells_seq }
+ \int_compare:nNnTF { \g_@@_row_int } =
+ { \seq_count:N \g_@@_struct_cells_seq }
{
- \typeout
+ \@@_trace:n
{==>~
stucture~stored~for~row~\int_use:N\g_@@_row_int :~
\seq_use:Nn \g_@@_struct_cur_seq {,}
}
}
- { \ERROR } % should not happen ...
+ { \ERRORtbl/row } % should not happen ...
\tag_struct_end:
}
+ }
% \end{macrocode}
% \end{plugdecl}
%
@@ -497,6 +457,10 @@
\tag_if_active:T
{
\bool_set_false:N \l__tag_para_bool
+% \end{macrocode}
+% We also initialize the structure data variables a this point.
+% \begin{macrocode}
+ \@@_init_struct_data:
}
}
% \end{macrocode}
@@ -509,14 +473,41 @@
\NewSocketPlug{tagsupport/tbl/finalize}{Table}
{
\@@_set_header_rows:
+% \end{macrocode}
+% Similarly, we restore the outer values of the structure data when
+% we leave the table.
+% \begin{macrocode}
+ \@@_restore_struct_data:
}
% \end{macrocode}
% \end{plugdecl}
%
+%
+%
+%
+% \begin{plugdecl}{Table}
+% This plug will initialize the structure in longtable.
+% \begin{macrocode}
+\NewSocketPlug{tagsupport/tbl/longtable/init}{Table}
+ {
+ \seq_gclear:N\g_@@_struct_rows_seq
+ \seq_gclear:N\g_@@_struct_cells_seq
+ \seq_gclear:N\g_@@_struct_cur_seq
+ \seq_gclear:N\g_@@_LT@firsthead_rows_seq
+ \seq_gclear:N\g_@@_LT@head_rows_seq
+ \seq_gclear:N\g_@@_LT@lastfoot_rows_seq
+ \seq_gclear:N\g_@@_LT@foot_rows_seq
+ }
+% \end{macrocode}
+% \end{plugdecl}
+%
+%
+
+
% \begin{plugdecl}{Table}
-% This plug will fine tune the structure of longtable.
+% This plug will fine tune the structure in longtable.
% \begin{macrocode}
-\NewSocketPlug{tagsupport/tbl/finalize/longtable}{Table}
+\NewSocketPlug{tagsupport/tbl/longtable/finalize}{Table}
{
% \end{macrocode}
% If neither \cs{endhead} nor \cs{endfirsthead} has been used
@@ -582,7 +573,7 @@
\prop_if_exist:cT
{ g__tag_struct_ \l_@@_tmpa_tl _prop }
{
- \@@_struct_prop_gput:Vnn \l_@@_tmpa_tl {S}{/Artifact}
+ \exp_args:No \__tag_struct_prop_gput:nnn {\l_@@_tmpa_tl} {S}{/Artifact}
}
}
}
@@ -673,7 +664,7 @@
\prop_if_exist:cT
{ g__tag_struct_ \l_@@_tmpa_tl _prop }
{
- \@@_struct_prop_gput:Vnn \l_@@_tmpa_tl {S}{/Artifact}
+ \exp_args:No\__tag_struct_prop_gput:nnn {\l_@@_tmpa_tl} {S}{/Artifact}
}
}
}
@@ -683,11 +674,40 @@
% \end{macrocode}
% \end{plugdecl}
%
+%
+%
+% \begin{plugdecl}{Table}
+%
+% We must avoid that the reuse of the header foot box leads to duplicated
+% content, thus reset attribute of the box:
+% \begin{macrocode}
+\NewSocketPlug{tagsupport/tbl/longtable/head}{Table}
+ {
+ \tagmcbegin{artifact}
+ \tag_mc_reset_box:N\LT@head
+ \tagmcend
+ }
+% \end{macrocode}
+% \end{plugdecl}
+%
% \begin{plugdecl}{Table}
% \begin{macrocode}
-\NewSocketPlug{tagsupport/tblhmode/begin}{Table}
+\NewSocketPlug{tagsupport/tbl/longtable/foot}{Table}
+ {
+ \tagmcbegin{artifact}
+ \tag_mc_reset_box:N \LT@foot
+ \tagmcend
+ }
+% \end{macrocode}
+% \end{plugdecl}
+%
+%
+%
+%
+% \begin{plugdecl}{Table}
+% \begin{macrocode}
+\NewSocketPlug{tagsupport/tbl/hmode/begin}{Table}
{
- \mode_leave_vertical:
\tag_mc_end_push:
% \end{macrocode}
% Close the P-chunk. This assumes that para-tagging is active.
@@ -696,7 +716,7 @@
\bool_lazy_and:nnT
{ \bool_if_exist_p:N \l__tag_para_bool } { \l__tag_para_bool }
{ \tag_struct_end:n { text } }
- \tag_struct_begin:n {tag=Table}
+ \tag_struct_begin:n {tag=\l_@@_tabletag_tl}
\tl_gset:Ne \g_@@_struct_table_tl { \tag_get:n {struct_num} }
}
% \end{macrocode}
@@ -704,7 +724,7 @@
%
% \begin{plugdecl}{Table}
% \begin{macrocode}
-\NewSocketPlug{tagsupport/tblhmode/end}{Table}
+\NewSocketPlug{tagsupport/tbl/hmode/end}{Table}
{
\tag_struct_end:
% \end{macrocode}
@@ -721,9 +741,9 @@
%
% \begin{plugdecl}{Table}
% \begin{macrocode}
-\NewSocketPlug{tagsupport/tblvmode/begin}{Table}
+\NewSocketPlug{tagsupport/tbl/vmode/begin}{Table}
{
- \tag_struct_begin:n {tag=Table}
+ \tag_struct_begin:n {tag=\l_@@_tabletag_tl}
\tl_gset:Ne \g_@@_struct_table_tl { \tag_get:n {struct_num} }
}
% \end{macrocode}
@@ -731,7 +751,7 @@
%
% \begin{plugdecl}{Table}
% \begin{macrocode}
-\NewSocketPlug{tagsupport/tblvmode/end}{Table}
+\NewSocketPlug{tagsupport/tbl/vmode/end}{Table}
{
\tag_struct_end:
\par
@@ -740,30 +760,50 @@
% \end{plugdecl}
%
%
+% \begin{plugdecl}{code}
+% This socket takes a number, checks if is larger than one,
+% checks if the colspan attribute already exists (we can't predefine an
+% arbitrary number), and updates \cs{l_@@_cellattribute_tl}.
+% \begin{macrocode}
+\NewSocketPlug{tagsupport/tbl/colspan}{code}
+ {
+ \int_compare:nNnT {#1}>{1}
+ {
+ \prop_get:NeNF \g__tag_attr_entries_prop
+ {colspan-\int_eval:n{#1}}
+ \l_@@_tmpa_tl
+ {
+ \__tag_attr_new_entry:ee
+ {colspan-\int_eval:n{#1}}
+ {/O /Table /ColSpan~\int_eval:n{#1}}
+ }
+ \tl_set:Ne \l_@@_cellattribute_tl
+ {colspan-\int_eval:n{#1}}
+ }
+ }
+% \end{macrocode}
+% TODO: move to tagpdf
+% \begin{macrocode}
+\tag_if_active:T
+ { \cs_generate_variant:Nn \__tag_attr_new_entry:nn {ee} }
+
+% \end{macrocode}
+% \end{plugdecl}
%
%
%
%\subsection{Environments}
%
-% Currently only tabular, tabular*, tabularx and longtable.
-% We must use the \texttt{before} and \texttt{after} hooks as the \texttt{end}
-% hook is executed before the end of the last row and then MC are messed up.
-% This means that this sockets should only contain code that doesn't needs to be
-% grouped!
-% \begin{macrocode}
-\AddToHook{env/tabular/before} {\UseSocket{tagsupport/tblhmode/begin}}
-\AddToHook{env/tabular/after} {\UseSocket{tagsupport/tblhmode/end}}
-\AddToHook{env/tabular*/before} {\UseSocket{tagsupport/tblhmode/begin}}
-\AddToHook{env/tabular*/after} {\UseSocket{tagsupport/tblhmode/end}}
-\AddToHook{env/tabularx/before} {\UseSocket{tagsupport/tblhmode/begin}}
-\AddToHook{env/tabularx/after} {\UseSocket{tagsupport/tblhmode/end}}
-\AddToHook{env/longtable/before}{\UseSocket{tagsupport/tblvmode/begin}}
-\AddToHook{env/longtable/after} {\UseSocket{tagsupport/tblvmode/end}}
-% \end{macrocode}
+% Currently we support only tabular, tabular*, tabularx and longtable
+% (and possibly environments build directly on top of them).
%
% The \env{array} environment is math. So we disable table tagging for now.
+% We use the command hook to catch also cases where \cs{array} is used directly
+% in other environments like matrix environments.
+% Perhaps table tagging should be disable for math generally, but then
+% we have to handle text insertions.
% \begin{macrocode}
-\AddToHook{env/array/begin} {\__tag_tbl_disable:}
+\AddToHook{cmd/array/before}{\__tag_tbl_disable:}
% \end{macrocode}
%
%
@@ -771,34 +811,6 @@
%
% \subsubsection{Tagging helper commands}
%
-% \begin{macro}{\@@_set_colspan:n}
-% This commands takes a number, checks if is larger than one,
-% checks if the colspan attribute exists (we can't predefine an
-% arbitrary number), and updates \cs{l_@@_cellattribute_tl}.
-% \begin{macrocode}
-\tag_if_active:T
- { \cs_generate_variant:Nn \__tag_attr_new_entry:nn {ee} }
-\cs_new_protected:Npn \@@_set_colspan:n #1
- {
- \tag_if_active:T
- {
- \int_compare:nNnT {#1}>{1}
- {
- \prop_get:NeNF \g__tag_attr_entries_prop
- {colspan-\int_eval:n{#1}}
- \l_@@_tmpa_tl
- {
- \__tag_attr_new_entry:ee
- {colspan-\int_eval:n{#1}}
- {/O /Table /ColSpan~\int_eval:n{#1}}
- }
- \tl_set:Ne \l_@@_cellattribute_tl
- {colspan-\int_eval:n{#1}}
- }
- }
- }
-% \end{macrocode}
-% \end{macro}
%
% \subsubsection{Disabling/enabling}
%
@@ -810,17 +822,23 @@
% \begin{macrocode}
\cs_new_protected:Npn \__tag_tbl_disable:
{
- \AssignSocketPlug{tagsupport/tblcell/begin}{noop}
- \AssignSocketPlug{tagsupport/tblcell/end}{noop}
- \AssignSocketPlug{tagsupport/tblrow/begin}{noop}
- \AssignSocketPlug{tagsupport/tblrow/end}{noop}
+ \AssignSocketPlug{tagsupport/tbl/cell/begin}{noop}
+ \AssignSocketPlug{tagsupport/tbl/cell/end}{noop}
+ \AssignSocketPlug{tagsupport/tbl/pcell/begin}{noop}
+ \AssignSocketPlug{tagsupport/tbl/pcell/end}{noop}
+ \AssignSocketPlug{tagsupport/tbl/row/begin}{noop}
+ \AssignSocketPlug{tagsupport/tbl/row/end}{noop}
\AssignSocketPlug{tagsupport/tbl/init}{noop}
\AssignSocketPlug{tagsupport/tbl/finalize}{noop}
- \AssignSocketPlug{tagsupport/tbl/finalize/longtable}{noop}
- \AssignSocketPlug{tagsupport/tblhmode/begin}{noop}
- \AssignSocketPlug{tagsupport/tblhmode/end}{noop}
- \AssignSocketPlug{tagsupport/tblvmode/begin}{noop}
- \AssignSocketPlug{tagsupport/tblvmode/end}{noop}
+ \AssignSocketPlug{tagsupport/tbl/longtable/init}{noop}
+ \AssignSocketPlug{tagsupport/tbl/longtable/head}{noop}
+ \AssignSocketPlug{tagsupport/tbl/longtable/foot}{noop}
+ \AssignSocketPlug{tagsupport/tbl/longtable/finalize}{noop}
+ \AssignSocketPlug{tagsupport/tbl/hmode/begin}{noop}
+ \AssignSocketPlug{tagsupport/tbl/hmode/end}{noop}
+ \AssignSocketPlug{tagsupport/tbl/vmode/begin}{noop}
+ \AssignSocketPlug{tagsupport/tbl/vmode/end}{noop}
+ \AssignSocketPlug{tagsupport/tbl/colspan}{noop}
}
% \end{macrocode}
% \end{macro}
@@ -831,46 +849,59 @@
% \begin{macrocode}
\cs_new_protected:Npn \__tag_tbl_enable:
{
- \AssignSocketPlug{tagsupport/tblcell/begin}{TD}
- \AssignSocketPlug{tagsupport/tblcell/end}{TD}
- \AssignSocketPlug{tagsupport/tblrow/begin}{TR}
- \AssignSocketPlug{tagsupport/tblrow/end}{TR}
+ \AssignSocketPlug{tagsupport/tbl/cell/begin}{TD}
+ \AssignSocketPlug{tagsupport/tbl/cell/end}{TD}
+ \AssignSocketPlug{tagsupport/tbl/pcell/begin}{TDpbox}
+ \AssignSocketPlug{tagsupport/tbl/pcell/end}{TDpbox}
+ \AssignSocketPlug{tagsupport/tbl/row/begin}{TR}
+ \AssignSocketPlug{tagsupport/tbl/row/end}{TR}
\AssignSocketPlug{tagsupport/tbl/init}{Table}
\AssignSocketPlug{tagsupport/tbl/finalize}{Table}
- \AssignSocketPlug{tagsupport/tbl/finalize/longtable}{Table}
- \AssignSocketPlug{tagsupport/tblhmode/begin}{Table}
- \AssignSocketPlug{tagsupport/tblhmode/end}{Table}
- \AssignSocketPlug{tagsupport/tblvmode/begin}{Table}
- \AssignSocketPlug{tagsupport/tblvmode/end}{Table}
+ \AssignSocketPlug{tagsupport/tbl/longtable/head}{Table}
+ \AssignSocketPlug{tagsupport/tbl/longtable/foot}{Table}
+ \AssignSocketPlug{tagsupport/tbl/longtable/init}{Table}
+ \AssignSocketPlug{tagsupport/tbl/longtable/finalize}{Table}
+ \AssignSocketPlug{tagsupport/tbl/hmode/begin}{Table}
+ \AssignSocketPlug{tagsupport/tbl/hmode/end}{Table}
+ \AssignSocketPlug{tagsupport/tbl/vmode/begin}{Table}
+ \AssignSocketPlug{tagsupport/tbl/vmode/end}{Table}
+ \AssignSocketPlug{tagsupport/tbl/colspan}{code}
}
% \end{macrocode}
% \end{macro}
% \begin{macrocode}
-% TODO decide about key name
+% See tagpdfsetup-keys.md in tagpdf/doc for the naming scheme.
\keys_define:nn { __tag / setup }
{
- table-tagging .choices:nn = { true, on }
+ table/tagging .choices:nn = { true, on }
{ \__tag_tbl_enable: },
- table-tagging .choices:nn = { false, off }
+ table/tagging .choices:nn = { false, off }
{ \__tag_tbl_disable: },
- table-tagging .default:n = true,
- table-tagging .initial:n = true
+ table/tagging .choice:,
+ table/tagging / presentation .code:n =
+ {
+ \__tag_tbl_enable:
+ \tl_set:Nn\l_@@_rowtag_tl {NonStruct}
+ \tl_set:Nn\l_@@_pcelltag_tl {NonStruct}
+ \tl_set:Nn\l_@@_celltag_tl {text}
+ \tl_set:Nn\l_@@_tabletag_tl {Div}
+ \clist_clear:N \l_@@_header_rows_clist
+ },
+ table/tagging .default:n = true,
+ table/tagging .initial:n = true
}
% \end{macrocode}
-%
-% Table tagging should be disabled in the head and foot.
+% This are the old key names kept for now for
+% compability. They will got at some time.
% \begin{macrocode}
-\AddToHook{begindocument}
- {
- \cs_if_exist:NT \@kernel@before@head
- {
- \tl_put_right:Nn \@kernel@before@head {\__tag_tbl_disable:}
- \tl_put_right:Nn \@kernel@before@foot {\__tag_tbl_disable:}
- }
- }
+\keys_define:nn { __tag / setup }
+ {
+ table-tagging .meta:n = {table/tagging={#1}}
+ }
% \end{macrocode}
%
+%
% \subsubsection{Header support}
%
% Accessible table must have header cells declaring the meaning of the
@@ -900,17 +931,17 @@
{
\tagpdfsetup
{
- newattribute =
+ role/new-attribute =
{TH-col}{/O /Table /Scope /Column},
- newattribute =
+ role/new-attribute =
{TH-row}{/O /Table /Scope /Row},
- newattribute =
+ role/new-attribute =
{TH-both}{/O /Table /Scope /Both},
}
% \end{macrocode}
%
% And we put all three into the class map (perhaps the next tagpdf
-% should do that directly with newattribute):
+% should do that directly with role/new-attribute):
%
% \begin{macrocode}
\seq_gput_left:Ne\g__tag_attr_class_used_seq
@@ -926,28 +957,13 @@
%
% \begin{variable}{\l_@@_header_rows_clist}
% This holds the numbers of the header rows. Negative numbers are
-% possible and count from the back.
+% possible and count from the last column backwards.
% \begin{macrocode}
\clist_new:N \l_@@_header_rows_clist
% \end{macrocode}
% \end{variable}
%
% \begin{macro}{\@@_set_header_rows:}
-% TEMP: Next tagpdf will have the right command which also updates
-% the debug info.
-% For now a temporary command:
-% \begin{macrocode}
-\cs_if_free:NTF \__tag_struct_prop_gput:nnn
- {
- \cs_new_protected:Npn \@@_struct_prop_gput:nnn #1#2#3
- { \prop_gput:cnn { g__tag_struct_#1_prop }{#2}{#3} }
- }
- { \cs_new_protected:Npn \@@_struct_prop_gput:nnn #1#2#3
- { \__tag_struct_prop_gput:nnn {#1}{#2}{#3} }
- }
-\cs_generate_variant:Nn \@@_struct_prop_gput:nnn {nne,Vnn}
-% \end{macrocode}
-%
% \begin{macrocode}
\cs_new_protected:Npn \@@_set_header_rows:
{
@@ -964,7 +980,7 @@
% \begin{macrocode}
\prop_if_exist:cT { g__tag_struct_####1_prop }
{
- \@@_struct_prop_gput:nnn{ ####1 }{S}{/TH}
+ \__tag_struct_prop_gput:nnn{ ####1 }{S}{/TH}
% \end{macrocode}
% This need refinement once row headers (and perhaps other attributes)
% are used too, but for now it should be ok.
@@ -973,8 +989,8 @@
{ g__tag_struct_####1_prop }
{ C }
\l_@@_tmpa_tl
- {\@@_struct_prop_gput:nne{ ####1 }{C}{[/TH-col~\l_@@_tmpa_tl]} }
- {\@@_struct_prop_gput:nnn{ ####1 }{C}{/TH-col}}
+ {\__tag_struct_prop_gput:nne{ ####1 }{C}{[/TH-col~\l_@@_tmpa_tl]} }
+ {\__tag_struct_prop_gput:nnn{ ####1 }{C}{/TH-col}}
}
}
}
@@ -983,261 +999,68 @@
% \end{macro}
%
% And some key support:
+% (See tagpdfsetup-keys.md for the naming scheme.)
% \begin{macrocode}
-% TODO decide about key name
\keys_define:nn { __tag / setup }
{
- table-header-rows .clist_set:N = \l_@@_header_rows_clist
+ table/header-rows .clist_set:N = \l_@@_header_rows_clist,
+% \end{macrocode}
+% obsolete older name:
+% \begin{macrocode}
+ table-header-rows .meta:n = {table/header-rows={#1}}
}
% \end{macrocode}
%
-% \subsection{Changes to \pkg{array} commands}
%
%
+% \subsection{Misc stuff}
%
% \begin{macro}{\@@_show_curr_cell_data:}
% Show the row/column index and span count for current table cell
% for debugging.
% \begin{macrocode}
\cs_new_protected:Npn \@@_show_curr_cell_data: {
- \typeout { ==>~ current~cell~data:~
- \int_use:N \g_@@_row_int ,
- \int_use:N \g_@@_col_int ,
- \g_@@_span_tl
- }
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-%
-%
-% \begin{macro}{\insert@column}
-% \cs{insert@column} is defined in \pkg{array}, here only the two
-% sockets are inserted.
-% \begin{macrocode}
-\def\insert@column{%
- \@@_show_curr_cell_data:
- \UseSocket{tagsupport/tblcell/begin}%
- \the@toks \the \@tempcnta
- \ignorespaces \@sharp \unskip
- \the@toks \the \count@ \relax
- \UseSocket{tagsupport/tblcell/end}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\@classz}
-% \begin{macrocode}
-\def\@classz{\@classx
- \@tempcnta \count@
- \prepnext@tok
- \@addtopreamble{\ifcase \@chnum
- \hfil
- \hskip1sp%
- \d@llarbegin
- \insert@column
- \d@llarend \do@row@strut \hfil \or
- \hskip1sp\d@llarbegin \insert@column \d@llarend \do@row@strut \hfil \or
- \hfil\hskip1sp\d@llarbegin \insert@column \d@llarend \do@row@strut \or
- \setbox\ar@mcellbox\vbox
- \@startpbox{\@nextchar}
- \AssignSocketPlug{tagsupport/tblcell/begin}{TDpbox}
- \AssignSocketPlug{tagsupport/tblcell/end}{TDpbox}
- \insert@column \@endpbox
- \ar@align@mcell
- \do@row@strut \or
- \vtop \@startpbox{\@nextchar}
- \AssignSocketPlug{tagsupport/tblcell/begin}{TDpbox}
- \AssignSocketPlug{tagsupport/tblcell/end}{TDpbox}
- \insert@column \@endpbox\do@row@strut \or
- \vbox \@startpbox{\@nextchar}
- \AssignSocketPlug{tagsupport/tblcell/begin}{TDpbox}
- \AssignSocketPlug{tagsupport/tblcell/end}{TDpbox}
- \insert@column \@endpbox\do@row@strut
- \fi}\prepnext@tok}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@array,\@@@@array}
-% We modificate the \cs{@array} from \pkg{array}.
-% \begin{macrocode}
-\def\@array[#1]#2{%
- \@tempdima \ht \strutbox
- \advance \@tempdima by\extrarowheight
- \setbox \@arstrutbox \hbox{\vrule
- \@height \arraystretch \@tempdima
- \@depth \arraystretch \dp \strutbox
- \@width \z@}%
-% \end{macrocode}
-% The total number of table columns of the current table is
-% determined in \cs{@@_determine_table_cols:} but this is called in
-% a group, so local settings do not survive. Thus, to save away the
-% outer value of \cs{g_@@_table_cols_tl} we do it before the group.
-% \begin{macrocode}
- \tl_set_eq:NN \l_@@_saved_table_cols_tl \g_@@_table_cols_tl
-% \end{macrocode}
-%
-% \begin{macrocode}
- \begingroup
- \@mkpream{#2}
-% \end{macrocode}
-% Next call has to happen immediately after \cs{@mkpream} because
-% it uses implementation details from that.
-% \begin{macrocode}
- \@@_determine_table_cols:
-% \end{macrocode}
-%
-% \begin{macrocode}
- \xdef\@preamble{%
- \noexpand
-% \end{macrocode}
-% \cs{ialign} in the original definition is replaced by
-% \cs{ar@ialign} defined below.
-% \begin{macrocode}
- \ar@ialign
- \@halignto
- \bgroup \@arstrut
-% \end{macrocode}
-% A socket is inserted
-% \begin{macrocode}
- \UseSocket{tagsupport/tblrow/begin}%
-% \end{macrocode}
-% At the start of the preamble for the first column we set
-% \cs{g_@@_col_int} to \texttt{1} as we are no longer "at" but "in"
-% the first column. This is done in \cs{@@_init_cell_data:}. In
-% later columns this data is updated via \cs{@@_update_cell_data:}.
-% \begin{macrocode}
- \@@_init_cell_data:
- \@preamble
- \tabskip \z@ \cr}%
- \endgroup
- \@arrayleft
-% \end{macrocode}
-% Another socket for tagging. TODO: what about \cs{arrayleft}?
-% \begin{macrocode}
- \UseSocket{tagsupport/tbl/init}
- \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi \fi
- \bgroup
- \let \@sharp ##\let \protect \relax
- \lineskip \z@
- \baselineskip \z@
- \m@th
- \let\\\@arraycr \let\tabularnewline\\\let\par\@empty
-%\show\@preamble
- \@preamble}
-% \end{macrocode}
-% Finally, also set \cs{@@@@array} to the new definition:
-% \begin{macrocode}
-\let\@@@@array\@array
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\@@_init_cell_data:}
-%
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_init_cell_data: {
- \int_gset:Nn \g_@@_col_int {1}
- \tl_gset:Nn \g_@@_span_tl {1}
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\@@_update_cell_data:}
-% Updating cell data in columns after the first means we have to
-% increment the \cs{g_@@_col_int} by the span count of the previous
-% cell (in case it was a \cs{multicolumn} and then reset the
-% \cs{g_@@_span_tl} to one (as the default).
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_update_cell_data: {
- \int_gadd:Nn \g_@@_col_int { \g_@@_span_tl }
- \tl_gset:Nn \g_@@_span_tl {1}
+ \@@_trace:n { ==>~ current~cell~data:~
+ \int_use:N \g_@@_row_int ,
+ \int_use:N \g_@@_col_int ,
+ \g_@@_span_tl
+ }
}
% \end{macrocode}
% \end{macro}
%
%
%
-% \begin{macro}{\@@_determine_table_cols:}
-% Current implementation of \cs{@mkpream} uses the scratch counter
-% \cs{count@} to keep track of the number of toks registers it needs
-% (2 per column), but this can't be used as it counts also
-% insertings made with \verb+!{}+ and \verb+@{}+.
-% So similar as does longtable for \cs{LT@cols} we count the
-% numbers of ambersands instead.
-% \begin{macrocode}
-\cs_new:Npn \@@_determine_table_cols: {
- \seq_set_split:NnV\l_@@_tmpa_seq {&}\@preamble
- \tl_gset:Ne \g_@@_table_cols_tl { \seq_count:N \l_@@_tmpa_seq }
- \typeout{ ==>~ Table~ has~ \g_@@_table_cols_tl \space columns }
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\@arraycr}
-% Add code that figures out if the current table row is incomplete
-% (not enough \verb=&=s). It can then do extra actions, such as
-% inserting missing cell tags.
+% \begin{macro}{\@@_add_missing_cells:}
+% The storing and use of the number of missing cells must happen at
+% different places as the testing happens at the end of the last
+% cell of a row, but still inside that cell, so we use two
+% commands. The one adding is used in the row/end socket.
% \begin{macrocode}
-\protected\def\@arraycr{
- \relax
- \@@_store_missing_cells:n{@arraycr}
- %
- \iffalse{\fi\ifnum 0=`}\fi
- \@ifstar \@xarraycr \@xarraycr}
-% \end{macrocode}
-% \end{macro}
-%
-%
-%
-% \begin{macro}{\@@_store_missing_cells:n,
-% \__tag_tbl_add_missing_cells:n}
-% The storing and use of the number of missing cells
-% must happen at different places as the testing happens at
-% the end of the last cell of a row, but
-% still inside that cell, so we use two commands. The second is used in
-% the endrow socket.
-% \begin{macrocode}
-\cs_new:Npn \@@_store_missing_cells:n #1 {
- \int_compare:nNnT \g_@@_col_int > 0
- {
- \int_gset:Nn \g_@@_missing_cells_int
- {
- \g_@@_table_cols_tl
- - \g_@@_col_int
- - \g_@@_span_tl
- + 1
- }
- \int_compare:nNnT \g_@@_missing_cells_int < 0 \ERROR % should not happen
- \typeout{==>~
- (#1)~
- This~ row~ needs~
- \int_use:N \g_@@_missing_cells_int \space
- additional~ cell(s)
- }
- }
-}
+\NewSocket{tbl/celldata/missingcount}{1}
+\NewSocketPlug{tbl/celldata/missingcount}{code}{\tbl_count_missing_cells:n{#1}}
+\AssignSocketPlug{tbl/celldata/missingcount}{code}
+
% \end{macrocode}
%
% \begin{macrocode}
-\cs_new:Npn \__tag_tbl_add_missing_cells:n #1
+\cs_new:Npn \@@_add_missing_cells:
{
% \end{macrocode}
-% The TD-socket messages are issued after the message about the end-row socket,
-% but the structure is ok, so better issue a message for now to avoid confusion:
+% The TD-socket messages are issued after the message about the
+% end-row socket, but the structure is ok, so better issue a
+% message for now to avoid confusion:
% \begin{macrocode}
- \int_compare:nNnT {#1}>{0}
+ \int_compare:nNnT \g_@@_missing_cells_int > 0
{
- \typeout{==>~
- ~Inserting~\int_eval:n{#1}~additional~cell(s)~into~previous~row:}
- }
- \int_step_inline:nn { #1 }
- {
- \UseSocket{tagsupport/tblcell/begin}
- \UseSocket{tagsupport/tblcell/end}
+ \@@_trace:n {==>~
+ ~Inserting~\int_use:N \g_@@_missing_cells_int \space
+ additional~cell(s)~into~previous~row:}
+ \int_step_inline:nn { \g_@@_missing_cells_int }
+ {
+ \UseTaggingSocket{tbl/cell/begin}
+ \UseTaggingSocket{tbl/cell/end}
+ }
}
}
% \end{macrocode}
@@ -1245,119 +1068,8 @@
%
%
%
-% \begin{macro}{\endarray}
-% If tables are nested into another then it is necessary to
-% restore information about the cell the inner table started
-% in. Otherwise, \cs{g_@@_row_int}, \cs{g_@@_col_int}, and
-% \cs{g_@@_span_tl} reflect the status in the outer table as they
-% are globally manipulated. We restore in all cases even if we are
-% not in a nesting situation as that makes the code simpler (and
-% probably faster).
-%
-% \cs{endtabular} and \cs{endtabular*} inherit from \cs{endarray}
-% so we only need to change that. \texttt{tabularx} is handled
-% below.
-% \begin{macrocode}
-\def\endarray{
- \@@_store_missing_cells:n{endarray}
- \crcr \egroup
- \UseSocket{tagsupport/tbl/finalize}
- \int_gset:Nn \g_@@_col_int { \l_@@_saved_col_tl }
- \int_gset:Nn \g_@@_row_int { \l_@@_saved_row_tl }
- \tl_gset_eq:NN \g_@@_span_tl \l_@@_saved_span_tl
- \tl_gset_eq:NN \g_@@_table_cols_tl \l_@@_saved_table_cols_tl
- \tl_gset_eq:NN \g_@@_struct_table_tl \l_@@_saved_struct_table_tl
- \seq_gset_eq:NN \g_@@_struct_rows_seq \l_@@_saved_struct_rows_seq
- \seq_gset_eq:NN \g_@@_struct_cells_seq\l_@@_saved_struct_cells_seq
- \seq_gset_eq:NN \g_@@_struct_cur_seq \l_@@_saved_struct_cur_seq
- \typeout{==>~ restored~cell~data:~
- \int_use:N \g_@@_row_int,
- \int_use:N \g_@@_col_int,
- \l_@@_saved_span_tl \space
- (
- \int_compare:nNnTF \g_@@_table_cols_tl = 0
- { outer~ level }
- { max:~ \g_@@_table_cols_tl }
- )
- }
- \egroup
- \@arrayright \gdef\@preamble{}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\@addamp}
-% If we are after the first column we have to insert a \verb=&= and
-% also update the cell data.
-% \begin{macrocode}
-\def\@addamp {
- \if@firstamp
- \@firstampfalse
- \else
- \edef\@preamble{\@preamble &
- \@@_update_cell_data:
- }
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-%
-%
-%
-% \begin{macro}{
-% \g_@@_col_int,
-% \g_@@_row_int,
-% \g_@@_span_tl,
-% \g_@@_table_cols_tl}
-% \cs{g_@@_row_int} holds the current row number in the table. The value
-% \texttt{0} means we haven't yet processed the table preamble. It
-% is incremented by every \cs{cr} including the one ending the
-% table preamble.
%
-% \cs{g_@@_col_int} holds the current column number. The value
-% \texttt{0} means we have not yet started the table or just finished a table row
-% (with \verb=\\= typically); any other positive value means we
-% are currently typesetting a cell in that column in some row
-% (denoted by the \cs{g_@@_row_int}.
%
-% In a \cs{multicolumn} it holds the column number of the first
-% spanned column and \cs{g_@@_span_tl} the info how many cells are
-% spanned.
-%
-% \cs{g_@@_span_tl} is normally \texttt{1} except in a
-% \cs{multicolumn} cell.
-% \begin{macrocode}
-\int_new:N \g_@@_col_int
-\int_new:N \g_@@_row_int
-\tl_new:N \g_@@_span_tl
-\tl_new:N \g_@@_table_cols_tl
-
-\tl_gset:Nn \g_@@_span_tl {1}
-\tl_gset:Nn \g_@@_table_cols_tl {0} % indicates outer level
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\l_@@_saved_col_tl,\l_@@_saved_row_tl,
-% \l_@@_saved_span_tl,\l_@@_saved_table_cols_tl}
-%
-% Saving the outer values if we are nesting tables is necessary (as
-% the above variables are globally altered. For this we use always
-% token lists because they don't change and we do not need to blow
-% additional integer registers.
-% \begin{macrocode}
-\tl_new:N \l_@@_saved_col_tl
-\tl_new:N \l_@@_saved_row_tl
-\tl_new:N \l_@@_saved_span_tl
-\tl_new:N \l_@@_saved_table_cols_tl
-
-\tl_set:Nn \l_@@_saved_col_tl{0}
-\tl_set:Nn \l_@@_saved_row_tl{0}
-\tl_set:Nn \l_@@_saved_span_tl{1}
-\tl_set:Nn \l_@@_saved_table_cols_tl{0} % indicates outer level
-% \end{macrocode}
-% \end{macro}
%
% \begin{macro}
% {
@@ -1390,474 +1102,53 @@
\seq_new:N \l_@@_saved_struct_cur_seq
% \end{macrocode}
% \end{macro}
+
+
+
+% \begin{macro}{\@@_init_struct_data:}
+% Save the global structure data variables locally so the we can
+% restore them when the table ends (important in case of nested
+% tables).
%
-% \begin{macro}{\ar@ialign}
-% A new command that replaces \cs{ialign} above. \cs{everycr} is
-% also applied to the \cs{cr} ending the preamble so we have to
-% program around that.
+% This is also the right point to initialize
+% them. \cs{g_@@_struct_table_tl} is set elsewhere.
% \begin{macrocode}
-\def\ar@ialign{%
-% \end{macrocode}
-% Before starting a table we locally stored the information related
-% to the current cell (if any) so that we can restore it once the
-% table is finished.
-% \begin{macrocode}
- \tl_set:No \l_@@_saved_col_tl {\int_use:N \g_@@_col_int }
- \tl_set:No \l_@@_saved_row_tl {\int_use:N \g_@@_row_int }
- \tl_set_eq:NN \l_@@_saved_span_tl \g_@@_span_tl
+\cs_new_protected:Npn \@@_init_struct_data: {
\tl_set_eq:NN \l_@@_saved_struct_table_tl \g_@@_struct_table_tl
\seq_set_eq:NN \l_@@_saved_struct_rows_seq \g_@@_struct_rows_seq
\seq_set_eq:NN \l_@@_saved_struct_cells_seq \g_@@_struct_cells_seq
\seq_set_eq:NN \l_@@_saved_struct_cur_seq \g_@@_struct_cur_seq
%
- \typeout{==>~ saved~cell~data:~
- \l_@@_saved_row_tl,
- \l_@@_saved_col_tl,
- \l_@@_saved_span_tl \space
- (
- \int_compare:nNnTF \l_@@_saved_table_cols_tl = 0
- { outer~ level }
- { max:~ \l_@@_saved_table_cols_tl }
- )
- }
-% \end{macrocode}
-% These are the initial values when starting a table:
-% \begin{macrocode}
- \int_gzero:N \g_@@_row_int
- \int_gzero:N \g_@@_col_int
- \tl_gset:Nn \g_@@_span_tl {1}
\seq_gclear:N\g_@@_struct_rows_seq
\seq_gclear:N\g_@@_struct_cells_seq
\seq_gclear:N\g_@@_struct_cur_seq
+}
% \end{macrocode}
-%
-% \begin{macrocode}
- \everycr{%
- \noalign{%
-% \end{macrocode}
-% We use \cs{g_@@_col_int} equal zero to indicate that we are just
-% after a TR (or at the very beginning of the table). Using the row
-% count is not so good as longtable may split the table in chunks.
-% \begin{macrocode}
- \int_compare:nNnT \g_@@_col_int > 0
- { \UseSocket{tagsupport/tblrow/end} }
- \int_gincr:N \g_@@_row_int % this row about to start
- \int_gzero:N \g_@@_col_int % we are before first col
- }%
- }%
- \tabskip\z@skip\halign}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\multicolumn}
-%
-% \cs{multicolumn} is also defined in \pkg{array}. The redefinition
-% has to solve two problems: it must handle the row begin if it is
-% used there, and it must save the numbers of cells it spans so
-% that we can add a suitable ColSpan attribute.\footnote{FMi: This can
-% now perhaps cleaned up somewhat}
-% \begin{macrocode}
-\long\def\multicolumn#1#2#3{%
- % alternative: determine first col with vmode test ...
- % \ifvmode
- % \multispan{#1}\typeout{A==> vmode}%
- % \else
- % \multispan{#1}\typeout{A==> not vmode}
- % \fi
- % but this makes the \crcr handling really complicated which would
- % then need to become something like
- % \ifvmode \expandafter \@gobble
- % \else \expandafter \@iden \fi {\cr\noalign{do something}}%
- % so not used.
- % Instead:
- \multispan{#1}\begingroup
-% \end{macrocode}
-% Insert rowbegin socket only if this multicolumn
-% replaces the preamble of the first column. In that case we have
-% to set \cs{g_@@_col_int} to 1 since this is no longer done in the
-% preamble for the cell.
-% \begin{macrocode}
- \int_compare:nNnTF \g_@@_col_int = 0
- {
- \UseSocket{tagsupport/tblrow/begin}
- \int_gset:Nn \g_@@_col_int {1}
- }
-% \end{macrocode}
-% If we are in a later column we use \cs{g_@@_span_tl} from the
-% previous column to update.
-% \begin{macrocode}
- {
- \int_gadd:Nn \g_@@_col_int { \g_@@_span_tl }
- }
-% \end{macrocode}
-% Then we set the span value so that it can be use in the next column.
+% \end{macro}
+
+
+
+
+% \begin{macro}{\@@_restore_struct_data:}
+%
% \begin{macrocode}
- \tl_gset:Nn \g_@@_span_tl {#1}
+\cs_new_protected:Npn \@@_restore_struct_data: {
+ \tl_gset_eq:NN \g_@@_struct_table_tl \l_@@_saved_struct_table_tl
+ \seq_gset_eq:NN \g_@@_struct_rows_seq \l_@@_saved_struct_rows_seq
+ \seq_gset_eq:NN \g_@@_struct_cells_seq\l_@@_saved_struct_cells_seq
+ \seq_gset_eq:NN \g_@@_struct_cur_seq \l_@@_saved_struct_cur_seq
+}
% \end{macrocode}
+% \end{macro}
+
+
%
-% \begin{macrocode}
- \def\@addamp{\if@firstamp\@firstampfalse \else
- \@preamerr 5\fi}%
- \@mkpream{#2}\@addtopreamble\@empty
- \endgroup
-% \end{macrocode}
-% Now we update the colspan attribute. This needs setting after
-% the group as it is hidden inside the plug in \cs{insert@column}.
-% \begin{macrocode}
- \@@_set_colspan:n {#1}
-% \end{macrocode}
-% \begin{macrocode}
- \def\@sharp{#3}%
- \@arstrut \@preamble
- \null
- \ignorespaces}
-% \end{macrocode}
-% \end{macro}
%
% \subsection{longtable}
%
-% Longtable is complicated. When at the begin the \cs{endhead},
-% \cs{endfirsthead}, \cs{endfoot} and \cs{endlastfoot} are used to
-% setup head and foot they create each a structure subtree with one or
-% more rows. From this structures we want to keep at most two (head
-% and foot) and move the foot to the end of the table. When the head
-% and foot boxes are (re)inserted on following pages we want to mark
-% them up as artifact with the exception of the head at the begin and
-% the foot box at the end.
-%
-% TODO: When a line is killed the structure subtree is there already
-% too and must be removed.
-%
-% Hyperref patches longtable. This must be disabled and replace with
-% genuine code
-% \begin{macrocode}
-\let\@kernel@refstepcounter\refstepcounter
-\def\hyper@nopatch@longtable{}
-% \end{macrocode}
-% \begin{macrocode}
-\def\@@_patch_LT@array[#1]#2{%
-% \end{macrocode}
-% \cs{LT@array} is executed in a group, so we can disable para-tagging here.
-% \begin{macrocode}
- \UseSocket{tagsupport/tbl/init}%
- \@kernel@refstepcounter{table}\stepcounter{LT@tables}%
-% \end{macrocode}
-% The target is created rather late and a \cs{label} can come earlier,
-% so we have to define \cs{@currentHref} explicitly. We can't currently
-% assume that \cs{theHtable} is defined always.
-% \begin{macrocode}
- \tl_gset:Ne \@currentHref {table.\cs_if_exist_use:N\theHtable}
- \int_gzero:N \g_@@_row_int
- \seq_gclear:N\g_@@_struct_rows_seq
- \seq_gclear:N\g_@@_struct_cells_seq
- \seq_gclear:N\g_@@_struct_cur_seq
- \seq_gclear:N\g_@@_LT@firsthead_rows_seq
- \seq_gclear:N\g_@@_LT@head_rows_seq
- \seq_gclear:N\g_@@_LT@lastfoot_rows_seq
- \seq_gclear:N\g_@@_LT@foot_rows_seq
- \if l#1%
- \LTleft\z@ \LTright\fill
- \else\if r#1%
- \LTleft\fill \LTright\z@
- \else\if c#1%
- \LTleft\fill \LTright\fill
- \fi\fi\fi
- \let\LT@mcol\multicolumn
- \let\LT@@@@tabarray\@tabarray
- \let\LT@@@@hl\hline
- \def\@tabarray{%
- \let\hline\LT@@@@hl
- \LT@@@@tabarray}%
- \let\\\LT@tabularcr
- \let\tabularnewline\\%
- \def\newpage{\noalign{\break}}%
- \def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}%
- \def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}%
- \let\hline\LT@hline \let\kill\LT@kill\let\caption\LT@caption
- \@tempdima\ht\strutbox
- \let\@endpbox\LT@endpbox
- \ifx\extrarowheight\@undefined
- \let\@acol\@tabacol
- \let\@classz\@tabclassz \let\@classiv\@tabclassiv
- \def\@startpbox{\vtop\LT@startpbox}%
- \let\@@@@startpbox\@startpbox
- \let\@@@@endpbox\@endpbox
- \let\LT@LL@FM@cr\@tabularcr
- \else
- \advance\@tempdima\extrarowheight
- \col@sep\tabcolsep
- \let\@startpbox\LT@startpbox\let\LT@LL@FM@cr\@arraycr
- \fi
- \setbox\@arstrutbox\hbox{\vrule
- \@height \arraystretch \@tempdima
- \@depth \arraystretch \dp \strutbox
- \@width \z@}%
- \let\@sharp##\let\protect\relax
- \begingroup
- \@mkpream{#2}%
- \@@_determine_table_cols:
- \xdef\LT@bchunk{%
-% \end{macrocode}
-% At the start of a chunk we set \cs{g_@@_col_int} to zero to make
-% sure that we aren't generating /TR with the \cs{cr} ending the
-% chunk preamble.
-% \begin{macrocode}
- \int_gzero:N \g_@@_col_int
- \global\advance\c@LT@chunks\@ne
- \global\LT@rows\z@\setbox\z@\vbox\bgroup
- \LT@setprevdepth
- \tabskip\LTleft \noexpand\halign to\hsize\bgroup
- \tabskip\z@ \@arstrut
-% \end{macrocode}
-% Insert the socket and the setting of the conditional
-% \begin{macrocode}
- \UseSocket{tagsupport/tblrow/begin}%
- \@@_init_cell_data:
-% \end{macrocode}
-% \begin{macrocode}
- \@preamble \tabskip\LTright \cr}%
- \endgroup
- \expandafter\LT@nofcols\LT@bchunk&\LT@nofcols
- \LT@make@row
- \m@th\let\par\@empty
-% \end{macrocode}
-% Socket and conditional
-% \begin{macrocode}
- \everycr{%
- \noalign{%
-% \end{macrocode}
-% In \pkg{longtable} we have a bunch of extra \cs{cr}s that are
-% executed whenever a chunk ends. In that case they should not
-% increment the main row counter, sigh.
-% \begin{macrocode}
- \typeout{--longtable-->~chunk~row:~ \the\LT@rows \space
- row:~ \the\g_@@_row_int \space
- column:~ \the\g_@@_col_int
- }
- \int_compare:nNnT \g_@@_col_int > 0
- {
- \UseSocket{tagsupport/tblrow/end}
- }
-% \end{macrocode}
-% This prevents any of the additional \cs{cr}s at the end of the
-% chunk to add another /TR. Then once we really start a new chunk
-% it gets incremented so\ldots
-% \begin{macrocode}
- \int_gzero:N \g_@@_col_int % before first col
-% \end{macrocode}
-% And for the same reason such \cs{cr}s should not increment the
-% main row counter (but it has to be incremented after the preamble
-% of a chunk), so here we test against \cs{LT@rows} which is
-% \cs{LTchunksize} at the end of a chunk.
-% \begin{macrocode}
- \int_compare:nNnT \LT@rows < \LTchunksize
- { \int_gincr:N \g_@@_row_int } % this row about to start
- }%
- }%
-% \end{macrocode}
-% \begin{macrocode}
- \lineskip\z@\baselineskip\z@
- \LT@bchunk}
-% \end{macrocode}
-% The end code most stop to insert the endrow too.
-% \begin{macrocode}
-\def\@@_patch_endlongtable{%
- \@@_store_missing_cells:n{endlongtable}
- \crcr
- \noalign{%
- \UseSocket{tagsupport/tbl/finalize/longtable}
- \int_gzero:N \g_@@_row_int % this prevents considering the next
- % \crcr as another row end.
- \let\LT@entry\LT@entry@chop
- \xdef\LT@save@row{\LT@save@row}}%
- \LT@echunk
- \LT@start
- \unvbox\z@
- \LT@get@widths
- \if@filesw
- {\let\LT@entry\LT@entry@write\immediate\write\@auxout{%
- \gdef\expandafter\noexpand
- \csname LT@\romannumeral\c@LT@tables\endcsname
- {\LT@save@row}}}%
- \fi
- \ifx\LT@save@row\LT@@@@save@row
- \else
- \LT@warn{Column~\@width s~have~changed\MessageBreak
- in~table~\thetable}%
- \LT@final@warn
- \fi
- \endgraf\penalty -\LT@end@pen
- \ifvoid\LT@foot\else
- \global\advance\vsize\ht\LT@foot
- \global\advance\@colroom\ht\LT@foot
- \dimen@\pagegoal\advance\dimen@\ht\LT@foot\pagegoal\dimen@
- \fi
- \endgroup
- \global\@mparbottom\z@
- \endgraf\penalty\z@\addvspace\LTpost
- \ifvoid\footins\else\insert\footins{}\fi}
-% \end{macrocode}
-%
-%
-%
-% \begin{macro}{\@@_patch_LT@t@bularcr}
-%
-% \begin{macrocode}
-\def\@@_patch_LT@t@bularcr{%
- \global\advance\LT@rows\@ne
- \ifnum\LT@rows=\LTchunksize
-% \end{macrocode}
-% At the end of the chunk \verb=\\= is doing something special and
-% so we loose \cs{@@_store_missing_cells:n}. Below is about the
-% right place to add it do this code branch.
-% \begin{macrocode}
- \@@_store_missing_cells:n{echunk}
- \gdef\LT@setprevdepth{%
- \prevdepth\z@
- \global\let\LT@setprevdepth\relax}%
- \expandafter\LT@xtabularcr
- \else
- \ifnum0=`{}\fi
- \expandafter\LT@LL@FM@cr
- \fi}
-
-% \end{macrocode}
-% \end{macro}
%
%
%
-% \begin{macro}{\@@_patch_LT@end@hd@ft}
-% This command is used to store the head and foot boxes.
-% We need to retrieve and store the row so that we can clean
-% up the structure in the finalize code.
-% \begin{macrocode}
-\def\@@_patch_LT@end@hd@ft#1{%
-% \end{macrocode}
-% To handle missing columns in the header we need this:
-% \begin{macrocode}
- \__tbl_store_missing_cells:n{head/foot}
- \int_step_inline:nn
- { \LT@rows + 1 }
- {
- \seq_gput_left:ce
- {g_@@_\cs_to_str:N #1 _rows_seq }
- { \int_eval:n {\g_@@_row_int + 1 - ##1 } }
- }
-% \end{macrocode}
-% We also have to set the chunk rows to its max value before
-% calling \cs{LTechunk} so that we don't get extra increments of
-% the main row counter due to \cs{everycr}.
-% \begin{macrocode}
- \int_gset:Nn \LT@rows { \LTchunksize }
- \LT@echunk
- \ifx\LT@start\endgraf
- \LT@err
- {Longtable head or foot not at start of table}%
- {Increase LTchunksize}%
- \fi
- \setbox#1\box\z@
- \LT@get@widths
- \LT@bchunk}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\@@_patch_LT@start}
-% \begin{macrocode}
-\def\@@_patch_LT@start{%
- \let\LT@start\endgraf
- \endgraf\penalty\z@\vskip\LTpre\endgraf
- \ifdim \pagetotal<\pagegoal \else
- \dimen@=\pageshrink
- \advance \dimen@ 1sp %
- \kern\dimen@\penalty 9999\endgraf \kern-\dimen@
- \fi
- \dimen@\pagetotal
- \advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
- \advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
- \advance\dimen@ \ht\LT@foot
- \edef\LT@reset@vfuzz{\vfuzz\the\vfuzz\vbadness\the\vbadness\relax}%
- \vfuzz\maxdimen
- \vbadness\@M
- \setbox\tw@\copy\z@
- \setbox\tw@\vsplit\tw@ to \ht\@arstrutbox
- \setbox\tw@\vbox{\unvbox\tw@}%
- \LT@reset@vfuzz
- \advance\dimen@ \ht
- \ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi
- \advance\dimen@\dp
- \ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi
- \advance\dimen@ -\pagegoal
- \ifdim \dimen@>\z@
- \vfil\break
- \else
- \ifdim\pageshrink>\z@\pageshrink\z@\fi
- \fi
- \global\@colroom\@colht
- \ifvoid\LT@foot\else
- \global\advance\vsize-\ht\LT@foot
- \global\advance\@colroom-\ht\LT@foot
- \dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@
- \maxdepth\z@
- \fi
- \MakeLinkTarget{table}
- \ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi\nobreak
-% \end{macrocode}
-% Avoid that following uses of the box add content:
-% \begin{macrocode}
- \tagmcbegin{artifact}
- \tag_mc_reset_box:N\LT@head
- \tagmcend
- \output{\LT@output}}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\@@_patch_LT@output}
-% We must also avoid that the reuse of the foot box leads to
-% duplicated content:
-% \begin{macrocode}
-\def\@@_patch_LT@output{%
- \ifnum\outputpenalty <-\@Mi
- \ifnum\outputpenalty > -\LT@end@pen
- \LT@err{floats and marginpars not allowed in a longtable}\@ehc
- \else
- \setbox\z@\vbox{\unvbox\@cclv}%
- \ifdim \ht\LT@lastfoot>\ht\LT@foot
- \dimen@\pagegoal
- \advance\dimen@\ht\LT@foot
- \advance\dimen@-\ht\LT@lastfoot
- \ifdim\dimen@<\ht\z@
- \setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot\vss}%
- \@makecol
- \@outputpage
- \global\vsize\@colroom
- \setbox\z@\vbox{\box\LT@head}%
- \fi
- \fi
- \unvbox\z@\box\ifvoid\LT@lastfoot\LT@foot\else\LT@lastfoot\fi
-% \end{macrocode}
-% Reset attribute of foot box:
-% \begin{macrocode}
- \tagmcbegin{artifact}
- \tag_mc_reset_box:N \LT@foot
- \tagmcend
- \fi
- \else
- \setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}%
-% \end{macrocode}
-% Reset attribute of foot box:
-% \begin{macrocode}
- \tagmcbegin{artifact}
- \tag_mc_reset_box:N \LT@foot
- \tagmcend
- \@makecol
- \@outputpage
- \global\vsize\@colroom
- \copy\LT@head\nobreak
- \fi}
-% \end{macrocode}
-% \end{macro}
%
% \begin{macro}{\@@_patch_\LT@makecaption}
% This patch is quite similar to the one for LaTeX's \cs{@makecaption}
@@ -1893,74 +1184,11 @@
% \begin{macrocode}
\AddToHook{package/longtable/after}
{
- \seq_new:N \g_@@_LT@firsthead_rows_seq
- \seq_new:N \g_@@_LT@head_rows_seq
- \seq_new:N \g_@@_LT@lastfoot_rows_seq
- \seq_new:N \g_@@_LT@foot_rows_seq
- \cs_set_eq:NN \LT@array\@@_patch_LT@array
- \cs_set_eq:NN \endlongtable\@@_patch_endlongtable
- \cs_set_eq:NN \LT@start\@@_patch_LT@start
- \cs_set_eq:NN \LT@output\@@_patch_LT@output
- \cs_set_eq:NN \LT@t@bularcr\@@_patch_LT@t@bularcr
- \cs_set_eq:NN \LT@end@hd@ft\@@_patch_LT@end@hd@ft
\cs_set_eq:NN \LT@makecaption\@@_patch_LT@makecaption
}
% \end{macrocode}
-
-
-
-% \subsection{tabularx}
-%
-% In tabularx we mainly need to ensure that no tagging is done during
-% the trial.
-%
-% \begin{macrocode}
-\def\@@_patch_TX@endtabularx{%
- \expandafter\expandafter\expandafter
- \TX@find@endtabularxa\csname end\TX@\endcsname
- \endtabularx\TX@\endtabularx\TX@find@endtabularxa
- \expandafter\TX@newcol\expandafter{\tabularxcolumn{\TX@col@width}}%
- \let\verb\TX@verb
- \def\@elt##1{\global\value{##1}\the\value{##1}\relax}%
- \edef\TX@ckpt{\cl@@@@ckpt}%
- \let\@elt\relax
- \TX@old@table\maxdimen
- \TX@col@width\TX@target
- \global\TX@cols\@ne
- \TX@typeout@
- {\@spaces Table Width\@spaces Column Width\@spaces X Columns}%
-% \end{macrocode}
-% Here we stop tagging:
-% \begin{macrocode}
- \tag_stop:n{tabularx}
- \TX@trial{\def\NC@rewrite@X{%
- \global\advance\TX@cols\@ne\NC@find p{\TX@col@width}}}%
- \loop
- \TX@arith
- \ifTX@
- \TX@trial{}%
- \repeat
-% \end{macrocode}
-% And now we restart it again.
-% \begin{macrocode}
- \tag_start:n{tabularx}
- {\let\@footnotetext\TX@ftntext\let\@xfootnotenext\TX@xftntext
- \csname tabular*\expandafter\endcsname\expandafter\TX@target
- \the\toks@
- \csname endtabular*\endcsname}%
- \global\TX@ftn\expandafter{\expandafter}\the\TX@ftn
- \ifnum0=`{\fi}%
- \expandafter\expandafter\expandafter
- \TX@find@endtabularxbb
- \expandafter\end\expandafter{\TX@}%
- \endtabularx\TX@\endtabularx\TX@find@endtabularxb
-}
-
-\AddToHook{package/tabularx/after}
- {\cs_set_eq:NN \TX@endtabularx\@@_patch_TX@endtabularx }
-% \end{macrocode}
% \begin{macrocode}
%</package>
% \end{macrocode}
@@ -1973,3 +1201,11 @@
\RequirePackage{latex-lab-testphase-table}
%</latex-lab>
% \end{macrocode}
+
+% \begin{macrocode}
+%<*latex-lab-alias>
+\ProvidesFile{tabular-latex-lab-testphase.ltx}
+ [\ltlabtbldate\space v\ltlabtblversion\space latex-lab wrapper tabular]
+\RequirePackage{latex-lab-testphase-table}
+%</latex-lab-alias>
+% \end{macrocode}
diff --git a/macros/latex/required/latex-lab/latex-lab-table.pdf b/macros/latex/required/latex-lab/latex-lab-table.pdf
index 555b839e75..11416f56ac 100644
--- a/macros/latex/required/latex-lab/latex-lab-table.pdf
+++ b/macros/latex/required/latex-lab/latex-lab-table.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/latex-lab-testphase.dtx b/macros/latex/required/latex-lab/latex-lab-testphase.dtx
index b2ed5ecf8a..f0a6fe65d0 100644
--- a/macros/latex/required/latex-lab/latex-lab-testphase.dtx
+++ b/macros/latex/required/latex-lab/latex-lab-testphase.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
%
%% File: latex-lab-testphase.dtx
-% Copyright (C) 2021-2023 The LaTeX Project
+% Copyright (C) 2021-2024 The LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -79,7 +79,7 @@
% \begin{macrocode}
%<*phase-III>
\ProvidesFile{phase-III-latex-lab-testphase.ltx}
- [2023-07-20 v0.1b latex-lab wrapper phase-III]
+ [2024-02-12 v0.1c latex-lab wrapper phase-III]
\input{phase-II-latex-lab-testphase.ltx}
\IfFormatAtLeastTF{2023-06-01}
{
@@ -91,6 +91,7 @@
\RequirePackage{latex-lab-testphase-float}
\RequirePackage{latex-lab-testphase-bib}
\RequirePackage{latex-lab-testphase-text}
+ \RequirePackage{latex-lab-testphase-marginpar}
}
{\PackageWarning{latex-lab}{Testphase III needs newer format}{}}
%</phase-III>
@@ -122,9 +123,9 @@
\RequirePackage{tagpdf}
\AddToDocumentProperties [document]{testphase/tagpdf}{loaded}
%</tagpdf|phase-I|phase-II>
-%<tagpdf|phase-II>\tagpdfsetup{activate,paratagging,interwordspace}
+%<tagpdf|phase-II>\tagpdfsetup{activate,para/tagging,activate/spaces}
%<tagpdf|phase-II>\AddToDocumentProperties [document]{tagging/para}{active}
-%<phase-I>\tagpdfsetup{activate,interwordspace}
+%<phase-I>\tagpdfsetup{activate,activate/spaces}
%<*tagpdf|phase-I|phase-II>
\AddToDocumentProperties [document]{tagging}{active}
\AddToDocumentProperties [document]{tagging/interwordspace}{active}
diff --git a/macros/latex/required/latex-lab/latex-lab-testphase.pdf b/macros/latex/required/latex-lab/latex-lab-testphase.pdf
index f91a78d85a..be1f2e220f 100644
--- a/macros/latex/required/latex-lab/latex-lab-testphase.pdf
+++ b/macros/latex/required/latex-lab/latex-lab-testphase.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/latex-lab-text.dtx b/macros/latex/required/latex-lab/latex-lab-text.dtx
index 4041336ecb..fe9b6ababc 100644
--- a/macros/latex/required/latex-lab/latex-lab-text.dtx
+++ b/macros/latex/required/latex-lab/latex-lab-text.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: latex-lab-text.dtx (C) Copyright 2023 LaTeX Project
+%% File: latex-lab-text.dtx (C) Copyright 2023-2024 LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
diff --git a/macros/latex/required/latex-lab/latex-lab-text.pdf b/macros/latex/required/latex-lab/latex-lab-text.pdf
index b4e291df01..7a3ae27c86 100644
--- a/macros/latex/required/latex-lab/latex-lab-text.pdf
+++ b/macros/latex/required/latex-lab/latex-lab-text.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/latex-lab-title.dtx b/macros/latex/required/latex-lab/latex-lab-title.dtx
new file mode 100644
index 0000000000..757bb284a4
--- /dev/null
+++ b/macros/latex/required/latex-lab/latex-lab-title.dtx
@@ -0,0 +1,518 @@
+% \iffalse meta-comment
+%
+%% File: latex-lab-title.dtx (C) Copyright 2023-2024 LaTeX Project
+%
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version. The latest version
+% of this license is in the file
+%
+% https://www.latex-project.org/lppl.txt
+%
+%
+% The development version of the bundle can be found below
+%
+% https://github.com/latex3/latex2e/required/latex-lab
+%
+% for those people who are interested or want to report an issue.
+%
+\def\ltlabtitledate{2024-02-09}
+\def\ltlabtitleversion{0.85c}
+
+%<*driver>
+\documentclass{l3doc}
+\EnableCrossrefs
+\CodelineIndex
+\begin{document}
+ \DocInput{latex-lab-title.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+% \title{The \textsf{latex-lab-title} package\\
+% Changes related to the tagging of the title}
+% \author{\LaTeX{} Project\thanks{Initial implementation done by Ulrike Fischer}}
+% \date{v\ltlabtitleversion\ \ltlabtitledate}
+%
+% \maketitle
+%
+% \newcommand{\xt}[1]{\textsl{\textsf{#1}}}
+% \newcommand{\TODO}[1]{\textbf{[TODO:} #1\textbf{]}}
+% \newcommand{\docclass}{document class \marginpar{\raggedright document class
+% customizations}}
+%
+% \providecommand\hook[1]{\texttt{#1}}
+%
+% \begin{abstract}
+% \end{abstract}
+%
+% \section{Introduction}
+%
+% This module contains changes to improve the tagging (in the standard classes) of
+% the title created with the \cs{maketitle} command. It also improves the
+% setting of the metadata related to the title and the author.
+%
+% For basic tagging of the printed title there are basically three things to do:
+%
+% \begin{itemize}
+% \item The actual title should be tagged with the \texttt{Title} tag.
+% \item The tabular used to format the author list should \emph{not} be tagged as a tabular.
+% \item \cs{maketitle} redefines footnote internals. These must be made tagging aware.
+% \end{itemize}
+%
+% A second task related to title is to store the authors and the title text
+% (or a shorter version) inside the XMP-metadata and (in PDF 1.7 or lower) in
+% the Info dictionary. Currently this can only be set if hyperref
+% is loaded and requires the use of the \texttt{pdftitle} and \texttt{pdfauthor} keys.
+% The new code therefore extends the \cs{title} and \cs{author} commands: They
+% stores their argument and use them at the end of the document
+% for the PDF metadata if the data hasn't been given in another way.
+% The code also gives \cs{title} and \cs{author}
+% an optional argument where the PDF title or author can be given with
+% in a key-value syntax. As with hyperref it is possible to store titles
+% in more than one language:
+%
+% \begin{verbatim}
+% \title
+% [pdftitle =
+% {[en]English Title,[de] Deutscher Titel,[fr]{titre français, avec comma}}]
+% {Document title}
+% \end{verbatim}
+%
+% It is also possible to set a subtitle which is then stored in the XMP-metadata:
+%
+% \begin{verbatim}
+% \title
+% [pdfsubtitle =
+% {[en]English Subtitle,[de] Deutscher Subtitel,[fr]{subtitre français, avec comma}}]
+% {Document title}
+% \end{verbatim}
+
+%
+% If using the \texttt{pdfauthor} key authors should be separated
+% by commas, and to hide commas in a name inside braces if needed:
+%
+% \begin{verbatim}
+% \author[pdfauthor = {Bär, Peter Anteater, {Riley, the sloth}}]{\ldots}
+% \end{verbatim}
+%
+% If hyperref is loaded there is no difference to the \texttt{pdftitle} and
+% \texttt{pdfauthor} key used in \cs{hypersetup}. Both can be used (and the last
+% key used will win).
+%
+% \subsection{Open questions and TODOs}
+%
+% \begin{itemize}
+% \item Writing into the Info dictionary needs to convert the input into a PDF string.
+% This is here done with a simple version of hyperref's \cs{pdfstringdef}, similar code
+% exist also in in the generic hyperref driver. This should be moved into a better place
+% module.
+%
+% \item Is it sensible to enhance \cs{author} and \cs{title} with an optional argument as done here?
+% An advantage is that it is rather light-weight and
+% doesn't require to decide how this values should be set in \cs{DocumentMetadata} (and would also work
+% without \cs{DocumentMetadata}. But a problem could be that various classes and packages already
+% extend this commands with other optional arguments.
+%
+% \item Some of the definitions related to metadata should perhaps be moved into l3pdfmeta.
+%
+% \item Are the names \texttt{pdftitle} and \texttt{pdfauthor} ok?
+%
+% \item The patch for \cs{thanks} to get a rlap-footnotemarker looks wrong. This
+% probably means that some configuration option is missing in the footnote code.
+% \end{itemize}
+%
+%
+%
+% \section{Implementation}
+% \begin{macrocode}
+%<*package>
+%<@@=tag>
+% \end{macrocode}
+% \begin{macrocode}
+\ProvidesExplPackage {latex-lab-testphase-title} {\ltlabtitledate} {\ltlabtitleversion}
+ {Changes related to the tagging of the title}
+% \end{macrocode}
+%
+% \subsection{\cs{maketitle} in article class}
+%
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_patch_thanks:n #1
+ {
+ \rlap{\footnotemark}
+ \protected@xdef\@thanks{\@thanks
+ \protect\footnotetext[\the\c@footnote]{#1}}
+ }
+% \end{macrocode}
+% The no-titlepage version of article, report and book
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_patch_maketitle:
+ {
+ \par
+ \begingroup
+% \end{macrocode}
+% Disable table tagging
+% \begin{macrocode}
+ \cs_if_exist_use:N\__tag_tbl_disable:
+ \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
+% \end{macrocode}
+% the original definition redefines \cs{@makefnmark} and
+% \cs{@makefntext} to get an rlap-mark in the text without
+% affecting the mark in the note (which gives by the way
+% a wrong link area with hyperref). There seem to be currently
+% no good way in the footnote to configure this, so we redefine
+% \cs{thanks} instead
+% \begin{macrocode}
+ \cs_set_eq:NN \thanks \@@_patch_thanks:n
+ \if@twocolumn
+ \ifnum \col@number=\@ne
+ \@maketitle
+ \else
+ \twocolumn[\@maketitle]%
+ \fi
+ \else
+ \newpage
+ \global\@topnum\z@ % Prevents figures from going at top of page.
+ \@maketitle
+ \fi
+ \thispagestyle{plain}\@thanks
+ \endgroup
+ \setcounter{footnote}{0}%
+ \global\let\thanks\relax
+ \global\let\maketitle\relax
+ \global\let\@maketitle\relax
+ \global\let\@thanks\@empty
+ \global\let\@author\@empty
+ \global\let\@date\@empty
+ \global\let\@title\@empty
+ \global\let\title\relax
+ \global\let\author\relax
+ \global\let\date\relax
+ \global\let\and\relax
+ }
+% \end{macrocode}
+% We must also change \cs{@maketitle} to insert a Title tag
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_patch_@maketitle:
+ {
+ \newpage
+ \null
+ \vskip 2em%
+ \begin{center}%
+ \let \footnote \thanks
+% \end{macrocode}
+% use Title around the title. As in PDF 1.7 this is
+% rolemapped to P we change the text-unit tag there.
+% \begin{macrocode}
+ \pdf_version_compare:NnTF > {1.7}
+ {{\LARGE \tag_struct_begin:n{tag=Title}\@title \par\tag_struct_end:}}
+ {{\LARGE \tagtool{paratag=Title}\@title \par}}%
+ \vskip 1.5em%
+ {\large
+ \lineskip .5em%
+ \begin{tabular}[t]{c}%
+ \@author
+ \end{tabular}\par}%
+ \vskip 1em%
+ {\large \@date}%
+ \end{center}%
+ \par
+ \vskip 1.5em
+ }
+
+% \end{macrocode}
+% The titlepage variant
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_patch_maketitle_page:
+ {\begin{titlepage}%
+% \end{macrocode}
+% disable table tagging
+% \begin{macrocode}
+ \cs_if_exist_use:N\__tag_tbl_disable:
+ \let\footnotesize\small
+ \let\footnoterule\relax
+ \let \footnote \thanks
+ \null\vfil
+ \vskip 60\p@
+% \end{macrocode}
+% use Title around the title. As in PDF 1.7 this is
+% rolemapped to P we change the text-unit tag there.
+% \begin{macrocode}
+ \begin{center}%
+ \pdf_version_compare:NnTF > {1.7}
+ {{\LARGE \tag_struct_begin:n{tag=Title}\@title \par\tag_struct_end:}}
+ {{\LARGE \tagtool{paratag=Title}\@title \par}}%
+ \vskip 3em%
+ {\large
+ \lineskip .75em%
+ \begin{tabular}[t]{c}%
+ \@author
+ \end{tabular}\par}%
+ \vskip 1.5em%
+ {\large \@date \par}% % Set date in \large size.
+ \end{center}\par
+ \@thanks
+ \vfil\null
+ \end{titlepage}%
+ \setcounter{footnote}{0}%
+ \global\let\thanks\relax
+ \global\let\maketitle\relax
+ \global\let\@thanks\@empty
+ \global\let\@author\@empty
+ \global\let\@date\@empty
+ \global\let\@title\@empty
+ \global\let\title\relax
+ \global\let\author\relax
+ \global\let\date\relax
+ \global\let\and\relax
+ }
+
+% \end{macrocode}
+% Map the new commands onto \cs{maketitle}:
+% \begin{macrocode}
+\AddToHook{class/article/after}
+ {
+ \if@titlepage
+ \cs_set_eq:NN \maketitle \@@_patch_maketitle_page:
+ \else
+ \cs_set_eq:NN \maketitle \@@_patch_maketitle:
+ \cs_set_eq:NN \@maketitle \@@_patch_@maketitle:
+ \fi
+ }
+\AddToHook{class/report/after}
+ {
+ \if@titlepage
+ \cs_set_eq:NN \maketitle \@@_patch_maketitle_page:
+ \else
+ \cs_set_eq:NN \maketitle \@@_patch_maketitle:
+ \cs_set_eq:NN \@maketitle \@@_patch_@maketitle:
+ \fi
+ }
+\AddToHook{class/book/after}
+ {
+ \if@titlepage
+ \cs_set_eq:NN \maketitle \@@_patch_maketitle_page:
+ \else
+ \cs_set_eq:NN \maketitle \@@_patch_maketitle:
+ \cs_set_eq:NN \@maketitle \@@_patch_@maketitle:
+ \fi
+ }
+% \end{macrocode}
+%
+% \subsection{Helper commands to set metadata}
+%
+% Some temp variables
+% \begin{macrocode}
+\str_new:N \g_@@_title_tmpa_str
+\str_new:N \l_@@_title_tmpa_str
+\tl_new:N \l_@@_title_tmpa_tl
+\seq_new:N \l_@@_title_tmpa_seq
+% \end{macrocode}
+% Support for \cs{texorpdfstring}
+% \begin{macrocode}
+\providecommand\texorpdfstring[2]{#1}%
+% \end{macrocode}
+%
+% A helper command to convert the title into a pdfstring similar to
+% \cs{pdfstringdef}.
+% As we use \cs{text_purify} we must ensure that the default definitions
+% of \cs{@title} and \cs{@author} are robust:
+% \begin{macrocode}
+\protected\def\@title{\@latex@error{No \noexpand\title given}\@ehc}
+\protected\def\@author{\@latex@warning@no@line{No \noexpand\author given}}
+% \end{macrocode}
+% TODO: This should be improved and moved into the pdf module so that
+% it is generally available.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_title_pdfstring:nnN #1 #2 #3 % #1 text, #2 e.g. utf16/hex
+ {
+ \group_begin:
+% \end{macrocode}
+% TODO: we need probably a common boolean to handle
+% \cs{texorpdfstring} also without hyperref.
+% \begin{macrocode}
+ \cs_set_eq:NN\texorpdfstring\use_ii:nn
+ \str_set:Ne \l_@@_title_tmpa_str {\text_purify:n { #1 } }
+ \pdf_string_from_unicode:nVN { #2 } \l_@@_title_tmpa_str \l_@@_title_tmpa_str
+ \str_gset_eq:NN \g_@@_title_tmpa_str\l_@@_title_tmpa_str
+ \group_end:
+ \str_set_eq:NN #3 \g_@@_title_tmpa_str
+ }
+\cs_generate_variant:Nn\@@_title_pdfstring:nnN {e}
+% \end{macrocode}
+
+% \subsection{Extend title to set metadata}
+% At first a variable to store the title, as \cs{@title} is emptied by \LaTeX.
+% \begin{macrocode}
+\tl_new:N \g_@@_title_title_tl
+% \end{macrocode}
+% Now we redefine \cs{title} so that it stores the title, and processes
+% keys in the optional argument. We use \texttt{hyp} as module
+% name for the key as this means that if hyperref is loaded its definition
+% of \texttt{pdftitle} will be used -- at some time probably this
+% should be moved out of hyperref so that we have only one definition.
+%
+% \begin{macrocode}
+\RenewDocumentCommand\title{O{}m}
+ {
+ \gdef\@title{#2}
+ \tl_gset_eq:NN\g_@@_title_title_tl\@title
+ \keys_set:nn {hyp}{#1}
+ }
+% \end{macrocode}
+% Now we define the \texttt{pdftitle} key. This is more or less
+% the same definition as in the generic hyperref driver.
+% \begin{macrocode}
+\regex_new:N\l_@@_title_optlang_regex
+\regex_set:Nn\l_@@_title_optlang_regex {\A\[([A-Za-z\-]+)\](.*)}
+\cs_generate_variant:Nn \regex_extract_once:NnN{NVN}
+\cs_generate_variant:Nn \clist_item:nn {on}
+% \end{macrocode}
+% and now the keys.
+% \begin{macrocode}
+\keys_define:nn { hyp }
+ {
+ pdftitle .code:n =
+ {
+ \tl_if_blank:nTF {#1}
+ {
+ \pdfmanagement_remove:nn {Info}{Title}
+ }
+ {
+ \tl_set:Ne\l_@@_title_tmpa_tl {\clist_item:on{#1}{1}}
+ \regex_extract_once:NVN
+ \l_@@_title_optlang_regex
+ \l_@@_title_tmpa_tl
+ \l_@@_title_tmpa_seq
+ \seq_if_empty:NTF\l_@@_title_tmpa_seq
+ {
+ \@@_title_pdfstring:nnN {#1}{utf16/hex}\l_@@_title_tmpa_str
+ }
+ {
+ \@@_title_pdfstring:enN
+ {\seq_item:Nn \l_@@_title_tmpa_seq{3}}{utf16/hex}\l_@@_title_tmpa_str
+ }
+ \str_if_eq:VnF\l_@@_title_tmpa_str{<FEFF>}
+ {
+ \pdfmanagement_add:nne {Info}{Title}{\l_@@_title_tmpa_str}
+ }
+ }
+ \AddToDocumentProperties[hyperref]{pdftitle}{#1}
+ }
+ ,pdfsubtitle .code:n = { \AddToDocumentProperties[hyperref]{pdfsubtitle}{#1} }
+ }
+% \end{macrocode}
+%
+% \subsection{Extend \cs{author} to set metadata}
+%
+% At first a variable to store the authors, as \cs{@author} is emptied by \LaTeX.
+% \begin{macrocode}
+\tl_new:N \g_@@_title_author_tl
+% \end{macrocode}
+% Now we redefine \cs{author} so that it stores the authors, and processes
+% keys in the optional argument. We use \texttt{hyp} as module
+% name for the key as this means that if hyperref is loaded its definition
+% of \texttt{pdfauthor} will be used -- at some time probably this
+% should be moved out of hyperref so that we have only one definition.
+%
+% \begin{macrocode}
+\RenewDocumentCommand\author{O{}m}
+ {
+ \gdef\@author{#2}
+ \tl_gset_eq:NN\g_@@_title_author_tl\@author
+ \keys_set:nn {hyp}{#1}
+ }
+% \end{macrocode}
+%
+% Now we define the \texttt{pdfauthor} key. This is more or less
+% the same definition as in the generic hyperref driver.
+
+% \begin{macrocode}
+\keys_define:nn { hyp }
+ {
+ pdfauthor .code:n =
+ {
+ \tl_if_blank:nTF {#1}
+ {
+ \pdfmanagement_remove:nn {Info}{Author}
+ }
+ {
+ \tl_set:Ne\l_@@_title_tmpa_tl {\clist_item:on{#1}{1}}
+ \regex_extract_once:NVN
+ \l_@@_title_optlang_regex
+ \l_@@_title_tmpa_tl
+ \l_@@_title_tmpa_seq
+ \seq_if_empty:NTF\l_@@_title_tmpa_seq
+ {
+ \@@_title_pdfstring:nnN {#1}{utf16/hex}\l_@@_title_tmpa_str
+ }
+ {
+ \@@_title_pdfstring:enN
+ {\seq_item:Nn \l_@@_title_tmpa_seq{3}}{utf16/hex}\l_@@_title_tmpa_str
+ }
+ \str_if_eq:VnF\l_@@_title_tmpa_str{<FEFF>}
+ {
+ \pdfmanagement_add:nne {Info}{Author}{\l_@@_title_tmpa_str}
+ }
+ }
+ \AddToDocumentProperties[hyperref]{pdfauthor}{#1}
+ }
+ }
+% \end{macrocode}
+% \subsection{Fallback for classes and packages that redefine \cs{title} or \cs{author}}
+% If a class redefines \cs{author} and \cs{title} again, we try to retrieve at
+% least the values.
+% \begin{macrocode}
+\AddToHook{cmd/maketitle/before}
+ {
+ \tl_gset_eq:NN \g_@@_title_author_tl\@author
+ \tl_gset_eq:NN \g_@@_title_title_tl\@title
+ }
+% \end{macrocode}
+%
+% \subsection{Finalize document}
+% At last we set the title and the author at the end of document
+% if that hasn't happened yet:
+% \begin{macrocode}
+\AddToHook{shipout/lastpage}
+ {
+ \tl_if_empty:eT{\GetDocumentProperties{hyperref/pdftitle}}
+ {
+ \group_begin:
+ \cs_set_eq:NN\thanks \use_none:n
+ \str_set:Ne \l_@@_title_tmpa_str {\text_purify:n { \g_@@_title_title_tl } }
+ \keys_set:ne{hyp}{pdftitle={\exp_not:V\l_@@_title_tmpa_str}}
+ \group_end:
+ }
+ \tl_if_empty:eT{\GetDocumentProperties{hyperref/pdfauthor}}
+ {
+ \group_begin:
+ \cs_set_eq:NN\thanks \use_none:n
+ \cs_set:Npn \and {,}
+ \str_set:Ne \l_@@_title_tmpa_str {\text_purify:n { \g_@@_title_author_tl } }
+ \keys_set:ne{hyp}{pdfauthor={\exp_not:V\l_@@_title_tmpa_str}}
+ \group_end:
+ }
+% \end{macrocode}
+% force display title, if an UA-standard is detected.
+% \begin{macrocode}
+ \tl_if_empty:eF{\GetDocumentProperties{document/pdfstandard-UA}}
+ {
+ \pdfmanagement_add:nnn {Catalog / ViewerPreferences } { DisplayDocTitle } { true }
+ }
+ }
+\DeclareHookRule{shipout/lastpage}{latex-lab-testphase-title}{before}{pdfmanagement-testphase}
+%</package>
+% \end{macrocode}
+
+% \begin{macrocode}
+%<*latex-lab>
+\ProvidesFile{title-latex-lab-testphase.ltx}
+ [\ltlabtitledate\space v\ltlabtitleversion\space
+ Changes related to the tagging of the title]
+
+\RequirePackage{latex-lab-testphase-title}
+
+%</latex-lab>
+% \end{macrocode}
diff --git a/macros/latex/required/latex-lab/latex-lab-title.pdf b/macros/latex/required/latex-lab/latex-lab-title.pdf
new file mode 100644
index 0000000000..957ba9f7a3
--- /dev/null
+++ b/macros/latex/required/latex-lab/latex-lab-title.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/latex-lab-toc-hyperref-changes.dtx b/macros/latex/required/latex-lab/latex-lab-toc-hyperref-changes.dtx
index 2f00b83c05..ff9dd950b7 100644
--- a/macros/latex/required/latex-lab/latex-lab-toc-hyperref-changes.dtx
+++ b/macros/latex/required/latex-lab/latex-lab-toc-hyperref-changes.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: latex-lab-toc-hyperref-changes.dtx (C) Copyright 2022-2023 LaTeX Project
+%% File: latex-lab-toc-hyperref-changes.dtx (C) Copyright 2022-2024 LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
diff --git a/macros/latex/required/latex-lab/latex-lab-toc-hyperref-changes.pdf b/macros/latex/required/latex-lab/latex-lab-toc-hyperref-changes.pdf
index 8662c9c37c..ab8469f7f6 100644
--- a/macros/latex/required/latex-lab/latex-lab-toc-hyperref-changes.pdf
+++ b/macros/latex/required/latex-lab/latex-lab-toc-hyperref-changes.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/latex-lab-toc-kernel-changes.dtx b/macros/latex/required/latex-lab/latex-lab-toc-kernel-changes.dtx
index 81c9edfe4d..bb88ffdcb0 100644
--- a/macros/latex/required/latex-lab/latex-lab-toc-kernel-changes.dtx
+++ b/macros/latex/required/latex-lab/latex-lab-toc-kernel-changes.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: latex-lab-toc-kernel-changes.dtx (C) Copyright 2022-2023 LaTeX Project
+%% File: latex-lab-toc-kernel-changes.dtx (C) Copyright 2022-2024 LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -17,8 +17,8 @@
% for those people who are interested or want to report an issue.
%
% dates for latex-lab-kernel-changes.sty (pulled from various sources, see ins)
-\def\ltlabkerneldate{2023-10-16}
-\def\ltlabkernelversion{0.85b}
+\def\ltlabkerneldate{2024-02-12}
+\def\ltlabkernelversion{0.85c}
%<*driver>
\documentclass{l3doc}
\EnableCrossrefs
@@ -235,7 +235,7 @@
\makeatletter
\@starttoc@cfgpoint@before{#1}%
\@input{\jobname.#1}%
- \@starttoc@cfgpoint@after{#1}
+ \@starttoc@cfgpoint@after{#1}%
\if@filesw
\expandafter\newwrite\csname tf@#1\endcsname
\immediate\openout \csname tf@#1\endcsname \jobname.#1\relax
diff --git a/macros/latex/required/latex-lab/latex-lab-toc-kernel-changes.pdf b/macros/latex/required/latex-lab/latex-lab-toc-kernel-changes.pdf
index b559fb59e6..386a193381 100644
--- a/macros/latex/required/latex-lab/latex-lab-toc-kernel-changes.pdf
+++ b/macros/latex/required/latex-lab/latex-lab-toc-kernel-changes.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/latex-lab-toc.dtx b/macros/latex/required/latex-lab/latex-lab-toc.dtx
index 6def505e11..7235eb9ed9 100644
--- a/macros/latex/required/latex-lab/latex-lab-toc.dtx
+++ b/macros/latex/required/latex-lab/latex-lab-toc.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: latex-lab-toc.dtx (C) Copyright 2022-2023 LaTeX Project
+%% File: latex-lab-toc.dtx (C) Copyright 2022-2024 LaTeX Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -271,7 +271,7 @@
{ \int_compare_p:nNn { \g_@@_toc_level_int } > {-100} }
{ \int_compare_p:nNn { \use:c{toclevel@#1} } > { \g_@@_toc_level_int } }
{
- \seq_gpush:Nx \g_@@_toc_stack_seq {{TOC}\use:c{toclevel@#1}}
+ \seq_gpush:Ne \g_@@_toc_stack_seq {{TOC}\use:c{toclevel@#1}}
\tag_struct_begin:n{tag=TOC}
}
% \end{macrocode}
@@ -298,7 +298,7 @@
% \begin{macrocode}
\group_begin:
\text_declare_expand_equivalent:Nn \numberline \use_none:n
- \exp_args:Nx \tag_struct_begin:n{tag=TOCI,title={\text_purify:n {#2}}}
+ \exp_args:Ne \tag_struct_begin:n{tag=TOCI,title={\text_purify:n {#2}}}
% \end{macrocode}
% The TOCI structure should get a /Ref, so we put a request with its destination
% name into the prop.
@@ -307,9 +307,9 @@
% need to store fake names.
% \end{NOTE}
% \begin{macrocode}
- \prop_gput:Nxx \g_@@_struct_ref_by_dest_prop
+ \prop_gput:Nee \g_@@_struct_ref_by_dest_prop
{ \tag_get:n {struct_num} }{#3}
- \seq_gpush:Nx \g_@@_toc_stack_seq {{TOCI}\use:c{toclevel@#1}}
+ \seq_gpush:Ne \g_@@_toc_stack_seq {{TOCI}\use:c{toclevel@#1}}
\group_end:
}
}
diff --git a/macros/latex/required/latex-lab/latex-lab-toc.pdf b/macros/latex/required/latex-lab/latex-lab-toc.pdf
index b60f71fb0b..fe8b2a89ac 100644
--- a/macros/latex/required/latex-lab/latex-lab-toc.pdf
+++ b/macros/latex/required/latex-lab/latex-lab-toc.pdf
Binary files differ
diff --git a/macros/latex/required/latex-lab/latex-lab.ins b/macros/latex/required/latex-lab/latex-lab.ins
index 548f18a6fa..7071ed6e3d 100644
--- a/macros/latex/required/latex-lab/latex-lab.ins
+++ b/macros/latex/required/latex-lab/latex-lab.ins
@@ -154,8 +154,16 @@ where one can also log issues in case there are any.
%table
\generate{\file{table-latex-lab-testphase.ltx}{\from{latex-lab-table.dtx}{latex-lab}}}
+\generate{\file{tabular-latex-lab-testphase.ltx}{\from{latex-lab-table.dtx}{latex-lab-alias}}}
\generate{\file{latex-lab-testphase-table.sty}{\from{latex-lab-table.dtx}{package}}}
+%title
+\generate{\file{title-latex-lab-testphase.ltx}{\from{latex-lab-title.dtx}{latex-lab}}}
+\generate{\file{latex-lab-testphase-title.sty}{\from{latex-lab-title.dtx}{package}}}
+
+%marginpar
+\generate{\file{marginpar-latex-lab-testphase.ltx}{\from{latex-lab-marginpar.dtx}{latex-lab}}}
+\generate{\file{latex-lab-testphase-marginpar.sty}{\from{latex-lab-marginpar.dtx}{package}}}
% stop docstrip adding \endinput
\preamble
diff --git a/macros/latex/required/tools/README.md b/macros/latex/required/tools/README.md
index f08c378fff..6413c06b37 100644
--- a/macros/latex/required/tools/README.md
+++ b/macros/latex/required/tools/README.md
@@ -1,7 +1,7 @@
The LaTeX `tools` bundle
========================
-Release 2023-11-01c
+Release 2024-06-01 patch level 0
Overview
--------
diff --git a/macros/latex/required/tools/afterpage.dtx b/macros/latex/required/tools/afterpage.dtx
index 518b70761d..72df39402c 100644
--- a/macros/latex/required/tools/afterpage.dtx
+++ b/macros/latex/required/tools/afterpage.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2023
+% Copyright (C) 1993-2024
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/afterpage.ins b/macros/latex/required/tools/afterpage.ins
index 6fec5edc6f..17792ddfa1 100644
--- a/macros/latex/required/tools/afterpage.ins
+++ b/macros/latex/required/tools/afterpage.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2023
+%% Copyright (C) 1993-2024
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -45,7 +45,7 @@ The source is maintained by the LaTeX Project team and bug
reports for it can be opened at https://latex-project.org/bugs/
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2023
+Copyright (C) 1993-2024
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/required/tools/afterpage.pdf b/macros/latex/required/tools/afterpage.pdf
index 3782fae988..ef7a17844e 100644
--- a/macros/latex/required/tools/afterpage.pdf
+++ b/macros/latex/required/tools/afterpage.pdf
Binary files differ
diff --git a/macros/latex/required/tools/array-2016-10-06.sty b/macros/latex/required/tools/array-2016-10-06.sty
index f079fd4975..ced72d2913 100644
--- a/macros/latex/required/tools/array-2016-10-06.sty
+++ b/macros/latex/required/tools/array-2016-10-06.sty
@@ -1,5 +1,7 @@
%%
-%% This is an old release of `array.sty',
+%% This is an old release of `array.sty' used during rollback operations.
+%% Do not use this file directly.
+%% ==============================
%%
%% Copyright 1993-2016
%% The LaTeX Project and any individual authors listed elsewhere
diff --git a/macros/latex/required/tools/array-2020-02-10.sty b/macros/latex/required/tools/array-2020-02-10.sty
index 1243f25f74..5acd9c727e 100644
--- a/macros/latex/required/tools/array-2020-02-10.sty
+++ b/macros/latex/required/tools/array-2020-02-10.sty
@@ -1,4 +1,8 @@
%%
+%% This is an old release of `array.sty' used during rollback operations.
+%% Do not use this file directly.
+%% ==============================
+%%
%% This is file `array.sty',
%% generated with the docstrip utility.
%%
@@ -38,11 +42,6 @@
%% Package `array' to use with LaTeX 2e
%% Copyright (C) 1989-1998 Frank Mittelbach, all rights reserved.
\NeedsTeXFormat{LaTeX2e}[1995/06/01]
-\providecommand\DeclareRelease[3]{}
-\providecommand\DeclareCurrentRelease[2]{}
-
-\DeclareRelease{}{2016-10-06}{array-2016-10-06.sty}
-\DeclareCurrentRelease{}{2019-10-01}
\ProvidesPackage{array}
[2020/02/10 v2.4m Tabular extension package (FMi)]
diff --git a/macros/latex/required/tools/array-2023-11-01.sty b/macros/latex/required/tools/array-2023-11-01.sty
new file mode 100644
index 0000000000..b5267cffd2
--- /dev/null
+++ b/macros/latex/required/tools/array-2023-11-01.sty
@@ -0,0 +1,373 @@
+%%
+%% This is an old release of `array.sty' used during rollback operations.
+%% Do not use this file directly.
+%% ==============================
+%%
+%% This is file `array.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% array.dtx (with options: `package,ncols')
+%%
+%% This is a generated file.
+%%
+%% The source is maintained by the LaTeX Project team and bug
+%% reports for it can be opened at https://latex-project.org/bugs/
+%% (but please observe conditions on bug reports sent to that address!)
+%%
+%%
+%% Copyright (C) 1993-2023
+%% The LaTeX Project and any individual authors listed elsewhere
+%% in this file.
+%%
+%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
+%% --------------------------------------------------------------------------
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% https://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This file may only be distributed together with a copy of the LaTeX
+%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle'
+%% without such generated files.
+%%
+%% The list of all files belonging to the LaTeX `Tools Bundle' is
+%% given in the file `manifest.txt'.
+%%
+%% Package `array' to use with LaTeX 2e
+%% Copyright (C) 1989-1998 Frank Mittelbach, all rights reserved.
+\NeedsTeXFormat{LaTeX2e}[1995/06/01]
+
+\ProvidesPackage{array}
+ [2023/10/16 v2.5g Tabular extension package (FMi)]
+%%
+
+\def\@addtopreamble#1{\xdef\@preamble{\@preamble #1}}
+\def\@testpach{\@chclass
+ \ifnum \@lastchclass=6 \@ne \@chnum \@ne \else
+ \ifnum \@lastchclass=7 5 \else
+ \ifnum \@lastchclass=8 \tw@ \else
+ \ifnum \@lastchclass=9 \thr@@
+ \else \z@
+ \ifnum \@lastchclass = 10 \else
+ \edef\@nextchar{\expandafter\string\@nextchar}%
+ \@chnum
+ \if \@nextchar c\z@ \else
+ \if \@nextchar l\@ne \else
+ \if \@nextchar r\tw@ \else
+ \z@ \@chclass
+ \if\@nextchar |\@ne \else
+ \if \@nextchar !6 \else
+ \if \@nextchar @7 \else
+ \if \@nextchar <8 \else
+ \if \@nextchar >9 \else
+ 10
+ \@chnum
+ \if \@nextchar m\thr@@\else
+ \if \@nextchar p4 \else
+ \if \@nextchar b5 \else
+ \z@ \@chclass \z@ \@preamerr \z@ \fi \fi \fi \fi
+ \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi}
+\def\@xexpast#1*#2#3#4\@@{%
+ \@tempcnta #2
+ \toks@={#1}\@temptokena={#3}%
+ \let\the@toksz\relax \let\the@toks\relax
+ \def\@tempa{\the@toksz}%
+ \ifnum\@tempcnta >0 \@whilenum\@tempcnta >0\do
+ {\edef\@tempa{\@tempa\the@toks}\advance \@tempcnta \m@ne}%
+ \let \@tempb \@xexpast \else
+ \let \@tempb \@xexnoop \fi
+ \def\the@toksz{\the\toks@}\def\the@toks{\the\@temptokena}%
+ \edef\@tempa{\@tempa}%
+ \expandafter \@tempb \@tempa #4\@@}
+\def\prepnext@tok{\advance \count@ \@ne
+ \toks\count@{}}
+\def\save@decl{\toks\count@ \expandafter{\@nextchar}}
+\def\insert@column{%
+ \the@toks \the \@tempcnta
+ \ignorespaces \@sharp \unskip
+ \the@toks \the \count@ \relax}
+\newdimen\col@sep
+\def\@acol{\@addtopreamble{\hskip\col@sep}}
+\def\@classx{%
+ \ifcase \@lastchclass
+ \@acolampacol \or
+ \@addamp \@acol \or
+ \@acolampacol \or
+ \or
+ \@acol \@firstampfalse \or
+ \@addamp
+ \fi}
+\def\@classz{\@classx
+ \@tempcnta \count@
+ \prepnext@tok
+ \@addtopreamble{\ifcase \@chnum
+ \hfil
+ \hskip1sp%
+ \d@llarbegin
+ \insert@column
+ \d@llarend \do@row@strut \hfil \or
+ \hskip1sp\d@llarbegin \insert@column \d@llarend \do@row@strut \hfil \or
+ \hfil\hskip1sp\d@llarbegin \insert@column \d@llarend \do@row@strut \or
+ \setbox\ar@mcellbox\vbox
+ \@startpbox{\@nextchar}\insert@column \@endpbox
+ \ar@align@mcell
+ \do@row@strut \or
+ \vtop \@startpbox{\@nextchar}\insert@column \@endpbox\do@row@strut \or
+ \vbox \@startpbox{\@nextchar}\insert@column \@endpbox\do@row@strut
+ \fi}\prepnext@tok}
+
+\newbox\ar@mcellbox
+\def\ar@align@mcell{%
+ \ifdim \ht\ar@mcellbox > \ht\strutbox
+ \begingroup
+ \dimen@\ht\ar@mcellbox
+ \advance\dimen@-\ht\@arstrutbox
+ \advance\dimen@\baselineskip
+ \lower.5\dimen@\box\ar@mcellbox
+ \endgroup
+ \else % assume one line and align at baseline
+ \box\ar@mcellbox
+ \fi}
+
+\def\@arrayrule{\@addtopreamble \vline}
+\def\@classvii{\ifnum \@lastchclass = \thr@@
+ \@preamerr \thr@@ \fi}
+\def\@classvi{\ifcase \@lastchclass
+ \@acol \or
+ \@addtopreamble{\hskip \doublerulesep}\or
+ \@acol \or
+ \@classvii
+ \fi}
+\def\@classii{\advance \count@ \m@ne
+ \save@decl\prepnext@tok}
+\def\@classi{\@classvi
+ \ifcase \@chnum \@arrayrule \or
+ \@classv \fi}
+\def\@startpbox#1{\bgroup
+ \color@begingroup
+ \setlength\hsize{#1}\@arrayparboxrestore
+ \everypar{%
+ \vrule \@height \ht\@arstrutbox \@width \z@
+ \everypar{}}%
+ }
+\def\@endpbox{\@finalstrut\@arstrutbox \par \color@endgroup \egroup\hfil}
+\def\@array[#1]#2{%
+ \@tempdima \ht \strutbox
+ \advance \@tempdima by\extrarowheight
+ \setbox \@arstrutbox \hbox{\vrule
+ \@height \arraystretch \@tempdima
+ \@depth \arraystretch \dp \strutbox
+ \@width \z@}%
+ \begingroup
+ \@mkpream{#2}%
+ \xdef\@preamble{\noexpand \ialign \@halignto
+ \bgroup \@arstrut \@preamble
+ \tabskip \z@ \cr}%
+ \endgroup
+ \@arrayleft
+ \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi \fi
+ \bgroup
+ \let \@sharp ##\let \protect \relax
+ \lineskip \z@
+ \baselineskip \z@
+ \m@th
+ \let\\\@arraycr \let\tabularnewline\\\let\par\@empty \@preamble}
+\def\arraybackslash{\let\\\tabularnewline}
+\newdimen \extrarowheight
+\extrarowheight=0pt
+\def\@arstrut{\unhcopy\@arstrutbox}
+\protected\def\@arraycr{\relax\iffalse{\fi\ifnum 0=`}\fi
+ \@ifstar \@xarraycr \@xarraycr}
+\def\@xarraycr{\@ifnextchar [%
+ \@argarraycr {\ifnum 0=`{}\fi\cr}}
+\def\@argarraycr[#1]{\ifnum0=`{}\fi\ifdim #1>\z@
+ \expandafter\@xargarraycr\else
+ \expandafter\@yargarraycr\fi{#1}}
+\def\@xargarraycr#1{\unskip\gdef\do@row@strut
+ {\@tempdima #1\advance\@tempdima \dp\@arstrutbox
+ \vrule \@depth\@tempdima \@width\z@\global\let\do@row@strut\relax}%
+ \ifnum\@multicnt >\z@ \do@row@strut \fi
+ \cr}
+\let\do@row@strut\relax
+\long\def\multicolumn#1#2#3{%
+ \multispan{#1}\begingroup
+ \def\@addamp{\if@firstamp \@firstampfalse \else
+ \@preamerr 5\fi}%
+ \@mkpream{#2}\@addtopreamble\@empty
+ \endgroup
+ \def\@sharp{#3}%
+ \@arstrut \@preamble
+ \null
+ \ignorespaces}
+\let\d@llarbegin\begingroup
+\let\d@llarend\endgroup
+\def\array{\col@sep\arraycolsep
+ \def\d@llarbegin{$}\let\d@llarend\d@llarbegin\def\@halignto{}%
+ \@tabarray}
+\def\tabular{\def\@halignto{}\@tabular}
+\expandafter\def\csname tabular*\endcsname#1{%
+ \setlength\dimen@{#1}%
+ \edef\@halignto{to\the\dimen@}\@tabular}
+\def\@tabular{%
+ \leavevmode
+ \hbox \bgroup $\col@sep\tabcolsep \let\d@llarbegin\begingroup
+ \let\d@llarend\endgroup
+ \@tabarray}
+\def\endtabular{\endarray\m@th $\egroup}
+\expandafter\let\csname endtabular*\endcsname=\endtabular
+\let\@ampacol=\relax \let\@expast=\relax
+\let\@arrayclassiv=\relax \let\@arrayclassz=\relax
+\let\@tabclassiv=\relax \let\@tabclassz=\relax
+\let\@arrayacol=\relax \let\@tabacol=\relax
+\let\@tabularcr=\relax \let\@@endpbox=\relax
+\let\@argtabularcr=\relax \let\@xtabularcr=\relax
+\def\@preamerr#1{\def\@tempd{{..} at wrong position: }%
+ \PackageError{array}{%
+ \ifcase #1 Illegal pream-token (\@nextchar): `c' used\or %0
+ Missing arg: token ignored\or %1
+ Empty preamble: `l' used\or %2
+ >\@tempd token ignored\or %3
+ <\@tempd changed to !{..}\or %4
+ Only one column-spec. allowed.\fi}\@ehc} %5
+\def\newcolumntype#1{%
+ \edef\NC@char{\string#1}%
+ \@ifundefined{NC@find@\NC@char}%
+ {\@tfor\next:=<>clrmbp@!|\do
+ {%
+ \if\expandafter\noexpand\next\NC@char
+ \PackageWarning{array}%
+ {Redefining primitive column \NC@char}\fi}%
+ \NC@list\expandafter{\the\NC@list\NC@do#1}}%
+ {\PackageWarning{array}{Column \NC@char\space is already defined}}%
+ \@namedef{NC@find@\NC@char}##1#1{\NC@{##1}}%
+ \@ifnextchar[{\newcol@{\NC@char}}{\newcol@{\NC@char}[0]}}
+\def\newcol@#1[#2]#3{\expandafter\@reargdef
+ \csname NC@rewrite@#1\endcsname[#2]{\NC@find#3}}
+\def\NC@#1{%
+ \@temptokena\expandafter{\the\@temptokena#1}\futurelet\next\NC@ifend}
+\def\NC@ifend{%
+ \ifx\next\relax
+ \else\@tempswatrue\expandafter\NC@rewrite\fi}
+\def\NC@do#1{%
+ \expandafter\let\expandafter\NC@rewrite
+ \csname NC@rewrite@\string#1\endcsname
+ \expandafter\let\expandafter\NC@find
+ \csname NC@find@\string#1\endcsname
+ \expandafter\@temptokena\expandafter{\expandafter}%
+ \expandafter\NC@find\the\@temptokena#1\relax}
+\def\showcols{{\def\NC@do##1{\let\NC@do\NC@show}\the\NC@list}}
+\def\NC@show#1{%
+ \typeout{Column #1\expandafter\expandafter\expandafter\NC@strip
+ \expandafter\meaning\csname NC@rewrite@#1\endcsname\@@}}
+\def\NC@strip#1:#2->#3 #4\@@{#2 -> #4}
+\newtoks\NC@list
+\newcolumntype{*}[2]{}
+\long\@namedef{NC@rewrite@*}#1#2{%
+ \count@#1\relax
+ \loop
+ \ifnum\count@>\z@
+ \advance\count@\m@ne
+ \@temptokena\expandafter{\the\@temptokena#2}%
+ \repeat
+ \NC@find}
+\let\@xexpast\relax
+\let\@xexnoop\relax
+\def\save@decl{\toks \count@ = \expandafter\expandafter\expandafter
+ {\expandafter\@nextchar\the\toks\count@}}
+\def\@mkpream#1{\gdef\@preamble{}\@lastchclass 4 \@firstamptrue
+ \let\@sharp\relax
+ \def\@startpbox##1{\unexpanded\expandafter{\expandafter
+ \@startpbox\expandafter{##1}}}\let\@endpbox\relax
+ \let\do@row@strut\relax
+ \let\ar@align@mcell\relax
+ \@temptokena{#1}\@tempswatrue
+ \@whilesw\if@tempswa\fi{\@tempswafalse\the\NC@list}%
+ \count@\m@ne
+ \let\the@toks\relax
+ \prepnext@tok
+ \expandafter \@tfor \expandafter \@nextchar
+ \expandafter :\expandafter =\the\@temptokena \do
+ {\@testpach
+ \ifcase \@chclass \@classz \or \@classi \or \@classii
+ \or \save@decl \or \or \@classv \or \@classvi
+ \or \@classvii \or \@classviii
+ \or \@classx
+ \or \@classx \fi
+ \@lastchclass\@chclass}%
+ \ifcase\@lastchclass
+ \@acol \or
+ \or
+ \@acol \or
+ \@preamerr \thr@@ \or
+ \@preamerr \tw@ \@addtopreamble\@sharp \or
+ \or
+ \else \@preamerr \@ne \fi
+ \def\the@toks{\the\toks}}
+\let\@classix\relax
+\def\@classviii{\ifnum \@lastchclass >\z@\ifnum\@lastchclass=\tw@\else
+ \@preamerr 4\@chclass 6 \@classvi \fi\fi}
+\def\@classv{\save@decl
+ \expandafter\NC@ecs\@nextchar\extracolsep{}\extracolsep\@@@
+ \@addtopreamble{\d@llarbegin\the@toks\the\count@\relax\d@llarend}%
+ \prepnext@tok}
+\def\NC@ecs#1\extracolsep#2#3\extracolsep#4\@@@{\def\@tempa{#2}%
+ \ifx\@tempa\@empty\else\toks\count@={#1\tabskip#2\relax#3}\fi}
+\def\@tabarray{\@ifnextchar[{\@@array}{\@@array[c]}}
+\let\@@array\@array
+\def\endarray{\crcr \egroup \egroup \@arrayright \gdef\@preamble{}}
+\let\@arrayleft\@empty
+\let\@arrayright\@empty
+\newlength{\extratabsurround}
+\setlength{\extratabsurround}{2pt}
+\newlength{\backup@length}
+\newcommand{\firsthline}{%
+ \multicolumn1{@{}c@{}}{%
+ \global\backup@length\ht\@arstrutbox
+ \global\advance\backup@length\dp\@arstrutbox
+ \global\advance\backup@length\arrayrulewidth
+ \raise\extratabsurround\copy\@arstrutbox
+ \kern-1sp%
+ }\\[-\backup@length]\hline
+}
+\newcommand{\lasthline}{\hline\multicolumn1{@{}c@{}}{%
+ \global\backup@length2\ht\@arstrutbox
+ \global\advance\backup@length2\dp\@arstrutbox
+ \global\advance\backup@length\arrayrulewidth
+ }\\[-\backup@length]%
+ \multicolumn1{@{}c@{}}{%
+ \lower\extratabsurround\copy\@arstrutbox
+ \kern-1sp%
+ }%
+}
+\CheckCommand*\@xhline{\ifx\reserved@a\hline
+ \vskip\doublerulesep
+ \vskip-\arrayrulewidth
+ \fi
+ \ifnum0=`{\fi}}
+\renewcommand*\@xhline{\ifx\reserved@a\hline
+ \vskip\doublerulesep
+ \fi
+ \ifnum0=`{\fi}}
+
+\newsavebox\ar@cellbox
+\newcolumntype{w}[2]{%
+ >{\begin{lrbox}\ar@cellbox\d@llarbegin}%
+ c%
+ <{\d@llarend \end{lrbox}%
+ \makebox[#2][#1]{\unhbox\ar@cellbox}}}
+
+\newcolumntype{W}[2]
+ {>{\begin{lrbox}\ar@cellbox\d@llarbegin}%
+ c%
+ <{\d@llarend\end{lrbox}%
+ \let\hss\hfil
+ \makebox[#2][#1]{\unhbox\ar@cellbox}}}
+\endinput
+%%
+%% End of file `array.sty'.
diff --git a/macros/latex/required/tools/array.dtx b/macros/latex/required/tools/array.dtx
index 6e4e34ea26..e77ef0a3bf 100644
--- a/macros/latex/required/tools/array.dtx
+++ b/macros/latex/required/tools/array.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2023
+% Copyright (C) 1993-2024
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -25,15 +25,21 @@
%% Package `array' to use with LaTeX 2e
%% Copyright (C) 1989-1998 Frank Mittelbach, all rights reserved.
%<+package>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
-%<+package>\providecommand\DeclareRelease[3]{}
-%<+package>\providecommand\DeclareCurrentRelease[2]{}
%<+package>
+% For anything before 2016-10-06 we load the 2016 version and hope for the best:
+%<+package>\DeclareRelease{}{1994-06-01}{array-2016-10-06.sty}
+%
%<+package>\DeclareRelease{}{2016-10-06}{array-2016-10-06.sty}
%<+package>\DeclareRelease{v2.4}{2020-02-10}{array-2020-02-10.sty}
-%<+package>\DeclareCurrentRelease{}{2020-10-01}
+%<+package>\DeclareRelease{v2.5}{2023-11-01}{array-2023-11-01.sty}
+%<+package>\DeclareCurrentRelease{}{2024-06-01}
%<+package>
+% \end{macrocode}
+% Current version needs a new kernel.
+% \begin{macrocode}
+%<+package>\NeedsTeXFormat{LaTeX2e}[2024/06/01]
%<+package>\ProvidesPackage{array}
-%<+package> [2023/10/16 v2.5g Tabular extension package (FMi)]
+%<+package> [2024/05/23 v2.6c Tabular extension package (FMi)]
%
% \fi
%
@@ -177,6 +183,18 @@
% \DoNotIndex{\xdef}
% \DoNotIndex{\z@}
%
+%
+% \providecommand\env[1]{\texttt{#1}}
+%
+% \providecommand\hook[1]{\texttt{#1\DescribeHook[noprint]{#1}}}
+% \providecommand\socket[1]{\texttt{#1\DescribeSocket[noprint]{#1}}}
+% \providecommand\plug[1]{\texttt{#1\DescribePlug[noprint]{#1}}}
+%
+% \NewDocElement[printtype=\textit{socket},idxtype=socket,idxgroup=Sockets]{Socket}{socketdecl}
+% \NewDocElement[printtype=\textit{hook},idxtype=hook,idxgroup=Hooks]{Hook}{hookdecl}
+% \NewDocElement[printtype=\textit{plug},idxtype=plug,idxgroup=Plugs]{Plug}{plugdecl}
+%
+%
% \GetFileInfo{array.sty}
%
% \title{A new implementation of \LaTeX's \textsf{tabular}
@@ -195,6 +213,8 @@
% \MaintainedByLaTeXTeam{tools}
% \maketitle
%
+%
+%
% \MakeShortVerb{\=}
%
% \begin{abstract}
@@ -750,12 +770,29 @@
% \end{itemize}
%
%
+% \section{Support for tagged PDF}
%
-% \changes{v2.2b}{1994/02/04}{Removed interactive prompt}
+% With version 2.6a the package is made tagging aware, which means that
+% it will automatically produce tagged tables (necessary, for example, for
+% accessibility) if tagging is requested via \cs{DocumentMetadata}.
%
-% \MaybeStop{
+% More granular control, e.g., explicitly deciding which cells are
+% header cells, etc., is currently under development, but syntax for
+% this will not appear in this package. Instead it will become
+% available across all tabular-generating packages and then
+% automatically apply here as well.
+%
+% Enabling \LaTeX{} to automatically produce tagged PDF is a long-term
+% project and this is a tiny step in this puzzle. For more information
+% on the project and already available functionality, see
+% \url{https://latex-project.org/publications/indexbytopic/pdf} and
+% \url{https://github.com/latex3/tagging-project}.
%
%
+%
+% \changes{v2.2b}{1994/02/04}{Removed interactive prompt}
+%
+% \MaybeStop{
% \begin{thebibliography}{1}
% \bibitem{bk:GMS94} \textsc{M.~Goossens}, \textsc{F.~Mittelbach}
% and \textsc{A.~Samarin}.
@@ -772,7 +809,6 @@
% \newblock
% Addison-Wesley, Reading, Massachusetts, 1986.
% \end{thebibliography}
-%
% } ^^A end of \MaybeStop
%
%
@@ -786,8 +822,49 @@
% \texttt{docstrip} program.
% \begin{macrocode}
%<*driver>
-\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\documentclass{ltxdoc}
+\NeedsTeXFormat{LaTeX2e}[2024/06/01]
+% \end{macrocode}
+%
+% We switched from \cls{ltxdoc} to \cls{l3doc} to get support for
+% code written in the L3 programming layer. The first is that we
+% are currently missing \cs{MaintainedByLaTeXTeam}, so we have to
+% provide that for now.
+% \begin{macrocode}
+\documentclass{l3doc}
+
+% currently missing in l3doc
+\makeatletter
+\def\MaintainedBy#1{\gdef\@maintainedby{#1}}
+\let\@maintainedby\@empty
+\def\MaintainedByLaTeXTeam#1{%
+{\gdef\@maintainedby{%
+This file is maintained by the \LaTeX{} Project team.\\%
+Bug reports can be opened (category \texttt{#1}) at\\%
+\url{https://latex-project.org/bugs.html}.}}}
+\def\@maketitle{%
+ \newpage
+ \null
+ \vskip 2em%
+ \begin{center}%
+ \let \footnote \thanks
+ {\LARGE \@title \par}%
+ \vskip 1.5em%
+ {\large
+ \lineskip .5em%
+ \begin{tabular}[t]{c}%
+ \@author
+ \end{tabular}\par}%
+ \vskip 1em%
+ {\large \@date}%
+ \ifx\@maintainedby\@empty
+ \else
+ \vskip 1em%
+ \fbox{\fbox{\begin{tabular}{@{}l@{}}\@maintainedby\end{tabular}}}%
+ \fi
+ \end{center}%
+ \par
+ \vskip 1.5em}
+\makeatother
% undo the default is not used:
@@ -817,6 +894,29 @@
% \end{macrocode}
%
%
+% \section{A note on the updates done December 2023}
+%
+% We introduced support for tagged PDf and at the same time we added
+% code to determine row and column numbers for each cell in
+% preparation for supporting formatting or type specifications for individual
+% cells (or group of cells) from the outside, e.g., \enquote{rows 1,
+% 2, and 10 are header rows} (syntax to be decided).
+%
+% This new code is already written with L3 programming layer conventions
+% while most of the legay code is still as it was before. This make the code
+% currently somewhat clattered, unfortunately. Eventually this will all move to L3
+% programming layer but this will take time.
+%
+%
+% \begin{macrocode}
+%<@@=tbl>
+\ExplSyntaxOn
+% \end{macrocode}
+%
+%
+%
+%
+%
% \section{The construction of the preamble}
%
% \DeleteShortVerb{\"}
@@ -972,6 +1072,7 @@
% =\@chclass= and =\@chnum=.
% \changes{v2.0f}{1992/02/29}{Argument removed since implicitly known}
% \begin{macrocode}
+\ExplSyntaxOff
\def\@testpach{\@chclass
% \end{macrocode}
% First we deal with the cases in which the \textsf{token}
@@ -981,7 +1082,7 @@
\ifnum \@lastchclass=6 \@ne \@chnum \@ne \else
\ifnum \@lastchclass=7 5 \else
\ifnum \@lastchclass=8 \tw@ \else
- \ifnum \@lastchclass=9 \thr@@
+ \ifnum \@lastchclass=9 \thr@@@@
% \end{macrocode}
% Otherwise we will assume that the \textsf{token} belongs to the
% class $0$
@@ -1032,7 +1133,7 @@
% \begin{macrocode}
10
\@chnum
- \if \@nextchar m\thr@@\else
+ \if \@nextchar m\thr@@@@ \else
\if \@nextchar p4 \else
\if \@nextchar b5 \else
% \end{macrocode}
@@ -1042,6 +1143,7 @@
% \begin{macrocode}
\z@ \@chclass \z@ \@preamerr \z@ \fi \fi \fi \fi
\fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi}
+\ExplSyntaxOn
% \end{macrocode}
% \end{macro}
%
@@ -1062,10 +1164,10 @@
% they are in explicit braces, as in =@{*}=.
%
% This macro is called via
-% =\@xexpast=\meta{preamble}=*0x\@@=.
+% =\@xexpast=\meta{preamble}=*0x\@@@@=.
% The $*$--expression =*0x= is being used to terminate the
% recursion,
-% as we shall see later, and =\@@= serves as an argument
+% as we shall see later, and =\@@@@= serves as an argument
% delimiter. =\@xexpast= has four arguments. The first
% one is the part of the
% user preamble before the first $*$--expression while the second
@@ -1074,7 +1176,7 @@
% above).
% The fourth argument is the rest of the preamble.
% \begin{macrocode}
-\def\@xexpast#1*#2#3#4\@@{%
+\def\@xexpast#1*#2#3#4\@@@@{%
% \end{macrocode}
% The number of copies of \textit{String} (=#2=) that are to be
% produced will be saved in a \textsf{count} register.
@@ -1111,7 +1213,7 @@
% \end{macrocode}
% If \textit{N\/} was greater than zero we prepare for another call
% of =\@xexpast=. Otherwise we assume we have reached the end of
-% the user preamble, because we had appended =*0x\@@= when we first
+% the user preamble, because we had appended =*0x\@@@@= when we first
% called =\@xexpast=. In other words: if the user inserts
% =*{0}{..}= in his preamble, \LaTeX\ ignores the rest of it.
% \begin{macrocode}
@@ -1133,7 +1235,7 @@
% $*$--expression is handled, or to the macro =\@xexnoop=,
% which only ends the recursion by deleting its argument.
% \begin{macrocode}
- \expandafter \@tempb \@tempa #4\@@}
+ \expandafter \@tempb \@tempa #4\@@@@}
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -1142,10 +1244,10 @@
% \begin{macro}{\@xexnoop}
% So the first big problem is solved. Now it is easy to
% specify =\@xexnoop=.
-% Its argument is delimited by =\@@= and it simply expands to
+% Its argument is delimited by =\@@@@= and it simply expands to
% nothing.
% \begin{macrocode}
-% \def\@xexnoop#1\@@{}
+% \def\@xexnoop#1\@@@@{}
% \end{macrocode}
% \end{macro}
%
@@ -1270,11 +1372,19 @@
%
% \begin{macro}{\insert@column}
% \begin{macro}{\@sharp}
+% \begin{macro}{\textonly@unskip}
% We now define the macro =\insert@column= which will do
% this work for us.
% \begin{macrocode}
\def\insert@column{%
% \end{macrocode}
+%
+% For tagging we insert as special socket, that adds the necessary
+% PDF tag at the beginning of the cell if tagging is enabled.
+% \changes{v2.6a}{2023/12/11}{Support for tagged PDF}
+% \begin{macrocode}
+ \UseTaggingSocket{tbl/cell/begin}%
+% \end{macrocode}
% Here, we assume that the \textsf{count} register
% =\@tempcnta= has saved the value $=\count@= - 1$.
% \begin{macrocode}
@@ -1291,8 +1401,9 @@
% \changes{v2.0e}{1991/02/07}{Added \{\} around \cs{@sharp} for new ftsel}
% \changes{v2.0h}{1992/06/22}{Removed \{\} again in favour of
% \cs{d@llarbegin}}
+% \changes{v2.6b}{2024/04/08}{Do not \cs{unskip} if in math mode (gh/1323)}
% \begin{macrocode}
- \ignorespaces \@sharp \unskip
+ \ignorespaces \@sharp \textonly@unskip
% \end{macrocode}
% Then the second \textsf{token} register follows whose number should
% be saved in =\count@=.
@@ -1302,12 +1413,42 @@
% \changes{v2.0c}{1990/08/14}{\cs{relax} added to avoid problem
% \cs{the}\cs{toks0}\cs{the}\cs{toks1}.}
% \begin{macrocode}
- \the@toks \the \count@ \relax}
+ \the@toks \the \count@ \relax
% \end{macrocode}
+%
+% And another socket for tagging that adds the necessary closing tag
+% if enabled.
+% \changes{v2.6a}{2023/12/11}{Support for tagged PDF}
+% \begin{macrocode}
+ \UseTaggingSocket{tbl/cell/end}%
+}
+% \end{macrocode}
+% Do the unskip only if we are in hmode:
+% \changes{v2.6b}{2024/04/08}{Do not \cs{unskip} if in math mode (gh/1323)}
+% \begin{macrocode}
+\protected\def\textonly@unskip{\ifhmode\unskip\fi}
+% \end{macrocode}
+% \end{macro}
% \end{macro}
% \end{macro}
%
%
+% \begin{macro}{\insert@pcolumn}
+% Handling pcolumn-cells needs slightly different handling when
+% doing tagging. Rather than changing the plugs in
+% \cs{insert@column} back and forth, we simply use a different
+% version of \cs{insert@column} that has its own sockets.
+% \changes{v2.6a}{2023/12/11}{Support for tagged PDF}
+% \begin{macrocode}
+\def\insert@pcolumn{%
+ \UseTaggingSocket{tbl/pcell/begin}%
+ \the@toks \the \@tempcnta
+ \ignorespaces \@sharp \unskip
+ \the@toks \the \count@ \relax
+ \UseTaggingSocket{tbl/pcell/end}%
+}
+% \end{macrocode}
+% \end{macro}
%
%
% \subsection{The separation of columns}
@@ -1321,11 +1462,24 @@
% =\@addamp=, the macro that inserts the =&=.
% \begin{macrocode}
% \newif \@iffirstamp
-% \def\@addamp{\if@firstamp \@firstampfalse
-% \else \@addtopreamble &\fi}
+\def\@addamp {
+ \if@firstamp
+ \@firstampfalse
+ \else
+% \end{macrocode}
+% If we are after the first column we have to insert a \verb=&= and
+% also update the cell data.
+% \changes{v2.6a}{2023/12/11}{Managing cell indexes}
+% \begin{macrocode}
+ \edef\@preamble{\@preamble &
+ \noexpand\tbl_update_cell_data: }
+ \fi
+}
% \end{macrocode}
% \end{macro}
%
+%
+%
% \begin{macro}{\@acol}
% \begin{macro}{\@acolampacol}
% \begin{macro}{\col@sep}
@@ -1393,7 +1547,7 @@
% command =\@xexpast=. As we already know, this command saves
% its result in the macro =\@tempa=.
% \begin{macrocode}
-% \@xexpast #1*0x\@@
+% \@xexpast #1*0x\@@@@
% \end{macrocode}
% Afterwards we initialize all registers and macros, that we need
% for the build-up of the preamble.
@@ -1477,7 +1631,7 @@
% \texttt{r}, \texttt{p},\texttt{m} or \texttt{b}. We report an
% error and ignore the declaration given by ={..}=.
% \begin{macrocode}
-% \@preamerr \thr@@ \or
+% \@preamerr \thr@@@@ \or
% \end{macrocode}
% If =\@lastchclass= is $4$ the user preamble has been empty.
% To continue, we insert a =#= in the preamble.
@@ -1671,18 +1825,17 @@
\setbox\ar@mcellbox\vbox
% \end{macrocode}
% The part of the templates which is the same in all three cases
-% (\texttt{p}, \texttt{m} and \texttt{b})
-% is built by the macros =\@startpbox= and
-% =\@endpbox=. =\@startpbox= has an argument:
-% the width of the column which is stored in the current
-% \textsf{token} (i.e.\ =\@nextchar=).
-% Between these two macros we find the well known
-% =\insert@column=.
-% The strut is places after the box
+% (\texttt{p}, \texttt{m} and \texttt{b}) is built by the macros
+% =\@startpbox= and =\@endpbox=. =\@startpbox= has an argument: the
+% width of the column which is stored in the current \textsf{token}
+% (i.e.\ =\@nextchar=). Between these two macros we find the well
+% known =\insert@column= or rather the variant for tagging:
+% \cs{insert@pcolumn}. The strut is placed after the box.
% \changes{v2.4e}{2016/10/07}{Fixing SX68732}
% \changes{v2.4f}{2017/11/04}{Managing m-cells without \cs{vcenter}}
+% \changes{v2.6a}{2023/12/11}{Support for tagged PDF}
% \begin{macrocode}
- \@startpbox{\@nextchar}\insert@column \@endpbox
+ \@startpbox{\@nextchar}\insert@pcolumn \@endpbox
\ar@align@mcell
\do@row@strut \or
% \end{macrocode}
@@ -1690,9 +1843,10 @@
% same way though we do not need the =$= characters because we use
% =\vtop= or =\vbox=.
% \changes{v2.4e}{2016/10/07}{Fixing SX68732}
+% \changes{v2.6a}{2023/12/11}{Support for tagged PDF}
% \begin{macrocode}
- \vtop \@startpbox{\@nextchar}\insert@column \@endpbox\do@row@strut \or
- \vbox \@startpbox{\@nextchar}\insert@column \@endpbox\do@row@strut
+ \vtop \@startpbox{\@nextchar}\insert@pcolumn \@endpbox\do@row@strut \or
+ \vbox \@startpbox{\@nextchar}\insert@pcolumn \@endpbox\do@row@strut
% \end{macrocode}
% Other values for =\@chnum= are impossible. Therefore we
% end the arguments to =\@addtopreamble= and =\ifcase=.
@@ -1783,8 +1937,8 @@
% So the declarations defined by the first =>{...}=
% are ignored.
% \begin{macrocode}
-%\def\@classix{\ifnum \@lastchclass = \thr@@
-% \@preamerr \thr@@ \fi
+%\def\@classix{\ifnum \@lastchclass = \thr@@@@
+% \@preamerr \thr@@@@ \fi
% \end{macrocode}
% Furthermore, we call up =\@class10= because afterwards always a
% new column is started by \texttt{c}, \texttt{l}, \texttt{r},
@@ -1836,14 +1990,14 @@
% We only check if the last \textsf{token} was of class $3$ which is
% forbidden.
% \begin{macrocode}
-\def\@classvii{\ifnum \@lastchclass = \thr@@
+\def\@classvii{\ifnum \@lastchclass = \thr@@@@
% \end{macrocode}
% If this is true we output an error message and
% ignore the declarations stored
% by the last =>{...}=, because these are overwritten
% by the argument of \texttt{@}.
% \begin{macrocode}
- \@preamerr \thr@@ \fi}
+ \@preamerr \thr@@@@ \fi}
% \end{macrocode}
% \end{macro}
%
@@ -2032,7 +2186,7 @@
% second one describes the wanted preamble,
% e.g.\ it has the form =|c|c|c|=.
% \begin{macrocode}
-\def\@array[#1]#2{%
+\def\@array[#1]#2{
% \end{macrocode}
% First we define a \textsf{strut} whose size basically corresponds
% to a normal \textsf{strut} multiplied by the factor
@@ -2051,6 +2205,14 @@
\@depth \arraystretch \dp \strutbox
\@width \z@}%
% \end{macrocode}
+% The total number of table columns of the current table is
+% determined in \cs{tbl_count_table_cols:} but this is called in
+% a group, so local settings do not survive. Thus, to save away the
+% outer value of \cs{g_@@_table_cols_tl} we do it before the group.
+% \changes{v2.6a}{2023/12/11}{Support for tagged PDF}
+% \begin{macrocode}
+ \tbl_save_outer_table_cols:
+% \end{macrocode}
% Then we open a group, in which the user preamble is evaluated by
% the macro =\@mkpream=. As we know this must happen locally.
% This macro creates a preamble for a =\halign= and saves
@@ -2059,6 +2221,11 @@
\begingroup
\@mkpream{#2}%
% \end{macrocode}
+% Figure out how many columns this table has:
+% \changes{v2.6a}{2023/12/11}{Managing cell indexes}
+% \begin{macrocode}
+ \tbl_count_table_cols:
+% \end{macrocode}
% We again redefine =\@preamble= so that a call up of =\@preamble=
% now starts the =\halign=. Thus also the arguments of \texttt{>},
% \texttt{<}, \texttt{@} and \texttt{!}, saved in the
@@ -2085,13 +2252,38 @@
% unsupported redefinition of a \TeX{} primitive for the moment (as people rely
% on that experimental code).
% \begin{macrocode}
- \xdef\@preamble{\noexpand \ialign \@halignto
- \bgroup \@arstrut \@preamble
- \tabskip \z@ \cr}%
+ \xdef\@preamble{
+% \end{macrocode}
+% \cs{ialign} in the original definition is replaced by
+% \cs{ar@ialign} defined below. This does what \cs{ialign} does but
+% additionally handles the tagging structure for the whole table if necessary.
+% \changes{v2.6a}{2023/12/11}{Support for tagged PDF}
+% \begin{macrocode}
+ \noexpand \ar@ialign
+ \@halignto
+ \bgroup \@arstrut
% \end{macrocode}
% What we have not explained yet is the macro =\@halignto=
% that was just used. Depending on its replacement text the
% =\halign= becomes a =\halign= \texttt{to} \meta{dimen}.
+%
+% Next, a tagging support socket is inserted adding the start row tag.
+% \changes{v2.6a}{2023/12/11}{Support for tagged PDF}
+% \begin{macrocode}
+ \UseTaggingSocket{tbl/row/begin}
+% \end{macrocode}
+% At the start of the preamble for the first column we call
+% \cs{tbl_init_cell_data_for_row:} to initialize the cell index data. In
+% later columns this data is updated via \cs{tbl_update_cell_data:}.
+% \changes{v2.6a}{2023/12/11}{Managing cell indexes}
+% \begin{macrocode}
+ \tbl_init_cell_data_for_row:
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \@preamble
+ \tabskip \z@ \cr}
+% \end{macrocode}
% Now we close the group again. Thus
% =\@startpbox= and =\@endpbox= as well as all
% \textsf{token} registers get their former meaning back.
@@ -2128,12 +2320,16 @@
% around every column in the \textsf{array}--environment
% the parameter =\mathsurround= should
% also be set to \textsf{0pt}. This prevents additional space between
-% the rows. The
-% \PlainTeX--macro =\m@th= does this.
+% the rows.
% \begin{macrocode}
\lineskip \z@
\baselineskip \z@
- \m@th
+% \end{macrocode}
+% Don't use \cs{m@th} here as that signals to the math taggingg
+% code that this is fake math that should not be tagged.
+% \changes{v2.6a}{2023/12/11}{Support for tagged PDF}
+% \begin{macrocode}
+ \mathsurround \z@
% \end{macrocode}
% Beside, we have to assign a special meaning (which we still have
% to specify) to the line separator =\\=. We also have to
@@ -2144,10 +2340,61 @@
% start the wanted =\halign=.
% \changes{1994/12/08}{v2.3b}{add \cs{tabularnewline}}
% \begin{macrocode}
- \let\\\@arraycr \let\tabularnewline\\\let\par\@empty \@preamble}
+ \let\\\@arraycr \let\tabularnewline\\\let\par\@empty
+% \end{macrocode}
+% Another socket for tagging. TODO: what about \cs{arrayleft} above?
+% \begin{macrocode}
+ \UseTaggingSocket{tbl/init}
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \@preamble
+}
% \end{macrocode}
% \end{macro}
%
+%
+%
+% \begin{macro}{\ar@ialign}
+% A new command that replaces \cs{ialign} used previously. \cs{everycr} is
+% also applied to the \cs{cr} ending the preamble so we have to
+% program around that.
+% \changes{v2.6a}{2023/12/11}{Support for tagged PDF}
+% \begin{macrocode}
+\def\ar@ialign{%
+% \end{macrocode}
+% Before starting a table we have to initialize the variables
+% holding row and column information for cells. We also have
+% locally store the information related to the current cell (if we
+% are already inside a table) so that we can restore it once the
+% inner table is finished.
+% \changes{v2.6a}{2023/12/11}{Managing cell indexes}
+% \begin{macrocode}
+ \tbl_init_cell_data_for_table:
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \everycr{%
+ \noalign{%
+% \end{macrocode}
+% If this \cs{cr} was at the end of a real row (e.g., not at the
+% end of the table preamble) we have add a row end tag.
+% \begin{macrocode}
+ \tbl_if_row_was_started:T { \UseTaggingSocket{tbl/row/end} }
+% \end{macrocode}
+% The we prepare for the next row.
+% \begin{macrocode}
+ \tbl_update_cell_data_for_next_row:
+ }%
+ }%
+ \tabskip\z@skip\halign}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+%
+%
% \begin{macro}{\arraybackslash}
% \changes{v2.4a}{2003/12/17}{(DPC) Macro added (from tabularx)}
% Restore =\\= for use in array and tabular environment (after
@@ -2182,7 +2429,27 @@
% \begin{macro}{\@arraycr}
% In the macro =\@array= the line separator =\\= is
% =\let= to the command =\@arraycr=.
-% Its definition starts with a special brace which I have directly
+% \changes{v2.3c}{1995/04/23}{Avoid adding an ord atom in math}
+% \changes{v2.5e}{2021/04/20}{Use \cs{protected} for \cs{\bslash} variant (gh/548)}
+% \begin{macrocode}
+\protected\def\@arraycr {
+% \end{macrocode}
+% Add code that figures out if the current table row is incomplete
+% (not enough \verb=&=s). It can then do extra actions, such as
+% inserting missing cell tags.
+% \changes{v2.6a}{2023/12/11}{Managing cell indexes}
+% \begin{macrocode}
+ \tbl_count_missing_cells:n {@arraycr}
+% \end{macrocode}
+% TODO: maybe this is also the right place to add a socket that
+% could be used to actually enter missing cells instead of just
+% adding tagging structures for them later. This would be optional
+% but in many cases it would be the right thing to do (for example
+% if tables contain vertical lines or similar visual structures
+% that require fully specified rows.
+%
+%
+% We then start a special brace which I have directly
% copied from the original definition. It is
% necessary, because the =\futurlet= in =\@ifnextchar=
% might
@@ -2198,10 +2465,8 @@
% =\halign= while we are looking for a =*= or =[=.
% For further information see
% \cite[Appendix D]{bk:knuth}.
-% \changes{v2.3c}{1995/04/23}{Avoid adding an ord atom in math}
-% \changes{v2.5e}{2021/04/20}{Use \cs{protected} for \cs{\bslash} variant (gh/548)}
% \begin{macrocode}
-\protected\def\@arraycr{\relax\iffalse{\fi\ifnum 0=`}\fi
+ \iffalse{\fi\ifnum 0=`}\fi
% \end{macrocode}
% Then we test whether the user is using the star form and ignore
% a possible star (I also disagree with this procedure, because a
@@ -2210,6 +2475,11 @@
\@ifstar \@xarraycr \@xarraycr}
% \end{macrocode}
% \end{macro}
+
+
+
+
+
%
% \begin{macro}{\@xarraycr}
% In the command =\@xarraycr= we test if an optional argument
@@ -2301,6 +2571,7 @@
% the result column and the actual column entry.
% \changes{v2.3j}{1998/01/29}{Command made \cs{long} to match
% kernel change for pr/2180}
+% \changes{v2.6a}{2023/12/11}{Support for tagged PDF}
% \begin{macrocode}
\long\def\multicolumn#1#2#3{%
% \end{macrocode}
@@ -2310,6 +2581,16 @@
% \begin{macrocode}
\multispan{#1}\begingroup
% \end{macrocode}
+% For tagging support we have to solve two problems:
+% \cs{multicolumn} must handle the row begin if it is used there,
+% and it must save the numbers of cells it spans so that we can add
+% a suitable ColSpan attribute. We do this in the next macro
+% (which in turn calls the \texttt{tbl/row/begin} socket, if
+% necessary).
+% \changes{v2.6a}{2023/12/11}{Managing cell indexes}
+% \begin{macrocode}
+ \tbl_update_multicolumn_cell_data:n {#1}
+% \end{macrocode}
% Since a =\multicolumn= should only describe the format of a
% result column, we redefine =\@addamp= in such a way that one gets
% an error message if one uses more than one \texttt{c},
@@ -2336,6 +2617,12 @@
% \begin{macrocode}
\endgroup
% \end{macrocode}
+% Now we update the colspan attribute. This needs setting after
+% the group as it is hidden inside the plug in \cs{insert@column}.
+% \changes{v2.6a}{2023/12/11}{Support for tagged PDF}
+% \begin{macrocode}
+ \UseTaggingSocket{tbl/colspan}{#1}%
+% \end{macrocode}
% In the special situation of =\multicolumn= =\@preamble=
% is not needed as preamble for a =\halign= but it is directly
% inserted into our table. Thus instead of =\sharp=
@@ -2458,6 +2745,12 @@
% \begin{macrocode}
\leavevmode
% \end{macrocode}
+% Now that we know we are in hmode we can add the start tag for the
+% whole table.
+% \changes{v2.6a}{2023/12/11}{Support for tagged PDF}
+% \begin{macrocode}
+ \UseTaggingSocket{tbl/hmode/begin}%
+% \end{macrocode}
% It should be taken into consideration that the macro =\@array=
% must be called in math mode. Therefore we open a \textsf{box},
% insert a =$= and then assign the correct values to =\col@sep= and
@@ -2486,11 +2779,41 @@
% =\@array=. To save \textsf{token} space we then redefine
% =\@preamble=
% because its replacement text isn't longer needed.
+%
+% To handle cell indexes, we do not use \cs{crcr} but a variant
+% that also handles missing cells as necessary.
+% \changes{v2.6a}{2023/12/11}{Support for tagged PDF}
% \begin{macrocode}
-%\def\endarray{\crcr \egroup \egroup \gdef\@preamble{}}
+\def\endarray {
+ \tbl_crcr:n{endarray} \egroup
+ \UseTaggingSocket{tbl/finalize}
+% \end{macrocode}
+%
+% If tables are nested into another then it is necessary to
+% restore information about the cell the inner table started
+% in. Otherwise, the cell index data structures reflect the
+% status in the outer table as they
+% are globally manipulated. We restore in all cases even if we are
+% not in a nesting situation as that makes the code simpler (and
+% probably faster).
+%
+% \cs{endtabular} and \cs{endtabular*} inherit from \cs{endarray}
+% so we only need to change that. \texttt{tabularx} uses a similar method.
+% \changes{v2.6a}{2023/12/11}{Managing cell indexes}
+% \begin{macrocode}
+ \tbl_restore_outer_cell_data:
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \egroup
+ \@arrayright \gdef\@preamble{}%
+}
% \end{macrocode}
% \end{macro}
%
+%
+%
+%
% \begin{macro}{\endtabular}
% \begin{macro}{\endtabular*}
% To end a \textsf{tabular} or \textsf{tabular$*$} environment we
@@ -2499,7 +2822,13 @@
% any =\mathsurround= so we cancel that with =\m@th=.
% \changes{v2.5f}{2021/07/12}{Cancel any outside \cs{mathsurround} (gh/614)}
% \begin{macrocode}
-\def\endtabular{\endarray\m@th $\egroup}
+\def\endtabular{\endarray\m@th $\egroup
+% \end{macrocode}
+%
+% \changes{v2.6a}{2023/12/11}{Support for tagged PDF}
+% \begin{macrocode}
+ \UseTaggingSocket{tbl/hmode/end}%
+}
\expandafter\let\csname endtabular*\endcsname=\endtabular
% \end{macrocode}
% \end{macro}
@@ -2518,7 +2847,7 @@
\let\@arrayclassiv=\relax \let\@arrayclassz=\relax
\let\@tabclassiv=\relax \let\@tabclassz=\relax
\let\@arrayacol=\relax \let\@tabacol=\relax
-\let\@tabularcr=\relax \let\@@endpbox=\relax
+\let\@tabularcr=\relax \let\@@@@endpbox=\relax
\let\@argtabularcr=\relax \let\@xtabularcr=\relax
% \end{macrocode}
%
@@ -2576,6 +2905,7 @@
% to define letters, to be used in the same way as the primitive
% column specifiers, `c' `p' etc.
% \begin{macrocode}
+\ExplSyntaxOff % this is really oldstyle using \@tfor :=
\def\newcolumntype#1{%
% \end{macrocode}
% "\NC@char" was added in V2.01 so that active characters, like "@" in
@@ -2615,6 +2945,7 @@
% If an optional argument was not given, give a default argument of 0.
% \begin{macrocode}
\@ifnextchar[{\newcol@{\NC@char}}{\newcol@{\NC@char}[0]}}
+\ExplSyntaxOn
% \end{macrocode}
% \end{macro}
% \begin{macro}{\newcol@}
@@ -2710,16 +3041,18 @@
% produced and then "\typeout" the required string.
% \begin{macrocode}
\def\NC@show#1{%
- \typeout{Column #1\expandafter\expandafter\expandafter\NC@strip
- \expandafter\meaning\csname NC@rewrite@#1\endcsname\@@}}
+ \typeout{Column~ #1\expandafter\expandafter\expandafter\NC@strip
+ \expandafter\meaning\csname NC@rewrite@#1\endcsname\@@@@}}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\NC@strip}
% Delimit the arguments to "\NC@strip" with `\texttt{:}', `\texttt{->}',
-% a space, and "\@@" to pull out the required parts of the output from
+% a space, and "\@@@@" to pull out the required parts of the output from
% "\meaning".
% \begin{macrocode}
-\def\NC@strip#1:#2->#3 #4\@@{#2 -> #4}
+\ExplSyntaxOff
+\def\NC@strip#1:#2->#3 #4\@@@@{#2 -> #4}
+\ExplSyntaxOn
% \end{macrocode}
% \end{macro}
% \begin{macro}{\NC@list}
@@ -2807,6 +3140,7 @@
% \changes{v2.4e}{2016/10/07}{Fixing SX68732}
% \changes{v2.4f}{2017/11/04}{Managing m-cells without \cs{vcenter}}
% \begin{macrocode}
+\ExplSyntaxOff % really oldstyle using \@tfor :=
\def\@mkpream#1{\gdef\@preamble{}\@lastchclass 4 \@firstamptrue
\let\@sharp\relax
% \end{macrocode}
@@ -2869,11 +3203,12 @@
\@acol \or
\or
\@acol \or
- \@preamerr \thr@@ \or
+ \@preamerr \thr@@@@ \or
\@preamerr \tw@ \@addtopreamble\@sharp \or
\or
\else \@preamerr \@ne \fi
\def\the@toks{\the\toks}}
+\ExplSyntaxOn
% \end{macrocode}
% \end{macro}
%
@@ -2908,7 +3243,7 @@
% \texttt{array.sty} 2.0h.
% \begin{macrocode}
\def\@classv{\save@decl
- \expandafter\NC@ecs\@nextchar\extracolsep{}\extracolsep\@@@
+ \expandafter\NC@ecs\@nextchar\extracolsep{}\extracolsep\@@@@@@
\@addtopreamble{\d@llarbegin\the@toks\the\count@\relax\d@llarend}%
\prepnext@tok}
% \end{macrocode}
@@ -2920,7 +3255,7 @@
% second "\extracolsep", there is no point in the user entering two of
% these commands anyway, so this is not really a restriction.
% \begin{macrocode}
-\def\NC@ecs#1\extracolsep#2#3\extracolsep#4\@@@{\def\@tempa{#2}%
+\def\NC@ecs#1\extracolsep#2#3\extracolsep#4\@@@@@@{\def\@tempa{#2}%
\ifx\@tempa\@empty\else\toks\count@={#1\tabskip#2\relax#3}\fi}
%</ncols>
% \end{macrocode}
@@ -2936,28 +3271,27 @@
%
% \begin{macro}{\@tabarray}
% This macro tests for an optional bracket and then calls up
-% "\@@array" or "\@@array[c]" (as default).
+% "\@@@@array" or "\@@@@array[c]" (as default).
% \begin{macrocode}
%<*package>
-\def\@tabarray{\@ifnextchar[{\@@array}{\@@array[c]}}
+\def\@tabarray{\@ifnextchar[{\@@@@array}{\@@@@array[c]}}
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\@@array}
+% \begin{macro}{\@@@@array}
% This macro tests could then test an optional delimiter before the
% left brace of the main preamble argument. Here in the main package
% it simply is let to be "\@array".
% \begin{macrocode}
-\let\@@array\@array
+\let\@@@@array\@array
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\endarray}
+% \begin{macro}{\@arrrayleft}
% \begin{macro}{\@arrayright}
% We have to declare the hook we put into "\@array" above.
-% A similar hook `"\@arrayright"' will be inserted into the
+% A similar hook \cs{@arrayright} will be inserted into the
% "\endarray" to gain control. Both defaults to empty.
% \begin{macrocode}
-\def\endarray{\crcr \egroup \egroup \@arrayright \gdef\@preamble{}}
\let\@arrayleft\@empty
\let\@arrayright\@empty
% \end{macrocode}
@@ -3182,6 +3516,14 @@
% \end{macro}
%
%
+%
+%
+%
+% \begin{macrocode}
+\ExplSyntaxOff
+% \end{macrocode}
+%
+%
% \PrintIndex
% \PrintChanges
%
diff --git a/macros/latex/required/tools/array.pdf b/macros/latex/required/tools/array.pdf
index 085cb2321a..fd71de4045 100644
--- a/macros/latex/required/tools/array.pdf
+++ b/macros/latex/required/tools/array.pdf
Binary files differ
diff --git a/macros/latex/required/tools/bm.dtx b/macros/latex/required/tools/bm.dtx
index a608c6aeb5..d7d6eb54ee 100644
--- a/macros/latex/required/tools/bm.dtx
+++ b/macros/latex/required/tools/bm.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2023
+% Copyright (C) 1993-2024
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -22,7 +22,7 @@
% \fi
%
% \iffalse
-%% Copyright 1996 1997 1998 1999 2002 2003 2004 2016 2017 2019 2021 2022
+%% Copyright 1996 1997 1998 1999 2002 2003 2004 2016 2017 2019 2021 2022 2023
%% David Carlisle Frank Mittelbach
%%
%% Development of this package was commissioned by Y&Y Inc.
@@ -36,7 +36,7 @@
%<driver>\ProvidesFile{bm.drv}
% \fi
% \ProvidesFile{bm.dtx}
- [2023/07/08 v1.2f Bold Symbol Support (DPC/FMi)]
+ [2023/12/19 v1.2f Bold Symbol Support (DPC/FMi)]
%
% \iffalse
%<*driver>
@@ -178,14 +178,14 @@
% spacing). So the third example produces identical output to the first
% (but \TeX\ takes more time producing it).
%
-% In the fourth example the |\mathrm{\bm{g}}| is essentially
+% In the fourth example the |\mathrm{\bm{{g}}}| is essentially
% equivalent to |\mathrm{\mbox{\boldmath$g$}}|. Currently math alphabet
% settings are not passed down to `nested' math lists, and so in this
% example, the |\mathrm| has no effect, and a bold math italic $\bm g$
% is obtained.
%
% Similarly the last example is equivalent to
-% |$\mbox{\boldmath$\mathrm{g}$}}| and so in this case, one obtains a
+% |$\mbox{\boldmath$\mathrm{g}$}$| and so in this case, one obtains a
% bold roman \textbf{g}.
%
% \subsection{Delimiters}
diff --git a/macros/latex/required/tools/bm.ins b/macros/latex/required/tools/bm.ins
index a7424a0e67..c0c8125d10 100644
--- a/macros/latex/required/tools/bm.ins
+++ b/macros/latex/required/tools/bm.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2023
+%% Copyright (C) 1993-2024
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -45,7 +45,7 @@ The source is maintained by the LaTeX Project team and bug
reports for it can be opened at https://latex-project.org/bugs/
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2023
+Copyright (C) 1993-2024
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/required/tools/bm.pdf b/macros/latex/required/tools/bm.pdf
index 47bef9fc86..96e7864915 100644
--- a/macros/latex/required/tools/bm.pdf
+++ b/macros/latex/required/tools/bm.pdf
Binary files differ
diff --git a/macros/latex/required/tools/calc.dtx b/macros/latex/required/tools/calc.dtx
index 2c4cecbf03..154c6ba26a 100644
--- a/macros/latex/required/tools/calc.dtx
+++ b/macros/latex/required/tools/calc.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2023
+% Copyright (C) 1993-2024
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/calc.pdf b/macros/latex/required/tools/calc.pdf
index 203c0032f6..bc73b49ab5 100644
--- a/macros/latex/required/tools/calc.pdf
+++ b/macros/latex/required/tools/calc.pdf
Binary files differ
diff --git a/macros/latex/required/tools/changes.txt b/macros/latex/required/tools/changes.txt
index 0ced77d568..afd942a4e7 100644
--- a/macros/latex/required/tools/changes.txt
+++ b/macros/latex/required/tools/changes.txt
@@ -10,13 +10,80 @@ All changes above are only part of the development branch for the next release.
================================================================================
#########################
+# 2023-11-01 Release
+#########################
+
+2024-05-23 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * array.dtx:
+ * longtable.dtx:
+ * multicol.dtx:
+ * showkeys.dtx:
+ * varioref.dtx:
+ Do not error with "suspicous date" when rolling back to
+ early years of LaTeX2e (gh/1336)
+
+2024-05-09 Yukai Chou <muzimuzhi@gmail.com>
+
+ * amsmath.dtx:
+ Fix typo in comment, \Umathcar -> \Umathchar (gh/1343)
+
+2024-04-10 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+
+ * xr.dtx:
+ Merged in the code from xr-hyper. This extends xr to properly support
+ targets and links and also adds support for properties (gh/1180).
+
+2024-04-08 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * array.dtx (section{The insertion of declarations):
+ Do not \unskip if in math mode, this way explicit spaces at the
+ end of the math cell remain as it is with array env in core LaTeX (gh/1323)
+
+2024-03-13 David Carlisle <David.Carlisle@latex-project.org>
+
+ * l3sys-query.dtx
+ New package, providing a document interface to the l3sys-query Lua script.
+
+2024-01-22 Lars Madsen <daleif@math.au.dk>
+
+ * verbatim.dtx: added TAB marking support to \verbatiminput* (gh/1245)
+
+2023-12-16 David Carlisle <David.Carlisle@latex-project.org>
+
+ * showkeys.dtx: avoid adding extra box to \@labels gh/1123
+
+2023-12-16 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * longtable.dtx:
+ Support for tagged PDF
+ Manage and provide cell indexes
+
+2023-12-12 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * array.dtx:
+ Support for tagged PDF
+ Manage and provide cell indexes
+
+2023-12-11 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * tabularx.dtx:
+ Require newer LaTeX kernel (that supports tagging)
+ Suspend any tagging while doing trial typesetting
+
+2023-11-10 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * multicol.dtx (subsection{Maintaining the mark registers}]):
+ Get rid of forced breaks for mark extraction (gh/1130)
+
+#########################
# 2023-11-01c Release
#########################
2023-11-06 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
* verbatim.dtx (subsection{Preliminaries}):
- Update code so that that \verb does not show visible spaces (gh/1160)
+ Update code so that \verb does not show visible spaces (gh/1160)
#########################
# 2023-11-01b Release
diff --git a/macros/latex/required/tools/dcolumn.dtx b/macros/latex/required/tools/dcolumn.dtx
index c8ddaf4ce6..feb3096cce 100644
--- a/macros/latex/required/tools/dcolumn.dtx
+++ b/macros/latex/required/tools/dcolumn.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2023
+% Copyright (C) 1993-2024
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/dcolumn.pdf b/macros/latex/required/tools/dcolumn.pdf
index 95ad0bd449..bf7018beec 100644
--- a/macros/latex/required/tools/dcolumn.pdf
+++ b/macros/latex/required/tools/dcolumn.pdf
Binary files differ
diff --git a/macros/latex/required/tools/delarray.dtx b/macros/latex/required/tools/delarray.dtx
index 86a1a6203f..61d40b5c74 100644
--- a/macros/latex/required/tools/delarray.dtx
+++ b/macros/latex/required/tools/delarray.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2023
+% Copyright (C) 1993-2024
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/delarray.pdf b/macros/latex/required/tools/delarray.pdf
index dee83d0727..9a8d864bed 100644
--- a/macros/latex/required/tools/delarray.pdf
+++ b/macros/latex/required/tools/delarray.pdf
Binary files differ
diff --git a/macros/latex/required/tools/enumerate.dtx b/macros/latex/required/tools/enumerate.dtx
index 2818a73a09..c3889a9157 100644
--- a/macros/latex/required/tools/enumerate.dtx
+++ b/macros/latex/required/tools/enumerate.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2023
+% Copyright (C) 1993-2024
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/enumerate.pdf b/macros/latex/required/tools/enumerate.pdf
index 3cfae0299a..b83f030d7c 100644
--- a/macros/latex/required/tools/enumerate.pdf
+++ b/macros/latex/required/tools/enumerate.pdf
Binary files differ
diff --git a/macros/latex/required/tools/fileerr.dtx b/macros/latex/required/tools/fileerr.dtx
index eef222bb6e..0e8eeb1ffb 100644
--- a/macros/latex/required/tools/fileerr.dtx
+++ b/macros/latex/required/tools/fileerr.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2023
+% Copyright (C) 1993-2024
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/fileerr.pdf b/macros/latex/required/tools/fileerr.pdf
index c9ead205ae..664b3c49b7 100644
--- a/macros/latex/required/tools/fileerr.pdf
+++ b/macros/latex/required/tools/fileerr.pdf
Binary files differ
diff --git a/macros/latex/required/tools/fontsmpl.dtx b/macros/latex/required/tools/fontsmpl.dtx
index 525065cde5..6e9835e20e 100644
--- a/macros/latex/required/tools/fontsmpl.dtx
+++ b/macros/latex/required/tools/fontsmpl.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2023
+% Copyright (C) 1993-2024
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/fontsmpl.pdf b/macros/latex/required/tools/fontsmpl.pdf
index 400fc3cdb4..ba164a7eb0 100644
--- a/macros/latex/required/tools/fontsmpl.pdf
+++ b/macros/latex/required/tools/fontsmpl.pdf
Binary files differ
diff --git a/macros/latex/required/tools/ftnright.dtx b/macros/latex/required/tools/ftnright.dtx
index 663fa304a9..a3826376db 100644
--- a/macros/latex/required/tools/ftnright.dtx
+++ b/macros/latex/required/tools/ftnright.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2023
+% Copyright (C) 1993-2024
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/ftnright.pdf b/macros/latex/required/tools/ftnright.pdf
index b1ed43548d..12a83de3db 100644
--- a/macros/latex/required/tools/ftnright.pdf
+++ b/macros/latex/required/tools/ftnright.pdf
Binary files differ
diff --git a/macros/latex/required/tools/hhline.dtx b/macros/latex/required/tools/hhline.dtx
index 49ac1ae208..b2d833d965 100644
--- a/macros/latex/required/tools/hhline.dtx
+++ b/macros/latex/required/tools/hhline.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2023
+% Copyright (C) 1993-2024
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/hhline.pdf b/macros/latex/required/tools/hhline.pdf
index 9d389f0c7f..488b653aab 100644
--- a/macros/latex/required/tools/hhline.pdf
+++ b/macros/latex/required/tools/hhline.pdf
Binary files differ
diff --git a/macros/latex/required/tools/indentfirst.dtx b/macros/latex/required/tools/indentfirst.dtx
index 2314db1c70..9bbe1871e1 100644
--- a/macros/latex/required/tools/indentfirst.dtx
+++ b/macros/latex/required/tools/indentfirst.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2023
+% Copyright (C) 1993-2024
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/indentfirst.pdf b/macros/latex/required/tools/indentfirst.pdf
index 2aa538c345..b484dd82c9 100644
--- a/macros/latex/required/tools/indentfirst.pdf
+++ b/macros/latex/required/tools/indentfirst.pdf
Binary files differ
diff --git a/macros/latex/required/tools/l3sys-query.dtx b/macros/latex/required/tools/l3sys-query.dtx
new file mode 100644
index 0000000000..3cba5da4a6
--- /dev/null
+++ b/macros/latex/required/tools/l3sys-query.dtx
@@ -0,0 +1,545 @@
+% \iffalse
+%% Source File: l3sys-query.dtx
+%% Copyright (C) 2024
+%%
+%% The LaTeX Project and any individual authors listed elsewhere
+%% in this file.
+%%
+%% This file may be distributed under the terms of the LPPL.
+%% See README for details.
+%
+%<*dtx>
+ \ProvidesFile{l3sys-query.dtx}
+%</dtx>
+%<package>\ProvidesPackage{l3sys-query}
+%<driver> \ProvidesFile{l3sys-query.drv}
+% \fi
+% \ProvidesFile{l3sys-query.dtx}
+ [2024-03-28 v1.0a LaTeX2e interface for l3sys file queries]
+%
+% \iffalse
+%<*driver>
+\documentclass{l3doc}%{ltxdoc}
+\begin{document}
+\DocInput{l3sys-query.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \GetFileInfo{l3sys-query.dtx}
+%
+% \title{\LaTeX\ document interface to the \pkg{l3sys-query} script:
+% System queries for LaTeX using Lua\thanks{This file
+% has version number \fileversion, last
+% revised \filedate.}}
+% \author{\LaTeX\ project}
+% \date{\filedate}
+%
+%
+% \maketitle
+%
+% \tableofcontents
+%
+% \section{Introduction}
+%
+% \TeX{} engines provide only very limited access to information about the system
+% they are used on: using primitives, one can for example get the size of a single
+% file, but not a list of files in a given location. For most documents, this is
+% not an issue as they are self-contained. However, for cases where
+% \enquote{dynamic} construction of parts of a document is needed based on file
+% lists or other system-dependent data, methods to obtain this from (restricted)
+% shell escape are desirable.
+%
+% Security considerations mean that directly querying the system shell is
+% problematic for general use. Instead, \emph{restricted} shell escape may be used
+% to get many details, provided a suitable tool is available to provide the
+% information in a platform-neutral and security-conscious way. The Java program
+% \texttt{texosquery}, written by Nicola Talbot, has been available for a number
+% of years to provide this facility. As well as file system insight,
+% \texttt{texosquery} also provides for example locale data and other system
+% information. However, the requirement for Java means that the script is not
+% automatically usable when a \TeX{} system is installed.
+%
+% The \LaTeX{} team have therefore provided a Lua-based script,
+% \texttt{l3sys-query}, which conforms to the security requirements of \TeX{} Live
+% using Lua to obtain the system information. This means that it can be used
+% \enquote{out of the box} across platforms. The facilities provided by
+% \texttt{l3sys-query} are more limited than \texttt{texosquery}, partly as some
+% information is available in modern \TeX{} systems using primitives, and partly
+% as the aim of \texttt{l3sys-query} is to provide information where there are
+% defined use cases. Requests for additional data interfaces are welcome.
+%
+% This package provides a document level \textit{Key-Value} interface
+% to The \texttt{l3sys-query} functionality, although as a convenience
+% it also summarizes the documentation for the L3 programming
+% interface layer (prvided by the \pkg{l3sys} module of
+% \pkg{l3kernel}, and of the command line Lua script
+% \texttt{l3sys-query} which is distributed separately and provides
+% the underlying functionality.
+%
+%
+%
+% \section{The document level key-value interface\label{sec:kv}}
+%
+% This provides an interface to \texttt{l3sys-query} based on
+% \pkg{l3keys} that allows the options to be specified and checked
+% individually. Internally the supplied key values are used to build
+% up the arguments to the commands described above in the L3
+% programming layer commands described in section~\ref{sec:expl3}
+%
+% Results containing path separators \emph{always}
+% use~|/|, irrespective of the platform in use.
+%
+%
+% \begin{function}
+% {\QueryWorkingDirectory}
+% \begin{syntax}
+% \cs{QueryWorkingDirectory} \Arg{result cmd}
+% \end{syntax}
+% Defines supplied command \meta{result cmd} to hold
+% the absolute path to the current working directory of the
+% \TeX\ system.
+% This is the directory (folder) from which \TeX\ was started, so usually
+% the location of the main document file.
+% \end{function}
+%
+% \begin{function}
+% {\QueryFiles, \QueryFilesTF}
+% \begin{syntax}
+% \cs{QueryFiles} \oarg{options} \Arg{spec} \Arg{function}
+% \cs{QueryFilesTF} \oarg{options} \Arg{spec} \Arg{function} \Arg{pre code} \Arg{empty list code}
+% \end{syntax}
+% This generates a file list based on the \meta{spec} and \meta{options}.
+% The command then applies \meta{function} to each item in the sequence of filenames.
+% The \meta{function} should be a macro body which will be passed the file path as |#1|.
+%
+% The TF version executes the T (\meta{pre code}) argument before iterating over the list
+% and the F (\meta{empty list code}) argument if the list is empty.
+% \end{function}
+%
+% Note that this interface in mapping directly over the sequence of
+% filenames does not allow some uses which are provided by the
+% programming interface described in the following section, which allows
+% the sequence to be manipulated before being used.
+%
+% The defined keys map very closely to the options of the
+% \texttt{l3sys-query} command which is described in
+% section~\ref{sec:lua}.
+%
+% \begin{itemize}
+% \item
+% The keys \texttt{recursive}, \texttt{ignore-case}, \texttt{reverse}, \texttt{pattern}
+% take no values and map directly to the command line options of the same name.
+%
+% \item
+% The key \texttt{sort} accepts the values \texttt{date} and \texttt{name}.
+%
+% \item
+% The key \texttt{type} accepts \texttt{d} or \texttt{f}.
+%
+% \item
+% The key \texttt{exclude} accepts a glob (or Lua pattern) matching
+% files to be excluded. The package arranges that the quoting of the
+% argument is automatically added if unrestricted shell escape is
+% enabled.
+%
+% \end{itemize}
+%
+% Within the main \meta{spec} argument, and the value of the \texttt{exclude} key,
+% the following characters may need special handling.
+% |~| may be used (which \texttt{kpathsea} uses to denote the users home directory).
+% |\%|, or at the top level |%|, may be used to produce a literal |%|
+% which may be especially useful if the \texttt{pattern} key is used
+% as \% is the escape character in Lua patterns.
+%
+% \subsection{Examples\label{sec:examples2e}}
+%
+% \begin{itemize}
+% \item
+% Include every |png| file in the current directory.
+% \begin{verbatim}
+% \QueryFiles{*.png}{\includegraphics{#1}\par}
+% \end{verbatim}
+%
+% \item
+% Input every \TeX\ file with a filename matching \texttt{chapter[0-9].tex}.
+% \begin{verbatim}
+% \QueryFiles[pattern]{chapter%d.*%.tex}{\input{#1}}
+% \end{verbatim}
+% \end{itemize}
+%
+% \section{The L3 programming layer interface\label{sec:expl3}}
+%
+% \begin{function}
+% {\sys_get_query:nN, \sys_get_query:nnN, \sys_get_query:nnnN}
+% \begin{syntax}
+% \cs{sys_get_query:nN} \Arg{cmd} \Arg{tl var}
+% \cs{sys_get_query:nnN} \Arg{cmd} \Arg{spec} \Arg{tl var}
+% \cs{sys_get_query:nnnN} \Arg{cmd} \Arg{options} \Arg{spec} \Arg{tl var}
+% \end{syntax}
+% Sets the \meta{tl var} to the information returned by the
+% \texttt{l3sys-query} \meta{cmd}, potentially supplying the \meta{options}
+% and \meta{spec} to the query call. The valid \meta{cmd} names are at present
+% \begin{itemize}
+% \item \texttt{pwd} Returns the absolute path to the current working directory
+% \item \texttt{ls} Returns a directory listing, using the \meta{spec} to
+% select files and applying the \meta{options} if given
+% \end{itemize}
+% The \meta{spec} should be a file glob and will automatically be passed to
+% the script without shell expansion.
+% \end{function}
+%
+% \begin{function}
+% {\sys_split_query:nN, \sys_split_query:nnN, \sys_split_query:nnnN}
+% \begin{syntax}
+% \cs{sys_split_query:nN} \Arg{cmd} \Arg{seq}
+% \cs{sys_split_query:nnN} \Arg{cmd} \Arg{spec} \Arg{seq}
+% \cs{sys_split_query:nnnN} \Arg{cmd} \Arg{options} \Arg{spec} \Arg{seq}
+% \end{syntax}
+% Works as described for \cs{sys_get_query:nnnN}, but sets the \meta{seq}
+% to contain one entry for each line returned by \texttt{l3sys-query}.
+% \end{function}
+%
+% \section{The \texttt{l3sys-query} Lua script\label{sec:lua}}
+% \subsection{The command line interface}
+%
+% The command line interface to
+% \begin{center}
+% \ttfamily
+% l3sys-query \meta{cmd} [\meta{option(s)}] [\meta{args}]
+% \end{center}
+% where \texttt{\meta{cmd}} can be one of the following:
+% \begin{itemize}[noitemsep]\ttfamily
+% \item ls
+% \item ls \meta{args}
+% \item pwd
+% \end{itemize}
+% The \meta{cmd} are described below. The result of the \meta{cmd} will be printed
+% to the terminal in an interactive run; in normal usage, this will be piped to
+% the calling \TeX{} process. Results containing path separators \emph{always}
+% use~|/|, irrespective of the platform in use.
+%
+% As well as these targets, the script recognizes the options
+% \begin{itemize}
+% \item |--exclude| Specification for directory entries to exclude
+% \item |--ignore-case| Ignores case when sorting directory listings
+% \item |--pattern| (|-p|) Treat the \meta{args} as Lua patterns rather
+% than converting from wildcards
+% \item |--recursive| (|-r|) Enables recursive searching during directory
+% listings
+% \item |--reverse| Causes sorting to go from highest to lowest rather
+% than lowest to highest
+% \item |--sort| Sets the method used to sort entries returned by |ls|
+% \item |--type| Selects the type of entry returned by |ls|
+% \end{itemize}
+% The action of these options on the appropriate \meta{cmd(s)} is detailed below.
+%
+% \subsubsection{\texttt{ls [\meta{args}]}}
+%
+% Lists the contents of one or more directories, in a manner somewhat reminiscent
+% of the Unix command |ls| or the Windows command |dir|. The exact nature of the
+% output will depend on the \meta{args}, if given, along with the prevailing
+% options. Note that the options names are inspired by ideas from the Unix
+% commands |ls| and |find| as well as the Windows command |dir|: they therefore do
+% not map directly to those of any one of the command line tools that they
+% somewhat mirror.
+%
+% When no \meta{args} are given, all entries in the current directory will be
+% listed, one per line in the output. This will include both files and
+% subdirectories. Each entry will include a path relative to the current
+% directory: for files \emph{in} the current directory, this will be |./|. The
+% order of results will be determined by the underlying operating system process:
+% unless requested \emph{via} an option, no sorting takes place.
+%
+% As standard, the \meta{args} are treated as a file/path name potentially
+% including |?| and |*| as wildcards, for example |*.png| or |file?.txt|.
+% \begin{verbatim}
+% l3sys-query ls '*.png'
+% \end{verbatim}
+% Some care is needed in preventing expansion of such wildcards by the shell or
+% \texttt{texlua} process: these are detailed in Section~\ref{sec:wildcard}. In
+% this section, |'| is used to indicate a character being used to suppress
+% expansion: this is for example normal on macOS and Linux.
+%
+% Removal of entries from the listing can be achieved using the |--exclude|
+% option, which should be given with a \meta{xarg}, for example
+% \begin{verbatim}
+% l3sys-query ls --exclude '*.bak' 'graphics/*'
+% \end{verbatim}
+% Directory entries starting |.| are traditionally hidden on Linux and macOS
+% systems: these \enquote{dot} entries are excluded from the output of
+% \texttt{l3sys-query}. The entries |.| and |..| for the current and parent
+% directory are also excluded from the results returned by \texttt{l3sys-query} as
+% they can always be assumed.
+%
+% For more complex matching, the \meta{args} can be treated as a Lua pattern using
+% the |--pattern| (|-p|) option; this also applies to the \meta{xarg} argument to
+% the |--exclude| option. For example, the equivalent to wildcard |*.png| could be
+% obtained using
+% \begin{verbatim}
+% l3sys-query ls --pattern '^.*%.png$'
+% \end{verbatim}
+%
+% The results returned by |ls| can be sorted using the |--sort| option. This can
+% be set to |none| (use the order from the file system: the default), |name| (sort
+% by file name) or |date| (sort by date last modified). The sorting order can be
+% reversed using |--reverse|. Sorting normally takes account of case: this can be
+% suppressed with the |--ignore-case| option.
+%
+% The listing can be filtered based on the type of entry using the |--type|
+% option. This takes a string argument, one of |d| (directory) or |f| (file).
+%
+% As standard, only the path specified as part of the \meta{args} is queried.
+% However, if the |--recursive| (|-r|) option is set, the query is applied within
+% all subdirectories. Subdirectories starting with~|.| (macOS and Linux hidden)
+% are excluded from recursion.
+%
+% For security reasons, only paths within the current working directory can be
+% queried, thus for example |graphics/*.png| will list all |png| files in the
+% |graphics| subdirectory, but |../graphics/*.png| will yield no output.
+%
+% \subsubsection{\texttt{pwd}}
+%
+% Returns the current working directory from which \texttt{l3sys-query} is run.
+% From within a \TeX{} run, this will (usually) be the directory containing the
+% main file, assuming a command such as
+% \begin{verbatim}
+% pdflatex main.tex
+% \end{verbatim}
+% The \texttt{pwd} command is unaffected by any options.
+%
+% \subsection{Spaces in arguments}
+%
+% Since \texttt{l3sys-query} is intended primarily for use with restricted shell
+% escape calls from \TeX{} processes, handling of spaces is unusual. It is not
+% possible to quote spaces in such a call, so for example whilst
+% \begin{verbatim}
+% l3sys-query ls "foo *"
+% \end{verbatim}
+% does work from the command prompt to find all files with names starting
+% \verb*|foo |, it would not work \emph{via} restricted shell escape. To
+% circumvent this, \texttt{l3sys-query} will collect all command line arguments
+% after any \meta{options}, and combine these as a space-separated \meta{args},
+% for example allowing
+% \begin{verbatim}
+% l3sys-query ls foo '*'
+% \end{verbatim}
+% to achieve the same result as the first example. The result is that the
+% \meta{args} will only every be interpreted by \texttt{l3sys-query} as a single
+% argument. It also means that spaces cannot be used at the start or end of the
+% argument, nor can multiple spaces appear between non-space arguments.
+%
+% \subsection{Wildcard expansion handling\label{sec:wildcard}}
+%
+% The handling of wildcards needs some further comment for those using
+% \texttt{l3sys-query} from the command line: the \pkg{expl3} interface described
+% in Section~\ref{sec:expl3} handles this aspect automatically for the user.
+%
+% On macOS and Linux, the shell normally expands globs, which include the
+% wildcards |*| and |?|, before passing arguments to the appropriate command.
+% This can be suppressed by surrounding the argument with |'| characters, hence
+% the formulation
+% \begin{verbatim}
+% l3sys-query ls '*.png'
+% \end{verbatim}
+% earlier.
+%
+% On Windows, the shell does no expansion, and thus arguments are passed as-is to
+% the relevant command. As such, |'| has no special meaning here. However, to
+% allow quoting of wildcards from the shell in a platform-neutral manner,
+% \texttt{l3sys-query} will strip exactly one set of |'| characters around each
+% argument before further processing.
+%
+% It is not possible to use |"| quotes at all in the argument passed to
+% \texttt{l3sys-query} from \TeX{}, as the \TeX{} system removes all |"| in
+% |\input| while handling space quoting.
+%
+% Restricted shell escape prevents shell expansion of wildcards entirely. On
+% non-Windows systems, it does this by ensuring that each argument is |'| quoted
+% to ensure further expansion. Thus a \TeX{} call such as
+% \begin{verbatim}
+% \input|"l3sys-query ls '*.png'"
+% \end{verbatim}
+% will work if |--shell-escape| is used as the argument is passed directly to the
+% shell, but in restricted shell escape will give an error such as:
+% \begin{verbatim}
+% ! I can't find file `"|l3sys-query ls '*.png'"'.
+% \end{verbatim}
+% The \LaTeX{} interfaces described above adjust the quoting used depending on the
+% |shell-escape| status.
+%
+%
+% \MaybeStop{}
+%
+% \section{The \LaTeXe\ package implementation}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ExplSyntaxOn
+%<@@=queryfiles>
+% \end{macrocode}
+%
+% The package should eventually work in restricted shell escape but will do
+% nothing useful if the process was started with |--no-shell-escape|.
+% \begin{macrocode}
+\sys_if_shell:F{
+ \PackageWarningNoLine{l3sys-query}
+ {Shell ~Escape ~is ~disabled.\MessageBreak All ~queries ~will ~return ~empty ~results}
+ }
+% \end{macrocode}
+%
+% \subsection{\cs{QueryWorkingDirectory}}
+% |\QueryWorkingDirectory| is a direct call to the |pwd| command provided by \texttt{l3sys-query}.
+% \begin{macrocode}
+\NewDocumentCommand\QueryWorkingDirectory {m} {
+ \sys_get_query:nN {pwd} #1
+}
+% \end{macrocode}
+%
+% \subsection{\cs{QueryFiles} and \cs{QueryFilesTF}}
+%
+% The declarations of these commands are done in two steps to allow catcode chanes
+% before the arguments are read. This allows the use of |%| and |^^| in patterns
+% at least if the command is not nested in another command argument. (|\%| may be used
+% to generate |%| in all cases).
+%
+% Variables for saving the current definition of |\%| and |~|.
+% \begin{macrocode}
+\tl_new:N\l_query_percent_tl
+\tl_new:N\l_query_tilde_tl
+% \end{macrocode}
+%
+% Allow |%| and |^^| at the top level.
+% \begin{macrocode}
+\NewDocumentCommand\QueryFiles {} {
+ \group_begin:
+ \char_set_catcode_other:N \%
+ \char_set_catcode_other:N \^
+ \QueryFiles_inner
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\char_set_catcode_active:N \~
+% \end{macrocode}
+%
+% \begin{macrocode}
+\NewDocumentCommand\QueryFiles_inner {O{}m}{
+ \group_end:
+ \tl_set:Nn\l_tmpa_tl{}
+ \cs_set_eq:NN \l_query_percent_tl \%
+ \cs_set_eq:NN \% \c_percent_str
+ \cs_set_eq:NN \l_query_tilde_tl ~
+ \cs_set_eq:NN ~ \c_tilde_str
+ \keys_set:nn{QueryFiles}{#1}
+ \exp_args:NnV\sys_split_query:nnnN {ls} \l_tmpa_tl {#2} \l_tmpa_seq
+ \cs_set_eq:NN \% \l_query_percent_tl
+ \cs_set_eq:NN ~ \l_query_tilde_tl
+ \seq_map_inline:Nn\l_tmpa_seq
+}
+% \end{macrocode}
+%
+% This duplicates rather than shares code so as to read the function
+% and TF arguments with normal catcode regime.
+% (This could probably be optimised.)
+% \begin{macrocode}
+\NewDocumentCommand\QueryFilesTF {} {
+ \group_begin:
+ \char_set_catcode_other:N \%
+ \QueryFilesTF_inner
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\NewDocumentCommand\QueryFilesTF_inner {O{}m}{
+ \group_end:
+ \tl_set:Nn\l_tmpa_tl{}
+ \cs_set_eq:NN \l_query_percent_tl \%
+ \cs_set_eq:NN \% \c_percent_str
+ \cs_set_eq:NN \l_query_tilde_tl ~
+ \cs_set_eq:NN ~ \c_tilde_str
+ \keys_set:nn{QueryFiles}{#1}
+ \exp_args:NnV\sys_split_query:nnnN {ls} \l_tmpa_tl {#2} \l_tmpa_seq
+ \cs_set_eq:NN \% \l_query_percent_tl
+ \cs_set_eq:NN ~ \l_query_tilde_tl
+ \seq_if_empty:NTF \l_tmpa_seq \use_iii:nnn \__queryfiles_aux:nnn
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\char_set_catcode_space:N \~
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new:Npn \__queryfiles_aux:nnn #1#2#3 {
+ #2
+ \seq_map_inline:Nn\l_tmpa_seq {#1}
+ }
+% \end{macrocode}
+%
+% Defining the keys. Most take no value and simply add a \texttt{l3sys-query} \texttt{-{}-}
+% option to the command linebeing constructed.
+% \begin{macrocode}
+\keys_define:nn {QueryFiles} {
+% \end{macrocode}
+%
+% \begin{macrocode}
+recursive .code:n =\tl_put_right:Nn \l_tmpa_tl {--recursive ~ } ,
+recursive .value_forbidden:n = true ,
+% \end{macrocode}
+%
+% \begin{macrocode}
+ignore-case .code:n =\tl_put_right:Nn \l_tmpa_tl {--ignore-case ~ } ,
+ignore-case .value_forbidden:n = true ,
+% \end{macrocode}
+%
+% \begin{macrocode}
+reverse .code:n =\tl_put_right:Nn \l_tmpa_tl {--reverse ~ } ,
+reverse .value_forbidden:n = true ,
+% \end{macrocode}
+%
+% \begin{macrocode}
+exclude .code:n =\tl_put_right:Ne \l_tmpa_tl {
+ --exclude ~
+ \sys_if_shell_restricted:F'
+ \exp_not:n{#1}
+ \sys_if_shell_restricted:F'
+ ~ } ,
+exclude .value_required:n = true ,
+% \end{macrocode}
+%
+% The |type| key checks the supplied value is valid |d| for directories
+% or |f| for files The default behaviour lists both.
+% \begin{macrocode}
+type .choices:nn = {d,f}
+ {\tl_put_right:Nn \l_tmpa_tl {--type ~ #1 ~ }} ,
+% \end{macrocode}
+%
+% The |sort| key checks the supplied value is valid |date| or |name|.
+% \begin{macrocode}
+sort .choices:nn = {date,name}
+{\tl_put_right:Nn \l_tmpa_tl {--sort ~ #1 ~ }} ,
+% \end{macrocode}
+%
+% \begin{macrocode}
+pattern .code:n =\tl_put_right:Nn \l_tmpa_tl {--pattern ~ } ,
+pattern .value_forbidden:n = true ,
+% \end{macrocode}
+%
+% \begin{macrocode}
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ExplSyntaxOff
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%
+% \Finale
+%
diff --git a/macros/latex/required/tools/l3sys-query.ins b/macros/latex/required/tools/l3sys-query.ins
new file mode 100644
index 0000000000..163eec0058
--- /dev/null
+++ b/macros/latex/required/tools/l3sys-query.ins
@@ -0,0 +1,76 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright (C) 1993-2024
+%% The LaTeX Project and any individual authors listed elsewhere
+%% in this file.
+%%
+%% This file is part of the Standard LaTeX `Tools Bundle'.
+%% -------------------------------------------------------
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% https://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% As this file contains legal notices, it is NOT PERMITTED to modify
+%% this file in any way that the legal information placed into
+%% generated files is changed (i.e., the files generated when the
+%% original file is executed). This restriction does not apply if
+%% (parts of) the content is reused in a different WORK producing its
+%% own generated files.
+%%
+%% The list of all files belonging to the `Tools Bundle' is
+%% given in the file `manifest.txt'.
+%%
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\input docstrip
+
+\keepsilent
+
+\usedir{tex/latex/tools}
+
+\preamble
+
+This is a generated file.
+
+The source is maintained by the LaTeX Project team and bug
+reports for it can be opened at https://latex-project.org/bugs/
+(but please observe conditions on bug reports sent to that address!)
+
+Copyright (C) 1993-2024
+The LaTeX Project and any individual authors listed elsewhere
+in this file.
+
+This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
+--------------------------------------------------------------------------
+
+It may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3c
+of this license or (at your option) any later version.
+The latest version of this license is in
+ https://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This file may only be distributed together with a copy of the LaTeX
+`Tools Bundle'. You may however distribute the LaTeX `Tools Bundle'
+without such generated files.
+
+The list of all files belonging to the LaTeX `Tools Bundle' is
+given in the file `manifest.txt'.
+
+\endpreamble
+
+\keepsilent
+
+\generate{\file{l3sys-query.sty}{\from{l3sys-query.dtx}{package}}}
+
+\endbatchfile
diff --git a/macros/latex/required/tools/l3sys-query.pdf b/macros/latex/required/tools/l3sys-query.pdf
new file mode 100644
index 0000000000..5ec3ca9511
--- /dev/null
+++ b/macros/latex/required/tools/l3sys-query.pdf
Binary files differ
diff --git a/macros/latex/required/tools/layout.dtx b/macros/latex/required/tools/layout.dtx
index 2798bd4f60..a2fc87a6a5 100644
--- a/macros/latex/required/tools/layout.dtx
+++ b/macros/latex/required/tools/layout.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2023
+% Copyright (C) 1993-2024
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/layout.pdf b/macros/latex/required/tools/layout.pdf
index 30ba99447f..634b7320a4 100644
--- a/macros/latex/required/tools/layout.pdf
+++ b/macros/latex/required/tools/layout.pdf
Binary files differ
diff --git a/macros/latex/required/tools/longtable-2020-01-07.sty b/macros/latex/required/tools/longtable-2020-01-07.sty
index f79c691e10..fc7c3f4290 100644
--- a/macros/latex/required/tools/longtable-2020-01-07.sty
+++ b/macros/latex/required/tools/longtable-2020-01-07.sty
@@ -1,4 +1,8 @@
%%
+%% This is an old release of `longtable.sty' used during rollback operations.
+%% Do not use this file directly.
+%% ==============================
+%%
%% This is file `longtable.sty',
%% generated with the docstrip utility.
%%
diff --git a/macros/latex/required/tools/longtable.dtx b/macros/latex/required/tools/longtable.dtx
index 2a61ab0c87..cc3a939e7a 100644
--- a/macros/latex/required/tools/longtable.dtx
+++ b/macros/latex/required/tools/longtable.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2023
+% Copyright (C) 1993-2024
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -27,8 +27,9 @@
\ProvidesFile{longtable.dtx}
%</dtx>
%<package>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
-%<package>\providecommand\DeclareRelease[3]{}
-%<package>\providecommand\DeclareCurrentRelease[2]{}
+%<package>
+% Try the 2020 version for any rollback before that date:
+%<package>\DeclareRelease{}{1994-06-01}{longtable-2020-01-07.sty}
%<package>
%<package>\DeclareRelease{v4.13}{2020-01-02}{longtable-2020-01-07.sty}
%<package>\DeclareCurrentRelease{}{2020-02-07}
@@ -37,7 +38,7 @@
%<driver> \ProvidesFile{longtable.drv}
% \fi
% \ProvidesFile{longtable.dtx}
- [2023-11-01 v4.19 Multi-page Table package (DPC)]
+ [2024-04-26 v4.20 Multi-page Table package (DPC)]
%
% \iffalse
%<*driver>
@@ -1048,6 +1049,14 @@
\if@twocolumn
\LT@err{longtable not in 1-column mode}\@ehc
\fi
+% \end{macrocode}
+%
+% \changes{v4.19}{2023/12/16}{Support for tagged PDF}
+% \begin{macrocode}
+ \UseTaggingSocket{tbl/vmode/begin}%
+% \end{macrocode}
+%
+% \begin{macrocode}
\begingroup
% \end{macrocode}
% Check for an optional argument.
@@ -1056,7 +1065,14 @@
% \end{macrocode}
% \end{macro}
%
+%
+%
% \begin{macro}{\LT@array}
+% \begin{macrocode}
+%<@@=tbl>
+\ExplSyntaxOn
+% \end{macrocode}
+%
% Start setting the alignment.
% Based on "\@array" from the \LaTeX\ kernel
% and the \package{array} package.
@@ -1066,7 +1082,43 @@
% so that "\caption" works correctly.
% \begin{macrocode}
\def\LT@array[#1]#2{%
- \refstepcounter{table}\stepcounter{LT@tables}%
+% \end{macrocode}
+%
+% With respect to tagging we have a complicated situation with
+% longtable. When at the begin the \cs{endhead},
+% \cs{endfirsthead}, \cs{endfoot} and \cs{endlastfoot} are used to
+% setup head and foot they create each a structure subtree with one or
+% more rows. From these structures we want to keep at most two (head
+% and foot) and move the foot to the end of the table. When the head
+% and foot boxes are (re)inserted on following pages we want to mark
+% them up as artifact with the exception of the head at the begin and
+% the foot box at the end.
+%
+% TODO: When a line is killed the structure subtree is there already
+% too and must be removed. If hard to do, then maybe at first warn if the
+% construction is used.
+%
+% \cs{LT@array} is executed in a group, so we can disable para-tagging here.
+% \changes{v4.19}{2023/12/16}{Support for tagged PDF}
+% \begin{macrocode}
+ \UseTaggingSocket{tbl/init}
+ \@kernel@refstepcounter{table}\stepcounter{LT@tables}
+% \end{macrocode}
+% The target is created rather late and a \cs{label} can come earlier,
+% so we have to define \cs{@currentHref} explicitly. We can't currently
+% assume that \cs{theHtable} is defined always.
+% \begin{macrocode}
+ \tl_gset:Ne \@currentHref {table.\cs_if_exist_use:N\theHtable}
+% \end{macrocode}
+%
+% \changes{v4.19}{2023/12/16}{Managing cell indexes}
+% \begin{macrocode}
+ \tbl_gzero_row_count:
+% \end{macrocode}
+%
+% \changes{v4.19}{2023/12/16}{Support for tagged PDF}
+% \begin{macrocode}
+ \UseTaggingSocket{tbl/longtable/init}
% \end{macrocode}
% Set up the glue around the table if an optional argument given.
% \begin{macrocode}
@@ -1101,17 +1153,18 @@
% here so that you can load the \package{array} package before or after
% \package{longtable}.
% \begin{macrocode}
- \let\LT@@tabarray\@tabarray
- \let\LT@@hl\hline
+ \let\LT@@@@tabarray\@tabarray
+ \let\LT@@@@hl\hline
\def\@tabarray{%
- \let\hline\LT@@hl
+ \let\hline\LT@@@@hl
% \end{macrocode}
%\begin{verbatim}
% \let\multicolumn\LT@mcol
%\end{verbatim}
% \begin{macrocode}
- \LT@@tabarray}%
- \let\\\LT@tabularcr\let\tabularnewline\\%
+ \LT@@@@tabarray}%
+ \let\\\LT@tabularcr
+ \let\tabularnewline\\%
\def\newpage{\noalign{\break}}%
% \end{macrocode}
% \changes{v4.05}{1996/11/12}
@@ -1128,8 +1181,8 @@
% \end{macrocode}
%
% \changes{v4.08}{1998/01/20}
-% {Move \cs{@endpbox} definition earlier and define \cs{@@endpbox}
-% and \cs{@@startpbox} for non-array case. tools/2736}
+% {Move \cs{@endpbox} definition earlier and define \cs{@@@@endpbox}
+% and \cs{@@@@startpbox} for non-array case. tools/2736}
% \begin{macrocode}
\let\@endpbox\LT@endpbox
% \end{macrocode}
@@ -1142,8 +1195,8 @@
\let\@acol\@tabacol
\let\@classz\@tabclassz \let\@classiv\@tabclassiv
\def\@startpbox{\vtop\LT@startpbox}%
- \let\@@startpbox\@startpbox
- \let\@@endpbox\@endpbox
+ \let\@@@@startpbox\@startpbox
+ \let\@@@@endpbox\@endpbox
\let\LT@LL@FM@cr\@tabularcr
\else
% \end{macrocode}
@@ -1172,6 +1225,11 @@
\begingroup
\@mkpream{#2}%
% \end{macrocode}
+%
+% \changes{v4.19}{2023/12/16}{Managing cell indexes}
+% \begin{macrocode}
+ \tbl_count_table_cols:
+% \end{macrocode}
% We need to rename "\@preamble" here as F.M.'s scheme uses
% "\global", and we may need to nest "\@mkpream", eg for
% "\multicolumn"
@@ -1180,6 +1238,11 @@
% \begin{macrocode}
\xdef\LT@bchunk{%
% \end{macrocode}
+% We aren't inside any row when a chunk starts.
+% \changes{v4.19}{2023/12/16}{Managing cell indexes}
+% \begin{macrocode}
+ \tbl_inbetween_rows:
+% \end{macrocode}
% \changes{v4.00}{1996/04/08}
% {(DK) Increment Chunk counter}
% \begin{macrocode}
@@ -1205,7 +1268,21 @@
% \begin{macrocode}
\tabskip\LTleft \noexpand\halign to\hsize\bgroup
% \tabskip\LTleft\halign to\hsize\bgroup
- \tabskip\z@ \@arstrut \@preamble \tabskip\LTright \cr}%
+ \tabskip\z@ \@arstrut
+% \end{macrocode}
+% Insert the tagging socket to start the row and initialize the cell
+% data for the row.
+% \changes{v4.19}{2023/12/16}{Support for tagged PDF}
+% \begin{macrocode}
+ \UseTaggingSocket{tbl/row/begin}%
+% \end{macrocode}
+%
+% \changes{v4.19}{2023/12/16}{Managing cell indexes}
+% \begin{macrocode}
+ \tbl_init_cell_data_for_row:
+% \end{macrocode}
+% \begin{macrocode}
+ \@preamble \tabskip\LTright \cr}%
\endgroup
% \end{macrocode}
% Find out how many columns we have (store in "\LT@cols").
@@ -1220,11 +1297,57 @@
% A few more internal commands for \env{longtable}.
% \begin{macrocode}
\m@th\let\par\@empty
- \everycr{}\lineskip\z@\baselineskip\z@
+% \end{macrocode}
+% Tagging socket and conditional
+% \begin{macrocode}
+ \everycr{%
+ \noalign{%
+% \end{macrocode}
+% In \pkg{longtable} we have a bunch of extra \cs{cr}s that are
+% executed whenever a chunk ends. In that case they should not
+% increment the main row counter, sigh.
+%
+% TODO: At the moment this tracing still exposes the internal row counter!
+% \begin{macrocode}
+ \@@_trace:n {--longtable-->~chunk~row:~ \the\LT@rows \space
+ row:~ \the\g_@@_row_int \space
+ column:~ \the\g_@@_col_int
+ }
+% \end{macrocode}
+%
+% \changes{v4.19}{2023/12/16}{Support for tagged PDF}
+% \begin{macrocode}
+ \tbl_if_row_was_started:T
+ {
+ \UseTaggingSocket{tbl/row/end}
+% \end{macrocode}
+% The next setting prevents any of the additional \cs{cr}s at the end of the
+% chunk to add another /TR. Then once we really start a new chunk
+% it gets incremented so\ldots
+% \changes{v4.19}{2023/12/16}{Managing cell indexes}
+% \begin{macrocode}
+ \tbl_inbetween_rows:
+ }
+% \end{macrocode}
+% And for the same reason such \cs{cr}s should not increment the
+% main row counter (but it has to be incremented after the preamble
+% of a chunk), so here we test against \cs{LT@rows} which is
+% \cs{LTchunksize} at the end of a chunk.
+% \changes{v4.19}{2023/12/16}{Managing cell indexes}
+% \begin{macrocode}
+ \int_compare:nNnT \LT@rows < \LTchunksize
+ { \tbl_gincr_row_count: } % next is row about to start
+ }%
+ }%
+% \end{macrocode}
+% \begin{macrocode}
+ \lineskip\z@\baselineskip\z@
% \end{macrocode}
% Start the first chunk.
% \begin{macrocode}
\LT@bchunk}
+\ExplSyntaxOff
+%<@@=>
% \end{macrocode}
% \end{macro}
%
@@ -1251,6 +1374,11 @@
% force the page-breaker to wake up. The second "\endgraf" is there so
% that "\pagetotal" is updated and so takes "\LTpre" into account.
% \begin{macrocode}
+%<@@=tbl>
+\ExplSyntaxOn
+% \end{macrocode}
+%
+% \begin{macrocode}
\def\LT@start{%
\let\LT@start\endgraf
\endgraf\penalty\z@\vskip\LTpre\endgraf
@@ -1334,7 +1462,7 @@
% \changes{v3.14}{1995/05/02}
% {Set \cs{@colroom}, for tools/1584}
% \begin{macrocode}
- \global\@colroom\@colht
+ \global\@colroom\@colht
% \end{macrocode}
% If the foot is non empty, reduce the "\vsize" and "\@colroom"
% accordingly.
@@ -1342,24 +1470,46 @@
% {Rearrange vertical space tests for tools/3512 (floats on same page)}
% \begin{macrocode}
\ifvoid\LT@foot\else
-% \advance\vsize-\ht\LT@foot
\global\advance\vsize-\ht\LT@foot
\global\advance\@colroom-\ht\LT@foot
\dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@
\maxdepth\z@
\fi
% \end{macrocode}
+%
+% \begin{macrocode}
+ \MakeLinkTarget{table}
+% \end{macrocode}
% Put the table head on the page, and then switch to the new output
% routine.
% \changes{v4.11}{2004/02/01}
% {\cs{nobreak}, for tools/3484}
% \begin{macrocode}
\ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi\nobreak
+% \end{macrocode}
+%
+% \changes{v4.19}{2023/12/16}{Support for tagged PDF}
+% \begin{macrocode}
+ \UseTaggingSocket{tbl/longtable/head}
+% \end{macrocode}
+%
+% \begin{macrocode}
\output{\LT@output}}
+\ExplSyntaxOff
+%<@@=>
% \end{macrocode}
% \end{macro}
%
+%
+%
+%
% \begin{macro}{\endlongtable}
+%
+% \begin{macrocode}
+%<@@=tbl>
+\ExplSyntaxOn
+% \end{macrocode}
+%
% Called by "\end{longtable}".
% \begin{macrocode}
\def\endlongtable{%
@@ -1370,11 +1520,23 @@
% been shortened, or the table numbering has gone awry). In that case
% we at least start collecting valid new information with the last
% chunk of this table, by removing the width constraint.
+% \changes{v4.19}{2023/12/16}{Support for tagged PDF}
+% \begin{macrocode}
+ \tbl_crcr:n {endlongtable}
+% \end{macrocode}
+%
% \changes{v4.01}{1996/04/11}
% {(DPC) use \cs{noalign} to sneak in \cs{LT@entry@chop}}
% \begin{macrocode}
- \crcr
\noalign{%
+% \end{macrocode}
+%
+% \changes{v4.19}{2023/12/16}{Support for tagged PDF}
+% \begin{macrocode}
+ \UseTaggingSocket{tbl/longtable/finalize}
+% \end{macrocode}
+%
+% \begin{macrocode}
\let\LT@entry\LT@entry@chop
\xdef\LT@save@row{\LT@save@row}}%
\LT@echunk
@@ -1414,10 +1576,10 @@
% \changes{v4.04}{1996/05/24}
% {Use \cs{LT@final@warn}}
% \begin{macrocode}
- \ifx\LT@save@row\LT@@save@row
+ \ifx\LT@save@row\LT@@@@save@row
\else
- \LT@warn{Column \@width s have changed\MessageBreak
- in table \thetable}%
+ \LT@warn{Column~ widths~ have~ changed\MessageBreak
+ in~ table~ \thetable}%
\LT@final@warn
\fi
% \end{macrocode}
@@ -1449,7 +1611,15 @@
% \end{macrocode}
% Footnotes. As done in the \package{multicol} package.
% \begin{macrocode}
- \ifvoid\footins\else\insert\footins{}\fi}
+ \ifvoid\footins\else\insert\footins{}\fi
+% \end{macrocode}
+%
+% \changes{v4.19}{2023/12/16}{Support for tagged PDF}
+% \begin{macrocode}
+ \UseTaggingSocket{tbl/vmode/end}%
+}
+\ExplSyntaxOff
+%<@@=>
% \end{macrocode}
% \end{macro}
%
@@ -1518,6 +1688,10 @@
\protected\def\LT@tabularcr{%
\relax\iffalse{\fi\ifnum0=`}\fi
\@ifstar
+% \end{macrocode}
+% TODO: as we replace crcr later in one case, we probably have to
+% implement some further logic there!
+% \begin{macrocode}
{\def\crcr{\LT@crcr\noalign{\nobreak}}\let\cr\crcr
\LT@t@bularcr}%
{\LT@t@bularcr}}
@@ -1544,8 +1718,13 @@
% \end{macrocode}
% \end{macro}
%
+%
+%
+%
% \begin{macro}{\LT@t@bularcr}
% \begin{macrocode}
+%<@@=tbl>
+\ExplSyntaxOn
\def\LT@t@bularcr{%
% \end{macrocode}
% Increment the counter, and do \env{tabular}'s "\\" or finish the
@@ -1555,6 +1734,13 @@
% \begin{macrocode}
\global\advance\LT@rows\@ne
\ifnum\LT@rows=\LTchunksize
+% \end{macrocode}
+% At the end of the chunk \verb=\\= is doing something special and
+% so we lose \verb=\tbl_count_missing_cells:n=. Below is about the
+% right place to add it do this code branch.
+% \changes{v4.19}{2023/12/16}{Managing cell indexes}
+% \begin{macrocode}
+ \tbl_count_missing_cells:n {echunk}
\gdef\LT@setprevdepth{%
\prevdepth\z@
\global\let\LT@setprevdepth\relax}%
@@ -1563,6 +1749,8 @@
\ifnum0=`{}\fi
\expandafter\LT@LL@FM@cr
\fi}
+\ExplSyntaxOff
+%<@@=>
% \end{macrocode}
% \end{macro}
%
@@ -1943,7 +2131,9 @@
% This code is based on "\cline". Two copies of the line are produced,
% as described above.
% \begin{macrocode}
-\def\LT@@hline{%
+%<@@=tbl>
+\ExplSyntaxOn
+\def\LT@@@@hline{%
\ifx\@let@token\hline
\global\let\@gtempa\@gobble
\gdef\LT@sep{\penalty-\@medpenalty\vskip\doublerulesep}%
@@ -1954,11 +2144,25 @@
\ifnum0=`{\fi}%
\multispan\LT@cols
\unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr
- \noalign{\LT@sep}%
+% \end{macrocode}
+% Don't update the row counter, or rather undo the update done in \cs{everycr}:
+% \changes{v4.19}{2023/12/16}{Managing cell indexes}
+% \begin{macrocode}
+ \noalign{
+ \tbl_gdecr_row_count:
+ \LT@sep}
\multispan\LT@cols
\unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr
- \noalign{\penalty\@M}%
+% \end{macrocode}
+% Same here.
+% \changes{v4.19}{2023/12/16}{Managing cell indexes}
+% \begin{macrocode}
+ \noalign{
+ \tbl_gdecr_row_count:
+ \penalty\@M}
\@gtempa}
+\ExplSyntaxOff
+%<@@=>
% \end{macrocode}
% \end{macro}
%
@@ -2049,13 +2253,15 @@
% \begin{macro}{\LT@output}
% Actually this is not so bad, with FM leading the way.
% \begin{macrocode}
+%<@@=tbl>
+\ExplSyntaxOn
\def\LT@output{%
\ifnum\outputpenalty <-\@Mi
\ifnum\outputpenalty > -\LT@end@pen
% \end{macrocode}
% If this was a float or a marginpar we complain.
% \begin{macrocode}
- \LT@err{floats and marginpars not allowed in a longtable}\@ehc
+ \LT@err{floats~ and~ marginpars~ not~ allowed~ in~ a~ longtable}\@ehc
\else
% \end{macrocode}
% We have reached the end of the table, on the scroll at least,
@@ -2103,6 +2309,13 @@
% \begin{macrocode}
\unvbox\z@\box\ifvoid\LT@lastfoot\LT@foot\else\LT@lastfoot\fi
% \end{macrocode}
+% Handle foot box when tagging:
+%
+% \changes{v4.19}{2023/12/16}{Support for tagged PDF}
+% \begin{macrocode}
+ \UseTaggingSocket{tbl/longtable/foot}
+% \end{macrocode}
+%
% End of "\ifnum\outputpenalty > -\LT@end@pen".
% \begin{macrocode}
\fi
@@ -2114,6 +2327,15 @@
% If we have not reached the end of the table,
% \begin{macrocode}
\setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}%
+% \end{macrocode}
+%
+% Handle foot box when tagging:
+% \changes{v4.19}{2023/12/16}{Support for tagged PDF}
+% \begin{macrocode}
+ \UseTaggingSocket{tbl/longtable/foot}
+% \end{macrocode}
+%
+% \begin{macrocode}
\@makecol
\@outputpage
% \end{macrocode}
@@ -2133,8 +2355,15 @@
% \begin{macrocode}
\fi}
% \end{macrocode}
+%
+% \begin{macrocode}
+\ExplSyntaxOff
+%<@@=>
+% \end{macrocode}
% \end{macro}
%
+%
+%
% \subsection{Commands for the table head and foot}
%
% \begin{macro}{\LT@end@hd@ft}
@@ -2142,20 +2371,86 @@
% box specified by "#1". Issue an error if the table has already
% started. Then start a new chunk.
% \begin{macrocode}
+%<@@=tbl>
+\ExplSyntaxOn
\def\LT@end@hd@ft#1{%
+% \end{macrocode}
+%
+% This command is used to store the head and foot boxes.
+% We need to retrieve and store the row so that we can clean
+% up the structure in the finalize code.
+%
+% To handle missing columns in the header we need this:
+% \changes{v4.19}{2023/12/16}{Managing cell indexes}
+% \begin{macrocode}
+ \tbl_if_row_was_started:TF
+ {
+% \end{macrocode}
+% TODO: This is exposing internal counters, so it should be encapsulated
+% in some interface command (but I'm not sure what that should be
+% called, so not done yet.
+% \changes{v4.19}{2023/12/16}{Managing cell indexes}
+% \begin{macrocode}
+ \tbl_count_missing_cells:n {head/foot}
+ \int_step_inline:nn
+ { \LT@rows + 1 }
+ {
+ \seq_gput_left:ce
+ {g_@@_\cs_to_str:N #1 _rows_seq }
+ { \int_eval:n {\g_@@_row_int + 1 - ##1 } }
+ }
+% \end{macrocode}
+% We also have to set the chunk rows to its max value before
+% calling \cs{LTechunk} so that we don't get extra increments of
+% the main row counter due to \cs{everycr}.
+% \begin{macrocode}
+ \int_gset:Nn \LT@rows { \LTchunksize }
+ }
+% \end{macrocode}
+
+% If we are still in column zero then we had an empty \cs{endhead}
+% and so making any assignment, etc., would start a row --- something we don't want.
+% To get out of this trap we run \cs{crcr} (which would normally
+% come inside \cs{LT@echunk}. That will then trigger \cs{everycr}
+% and update row counter unnecessarily, but now we have a defined state, so
+% we can use \cs{noalign} to undo that.
+% We also change \cs{LT@rows} so that further \cs{cr}s do not do
+% any harm (as explained above.
+%
+% The \cs{crcr} inside \cs{LT@echunk} will be bypassed in that case
+% as we have just executed a \cs{crcr} and are still in scanning modus for
+% \cs{omit} or \cs{noalign}.
+% \begin{macrocode}
+ {
+ \crcr
+ \noalign{
+% \end{macrocode}
+%
+% \changes{v4.19}{2023/12/16}{Managing cell indexes}
+% \begin{macrocode}
+ \tbl_gdecr_row_count: % undo the increment
+ \int_gset:Nn \LT@rows { \LTchunksize }
+ }
+ }
\LT@echunk
% \end{macrocode}
% Changed from "\relax" to "\endgraf" at V3.04, see "\LT@start".
% \begin{macrocode}
\ifx\LT@start\endgraf
\LT@err
- {Longtable head or foot not at start of table}%
- {Increase LTchunksize}%
+ {Longtable~ head~ or~ foot~ not~ at~ start~ of~ table}%
+ {Increase~ LTchunksize}%
\fi
\setbox#1\box\z@
+ \@@_trace:n {-->>~ Saving~\noexpand#1}
\LT@get@widths
\LT@bchunk}
% \end{macrocode}
+%
+% \begin{macrocode}
+\ExplSyntaxOff
+%<@@=>
+% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\endfirsthead}
@@ -2255,6 +2550,24 @@
% \end{macrocode}
% \end{macro}
%
+%
+%
+%
+%
+% Some variables need for the tagging support.
+% \begin{macrocode}
+%<@@=tbl>
+\ExplSyntaxOn
+ \seq_new:N \g_@@_LT@firsthead_rows_seq
+ \seq_new:N \g_@@_LT@head_rows_seq
+ \seq_new:N \g_@@_LT@lastfoot_rows_seq
+ \seq_new:N \g_@@_LT@foot_rows_seq
+\ExplSyntaxOff
+%<@@=>
+% \end{macrocode}
+%
+%
+%
% \begin{macrocode}
%</package>
% \end{macrocode}
diff --git a/macros/latex/required/tools/longtable.ins b/macros/latex/required/tools/longtable.ins
index 5c3ad27063..60b7461571 100644
--- a/macros/latex/required/tools/longtable.ins
+++ b/macros/latex/required/tools/longtable.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2023
+%% Copyright (C) 1993-2024
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -45,7 +45,7 @@ The source is maintained by the LaTeX Project team and bug
reports for it can be opened at https://latex-project.org/bugs/
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2023
+Copyright (C) 1993-2024
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/required/tools/longtable.pdf b/macros/latex/required/tools/longtable.pdf
index 406dee682f..4a3b54a16f 100644
--- a/macros/latex/required/tools/longtable.pdf
+++ b/macros/latex/required/tools/longtable.pdf
Binary files differ
diff --git a/macros/latex/required/tools/multicol-2017-04-11.sty b/macros/latex/required/tools/multicol-2017-04-11.sty
index 9e346656bb..bdebc93db9 100644
--- a/macros/latex/required/tools/multicol-2017-04-11.sty
+++ b/macros/latex/required/tools/multicol-2017-04-11.sty
@@ -1,5 +1,7 @@
%%
-%% This is an old release of `multicol.sty',
+%% This is an old release of `multicol.sty' used during rollback operations.
+%% Do not use this file directly.
+%% ==============================
%%
%% The source is maintained by the LaTeX Project team and bug
%% reports for it can be opened at http://latex-project.org/bugs.html
diff --git a/macros/latex/required/tools/multicol-2019-10-01.sty b/macros/latex/required/tools/multicol-2019-10-01.sty
index 221f62f68e..fc8bda5479 100644
--- a/macros/latex/required/tools/multicol-2019-10-01.sty
+++ b/macros/latex/required/tools/multicol-2019-10-01.sty
@@ -1,6 +1,7 @@
-%% This is a rollback file for multicol to the last version within release 2019-10-01
-%% =======================
%%
+%% This is an old release of `multicol.sty' used during rollback operations.
+%% Do not use this file directly.
+%% ==============================
%%
%% This is file `multicol.sty',
%% generated with the docstrip utility.
@@ -101,14 +102,6 @@
%%
%% Frank.Mittelbach@latex-project.org
%%
-\NeedsTeXFormat{LaTeX2e}[2018-04-01]
-
-\providecommand\DeclareRelease[3]{}
-\providecommand\DeclareCurrentRelease[2]{}
-
-\DeclareRelease{}{2017-04-11}{multicol-2017-04-11.sty}
-\DeclareCurrentRelease{}{2018-04-01}
-
\ProvidesPackage{multicol}
[2019/12/09 v1.8y multicolumn formatting (FMi)]
%%
diff --git a/macros/latex/required/tools/multicol.dtx b/macros/latex/required/tools/multicol.dtx
index 2676d03aa1..4d86448002 100644
--- a/macros/latex/required/tools/multicol.dtx
+++ b/macros/latex/required/tools/multicol.dtx
@@ -86,11 +86,10 @@
%<*dtx>
\ProvidesFile{multicol.dtx}
%</dtx>
-%<package>\NeedsTeXFormat{LaTeX2e}[2018-04-01]
-%<package>
-%<package>\providecommand\DeclareRelease[3]{}
-%<package>\providecommand\DeclareCurrentRelease[2]{}
%<package>
+% For any rollback before 2017 load the 2017 version and hope for the best:
+%<package>\DeclareRelease{}{1994-06-01}{multicol-2017-04-11.sty}
+%
%<package>\DeclareRelease{}{2017-04-11}{multicol-2017-04-11.sty}
%<package>\DeclareRelease{v1.8}{2019-10-01}{multicol-2019-10-01.sty}
%<package>\DeclareCurrentRelease{}{2021-11-15}
@@ -99,10 +98,10 @@
%<driver> \ProvidesFile{multicol.drv}
% \fi
% \ProvidesFile{multicol.dtx}
- [2023/03/30 v1.9f multicolumn formatting (FMi)]
+ [2024/05/23 v1.9h multicolumn formatting (FMi)]
+%
%
%
-%%
%
% \changes{v1.9c}{2021/11/30}{Added rollback to v1.8}
% \changes{v1.5n}{1997/06/05}{Applied improvement of documentation,
@@ -919,9 +918,22 @@
% And we don't show macro names in the margin.
% \begin{macrocode}
\setcounter{IndexColumns}{4}
-\let\DescribeMacro\SpecialUsageIndex
-\let\DescribeEnv\SpecialEnvIndex
-\renewcommand\PrintMacroName[1]{}
+% \end{macrocode}
+%
+% The following redefinitions have to be moved until after the
+% preamble because version 3 of \pkg{doc} resets them after the
+% premable (this is tmp, because \pkg{hypdoc} is not yet
+% integrated, but as we all know, tmp solutions have a tendency to
+% survive for a long time\ldots).
+% \begin{macrocode}
+\AddToHook{begindocument}{%
+ \let\DescribeMacro\SpecialUsageIndex
+ \let\DescribeEnv\SpecialEnvIndex
+ \renewcommand\PrintMacroName[1]{}%
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
\CodelineIndex
%\DisableCrossrefs % Partial index
\RecordChanges % Change log
@@ -1082,7 +1094,7 @@
% better test for this situation. Otherwise, we will get a \TeX{}
% stack overflow as this would generate a self-referencing definition.
% \changes{v1.6e}{2004/02/14}{Avoid self-referencing definition of
-% \cs{@footnotetext} (pr/3618)}.
+% \cs{@footnotetext} (pr/3618)}
% \begin{macrocode}
\ifx\@footnotetext\mult@footnotetext
\else
@@ -2376,7 +2388,7 @@
% If |\raggedcolumns| is in force we add a |vfill| at the bottom by
% unboxing the split box.
% But we need to unbox anyway to ensure that at the end of the box
-% we do not have unwanted space. This can sneak in in certain
+% we do not have unwanted space. This can sneak in, in certain
% situations, for example, if two lists follow each other and we
% break between them. While such space is usually zero it still has
% an effect because it hides depth of the last line in the column
@@ -2925,7 +2937,11 @@
% We start by setting the kept marks by updating them with any
% marks from this box. This has to be done \emph{before} we add a
% penalty of $-10000$ to the top of the box, otherwise only an
-% empty box will be considered.
+% empty box will be considered. But even that is not enough: the box
+% may contain \cs{columnbreak}s in which case doing some artifical
+% splitting to get the marks out still fails to see all marks
+% unless we take some special precaution in \cs{get@keptmarks}
+% (which is now done).
% \changes{v1.5h}{1994/08/26}{Get kept marks first}
% \begin{macrocode}
\get@keptmarks\mult@box
@@ -3751,8 +3767,15 @@
% everything is split off. As a result |\splitfirstmark| and
% |\splitbotmark| will contain the first and last mark in the box
% respectively.
+%
+% Unfortunately, a simple \cs{vsplit} is not enough if the material
+% contains forced breaks in that case we first have to get rid of
+% those which is why we do this work in a separate macro that can
+% call itself recursively.
+% \changes{v1.9g}{2023/11/10}{Get rid of forced breaks for mark
+% extraction (gh/1130)}
% \begin{macrocode}
- \setbox#1\vsplit#1to\maxdimen
+ \mc@get@all@box@marks #1%
% \end{macrocode}
% Therefore we can now set the kept marks which is a global
% operation and afterwards close the group. This will restore the
@@ -3773,6 +3796,29 @@
% \end{macro}
%
%
+% \begin{macro}{\mc@get@all@box@marks}
+% This macro splits a box to \cs{maxdimen} in order to get at the
+% marks inside. If it turns out that we have a remainder after the
+% split (e.g., if there was a \cs{columnbreak} in the material) we
+% stitch the two parts together again (which omits the forced
+% break) and recurse. Eventually, everything is split off and the
+% split marks will then have the appropriate values.
+% \changes{v1.9g}{2023/11/10}{Get rid of forced breaks for mark
+% extraction (gh/1130)}
+% \begin{macrocode}
+\def\mc@get@all@box@marks #1{%
+ \setbox\@tempboxa\vsplit#1to\maxdimen
+ \ifvoid#1\else
+ \setbox#1\vbox{\unvbox\@tempboxa \unvbox#1}%
+ \mc@get@all@box@marks #1%
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+%
% \begin{macro}{\set@keptmarks}
% The macro |\set@keptmarks| is responsible for setting
% |\kept@firstmark| and |\kept@botmark|, by checking the current
diff --git a/macros/latex/required/tools/multicol.ins b/macros/latex/required/tools/multicol.ins
index fa561e0bb1..7a7ef27d24 100644
--- a/macros/latex/required/tools/multicol.ins
+++ b/macros/latex/required/tools/multicol.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2023
+%% Copyright (C) 1993-2024
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -45,7 +45,7 @@ The source is maintained by the LaTeX Project team and bug
reports for it can be opened at https://latex-project.org/bugs/
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2023
+Copyright (C) 1993-2024
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/required/tools/multicol.pdf b/macros/latex/required/tools/multicol.pdf
index 0295b9ab59..b3d165838a 100644
--- a/macros/latex/required/tools/multicol.pdf
+++ b/macros/latex/required/tools/multicol.pdf
Binary files differ
diff --git a/macros/latex/required/tools/rawfonts.dtx b/macros/latex/required/tools/rawfonts.dtx
index 4b930f3ea7..3ffa2032c3 100644
--- a/macros/latex/required/tools/rawfonts.dtx
+++ b/macros/latex/required/tools/rawfonts.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2023
+% Copyright (C) 1993-2024
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/rawfonts.pdf b/macros/latex/required/tools/rawfonts.pdf
index 2371e70bd6..ab2b851ab6 100644
--- a/macros/latex/required/tools/rawfonts.pdf
+++ b/macros/latex/required/tools/rawfonts.pdf
Binary files differ
diff --git a/macros/latex/required/tools/shellesc.dtx b/macros/latex/required/tools/shellesc.dtx
index aa707fe550..8a556de922 100644
--- a/macros/latex/required/tools/shellesc.dtx
+++ b/macros/latex/required/tools/shellesc.dtx
@@ -1,6 +1,6 @@
% \iffalse
%% Source File: shellesc.dtx
-%% Copyright (C) 2015-2023
+%% Copyright (C) 2015-2024
%%
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
diff --git a/macros/latex/required/tools/shellesc.pdf b/macros/latex/required/tools/shellesc.pdf
index e40b2a84b6..10ad7eb112 100644
--- a/macros/latex/required/tools/shellesc.pdf
+++ b/macros/latex/required/tools/shellesc.pdf
Binary files differ
diff --git a/macros/latex/required/tools/showkeys-2014-10-28.sty b/macros/latex/required/tools/showkeys-2014-10-28.sty
index b4d7b19028..9f465dff5c 100644
--- a/macros/latex/required/tools/showkeys-2014-10-28.sty
+++ b/macros/latex/required/tools/showkeys-2014-10-28.sty
@@ -1,4 +1,8 @@
%%
+%% This is an old release of `showkeys.sty' used during rollback operations.
+%% Do not use this file directly.
+%% ==============================
+%%
%% This is file `showkeys.sty',
%% generated with the docstrip utility.
%%
diff --git a/macros/latex/required/tools/showkeys.dtx b/macros/latex/required/tools/showkeys.dtx
index c90b3863e1..b6717950a7 100644
--- a/macros/latex/required/tools/showkeys.dtx
+++ b/macros/latex/required/tools/showkeys.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2023
+% Copyright (C) 1993-2024
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -22,16 +22,15 @@
% \fi
% \iffalse
%% File: showkeys.dtx Copyright (C) 1992-1997 David Carlisle
-%% File: showkeys.dtx Copyright (C) 2006-2019 David Carlisle, LaTeX Project
+%% File: showkeys.dtx Copyright (C) 2006-2024 David Carlisle, LaTeX Project
%
%<*dtx>
\ProvidesFile{showkeys.dtx}
%</dtx>
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>
-%<package>\providecommand\DeclareRelease[3]{}
-%<package>\providecommand\DeclareCurrentRelease[2]{}
-%<package>
+% For every rollback request before 2022 use the 2014 version:
+%<package>\DeclareRelease{}{1994-06-01}{showkeys-2014-10-28.sty}
%<package>\DeclareRelease{}{2014-10-28}{showkeys-2014-10-28.sty}
%<package>\DeclareCurrentRelease{}{2022-06-01}
%<package>
@@ -39,7 +38,7 @@
%<driver> \ProvidesFile{showkeys.drv}
% \fi
% \ProvidesFile{showkeys.dtx}
- [2023/07/08 v3.19 Show cite and label keys (DPC, MH)]
+ [2024/05/23 v3.21 Show cite and label keys (DPC, MH)]
%
% \iffalse
%<*driver>
@@ -417,6 +416,8 @@
% \end{macrocode}
% \changes{v3.02}{1995/03/17}
% {New code for `in label' case.}
+% \changes{v3.20}{2023/12/16}
+% {Avoid adding an extra box layer github/1123}
% If the |\label| is straight after |\item| (|\bibitem| is handled by
% this case as well) then the item label has not been added to the page
% yet. It is hanging around in the box |\@labels| waiting for the
@@ -425,7 +426,7 @@
\global\setbox\@labels\hbox{%
\llap{\SK@lab\SK@lab@relax
\kern\@totalleftmargin\kern\marginparsep}%
- \box\@labels}%
+ \unhbox\@labels}%
% \end{macrocode}
%
% \begin{macrocode}
diff --git a/macros/latex/required/tools/showkeys.pdf b/macros/latex/required/tools/showkeys.pdf
index 7b64f00dea..fb1bc5a5aa 100644
--- a/macros/latex/required/tools/showkeys.pdf
+++ b/macros/latex/required/tools/showkeys.pdf
Binary files differ
diff --git a/macros/latex/required/tools/somedefs.dtx b/macros/latex/required/tools/somedefs.dtx
index 02653a1393..156621d70e 100644
--- a/macros/latex/required/tools/somedefs.dtx
+++ b/macros/latex/required/tools/somedefs.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2023
+% Copyright (C) 1993-2024
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/somedefs.pdf b/macros/latex/required/tools/somedefs.pdf
index 45c79ac29b..0ef55a179e 100644
--- a/macros/latex/required/tools/somedefs.pdf
+++ b/macros/latex/required/tools/somedefs.pdf
Binary files differ
diff --git a/macros/latex/required/tools/tabularx.dtx b/macros/latex/required/tools/tabularx.dtx
index 6d59ca4c22..52ee62cad9 100644
--- a/macros/latex/required/tools/tabularx.dtx
+++ b/macros/latex/required/tools/tabularx.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2023
+% Copyright (C) 1993-2024
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -31,7 +31,7 @@
%<driver> \ProvidesFile{tabularx.drv}
% \fi
% \ProvidesFile{tabularx.dtx}
- [2023/07/08 v2.11c `tabularx' package (DPC)]
+ [2023/12/11 v2.12a `tabularx' package (DPC)]
% \iffalse
%<*driver>
\documentclass{ltxdoc}
@@ -261,6 +261,25 @@
% This behaviour of the package can be customised slightly
% as noted in the documentation of the code section.
%
+% \section{Support for tagged PDF}
+%
+% With version 2.12a the package is made tagging aware, which means that
+% it will automatically produce tagged tables (necessary, for example, for
+% accessibility) if tagging is requested via \cs{DocumentMetadata}.
+%
+% More granular control, e.g., explicitly deciding which cells are
+% header cells, etc., is currently under development, but syntax for
+% this will not appear in this package. Instead it will become
+% available across all tabular-generating packages and then
+% automatically apply here as well.
+%
+% Enabling \LaTeX{} to automatically produce tagged PDF is a long-term
+% project and this is a tiny step in this puzzle. For more information
+% on the project and already available functionality, see
+% \url{https://latex-project.org/publications/indexbytopic/pdf} and
+% \url{https://github.com/latex3/tagging-project}.
+%
+%
% \MaybeStop{}
%
% \section{The Macros}
@@ -269,6 +288,14 @@
%<*package>
% \end{macrocode}
%
+% We only need two changes for tagging support, but they require
+% that a recent \LaTeX{} kernel is used (which should be no problem
+% if \texttt{tools} is distributed in parallel with the kernel.
+% \changes{v2.12a}{2023/12/11}{Require newer LaTeX kernel}
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}[2024/06/01]
+% \end{macrocode}
+%
% \changes{v2.00}{1994/02/07}
% {New Option Handling}
% \begin{macrocode}
@@ -506,7 +533,15 @@
% \begin{macrocode}
\TX@typeout@
{\@spaces Table Width\@spaces Column Width\@spaces X Columns}%
-% \end{macrocode}%
+% \end{macrocode}
+%
+% While we do trial typesetting we suspend any tagging if that is
+% active:
+% \changes{v2.12a}{2023/12/11}
+% {Suspend any tagging while doing trial typesetting}
+% \begin{macrocode}
+ \SuspendTagging {tabularx}%
+% \end{macrocode}
% First attempt. Modify the {\ttfamily X} definition to count {\ttfamily
% X} columns.
% \begin{macrocode}
@@ -523,6 +558,12 @@
\TX@trial{}%
\repeat
% \end{macrocode}
+%
+% And here we restart it again:
+% \begin{macrocode}
+ \ResumeTagging {tabularx}%
+% \end{macrocode}
+%
% One last time, with warnings back on (see appendix D)
% use {\ttfamily tabular*} to put it in a box of the right size, in case
% the algorithm failed to find the correct size.
@@ -737,8 +778,9 @@
% Make the table, and finish the hbox.
% Since v1.06, "\toks@" contains the preamble specification,
% and possible optional argument, as well as the table body.
+%
% \begin{macrocode}
- \expandafter\tabular\the\toks@
+ \expandafter\tabular\the\toks@
\endtabular}%
% \end{macrocode}
% Since v1.05 reset all \LaTeX\ counters, by executing "\TX@ckpt".
@@ -961,6 +1003,7 @@
% \end{macrocode}
% \end{macro}
%
+%
% \begin{macrocode}
%</package>
% \end{macrocode}
diff --git a/macros/latex/required/tools/tabularx.ins b/macros/latex/required/tools/tabularx.ins
index 6e81e93432..fdce598d37 100644
--- a/macros/latex/required/tools/tabularx.ins
+++ b/macros/latex/required/tools/tabularx.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2023
+%% Copyright (C) 1993-2024
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -45,7 +45,7 @@ The source is maintained by the LaTeX Project team and bug
reports for it can be opened at https://latex-project.org/bugs/
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2023
+Copyright (C) 1993-2024
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/required/tools/tabularx.pdf b/macros/latex/required/tools/tabularx.pdf
index 5d34197bd2..14c5977f7d 100644
--- a/macros/latex/required/tools/tabularx.pdf
+++ b/macros/latex/required/tools/tabularx.pdf
Binary files differ
diff --git a/macros/latex/required/tools/theorem.dtx b/macros/latex/required/tools/theorem.dtx
index e3a8e90b8c..a9c3ccae3e 100644
--- a/macros/latex/required/tools/theorem.dtx
+++ b/macros/latex/required/tools/theorem.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2023
+% Copyright (C) 1993-2024
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/theorem.pdf b/macros/latex/required/tools/theorem.pdf
index a2bdfebbf8..579c3b0db3 100644
--- a/macros/latex/required/tools/theorem.pdf
+++ b/macros/latex/required/tools/theorem.pdf
Binary files differ
diff --git a/macros/latex/required/tools/tools-overview.pdf b/macros/latex/required/tools/tools-overview.pdf
index b4278ab9cd..a17f776df9 100644
--- a/macros/latex/required/tools/tools-overview.pdf
+++ b/macros/latex/required/tools/tools-overview.pdf
Binary files differ
diff --git a/macros/latex/required/tools/tools-overview.tex b/macros/latex/required/tools/tools-overview.tex
index 3bc325d67c..54f4b5ed63 100644
--- a/macros/latex/required/tools/tools-overview.tex
+++ b/macros/latex/required/tools/tools-overview.tex
@@ -1,7 +1,7 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{tools-overview.tex}[2015/03/31 v1.0 Tools overview]
-% Copyright (C) 2006-2023
+% Copyright (C) 2006-2024
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/tools.ins b/macros/latex/required/tools/tools.ins
index 6898faead3..8687d49d7f 100644
--- a/macros/latex/required/tools/tools.ins
+++ b/macros/latex/required/tools/tools.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2023
+%% Copyright (C) 1993-2024
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -49,7 +49,7 @@ reports for it can be opened at https://latex-project.org/bugs/
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2023
+Copyright (C) 1993-2024
The LaTeX Project and any individual authors listed elsewhere
in this file.
@@ -178,6 +178,13 @@ given in the file `manifest.txt'.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\SimplePackage{shellesc}
+
+% Shell Filee System Queries
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\batchinput{l3sys-query.ins}
+
+
+
% File-Error files
%%%%%%%%%%%%%%%%%%
\generate{%
diff --git a/macros/latex/required/tools/trace.dtx b/macros/latex/required/tools/trace.dtx
index 788f831620..27a39c776b 100644
--- a/macros/latex/required/tools/trace.dtx
+++ b/macros/latex/required/tools/trace.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2023
+% Copyright (C) 1993-2024
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/trace.pdf b/macros/latex/required/tools/trace.pdf
index 34050d5f22..7b57ee0ea7 100644
--- a/macros/latex/required/tools/trace.pdf
+++ b/macros/latex/required/tools/trace.pdf
Binary files differ
diff --git a/macros/latex/required/tools/varioref-2016-02-16.sty b/macros/latex/required/tools/varioref-2016-02-16.sty
index 747e89dc60..39cc4467a7 100644
--- a/macros/latex/required/tools/varioref-2016-02-16.sty
+++ b/macros/latex/required/tools/varioref-2016-02-16.sty
@@ -1,4 +1,8 @@
%%
+%% This is an old release of `varioref.sty' used during rollback operations.
+%% Do not use this file directly.
+%% ==============================
+%%
%% This is file `varioref.sty',
%% generated with the docstrip utility.
%%
diff --git a/macros/latex/required/tools/varioref.dtx b/macros/latex/required/tools/varioref.dtx
index e801c54f81..40b3038074 100644
--- a/macros/latex/required/tools/varioref.dtx
+++ b/macros/latex/required/tools/varioref.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2023
+% Copyright (C) 1993-2024
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -33,14 +33,15 @@
%%
%
%<package>\NeedsTeXFormat{LaTeX2e}[1995/05/16]
-%<package>\providecommand\DeclareRelease[3]{}
-%<package>\providecommand\DeclareCurrentRelease[2]{}
%<package>
+%
+% For any rollback before 2019 load the 2016 version and hope for the best:
+%<package>\DeclareRelease{}{1994-06-01}{varioref-2016-02-16.sty}
%<package>\DeclareRelease{}{2016-02-16}{varioref-2016-02-16.sty}
%<package>\DeclareCurrentRelease{}{2019-10-01}
%<package>
%<package>\ProvidesPackage{varioref}
-%<package> [2022/01/09 v1.6f package for extended references (FMi)]
+%<package> [2024/05/23 v1.6g package for extended references (FMi)]
% \fi
%
%%
@@ -144,8 +145,8 @@
%\DescribeMacro\vref The implementation of |\vref| below produces only
% a |\ref| when reference and |\label| are on the same page. It will
% additionally produce one of the strings `on the facing page', `on
-% the preceding page', or `on the following page', if label and
-% reference differ by one and it will produce both |\ref| and
+% the preceding page', or `on the following page' if label and
+% reference differ by one; and it will produce both |\ref| and
% |\pageref| when the difference is larger. The word `facing' is used
% when label and reference both fall onto a double spread. However,
% if a special page numbering scheme is used instead of the usual
@@ -169,7 +170,7 @@
% comes out as ``\ldots~see the example which shows~\ldots'', which
% could be misleading.
%
-% A space in front of |\vpageref| it will be ignored if
+% A space in front of |\vpageref| will be ignored if
% the command doesn't produce any text at all.
%
% But in fact |\vpageref| allows even more control. It has two
@@ -210,7 +211,7 @@
% \DescribeMacro\vrefrange
% This command is similar to |\vref| but it
% takes two mandatory arguments denoting a range to refer to (e.g., a
-% sequences of figures or a sequence of equations, etc.). So if
+% sequence of figures or a sequence of equations, etc.). So if
% |fig:a| is your first figure in the sequence and |fig:c| your last
% you can write
%\begin{verbatim}
@@ -273,8 +274,8 @@
% \DescribeMacro\vpagerefcompare
% \NewIn{2019}
% For this kind of application the package also provides
-% |\vpagerefcompare| as a command that takes four argument: two labels for
-% comparison and a \meta{true} and \meta{false} argument. One of them
+% |\vpagerefcompare| as a command that takes four arguments: two labels
+% for comparison and a \meta{true} and \meta{false} argument. One of them
% is executed depending on whether the two labels are on the same page
% or on different pages. With its help the above definition could be
% shortened to
@@ -293,8 +294,9 @@
% Another command for conditional processing is |\vpagerefnearby|. It
% takes three arguments: a label and a \meta{true} and \meta{false}
% argument. It compares the page reference to the label with the
-% current page number and if both are Arabic number and only differ by
-% $\pm1$ the \meta{true} argument is executed otherwise the
+% current page number; if each of these is a positive integer
+% (expressed in Arabic numerals) and they differ by at most
+% $\pm1$, the \meta{true} argument is executed, otherwise the
% \meta{false} argument. In other words it tells you if a |\vpageref|
% to the label would result in a textual reference to the previous,
% current or next page.\footnote{There is also a
@@ -320,11 +322,11 @@
% versions of the macros which do not add any space before the
% generated text (they do nevertheless remove space at the left).
%
-% However, that too has problems (one is that \pkg{hyperref}
+% However, that too has problems: one is that \pkg{hyperref}
% \ChangedIn{2019}
-% introduced the star forms as a means to generating references
-% without hyperlinks (which is clearly the more important
-% application).
+% introduced the star forms as a means of generating references
+% without hyperlinks, which is clearly the more important
+% application.
% So these days I recommend to always call the package with the option
% \option{nospace} which prevents \pkg{varioref} from messing with the
% space in front. Of course you are then responsible to always add it
@@ -381,7 +383,7 @@
% label and reference fall onto the same page, but prefer reference to
% page numbers otherwise then |\thevpagerefnum| can be used. This macro
% hold the current page ``number'' when |\vpageref| and friends are
-% executed. Thus, by defining, for example
+% executed. Thus, by defining, for example,
%\begin{verbatim}
%\renewcommand\reftextfaceafter {on page~\thevpagerefnum}
%\renewcommand\reftextfacebefore{on page~\thevpagerefnum}
@@ -436,7 +438,7 @@
%\DescribeMacro\reftextafter
%\DescribeMacro\reftextfaceafter Backward references use
% |\reftextbefore| if the label is on the preceding page but invisible
-% and |\reftextfacebefore| if it is one the facing page (i.e., if the
+% and |\reftextfacebefore| if it is on the facing page (i.e., if the
% current page number is odd). Similarly |\reftextafter| is used
% when the label comes on the next page but one has to turn the page
% and |\reftextfaceafter| if it is on the following but facing page.
@@ -447,7 +449,7 @@
%\DescribeMacro\reftextfaraway Finally we have |\reftextfaraway| which
% is used whenever label and reference differ by more than one or when
% they aren't numeric. This macro is a bit different because it takes
-% one argument, the symbolic reference string so that one cane make
+% one argument, the symbolic reference string, so that one can make
% use of |\pageref| in its replacement text.
%
%
@@ -521,7 +523,7 @@
% and \option{nospace}. While the former is the default to allow
% \NewIn{2019}
% documents written in the last twenty years to continue to work
-% correctly, I nowadays, suggest that you always use the package with
+% correctly, I nowadays suggest that you always use the package with
% the option \option{nospace}. This will stop \pkg{varioref} from
% meddling with the spaces preceding commands and thus make the star
% forms |\vref*| and |\vpageref*| unnecessary.
@@ -536,7 +538,7 @@
% Defining commands like the ones described above poses some
% interesting problems. Suppose, for example, that a generated text
% like `on the next page' gets broken across pages. If this happens it
-% is very difficult to find an acceptable solution and in fact can
+% is very difficult to find an acceptable solution and it can, in fact,
% even result in a document that will always change from one state to
% another (i.e., inserting one string, finding that this is wrong,
% inserting another string on the next run which makes the first
@@ -699,7 +701,7 @@
% \begin{macro}{\reftextbefore}
% \begin{macro}{\reftextcurrent}
% \label{reftextbefore} The options do set the macros that
-% generate the textual strings. Note, that they do not start with a
+% generate the textual strings. Note that they do not start with a
% space, the space is already added in the main macro below.
% \changes{v1.2a}{1998/08/22}{Added American defaults for
% \cs{reftextpagerange} and \cs{reftextlabelrange}}
@@ -838,7 +840,7 @@
% the noun (clause); bertentangan is ``opposite'' in the sense of
% ``facing''; berikutnya is ``next'' (in this context - actually
% next-to-this, literally); berikutnya also translates as ``following
-% this'' sebelumnya is ``preceding''; also ``previous'' ``ini'' translates,
+% this''; sebelumnya is ``preceding'', also ``previous''; ``ini'' translates,
% literally, as ``this'' but is also used in the sense of current page.
% \changes{v1.4o}{2005/12/02}{Bahasa Malaysia defaults added.}
% \begin{macrocode}
@@ -1036,7 +1038,7 @@
\let\vrefrangeformat\vrefrangedefaultformat
}}
% \end{macrocode}
-% Default string for dutch have been contributed by Frank Poppe
+% Default strings for Dutch have been contributed by Frank Poppe
% (\verb=POPPE@SWOV.NL=).
% This option currently supports one additional string macro
% |\refpagename| so that you can easily change to |bladzijde|
@@ -1124,9 +1126,9 @@
\let\vrefrangeformat\vrefrangedefaultformat
}}
% \end{macrocode}
-% The finnish strings were suggested by Matti Rintala
+% The Finnish strings were suggested by Matti Rintala
% (\verb=bitti@cs.tut.fi=) and Hillevi Gavel
-% \verb=Hillevi.Gavel@mdh.se=.
+% (\verb=Hillevi.Gavel@mdh.se=).
% \changes{v1.0m}{1994/09/23}{Added finnish strings}
% \changes{v1.4o}{2005/11/07}{Added a few more finnish strings}
% \begin{macrocode}
@@ -1200,10 +1202,10 @@
}}
% \end{macrocode}
% There are no good variants for German (I think and still think but
-% this is a matter of taste :-).
+% this is a matter of taste :-)).
% \changes{v1.0b}{1994/01/31}{Replace in incorrect `def by `let}
% The following definitions were recently suggested to me but since
-% the original are in for a long time i don't want to change them
+% the originals have been there for a long time I don't want to change them
% now since that could make a lot of documents change their formatting.
% If you fancy them, add a redefinition of the corresponding macro(s)
% to the preamble of your document.
@@ -1935,7 +1937,7 @@
% \end{macrocode}
% But if \texttt{nospace} is in force we simply use the same space
% value that was used in the source document (unless that was zero
-% or non-existent.
+% or non-existent).
% \begin{macrocode}
\ifdim\@tempskipa=\z@ \else
\hskip\@tempskipa
@@ -1978,7 +1980,7 @@
% \begin{macrocode}
\vrefpagenum\thevpagerefnum{#3}%
% \end{macrocode}
-% Now after the internal label has served its purpose if would be
+% Now after the internal label has served its purpose it would be
% nice to free the memory it occupies by using something like
% \begin{verbatim}
% \global\expandafter\let
@@ -2008,7 +2010,7 @@
\fi
\else
% \end{macrocode}
-% If |#2| is empty we do nothing otherwise we insert it followed by
+% If |#2| is empty we do nothing, otherwise we insert it followed by
% a space.
% \begin{macrocode}
\def\@tempc{#2}%
@@ -2017,7 +2019,7 @@
\fi
% \end{macrocode}
% Now we check if the page number of the referenced object (stored
-% in |\thevpagerefnum| is a single positive number.
+% in |\thevpagerefnum|) is a single positive number.
% \begin{macrocode}
\is@pos@number\thevpagerefnum
{%
@@ -2032,7 +2034,7 @@
}%
% \end{macrocode}
% If it is not a positive number we assign the largest possible
-% number to |\@tempcnta| and thereby pretending that label and
+% number to |\@tempcnta|, thereby pretending that label and
% reference are miles away from each other.
% \begin{macrocode}
{\@tempcnta\maxdimen}%
@@ -2049,7 +2051,7 @@
% Thus if the object falls onto an odd page then the reference is
% on the facing even page (and so we insert |\reftextfaceafter|),
% otherwise the object can not be seen from the reference (and we
-% in insert |\reftextafter|). Don't be surprised if we are not
+% insert |\reftextafter|). Don't be surprised if we are not
% using |\thevpagerefnum| in the check. Since |\@tempcnta| has the same
% value it is faster to use the register instead of parsing the
% macro contents anew.
@@ -2061,7 +2063,7 @@
% used.
% Since the value of |\if@twoside| is evaluated before reading in
% packages we could do better (saving some tokens) by defining
-% the current macro in dependence of this boolean.
+% the current macro depending on this boolean.
% \begin{macrocode}
\if@twoside
\reftextfaceafter
@@ -2075,11 +2077,11 @@
% If the object is not on the page following the reference we check
% if it is on the page before the reference. In \LaTeX{} this
% situation is not too common, for example with floats it normally
-% does not occur, but of course it isn't impossible if you more
+% does not occur, but of course it isn't impossible if you have more
% than one reference to the same object, or if you have back
% references to sections, theorems, etc. To test this we now
% subtract two from the current value of |\@tempcnta| (which was
-% set to one higher as the reference page number). Note, that
+% set to one higher as the reference page number). Note that
% subtraction is also possible if the value was |\maxdimen| --- we
% still get something that is much larger than any sensible page
% number.
@@ -2131,7 +2133,7 @@
\reftextfaraway{#3}}%
\fi
% \end{macrocode}
-% Finally we generate the internal label so that it can be check on
+% Finally, we generate the internal label so that it can be checked on
% the next run. This means that we compare the position after the
% string with the position of the referenced object. There is one
% thing to note: to conserve space we locally make |\@currentlabel|
@@ -2252,8 +2254,8 @@
% The star form is easy (and just a convenient shortcut), just call
% |\ref| followed by |\vpageref| and pass the optional argument to
% the latter. We don't support the second optional argument of
-% |\vpageref|, it that is needed one has to call both commands
-% explicitly
+% |\vpageref|, if that is needed one has to call both commands
+% explicitly.
% \changes{v1.6a}{2019/08/25}{Command added to support hyperref better}
% \changes{v1.6e}{2020/07/25}{Changed for Japanese (gh/352)}
% \begin{macrocode}
@@ -2264,7 +2266,7 @@
%
% \begin{macro}{\vrefformat,\vrefdefaultformat}
% Japanese needs a different word order in \cs{vref@star} so this
-% is separated out o that it can be changed on language level.
+% is separated out so that it can be changed at the language level.
% \changes{v1.6e}{2020/07/25}{Macro added (gh/352)}
% \begin{macrocode}
\def\vrefdefaultformat#1#2{%
@@ -2293,7 +2295,7 @@
\unskip \nobreakspace
\fi
% \end{macrocode}
-% The use of|\nobreakspace| or |~| after the |\unskip| means that
+% The use of |\nobreakspace| or |~| after the |\unskip| means that
% this command will always produce a normal space while
% something like |\nobreak\space| will
% react to settings of |\nonfrenchspacing|.
@@ -2341,10 +2343,10 @@
% Now we have to check whether or not the whole string was parsed
% into that register or some remainder was left over. Since we have
% added a |\@nil| token at the very end we can use that to delimit
-% the argument of |\is@pos@num@|. Note, that the added space in
+% the argument of |\is@pos@num@|. Note that the added space in
% |\is@pos@number| \vpageref[above]{isposnumber} gets parsed away
% by the counter assignment. If it would be missing, and the full
-% string would consist of a number, \TeX{}would try to replace
+% string would consist of a number, \TeX{} would try to replace
% |\@nil| by its definition to see if it would contain additional
% digits and thus we would be in trouble at this point.
% \begin{macrocode}
@@ -2389,7 +2391,7 @@
%
% \begin{macro}{\fullrefformat,\fullrefdefaultformat}
% Japanese needs a different word order in \cs{fullref} so this
-% is separated out o that it can be changed on language level.
+% is separated out so that it can be changed at the language level.
% \changes{v1.6e}{2020/07/25}{Macro added (gh/352)}
% \begin{macrocode}
\def\fullrefdefaultformat#1{%
@@ -2523,7 +2525,7 @@
%
% \begin{macro}{\vrefrangeformat,\vrefrangedefaultformat}
% Japanese needs a different word order in \cs{vrefrange} so this
-% is separated out o that it can be changed on language level.
+% is separated out so that it can be changed at the language level.
% \changes{v1.6d}{2020/07/20}{Macro added (gh/352)}
% \begin{macrocode}
\def\vrefrangedefaultformat#1#2#3{%
@@ -2558,7 +2560,7 @@
%
% \begin{macro}{\Vrefformat,\Vrefdefaultformat}
% Japanese needs a different word order in \cs{Vref} so this
-% is separated out o that it can be changed on language level.
+% is separated out so that it can be changed at the language level.
% \changes{v1.6e}{2020/07/25}{Macro added (gh/352)}
% \begin{macrocode}
\def\Vrefdefaultformat#1#2{%
diff --git a/macros/latex/required/tools/varioref.ins b/macros/latex/required/tools/varioref.ins
index dcc41d0176..88527a20ba 100644
--- a/macros/latex/required/tools/varioref.ins
+++ b/macros/latex/required/tools/varioref.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright (C) 1993-2023
+%% Copyright (C) 1993-2024
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -45,7 +45,7 @@ The source is maintained by the LaTeX Project team and bug
reports for it can be opened at https://latex-project.org/bugs/
(but please observe conditions on bug reports sent to that address!)
-Copyright (C) 1993-2023
+Copyright (C) 1993-2024
The LaTeX Project and any individual authors listed elsewhere
in this file.
diff --git a/macros/latex/required/tools/varioref.pdf b/macros/latex/required/tools/varioref.pdf
index 64c89e6f49..7a5aa90622 100644
--- a/macros/latex/required/tools/varioref.pdf
+++ b/macros/latex/required/tools/varioref.pdf
Binary files differ
diff --git a/macros/latex/required/tools/verbatim.dtx b/macros/latex/required/tools/verbatim.dtx
index ebcc010a80..468dead3e8 100644
--- a/macros/latex/required/tools/verbatim.dtx
+++ b/macros/latex/required/tools/verbatim.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2023
+% Copyright (C) 1993-2024
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -69,6 +69,8 @@
%\fi
%
%
+%
+% \changes{v1.5x}{2024/01/22}{Added TAB marking support to \cs{verbatiminput*}}
% \changes{v1.5u}{2020-07-07}{Typo repair and added a missing comment
% character}
% \changes{v1.5q}{2003/08/22}{Reintroduced \cs{@noligs}, by popular
@@ -508,7 +510,7 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{verbatim}
- [2023-11-06 v1.5v LaTeX2e package for verbatim enhancements]
+ [2024-01-22 v1.5x LaTeX2e package for verbatim enhancements]
\@ifundefined{verbatim@@@}{}{\endinput}
% \end{macrocode}
%
@@ -1570,7 +1572,14 @@
% arguments, depending on whether an asterisk follows.
% \begin{macrocode}
\def\verbatiminput{\begingroup
- \@ifstar{\verbatim@input\relax}%
+% \end{macrocode}
+%
+% \changes{v1.5x}{2024/01/22}{Added TAB marking support into the
+% starred version (gh/1245)}
+% If starred, we mark spaces and TABs, the two
+% added pieces are the same as for verbatim*.
+% \begin{macrocode}
+ \@ifstar{\verbatim@input{\@setupverbvisiblespace\@vobeyspaces}}%
{\verbatim@input{\frenchspacing\@vobeyspaces}}}
% \end{macrocode}
% \end{macro}
diff --git a/macros/latex/required/tools/verbatim.pdf b/macros/latex/required/tools/verbatim.pdf
index a8238cf344..65e18697f4 100644
--- a/macros/latex/required/tools/verbatim.pdf
+++ b/macros/latex/required/tools/verbatim.pdf
Binary files differ
diff --git a/macros/latex/required/tools/xr-2023-07-04.sty b/macros/latex/required/tools/xr-2023-07-04.sty
new file mode 100644
index 0000000000..15bfde169a
--- /dev/null
+++ b/macros/latex/required/tools/xr-2023-07-04.sty
@@ -0,0 +1,84 @@
+%%
+%% This is an old release of `xr.sty' used during rollback operations.
+%% Do not use this file directly.
+%% ==============================
+%%
+%% This is file `xr.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xr.dtx (with options: `package')
+%%
+%% This is a generated file.
+%%
+%% The source is maintained by the LaTeX Project team and bug
+%% reports for it can be opened at https://latex-project.org/bugs/
+%% (but please observe conditions on bug reports sent to that address!)
+%%
+%%
+%% Copyright (C) 1993-2023
+%% The LaTeX Project and any individual authors listed elsewhere
+%% in this file.
+%%
+%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
+%% --------------------------------------------------------------------------
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% https://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This file may only be distributed together with a copy of the LaTeX
+%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle'
+%% without such generated files.
+%%
+%% The list of all files belonging to the LaTeX `Tools Bundle' is
+%% given in the file `manifest.txt'.
+%%
+%% File: xr.dtx Copyright (C) 1993-2019 David Carlisle
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{xr}
+ [2023-07-04 v5.06 eXternal References (DPC)]
+\def\externaldocument{\@ifnextchar[\XR@{\XR@[]}}
+\let\externalcitedocument\externaldocument
+\def\XR@[#1]#2{{%
+ \makeatletter
+ \def\XR@prefix{#1}%
+ \set@curr@file{#2}%
+ \expandafter\XR@next\@curr@file.aux\relax\\}}
+\def\XR@next#1\relax#2\\{%
+ \edef\XR@list{#2}%
+ \XR@loop{#1}}
+\def\XR@aux{%
+ \ifx\XR@list\@empty\else\expandafter\XR@explist\fi}
+
+\def\XR@explist{\expandafter\XR@next\XR@list\\}
+\def\XR@loop#1{\openin\@inputcheck{#1}\relax
+ \ifeof\@inputcheck
+ \PackageWarning{xr}{^^JNo file #1^^JLABELS NOT IMPORTED.^^J}%
+ \expandafter\XR@aux
+ \else
+ \PackageInfo{xr}{IMPORTING LABELS FROM #1}%
+ \expandafter\XR@read\fi}
+\def\XR@read{%
+ \read\@inputcheck to\XR@line
+ \expandafter\XR@test\XR@line...\XR@}
+\long\def\XR@test#1#2#3#4\XR@{%
+ \let\XR@tempa\@gobbletwo
+ \ifx#1\newlabel
+ \let\XR@tempa\@firstoftwo
+ \else\ifx#1\bibcite
+ \let\XR@tempa\@firstoftwo
+ \else\ifx#1\@input
+ \let\XR@tempa\@secondoftwo
+ \fi\fi\fi
+ \XR@tempa{#1{\XR@prefix#2}{#3}}{\edef\XR@list{\XR@list#2\relax}}%
+ \ifeof\@inputcheck\expandafter\XR@aux
+ \else\expandafter\XR@read\fi}
+\endinput
+%%
+%% End of file `xr.sty'.
diff --git a/macros/latex/required/tools/xr.dtx b/macros/latex/required/tools/xr.dtx
index be48f5a01b..daa0778b36 100644
--- a/macros/latex/required/tools/xr.dtx
+++ b/macros/latex/required/tools/xr.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2023
+% Copyright (C) 1993-2024
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
@@ -21,14 +21,49 @@
%
% \fi
% \iffalse
-%% File: xr.dtx Copyright (C) 1993-2019 David Carlisle
+%% File: xr.dtx Copyright (C) 1993-2024 David Carlisle
%
%<package>\NeedsTeXFormat{LaTeX2e}
+%<package>\DeclareRelease{v5}{2023-07-04}{xr-2023-07-04.sty}
+%<package>\DeclareCurrentRelease{}{2024-04-10}
%<package>\ProvidesPackage{xr}
-%<package> [2023-07-04 v5.06 eXternal References (DPC)]
+%<package> [2024-04-10 v6.00 eXternal References (DPC)]
%
%<*driver>
-\documentclass{ltxdoc}
+\documentclass{l3doc}
+% currently missing in l3doc, copied from array.dtx
+\makeatletter
+\def\MaintainedBy#1{\gdef\@maintainedby{#1}}
+\let\@maintainedby\@empty
+\def\MaintainedByLaTeXTeam#1{%
+{\gdef\@maintainedby{%
+This file is maintained by the \LaTeX{} Project team.\\%
+Bug reports can be opened (category \texttt{#1}) at\\%
+\url{https://latex-project.org/bugs.html}.}}}
+\def\@maketitle{%
+ \newpage
+ \null
+ \vskip 2em%
+ \begin{center}%
+ \let \footnote \thanks
+ {\LARGE \@title \par}%
+ \vskip 1.5em%
+ {\large
+ \lineskip .5em%
+ \begin{tabular}[t]{c}%
+ \@author
+ \end{tabular}\par}%
+ \vskip 1em%
+ {\large \@date}%
+ \ifx\@maintainedby\@empty
+ \else
+ \vskip 1em%
+ \fbox{\fbox{\begin{tabular}{@{}l@{}}\@maintainedby\end{tabular}}}%
+ \fi
+ \end{center}%
+ \par
+ \vskip 1.5em}
+\makeatother
\usepackage{xr}
\GetFileInfo{xr.sty}
\begin{document}
@@ -50,44 +85,113 @@
%
% \changes{v5.00}{1993/07/07}
% {First DPC version (by agreement with J-PD). New mechanism
-% (\cmd{\read} instead of \cmd\input).}
+% (\cs{read} instead of \cs{input}).}
%
% \changes{v5.01}{1993/07/20}{Fix bug added by DPC, v5.00 did not import
-% aux files of \cmd\include'ed files. (Reported by J-PD)}
+% aux files of \cs{include}'ed files. (Reported by J-PD)}
%
% \changes{v5.02}{1994/05/28}{Update for LaTeX2e}
% \changes{v5.03}{2018/10/01}{Fix for conditionals in aux file}
% \changes{v5.05}{2019/07/20}{include xcite}
+% \changes{v6.00}{2024/04/10}{merge with xr-hyper}
%
%
% This package implements a system for eXternal References.
-%
+% Version 6.00 merges the \pkg{xr} package and the \pkg{xr-hyper} package.
+% \pkg{xr-hyper} was developed to support the
+% extended label syntax of the \pkg{hyperref} package and to enable active links
+% to the external documents.
+% In the \LaTeX{} release 2023-06-01 the label syntax of \pkg{hyperref}
+% and the \LaTeX{} kernel have been synchronized and there is no longer
+% a need for two packages. The package \pkg{xr-hyper} will be
+% deprecated.
+%
+% The previous version before the merge can be accessed with
+% \begin{verbatim}
+% \usepackage{xr}[=v5]
+% \end{verbatim}
+% or with a rollback date between 2023-07-04 and 2024-04-09
+% \begin{verbatim}
+% \usepackage{xr}[=2024-04-09]
+% \end{verbatim}
+%
+% \section{Usage}
+%
+% \begin{syntax}
+% \cs{externaldocument}\oarg{prefix}\texttt[nocite\texttt]\marg{document}\oarg{url}
+% \end{syntax}
+%
% If one document needs to refer to sections of another, say |aaa.tex|,
% then this package may be loaded in the main file, and the command\\
% |\externaldocument{aaa}|\\
% given in the preamble.
%
-% Then you may use |\ref| and |\pageref| to refer to anything which has
+% Then you may use |\ref| and |\pageref| (or |\nameref| if the
+% package \pkg{nameref} has been loaded to refer to anything which has
% been given a |\label| in either |aaa.tex| or the main document.
+% It is also possible to refer to properties stored with \cs{RecordProperties}.
% You may declare any number of such external documents.
%
% If any of the external documents, or the main document, use the same
% |\label| then an error will occur as the label will be multiply
% defined. To overcome this problem |\externaldocument| has an optional
-% argument. If you declare |\externaldocument[A-]{aaa}|, then all
+% argument \meta{prefix}.
+% If you declare |\externaldocument[A-]{aaa}|, then all
% references from |aaa| are prefixed by |A-|. So for instance, if a
% section of |aaa| had |\label{intro}|, then this could be referenced
% with |\ref{A-intro}|. The prefix need not be |A-|, it can be any
% string chosen to ensure that all the labels imported from external
-% files are unique. Note however that if your style declares certain
-% active characters (|:| in French, |"| in German) then these
-% characters can not usually be used in |\label|, and similarly may not
-% be used in the optional argument to |\externaldocument|.
+% files are unique. Note however that the prefix is expanded and
+% so should not contain commands that are not safe in this context.
%
% As first suggested in Enrico Gregorio's |xcite| package, the current version
% also allows |\cite| to reference |\bibitem| in the external document.
% For compatibility with |xcite|, |\externalcitedocument| is made available
% as an alias for |\externaldocument|
+%
+% Many packages have variant citation commands (natbib,
+% biblatex,....) and the external document may or may not have used
+% hyperref. Because of these differences the citation linking may not
+% always work, it can be disabled by specifying \texttt{[nocite]} after the
+% \meta{prefix}:
+% \begin{verbatim}
+% \externaldocument[][nocite]{aaa}
+% \end{verbatim}
+%
+% The `document' referred to by the main argument \meta{document} is the file
+% \file{document.aux} which must be somewhere on TeX's input path.
+% Some packages (eg hyperref) really need to know the location of the
+% final document rather than the aux file. By default this is assumed
+% to be \file{document.pdf}. A package may redefine the command \cs{XR@ext} to
+% change this default extension. However sometimes the final
+% document may be in a position unrelated to the aux file, or the
+% browser may not be able to find files at an arbitrary point in
+% TeX's input path, so the final optional argument \meta{url} allows a full
+% URL to the final document to be specified.
+% \begin{verbatim}
+% \externaldocument{aaa}[https://example.com/this/path/to/aaa.pdf]
+% \end{verbatim}
+%
+% The package stores the url of the external document in the label data. It can
+% e.g. be retrieved with the \pkg{refcount} package
+%
+% \begin{verbatim}
+% \usepackage{refcount,xr}
+% \externaldocument{aaa}
+% ...
+% \getrefbykeydefault{intro}{url}{??} %prints aaa.pdf or ??
+% \end{verbatim}
+%
+% \pkg{xr} supports also the properties introduced in \LaTeX{} 2023-11-01.
+% Here the url of the external document is stored in the \texttt{xr-url} property.
+%
+% \begin{verbatim}
+% \usepackage{xr}
+% \externaldocument{aaa} %aaa contains \RecordProperties{intro}{page}
+% ...
+% \RefProperty{intro}{page} %gives page number
+% \RefProperty{intro}{xr-url} %gives aaa.pdf
+% \end{verbatim}
%
% \MaybeStop{}
%
@@ -98,20 +202,74 @@
% \end{macrocode}
%
% Check for the optional argument.
+% \changes{v6.00}{2024-04-10}{Copied over extended definition of xr-hyper}
% \begin{macrocode}
-\def\externaldocument{\@ifnextchar[\XR@{\XR@[]}}
+\def\externaldocument{\@testopt\XR@cite{}}
\let\externalcitedocument\externaldocument
+\def\XR@cite[#1]{\@testopt{\XR@[#1]}{}}
+\def\XR@[#1][#2]#3{\@testopt{\XR@@{#1}{#2}{#3}}{#3.\XR@ext}}
+% \end{macrocode}
+%
+% \subsection{helper definitions}
+% \changes{v6.00}{2024-04-10}{new, copied over from xr-hyper}
+% To test the second optional argument
+% \begin{macrocode}
+\def\XR@@nocite{nocite}
+% \end{macrocode}
+% Needed in the processing
+% \begin{macrocode}
+\long\def\@gobblefour #1#2#3#4{}
+\long\def\@firstoffour #1#2#3#4{#1}
+\long\def\@secondoffour#1#2#3#4{#2}
+\long\def\@thirdoffour #1#2#3#4{#3}
+\long\def\@fourthoffour #1#2#3#4{#4}
+% \end{macrocode}
+% The url is added as fifth argument. The command used here is
+% \cs{XR@addURL}. The command is more complicated as needed
+% as it tries to handle also older documents with
+% \cs{newlabel}'s with two arguments.
+% \begin{macrocode}
+\def\XR@addURL#1{\XR@@dURL#1{}{}{}{}\\}
+\def\XR@@dURL#1#2#3#4#5\\{%
+ \unexpanded{{#1}{#2}{#3}{#4}}{\XR@URL}%
+ }%
+% \end{macrocode}
+%
+% \subsection{Variables}
+% \changes{v6.00}{2024-04-10}{new, copied over from xr-hyper}
+% Default file extension:
+% \begin{macrocode}
+\providecommand\XR@ext{pdf}
% \end{macrocode}
%
-% Save the optional prefix. Start processing the first |aux| file.
-% \changes{v5.06}{2020-05-10}{Remove leading and trailing sapces from
+% Save the optional prefix. Start processing the first |aux| file.
+% \changes{v6.00}{2024-04-10}{copied over the new extended internal command from xr-hyper.
+% It prepends the directory name.}
+% Olivier Michel pointed out that
+% if the aux file was not on texinputs you could not always go
+% \cs{externaldocument}{/some/path/to/file}
+% specifically that worked if file.aux was a `simple' document with
+% one aux file, but if \cs{include} had been used, the `sub' aux files
+% would not be found by xr in the remote directory.
+% This version calls \cs{filename@parse} to get the directory name of the
+% remote directory, which is then explicitly prepended to the names of
+% any included aux files.
+% \changes{v5.06}{2020-05-10}{Remove leading and trailing spaces from
% the filename (gh/2223)}
% \begin{macrocode}
-\def\XR@[#1]#2{{%
+\def\XR@@#1#2#3[#4]{{%
\makeatletter
\def\XR@prefix{#1}%
- \set@curr@file{#2}%
- \expandafter\XR@next\@curr@file.aux\relax\\}}
+ \def\XR@nocite{#2}%
+ \ifx\XR@nocite\XR@@nocite
+ \let\XR@bibcite\vadjust
+ \else
+ \let\XR@bibcite\bibcite
+ \fi
+ \def\XR@URL{#4}%
+ \set@curr@file{#3}%
+ \filename@parse\@curr@file
+ \XR@next\@curr@file.aux\relax\\}}
% \end{macrocode}
%
% Process the next |aux| file in the list and remove it from the head of
@@ -161,23 +319,40 @@
% \end{macrocode}
%
% Look at the first token of the line.
-% If it is |\newlabel|, do the |\newlabel|. If it is |\@input|, add the
-% filename to the list of files to process. Otherwise ignore.
+% If it is |\newlabel|, define \cs{r@}\meta{label}, ensure that it has
+% five label data argument and add the url as the last one.
+% If it is |\@input|, add the
+% filename to the list of files to process.
+% If it is |\bibcite|, call a |\bibcite|.
+% If it is |\new@label@record| add the url and then call it.
+% Otherwise ignore.
% Go around the loop if not at end of file. Finally process the next
% file in the list.
%
% 2018 update: make sure the arguments are handled outside the |\ifx| test,
+% \changes{v6.00}{2024-04-10}{copied over extended definition from xr-hyper}
% \begin{macrocode}
\long\def\XR@test#1#2#3#4\XR@{%
- \let\XR@tempa\@gobbletwo
+ \let\XR@tempa\@gobblefour
\ifx#1\newlabel
- \let\XR@tempa\@firstoftwo
- \else\ifx#1\bibcite
- \let\XR@tempa\@firstoftwo
+ \let\XR@tempa\@firstoffour
+ \else\ifx#1\XR@bibcite
+ \let\XR@tempa\@secondoffour
\else\ifx#1\@input
- \let\XR@tempa\@secondoftwo
- \fi\fi\fi
- \XR@tempa{#1{\XR@prefix#2}{#3}}{\edef\XR@list{\XR@list#2\relax}}%
+ \let\XR@tempa\@thirdoffour
+ \else\ifx#1\new@label@record
+ \let\XR@tempa\@fourthoffour
+ \fi\fi\fi\fi
+ \XR@tempa
+ {%
+ \expandafter\protected@xdef\csname r@\XR@prefix#2\endcsname{\XR@addURL{#3}}%
+ }%
+ {\expandafter\bibcite\expandafter{\XR@prefix#2}{#3}}%
+ {\edef\XR@list{\XR@list\filename@area#2\relax}}%
+ {%
+ \edef\next{\noexpand\new@label@record{\XR@prefix#2}{\unexpanded{#3}{xr-url}{\XR@URL}}}%
+ \next
+ }
\ifeof\@inputcheck\expandafter\XR@aux
\else\expandafter\XR@read\fi}
% \end{macrocode}
diff --git a/macros/latex/required/tools/xr.pdf b/macros/latex/required/tools/xr.pdf
index 205135ba68..a2ba599a8a 100644
--- a/macros/latex/required/tools/xr.pdf
+++ b/macros/latex/required/tools/xr.pdf
Binary files differ
diff --git a/macros/latex/required/tools/xspace.dtx b/macros/latex/required/tools/xspace.dtx
index 807fc9c5df..be20fc9e52 100644
--- a/macros/latex/required/tools/xspace.dtx
+++ b/macros/latex/required/tools/xspace.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 1993-2023
+% Copyright (C) 1993-2024
%
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
diff --git a/macros/latex/required/tools/xspace.pdf b/macros/latex/required/tools/xspace.pdf
index 0249feb81e..355a222dc1 100644
--- a/macros/latex/required/tools/xspace.pdf
+++ b/macros/latex/required/tools/xspace.pdf
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index a7bcb30060..a0b837aa2a 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -17,7 +17,6 @@ $mirrors = {
'https://mirrors.jlu.edu.cn/CTAN/' => 1,
'https://mirrors.nju.edu.cn/CTAN/' => 1,
'https://mirrors.pku.edu.cn/ctan/' => 1,
- 'https://mirrors.sjtug.sjtu.edu.cn/ctan/' => 1,
'https://mirrors.sustech.edu.cn/CTAN/' => 1,
'https://mirrors.tuna.tsinghua.edu.cn/CTAN/' => 1,
'https://mirrors.ustc.edu.cn/CTAN/' => 1,
@@ -35,7 +34,6 @@ $mirrors = {
},
'Iran' => {
'http://ctan.asis.ai/' => 1,
- 'https://ctan.yazd.ac.ir/' => 1,
},
'Japan' => {
'http://ring.airnet.ne.jp/archives/text/CTAN/' => 1,
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index a6eb019361..ab664bda46 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,11 +26,11 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2024
-depend revision/71403
+depend revision/71410
name 00texlive.image
category TLCore
-revision 71402
+revision 71409
shortdesc TeX Live files only in the source repository
longdesc The files here are not copied by the installer and containers
longdesc are not built for them; they exist only in the source
@@ -4906,7 +4906,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 71403
+revision 71410
shortdesc TeX Live standalone installer package
longdesc This package defines the files to go into the installer
longdesc archives (install-tl-unx.tar.gz, install-tl.zip) built by the
@@ -9193,16 +9193,16 @@ catalogue-version 3.13g
name acmart
category Package
-revision 70981
+revision 71406
shortdesc Class for typesetting publications of ACM
relocated 1
longdesc This package provides a class for typesetting publications of
longdesc the Association for Computing Machinery (ACM).
-containersize 43148
-containerchecksum 8790eb2a23f51068996078c5d2425279f3c24b1a6e27980f55f516a9edafa2c8b8a95c9de80706689c935e3aaf207690e44b744d9b688e55c4ba6942e5494748
-doccontainersize 4568080
-doccontainerchecksum 21e35fcbaf324d1d1ef55a2e538416facb089138d526a176a628f943f886c49e06683a8c2756b11aa28ac9eda53fc88f2138c29f28f00114ded151ccdd8bb884
-docfiles size=3268
+containersize 43140
+containerchecksum eb5aaa275860424db7a34744164e694f216baf5d948550bd74c37775db74e75d90b1d98aec6df274fa95ac85146455058bcbb0a82b6c3481a1242e2f7c45d4ef
+doccontainersize 4596520
+doccontainerchecksum 63b4de2cb7d393f8c01db8ef6436994ef09abd737c663f3df49ca9630b5d8a5721185b8d029775a91db57ed0396e68f3d14e2325f279ebc839b36bc6aa68a5b8
+docfiles size=3281
RELOC/doc/latex/acmart/README details="Readme"
RELOC/doc/latex/acmart/acm-jdslogo.png
RELOC/doc/latex/acmart/acmart.bib
@@ -9248,8 +9248,8 @@ docfiles size=3268
RELOC/doc/latex/acmart/samples/samples.ins
RELOC/doc/latex/acmart/samples/sampleteaser.pdf
RELOC/doc/latex/acmart/samples/software.bib
-srccontainersize 62824
-srccontainerchecksum 40f91e64f43f5e3951a3ed8173d4c29b742689bf91b0348ceacab58432d0bc5c4b3258335215dabd2326e2f11315900a43d3d3b8e812b5aecc3527ff918163cd
+srccontainersize 62868
+srccontainerchecksum e4417e81b1b993198d9a3c7f3017de0e8c089d0e381bd200c40cbfbacfa888281bd552216ec553c73007197772751031ac051f4970fa2fe42c6e457cd79a07eb
srcfiles size=75
RELOC/source/latex/acmart/Makefile
RELOC/source/latex/acmart/acmart.dtx
@@ -9268,7 +9268,7 @@ catalogue-contact-repository https://github.com/borisveytsman/acmart/
catalogue-ctan /macros/latex/contrib/acmart
catalogue-license lppl1.3
catalogue-topics class comp-sci comp-theory engineering journalpub
-catalogue-version 2.07
+catalogue-version 2.08
name acmconf
category Package
@@ -18716,7 +18716,7 @@ catalogue-version 2.0
name amsmath
category Package
-revision 68720
+revision 71408
catalogue latex-amsmath
shortdesc AMS mathematical facilities for LaTeX
relocated 1
@@ -18732,11 +18732,11 @@ longdesc contributed packages add still further to its appeal; examples
longdesc are empheq, which provides functions for decorating and
longdesc highlighting mathematics, and ntheorem, for specifying theorem
longdesc (and similar) definitions.
-containersize 31276
-containerchecksum 39e87ac8255c577fa8b1c0cd155d4fa21bd0c0f789141e6d1e75cad1c34a78bf5fa44277342ae9d93d80f4f88f31ca9f88dba9c592ceba04961e601e3e8e9650
-doccontainersize 2420748
-doccontainerchecksum b1dff0cb1c09a184dfe9dd890ccb6e9e5bd5d2b109ce0b98336ca4cc1a45d4f398eb7822d02e9210c611c98a49fe41884b103e1b1e4f7c6b3b29b4de5be2ebf0
-docfiles size=718
+containersize 31312
+containerchecksum 443fb13e0aa80a73510166fce72e3f6b885ad743796c6509f1752ae070d65f909c6fae412096c740b84244aba958c6202956b2cddc4fefe5a5f591f91d6e6767
+doccontainersize 2421884
+doccontainerchecksum 4e826da3394194259ef9a9dabd4ce2743b6187ded19e56884e027ade7a6f5576e8668719c1290a2aa6f6e28513af6d6550aead947a7704140926f22187575a74
+docfiles size=717
RELOC/doc/latex/amsmath/README.md details="General README" language="en"
RELOC/doc/latex/amsmath/ams-external.txt
RELOC/doc/latex/amsmath/ams-internal.txt
@@ -18758,8 +18758,8 @@ docfiles size=718
RELOC/doc/latex/amsmath/technote.tex
RELOC/doc/latex/amsmath/testmath.pdf details="Examples paper" language="en"
RELOC/doc/latex/amsmath/testmath.tex
-srccontainersize 66348
-srccontainerchecksum c1d052395b6f6291a269d610f713ce01383940685af91b1c2dd711b73f5d765e801524a538687d7f8cde055bb1dda9ca11900e4e8b58182b3cd792fdfbaca6be
+srccontainersize 66444
+srccontainerchecksum 85b545ca6c2d9ad08d7edc3af668b2e9e05d363cf1ab50e16d7be22a3010e8cbf23b02c3f98698f020dbb1253ff12185d1b5bd9c16b47c06072846299f383d65
srcfiles size=82
RELOC/source/latex/amsmath/amsbsy.dtx
RELOC/source/latex/amsmath/amsbsy.ins
@@ -28806,7 +28806,7 @@ catalogue-version 1.0
name babel
category Package
-revision 71296
+revision 71407
shortdesc Multilingual support for LaTeX, LuaLaTeX, XeLaTeX, and Plain TeX
relocated 1
longdesc This package manages culturally-determined typographical (and
@@ -28820,23 +28820,23 @@ longdesc about 300 languages from around the World, including many
longdesc written in non-Latin and RTL scripts. Many of them work with
longdesc pdfLaTeX, as well as with XeLaTeX and LuaLaTeX, out of the box.
longdesc A few even work with plain formats.
-containersize 231316
-containerchecksum b3bd7ce1eae7cfcf17b715adb0bc53a52247b8e13030d3413572fe03ce322763a9f42b8b31e602be18817f87a9912f58e5a0914d6b95a890b87a7740c9a017a4
-doccontainersize 1052892
-doccontainerchecksum ef5feb488e80aaa29a7f3a6fca989a83425db18151b56cc6099649f5d4426fe2496785eee1eeefedca91ed2e7bcdb7300c9af5f6c12ce34870f4382086189a9c
+containersize 231784
+containerchecksum 5b424af82928c38ffa9cbd7d77ea22ade5d246de0473501704008530cf814908e4e0d8834588a10e5f63f546f1ff7c29f62303388dc3308c9e7e65b9ecc22895
+doccontainersize 1055920
+doccontainerchecksum 760d4f84dde210a155c372e1cb6a9de44e0213ba2b7d6a9cd6d0d921e57c3cbfb7516eb328fc7c64874c58a9ad2e91542534b88dff6e6d0f0cc4249a583bf712
docfiles size=264
RELOC/doc/latex/babel/README.md details="Readme"
RELOC/doc/latex/babel/babel-code.pdf details="Code documentation"
RELOC/doc/latex/babel/babel.pdf details="User guide"
-srccontainersize 889312
-srccontainerchecksum b5c620f71858f20b9c448a143861fb1b789771cb1d05f23310a8d4d0815c2a24f68ad64bd9d831f966fbdaf86012a66de5ab504f183940387629cda4e195076c
+srccontainersize 889716
+srccontainerchecksum d8f5bfb29734570548a301fdb267f66a3fe711a808f4a19d0317f051d55184bdad2cd0a2f5e26e5f419b0dd59cdb9c716c3d605b1dc73a4f66375657df8e1056
srcfiles size=473
RELOC/source/latex/babel/babel.dtx
RELOC/source/latex/babel/babel.ins
RELOC/source/latex/babel/bbcompat.dtx
RELOC/source/latex/babel/bbidxglo.dtx
RELOC/source/latex/babel/locale.zip
-runfiles size=1267
+runfiles size=1268
RELOC/makeindex/babel/bbglo.ist
RELOC/makeindex/babel/bbind.ist
RELOC/tex/generic/babel/UKenglish.sty
@@ -29808,7 +29808,7 @@ catalogue-contact-repository https://github.com/latex3/babel
catalogue-ctan /macros/latex/required/babel/base
catalogue-license lppl1.3
catalogue-topics multilingual expl3
-catalogue-version 24.5
+catalogue-version 24.6
name babel-albanian
category Package
@@ -92275,7 +92275,7 @@ catalogue-version 0.915
name cyrillic
category Package
-revision 63613
+revision 71408
catalogue latex-cyrillic
shortdesc Support for Cyrillic fonts in LaTeX
relocated 1
@@ -92286,11 +92286,11 @@ longdesc cover (between them) pretty much every language that is written
longdesc in a Cyrillic alphabet. This directory is part of the LaTeX
longdesc "required" distribution.
depend cyrillic-bin
-containersize 15776
-containerchecksum 1b8889d33e5433b32d0b84bd31ef7ea96fe338456ef8e1732ea6c254dfe2f21d3600766b1e51bafa4ddbf0144e8420ad8ba6ad593eaa32c3d45dde99b0b4ec8c
-doccontainersize 926868
-doccontainerchecksum b0b1d24d3e8887c5b9c251922157de7cf042845009c07e62fd324ba850dff9f39bc6ebad04ab216ad69070da93f77f68693d1be57cd15b038374f0253329c8fa
-docfiles size=301
+containersize 15772
+containerchecksum 07ec8db4403e29d8ea63c30c36611ccbbb2c8b4ac348a02307c37248fed43c9c2df5584583c73b48cf3b6df9de9509a75829aed97cd08fd908d084e06eac716f
+doccontainersize 921768
+doccontainerchecksum 91cabca8b7a69617c106f7c5eea0a83911c3a877b344b403e7c1159d4d72e3d4bc6aedb704d00ee66c715b45dd29c607233ab83c6abc1ba7e33d295c12dc56c9
+docfiles size=299
RELOC/doc/latex/cyrillic/README.md details="Readme"
RELOC/doc/latex/cyrillic/changes.txt
RELOC/doc/latex/cyrillic/cyinpenc.pdf
@@ -92302,8 +92302,8 @@ docfiles size=301
RELOC/doc/latex/cyrillic/ot2cmams.pdf
RELOC/doc/latex/cyrillic/ot2cmlh.pdf
RELOC/doc/latex/cyrillic/t2lhfnt.pdf
-srccontainersize 21412
-srccontainerchecksum 4dc564f475a883cb75ae0fad6b5aecb936c1ab9cdaae857dc7cdfb3d8f06f6534542c36b053cc7b74f455a2646f081060c670b35f1eda5fa69418b1c1f97e5dd
+srccontainersize 21480
+srccontainerchecksum 19bdd933ca59ff95d3d45852a3cfccd30b581eff85df4e9fc4386251ca0462557d30f4026912893be7b14abf15c6c12ee5d3064f682e91e06a9b9cbabf22e877
srcfiles size=46
RELOC/source/latex/cyrillic/cyinpenc.dtx
RELOC/source/latex/cyrillic/cyoutenc.dtx
@@ -92425,7 +92425,6 @@ runfiles size=133
catalogue-ctan /macros/latex/required/cyrillic
catalogue-license lppl1.3
catalogue-topics cyrillic
-catalogue-version 2022-06-01-PL1
name cyrillic-bin
category TLCore
@@ -114501,7 +114500,7 @@ catalogue-topics font font-type1 font-archaic
name eplain
category Package
-revision 70992
+revision 71409
shortdesc Extended plain TeX macros
longdesc An extended version of the plain TeX format, adding support for
longdesc bibliographies, tables of contents, enumerated lists, verbatim
@@ -114512,17 +114511,19 @@ longdesc notably graphics, graphicx (an extended version of graphics),
longdesc color, autopict (a package instance of the LaTeX picture code),
longdesc psfrag, and url.
depend babel
+depend cm
depend dehyph
depend eplain.ARCH
depend hyph-utf8
depend knuth-lib
+depend latex-fonts
depend pdftex
depend plain
-execute AddFormat name=eplain engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx *eplain.ini" fmttriggers=babel,dehyph,hyph-utf8,knuth-lib,plain
-containersize 43080
-containerchecksum 69834b9c47c16267e01be4b2f4a29849ebc6a2982d01c3e0c303ea43fb48a28b632ffdcd028904cce6b4e1fc60835f5ddb9237a06659e33712061b4858e99981
+execute AddFormat name=eplain engine=pdftex patterns=language.dat options="-translate-file=cp227.tcx *eplain.ini" fmttriggers=babel,cm,dehyph,hyph-utf8,knuth-lib,latex-fonts,plain
+containersize 43096
+containerchecksum bc5d2e8589b8029987a75fa89189f0b61a5d778ca31221eb86fe47ae9e5c6b981f7b41b8f8b74fdd98f897c38cf1c09ccf97ffcfc4b20322786be4a7b841186c
doccontainersize 1003736
-doccontainerchecksum 9feceea26a079b4e50822dd2b2a12f0d4637f1cf03cb852cd80f5a21f9aa8a1f647a304ee54582e710389ea3d864cc780091f223a2277cf598667ffa74980817
+doccontainerchecksum d79698f41084d1608153947b8786dfef060cb84260d0151ac7a36cc6e86fdc85e259cc04092636b01312adecc0c18139affb9ff592d0a511b4055a8c3a7e4a1d
docfiles size=552
texmf-dist/doc/eplain/AUTHORS
texmf-dist/doc/eplain/COPYING
@@ -114543,7 +114544,7 @@ docfiles size=552
texmf-dist/doc/man/man1/eplain.1
texmf-dist/doc/man/man1/eplain.man1.pdf
srccontainersize 288968
-srccontainerchecksum c9b2b4b5573575112ca1d2ab97c55eb7933279e9ae3382f1db637c17b10216fc6cc208dad8b1b2a09d541a3047e8f1344cb41cc782ed6b1bf5c4113ed4feb9c0
+srccontainerchecksum b0213d84adf1b09817af081527262448043127a5cca4555007cf0e724ff5e8f3485107f99d8a36f8e6adfe0d10aef6038b663474bc314bc3afc4d9d832134665
srcfiles size=110
texmf-dist/source/eplain/eplain-source-3.14.zip
texmf-dist/source/eplain/xeplain.tex
@@ -128891,7 +128892,7 @@ catalogue-topics tut-latex
name firstaid
category Package
-revision 70308
+revision 71408
catalogue latex-firstaid
shortdesc First aid for external LaTeX files and packages that need updating
relocated 1
@@ -128901,20 +128902,20 @@ longdesc LaTeX kernel that are not yet reflected in the package's or
longdesc class's code. The file latex2e-first-aid-for-external-files.ltx
longdesc provided by this package is meant to be loaded during format
longdesc generation and not by the user.
-containersize 3328
-containerchecksum 884653f9c67d3cc7d9139856b9e773d652e649c666cdbfb1dcaaf0642ad2efad5808d333bd61d197fcbcdb1b9f371c21d27337397e5b5c5784ce531c33f39c2c
-doccontainersize 259812
-doccontainerchecksum 4dc37e149949753b3adf0d981f60aacceb4c7ee5af7d1d2e89d71686d1310c028aba40452da0dcc1b027aa1ce31e27d64e511fd3f08e9aa836410f0602e5899d
-docfiles size=68
+containersize 3708
+containerchecksum 2330260781b080450d4225109d0ae4e041097c4249c8fad0cb0162425709c43b7e4b979c78d69e673126cf90bc9c313de52b8947d3c9a691622590554d1979e1
+doccontainersize 267336
+doccontainerchecksum d6f7bb9918c058bfd6de8860627c19949115ff891aa18d0a17d231e115e2fd32ff3048ef6d9634a705b0618dbb667f94beaae7cd6279c745b92988b41f0e78fd
+docfiles size=70
RELOC/doc/latex/firstaid/README.md details="Readme"
RELOC/doc/latex/firstaid/changes.txt
RELOC/doc/latex/firstaid/latex2e-first-aid-for-external-files.pdf details="Package documentation"
-srccontainersize 7716
-srccontainerchecksum 62fb7b01dd169b7396ea67299233e4f7ef2f699ce87fd685bc42bb0c0da96fb033c4b776423833e36fdd919faa75ce69c469050e7335f54720f4737eaeb4e1f7
-srcfiles size=7
+srccontainersize 8528
+srccontainerchecksum 3fced97262a364e1fdcc02433b69e5b6a1760ef40f9d228341f27556284118d8e26591d45a0b57869b0ab56c658217f70738045ab484ce16b3420ca2460a6063
+srcfiles size=8
RELOC/source/latex/firstaid/firstaid.ins
RELOC/source/latex/firstaid/latex2e-first-aid-for-external-files.dtx
-runfiles size=4
+runfiles size=5
RELOC/tex/latex/firstaid/filehook-ltx.sty
RELOC/tex/latex/firstaid/latex2e-first-aid-for-external-files.ltx
RELOC/tex/latex/firstaid/underscore-ltx.sty
@@ -128922,7 +128923,7 @@ catalogue-contact-home https://www.latex-project.org
catalogue-ctan /macros/latex/required/firstaid
catalogue-license lppl1.3c
catalogue-topics format bugfix
-catalogue-version 1.1c
+catalogue-version 1.1e
name fistrum
category Package
@@ -143165,7 +143166,7 @@ catalogue-version 1.1
name graphics
category Package
-revision 66204
+revision 71408
catalogue latex-graphics
shortdesc The LaTeX standard graphics bundle
relocated 1
@@ -143175,11 +143176,11 @@ longdesc of text in LaTeX documents. It comprises the packages color,
longdesc graphics, graphicx, trig, epsfig, keyval, and lscape.
depend graphics-cfg
depend graphics-def
-containersize 15836
-containerchecksum cd36d380c8315829f3bf711dd970d5460f00e19961671714dbdf5928c2e842d33438221ee1fd9e45061a2adabb7f75eb34209914229eca872f2bb7fe7b346a16
-doccontainersize 2503676
-doccontainerchecksum b2a23c52e19eb8f6eeb53951f5fee9015f6d0ebeeb8a97f1bf4db217498ddb27b62d028b3554be3e5ec3b866d1d4bcce6bc805761e981c718f123f6688ba153c
-docfiles size=779
+containersize 15892
+containerchecksum f171662caf5d2f8b6bec3ed7bd7617c9fb3dcc22468f6f577425cf088af944638093999a619330761fa52c78c5f4506ed4db6c0d507c3638824de9da27d4518a
+doccontainersize 2490548
+doccontainerchecksum c78f041950cdbc008823fa84216d631e29a779e270aba0227f54399a904b86a4d8e189c6bbe7366564fe0110d6193c4030bd3a9194bc4e5a7151a50053d98bd2
+docfiles size=775
RELOC/doc/latex/graphics/README.md details="Readme"
RELOC/doc/latex/graphics/cat.eps
RELOC/doc/latex/graphics/changes.txt
@@ -143197,8 +143198,8 @@ docfiles size=779
RELOC/doc/latex/graphics/rotex.pdf
RELOC/doc/latex/graphics/rotex.tex
RELOC/doc/latex/graphics/trig.pdf
-srccontainersize 57072
-srccontainerchecksum 45f998e3729e81f50cf7c064d1a3926c18007069b4a89b478e87a6f97f3e6820eb5d58be6025f374b05d9c443c8a101918ebff84de512366f5415e041356a848
+srccontainersize 57048
+srccontainerchecksum 8775d58a83f6be2a1a1dbd78bd37160b044c9e2e190ec1cf16126dd5f17c495be6903fd92ef229399e10b5dd642bf662f8afeb28f61a0eb91ca40f80538b94a1
srcfiles size=69
RELOC/source/latex/graphics/color.dtx
RELOC/source/latex/graphics/drivers.dtx
@@ -162162,7 +162163,7 @@ catalogue-version 2.7
name jadetex
category Package
-revision 71362
+revision 71409
shortdesc Macros supporting Jade DSSSL output
longdesc Macro package on top of LaTeX to typeset TeX output of the Jade
longdesc DSSSL implementation.
@@ -162208,6 +162209,7 @@ depend psnfss
depend refcount
depend rerunfilecheck
depend stmaryrd
+depend stringenc
depend symbol
depend tex
depend tex-ini-files
@@ -162219,12 +162221,12 @@ depend uniquecounter
depend url
depend wasysym
depend zapfding
-execute AddFormat name=jadetex engine=pdftex patterns=language.dat options="*jadetex.ini" fmttriggers=l3backend,l3kernel,latex,firstaid,babel,cm,hyphen-base,knuth-lib,latex-fonts,tex-ini-files,unicode-data,amsfonts,bigintcalc,bitset,colortbl,cyrillic,dehyph,ec,etoolbox,fancyhdr,gettitlestring,graphics,graphics-cfg,graphics-def,hycolor,hyperref,hyph-utf8,iftex,infwarerr,intcalc,kvdefinekeys,kvoptions,kvsetkeys,ltxcmds,marvosym,passivetex,pdfescape,pdftexcmds,psnfss,refcount,rerunfilecheck,stmaryrd,symbol,tipa,tools,ulem,uniquecounter,url,wasysym,zapfding
-execute AddFormat name=pdfjadetex engine=pdftex patterns=language.dat options="*pdfjadetex.ini" fmttriggers=l3backend,l3kernel,latex,firstaid,babel,cm,hyphen-base,knuth-lib,latex-fonts,tex-ini-files,unicode-data,amsfonts,bigintcalc,bitset,colortbl,cyrillic,dehyph,ec,etoolbox,fancyhdr,gettitlestring,graphics,graphics-cfg,graphics-def,hycolor,hyperref,hyph-utf8,iftex,infwarerr,intcalc,kvdefinekeys,kvoptions,kvsetkeys,ltxcmds,marvosym,passivetex,pdfescape,pdftexcmds,psnfss,refcount,rerunfilecheck,stmaryrd,symbol,tipa,tools,ulem,uniquecounter,url,wasysym,zapfding
-containersize 29888
-containerchecksum abd6b194f9a2eeca9d51bb7e896b851f03b7a3ec8d90fb7e1579881c279cda994059b2b4b6904cc7582b161e81965a62b266f8ed7edb1941273676da61756524
-doccontainersize 31788
-doccontainerchecksum 35f3f1f720ac337630c652c189a3c62155b0458ecf6292c8e33ce21662615500242bbf55d393210e4dfbcdf9e0fb2821e38cd6584a2254b8f6eae89c2041edee
+execute AddFormat name=jadetex engine=pdftex patterns=language.dat options="*jadetex.ini" fmttriggers=l3backend,l3kernel,latex,firstaid,babel,cm,hyphen-base,knuth-lib,latex-fonts,tex-ini-files,unicode-data,amsfonts,bigintcalc,bitset,colortbl,cyrillic,dehyph,ec,etoolbox,fancyhdr,gettitlestring,graphics,graphics-cfg,graphics-def,hycolor,hyperref,hyph-utf8,iftex,infwarerr,intcalc,kvdefinekeys,kvoptions,kvsetkeys,ltxcmds,marvosym,passivetex,pdfescape,pdftexcmds,psnfss,refcount,rerunfilecheck,stmaryrd,stringenc,symbol,tipa,tools,ulem,uniquecounter,url,wasysym,zapfding
+execute AddFormat name=pdfjadetex engine=pdftex patterns=language.dat options="*pdfjadetex.ini" fmttriggers=l3backend,l3kernel,latex,firstaid,babel,cm,hyphen-base,knuth-lib,latex-fonts,tex-ini-files,unicode-data,amsfonts,bigintcalc,bitset,colortbl,cyrillic,dehyph,ec,etoolbox,fancyhdr,gettitlestring,graphics,graphics-cfg,graphics-def,hycolor,hyperref,hyph-utf8,iftex,infwarerr,intcalc,kvdefinekeys,kvoptions,kvsetkeys,ltxcmds,marvosym,passivetex,pdfescape,pdftexcmds,psnfss,refcount,rerunfilecheck,stmaryrd,stringenc,symbol,tipa,tools,ulem,uniquecounter,url,wasysym,zapfding
+containersize 29892
+containerchecksum 3685480de81ce324980e9150226e80967b081f6e5334ec6e74d181ef488e013674a0771c071e38840718c2116a430e517ae41f19219b35867cdcc712c6c0be02
+doccontainersize 31792
+doccontainerchecksum 434181697678495f2c7832affe5969f773b466e3f72f8de7b968312d661a1422072d061e8560ded215b0882ab9cc5d5c3933a1ede2a0df8716240010941b9c3b
docfiles size=34
texmf-dist/doc/man/man1/jadetex.1
texmf-dist/doc/man/man1/jadetex.man1.pdf
@@ -162243,7 +162245,7 @@ docfiles size=34
texmf-dist/doc/otherformats/jadetex/base/releasenotes.dsl
texmf-dist/doc/otherformats/jadetex/base/releasenotes.xml
srccontainersize 19312
-srccontainerchecksum 8af4dcad3792620be7e3a749db20af8d9be1d758ebc3cf5f0b2553d7325e4c4ce5010acfdc8218063d3db0d7d7ed012c5938a354408f1bd49461b202c6035052
+srccontainerchecksum f7bb4d288b09d22669024ff35414051350640dbd4104d15022c40dd109c0b5ab19c2f6f9323767aec9174a3624688b244e995f7317c4da575e5e42d7307ecbb5
srcfiles size=21
texmf-dist/source/jadetex/base/Makefile
texmf-dist/source/jadetex/base/jadetex.dtx
@@ -182137,7 +182139,7 @@ catalogue-version 2.1a
name latex
category Package
-revision 69959
+revision 71408
shortdesc A TeX macro package that defines LaTeX
relocated 1
longdesc LaTeX is a widely-used macro package for TeX, providing many
@@ -182155,11 +182157,11 @@ longdesc user commands, font selection and control, class and package
longdesc writing, font encodings, configuration options and modification
longdesc of LaTeX. For downloading details, see the linked catalogue
longdesc entries above.
-containersize 238204
-containerchecksum 3ab86cdf4674057dcb9ad870b6130d79187543dcbe7f441a95e4939362ad1544f4d94fe08c02fbf96307e50ee8c8cf69f168a96eaac7756532d2e346d3fed0e3
-doccontainersize 34918312
-doccontainerchecksum 9b385109a587ca7193a88d1a1084085a7d53bf7edc8e23471a181e127eef18c8abf2bd3727dc9a547369bfdf0514389499d868575c84619e2f0b159bfae83013
-docfiles size=11016
+containersize 248172
+containerchecksum 8b7e65fa57ddf04c2b8ca88ff76fe603577c023fd564c32cd46643619d7e0b881c1d54092d6764965d4292ff8571783b89261c0aba53dcc2af69a450b9cc553d
+doccontainersize 35372352
+doccontainerchecksum c4eca6f45c3260e391f714948bf0788193d1332d1a2ef053de870dfb49fcfe2e5c032c2b2e18ee014b4dd4a2b9269627d4dd86bfb79295361c41009bbbcfa0c6
+docfiles size=11212
RELOC/doc/latex/base/README.md
RELOC/doc/latex/base/alltt.pdf
RELOC/doc/latex/base/bugs.txt
@@ -182298,6 +182300,8 @@ docfiles size=11016
RELOC/doc/latex/base/ltnews37.tex
RELOC/doc/latex/base/ltnews38.pdf
RELOC/doc/latex/base/ltnews38.tex
+ RELOC/doc/latex/base/ltnews39.pdf
+ RELOC/doc/latex/base/ltnews39.tex
RELOC/doc/latex/base/ltpara-code.pdf
RELOC/doc/latex/base/ltpara-code.tex
RELOC/doc/latex/base/ltpara-doc.pdf
@@ -182340,9 +182344,9 @@ docfiles size=11016
RELOC/doc/latex/base/utf8ienc.pdf
RELOC/doc/latex/base/webcomp.err
RELOC/doc/latex/base/webcomp.pdf
-srccontainersize 750224
-srccontainerchecksum 050c974eb0e7c1ce5f5609df323af000f6a2a28cd786bb3487e12c65b08feabbd88d71d8f543a1dda7a6ebd89eb99a1fb3f33e9ab495f20925b77203e4e2ec8d
-srcfiles size=1107
+srccontainersize 780552
+srccontainerchecksum 5ea8abf2e82be4a3dd5d160f733685f540d4d83a9b558655bd25f05a067d618e3cfeb55ebfe8e4dacbfd9ab7b1cee4cd3cca4f6af83fdaba509e6107bf4a9e83
+srcfiles size=1151
RELOC/source/latex/base/alltt.dtx
RELOC/source/latex/base/alltt.ins
RELOC/source/latex/base/classes.dtx
@@ -182424,6 +182428,8 @@ srcfiles size=1107
RELOC/source/latex/base/ltsockets.dtx
RELOC/source/latex/base/ltspace.dtx
RELOC/source/latex/base/lttab.dtx
+ RELOC/source/latex/base/lttagging.dtx
+ RELOC/source/latex/base/lttemplates.dtx
RELOC/source/latex/base/lttextcomp.dtx
RELOC/source/latex/base/ltthm.dtx
RELOC/source/latex/base/ltvers.dtx
@@ -182449,7 +182455,7 @@ srcfiles size=1107
RELOC/source/latex/base/tulm.ins
RELOC/source/latex/base/unpack.ins
RELOC/source/latex/base/utf8ienc.dtx
-runfiles size=674
+runfiles size=706
RELOC/makeindex/latex/gglo.ist
RELOC/makeindex/latex/gind.ist
RELOC/tex/latex/base/alltt.sty
@@ -182466,6 +182472,7 @@ runfiles size=674
RELOC/tex/latex/base/bk12.clo
RELOC/tex/latex/base/book.cls
RELOC/tex/latex/base/book.sty
+ RELOC/tex/latex/base/checkencodingsubset.tex
RELOC/tex/latex/base/cp1250.def
RELOC/tex/latex/base/cp1252.def
RELOC/tex/latex/base/cp1257.def
@@ -184585,7 +184592,7 @@ catalogue-version 2024-06-01 pre-release 0
name latex-lab
category Package
-revision 68720
+revision 71408
shortdesc LaTeX laboratory
relocated 1
longdesc This bundle holds optional files that are loaded in certain
@@ -184598,11 +184605,11 @@ longdesc kernel and the corresponding file in this bundle will vanish.
longdesc Note that none of these files are directly user accessible in
longdesc documents (i.e., they aren't packages), so the process is
longdesc transparent to documents already using the new functionality.
-containersize 40640
-containerchecksum ede4176b7ca60193acd644f572db5d1611a6940027f7641ca755634401b19e20eca65915d57e6a0859e465e818d6854ca98dc16106782bee0f817d776c056a10
-doccontainersize 7606924
-doccontainerchecksum eda6ca871645fd6fe60424329e4c4d8d9817039d9cc30bd6f710c30675a3e8f0b7f7523b081b871e9e5abbf62a0ce0e22854aa443684818771ce2022f4887e7e
-docfiles size=2838
+containersize 43088
+containerchecksum c51167b3ac687afa863e1d41da232394ac4c9ea7b53952b6e7f11f0353d6154914dd04e4100bbbf015560682db5b827807a98b552bc5eda7ec4cf97f2390fc5d
+doccontainersize 8509724
+doccontainerchecksum da2349d22c117a6eb955cc20aee5c213c8f0635f174157f25304876e841758c4fc63122c2e06ae64ff716763345b32e32c89fdcd9c14bfefedf2fa1ef2d0efc9
+docfiles size=3094
RELOC/doc/latex/latex-lab/README.md details="Readme"
RELOC/doc/latex/latex-lab/blocks-code.pdf
RELOC/doc/latex/latex-lab/blocks-code.tex
@@ -184620,6 +184627,7 @@ docfiles size=2838
RELOC/doc/latex/latex-lab/latex-lab-float.pdf
RELOC/doc/latex/latex-lab/latex-lab-footnotes.pdf
RELOC/doc/latex/latex-lab/latex-lab-graphic.pdf
+ RELOC/doc/latex/latex-lab/latex-lab-marginpar.pdf
RELOC/doc/latex/latex-lab/latex-lab-math.pdf
RELOC/doc/latex/latex-lab/latex-lab-mathpkg.pdf
RELOC/doc/latex/latex-lab/latex-lab-mathtools.pdf
@@ -184631,12 +184639,13 @@ docfiles size=2838
RELOC/doc/latex/latex-lab/latex-lab-table.pdf
RELOC/doc/latex/latex-lab/latex-lab-testphase.pdf
RELOC/doc/latex/latex-lab/latex-lab-text.pdf
+ RELOC/doc/latex/latex-lab/latex-lab-title.pdf
RELOC/doc/latex/latex-lab/latex-lab-toc-hyperref-changes.pdf
RELOC/doc/latex/latex-lab/latex-lab-toc-kernel-changes.pdf
RELOC/doc/latex/latex-lab/latex-lab-toc.pdf
-srccontainersize 109144
-srccontainerchecksum acc092bf6cc685cf8c9d5a0cd5af47022c3936ff0e509a3743ae22ab888daffd0c1b7b657c5a1e1019232c4047e89626963ec1784b406ad16d3dd3f10f6e19b7
-srcfiles size=144
+srccontainersize 120348
+srccontainerchecksum c59ee81ddbe526ce29bf6470ca29852c2881ad1b20fc37ae14b32460a94e656dd6ad73e393946d048b088a6e796fcb79e5cbf6e4e425db74a4f5cf29a8ad2ae6
+srcfiles size=158
RELOC/source/latex/latex-lab/documentmetadata-support.dtx
RELOC/source/latex/latex-lab/latex-lab-amsmath.dtx
RELOC/source/latex/latex-lab/latex-lab-bib.dtx
@@ -184645,6 +184654,7 @@ srcfiles size=144
RELOC/source/latex/latex-lab/latex-lab-float.dtx
RELOC/source/latex/latex-lab/latex-lab-footnotes.dtx
RELOC/source/latex/latex-lab/latex-lab-graphic.dtx
+ RELOC/source/latex/latex-lab/latex-lab-marginpar.dtx
RELOC/source/latex/latex-lab/latex-lab-math.dtx
RELOC/source/latex/latex-lab/latex-lab-mathpkg.dtx
RELOC/source/latex/latex-lab/latex-lab-mathtools.dtx
@@ -184656,11 +184666,12 @@ srcfiles size=144
RELOC/source/latex/latex-lab/latex-lab-table.dtx
RELOC/source/latex/latex-lab/latex-lab-testphase.dtx
RELOC/source/latex/latex-lab/latex-lab-text.dtx
+ RELOC/source/latex/latex-lab/latex-lab-title.dtx
RELOC/source/latex/latex-lab/latex-lab-toc-hyperref-changes.dtx
RELOC/source/latex/latex-lab/latex-lab-toc-kernel-changes.dtx
RELOC/source/latex/latex-lab/latex-lab-toc.dtx
RELOC/source/latex/latex-lab/latex-lab.ins
-runfiles size=88
+runfiles size=99
RELOC/tex/latex/latex-lab/bib-latex-lab-testphase.ltx
RELOC/tex/latex/latex-lab/block-latex-lab-testphase.ltx
RELOC/tex/latex/latex-lab/documentmetadata-support.ltx
@@ -184680,6 +184691,7 @@ runfiles size=88
RELOC/tex/latex/latex-lab/latex-lab-testphase-firstaid.sty
RELOC/tex/latex/latex-lab/latex-lab-testphase-float.sty
RELOC/tex/latex/latex-lab/latex-lab-testphase-graphic.sty
+ RELOC/tex/latex/latex-lab/latex-lab-testphase-marginpar.sty
RELOC/tex/latex/latex-lab/latex-lab-testphase-math.sty
RELOC/tex/latex/latex-lab/latex-lab-testphase-minipage.sty
RELOC/tex/latex/latex-lab/latex-lab-testphase-new-or-1.sty
@@ -184687,7 +184699,9 @@ runfiles size=88
RELOC/tex/latex/latex-lab/latex-lab-testphase-sec.sty
RELOC/tex/latex/latex-lab/latex-lab-testphase-table.sty
RELOC/tex/latex/latex-lab/latex-lab-testphase-text.sty
+ RELOC/tex/latex/latex-lab/latex-lab-testphase-title.sty
RELOC/tex/latex/latex-lab/latex-lab-testphase-toc.sty
+ RELOC/tex/latex/latex-lab/marginpar-latex-lab-testphase.ltx
RELOC/tex/latex/latex-lab/math-latex-lab-testphase.ltx
RELOC/tex/latex/latex-lab/minipage-latex-lab-testphase.ltx
RELOC/tex/latex/latex-lab/new-or-1-latex-lab-testphase.ltx
@@ -184697,9 +184711,11 @@ runfiles size=88
RELOC/tex/latex/latex-lab/phase-III-latex-lab-testphase.ltx
RELOC/tex/latex/latex-lab/sec-latex-lab-testphase.ltx
RELOC/tex/latex/latex-lab/table-latex-lab-testphase.ltx
+ RELOC/tex/latex/latex-lab/tabular-latex-lab-testphase.ltx
RELOC/tex/latex/latex-lab/tagpdf-latex-lab-testphase.ltx
RELOC/tex/latex/latex-lab/tagpdf-ns-latex-lab.def
RELOC/tex/latex/latex-lab/text-latex-lab-testphase.ltx
+ RELOC/tex/latex/latex-lab/title-latex-lab-testphase.ltx
RELOC/tex/latex/latex-lab/toc-latex-lab-testphase.ltx
catalogue-contact-home https://www.latex-project.org
catalogue-ctan /macros/latex/required/latex-lab
@@ -204863,22 +204879,23 @@ catalogue-version 1.1
name luahbtex
category TLCore
-revision 71362
+revision 71409
shortdesc LuaTeX with HarfBuzz library for glyph shaping
depend cm
depend etex
depend hyph-utf8
depend hyphen-base
+depend knuth-lib
depend luahbtex.ARCH
depend luatex
depend plain
depend tex-ini-files
depend unicode-data
-execute AddFormat name=luahbtex engine=luahbtex patterns=language.def,language.dat.lua options="luatex.ini" fmttriggers=cm,etex,hyphen-base,plain,tex-ini-files,unicode-data,hyph-utf8
-containersize 448
-containerchecksum 70280ef8e7a81029f3420330713ed804444d47390ad1ff07c2efcb6781f5a234d03c97251a23223956cf79d77f16ba2ab429e28fb5262baba92ba473deba7177
+execute AddFormat name=luahbtex engine=luahbtex patterns=language.def,language.dat.lua options="luatex.ini" fmttriggers=cm,etex,hyphen-base,knuth-lib,plain,tex-ini-files,unicode-data,hyph-utf8
+containersize 460
+containerchecksum febc3c88887bd62afcf0f6a71b1e6f80fdaff91fcee50b7e23c94e2ba9ae3ee1cf614f1e8ad6d4ad8552a95488e30cf6c652be7443e7ce249c1b1d91cdd04b68
doccontainersize 30240
-doccontainerchecksum 649bd6592ace5bf1f8e7b840ded42e222706f23d98c66ccee3db8e1aecbf387a3bc4c5fb166aad699cb7d569b5cd2cc931ada7857ec2b1cef0c73cde4202fe28
+doccontainerchecksum 42b7a48bc2bb2f94486a2d1090698188d6a76a9a6d31d76d7e7d068fa1ce9e53053efca19f42092b623affdcb9e4124094e8f1fb1363f255f80817898724cfdb
docfiles size=10
texmf-dist/doc/man/man1/luahbtex.1
texmf-dist/doc/man/man1/luahbtex.man1.pdf
@@ -205168,23 +205185,24 @@ catalogue-version 0.973
name luajittex
category TLCore
-revision 71366
+revision 71409
shortdesc LuaTeX with just-in-time (jit) compiler, with and without HarfBuzz
depend cm
depend etex
depend hyph-utf8
depend hyphen-base
+depend knuth-lib
depend luajittex.ARCH
depend luatex
depend plain
depend tex-ini-files
depend unicode-data
-execute AddFormat name=luajithbtex engine=luajithbtex options="luatex.ini" patterns=language.def,language.dat.lua fmttriggers=cm,etex,hyphen-base,plain,tex-ini-files,unicode-data,hyph-utf8,luatex
-execute AddFormat name=luajittex engine=luajittex options="luatex.ini" patterns=language.def,language.dat.lua fmttriggers=cm,etex,hyphen-base,plain,tex-ini-files,unicode-data,hyph-utf8,luatex
-containersize 472
-containerchecksum 989669ccd2e4be767a65b6bbf774d188b1475237079dc94a01418d333d75d7e1d73e3d0976c175f5fa20e9ec920342f59e888aa50f2dd53b92d5a6c5e6760f5e
-doccontainersize 30356
-doccontainerchecksum 1ca740b6d1518cf6dde09eca20936f748d63f8c3b6ead94001a4edbabcda09f7b0b12b0a6372cdb4f598bcb774f351162a39be1e9b32b09355a71a7479be3f38
+execute AddFormat name=luajithbtex engine=luajithbtex options="luatex.ini" patterns=language.def,language.dat.lua fmttriggers=cm,etex,hyphen-base,knuth-lib,plain,tex-ini-files,unicode-data,hyph-utf8,luatex
+execute AddFormat name=luajittex engine=luajittex options="luatex.ini" patterns=language.def,language.dat.lua fmttriggers=cm,etex,hyphen-base,knuth-lib,plain,tex-ini-files,unicode-data,hyph-utf8,luatex
+containersize 484
+containerchecksum f6871ea1628238c57dc5aad427f52e3e9351f66fca8f405c0f82b0e89f5203fe900f4419a34b5955ea3d705021b2d2d5ec95a1d635f834ad1e8f7b769f8c3067
+doccontainersize 30360
+doccontainerchecksum a421dde006695841b25d4f9b9d0e7d75dd6fb33ef742fdc67c6691932296d2078fd72ac1ae3123acd4f08bdf605ca6bff494a87cde1a0423e3a92ca2c30b80df
docfiles size=20
texmf-dist/doc/man/man1/luajithbtex.1
texmf-dist/doc/man/man1/luajithbtex.man1.pdf
@@ -206341,7 +206359,7 @@ catalogue-topics maths luatex
name luatex
category TLCore
-revision 71366
+revision 71409
shortdesc The LuaTeX engine
longdesc LuaTeX is a greatly extended version of pdfTeX using Lua as an
longdesc embedded scripting language. The LuaTeX project's main
@@ -206354,16 +206372,17 @@ depend cm
depend etex
depend hyph-utf8
depend hyphen-base
+depend knuth-lib
depend luatex.ARCH
depend plain
depend tex-ini-files
depend unicode-data
-execute AddFormat name=dviluatex engine=luatex options="dviluatex.ini" patterns=language.def,language.dat.lua fmttriggers=cm,etex,hyphen-base,plain,tex-ini-files,unicode-data,hyph-utf8
-execute AddFormat name=luatex engine=luatex options="luatex.ini" patterns=language.def,language.dat.lua fmttriggers=cm,etex,hyphen-base,plain,tex-ini-files,unicode-data,hyph-utf8
-containersize 13612
-containerchecksum 5abaa2938c19070848a598fdef3e65b41d6e7c734d9d80e8d907e1566c0dae6091d16abcd086bdc93151f716c08cdd434d1a93fa77ac4b1570b3a280bd1a25b9
+execute AddFormat name=dviluatex engine=luatex options="dviluatex.ini" patterns=language.def,language.dat.lua fmttriggers=cm,etex,hyphen-base,knuth-lib,plain,tex-ini-files,unicode-data,hyph-utf8
+execute AddFormat name=luatex engine=luatex options="luatex.ini" patterns=language.def,language.dat.lua fmttriggers=cm,etex,hyphen-base,knuth-lib,plain,tex-ini-files,unicode-data,hyph-utf8
+containersize 13620
+containerchecksum d478f0a894bca83a2562874974d27cd349eb77a8c065cdf579332b9911711fa51ff65d6158973a4f321d147331ef32ea7335f38403df7e519c4a272c67293d99
doccontainersize 1962904
-doccontainerchecksum de5236487db00254f0a74c60c0ca01acaa64dc92d5303ec6b39268c59033eebdfcc00395caeaf8193db00f0518f8d8086915310c9651101820a78a037751caa3
+doccontainerchecksum 2a0767f42c9c0d3d81c007c00f98c5c7c5c2246287194926a4bef77f9f4b9c1610b6f18695445e9d73e89b18ab4f6b6721afa0904b8f9c451f227e5c1ef6013f
docfiles size=753
texmf-dist/doc/luatex/base/NEWS
texmf-dist/doc/luatex/base/graphics/luaharfbuzz.pdf
@@ -265680,18 +265699,19 @@ catalogue-version 1.4
name pmdraw
category Package
-revision 70900
+revision 71405
shortdesc Draw elements of the diagram monoids
relocated 1
longdesc This package allows you to draw elements of the diagram
longdesc monoids, commonly referred to as diagrams. The package provides
longdesc a lot of flexibility to draw most diagrams and can be
-longdesc customised as needed.
-containersize 6420
-containerchecksum 55284ed36c8aa78b9570390cce1c427526d4d9754aa3ddc2ddc0fd95d8f63ee182fe1fa748686bcb6091d7a60aae7c0a9f7e6958f58b7c4fb3e5a1c77043e5be
-doccontainersize 386828
-doccontainerchecksum db75cfb4c5f85c5675018f06b7993df0e8585ce6f7148930a56d05814b4929df1c30b55bbc34e1bdb393f4ade575e4a2b69680c23a4154f70c81854221eafd78
-docfiles size=145
+longdesc customised as needed. It makes use of the TikZ and keyval
+longdesc packages.
+containersize 7844
+containerchecksum 2ace1b6cf3130ef1d953fdd9657dc7ee4c5f3326309f0ee247462631dba6d7636ddccbfc7b7a7a146400e99a4109ac3b51671a4acc43cf68bc54f0b93ff25360
+doccontainersize 398692
+doccontainerchecksum 9b5272ce722f996a96ccea21196030f80ed6576504b362c4e24643951c9fca624d10466cdaf433e018d4de9d383fbaef66f4de6e1aa7cd2b8064eff61b346fac
+docfiles size=153
RELOC/doc/latex/pmdraw/README.md details="Readme"
RELOC/doc/latex/pmdraw/examples/example-1.tex
RELOC/doc/latex/pmdraw/examples/example-10.tex
@@ -265720,12 +265740,12 @@ docfiles size=145
RELOC/doc/latex/pmdraw/examples/example-9.tex
RELOC/doc/latex/pmdraw/pmdraw.pdf details="Package documentation"
RELOC/doc/latex/pmdraw/pmdraw.tex
-runfiles size=12
+runfiles size=19
RELOC/tex/latex/pmdraw/pmdraw.sty
-catalogue-ctan /graphics/pmdraw
+catalogue-ctan /graphics/pgf/contrib/pmdraw
catalogue-license lppl1.3
catalogue-topics maths physics graphics diagram pgf-tikz
-catalogue-version 1.3
+catalogue-version 1.4
name pmgraph
category Package
@@ -327447,7 +327467,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 71403
+revision 71410
shortdesc TeX Live infrastructure programs
longdesc Includes install-tl, tl-portable, rungs, etc.; not needed for
longdesc tlmgr to run but still ours. Not included in tlcritical.
@@ -327455,10 +327475,10 @@ depend texlive-scripts.ARCH
depend texlive.infra
execute addMap mathpple.map
postaction shortcut type=menu name="TeX Live command-line" cmd=TEXDIR/tlpkg/installer/tl-cmd.bat
-containersize 114384
-containerchecksum bc677a90c065fabb5f2a41ebcb7bce854cc61bdbc3f05b8c3cdb9613e7c6ce76fb76a4b6c8b4df3161121dfa900e352815654bbddeb1efb22863bacad476efde
+containersize 114364
+containerchecksum 4a4012303b0c2b84a8b83fd90a3eaacb7a2c99fea44e51ef76660c8a669fa3c7d938eea9a528fa7495941654610e91c74855be76625db65d91666a61bd0ad9d7
doccontainersize 435700
-doccontainerchecksum 0b6fabfef47461a5481f83f36f81374d1b8f440cc2e129ffcd49c9b11108835dc8002f73bebf71cb6b22bba4c9f302d0479d7d056f908f3b6a3b4aa8e5830e90
+doccontainerchecksum b1b9fe080f957976717147c175cf09de29f628051157dd73c009c4410aef3ab600225c6827138b75abc716d906967c85584624716cfec4f56bb4f0a7289af434
docfiles size=570
doc.html
texmf-dist/doc/man/man1/fmtutil-sys.1
@@ -343566,7 +343586,7 @@ catalogue-version 5.1
name tools
category Package
-revision 68941
+revision 71408
catalogue latex-tools
shortdesc The LaTeX standard tools bundle
relocated 1
@@ -343576,11 +343596,11 @@ longdesc afterpage, array, bm, calc, dcolumn, delarray, enumerate,
longdesc fileerr, fontsmpl, ftnright, hhline, indentfirst, layout,
longdesc longtable, multicol, rawfonts, shellesc, showkeys, somedefs,
longdesc tabularx, theorem, trace, varioref, verbatim, xr, and xspace.
-containersize 43420
-containerchecksum 6da3f34edda1c3839737f6ce0db95a899af8c47fe9901a502dbc6a6c95ae9fbe317c7365d6cebe3a20bdce8af0e37b803480f8489de57ccc6daac8a758a5c9d9
-doccontainersize 5316304
-doccontainerchecksum 614a64b6d5f25c4fd691d629f70f1fc0f614aa4ac1a1a5a6e06f6ab0edcc0a8e8cd14c2cce498aa75ef3320e493c7ef69cd6ac858505519e10b8414b9cbb13ca
-docfiles size=1766
+containersize 45880
+containerchecksum 1948abb7f36d47159da330ee36a113fb7c2c5cc826e8bb89ff30c97d46963f412dd3c3d215ebe07b6d3aebbc929e114e239b1975135a00c2f5fcc1ac246ee4b9
+doccontainersize 6310328
+doccontainerchecksum 68a3958de1f3b2ef45c09cd0d77ef2fd2875d482ba36117d551979087c6320ebadbd6b5bfb7e6202a5846a960356171dced8764c85bb480d5865df3c8b5a82f6
+docfiles size=2004
RELOC/doc/latex/tools/README.md details="Readme"
RELOC/doc/latex/tools/afterpage.pdf
RELOC/doc/latex/tools/array.pdf
@@ -343595,6 +343615,7 @@ docfiles size=1766
RELOC/doc/latex/tools/ftnright.pdf
RELOC/doc/latex/tools/hhline.pdf
RELOC/doc/latex/tools/indentfirst.pdf
+ RELOC/doc/latex/tools/l3sys-query.pdf
RELOC/doc/latex/tools/layout.pdf
RELOC/doc/latex/tools/longtable.pdf
RELOC/doc/latex/tools/manifest.txt
@@ -343612,9 +343633,9 @@ docfiles size=1766
RELOC/doc/latex/tools/verbatim.pdf
RELOC/doc/latex/tools/xr.pdf
RELOC/doc/latex/tools/xspace.pdf
-srccontainersize 229424
-srccontainerchecksum 2bd6ea620d71ae1e5fab48f5b361560e290a2633668b03a36259228b0cf8f9eb5acecee705c66052dab306288c1defd46a366548f7aa66cf04e802bc40122caf
-srcfiles size=270
+srccontainersize 241352
+srccontainerchecksum 8ef035825f4f57b03bc0f6cad7045bd970b2ff9aa1741d017693b61c54c7332be8038f59704d7abddcc1b9dfc5e42808640a225bec19bbc41fb5d257031072d7
+srcfiles size=285
RELOC/source/latex/tools/afterpage.dtx
RELOC/source/latex/tools/afterpage.ins
RELOC/source/latex/tools/array.dtx
@@ -343629,6 +343650,8 @@ srcfiles size=270
RELOC/source/latex/tools/ftnright.dtx
RELOC/source/latex/tools/hhline.dtx
RELOC/source/latex/tools/indentfirst.dtx
+ RELOC/source/latex/tools/l3sys-query.dtx
+ RELOC/source/latex/tools/l3sys-query.ins
RELOC/source/latex/tools/layout.dtx
RELOC/source/latex/tools/longtable.dtx
RELOC/source/latex/tools/longtable.ins
@@ -343648,11 +343671,12 @@ srcfiles size=270
RELOC/source/latex/tools/verbatim.dtx
RELOC/source/latex/tools/xr.dtx
RELOC/source/latex/tools/xspace.dtx
-runfiles size=121
+runfiles size=128
RELOC/tex/latex/tools/.tex
RELOC/tex/latex/tools/afterpage.sty
RELOC/tex/latex/tools/array-2016-10-06.sty
RELOC/tex/latex/tools/array-2020-02-10.sty
+ RELOC/tex/latex/tools/array-2023-11-01.sty
RELOC/tex/latex/tools/array.sty
RELOC/tex/latex/tools/bm.sty
RELOC/tex/latex/tools/calc.sty
@@ -343666,6 +343690,7 @@ runfiles size=121
RELOC/tex/latex/tools/h.tex
RELOC/tex/latex/tools/hhline.sty
RELOC/tex/latex/tools/indentfirst.sty
+ RELOC/tex/latex/tools/l3sys-query.sty
RELOC/tex/latex/tools/layout.sty
RELOC/tex/latex/tools/longtable-2020-01-07.sty
RELOC/tex/latex/tools/longtable.sty
@@ -343694,12 +343719,12 @@ runfiles size=121
RELOC/tex/latex/tools/verbatim.sty
RELOC/tex/latex/tools/verbtest.tex
RELOC/tex/latex/tools/x.tex
+ RELOC/tex/latex/tools/xr-2023-07-04.sty
RELOC/tex/latex/tools/xr.sty
RELOC/tex/latex/tools/xspace.sty
catalogue-ctan /macros/latex/required/tools
catalogue-license lppl1.3c
catalogue-topics collection
-catalogue-version 2023-11-01c
name topfloat
category Package
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index 61deb32db8..aa733d822c 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-ccf828cd02a80211f093786987d39e3a texlive.tlpdb
+5a4f3439eb8bb1f49ead10fb28edadbf texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index d33c90042a..add2ebf1d1 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-61ba91bcf87150eda4590f65fadd823b6d117f9256549daeaa5f916c75e987020009e4b31866db08d102341d2133b24acf88a318790c657d02b1374b2b181660 texlive.tlpdb
+6b4755987e81cfab3de13a19ceb8f579f9a0e54f2cea099a1b76ca97bbb6da50a128b5d049e5415b35c131f3d43568171a09cc03c4e0b4c8f3f4cb8c97827e73 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index c3e062a4f4..3cf5f8ed0d 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
@@ -1,11 +1,11 @@
-----BEGIN PGP SIGNATURE-----
-iQEzBAEBCgAdFiEE2PL4YFeoV+QqiBBqTOGHfhlDjHAFAmZbtGUACgkQTOGHfhlD
-jHBYCwgAnWezdSgvnD+8a5pP+p09B8otE1GvoRvw2Bs8y5K966M6IIjhfSUZlBKL
-km1PY/j019UNyUmLaSc+T+YjiQ92w1akAtw8hcy9oz1z0K64jT7oVWuEVNwfS6Ie
-Wj4RTVYMWFemZ5f+T9Xfh9wuZbDnR+rWVwE135lstz4DKAUyzIkGWfAqMlgNp7eT
-AqDg8zNrcpisb0R6wmUvNUuPwTRP5oNIb2aKif6TtG1E4HDYwhcWoZh5z20T17sU
-CmOQDaxEQCJoXllDmxqK0ynoFazDByRAq+W6tF2b+WIzUH81ewaR+tuAO7aVPMnz
-EGA6IeD44wCaK0v55TKI/pZf9KUXSQ==
-=Cehu
+iQEzBAEBCgAdFiEE2PL4YFeoV+QqiBBqTOGHfhlDjHAFAmZdBKcACgkQTOGHfhlD
+jHDb8Qf7BGZVFQHMjUG8IzDbhuy6AuTub2YwNInrS13bBkBu2RUBfIaTW5AkdaZf
+QCA7dhl1bkmK7Iqhx6SjloRmyshIhRcWkf0SbsGBW+b7AzINDC0ggxxTQCSePeFZ
+mdSbOQRuIkaFS+KQeyfcTy6SsuKGu3o84vTexizC0Aku8SR6bzBFs60UTnpzs41n
+4d2/CKAakHoC4n/J7D7+wlbqGOx/tDv9Jxpk11qHnPg9Tpuop0hxcJQm+N6Rlzg7
+1NWK4GtkjHgq8NgYL4VXJSjyaWYUM3rzaj1V/FgumS7iqA9q7b96QgbJ08pRz10x
+x6/AmGQMrMq3Hkg5Uia9F1UbDe0I4A==
+=+aAP
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index 0b6a8f58f4..5bd15a4942 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/files.csv.lzma b/systems/win32/miktex/tm/packages/files.csv.lzma
index 3db08e4eba..148c3e5581 100644
--- a/systems/win32/miktex/tm/packages/files.csv.lzma
+++ b/systems/win32/miktex/tm/packages/files.csv.lzma
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/next/files.csv.lzma b/systems/win32/miktex/tm/packages/next/files.csv.lzma
index fffdc06769..f271dca1e1 100644
--- a/systems/win32/miktex/tm/packages/next/files.csv.lzma
+++ b/systems/win32/miktex/tm/packages/next/files.csv.lzma
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/next/pr.ini b/systems/win32/miktex/tm/packages/next/pr.ini
index 2a5a735c33..d7aaec8040 100644
--- a/systems/win32/miktex/tm/packages/next/pr.ini
+++ b/systems/win32/miktex/tm/packages/next/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1716806864
+date=1717327439
lastupd=miktex-zzip-bin-x64-2.9 miktex-zlib-bin-x64-2.9 miktex-yap-bin-x64-2.9 miktex-xml2pmx-bin-x64 miktex-xetex-bin-x64-2.9 miktex-web-bin-x64-2.9 miktex-uriparser-bin-x64-2.9 miktex-upmendex-bin-x64 miktex-ttf2pk2-bin-x64-2.9 miktex-texworks-bin-x64-2.9 miktex-texware-bin-x64-2.9 miktex-texify-bin-x64-2.9 miktex-tex4ht-bin-x64-2.9 miktex-tex2xindy-bin-x64-2.9 miktex-tex-bin-x64-2.9 miktex-teckit-bin-x64-2.9 miktex-tdsutil-bin-x64 miktex-synctex-bin-x64-2.9 miktex-runtime-bin-x64-2.9 miktex-ptex-bin-x64
-lstdigest=204016167b822f498ec9882809449324
-numpkg=7368
+lstdigest=0f9166170f066a8794e787ba11f2e8b3
+numpkg=7372
relstate=next
-version=8913
+version=8919
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: dn23Vfi1/LoS6X4d4UEjvipWe47tFNYsnAg0En8//vNDJkSzdHoVpLl2sFQUE+4LoWsXsdqd4rCR7NE0t7eCPka/foMargqGBJau7o1XWtFZBKuwGyPQpgfrUA59mt9ia74hUQ39CyOFJ5Vz66BOCNvMwlKHjHraMLc9ibTe88Nn8ANn1o/DOxdDFs6z5cPa+FMqsPQNiWhyyvOuhMFeSlrP/zx0wrQJv3QsX9nwHrBKQkB7ev20Dc4nbRqXYgq0PIVcy/qmx1e/ybTlTxh7+bFB0pvRwJ77fibNZWo971il1f2CKSPi1a37eMvyG8JuLF9Wt/lI8F+kyd6wbBAVbQ==
+;;;; signature/miktex: HbqzwhPbiSC8eDyQ5rLjoacQXxpVMK2c1XNmSrlEEAzIdiX8zOMjjrWaCjs12WN+cPFBTMN9WOCNY/Cp0JojfDfbTz5zL51pLRMFt+4g2yDS1MAcxfVx685ugo8k/56dy3B8mnV/yTPX569BZw0Vxr0COALRiLFtYCC2ClhhhmOS3eIvTC+q6Au4VioFcUrmgFSQxS4vo0DW61hCAA9MVcB/by9wU5HS73fzS+bEHxuIsZ10sgGN8igPuoKR8Gvt1cGeK/BVmwvT9Z5e0Er1yl5BG9CUPxsF1fQTc1fAQUN/TpSSj27RKo/McwuQGb6xvA8gzDgiR8p+huFKHJwfNA==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/systems/win32/miktex/tm/packages/pr.ini b/systems/win32/miktex/tm/packages/pr.ini
index 6a88e2f502..ad038164a2 100644
--- a/systems/win32/miktex/tm/packages/pr.ini
+++ b/systems/win32/miktex/tm/packages/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1716806766
-lastupd=zref-clever__source zref-clever__doc zref-clever thuthesis__source thuthesis__doc thuthesis spbmark__source spbmark__doc spbmark semesterplannerlua__source semesterplannerlua__doc semesterplannerlua se2thesis__source se2thesis__doc se2thesis rub-kunstgeschichte__source rub-kunstgeschichte__doc rub-kunstgeschichte profsio__source profsio__doc
-lstdigest=c58df2ff4b96fc50f771bb5138cffdde
-numpkg=7367
+date=1717327271
+lastupd=tqft__source tqft__doc tqft tkz-grapheur__source tkz-grapheur__doc tkz-grapheur spath3__source spath3__doc spath3 simpleicons__source simpleicons__doc simpleicons se2thesis__source se2thesis__doc se2thesis pdfpages__source pdfpages__doc pdfpages nicematrix__source nicematrix__doc
+lstdigest=575ea5b7bbd45946afba413d0731b9ab
+numpkg=7371
relstate=stable
-version=8913
+version=8919
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: UA1Q0CizLNqLPGOSEZ2+JhpM4fwd1zw/bpDNb1A2zUR+ai7v4Hm+L7GQsGJi4DMY004/W7evUWpBKEc6as3rdOm69BFHzkUKSgKsmMB65BvKOu6ZQfYdIu5dMoUFLM7e06WBlscdZEpT6iUuQPRc9d5Qdr554xzc+Xba4z9yzJCmbj5o1E2OcafWSGwANEgsVVofYNDitTebD/MLwx8BfmOj6fPXXxOUYsExudji1Aq1S+N3ik8xBhLTOSPglhAUBHRotQw+shQ4e3Cf0W+sp+/tHUTu85XlEnq9DqX+Jg8WF4wU5QG1JVv9ZbeDhl7GYiIjAgZroYEOwoqRxx8aEw==
+;;;; signature/miktex: drvYP+AcXlv29CvJgLnjwd8G5Kuab81zyGdIwQ6jGauKm6ubPSBFatUZV5kCbGPU1M0PEeFTtiWXZ5iBOgpEo1+ndHjQjrh/2hsSCBchhkchs4gttsjB3zf9ABXE62Uhz0XdDYrhKpnkygpsFiVWVwPhBDI+NxWXD2GHYU8tcpqyDv9auLcygInOoOwET7nvtnt13YJm3I1Vy0VLygUVyBujhaiDxhz1r04catadnom2Z/CPeW9ztkhFB+f81iqKW10cSBAAYBRH/ErK3ctXnIM+kAkuTLgz1hEbOEyu5bAE9y5nEkFUZ4fHXAcNlNd41eHzBlH4KMg9LcoR415X9g==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/timestamp b/timestamp
index e41c9ffd90..c49d50cbb6 100644
--- a/timestamp
+++ b/timestamp
@@ -2,4 +2,4 @@
# The source CTAN of this site's material:
dante.ctan.org
# The year-month-day-hour-minute of this site's material:
-2024-06-02-02-02
+2024-06-03-02-02