summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-03-28 03:01:34 +0000
committerNorbert Preining <norbert@preining.info>2024-03-28 03:01:34 +0000
commit79e9e48f9496fe82b7e76b2b318d24e9aab1ca8a (patch)
tree5c7e66ed056f7855cb4caee718c5406c947e3af8 /macros
parent31fa8cd73bab8480d38dae3a89ca578f337d6bbd (diff)
CTAN sync 202403280301
Diffstat (limited to 'macros')
-rw-r--r--macros/latex-dev/base/README.md2
-rw-r--r--macros/latex-dev/base/alltt.pdfbin223861 -> 223861 bytes
-rw-r--r--macros/latex-dev/base/cfgguide.pdfbin264168 -> 264168 bytes
-rw-r--r--macros/latex-dev/base/changes.txt29
-rw-r--r--macros/latex-dev/base/classes.pdfbin560294 -> 560294 bytes
-rw-r--r--macros/latex-dev/base/clsguide-historic.pdfbin415956 -> 415956 bytes
-rw-r--r--macros/latex-dev/base/clsguide.pdfbin489795 -> 490200 bytes
-rw-r--r--macros/latex-dev/base/clsguide.tex34
-rw-r--r--macros/latex-dev/base/cmfonts.pdfbin292600 -> 292600 bytes
-rw-r--r--macros/latex-dev/base/cyrguide.pdfbin257359 -> 257359 bytes
-rw-r--r--macros/latex-dev/base/doc-code.pdfbin1078428 -> 1078116 bytes
-rw-r--r--macros/latex-dev/base/doc.pdfbin757049 -> 756736 bytes
-rw-r--r--macros/latex-dev/base/docstrip.pdfbin506365 -> 506341 bytes
-rw-r--r--macros/latex-dev/base/encguide.pdfbin1318576 -> 1318576 bytes
-rw-r--r--macros/latex-dev/base/exscale.pdfbin204708 -> 204708 bytes
-rw-r--r--macros/latex-dev/base/fix-cm.pdfbin287727 -> 287727 bytes
-rw-r--r--macros/latex-dev/base/fntguide.pdfbin517708 -> 522678 bytes
-rw-r--r--macros/latex-dev/base/fntguide.tex81
-rw-r--r--macros/latex-dev/base/graphpap.pdfbin161722 -> 161722 bytes
-rw-r--r--macros/latex-dev/base/ifthen.dtx29
-rw-r--r--macros/latex-dev/base/ifthen.pdfbin221219 -> 222460 bytes
-rw-r--r--macros/latex-dev/base/inputenc.pdfbin318372 -> 318372 bytes
-rw-r--r--macros/latex-dev/base/lamport-manual.pdfbin170876 -> 170876 bytes
-rw-r--r--macros/latex-dev/base/latexrelease.pdfbin282095 -> 282095 bytes
-rw-r--r--macros/latex-dev/base/latexsym.pdfbin200759 -> 200759 bytes
-rw-r--r--macros/latex-dev/base/lb2.pdfbin253116 -> 253116 bytes
-rw-r--r--macros/latex-dev/base/letter.pdfbin337772 -> 337375 bytes
-rw-r--r--macros/latex-dev/base/lgc2.pdfbin217659 -> 217659 bytes
-rw-r--r--macros/latex-dev/base/lppl.pdfbin132370 -> 132370 bytes
-rw-r--r--macros/latex-dev/base/ltclass.dtx24
-rw-r--r--macros/latex-dev/base/ltcmd.dtx26
-rw-r--r--macros/latex-dev/base/ltcmdhooks-code.pdfbin752365 -> 753293 bytes
-rw-r--r--macros/latex-dev/base/ltcmdhooks-doc.pdfbin497334 -> 498577 bytes
-rw-r--r--macros/latex-dev/base/ltcmdhooks.dtx14
-rw-r--r--macros/latex-dev/base/ltdefns.dtx6
-rw-r--r--macros/latex-dev/base/ltfilehook-code.pdfbin803049 -> 806388 bytes
-rw-r--r--macros/latex-dev/base/ltfilehook-doc.pdfbin548011 -> 551737 bytes
-rw-r--r--macros/latex-dev/base/ltfilehook.dtx12
-rw-r--r--macros/latex-dev/base/lthooks-code.pdfbin1248644 -> 1248786 bytes
-rw-r--r--macros/latex-dev/base/lthooks-doc.pdfbin758273 -> 758584 bytes
-rw-r--r--macros/latex-dev/base/lthooks.dtx4
-rw-r--r--macros/latex-dev/base/ltluatex.pdfbin325142 -> 325142 bytes
-rw-r--r--macros/latex-dev/base/ltmarks-code.pdfbin711767 -> 711363 bytes
-rw-r--r--macros/latex-dev/base/ltmarks-doc.pdfbin575242 -> 574839 bytes
-rw-r--r--macros/latex-dev/base/ltnews.pdfbin1390205 -> 1394343 bytes
-rw-r--r--macros/latex-dev/base/ltnews01.pdfbin169553 -> 169553 bytes
-rw-r--r--macros/latex-dev/base/ltnews02.pdfbin151773 -> 151773 bytes
-rw-r--r--macros/latex-dev/base/ltnews03.pdfbin151324 -> 151324 bytes
-rw-r--r--macros/latex-dev/base/ltnews04.pdfbin152551 -> 152551 bytes
-rw-r--r--macros/latex-dev/base/ltnews05.pdfbin175211 -> 175211 bytes
-rw-r--r--macros/latex-dev/base/ltnews06.pdfbin142867 -> 142867 bytes
-rw-r--r--macros/latex-dev/base/ltnews07.pdfbin138214 -> 138214 bytes
-rw-r--r--macros/latex-dev/base/ltnews08.pdfbin155442 -> 155442 bytes
-rw-r--r--macros/latex-dev/base/ltnews09.pdfbin130028 -> 130028 bytes
-rw-r--r--macros/latex-dev/base/ltnews10.pdfbin169433 -> 169433 bytes
-rw-r--r--macros/latex-dev/base/ltnews11.pdfbin112208 -> 112208 bytes
-rw-r--r--macros/latex-dev/base/ltnews12.pdfbin156764 -> 156764 bytes
-rw-r--r--macros/latex-dev/base/ltnews13.pdfbin182483 -> 182483 bytes
-rw-r--r--macros/latex-dev/base/ltnews14.pdfbin170722 -> 170722 bytes
-rw-r--r--macros/latex-dev/base/ltnews15.pdfbin130328 -> 130328 bytes
-rw-r--r--macros/latex-dev/base/ltnews16.pdfbin138107 -> 138107 bytes
-rw-r--r--macros/latex-dev/base/ltnews17.pdfbin166269 -> 166269 bytes
-rw-r--r--macros/latex-dev/base/ltnews18.pdfbin39839 -> 39839 bytes
-rw-r--r--macros/latex-dev/base/ltnews19.pdfbin225936 -> 225936 bytes
-rw-r--r--macros/latex-dev/base/ltnews20.pdfbin318193 -> 318193 bytes
-rw-r--r--macros/latex-dev/base/ltnews21.pdfbin245228 -> 245228 bytes
-rw-r--r--macros/latex-dev/base/ltnews22.pdfbin318026 -> 318026 bytes
-rw-r--r--macros/latex-dev/base/ltnews23.pdfbin286824 -> 286824 bytes
-rw-r--r--macros/latex-dev/base/ltnews24.pdfbin265497 -> 265497 bytes
-rw-r--r--macros/latex-dev/base/ltnews25.pdfbin205100 -> 205100 bytes
-rw-r--r--macros/latex-dev/base/ltnews26.pdfbin379733 -> 379733 bytes
-rw-r--r--macros/latex-dev/base/ltnews27.pdfbin251283 -> 251283 bytes
-rw-r--r--macros/latex-dev/base/ltnews28.pdfbin376933 -> 376933 bytes
-rw-r--r--macros/latex-dev/base/ltnews29.pdfbin455437 -> 455437 bytes
-rw-r--r--macros/latex-dev/base/ltnews30.pdfbin512240 -> 512240 bytes
-rw-r--r--macros/latex-dev/base/ltnews31.pdfbin526688 -> 526681 bytes
-rw-r--r--macros/latex-dev/base/ltnews31.tex4
-rw-r--r--macros/latex-dev/base/ltnews32.pdfbin546540 -> 546540 bytes
-rw-r--r--macros/latex-dev/base/ltnews33.pdfbin522757 -> 522757 bytes
-rw-r--r--macros/latex-dev/base/ltnews34.pdfbin508345 -> 508345 bytes
-rw-r--r--macros/latex-dev/base/ltnews35.pdfbin563307 -> 563307 bytes
-rw-r--r--macros/latex-dev/base/ltnews36.pdfbin517934 -> 517934 bytes
-rw-r--r--macros/latex-dev/base/ltnews37.pdfbin456933 -> 456933 bytes
-rw-r--r--macros/latex-dev/base/ltnews38.pdfbin523675 -> 523675 bytes
-rw-r--r--macros/latex-dev/base/ltnews39.pdfbin473345 -> 502104 bytes
-rw-r--r--macros/latex-dev/base/ltnews39.tex73
-rw-r--r--macros/latex-dev/base/ltoutput.dtx4
-rw-r--r--macros/latex-dev/base/ltpara-code.pdfbin672114 -> 671774 bytes
-rw-r--r--macros/latex-dev/base/ltpara-doc.pdfbin560037 -> 559700 bytes
-rw-r--r--macros/latex-dev/base/ltproperties-code.pdfbin557051 -> 556519 bytes
-rw-r--r--macros/latex-dev/base/ltproperties-doc.pdfbin432129 -> 431622 bytes
-rw-r--r--macros/latex-dev/base/ltsect.dtx10
-rw-r--r--macros/latex-dev/base/ltshipout-code.pdfbin821580 -> 821264 bytes
-rw-r--r--macros/latex-dev/base/ltshipout-doc.pdfbin567728 -> 567426 bytes
-rw-r--r--macros/latex-dev/base/ltsockets-code.pdfbin598937 -> 598619 bytes
-rw-r--r--macros/latex-dev/base/ltsockets-doc.pdfbin481774 -> 481459 bytes
-rw-r--r--macros/latex-dev/base/lttemplates.dtx15
-rw-r--r--macros/latex-dev/base/ltthm.dtx38
-rw-r--r--macros/latex-dev/base/ltvers.dtx2
-rw-r--r--macros/latex-dev/base/ltx3info.pdfbin219358 -> 219358 bytes
-rw-r--r--macros/latex-dev/base/ltxdoc.pdfbin244141 -> 244141 bytes
-rw-r--r--macros/latex-dev/base/makeindx.pdfbin165816 -> 165816 bytes
-rw-r--r--macros/latex-dev/base/modguide.pdfbin257825 -> 257825 bytes
-rw-r--r--macros/latex-dev/base/nfssfont.pdfbin211314 -> 211314 bytes
-rw-r--r--macros/latex-dev/base/proc.pdfbin227065 -> 227065 bytes
-rw-r--r--macros/latex-dev/base/slides.pdfbin375493 -> 375493 bytes
-rw-r--r--macros/latex-dev/base/slifonts.pdfbin233905 -> 233905 bytes
-rw-r--r--macros/latex-dev/base/source2e.pdfbin6239225 -> 6245204 bytes
-rw-r--r--macros/latex-dev/base/syntonly.pdfbin189440 -> 189054 bytes
-rw-r--r--macros/latex-dev/base/tlc2.pdfbin291143 -> 291143 bytes
-rw-r--r--macros/latex-dev/base/tlc3.err94
-rw-r--r--macros/latex-dev/base/tlc3.pdfbin345764 -> 367886 bytes
-rw-r--r--macros/latex-dev/base/tulm.pdfbin162773 -> 162773 bytes
-rw-r--r--macros/latex-dev/base/usrguide-historic.pdfbin439393 -> 439393 bytes
-rw-r--r--macros/latex-dev/base/usrguide.pdfbin483354 -> 487820 bytes
-rw-r--r--macros/latex-dev/base/usrguide.tex101
-rw-r--r--macros/latex-dev/base/utf8ienc.pdfbin353399 -> 353274 bytes
-rw-r--r--macros/latex-dev/base/webcomp.pdfbin146197 -> 146197 bytes
-rw-r--r--macros/latex-dev/required/amsmath/README.md4
-rw-r--r--macros/latex-dev/required/amsmath/amsbsy.ins2
-rw-r--r--macros/latex-dev/required/amsmath/amsbsy.pdfbin174946 -> 174946 bytes
-rw-r--r--macros/latex-dev/required/amsmath/amscd.dtx2
-rw-r--r--macros/latex-dev/required/amsmath/amscd.ins4
-rw-r--r--macros/latex-dev/required/amsmath/amscd.pdfbin179951 -> 179951 bytes
-rw-r--r--macros/latex-dev/required/amsmath/amsgen.dtx2
-rw-r--r--macros/latex-dev/required/amsmath/amsgen.ins2
-rw-r--r--macros/latex-dev/required/amsmath/amsgen.pdfbin178193 -> 178193 bytes
-rw-r--r--macros/latex-dev/required/amsmath/amsldoc.pdfbin508230 -> 508230 bytes
-rw-r--r--macros/latex-dev/required/amsmath/amsldoc.tex2
-rw-r--r--macros/latex-dev/required/amsmath/amsmath.dtx10
-rw-r--r--macros/latex-dev/required/amsmath/amsmath.ins4
-rw-r--r--macros/latex-dev/required/amsmath/amsmath.pdfbin419922 -> 420320 bytes
-rw-r--r--macros/latex-dev/required/amsmath/amsopn.dtx2
-rw-r--r--macros/latex-dev/required/amsmath/amsopn.ins4
-rw-r--r--macros/latex-dev/required/amsmath/amsopn.pdfbin140093 -> 140093 bytes
-rw-r--r--macros/latex-dev/required/amsmath/amstext.dtx2
-rw-r--r--macros/latex-dev/required/amsmath/amstext.ins4
-rw-r--r--macros/latex-dev/required/amsmath/amstext.pdfbin217504 -> 217504 bytes
-rw-r--r--macros/latex-dev/required/amsmath/amsxtra.dtx2
-rw-r--r--macros/latex-dev/required/amsmath/amsxtra.ins4
-rw-r--r--macros/latex-dev/required/amsmath/amsxtra.pdfbin113560 -> 113560 bytes
-rw-r--r--macros/latex-dev/required/amsmath/changes.txt6
-rw-r--r--macros/latex-dev/required/amsmath/subeqn.pdfbin109733 -> 109733 bytes
-rw-r--r--macros/latex-dev/required/amsmath/technote.pdfbin147459 -> 147459 bytes
-rw-r--r--macros/latex-dev/required/amsmath/testmath.pdfbin454658 -> 454643 bytes
-rw-r--r--macros/latex-dev/required/firstaid/changes.txt45
-rw-r--r--macros/latex-dev/required/firstaid/firstaid.ins4
-rw-r--r--macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.dtx129
-rw-r--r--macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.pdfbin263670 -> 273766 bytes
-rw-r--r--macros/latex-dev/required/latex-lab/README.md2
-rw-r--r--macros/latex-dev/required/latex-lab/blocks-code.pdfbin871503 -> 871980 bytes
-rw-r--r--macros/latex-dev/required/latex-lab/blocks-doc.pdfbin485950 -> 486159 bytes
-rw-r--r--macros/latex-dev/required/latex-lab/changes.txt115
-rw-r--r--macros/latex-dev/required/latex-lab/documentmetadata-support-code.pdfbin531721 -> 533350 bytes
-rw-r--r--macros/latex-dev/required/latex-lab/documentmetadata-support-doc.pdfbin419214 -> 420563 bytes
-rw-r--r--macros/latex-dev/required/latex-lab/documentmetadata-support.dtx54
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-amsmath.dtx34
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-amsmath.pdfbin373342 -> 382077 bytes
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-bib.pdfbin383259 -> 383259 bytes
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-block.dtx38
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-block.pdfbin871503 -> 871980 bytes
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-firstaid.dtx123
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-firstaid.pdfbin273812 -> 300730 bytes
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-float.dtx10
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-float.pdfbin426817 -> 426854 bytes
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-footnotes.dtx90
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-footnotes.pdfbin815072 -> 819323 bytes
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-graphic.dtx11
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-graphic.pdfbin517737 -> 517900 bytes
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-marginpar.pdfbin389702 -> 389702 bytes
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-math.dtx4
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-math.pdfbin740461 -> 740466 bytes
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-mathpkg.dtx33
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-mathpkg.pdfbin302442 -> 355801 bytes
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-mathtools.dtx6
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-mathtools.pdfbin373342 -> 382077 bytes
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-minipage.pdfbin280811 -> 280811 bytes
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-namespace.pdfbin234649 -> 234649 bytes
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-new-or-1.pdfbin389721 -> 389721 bytes
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-new-or-2.pdfbin632196 -> 632196 bytes
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-sec.pdfbin527096 -> 527096 bytes
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-table.dtx8
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-table.pdfbin556861 -> 556861 bytes
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-testphase.dtx4
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-testphase.pdfbin298373 -> 298048 bytes
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-text.pdfbin307812 -> 307812 bytes
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-title.pdfbin348117 -> 348117 bytes
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-toc-hyperref-changes.pdfbin296124 -> 296124 bytes
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-toc-kernel-changes.pdfbin361081 -> 361081 bytes
-rw-r--r--macros/latex-dev/required/latex-lab/latex-lab-toc.pdfbin396814 -> 396814 bytes
-rw-r--r--macros/latex-dev/required/tools/README.md2
-rw-r--r--macros/latex-dev/required/tools/afterpage.pdfbin198100 -> 198100 bytes
-rw-r--r--macros/latex-dev/required/tools/array.pdfbin838028 -> 837637 bytes
-rw-r--r--macros/latex-dev/required/tools/bm.pdfbin323640 -> 323640 bytes
-rw-r--r--macros/latex-dev/required/tools/calc.pdfbin370660 -> 370660 bytes
-rw-r--r--macros/latex-dev/required/tools/changes.txt5
-rw-r--r--macros/latex-dev/required/tools/dcolumn.pdfbin221038 -> 221038 bytes
-rw-r--r--macros/latex-dev/required/tools/delarray.pdfbin191058 -> 191058 bytes
-rw-r--r--macros/latex-dev/required/tools/enumerate.pdfbin215077 -> 215077 bytes
-rw-r--r--macros/latex-dev/required/tools/fileerr.pdfbin187725 -> 187335 bytes
-rw-r--r--macros/latex-dev/required/tools/fontsmpl.pdfbin146438 -> 146438 bytes
-rw-r--r--macros/latex-dev/required/tools/ftnright.pdfbin387253 -> 386866 bytes
-rw-r--r--macros/latex-dev/required/tools/hhline.pdfbin189678 -> 189678 bytes
-rw-r--r--macros/latex-dev/required/tools/indentfirst.pdfbin157352 -> 157352 bytes
-rw-r--r--macros/latex-dev/required/tools/l3sys-query.dtx545
-rw-r--r--macros/latex-dev/required/tools/l3sys-query.ins76
-rw-r--r--macros/latex-dev/required/tools/l3sys-query.pdfbin0 -> 482276 bytes
-rw-r--r--macros/latex-dev/required/tools/layout.pdfbin260278 -> 260278 bytes
-rw-r--r--macros/latex-dev/required/tools/longtable.pdfbin400149 -> 400149 bytes
-rw-r--r--macros/latex-dev/required/tools/multicol.pdfbin524502 -> 524217 bytes
-rw-r--r--macros/latex-dev/required/tools/rawfonts.pdfbin138956 -> 138956 bytes
-rw-r--r--macros/latex-dev/required/tools/shellesc.pdfbin176171 -> 176171 bytes
-rw-r--r--macros/latex-dev/required/tools/showkeys.pdfbin252684 -> 252684 bytes
-rw-r--r--macros/latex-dev/required/tools/somedefs.pdfbin167583 -> 167583 bytes
-rw-r--r--macros/latex-dev/required/tools/tabularx.pdfbin289601 -> 289601 bytes
-rw-r--r--macros/latex-dev/required/tools/theorem.pdfbin351765 -> 351387 bytes
-rw-r--r--macros/latex-dev/required/tools/tools-overview.pdfbin73673 -> 73673 bytes
-rw-r--r--macros/latex-dev/required/tools/tools.ins7
-rw-r--r--macros/latex-dev/required/tools/trace.pdfbin222074 -> 222074 bytes
-rw-r--r--macros/latex-dev/required/tools/varioref.dtx89
-rw-r--r--macros/latex-dev/required/tools/varioref.pdfbin393134 -> 393655 bytes
-rw-r--r--macros/latex-dev/required/tools/verbatim.pdfbin331587 -> 331587 bytes
-rw-r--r--macros/latex-dev/required/tools/xr.pdfbin170451 -> 170451 bytes
-rw-r--r--macros/latex-dev/required/tools/xspace.pdfbin257027 -> 257027 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md18
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdfbin1735647 -> 1740400 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex52
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx82
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx81
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.cbx12
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx83
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx81
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.cbx2
-rw-r--r--macros/latex/contrib/fontscale/fontscale-manual.pdfbin129272 -> 129404 bytes
-rw-r--r--macros/latex/contrib/fontscale/fontscale-manual.tex2
-rw-r--r--macros/latex/contrib/fontscale/fontscale.sty248
-rw-r--r--macros/latex/contrib/profmaquette/doc/ProfMaquette-doc.pdfbin286837 -> 287109 bytes
-rw-r--r--macros/latex/contrib/profmaquette/latex/ProfMaquette.sty37
-rw-r--r--macros/latex/contrib/reptheorem/README.md40
-rw-r--r--macros/latex/contrib/reptheorem/reptheorem.dtx486
-rw-r--r--macros/latex/contrib/reptheorem/reptheorem.ins82
-rw-r--r--macros/latex/contrib/reptheorem/reptheorem.pdfbin0 -> 271120 bytes
243 files changed, 2926 insertions, 474 deletions
diff --git a/macros/latex-dev/base/README.md b/macros/latex-dev/base/README.md
index ed14347e98..528675aaa8 100644
--- a/macros/latex-dev/base/README.md
+++ b/macros/latex-dev/base/README.md
@@ -1,7 +1,7 @@
The LaTeX kernel
================
-Release 2024-06-01 pre-release 1
+Release 2024-06-01 pre-release 2
Overview
--------
diff --git a/macros/latex-dev/base/alltt.pdf b/macros/latex-dev/base/alltt.pdf
index 54c606fcf2..6bee508aa6 100644
--- a/macros/latex-dev/base/alltt.pdf
+++ b/macros/latex-dev/base/alltt.pdf
Binary files differ
diff --git a/macros/latex-dev/base/cfgguide.pdf b/macros/latex-dev/base/cfgguide.pdf
index 2456f57219..6ade9c5f60 100644
--- a/macros/latex-dev/base/cfgguide.pdf
+++ b/macros/latex-dev/base/cfgguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/changes.txt b/macros/latex-dev/base/changes.txt
index dec230e890..52fbd04f08 100644
--- a/macros/latex-dev/base/changes.txt
+++ b/macros/latex-dev/base/changes.txt
@@ -6,6 +6,35 @@ to completeness or accuracy and it contains some references to files that are
not part of the distribution.
================================================================================
+
+2024-03-22 Yukai Chou <muzimuzhi@gmail.com>
+ * ltfilehook.dtx
+ Apply one-step expansion to raw option list, when a package
+ providing key-value options is loaded the second time. The same
+ expansion for first-time loading was requested in gh/580. (gh/1298)
+
+2024-03-21 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * ltcmd.dtx
+ Collect \endlinechar as \obeyedline
+ * usrguide.tex
+ Document use of \obeyedline in +v arguments
+
+2024-03-16 David Carlisle <David.Carlisle@latex-project.org>
+ * ifthen.dtx guard against active <=> (gh/756)
+
+2024-03-15 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+ * ltthm.dtx: add link targets to begintheorem commands (hyperref/332)
+
+2024-03-13 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+ * ltfilehook.dtx (subsection{Kernel, class, and package interfaces for \LaTeX{}}):
+ Clarify that the commands in this section are meant to be usable
+ by the kernel and in classes or packages (gh/1292)
+
+2024-02-15 Joseph Wright <Joseph.Wright@latex-project.org>
+ * lttemplates.dtx
+ Re-introduce \IfInstanceExist(TF)
+
2024-01-30 David Carlisle <David.Carlisle@latex-project.org>
* ltclass.dtx: check that \RequirePackage, \documentclass, \usepackage
and related commands are at top level (gh/1185)
diff --git a/macros/latex-dev/base/classes.pdf b/macros/latex-dev/base/classes.pdf
index c45fd63ac0..83b67d7f5e 100644
--- a/macros/latex-dev/base/classes.pdf
+++ b/macros/latex-dev/base/classes.pdf
Binary files differ
diff --git a/macros/latex-dev/base/clsguide-historic.pdf b/macros/latex-dev/base/clsguide-historic.pdf
index 89df4cf17e..60b5051e6a 100644
--- a/macros/latex-dev/base/clsguide-historic.pdf
+++ b/macros/latex-dev/base/clsguide-historic.pdf
Binary files differ
diff --git a/macros/latex-dev/base/clsguide.pdf b/macros/latex-dev/base/clsguide.pdf
index b6146de10e..08cc5b5a17 100644
--- a/macros/latex-dev/base/clsguide.pdf
+++ b/macros/latex-dev/base/clsguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/clsguide.tex b/macros/latex-dev/base/clsguide.tex
index c23f0a55e9..0e1927827f 100644
--- a/macros/latex-dev/base/clsguide.tex
+++ b/macros/latex-dev/base/clsguide.tex
@@ -33,8 +33,8 @@
\usepackage[T1]{fontenc} % needed for \textbackslash in tt
\usepackage{csquotes}
-\title{\LaTeX\ for package and class authors --- current version}
-\author{\copyright~Copyright 2023, \LaTeX\ Project Team.\\
+\title{\LaTeX\ for package and class authors\\current version}
+\author{\copyright~Copyright 2023--2024, \LaTeX\ Project Team.\\
All rights reserved.%
\footnote{This file may distributed and/or modified under the
conditions of the \LaTeX{} Project Public License, either version 1.3c
@@ -42,7 +42,7 @@
\texttt{clsguide.tex} for full details.}%
}
-\date{2023-12-02}
+\date{2024-03-17}
\NewDocumentCommand\cs{m}{\texttt{\textbackslash\detokenize{#1}}}
\NewDocumentCommand\marg{m}{\arg{#1}}
@@ -64,7 +64,7 @@
\section{Introduction}
\LaTeXe{} was released in 1994 and added a number of then-new concepts to
-\LaTeX{}. For package and class authors, these are described in
+\LaTeX{}. For package and class authors, these are described in the document
\texttt{clsguide-historic}, which has largely remained unchanged. Since then,
the \LaTeX{} team have worked on a number of ideas, firstly a programming
language for \LaTeX{} (L3 programming layer) and then a range of tools for
@@ -1104,11 +1104,13 @@ team strongly suggest using the L3 programming layer commands in the
Suppose that you want to define an environment for displaying text that is
numbered as an equation. A straightforward way to do this is as follows:
\begin{verbatim}
- \newenvironment{texteqn}
- {\begin{equation}
- \begin{minipage}{0.9\linewidth}}
- {\end{minipage}
- \end{equation}}
+ \newenvironment{texteqn}{%
+ \begin{equation}%
+ \begin{minipage}{0.9\linewidth}%
+ }{%
+ \end{minipage}%
+ \end{equation}%
+ }
\end{verbatim}
However, if you have tried this then you will probably have noticed that it
does not work perfectly when used in the middle of a paragraph because an
@@ -1118,12 +1120,14 @@ environment.
You can avoid this problem using |\ignorespacesafterend|; it should be
inserted as shown here:
\begin{verbatim}
- \newenvironment{texteqn}
- {\begin{equation}
- \begin{minipage}{0.9\linewidth}}
- {\end{minipage}
- \end{equation}
- \ignorespacesafterend}
+ \newenvironment{texteqn}{%
+ \begin{equation}%
+ \begin{minipage}{0.9\linewidth}%
+ }{%
+ \end{minipage}%
+ \end{equation}%
+ \ignorespacesafterend
+ }
\end{verbatim}
This command may also have other uses.
diff --git a/macros/latex-dev/base/cmfonts.pdf b/macros/latex-dev/base/cmfonts.pdf
index e417fb5389..0d48147368 100644
--- a/macros/latex-dev/base/cmfonts.pdf
+++ b/macros/latex-dev/base/cmfonts.pdf
Binary files differ
diff --git a/macros/latex-dev/base/cyrguide.pdf b/macros/latex-dev/base/cyrguide.pdf
index f9f6644c9a..33e984bd52 100644
--- a/macros/latex-dev/base/cyrguide.pdf
+++ b/macros/latex-dev/base/cyrguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/doc-code.pdf b/macros/latex-dev/base/doc-code.pdf
index 67ab8bf64d..dcf4ace4b3 100644
--- a/macros/latex-dev/base/doc-code.pdf
+++ b/macros/latex-dev/base/doc-code.pdf
Binary files differ
diff --git a/macros/latex-dev/base/doc.pdf b/macros/latex-dev/base/doc.pdf
index 1783af35f6..caebfcc016 100644
--- a/macros/latex-dev/base/doc.pdf
+++ b/macros/latex-dev/base/doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/docstrip.pdf b/macros/latex-dev/base/docstrip.pdf
index 55e029485c..3a2b6c1130 100644
--- a/macros/latex-dev/base/docstrip.pdf
+++ b/macros/latex-dev/base/docstrip.pdf
Binary files differ
diff --git a/macros/latex-dev/base/encguide.pdf b/macros/latex-dev/base/encguide.pdf
index 3653bc1dbf..c0703dda34 100644
--- a/macros/latex-dev/base/encguide.pdf
+++ b/macros/latex-dev/base/encguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/exscale.pdf b/macros/latex-dev/base/exscale.pdf
index 9fe9e195db..3f8d43d81b 100644
--- a/macros/latex-dev/base/exscale.pdf
+++ b/macros/latex-dev/base/exscale.pdf
Binary files differ
diff --git a/macros/latex-dev/base/fix-cm.pdf b/macros/latex-dev/base/fix-cm.pdf
index d1eaa48bd0..94dad320aa 100644
--- a/macros/latex-dev/base/fix-cm.pdf
+++ b/macros/latex-dev/base/fix-cm.pdf
Binary files differ
diff --git a/macros/latex-dev/base/fntguide.pdf b/macros/latex-dev/base/fntguide.pdf
index d6dda9e8e2..0a6e2d8a0f 100644
--- a/macros/latex-dev/base/fntguide.pdf
+++ b/macros/latex-dev/base/fntguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/fntguide.tex b/macros/latex-dev/base/fntguide.tex
index 7cf5d23981..6106204a55 100644
--- a/macros/latex-dev/base/fntguide.tex
+++ b/macros/latex-dev/base/fntguide.tex
@@ -42,7 +42,7 @@
\title{\LaTeXe{} font selection}
-\author{\copyright~Copyright 1995--2023, \LaTeX\ Project
+\author{\copyright~Copyright 1995--2024, \LaTeX\ Project
Team.\thanks{Thanks to Arash Esbati for documenting the
newer NFSS features of 2020}\\
All rights reserved.%
@@ -52,7 +52,7 @@
\texttt{fntguide.tex} for full details.}%
}
-\date{October 2023}
+\date{March 2024}
\begin{document}
@@ -1997,6 +1997,83 @@ For example,
would use |sb| (semi-bold) when |\rmfamily\bfseries| is requested in
document.
+\subsection{Handling of current and requested font series and shape}
+
+In the original NFSS implementation, the series was a single attribute
+stored in |\f@series| and so one always had to specify both weight and
+width together. Hence, it was impossible to typeset a paragraph in a
+condensed font and inside have a few words in bold weight (but still
+condensed) without doing this manually by requesting
+|\fontseries{bc}\selectfont|.
+
+\NEWfeature{2020/02/02}
+The new implementation now works differently by looking both at the
+current value of |\f@series| and the requested new series and out of
+that combination selects a resulting series value. Thus, if the current
+series is |c| and we ask for |b|, we now get |bc|. This is done by
+consulting a simple lookup table where entries can be added or changed
+with |\DeclareFontSeriesChangeRule|:
+\begin{decl}
+ |\DeclareFontSeriesChangeRule| %
+ \arg{current series} \arg{requested series} \\
+ \leavevmode\hfill \arg{result} \arg{alternative result}
+\end{decl}
+
+The \m{current series} is the value currently stored in |\f@series|,
+\m{requested series} is the new series requested, \m{result} is the
+combined value if it exists for the given font family, and
+\m{alternative result} is a fallback in case \m{result} doesn't exist.
+The example above now looks like this:
+\begin{verbatim}
+ \DeclareFontSeriesChangeRule{c}{b}{bc}{}
+\end{verbatim}
+which means: switch to the |bc| series if |c| is current and |b| is
+(additionally) requested, and if the current font doesn't have the
+combination, start the normal font substitution, i.e., switch back shape
+to |n| and if this combination doesn't succeed, switch back series to
+|m| as well, ending up with |m/n|.
+
+Another example is:
+\begin{verbatim}
+ \DeclareFontSeriesChangeRule{bc}{sc}{bsc}{bc}
+\end{verbatim}
+which means: if the current series is bold condensed (|bc|) and
+semi-condensed (|sc|) is requested (additionally), try bold
+semi-condensed (|bsc|) if available but stay with bold condensed if not.
+
+A special value is |m| which is used to reset both weight and width. In
+order to reset only one of them, the special values |?m| (reset width)
+and |m?| (reset weight) are provided, e.g.:
+\begin{verbatim}
+ \DeclareFontSeriesChangeRule{bc}{m?}{c}{}
+\end{verbatim}
+
+The corresponding macro |\DeclareFontShapeChangeRule| is also provided
+for setting database entries for font shapes:
+\begin{decl}
+ |\DeclareFontShapeChangeRule| %
+ \arg{current shape} \arg{requested shape} \\
+ \leavevmode\hfill \arg{result} \arg{alternative result}
+\end{decl}
+
+An example would be:
+\begin{verbatim}
+ \DeclareFontShapeChangeRule{it}{sc}{scit}{scsl}
+\end{verbatim}
+If italics is the current shape and small caps is requested, switch to
+|scit| (small caps italics) and if that doesn't exist, try |scsl| (small
+caps slanted).
+
+Finally, it is also possible to overrule the entries in the lookup
+tables and forcibly select a series or shape with:
+\begin{decl}
+ |\fontseriesforce| \arg{series} \qquad |\fontshapeforce| \arg{shape}
+\end{decl}
+
+With the example above for the |c| series, issuing |\fontseriesforce{b}|
+means that the series switches to |b| and not to |bc|. Same applies to
+|\fontshapeforce|.
+
\subsection{Handling of nested emphasis}
\begin{decl}
diff --git a/macros/latex-dev/base/graphpap.pdf b/macros/latex-dev/base/graphpap.pdf
index 2f422e2a84..cdf8b6c113 100644
--- a/macros/latex-dev/base/graphpap.pdf
+++ b/macros/latex-dev/base/graphpap.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ifthen.dtx b/macros/latex-dev/base/ifthen.dtx
index ef7d8ab398..0bbe361211 100644
--- a/macros/latex-dev/base/ifthen.dtx
+++ b/macros/latex-dev/base/ifthen.dtx
@@ -30,7 +30,7 @@
%%
%% File `ifthen.dtx'.
%% Copyright (C) 1991 by Leslie Lamport
-%% Copyright (C) 1994-2001 LaTeX project, David Carlisle
+%% Copyright (C) 1994-2024 LaTeX project, David Carlisle
%% all rights reserved.
%%
%
@@ -42,7 +42,7 @@
%<driver>\ProvidesFile{ifthen.drv}
% \fi
% \ProvidesFile{ifthen.dtx}
- [2022/04/13 v1.1d Standard LaTeX ifthen package (DPC)]
+ [2024/03/16 v1.1e Standard LaTeX ifthen package (DPC)]
%
% \iffalse
%<*driver>
@@ -273,15 +273,35 @@
\ifx##1\relax\z@\else\expandafter##2##1\fi}}}
% \end{macrocode}
% \begin{macrocode}
+\begingroup
+\lccode`\~`\> %
+\catcode`\+\active
+\lccode`\+`\< %
+\catcode`\!\active
+\lccode`\!`\= %
+\lowercase{\endgroup
+% \end{macrocode}
+% \begin{macrocode}
+\def\TE@repl@active{%
+ \TE@repl~>%
+ \TE@repl+<%
+ \TE@repl!=%
+}
+% \end{macrocode}
+% \begin{macrocode}
\long\def\ifthenelse#1{%
% \end{macrocode}
% \changes{v1.0h}{1994/05/14}{Use \cs{TE@repl}}
+% \changes{v1.1e}{2024/03/16}{replace active \cs{ifnum} syntax}
% \begin{macrocode}
\toks@{#1}%
\TE@repl\or\TE@or
\TE@repl\and\TE@and
\TE@repl\not\TE@neg
% \end{macrocode}
+% \begin{macrocode}
+ \TE@repl@active
+% \end{macrocode}
%
% \changes{v1.1c}{2001/05/25}{Added \cs{AND}, \cs{OR} and \cs{NOT} as
% boolean operators as alternative to the lower case versions
@@ -353,7 +373,10 @@
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
- \fi}
+ \fi}%
+% \end{macrocode}
+% \begin{macrocode}
+}
% \end{macrocode}
% \end{macro}
%
diff --git a/macros/latex-dev/base/ifthen.pdf b/macros/latex-dev/base/ifthen.pdf
index d5d09c8f6a..8d9001b8e9 100644
--- a/macros/latex-dev/base/ifthen.pdf
+++ b/macros/latex-dev/base/ifthen.pdf
Binary files differ
diff --git a/macros/latex-dev/base/inputenc.pdf b/macros/latex-dev/base/inputenc.pdf
index bfa0203fdc..a873c7cfac 100644
--- a/macros/latex-dev/base/inputenc.pdf
+++ b/macros/latex-dev/base/inputenc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/lamport-manual.pdf b/macros/latex-dev/base/lamport-manual.pdf
index ae4146963f..7e4062040b 100644
--- a/macros/latex-dev/base/lamport-manual.pdf
+++ b/macros/latex-dev/base/lamport-manual.pdf
Binary files differ
diff --git a/macros/latex-dev/base/latexrelease.pdf b/macros/latex-dev/base/latexrelease.pdf
index 34a4481bc3..ac46e18d57 100644
--- a/macros/latex-dev/base/latexrelease.pdf
+++ b/macros/latex-dev/base/latexrelease.pdf
Binary files differ
diff --git a/macros/latex-dev/base/latexsym.pdf b/macros/latex-dev/base/latexsym.pdf
index 444ae58d37..c50846584c 100644
--- a/macros/latex-dev/base/latexsym.pdf
+++ b/macros/latex-dev/base/latexsym.pdf
Binary files differ
diff --git a/macros/latex-dev/base/lb2.pdf b/macros/latex-dev/base/lb2.pdf
index 91a6b37f7d..3e49e79622 100644
--- a/macros/latex-dev/base/lb2.pdf
+++ b/macros/latex-dev/base/lb2.pdf
Binary files differ
diff --git a/macros/latex-dev/base/letter.pdf b/macros/latex-dev/base/letter.pdf
index 8eeb8e9c2e..c4f2404bce 100644
--- a/macros/latex-dev/base/letter.pdf
+++ b/macros/latex-dev/base/letter.pdf
Binary files differ
diff --git a/macros/latex-dev/base/lgc2.pdf b/macros/latex-dev/base/lgc2.pdf
index 9abfbe67df..9febd117bb 100644
--- a/macros/latex-dev/base/lgc2.pdf
+++ b/macros/latex-dev/base/lgc2.pdf
Binary files differ
diff --git a/macros/latex-dev/base/lppl.pdf b/macros/latex-dev/base/lppl.pdf
index 880331d70f..00092d1c3b 100644
--- a/macros/latex-dev/base/lppl.pdf
+++ b/macros/latex-dev/base/lppl.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltclass.dtx b/macros/latex-dev/base/ltclass.dtx
index c6c0495fca..1948db2c6b 100644
--- a/macros/latex-dev/base/ltclass.dtx
+++ b/macros/latex-dev/base/ltclass.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltclass.dtx}
- [2024/02/14 v1.5i LaTeX Kernel (Class & Package Interface)]
+ [2024/03/22 v1.5j LaTeX Kernel (Class & Package Interface)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltclass.dtx}
@@ -1327,11 +1327,11 @@
% \changes{v1.4c}{2021/06/06}
% {apply \cs{expandafter} to raw options for gh/580}
% \begin{macrocode}
- \@ifundefined{@raw@opt@#3.#1}%
- {\expandafter\gdef\csname @raw@opt@#3.#1\expandafter\endcsname
- \expandafter{#2}}%
- {\expandafter\g@addto@macro\csname @raw@opt@#3.#1\expandafter\endcsname
- \expandafter{\expandafter,#2}}%
+ \@ifundefined{@raw@opt@#3.#1}%
+ {\expandafter\gdef\csname @raw@opt@#3.#1\expandafter\endcsname
+ \expandafter{#2}}%
+ {\expandafter\g@addto@macro\csname @raw@opt@#3.#1\expandafter\endcsname
+ \expandafter{\expandafter,#2}}%
}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
@@ -2243,9 +2243,17 @@
% \end{macrocode}
% \changes{v1.5d}{2022/10/10}{Use \cs{protected@edef}.}
% \begin{macrocode}
- \expandafter\protected@edef\csname opt@\@currname.\@currext\endcsname
+ \expandafter\protected@edef
+ \csname opt@\@currname.\@currext\endcsname
{\zap@space#2 \@empty}%
- \@namedef{@raw@opt@\@currname.\@currext}{#2}%
+% \end{macrocode}
+% \changes{v1.5j}{2024/03/22}
+% {Apply one-step expansion to raw option list,
+% to be consistent with change for gh/580 (gh/1298).}
+% \begin{macrocode}
+ \expandafter\def
+ \csname @raw@opt@\@currname.\@currext\expandafter\endcsname
+ \expandafter{#2}%
\@nameuse{opt@handler@\@currname.\@currext}%
}%
}%
diff --git a/macros/latex-dev/base/ltcmd.dtx b/macros/latex-dev/base/ltcmd.dtx
index 1733af5416..f57ceeedff 100644
--- a/macros/latex-dev/base/ltcmd.dtx
+++ b/macros/latex-dev/base/ltcmd.dtx
@@ -34,8 +34,8 @@
%%% From File: ltcmd.dtx
%
% \begin{macrocode}
-\def\ltcmdversion{v1.2c}
-\def\ltcmddate{2024-02-08}
+\def\ltcmdversion{v1.2d}
+\def\ltcmddate{2024-03-21}
% \end{macrocode}
%
%<*driver>
@@ -3681,18 +3681,38 @@
% \end{macro}
%
% \begin{macro}{\@@_grab_v_aux_put:N}
+% \changes{v1.2d}{2024/03/21}{Collect \cs{endlinechar} as \cs{obeyedline}}
% Storing one token in the collected argument. Most tokens are
% converted to category code $12$, with the exception of active
% characters, and spaces (not sure what should be done for those).
% \begin{macrocode}
+%<latexrelease>\IncludeInRelease{2024/06/01}{\@@_grab_v_aux_put:N}%
+%<latexrelease> {Endlines~as~\obeyedline}
\cs_new_protected:Npn \@@_grab_v_aux_put:N #1
{
\tl_put_right:Nx \l_@@_v_arg_tl
{
\token_if_active:NTF #1
- { \exp_not:N #1 } { \token_to_str:N #1 }
+ { \exp_not:N #1 }
+ {
+ \int_compare:nNnTF {`#1} = \tex_endlinechar:D
+ { \exp_not:N \obeyedline }
+ { \token_to_str:N #1 }
+ }
}
}
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{2020/10/01}{\@@_grab_v_aux_put:N}%
+%<latexrelease> {Endlines~as~\obeyedline}
+%<latexrelease>\cs_new_protected:Npn \@@_grab_v_aux_put:N #1
+%<latexrelease> {
+%<latexrelease> \tl_put_right:Nx \l_@@_v_arg_tl
+%<latexrelease> {
+%<latexrelease> \token_if_active:NTF #1
+%<latexrelease> { \exp_not:N #1 } { \token_to_str:N #1 }
+%<latexrelease> }
+%<latexrelease> }
+%<latexrelease>\EndIncludeInRelease
% \end{macrocode}
% \end{macro}
%
diff --git a/macros/latex-dev/base/ltcmdhooks-code.pdf b/macros/latex-dev/base/ltcmdhooks-code.pdf
index 8abe240bae..1429b2063c 100644
--- a/macros/latex-dev/base/ltcmdhooks-code.pdf
+++ b/macros/latex-dev/base/ltcmdhooks-code.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltcmdhooks-doc.pdf b/macros/latex-dev/base/ltcmdhooks-doc.pdf
index 6424ad0033..cd9af57523 100644
--- a/macros/latex-dev/base/ltcmdhooks-doc.pdf
+++ b/macros/latex-dev/base/ltcmdhooks-doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltcmdhooks.dtx b/macros/latex-dev/base/ltcmdhooks.dtx
index bb071e629c..a3c89b48a9 100644
--- a/macros/latex-dev/base/ltcmdhooks.dtx
+++ b/macros/latex-dev/base/ltcmdhooks.dtx
@@ -20,7 +20,7 @@
%<*driver>
% \fi
\ProvidesFile{ltcmdhooks.dtx}
- [2024/02/11 v1.0i LaTeX Kernel (Command hooks)]
+ [2024/03/09 v1.0i LaTeX Kernel (Command hooks)]
% \iffalse
%
\documentclass{l3doc}
@@ -129,8 +129,8 @@
% \item
%
% that code can be prepended or appended (i.e., added to the
-% hooks) even if the command itself is not defined, because the
-% defining package has not yet been loaded;
+% hooks) even if the command itself is not (yet) defined, because the
+% defining package has not been loaded at this point;
%
% \item
%
@@ -218,6 +218,14 @@
% optional and mandatory arguments. By adding code to the
% \hook{cmd/section/after} hook, you get in the way of that scanning.
%
+% In such a case, where it is known that a specific generic command
+% hook does not work if code is added to it, the package author can
+% add a \cs{DisableGenericHook}\footnote{Please use
+% \cs{DisableGenericHook} if at all, only on hooks that you
+% \enquote{own}, i.e., for commands your package or class defines and
+% not second guess whether or not hooks of other packages should get
+% disabled!} declaration to prevent this from happening in user
+% documents and thereby avoiding obscure errors.
%
%
% \section{Package Author Interface}
diff --git a/macros/latex-dev/base/ltdefns.dtx b/macros/latex-dev/base/ltdefns.dtx
index 4d8368e2c0..db05962505 100644
--- a/macros/latex-dev/base/ltdefns.dtx
+++ b/macros/latex-dev/base/ltdefns.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltdefns.dtx}
- [2024/02/08 v1.5s LaTeX Kernel (definition commands)]
+ [2024/02/29 v1.5s LaTeX Kernel (definition commands)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltdefns.dtx}
@@ -215,12 +215,12 @@
% This section defines the following commands:
%
% \DescribeMacro
-% {\@namedef}\marg{NAME}\\ Expands to |\def\|\marg{NAME},
+% {\@namedef}\marg{NAME}\\ Expands to |\def\|\meta{NAME},
% except name can contain any characters.
%
% \DescribeMacro
% {\@nameuse}\marg{NAME}\\
-% Expands to |\|\marg{NAME}.
+% Expands to |\|\meta{NAME}.
%
% \DescribeMacro
% {\@ifnextchar} X\marg{YES}\marg{NO}\\
diff --git a/macros/latex-dev/base/ltfilehook-code.pdf b/macros/latex-dev/base/ltfilehook-code.pdf
index 7bfb51e947..8b4b2d52c7 100644
--- a/macros/latex-dev/base/ltfilehook-code.pdf
+++ b/macros/latex-dev/base/ltfilehook-code.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltfilehook-doc.pdf b/macros/latex-dev/base/ltfilehook-doc.pdf
index 3e561cdf3a..5dc31034ee 100644
--- a/macros/latex-dev/base/ltfilehook-doc.pdf
+++ b/macros/latex-dev/base/ltfilehook-doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltfilehook.dtx b/macros/latex-dev/base/ltfilehook.dtx
index 831d633eef..02e95d0f8f 100644
--- a/macros/latex-dev/base/ltfilehook.dtx
+++ b/macros/latex-dev/base/ltfilehook.dtx
@@ -34,7 +34,7 @@
%\iffalse
%<*driver,structuredlog>
%\fi
-\def\ltfilehookdate{2024/02/11}
+\def\ltfilehookdate{2024/03/13}
\def\ltfilehookversion{v1.0o}
%\iffalse
%</driver,structuredlog>
@@ -381,7 +381,7 @@
%
%
%
-% \subsection{Internal interfaces for \LaTeX{}}
+% \subsection{Kernel, class, and package interfaces for \LaTeX{}}
%
% \begin{function}{\declare@file@substitution,\undeclare@file@substitution}
% \begin{syntax}
@@ -399,6 +399,8 @@
% example, or to provide a version that makes use of new kernel
% functionality while the original package remains available for
% use with older releases.
+% As such it is mainly meant for use in the \LaTeX{} kernel but
+% other use cases are conceivable.
%
% The \cs{undeclare@file@substitution} declaration undoes a
% substitution made earlier.
@@ -416,7 +418,7 @@
% \cs{disable@package@load} \Arg{package} \Arg{alternate-code}
% \cs{reenable@package@load} \Arg{package}
% \end{syntax}
-% If \meta{package} is requested do not load it but instead run
+% If \meta{package} is requested, do not load it but instead run
% \meta{alternate-code} which could issue a warning, error or any
% other code.
%
@@ -427,7 +429,9 @@
% are not available.
%
% The function is only implemented for packages not for arbitrary
-% files.
+% files and again it should only be applied if there are good
+% reasons for doing this.\footnote{Just to be sure: \enquote{I don't
+% like this package by somebody else} is not a good one :-)}
% \end{function}
%
%
diff --git a/macros/latex-dev/base/lthooks-code.pdf b/macros/latex-dev/base/lthooks-code.pdf
index 1ebe678058..2dd40dd859 100644
--- a/macros/latex-dev/base/lthooks-code.pdf
+++ b/macros/latex-dev/base/lthooks-code.pdf
Binary files differ
diff --git a/macros/latex-dev/base/lthooks-doc.pdf b/macros/latex-dev/base/lthooks-doc.pdf
index 8dc6df576d..0a32eabd53 100644
--- a/macros/latex-dev/base/lthooks-doc.pdf
+++ b/macros/latex-dev/base/lthooks-doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/lthooks.dtx b/macros/latex-dev/base/lthooks.dtx
index ea337d306d..7e02aa4fd5 100644
--- a/macros/latex-dev/base/lthooks.dtx
+++ b/macros/latex-dev/base/lthooks.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{lthooks.dtx}
- [2024/02/11 v1.1h LaTeX Kernel (hooks)]
+ [2024/03/09 v1.1h LaTeX Kernel (hooks)]
% \iffalse
%
\documentclass{l3doc}
@@ -233,9 +233,9 @@
% (e.g., one used in code with \cs{UseHook} or
% \cs{UseOneTimeHook}) without it being explicitly declared with
% \cs{NewHook}).
-% This command undoes the effect of \cs{DisableGenericHook}.
% If the hook is already activated, this command does nothing.
%
+% Note that this command does not undo the effect of \cs{DisableGenericHook}.
% See section~\ref{sec:generic-hooks} for a discussion of when this
% declaration is appropriate.
% \end{function}
diff --git a/macros/latex-dev/base/ltluatex.pdf b/macros/latex-dev/base/ltluatex.pdf
index 230cb6527a..1a44905749 100644
--- a/macros/latex-dev/base/ltluatex.pdf
+++ b/macros/latex-dev/base/ltluatex.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltmarks-code.pdf b/macros/latex-dev/base/ltmarks-code.pdf
index 2bbd5ea3a0..50f1b1e0f8 100644
--- a/macros/latex-dev/base/ltmarks-code.pdf
+++ b/macros/latex-dev/base/ltmarks-code.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltmarks-doc.pdf b/macros/latex-dev/base/ltmarks-doc.pdf
index e580cd3319..7ae166d8a2 100644
--- a/macros/latex-dev/base/ltmarks-doc.pdf
+++ b/macros/latex-dev/base/ltmarks-doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews.pdf b/macros/latex-dev/base/ltnews.pdf
index d35b824b96..0cbcc8a6ef 100644
--- a/macros/latex-dev/base/ltnews.pdf
+++ b/macros/latex-dev/base/ltnews.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews01.pdf b/macros/latex-dev/base/ltnews01.pdf
index 119150dcf2..5b14c49d10 100644
--- a/macros/latex-dev/base/ltnews01.pdf
+++ b/macros/latex-dev/base/ltnews01.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews02.pdf b/macros/latex-dev/base/ltnews02.pdf
index c549274162..9151907387 100644
--- a/macros/latex-dev/base/ltnews02.pdf
+++ b/macros/latex-dev/base/ltnews02.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews03.pdf b/macros/latex-dev/base/ltnews03.pdf
index 525e896caa..ceb51fe57f 100644
--- a/macros/latex-dev/base/ltnews03.pdf
+++ b/macros/latex-dev/base/ltnews03.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews04.pdf b/macros/latex-dev/base/ltnews04.pdf
index 759e78dec7..843ee94355 100644
--- a/macros/latex-dev/base/ltnews04.pdf
+++ b/macros/latex-dev/base/ltnews04.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews05.pdf b/macros/latex-dev/base/ltnews05.pdf
index 63b9af2498..e06b1c07e1 100644
--- a/macros/latex-dev/base/ltnews05.pdf
+++ b/macros/latex-dev/base/ltnews05.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews06.pdf b/macros/latex-dev/base/ltnews06.pdf
index c3a5d736c7..ebdc860ae9 100644
--- a/macros/latex-dev/base/ltnews06.pdf
+++ b/macros/latex-dev/base/ltnews06.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews07.pdf b/macros/latex-dev/base/ltnews07.pdf
index 5906a1d278..7f45fffff7 100644
--- a/macros/latex-dev/base/ltnews07.pdf
+++ b/macros/latex-dev/base/ltnews07.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews08.pdf b/macros/latex-dev/base/ltnews08.pdf
index 093798a6eb..9be1cdc574 100644
--- a/macros/latex-dev/base/ltnews08.pdf
+++ b/macros/latex-dev/base/ltnews08.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews09.pdf b/macros/latex-dev/base/ltnews09.pdf
index 18344161cc..a887abd373 100644
--- a/macros/latex-dev/base/ltnews09.pdf
+++ b/macros/latex-dev/base/ltnews09.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews10.pdf b/macros/latex-dev/base/ltnews10.pdf
index d993b06982..39c76574ff 100644
--- a/macros/latex-dev/base/ltnews10.pdf
+++ b/macros/latex-dev/base/ltnews10.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews11.pdf b/macros/latex-dev/base/ltnews11.pdf
index 4bd344ad0c..96f41e1033 100644
--- a/macros/latex-dev/base/ltnews11.pdf
+++ b/macros/latex-dev/base/ltnews11.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews12.pdf b/macros/latex-dev/base/ltnews12.pdf
index 8b19a4a371..7e84f22d41 100644
--- a/macros/latex-dev/base/ltnews12.pdf
+++ b/macros/latex-dev/base/ltnews12.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews13.pdf b/macros/latex-dev/base/ltnews13.pdf
index 15fd4203d8..a253cbc7c9 100644
--- a/macros/latex-dev/base/ltnews13.pdf
+++ b/macros/latex-dev/base/ltnews13.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews14.pdf b/macros/latex-dev/base/ltnews14.pdf
index 8d615e493d..1d9507d396 100644
--- a/macros/latex-dev/base/ltnews14.pdf
+++ b/macros/latex-dev/base/ltnews14.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews15.pdf b/macros/latex-dev/base/ltnews15.pdf
index 7c3c35bdc7..8c3a9c7638 100644
--- a/macros/latex-dev/base/ltnews15.pdf
+++ b/macros/latex-dev/base/ltnews15.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews16.pdf b/macros/latex-dev/base/ltnews16.pdf
index 01c228be83..73126e3b26 100644
--- a/macros/latex-dev/base/ltnews16.pdf
+++ b/macros/latex-dev/base/ltnews16.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews17.pdf b/macros/latex-dev/base/ltnews17.pdf
index 3dcf8679dc..674fb17950 100644
--- a/macros/latex-dev/base/ltnews17.pdf
+++ b/macros/latex-dev/base/ltnews17.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews18.pdf b/macros/latex-dev/base/ltnews18.pdf
index f2533985c9..00d2aae9f1 100644
--- a/macros/latex-dev/base/ltnews18.pdf
+++ b/macros/latex-dev/base/ltnews18.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews19.pdf b/macros/latex-dev/base/ltnews19.pdf
index 0d73b8b4dd..b764b6d09e 100644
--- a/macros/latex-dev/base/ltnews19.pdf
+++ b/macros/latex-dev/base/ltnews19.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews20.pdf b/macros/latex-dev/base/ltnews20.pdf
index dd9fe8fb37..40ad72b2f9 100644
--- a/macros/latex-dev/base/ltnews20.pdf
+++ b/macros/latex-dev/base/ltnews20.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews21.pdf b/macros/latex-dev/base/ltnews21.pdf
index 4e58f50dd4..88a1328927 100644
--- a/macros/latex-dev/base/ltnews21.pdf
+++ b/macros/latex-dev/base/ltnews21.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews22.pdf b/macros/latex-dev/base/ltnews22.pdf
index 013d7190fa..a525ff66ad 100644
--- a/macros/latex-dev/base/ltnews22.pdf
+++ b/macros/latex-dev/base/ltnews22.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews23.pdf b/macros/latex-dev/base/ltnews23.pdf
index 5a149714d3..e249261e27 100644
--- a/macros/latex-dev/base/ltnews23.pdf
+++ b/macros/latex-dev/base/ltnews23.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews24.pdf b/macros/latex-dev/base/ltnews24.pdf
index 8a065321dc..0b598eb978 100644
--- a/macros/latex-dev/base/ltnews24.pdf
+++ b/macros/latex-dev/base/ltnews24.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews25.pdf b/macros/latex-dev/base/ltnews25.pdf
index 818b9b84c8..aa7a3d909d 100644
--- a/macros/latex-dev/base/ltnews25.pdf
+++ b/macros/latex-dev/base/ltnews25.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews26.pdf b/macros/latex-dev/base/ltnews26.pdf
index 1f5e0d6eee..82e773c79f 100644
--- a/macros/latex-dev/base/ltnews26.pdf
+++ b/macros/latex-dev/base/ltnews26.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews27.pdf b/macros/latex-dev/base/ltnews27.pdf
index 5e5115fab5..c9f6df0909 100644
--- a/macros/latex-dev/base/ltnews27.pdf
+++ b/macros/latex-dev/base/ltnews27.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews28.pdf b/macros/latex-dev/base/ltnews28.pdf
index 173d27b6f6..6a32f26cc1 100644
--- a/macros/latex-dev/base/ltnews28.pdf
+++ b/macros/latex-dev/base/ltnews28.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews29.pdf b/macros/latex-dev/base/ltnews29.pdf
index 306556f994..da2d15bafd 100644
--- a/macros/latex-dev/base/ltnews29.pdf
+++ b/macros/latex-dev/base/ltnews29.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews30.pdf b/macros/latex-dev/base/ltnews30.pdf
index 815eaf3072..54e32d8e22 100644
--- a/macros/latex-dev/base/ltnews30.pdf
+++ b/macros/latex-dev/base/ltnews30.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews31.pdf b/macros/latex-dev/base/ltnews31.pdf
index dff2439d12..c4fe803b90 100644
--- a/macros/latex-dev/base/ltnews31.pdf
+++ b/macros/latex-dev/base/ltnews31.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews31.tex b/macros/latex-dev/base/ltnews31.tex
index 194791cff5..c1b81e52be 100644
--- a/macros/latex-dev/base/ltnews31.tex
+++ b/macros/latex-dev/base/ltnews31.tex
@@ -552,8 +552,8 @@ This was corrected.
\subsection{Ensure that \cs{textbackslash} remains robust}
In the last release we made most document-level commands robust, but
-\cs{textbackslash} became fragile again\\
-whenever \cs{raggedright} or similar typesetting\\
+\cs{textbackslash} became fragile again
+whenever \cs{raggedright} or similar typesetting
was used. This has been fixed.
%
\githubissue{203}
diff --git a/macros/latex-dev/base/ltnews32.pdf b/macros/latex-dev/base/ltnews32.pdf
index f2e80722ec..a2bb20351b 100644
--- a/macros/latex-dev/base/ltnews32.pdf
+++ b/macros/latex-dev/base/ltnews32.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews33.pdf b/macros/latex-dev/base/ltnews33.pdf
index 0bc0b4a0fc..126ec75937 100644
--- a/macros/latex-dev/base/ltnews33.pdf
+++ b/macros/latex-dev/base/ltnews33.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews34.pdf b/macros/latex-dev/base/ltnews34.pdf
index fa2a374667..7bf3d48b15 100644
--- a/macros/latex-dev/base/ltnews34.pdf
+++ b/macros/latex-dev/base/ltnews34.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews35.pdf b/macros/latex-dev/base/ltnews35.pdf
index 83e8307de1..35f0be31c7 100644
--- a/macros/latex-dev/base/ltnews35.pdf
+++ b/macros/latex-dev/base/ltnews35.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews36.pdf b/macros/latex-dev/base/ltnews36.pdf
index 35e707fe85..fb7b4cc348 100644
--- a/macros/latex-dev/base/ltnews36.pdf
+++ b/macros/latex-dev/base/ltnews36.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews37.pdf b/macros/latex-dev/base/ltnews37.pdf
index c63805f098..e1d1be67d0 100644
--- a/macros/latex-dev/base/ltnews37.pdf
+++ b/macros/latex-dev/base/ltnews37.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews38.pdf b/macros/latex-dev/base/ltnews38.pdf
index 9693e62fef..2940e7cb04 100644
--- a/macros/latex-dev/base/ltnews38.pdf
+++ b/macros/latex-dev/base/ltnews38.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews39.pdf b/macros/latex-dev/base/ltnews39.pdf
index f43f43a067..9303ba97ea 100644
--- a/macros/latex-dev/base/ltnews39.pdf
+++ b/macros/latex-dev/base/ltnews39.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltnews39.tex b/macros/latex-dev/base/ltnews39.tex
index b4b93d3504..92c835926f 100644
--- a/macros/latex-dev/base/ltnews39.tex
+++ b/macros/latex-dev/base/ltnews39.tex
@@ -236,6 +236,11 @@ avoid that an error is written to the log file, but to make it clear
that this error is harmless and should be ignored we have arranged the
code so that the error message, if it is issued, takes the following
format:
+\begingroup
+\makeatletter
+\def\verbatim@font{%
+ \small\ttfamily}
+\makeatletter
\begin{verbatim}
! Infinite glue shrinkage found in box being split.
<argument> Infinite shrink error above ignored !
@@ -245,6 +250,8 @@ Not perfect (especially the somewhat unmotivated \texttt{<argument>}),
but you can only do so much if error messages and their texts are
hard-wired in the engine.
+\endgroup
+
So why all this? There are two reasons: we do not lose marks in edge
cases any longer and perhaps more importantly we are now also reliably
able to extract marks from arbitrarily boxed data, something that
@@ -280,6 +287,14 @@ well.
%
\githubissue{1230}
+\subsection{\pkg{ifthen}: guard against active characters in comparisons}
+The \cs{ifthenelse} command now ensures that \verb|<|, \verb|=| and
+\verb|>| are safe
+in numeric tests, even if they have been made active
+(typically by \pkg{babel} language shorthands.)
+%
+\githubissue{756}
+
\section{Providing \pkg{xtemplate} in the format}
In \LaTeX{} News~32, we described the move of one long-term experimental idea
@@ -412,6 +427,19 @@ the direct equivalent to \cs{newcommand} is \cs{NewExpandableDocumentCommand}.
%
\githubissue{1189}
+\subsection{Handling of end-of-lines in \cs{NewDocumentCommand} \texttt{+v} arguments}
+
+The \texttt{+v} argument type provided by \cs{NewDocumentCommand}, etc., allows
+grabbing of multiple lines of text in a verbatim-like argument. Almost always,
+the result of this grabbing will be used in a typesetting context. Previously,
+the end-of-line characters were stored literally as category code~12
+(\enquote{other}) \verb|^^M| tokens. However, these are difficult to work with
+in general. We have now revised this behavior, such that end-of-line characters
+are converted to the \cs{obeyedline} command when parsed by \texttt{+v}-type
+arguments. This may require adjustment in the source of some documents, but the
+enhanced ability of users and programmers to exploit the \texttt{+v}-type
+argument means we believe it is necessary.
+
\subsection{Declaring appropriate sub-encodings for \texttt{TS1} symbol fonts}
In 2020 we incorporated support for the \texttt{TS1} symbol encoding
@@ -513,11 +541,48 @@ missing and sub-encoding 5 as declared in the kernel is correct.
%
\githubissue{1257}
+\section{Documentation improvements}
+
+\subsection{Further updates to the guides}
+
+We reported about the updated versions of \texttt{usrguide} and
+\texttt{clsguide} in \LaTeX{} News~37~\cite{39:ltnews37}. We have now
+revised \texttt{fntguide} as well to reflect the changes and macros
+added to the kernel over the last years of development. Note that the
+file name hasn't changed and there is no \texttt{fntguide-historic}.
+\section{Bug fixes}
+
+\subsection{Fix inconsistent expansion on package option list}
+
+\LaTeX{} applies one-step expansion to raw option list of packages and
+classes so constructions like
+\begin{verbatim}
+ \def\myoptions{opt1,opt2}
+ \usepackage[\myoptions]{foo}
+\end{verbatim}
+are supported. But when a package declares its options with the new
+key/value approach~\cite{39:ltnews35} and was loaded a second time,
+its raw option list was not expanded and an error might be raised.
+This has now been corrected.
+%
+\githubissue{1298}
+
+\section{Changes to packages in the \pkg{amsmath} category}
+
+\subsection{\pkg{amsmath}: correct equation tag placement}
+
+If there is not enough space to place an equation tag on the same line
+as the equation \pkg{amsmath} calculates a suitable offset and then
+places the tag above (or below) the equation. In the case of the
+\env{gather} environment this offset was not reset at the end, with
+the result that it applied to a following environment as well
+resulting in incorrect spacing in certain situations. This has now
+been corrected.
+%
+\githubissue{1289}
-%\section{Bug fixes}
-%\section{Changes to packages in the \pkg{amsmath} category}
%\section{Changes to packages in the \pkg{graphics} category}
@@ -623,6 +688,10 @@ didn't get this treatment. This oversight has now been corrected.
\emph{\LaTeXe{} news 33}. June 2021.\\
\url{https://latex-project.org/news/latex2e-news/ltnews33.pdf}
+\bibitem{39:ltnews35} \LaTeX{} Project Team.
+ \emph{\LaTeXe{} news 35}. June 2022.\\
+ \url{https://latex-project.org/news/latex2e-news/ltnews35.pdf}
+
\bibitem{39:ltnews37} \LaTeX{} Project Team.
\emph{\LaTeXe{} news 37}. June 2023.\\
\url{https://latex-project.org/news/latex2e-news/ltnews37.pdf}
diff --git a/macros/latex-dev/base/ltoutput.dtx b/macros/latex-dev/base/ltoutput.dtx
index b067ef5ecb..f0c1bf830b 100644
--- a/macros/latex-dev/base/ltoutput.dtx
+++ b/macros/latex-dev/base/ltoutput.dtx
@@ -37,7 +37,7 @@
%<*driver>
% \fi
\ProvidesFile{ltoutput.dtx}
- [2023/05/26 v1.4j LaTeX Kernel (Output Routine)]
+ [2024/03/16 v1.4j LaTeX Kernel (Output Routine)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltoutput.dtx}
@@ -847,7 +847,7 @@
% \begin{macro}{\if@firstcolumn}
% \begin{macro}{\if@twocolumn}
% \begin{macro}{\if@twoside}
-% \begin{macro}{\if@reversemarginpar}
+% \begin{macro}{\if@reversemargin}
% \begin{macro}{\if@mparswitch}
% \begin{macro}{\col@number}
% \changes{v1.0n}{1994/04/30}{Added \cs{col@number}}
diff --git a/macros/latex-dev/base/ltpara-code.pdf b/macros/latex-dev/base/ltpara-code.pdf
index 37c0dd52df..4c47bd85e4 100644
--- a/macros/latex-dev/base/ltpara-code.pdf
+++ b/macros/latex-dev/base/ltpara-code.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltpara-doc.pdf b/macros/latex-dev/base/ltpara-doc.pdf
index 7d23332d28..7dc5eab3f5 100644
--- a/macros/latex-dev/base/ltpara-doc.pdf
+++ b/macros/latex-dev/base/ltpara-doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltproperties-code.pdf b/macros/latex-dev/base/ltproperties-code.pdf
index 85f4ba4e45..056f6e328d 100644
--- a/macros/latex-dev/base/ltproperties-code.pdf
+++ b/macros/latex-dev/base/ltproperties-code.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltproperties-doc.pdf b/macros/latex-dev/base/ltproperties-doc.pdf
index 1dc54d6ea6..16e7530e2e 100644
--- a/macros/latex-dev/base/ltproperties-doc.pdf
+++ b/macros/latex-dev/base/ltproperties-doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltsect.dtx b/macros/latex-dev/base/ltsect.dtx
index 4560704463..21aeda32e0 100644
--- a/macros/latex-dev/base/ltsect.dtx
+++ b/macros/latex-dev/base/ltsect.dtx
@@ -31,7 +31,7 @@
%%% From File: ltsect.dtx
%<*driver>
% \fi
-\ProvidesFile{ltsect.dtx}[2021/07/28 v1.1f LaTeX Kernel (Sectioning)]
+\ProvidesFile{ltsect.dtx}[2024/03/25 v1.1f LaTeX Kernel (Sectioning)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltsect.dtx}
@@ -835,13 +835,13 @@
% \begin{macro}{\contentsline}
% The |\contentsline{|\meta{type}|}{|\meta{entry}|}{|\meta{page}|}{}|
% macro produces a \meta{type} entry in a table of contents, etc.
-% It will appear in the |.toc| or other file. For example,
-% The entry for subsection 1.4.3 in the table of contents for
-% example, might be produced by:
+% It will appear in the |.toc| or other file.
+% For example, the entry for subsection 1.4.3 in the table of contents,
+% might be produced by:
%
% \begin{verbatim}
% \contentsline{subsection}
-% {\makebox{30pt}[r]{1.4.3} Gnats and Gnus}{22}
+% {\numberline{1.4.3}Gnats and Gnus}{22}{}
% \end{verbatim}
%
% The |\protect| command causes command sequences to be written
diff --git a/macros/latex-dev/base/ltshipout-code.pdf b/macros/latex-dev/base/ltshipout-code.pdf
index 0fee02853e..9c7fe80c98 100644
--- a/macros/latex-dev/base/ltshipout-code.pdf
+++ b/macros/latex-dev/base/ltshipout-code.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltshipout-doc.pdf b/macros/latex-dev/base/ltshipout-doc.pdf
index 3051341818..142fa00cb7 100644
--- a/macros/latex-dev/base/ltshipout-doc.pdf
+++ b/macros/latex-dev/base/ltshipout-doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltsockets-code.pdf b/macros/latex-dev/base/ltsockets-code.pdf
index 6301f60a3c..8c920d6715 100644
--- a/macros/latex-dev/base/ltsockets-code.pdf
+++ b/macros/latex-dev/base/ltsockets-code.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltsockets-doc.pdf b/macros/latex-dev/base/ltsockets-doc.pdf
index a50aad4998..c3d42ecbaf 100644
--- a/macros/latex-dev/base/ltsockets-doc.pdf
+++ b/macros/latex-dev/base/ltsockets-doc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/lttemplates.dtx b/macros/latex-dev/base/lttemplates.dtx
index 844fb6fd34..d27c232fe0 100644
--- a/macros/latex-dev/base/lttemplates.dtx
+++ b/macros/latex-dev/base/lttemplates.dtx
@@ -36,7 +36,7 @@
%<*driver>
% \fi
\ProvidesFile{lttemplates.dtx}
- [2024-02-11 v1.0a LaTeX Kernel (Prototype document functions)]
+ [2024-02-15 v1.0b LaTeX Kernel (Prototype document functions)]
% \iffalse
\documentclass{l3doc}
\GetFileInfo{lttemplates.dtx}
@@ -2653,6 +2653,19 @@
% \end{macro}
% \end{macro}
%
+% \begin{macro}{\IfInstanceExistT, \IfInstanceExistF, \IfInstanceExistTF}
+% \changes{2024-02-15}{v1.0b}{New macros}
+% More direct translation.
+% \begin{macrocode}
+\cs_new:Npn \IfInstanceExistTF #1#2
+ { \@@_if_instance_exist:nnTF {#1} {#2} }
+\cs_new:Npn \IfInstanceExistT #1#2
+ { \@@_if_instance_exist:nnT {#1} {#2} }
+\cs_new:Npn \IfInstanceExistF #1#2
+ { \@@_if_instance_exist:nnF {#1} {#2} }
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\KeyValue}
% Simply dump the argument when executed: this should not happen.
% \begin{macrocode}
diff --git a/macros/latex-dev/base/ltthm.dtx b/macros/latex-dev/base/ltthm.dtx
index 180b8accfe..c900f519dd 100644
--- a/macros/latex-dev/base/ltthm.dtx
+++ b/macros/latex-dev/base/ltthm.dtx
@@ -32,7 +32,7 @@
%<*driver>
% \fi
\ProvidesFile{ltthm.dtx}
- [2014/09/29 v1.0f LaTeX Kernel (Theorems)]
+ [2024/03/18 v1.0g LaTeX Kernel (Theorems)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltthm.dtx}
@@ -237,16 +237,31 @@
% \end{macro}
%
% \begin{macro}{\@thm}
+% \changes{v1.0c}{1994/04/17}{Use new std counter error message (FMi)}
+% \changes{v1.0g}{2024/03/18}{Use \cs{@kernel@refstepcounter} to avoid an unwanted target (UFi)}
% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2024/03/18}%
+%<latexrelease> {\@thm}{no link target}%
\def\@thm#1#2{%
- \refstepcounter{#1}%
+ \@kernel@refstepcounter{#1}%
\@ifnextchar[{\@ythm{#1}{#2}}{\@xthm{#1}{#2}}}
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@thm}{no link target}%
+%<latexrelease>\def\@thm#1#2{%
+%<latexrelease> \refstepcounter{#1}%
+%<latexrelease> \@ifnextchar[{\@ythm{#1}{#2}}{\@xthm{#1}{#2}}}
+%<latexrelease>\EndIncludeInRelease
+%</2ekernel|latexrelease>
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@xthm}
% \begin{macro}{\@ythm}
% \begin{macrocode}
+%<*2ekernel>
\def\@xthm#1#2{%
\@begintheorem{#2}{\csname the#1\endcsname}\ignorespaces}
\def\@ythm#1#2[#3]{%
@@ -273,11 +288,26 @@
% NFSS}
% Providing theorem defaults.
% \task{???}{add `reset@font?}
+% % \changes{v1.0g}{2024/03/18}{Insert link target in the label (UFi)}
% \begin{macrocode}
+%</2ekernel>
+%<*2ekernel|latexrelease>
+%<latexrelease>\IncludeInRelease{2024/03/18}%
+%<latexrelease> {\@begintheorem}{add link targets}%
\def\@begintheorem#1#2{\trivlist
- \item[\hskip \labelsep{\bfseries #1\ #2}]\itshape}
+ \item[\MakeLinkTarget{\@currentcounter}\hskip \labelsep{\bfseries #1\ #2}]\itshape}
\def\@opargbegintheorem#1#2#3{\trivlist
- \item[\hskip \labelsep{\bfseries #1\ #2\ (#3)}]\itshape}
+ \item[\MakeLinkTarget{\@currentcounter}\hskip \labelsep{\bfseries #1\ #2\ (#3)}]\itshape}
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{0000/00/00}%
+%<latexrelease> {\@begintheorem}{add link targets}%
+%<latexrelease>\def\@begintheorem#1#2{\trivlist
+%<latexrelease> \item[\hskip \labelsep{\bfseries #1\ #2}]\itshape}
+%<latexrelease>\def\@opargbegintheorem#1#2#3{\trivlist
+%<latexrelease> \item[\hskip \labelsep{\bfseries #1\ #2\ (#3)}]\itshape}
+%<latexrelease>\EndIncludeInRelease
+%</2ekernel|latexrelease>
+%<*2ekernel>
\def\@endtheorem{\endtrivlist}
%</2ekernel>
% \end{macrocode}
diff --git a/macros/latex-dev/base/ltvers.dtx b/macros/latex-dev/base/ltvers.dtx
index 3896935525..be7011a537 100644
--- a/macros/latex-dev/base/ltvers.dtx
+++ b/macros/latex-dev/base/ltvers.dtx
@@ -115,7 +115,7 @@
{2024-06-01}
%</2ekernel|latexrelease>
%<*2ekernel>
-\def\patch@level{-1}
+\def\patch@level{-2}
% \end{macrocode}
%
% \begin{macro}{\development@branch@name}
diff --git a/macros/latex-dev/base/ltx3info.pdf b/macros/latex-dev/base/ltx3info.pdf
index 4abf1f8a46..6e419ab172 100644
--- a/macros/latex-dev/base/ltx3info.pdf
+++ b/macros/latex-dev/base/ltx3info.pdf
Binary files differ
diff --git a/macros/latex-dev/base/ltxdoc.pdf b/macros/latex-dev/base/ltxdoc.pdf
index 61a0b18e68..0a1ddb4a7f 100644
--- a/macros/latex-dev/base/ltxdoc.pdf
+++ b/macros/latex-dev/base/ltxdoc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/makeindx.pdf b/macros/latex-dev/base/makeindx.pdf
index a2ab245043..18ca3f9247 100644
--- a/macros/latex-dev/base/makeindx.pdf
+++ b/macros/latex-dev/base/makeindx.pdf
Binary files differ
diff --git a/macros/latex-dev/base/modguide.pdf b/macros/latex-dev/base/modguide.pdf
index 5006d07168..2069363ee3 100644
--- a/macros/latex-dev/base/modguide.pdf
+++ b/macros/latex-dev/base/modguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/nfssfont.pdf b/macros/latex-dev/base/nfssfont.pdf
index 44aba54c32..8b45e7770c 100644
--- a/macros/latex-dev/base/nfssfont.pdf
+++ b/macros/latex-dev/base/nfssfont.pdf
Binary files differ
diff --git a/macros/latex-dev/base/proc.pdf b/macros/latex-dev/base/proc.pdf
index 84fbeb3470..5973decadb 100644
--- a/macros/latex-dev/base/proc.pdf
+++ b/macros/latex-dev/base/proc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/slides.pdf b/macros/latex-dev/base/slides.pdf
index 072806917b..767e52d533 100644
--- a/macros/latex-dev/base/slides.pdf
+++ b/macros/latex-dev/base/slides.pdf
Binary files differ
diff --git a/macros/latex-dev/base/slifonts.pdf b/macros/latex-dev/base/slifonts.pdf
index 140e317b47..972afa5d75 100644
--- a/macros/latex-dev/base/slifonts.pdf
+++ b/macros/latex-dev/base/slifonts.pdf
Binary files differ
diff --git a/macros/latex-dev/base/source2e.pdf b/macros/latex-dev/base/source2e.pdf
index 5fbc7e1c0c..0db61ba189 100644
--- a/macros/latex-dev/base/source2e.pdf
+++ b/macros/latex-dev/base/source2e.pdf
Binary files differ
diff --git a/macros/latex-dev/base/syntonly.pdf b/macros/latex-dev/base/syntonly.pdf
index 6beca59509..41ff62b0de 100644
--- a/macros/latex-dev/base/syntonly.pdf
+++ b/macros/latex-dev/base/syntonly.pdf
Binary files differ
diff --git a/macros/latex-dev/base/tlc2.pdf b/macros/latex-dev/base/tlc2.pdf
index 4945823cda..ca468e2797 100644
--- a/macros/latex-dev/base/tlc2.pdf
+++ b/macros/latex-dev/base/tlc2.pdf
Binary files differ
diff --git a/macros/latex-dev/base/tlc3.err b/macros/latex-dev/base/tlc3.err
index cb33dd01e4..7c2c732568 100644
--- a/macros/latex-dev/base/tlc3.err
+++ b/macros/latex-dev/base/tlc3.err
@@ -1,4 +1,4 @@
-\newcommand\erratafiledate{2024/01/29} % needs / and not -
+\newcommand\erratafiledate{2024/03/17} % needs / and not -
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% To produce a printed version of this errata file run this file through
@@ -325,7 +325,7 @@
\erratatitle{The \LaTeX{} Companion, Third Edition, Parts I \& II}{\erratafiledate}
-
+\begin{small}
\begin{verbatim}
@book(A-W:MF:2023,
author = {Frank Mittelbach and Ulrike Fischer},
@@ -339,10 +339,9 @@
pagenums = {976 (Part I) and 1008 (Part II)},
bibliography = {yes},
index = {yes},
- isbn = {978-0-13-816648-9},
-)
+ isbn = {978-0-13-816648-9})
\end{verbatim}
-
+\end{small}
\begin{list}{}{\setlength\leftmargin{0cm}%
\setlength\rightmargin{3cm}%
@@ -372,7 +371,7 @@ or digital edition
you own by changing the configuration in the file \texttt{\jobname.cfg}.
\begin{center}
- \Large \bfseries To Err is Human --- Bug Contest
+ \large \bfseries To Err is Human --- Bug Contest
\end{center}
Any mistake found and reported is a gain for all readers of our book.
@@ -398,7 +397,7 @@ Good luck!
\begin{center}
\begin{tabular}{clr}
Contest period ends & Winner \\[4pt]
-2023/?? & & ??? suggestions\\
+2024/03 & Bernd Burkhardt & 52 suggestions\\
\end{tabular}
\end{center}
@@ -441,7 +440,7 @@ digital differing only in that respect.
\erroronpage{}{}{FMi}{2023/07/30}{}
-Text or graphics typeset in the the spot color (blue) are not always
+Text or graphics typeset in the spot color (blue) are not always
perfectly aligned. This is a side-effect of the printing technology.
On most pages everything is fine, but occasionally blue text in a
paragraph seems to be slightly above or below the baseline or blue
@@ -606,6 +605,10 @@ not least \> \u{but} not least
\CHAPTER{Chapter 2 --- The Structure of a \LaTeX{} Document}
+\erroronpage{I-31}{para-1,l.-1}{BeB}{2024/03/17}{s}
+would have resulted in ``\verb+# .+'' in the output. \> \\
+would have resulted in ``\verb+#+\u{\texttt{\&}}\verb+ .+'' in the output.
+
\erroronpage{I-34}{l.-1}{FMi}{2023/04/04}{s}
Moved first line of page 35 to 34.
@@ -624,6 +627,10 @@ Situation is the same in the 2023 distributions; listing output updated.
\CHAPTER{Chapter 3 --- Basic Formatting Tools -- Paragraph \ldots}
+\erroronpage{I-143}{exa 3-1-18}{BeB}{2024/03/17}{s}
+Replace in source: \verb+{ peine+ \> \verb+{peine+
+
+
\erroronpage{I-160}{para -2, l.1}{BeB}{2023/07/14}{s}
Repeated word: keys \u{keys} \> keys
@@ -636,8 +643,25 @@ Add a marginal note: \u{No warning if another \LaTeX{} run is necessary!}
\erroronpage{I-163}{example 3-3-14}{BeB}{2023/07/25}{s}
Output of example misses the page numbers in acronym list \> Run example 3 times (not only twice---there is no warning)
+\erroronpage{I-174}{para3,l. -2}{BeB}{2024/03/17}{s}
+the exponent is always a \u{power} of 3 \> the exponent is always a
+\u{multiple} of 3
+
+\seriouserroronpage{I-177}{exa 3-3-39}{BeB/FMi}{2024/03/17}{s}
+
+The example doesn't really show what the paragraph above discusses
+because it was shortend to fit the available space on the page.
+Use
+\begin{verbatim}
+\newcommand\sample[1]{\textnormal{\noindent #1:}
+ The limit is \qty{30}{\kmh} not $\qty{50}{\kmh}$.\par}}
+\end{verbatim}
+so that both text and math usage of \verb=\pty= are compared in the example.
+\erroronpage{I-182}{para 4}{BeB}{2024/03/17}{s}
+Add sentence: The command \verb+\textcquote+ is used in Example 16-5-50 on page II-535.
+
\CHAPTER{Chapter 4 --- Basic Formatting Tools -- Larger \ldots}
\erroronpage{I-253}{para 2, l.-3}{YEi}{2023/11/27}{s}
@@ -698,6 +722,10 @@ text can be interpreted as a value, a somewhat ``random'' number and
the rest is dropped. For example, \texttt{31 December 2022} would
result in ``31.00'', which is probably not desired.
+\erroronpage{I-494}{para -2, l.3}{MRu}{2024/03/16}{s}
+
+Use plural: The allowed key\u{s} are \ldots
+
\CHAPTER{Chapter 7 --- Mastering Floats}
@@ -745,6 +773,9 @@ in the range of 0000 to \u{00FF} \> in the range of 0000 to \u{007F}
\CHAPTER{Chapter 10 --- Text and Symbol Fonts}
+\erroronpage{II-3}{para-1, l.-2}{BeB}{2024/03/17}{s}
+line first \> first line
+
\erroronpage{II-5}{table 10.1, l. 5}{BeB/FMi}{2023/08/13}{s}
official \u{companion} family name \> \u{related} official \u{font} family name
@@ -951,37 +982,37 @@ not showing in the example.
\erroronpage{II-114}{table 10.89}{FMi}{2023/04/04}{s}
Added missing \texttt{U+00Fx} line.
-There was a bug in code generating it.
+There was a bug in the code generating it.
\erroronpage{II-117}{table 10.92}{FMi}{2023/04/04}{s}
Added missing \texttt{U+00Fx} line.
-There was a bug in code generating it.
+There was a bug in the code generating it.
\erroronpage{II-121}{table 10.96}{FMi}{2023/04/04}{s}
Added missing \texttt{U+00Fx} line.
-There was a bug in code generating it.
+There was a bug in the code generating it.
\erroronpage{II-122}{table 10.98}{FMi}{2023/04/04}{s}
Added missing \texttt{U+00Fx} line.
-There was a bug in code generating it.
+There was a bug in the code generating it.
\erroronpage{II-122}{table 10.99}{FMi}{2023/04/04}{s}
Added missing \texttt{U+00Fx} line.
-There was a bug in code generating it.
+There was a bug in the code generating it.
\erroronpage{II-123}{table 10.100}{FMi}{2023/04/04}{s}
Added missing \texttt{U+00Fx} line.
-There was a bug in code generating it.
+There was a bug in the code generating it.
\erroronpage{II-124}{table 10.103}{FMi}{2023/04/04}{s}
Added missing \texttt{U+00Fx} line.
-There was a bug in code generating it.
+There was a bug in the code generating it.
@@ -1325,7 +1356,7 @@ is created only if the entry \u{contains} a shorttitle \u{field} and the title a
is created only if the entry \u{has been referenced (prior to typesetting}\\
\u{the bibliography), contains} a shorttitle \u{field,} and the title and shorttitle fields differ.
-\erroronpage{II-535}{footnote}{FMi}{2024/01/07}{}
+\erroronpage{II-535}{footnote}{FMi}{2024/01/07}{s}
Extend the explanation:\\
\u{you can} use \cs{mancite} \u{in front of any citation command} to avoid this.
@@ -1346,7 +1377,8 @@ Jane Doe.\ \textit{A\u{n} second book.}\ 2020.\> Jane Doe.\ \textit{A second boo
\CHAPTER{Appendix A --- \LaTeX{} Overview for Preamble, \ldots}
\erroronpage{II-624--629}{}{BeB/FMi}{2023/08/31}{s}
-Replace for consistency with section 1.4: \u{command definition} \> \u{code}
+Replace for consistency with section 1.4: \u{command definition} \> \u{code} \\
+(in the various syntax boxes)
\erroronpage{II-629}{para 1, l.3}{FMi}{2023/08/31}{s}
\u{An} warning \> \u{A} warning
@@ -1356,9 +1388,31 @@ Replace for consistency with section 1.4: \u{command definition} \> \u{code}
Add at the end: A maximum of nine ``argument'' letters is supported.
-\erroronpage{II-682}{para -2, l.3}{FMi}{2023/04/28}{s}
+\erroronpage{II-657}{par -2, l. -2}{BeB}{2024/03/17}{s}
+a few that \> a few \u{commands} that
+
+
+\erroronpage{II-658}{first item in the list}{BeB}{2024/03/17}{s}
+square root $\sqrt{x}$ \> square root \texttt{sqrt} $x$
+
+\erroronpage{II-682}{para -2, l .3}{FMi}{2023/04/28}{s}
\texttt{Harf\u{b}uzz} \> \texttt{Harf\u{B}uzz}
+\erroronpage{II-678}{para -1, l. -1}{BeB}{2024/03/17}{s}
+it is better use\> it is better \u{to} use
+
+
+\erroronpage{II-687}{l .1}{BeB}{2024/03/17}{s}
+Two further tests should be listed in the syntax box: \verb+\ifVTeX+ \verb+\ifAlephTeX+
+
+
+\seriouserroronpage{II-701}{l. 6}{BeB}{2024/03/17}{s}
+Name changed after the book was typeset: \verb+.notif+\>\verb+.ifnot+
+
+\erroronpage{II-701}{para 3, l. 4; para -2, l. 1; and margin}{BeB}{2024/03/17}{s}
+\verb+.notif+\>\verb+.ifnot+
+
+
\CHAPTER{Appendix B --- Tracing and Resolving Problems}
@@ -1376,9 +1430,10 @@ Appendix title not properly capitalized.
\end{erratalist}
+\newpage
-\section*{Notes on this errata document}
+\section{Notes on this errata document}
\setcounter{collectmore}{3}
@@ -1392,6 +1447,7 @@ Appendix title not properly capitalized.
\contributor{EOl}{Edgar Olthof}
\contributor{FMi}{Frank Mittelbach}
\contributor{MJo}{Maciej Jończyk}
+\contributor{MRu}{Mark Rudolph}
\contributor{YFu}{FUJIMURA Yukitoshi}
\contributor{YvH}{Yvon Henel}
\contributor{YEi}{Yaakov Eisenberg}
diff --git a/macros/latex-dev/base/tlc3.pdf b/macros/latex-dev/base/tlc3.pdf
index 00936f6e57..5b9f0237a8 100644
--- a/macros/latex-dev/base/tlc3.pdf
+++ b/macros/latex-dev/base/tlc3.pdf
Binary files differ
diff --git a/macros/latex-dev/base/tulm.pdf b/macros/latex-dev/base/tulm.pdf
index 29c84ca59b..283b4eedad 100644
--- a/macros/latex-dev/base/tulm.pdf
+++ b/macros/latex-dev/base/tulm.pdf
Binary files differ
diff --git a/macros/latex-dev/base/usrguide-historic.pdf b/macros/latex-dev/base/usrguide-historic.pdf
index 0001be0aae..1013a34434 100644
--- a/macros/latex-dev/base/usrguide-historic.pdf
+++ b/macros/latex-dev/base/usrguide-historic.pdf
Binary files differ
diff --git a/macros/latex-dev/base/usrguide.pdf b/macros/latex-dev/base/usrguide.pdf
index c9f3496f57..a447d9547b 100644
--- a/macros/latex-dev/base/usrguide.pdf
+++ b/macros/latex-dev/base/usrguide.pdf
Binary files differ
diff --git a/macros/latex-dev/base/usrguide.tex b/macros/latex-dev/base/usrguide.tex
index 9f5cfb181a..cf0a01e836 100644
--- a/macros/latex-dev/base/usrguide.tex
+++ b/macros/latex-dev/base/usrguide.tex
@@ -34,8 +34,8 @@
\usepackage{csquotes}
\usepackage{url}
-\title{\LaTeX\ for authors --- current version}
-\author{\copyright~Copyright 2020-2023, \LaTeX\ Project Team.\\
+\title{\LaTeX\ for authors\\ current version}
+\author{\copyright~Copyright 2020--2024, \LaTeX\ Project Team.\\
All rights reserved.%
\footnote{This file may be distributed and/or modified under the
conditions of the \LaTeX{} Project Public License, either version 1.3c
@@ -43,7 +43,7 @@
\texttt{usrguide.tex} for full details.}%
}
-\date{2023-12-02}
+\date{2024-03-17}
\NewDocumentCommand\cs{m}{\texttt{\textbackslash\detokenize{#1}}}
\NewDocumentCommand\marg{m}{\arg{#1}}
@@ -794,6 +794,61 @@ a & b & c \\
\end{tabular}
\end{verbatim}
+\subsection{Using the verbatim argument types}
+
+As described above, the \texttt{v}-type argument may be viewed as similar to
+\cs{verb}. Before looking at exactly what that means, it is important to
+highlight some key differences. Most notably, \emph{grabbing} a verbatim-like
+argument is separate from \emph{typesetting} it: the latter is covered in the
+next section.
+
+When grabbing a \texttt{v}-type argument, \LaTeX{} first uses the kernel
+command \cs{dospecials} to turn off the \enquote{special} nature of characters.
+It then makes both spaces and tabs \enquote{active}, so that they can be given
+a custom definition. Any other characters are grabbed as-is: this means that if
+any characters have been made \enquote{special} and are not listed in
+\cs{dospecials}, an error will arise (see below).
+
+The characters that are grabbed as the argument are all those between two
+identical: in contrast to \cs{verb}, the characters \texttt{\textbackslash},
+|{|, |}| and |%| \emph{cannot} be used as the delimiter character. If any of
+the grabbed tokens have \enquote{special} meaning, an error will be issued.
+
+For the \texttt{+v}-type argument, which allows line breaks within the
+argument, newline characters are converted into \cs{obeyedline} commands. The
+standard definition of \cs{obeyedline} is simple |\par|, thus allowing the
+grabbed tokens to be used directly in typesetting. A local redefinition of
+\cs{obeyedline} can be used to achieve other outputs. For example, to retain
+blank lines whilst typesetting, one could use
+\begin{verbatim}
+\renewcommand*\obeyedline{\mbox{}\par}
+\end{verbatim}
+More information about using these arguments in typesetting is in the following
+subsection.
+
+Some additional details that may be useful for those with more \TeX{}
+knowledge: do not worry if this does not make sense to you! Spaces and tabs are
+stored as active characters. In Unicode engines, all other characters are of
+type \enquote{other}. In $8$-bit engines, the ASCII characters other than tab
+and space are of type \enquote{other}, and non-ASCII characters are active. As
+such, token-based comparisons are likely to fail unless set up properly.
+
+\subsection{Typesetting verbatim-like material}
+
+In contrast to \cs{verb}, the \texttt{(+)v}-type argument is only about
+\emph{grabbing} the argument, not \emph{typesetting} it. As such, features that
+users often associate with \enquote{verbatim} are not automatically activated,
+e.g., selecting a monospaced font. Material grabbed by the \texttt{v}-type
+argument does not automatically suppress ligatures: with modern \TeX{} engines,
+this largely can be done without the token manipulation which \cs{verb} uses.
+(In \cs{verb}, ligatures are suppressed by making characters active and
+inserting a zero-width kern before the character itself.)
+
+The \cs{verb} command also selects a monospaced font: this is not intrinsic to
+verbatim material, so will need to be set up using for example \cs{ttfamily}.
+Similarly, the \texttt{verbatim} environment sets up the meaning of \cs{par}
+suitable for breaking lines.
+
\subsection{Performance}
For document commands where the argument specification is entirely
@@ -801,7 +856,7 @@ comprised of |m| or |+m| entries (or is entirely empty), the internal structure
created by \cs{NewDocumentCommand} is essentially as efficient
as provided by |\newcommand(*)|. As such, document commands may replace
constructs arising from \cs{newcommand}, etc., without a need to be concerned
-about performance. Note that \cs{newcommand(*)} produces expandable
+about performance. It should be noted that \cs{newcommand(*)} produces expandable
results, so the direct replacement is \cs{NewExpandableDocumentCommand};
in most cases, however, it is better to use \cs{NewDocumentCommand} to
give more robust structures.
@@ -1064,11 +1119,17 @@ to give a purely numerical result.
Briefly, the floating point expressions may comprise:
\begin{itemize}
\item Basic arithmetic: addition $x\fpbin{+}y$, subtraction $x\fpbin{-}y$,
- multiplication $x\fpbin{*}y$, division $x\fpbin{/}y$, square root~$\sqrt{x}$,
+ multiplication $x\fpbin{*}y$, division $x\fpbin{/}y$, square root~$\fpop{sqrt}{x}$,
and parentheses.
\item Comparison operators: $x\fprel{<}y$,
$x\fprel{<=}y$, $x\fprel{>?}y$,
$x\fprel{!=}y$ \emph{etc.}
+
+ The relation $x\fprel{?}y$ is true exactly if one or both operands is~\nan{} or is
+ a tuple, unless they are equal tuples. Each \meta{relation}
+ can be any (non-empty) combination of |<|, |=|, |>|, and~|?|, plus
+ an optional leading~|!| (which negates the \meta{relation}), with
+ the restriction that the negated \meta{relation} may not start with~|?|.
\item Boolean logic: sign $\fpop{sign} x$,
negation $\fpop{!}x$, conjunction
$x\fprel{\&\&}y$, disjunction $x\fprel{\string|\string|}y$, ternary
@@ -1198,13 +1259,13 @@ Titlecasing here follows the definition given by the Unicode Consortium: the
first character of the input will be converted to (broadly) uppercase, and the
rest of the input to lowercase. The full range of Unicode UTF-8 input can be
supported.
-\begin{quote}
- \begin{tabular}{rl}
+\begin{flushleft}
+ \begin{tabular}{@{}ll}
|\MakeUppercase{hello WORLD ßüé}| & \MakeUppercase{hello WORLD ßüé} \\
|\MakeLowercase{hello WORLD ßüé}| & \MakeLowercase{hello WORLD ßüé} \\
|\MakeTitlecase{hello WORLD ßüé}| & \MakeTitlecase{hello WORLD ßüé} \\
\end{tabular}
-\end{quote}
+\end{flushleft}
The case-changing commands take an optional argument which can be used to
tailor the output. This optional argument accepts the key \texttt{locale},
@@ -1220,14 +1281,14 @@ are the arguments to the commands \cs{label}, \cs{ref}, \cs{cite}, \cs{begin}
and \cs{end}. Additional exclusions can be added using the command
\cs{AddToNoCaseChangeList}. Input can be excluded from case changing using the
command \cs{NoCaseChange}.
-\begin{quote}
- \begin{tabular}{rl}
+\begin{flushleft}
+ \begin{tabular}{@{}ll}
|\MakeUppercase{Some text $y = mx + c$}|
& \MakeUppercase{Some text $y = mx + c$} \\
|\MakeUppercase{\NoCaseChange{iPhone}}|
& \MakeLowercase{\NoCaseChange{iPhone}} \\
\end{tabular}
-\end{quote}
+\end{flushleft}
To allow robust commands to be used within case changing \emph{and} to produce
the expected output, two additional control commands are available.
@@ -1256,19 +1317,19 @@ apply to a specific one: this is given in BCP-47 format
(\url{https://en.wikipedia.org/wiki/IETF_language_tag}). For example,
the kernel customises the mapping for U+01F0 (\v{j}) when uppercasing in
8-bit engines:
-\begin{quote}
- |\DeclareUppercaseMapping{"01F0}{\v{J}}|
-\end{quote}
+\begin{verbatim}
+\DeclareUppercaseMapping{"01F0}{\v{J}}
+\end{verbatim}
as there is no pre-composed \v{J} character, and this is problematic if
the engine does not support Unicode natively. Similarly, to set a locale
\texttt{xx} to behave in the same way as Turkish and retain the difference
between dotted- and dotless-i, one could use for example
-\begin{quote}
- |\DeclareLowercaseMapping[xx]{"0049}{\i}|\\
- |\DeclareLowercaseMapping[xx]{"0130}{i}|\\
- |\DeclareUppercaseMapping[xx]{"0069}{\.{I}}|\\
- |\DeclareUppercaseMapping[xx]{"0131}{I}|
-\end{quote}
+\begin{verbatim}
+\DeclareLowercaseMapping[xx]{"0049}{\i}
+\DeclareLowercaseMapping[xx]{"0130}{i}
+\DeclareUppercaseMapping[xx]{"0069}{\.{I}}
+\DeclareUppercaseMapping[xx]{"0131}{I}
+\end{verbatim}
\section{Support for problem solving}
diff --git a/macros/latex-dev/base/utf8ienc.pdf b/macros/latex-dev/base/utf8ienc.pdf
index a7e369b6eb..bfa803c7da 100644
--- a/macros/latex-dev/base/utf8ienc.pdf
+++ b/macros/latex-dev/base/utf8ienc.pdf
Binary files differ
diff --git a/macros/latex-dev/base/webcomp.pdf b/macros/latex-dev/base/webcomp.pdf
index c9664c681f..b1b6d41562 100644
--- a/macros/latex-dev/base/webcomp.pdf
+++ b/macros/latex-dev/base/webcomp.pdf
Binary files differ
diff --git a/macros/latex-dev/required/amsmath/README.md b/macros/latex-dev/required/amsmath/README.md
index ad82a9cd19..e8cefa4d07 100644
--- a/macros/latex-dev/required/amsmath/README.md
+++ b/macros/latex-dev/required/amsmath/README.md
@@ -1,7 +1,7 @@
The amsmath bundle for LaTeX
============================
-Release 2024-06-01 pre-release 0
+Release 2024-06-01 pre-release 2
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-dev/required/amsmath/amsbsy.ins b/macros/latex-dev/required/amsmath/amsbsy.ins
index 62b4e9a67c..2d0cdd7be3 100644
--- a/macros/latex-dev/required/amsmath/amsbsy.ins
+++ b/macros/latex-dev/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-dev/required/amsmath/amsbsy.pdf b/macros/latex-dev/required/amsmath/amsbsy.pdf
index 37a4b0c581..7ba7e970ee 100644
--- a/macros/latex-dev/required/amsmath/amsbsy.pdf
+++ b/macros/latex-dev/required/amsmath/amsbsy.pdf
Binary files differ
diff --git a/macros/latex-dev/required/amsmath/amscd.dtx b/macros/latex-dev/required/amsmath/amscd.dtx
index 85475708cc..e1eba3aec2 100644
--- a/macros/latex-dev/required/amsmath/amscd.dtx
+++ b/macros/latex-dev/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-dev/required/amsmath/amscd.ins b/macros/latex-dev/required/amsmath/amscd.ins
index 56aedca375..8f2e5decd4 100644
--- a/macros/latex-dev/required/amsmath/amscd.ins
+++ b/macros/latex-dev/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-dev/required/amsmath/amscd.pdf b/macros/latex-dev/required/amsmath/amscd.pdf
index d429bc3ce9..9e7064f446 100644
--- a/macros/latex-dev/required/amsmath/amscd.pdf
+++ b/macros/latex-dev/required/amsmath/amscd.pdf
Binary files differ
diff --git a/macros/latex-dev/required/amsmath/amsgen.dtx b/macros/latex-dev/required/amsmath/amsgen.dtx
index 6c4aefed67..a7b1ebc87f 100644
--- a/macros/latex-dev/required/amsmath/amsgen.dtx
+++ b/macros/latex-dev/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-dev/required/amsmath/amsgen.ins b/macros/latex-dev/required/amsmath/amsgen.ins
index faef4aa275..8b6f418595 100644
--- a/macros/latex-dev/required/amsmath/amsgen.ins
+++ b/macros/latex-dev/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-dev/required/amsmath/amsgen.pdf b/macros/latex-dev/required/amsmath/amsgen.pdf
index 5c71841b1c..145aa1486a 100644
--- a/macros/latex-dev/required/amsmath/amsgen.pdf
+++ b/macros/latex-dev/required/amsmath/amsgen.pdf
Binary files differ
diff --git a/macros/latex-dev/required/amsmath/amsldoc.pdf b/macros/latex-dev/required/amsmath/amsldoc.pdf
index 4c1b841a4c..ec0449e096 100644
--- a/macros/latex-dev/required/amsmath/amsldoc.pdf
+++ b/macros/latex-dev/required/amsmath/amsldoc.pdf
Binary files differ
diff --git a/macros/latex-dev/required/amsmath/amsldoc.tex b/macros/latex-dev/required/amsmath/amsldoc.tex
index 5c4b9e0d89..91e6ada7e6 100644
--- a/macros/latex-dev/required/amsmath/amsldoc.tex
+++ b/macros/latex-dev/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-dev/required/amsmath/amsmath.dtx b/macros/latex-dev/required/amsmath/amsmath.dtx
index bf8aa418df..d0ed131811 100644
--- a/macros/latex-dev/required/amsmath/amsmath.dtx
+++ b/macros/latex-dev/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
@@ -86,7 +86,7 @@ Bug reports can be opened (category \texttt{#1}) at\\%
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesPackage{amsmath}[2023/05/13 v2.17o AMS math features]
+\ProvidesPackage{amsmath}[2024/03/13 v2.17p AMS math features]
% \end{macrocode}
%
% \section{Catcode defenses}
@@ -4153,6 +4153,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-dev/required/amsmath/amsmath.ins b/macros/latex-dev/required/amsmath/amsmath.ins
index f92839f959..528700f238 100644
--- a/macros/latex-dev/required/amsmath/amsmath.ins
+++ b/macros/latex-dev/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-dev/required/amsmath/amsmath.pdf b/macros/latex-dev/required/amsmath/amsmath.pdf
index 76cf988993..fde4b6a38f 100644
--- a/macros/latex-dev/required/amsmath/amsmath.pdf
+++ b/macros/latex-dev/required/amsmath/amsmath.pdf
Binary files differ
diff --git a/macros/latex-dev/required/amsmath/amsopn.dtx b/macros/latex-dev/required/amsmath/amsopn.dtx
index b089749c17..11ad62ddc1 100644
--- a/macros/latex-dev/required/amsmath/amsopn.dtx
+++ b/macros/latex-dev/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-dev/required/amsmath/amsopn.ins b/macros/latex-dev/required/amsmath/amsopn.ins
index 859e3d7e5a..67b2b3c077 100644
--- a/macros/latex-dev/required/amsmath/amsopn.ins
+++ b/macros/latex-dev/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-dev/required/amsmath/amsopn.pdf b/macros/latex-dev/required/amsmath/amsopn.pdf
index 0fdaf47733..978b9d6a70 100644
--- a/macros/latex-dev/required/amsmath/amsopn.pdf
+++ b/macros/latex-dev/required/amsmath/amsopn.pdf
Binary files differ
diff --git a/macros/latex-dev/required/amsmath/amstext.dtx b/macros/latex-dev/required/amsmath/amstext.dtx
index a4bc541d34..68299946b0 100644
--- a/macros/latex-dev/required/amsmath/amstext.dtx
+++ b/macros/latex-dev/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-dev/required/amsmath/amstext.ins b/macros/latex-dev/required/amsmath/amstext.ins
index 11ed56cc3c..8ecb9523c9 100644
--- a/macros/latex-dev/required/amsmath/amstext.ins
+++ b/macros/latex-dev/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-dev/required/amsmath/amstext.pdf b/macros/latex-dev/required/amsmath/amstext.pdf
index b5a8fb40f2..48ff030166 100644
--- a/macros/latex-dev/required/amsmath/amstext.pdf
+++ b/macros/latex-dev/required/amsmath/amstext.pdf
Binary files differ
diff --git a/macros/latex-dev/required/amsmath/amsxtra.dtx b/macros/latex-dev/required/amsmath/amsxtra.dtx
index a1f2c6686c..5ace38995d 100644
--- a/macros/latex-dev/required/amsmath/amsxtra.dtx
+++ b/macros/latex-dev/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-dev/required/amsmath/amsxtra.ins b/macros/latex-dev/required/amsmath/amsxtra.ins
index 4707222513..2ba4f22138 100644
--- a/macros/latex-dev/required/amsmath/amsxtra.ins
+++ b/macros/latex-dev/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-dev/required/amsmath/amsxtra.pdf b/macros/latex-dev/required/amsmath/amsxtra.pdf
index 544783c2ba..a96c13d257 100644
--- a/macros/latex-dev/required/amsmath/amsxtra.pdf
+++ b/macros/latex-dev/required/amsmath/amsxtra.pdf
Binary files differ
diff --git a/macros/latex-dev/required/amsmath/changes.txt b/macros/latex-dev/required/amsmath/changes.txt
index 10ce2ec83b..a15eab5bbf 100644
--- a/macros/latex-dev/required/amsmath/changes.txt
+++ b/macros/latex-dev/required/amsmath/changes.txt
@@ -1,3 +1,9 @@
+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)
+
================================================================================
All changes above are only part of the development branch for the next release.
================================================================================
diff --git a/macros/latex-dev/required/amsmath/subeqn.pdf b/macros/latex-dev/required/amsmath/subeqn.pdf
index c8db586144..0f7d593343 100644
--- a/macros/latex-dev/required/amsmath/subeqn.pdf
+++ b/macros/latex-dev/required/amsmath/subeqn.pdf
Binary files differ
diff --git a/macros/latex-dev/required/amsmath/technote.pdf b/macros/latex-dev/required/amsmath/technote.pdf
index 4f4bd688ba..6f70cc885c 100644
--- a/macros/latex-dev/required/amsmath/technote.pdf
+++ b/macros/latex-dev/required/amsmath/technote.pdf
Binary files differ
diff --git a/macros/latex-dev/required/amsmath/testmath.pdf b/macros/latex-dev/required/amsmath/testmath.pdf
index e2d278af0d..151d3d2920 100644
--- a/macros/latex-dev/required/amsmath/testmath.pdf
+++ b/macros/latex-dev/required/amsmath/testmath.pdf
Binary files differ
diff --git a/macros/latex-dev/required/firstaid/changes.txt b/macros/latex-dev/required/firstaid/changes.txt
index 8db6a5d0fd..7ddcfbcec2 100644
--- a/macros/latex-dev/required/firstaid/changes.txt
+++ b/macros/latex-dev/required/firstaid/changes.txt
@@ -1,20 +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 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>
@@ -31,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-dev/required/firstaid/firstaid.ins b/macros/latex-dev/required/firstaid/firstaid.ins
index 22067390cd..5de510ba51 100644
--- a/macros/latex-dev/required/firstaid/firstaid.ins
+++ b/macros/latex-dev/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-dev/required/firstaid/latex2e-first-aid-for-external-files.dtx b/macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.dtx
index ed6c898d65..152737eaf7 100644
--- a/macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.dtx
+++ b/macros/latex-dev/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{2023/09/20}
-\def\LaTeXFirstAidVersion{v1.1b}
+\def\LaTeXFirstAidDate{2024/03/20}
+\def\LaTeXFirstAidVersion{v1.1e}
% \end{macrocode}
%
% \begin{macrocode}
@@ -602,5 +602,128 @@
%</kernel>
% \end{macrocode}
%
+% \begin{macrocode}
+%<*kernel>
+% \end{macrocode}
+%
+% \subsection{The \pkg{acro} package first aid}
+%
+% The package does not declare a \texttt{prop}, which causes an issue with newer
+% 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}%
+% \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}
+%
+% \subsection{The \pkg{chemformula} package first aid}
+%
+% Package \pkg{chemformula} uses \pkg{l3keys2e} for option processing.
+% This used to be made available as \pkg{chemformula} also loads
+% \pkg{xfrac}, which loaded \pkg{l3keys2e}. However, \pkg{xfrac} has now
+% been updated to use the newer kernel method if available, so loading
+% \pkg{chemformula} fails.
+% \begin{macrocode}
+\AddToHook{package/chemformula/before}[firstaid]{%
+ \RequirePackage{l3keys2e}%
+}
+% \end{macrocode}
+%
+% \subsection{The \pkg{chemnum} package first aid}
+%
+% The package does not declare a \texttt{prop}, which causes an issue with newer
+% 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)}
+ {\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}
+%
% \Finale
%
diff --git a/macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.pdf b/macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.pdf
index 9716fc7592..672d8f4fe0 100644
--- a/macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.pdf
+++ b/macros/latex-dev/required/firstaid/latex2e-first-aid-for-external-files.pdf
Binary files differ
diff --git a/macros/latex-dev/required/latex-lab/README.md b/macros/latex-dev/required/latex-lab/README.md
index a72fd43d9e..8663b7e4ad 100644
--- a/macros/latex-dev/required/latex-lab/README.md
+++ b/macros/latex-dev/required/latex-lab/README.md
@@ -1,6 +1,6 @@
# LaTeX laboratory
-Release 2024-06-01 pre-release 1
+Release 2024-06-01 pre-release 2
## Overview
diff --git a/macros/latex-dev/required/latex-lab/blocks-code.pdf b/macros/latex-dev/required/latex-lab/blocks-code.pdf
index b9095a2bd6..958db3a440 100644
--- a/macros/latex-dev/required/latex-lab/blocks-code.pdf
+++ b/macros/latex-dev/required/latex-lab/blocks-code.pdf
Binary files differ
diff --git a/macros/latex-dev/required/latex-lab/blocks-doc.pdf b/macros/latex-dev/required/latex-lab/blocks-doc.pdf
index c72d60783c..d34cb17fa3 100644
--- a/macros/latex-dev/required/latex-lab/blocks-doc.pdf
+++ b/macros/latex-dev/required/latex-lab/blocks-doc.pdf
Binary files differ
diff --git a/macros/latex-dev/required/latex-lab/changes.txt b/macros/latex-dev/required/latex-lab/changes.txt
index fd7e2d9333..cc5bb2d4f0 100644
--- a/macros/latex-dev/required/latex-lab/changes.txt
+++ b/macros/latex-dev/required/latex-lab/changes.txt
@@ -1,71 +1,130 @@
-2024-02-12 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
+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>
+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>
+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>
+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>
+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>
+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>
+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>
+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>
+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>
+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>
+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>
+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>
+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>
+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>
+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
+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>
+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,
+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>
+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>
+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>
+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>
+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
@@ -84,14 +143,14 @@
* 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
@@ -106,7 +165,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-dev/required/latex-lab/documentmetadata-support-code.pdf b/macros/latex-dev/required/latex-lab/documentmetadata-support-code.pdf
index c7d0fe107b..8699dd4426 100644
--- a/macros/latex-dev/required/latex-lab/documentmetadata-support-code.pdf
+++ b/macros/latex-dev/required/latex-lab/documentmetadata-support-code.pdf
Binary files differ
diff --git a/macros/latex-dev/required/latex-lab/documentmetadata-support-doc.pdf b/macros/latex-dev/required/latex-lab/documentmetadata-support-doc.pdf
index ff0295a160..89d9c58314 100644
--- a/macros/latex-dev/required/latex-lab/documentmetadata-support-doc.pdf
+++ b/macros/latex-dev/required/latex-lab/documentmetadata-support-doc.pdf
Binary files differ
diff --git a/macros/latex-dev/required/latex-lab/documentmetadata-support.dtx b/macros/latex-dev/required/latex-lab/documentmetadata-support.dtx
index 6bc7e232a1..54483ec4c9 100644
--- a/macros/latex-dev/required/latex-lab/documentmetadata-support.dtx
+++ b/macros/latex-dev/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}
%
%
@@ -125,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{}
@@ -171,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.
@@ -188,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}
@@ -222,6 +223,13 @@
% \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
@@ -414,7 +422,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 =
@@ -426,6 +434,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}
@@ -439,7 +471,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}
@@ -476,7 +508,7 @@
package/tagpdf/after
}
{
- \tagpdfsetup{paratagging-show}
+ \tagpdfsetup{debug/show=para}
}
}
,debug / log .code:n =
@@ -486,7 +518,7 @@
package/tagpdf/after
}
{
- \tagpdfsetup{log=#1}
+ \tagpdfsetup{debug/log=#1}
}
}
,debug / tagpdf .code:n =
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-amsmath.dtx b/macros/latex-dev/required/latex-lab/latex-lab-amsmath.dtx
index c50a40eedd..57e27067cb 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-amsmath.dtx
+++ b/macros/latex-dev/required/latex-lab/latex-lab-amsmath.dtx
@@ -111,7 +111,7 @@
% \end{macrocode}
% We are already in a par so we change now to text:
% \begin{macrocode}
- \tagpdfsetup{paratag=P}%
+ \tagpdfsetup{para/tag=P}%
% \end{macrocode}
% TODO why \cs{tagpdfparaOn} needed?
% \begin{macrocode}
@@ -199,6 +199,38 @@
}
% \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-dev/required/latex-lab/latex-lab-amsmath.pdf b/macros/latex-dev/required/latex-lab/latex-lab-amsmath.pdf
index 577c3cddab..3b652dd264 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-amsmath.pdf
+++ b/macros/latex-dev/required/latex-lab/latex-lab-amsmath.pdf
Binary files differ
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-bib.pdf b/macros/latex-dev/required/latex-lab/latex-lab-bib.pdf
index 4abf970ebf..94cc528e47 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-bib.pdf
+++ b/macros/latex-dev/required/latex-lab/latex-lab-bib.pdf
Binary files differ
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-block.dtx b/macros/latex-dev/required/latex-lab/latex-lab-block.dtx
index 75203f8ed5..7d08b270d2 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-block.dtx
+++ b/macros/latex-dev/required/latex-lab/latex-lab-block.dtx
@@ -9,8 +9,8 @@
%
% https://www.latex-project.org/lppl.txt
%
-\def\ltlabblockdate{2024-02-12}
-\def\ltlabblockversion{0.8l}
+\def\ltlabblockdate{2024-03-23}
+\def\ltlabblockversion{0.8n}
%<*driver>
\documentclass[kernel]{l3doc}
\usepackage{amstext}
@@ -898,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 ,
@@ -937,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 }
@@ -2301,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 }
}
@@ -3348,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}
@@ -3473,6 +3476,7 @@
tag=\l__tag_para_main_tag_tl,
attribute-class=\l__tag_para_main_attr_class_tl,
}
+ \__tag_para_main_store_struct:
}
}
}
@@ -3604,6 +3608,7 @@
tag=\l__tag_para_main_tag_tl,
attribute-class=\l__tag_para_main_attr_class_tl,
}
+ \__tag_para_main_store_struct:
}
}
\__tag_gincr_para_begin_int:
@@ -3629,6 +3634,7 @@
tag=\l__tag_para_main_tag_tl,
attribute-class=\l__tag_para_main_attr_class_tl,
}
+ \__tag_para_main_store_struct:
}
\__tag_gincr_para_begin_int:
\@@_debug_typeout:n{increment~ P \on@line }
@@ -3807,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}
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-block.pdf b/macros/latex-dev/required/latex-lab/latex-lab-block.pdf
index 44c6602ada..806562c30a 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-block.pdf
+++ b/macros/latex-dev/required/latex-lab/latex-lab-block.pdf
Binary files differ
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-firstaid.dtx b/macros/latex-dev/required/latex-lab/latex-lab-firstaid.dtx
index a50b367837..ba4addadd2 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-firstaid.dtx
+++ b/macros/latex-dev/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{2024-01-21}
-\def\ltlabfirstaidversion{0.85b}
+\def\ltlabfirstaiddate{2024-03-18}
+\def\ltlabfirstaidversion{0.85c}
%<*driver>
\documentclass{l3doc}
\EnableCrossrefs
@@ -55,6 +55,7 @@
% patches once the packages have been updated.
% \section{Implementation}
+%
% \begin{macrocode}
%<*package>
%<@@=tag>
@@ -75,7 +76,116 @@
\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.
@@ -116,7 +226,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}
@@ -140,9 +253,13 @@
}%
}
% \end{macrocode}
+%
+%
% \begin{macrocode}
%</package>
% \end{macrocode}
+%
+%
% \begin{macrocode}
%<*latex-lab>
\ProvidesFile{firstaid-latex-lab-testphase.ltx}
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-firstaid.pdf b/macros/latex-dev/required/latex-lab/latex-lab-firstaid.pdf
index 8db9946ef4..a9789040a1 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-firstaid.pdf
+++ b/macros/latex-dev/required/latex-lab/latex-lab-firstaid.pdf
Binary files differ
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-float.dtx b/macros/latex-dev/required/latex-lab/latex-lab-float.dtx
index e1c70968ab..a817133713 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-float.dtx
+++ b/macros/latex-dev/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{2024-02-05}
-\def\ltlabfloatversion{0.81c}
+\def\ltlabfloatdate{2024-03-23}
+\def\ltlabfloatversion{0.81e}
%<*driver>
\documentclass{l3doc}
\EnableCrossrefs
@@ -337,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
@@ -413,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
}
@@ -436,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
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-float.pdf b/macros/latex-dev/required/latex-lab/latex-lab-float.pdf
index e691200085..7940618082 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-float.pdf
+++ b/macros/latex-dev/required/latex-lab/latex-lab-float.pdf
Binary files differ
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-footnotes.dtx b/macros/latex-dev/required/latex-lab/latex-lab-footnotes.dtx
index 2389906c5a..a3d044ab87 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-footnotes.dtx
+++ b/macros/latex-dev/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-dev/required/latex-lab/latex-lab-footnotes.pdf b/macros/latex-dev/required/latex-lab/latex-lab-footnotes.pdf
index 4e291d6abf..2c1ca4f76d 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-footnotes.pdf
+++ b/macros/latex-dev/required/latex-lab/latex-lab-footnotes.pdf
Binary files differ
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-graphic.dtx b/macros/latex-dev/required/latex-lab/latex-lab-graphic.dtx
index 9585bee189..5ea4a2db9c 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-graphic.dtx
+++ b/macros/latex-dev/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}
@@ -326,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
{
@@ -452,8 +452,9 @@
% \end{macrocode}
% and here the tagging stops.
% \begin{macrocode}
+ \fi
\Gin@tag@struct@end %new
- \fi}
+ }
}
% \end{macrocode}
%
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-graphic.pdf b/macros/latex-dev/required/latex-lab/latex-lab-graphic.pdf
index fe21c3e51a..7cb2babc4b 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-graphic.pdf
+++ b/macros/latex-dev/required/latex-lab/latex-lab-graphic.pdf
Binary files differ
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-marginpar.pdf b/macros/latex-dev/required/latex-lab/latex-lab-marginpar.pdf
index 33be164cfa..a80fe64faa 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-marginpar.pdf
+++ b/macros/latex-dev/required/latex-lab/latex-lab-marginpar.pdf
Binary files differ
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-math.dtx b/macros/latex-dev/required/latex-lab/latex-lab-math.dtx
index 03eb8e42d0..4fabde3d11 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-math.dtx
+++ b/macros/latex-dev/required/latex-lab/latex-lab-math.dtx
@@ -579,8 +579,8 @@
% \begin{macrocode}
\tl_new:N\l_@@_attribute_class_tl
\tagpdfsetup
- {newattribute = {inline} {/O /Layout /Placement/Inline},
- newattribute = {display} {/O /Layout /Placement/Block},
+ {role/new-attribute = {inline} {/O /Layout /Placement/Inline},
+ role/new-attribute = {display} {/O /Layout /Placement/Block},
}
% \end{macrocode}
%
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-math.pdf b/macros/latex-dev/required/latex-lab/latex-lab-math.pdf
index 4907833be8..f9b74b0553 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-math.pdf
+++ b/macros/latex-dev/required/latex-lab/latex-lab-math.pdf
Binary files differ
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-mathpkg.dtx b/macros/latex-dev/required/latex-lab/latex-lab-mathpkg.dtx
index a8e8e810ad..31e7d31ef6 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-mathpkg.dtx
+++ b/macros/latex-dev/required/latex-lab/latex-lab-mathpkg.dtx
@@ -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-dev/required/latex-lab/latex-lab-mathpkg.pdf b/macros/latex-dev/required/latex-lab/latex-lab-mathpkg.pdf
index 1a2b8be781..fb9a09adc9 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-mathpkg.pdf
+++ b/macros/latex-dev/required/latex-lab/latex-lab-mathpkg.pdf
Binary files differ
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-mathtools.dtx b/macros/latex-dev/required/latex-lab/latex-lab-mathtools.dtx
index 1a0b8e0630..aa27cbf01d 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-mathtools.dtx
+++ b/macros/latex-dev/required/latex-lab/latex-lab-mathtools.dtx
@@ -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,7 @@
\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{}}
@@ -198,7 +198,7 @@
\parshape\@ne \@totalleftmargin \linewidth
\MH_fi:
\tag_mc_end_push:
- \tagpdfsetup{paratag=P}
+ \tagpdfsetup{para/tag=P}
% \end{macrocode}
% Why is it needed to enable paratagging??
% \begin{macrocode}
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-mathtools.pdf b/macros/latex-dev/required/latex-lab/latex-lab-mathtools.pdf
index 63e5b1e169..0f6d85c344 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-mathtools.pdf
+++ b/macros/latex-dev/required/latex-lab/latex-lab-mathtools.pdf
Binary files differ
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-minipage.pdf b/macros/latex-dev/required/latex-lab/latex-lab-minipage.pdf
index 6149b51afa..eda0551b7a 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-minipage.pdf
+++ b/macros/latex-dev/required/latex-lab/latex-lab-minipage.pdf
Binary files differ
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-namespace.pdf b/macros/latex-dev/required/latex-lab/latex-lab-namespace.pdf
index ec3c307a97..113688d669 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-namespace.pdf
+++ b/macros/latex-dev/required/latex-lab/latex-lab-namespace.pdf
Binary files differ
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-new-or-1.pdf b/macros/latex-dev/required/latex-lab/latex-lab-new-or-1.pdf
index 05cb1fbb23..c2cd53f8e5 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-new-or-1.pdf
+++ b/macros/latex-dev/required/latex-lab/latex-lab-new-or-1.pdf
Binary files differ
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-new-or-2.pdf b/macros/latex-dev/required/latex-lab/latex-lab-new-or-2.pdf
index df38c11015..b0c53e859b 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-new-or-2.pdf
+++ b/macros/latex-dev/required/latex-lab/latex-lab-new-or-2.pdf
Binary files differ
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-sec.pdf b/macros/latex-dev/required/latex-lab/latex-lab-sec.pdf
index 5e389feb11..cdf61e2b1e 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-sec.pdf
+++ b/macros/latex-dev/required/latex-lab/latex-lab-sec.pdf
Binary files differ
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-table.dtx b/macros/latex-dev/required/latex-lab/latex-lab-table.dtx
index 2eafb0a21e..5352df9550 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-table.dtx
+++ b/macros/latex-dev/required/latex-lab/latex-lab-table.dtx
@@ -927,17 +927,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
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-table.pdf b/macros/latex-dev/required/latex-lab/latex-lab-table.pdf
index a8c827c2e6..a87f7638df 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-table.pdf
+++ b/macros/latex-dev/required/latex-lab/latex-lab-table.pdf
Binary files differ
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-testphase.dtx b/macros/latex-dev/required/latex-lab/latex-lab-testphase.dtx
index ca3afe896d..f0a6fe65d0 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-testphase.dtx
+++ b/macros/latex-dev/required/latex-lab/latex-lab-testphase.dtx
@@ -123,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-dev/required/latex-lab/latex-lab-testphase.pdf b/macros/latex-dev/required/latex-lab/latex-lab-testphase.pdf
index e10f2c04f1..9cb5334c0d 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-testphase.pdf
+++ b/macros/latex-dev/required/latex-lab/latex-lab-testphase.pdf
Binary files differ
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-text.pdf b/macros/latex-dev/required/latex-lab/latex-lab-text.pdf
index 6847dff5a4..8b778cc94b 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-text.pdf
+++ b/macros/latex-dev/required/latex-lab/latex-lab-text.pdf
Binary files differ
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-title.pdf b/macros/latex-dev/required/latex-lab/latex-lab-title.pdf
index 2e60580ba6..94ea473b98 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-title.pdf
+++ b/macros/latex-dev/required/latex-lab/latex-lab-title.pdf
Binary files differ
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-toc-hyperref-changes.pdf b/macros/latex-dev/required/latex-lab/latex-lab-toc-hyperref-changes.pdf
index 6fdcf836af..e94e8e9cc3 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-toc-hyperref-changes.pdf
+++ b/macros/latex-dev/required/latex-lab/latex-lab-toc-hyperref-changes.pdf
Binary files differ
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-toc-kernel-changes.pdf b/macros/latex-dev/required/latex-lab/latex-lab-toc-kernel-changes.pdf
index de2dd29b50..65e534d37b 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-toc-kernel-changes.pdf
+++ b/macros/latex-dev/required/latex-lab/latex-lab-toc-kernel-changes.pdf
Binary files differ
diff --git a/macros/latex-dev/required/latex-lab/latex-lab-toc.pdf b/macros/latex-dev/required/latex-lab/latex-lab-toc.pdf
index 38122e3322..1bea97e1d9 100644
--- a/macros/latex-dev/required/latex-lab/latex-lab-toc.pdf
+++ b/macros/latex-dev/required/latex-lab/latex-lab-toc.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/README.md b/macros/latex-dev/required/tools/README.md
index 8c55bf3449..f1500cc4c4 100644
--- a/macros/latex-dev/required/tools/README.md
+++ b/macros/latex-dev/required/tools/README.md
@@ -1,7 +1,7 @@
The LaTeX `tools` bundle
========================
-Release 2024-06-01 pre-release 1
+Release 2024-06-01 pre-release 2
Overview
--------
diff --git a/macros/latex-dev/required/tools/afterpage.pdf b/macros/latex-dev/required/tools/afterpage.pdf
index a6f340967f..afe6cd4471 100644
--- a/macros/latex-dev/required/tools/afterpage.pdf
+++ b/macros/latex-dev/required/tools/afterpage.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/array.pdf b/macros/latex-dev/required/tools/array.pdf
index 87880c97fb..c0c1d1035f 100644
--- a/macros/latex-dev/required/tools/array.pdf
+++ b/macros/latex-dev/required/tools/array.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/bm.pdf b/macros/latex-dev/required/tools/bm.pdf
index 1f9efb0b02..a94e1325b8 100644
--- a/macros/latex-dev/required/tools/bm.pdf
+++ b/macros/latex-dev/required/tools/bm.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/calc.pdf b/macros/latex-dev/required/tools/calc.pdf
index 3cff423972..3e1f07af3a 100644
--- a/macros/latex-dev/required/tools/calc.pdf
+++ b/macros/latex-dev/required/tools/calc.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/changes.txt b/macros/latex-dev/required/tools/changes.txt
index ebf705e687..4339d8e702 100644
--- a/macros/latex-dev/required/tools/changes.txt
+++ b/macros/latex-dev/required/tools/changes.txt
@@ -5,6 +5,11 @@ completeness or accuracy and it contains some references to files that
are not part of the distribution.
=======================================================================
+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)
diff --git a/macros/latex-dev/required/tools/dcolumn.pdf b/macros/latex-dev/required/tools/dcolumn.pdf
index 588505c218..3b0e4e485b 100644
--- a/macros/latex-dev/required/tools/dcolumn.pdf
+++ b/macros/latex-dev/required/tools/dcolumn.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/delarray.pdf b/macros/latex-dev/required/tools/delarray.pdf
index 1fe65b8c75..75c9f0225e 100644
--- a/macros/latex-dev/required/tools/delarray.pdf
+++ b/macros/latex-dev/required/tools/delarray.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/enumerate.pdf b/macros/latex-dev/required/tools/enumerate.pdf
index 66a10c9002..71af43ddc0 100644
--- a/macros/latex-dev/required/tools/enumerate.pdf
+++ b/macros/latex-dev/required/tools/enumerate.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/fileerr.pdf b/macros/latex-dev/required/tools/fileerr.pdf
index 102b8c865d..bfa08b68cb 100644
--- a/macros/latex-dev/required/tools/fileerr.pdf
+++ b/macros/latex-dev/required/tools/fileerr.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/fontsmpl.pdf b/macros/latex-dev/required/tools/fontsmpl.pdf
index a40e5d5566..54a21ad1cc 100644
--- a/macros/latex-dev/required/tools/fontsmpl.pdf
+++ b/macros/latex-dev/required/tools/fontsmpl.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/ftnright.pdf b/macros/latex-dev/required/tools/ftnright.pdf
index e7f13295c7..7218f93ab4 100644
--- a/macros/latex-dev/required/tools/ftnright.pdf
+++ b/macros/latex-dev/required/tools/ftnright.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/hhline.pdf b/macros/latex-dev/required/tools/hhline.pdf
index c8484ff875..2040d11a2e 100644
--- a/macros/latex-dev/required/tools/hhline.pdf
+++ b/macros/latex-dev/required/tools/hhline.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/indentfirst.pdf b/macros/latex-dev/required/tools/indentfirst.pdf
index 96440b6c57..4ac9dbaf87 100644
--- a/macros/latex-dev/required/tools/indentfirst.pdf
+++ b/macros/latex-dev/required/tools/indentfirst.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/l3sys-query.dtx b/macros/latex-dev/required/tools/l3sys-query.dtx
new file mode 100644
index 0000000000..d8c92adac1
--- /dev/null
+++ b/macros/latex-dev/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-13 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 vey 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) mathing
+% 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-dev/required/tools/l3sys-query.ins b/macros/latex-dev/required/tools/l3sys-query.ins
new file mode 100644
index 0000000000..163eec0058
--- /dev/null
+++ b/macros/latex-dev/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-dev/required/tools/l3sys-query.pdf b/macros/latex-dev/required/tools/l3sys-query.pdf
new file mode 100644
index 0000000000..9f67a453e1
--- /dev/null
+++ b/macros/latex-dev/required/tools/l3sys-query.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/layout.pdf b/macros/latex-dev/required/tools/layout.pdf
index b2d34d40fc..90c51932ce 100644
--- a/macros/latex-dev/required/tools/layout.pdf
+++ b/macros/latex-dev/required/tools/layout.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/longtable.pdf b/macros/latex-dev/required/tools/longtable.pdf
index 5fb3c4a917..c1c37913ff 100644
--- a/macros/latex-dev/required/tools/longtable.pdf
+++ b/macros/latex-dev/required/tools/longtable.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/multicol.pdf b/macros/latex-dev/required/tools/multicol.pdf
index 360c09d0b9..dc6ec1cde6 100644
--- a/macros/latex-dev/required/tools/multicol.pdf
+++ b/macros/latex-dev/required/tools/multicol.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/rawfonts.pdf b/macros/latex-dev/required/tools/rawfonts.pdf
index 98bfaa374a..e2cae3b61d 100644
--- a/macros/latex-dev/required/tools/rawfonts.pdf
+++ b/macros/latex-dev/required/tools/rawfonts.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/shellesc.pdf b/macros/latex-dev/required/tools/shellesc.pdf
index c41228c1b9..290df81741 100644
--- a/macros/latex-dev/required/tools/shellesc.pdf
+++ b/macros/latex-dev/required/tools/shellesc.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/showkeys.pdf b/macros/latex-dev/required/tools/showkeys.pdf
index 6b1ae4549e..968476380c 100644
--- a/macros/latex-dev/required/tools/showkeys.pdf
+++ b/macros/latex-dev/required/tools/showkeys.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/somedefs.pdf b/macros/latex-dev/required/tools/somedefs.pdf
index 07a32befaa..42fe646dfb 100644
--- a/macros/latex-dev/required/tools/somedefs.pdf
+++ b/macros/latex-dev/required/tools/somedefs.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/tabularx.pdf b/macros/latex-dev/required/tools/tabularx.pdf
index 28b61a3da3..73f2c1bdf2 100644
--- a/macros/latex-dev/required/tools/tabularx.pdf
+++ b/macros/latex-dev/required/tools/tabularx.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/theorem.pdf b/macros/latex-dev/required/tools/theorem.pdf
index 96c8c8512f..eb1b723c21 100644
--- a/macros/latex-dev/required/tools/theorem.pdf
+++ b/macros/latex-dev/required/tools/theorem.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/tools-overview.pdf b/macros/latex-dev/required/tools/tools-overview.pdf
index b5dd0670fb..74db7e1ce1 100644
--- a/macros/latex-dev/required/tools/tools-overview.pdf
+++ b/macros/latex-dev/required/tools/tools-overview.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/tools.ins b/macros/latex-dev/required/tools/tools.ins
index 2fd1cd174b..8687d49d7f 100644
--- a/macros/latex-dev/required/tools/tools.ins
+++ b/macros/latex-dev/required/tools/tools.ins
@@ -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-dev/required/tools/trace.pdf b/macros/latex-dev/required/tools/trace.pdf
index f0065a21c3..a2f5e7d4fb 100644
--- a/macros/latex-dev/required/tools/trace.pdf
+++ b/macros/latex-dev/required/tools/trace.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/varioref.dtx b/macros/latex-dev/required/tools/varioref.dtx
index ccf3468c9b..f25c524188 100644
--- a/macros/latex-dev/required/tools/varioref.dtx
+++ b/macros/latex-dev/required/tools/varioref.dtx
@@ -40,7 +40,7 @@
%<package>\DeclareCurrentRelease{}{2019-10-01}
%<package>
%<package>\ProvidesPackage{varioref}
-%<package> [2022/01/09 v1.6f package for extended references (FMi)]
+%<package> [2024/01/15 v1.6f package for extended references (FMi)]
% \fi
%
%%
@@ -144,8 +144,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 +169,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 +210,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 +273,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 +293,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 +321,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 +382,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 +437,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 +448,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 +522,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 +537,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 +700,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 +839,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 +1037,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 +1125,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 +1201,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 +1936,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 +1979,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 +2009,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 +2018,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 +2033,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 +2050,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 +2062,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 +2076,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 +2132,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 +2253,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 +2265,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 +2294,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 +2342,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 +2390,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 +2524,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 +2559,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-dev/required/tools/varioref.pdf b/macros/latex-dev/required/tools/varioref.pdf
index 01a079a5ff..a398d5ff05 100644
--- a/macros/latex-dev/required/tools/varioref.pdf
+++ b/macros/latex-dev/required/tools/varioref.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/verbatim.pdf b/macros/latex-dev/required/tools/verbatim.pdf
index bc055db066..d2bd345190 100644
--- a/macros/latex-dev/required/tools/verbatim.pdf
+++ b/macros/latex-dev/required/tools/verbatim.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/xr.pdf b/macros/latex-dev/required/tools/xr.pdf
index b3c4530a59..3a7be5445a 100644
--- a/macros/latex-dev/required/tools/xr.pdf
+++ b/macros/latex-dev/required/tools/xr.pdf
Binary files differ
diff --git a/macros/latex-dev/required/tools/xspace.pdf b/macros/latex-dev/required/tools/xspace.pdf
index 792cae7e6c..51de3e2c87 100644
--- a/macros/latex-dev/required/tools/xspace.pdf
+++ b/macros/latex-dev/required/tools/xspace.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md
index 5634883569..c167a21ea5 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md
@@ -1,4 +1,5 @@
-<b>Date of last change: 2024-02-10 to version v1.1p</b>
+<b>Date of last change: 2024-03-27 to version v1.1q</b>
+
# biblatex-gb7714-2015: a biblatex style package
@@ -74,6 +75,8 @@ biblatex-gb7714-2015 宏包是中文参考文献著录/标注标准 `GB/T 7714-2
* [SJTUThesis(上海交通大学学位论文模板)](https://github.com/sjtug/SJTUThesis) (母校的论文模板,不得不说缘分真的很神奇,16年一出来就用上)
* [sustechthesis(Southern University of Science and Technology Thesis Template LaTeX Template)](https://github.com/Iydon/sustechthesis)
* [SwufeTeX(西南财经大学学位论文LaTeX模板)](https://github.com/OopsYao/swufethesis)
+* [SYSUThesis(中山大学研究生学位论文LaTeX模板(试用))](https://github.com/1FCENdoge/SYSUThesis)
+* [sysu-thesis(中山大学 LaTeX 论文项目模板(本科))](https://github.com/SYSU-SCC/sysu-thesis)
* [Thesis-Template-for-XJTU (西安交大毕业设计模板)](https://github.com/DXie123/Thesis-Template-for-XJTU)
* [ThuThesis(LaTeX Thesis Template for Tsinghua University )](https://github.com/tuna/thuthesis)
* [TongjiThesis(同济大学硕博士论文LaTeX模板)](https://github.com/marquistj13/TongjiThesis)
@@ -703,14 +706,15 @@ GB/T 7714-2015标准实现的bst版本,已经由[zeping lee](https://github.co
#### 4.2 Bibliography format/文献表著录格式
-* <b>请问可以在参考文献表中实现类似于word那样的与文献内容等间距标签对齐格式么?</b>
+* <b>请问可以在参考文献表中实现类似于word那样的与文献内容等间距的标签对齐格式么?</b>
可以,latex的列表通常用list来实现,因此一般列表的内容都是对齐的,
-此时如果标签右对齐的,那么标签和内容等间距,但标签左侧是不对齐的。
-如果标签是左对齐的,那么标签和内容的间距不相等。
-如果要求标签左侧对齐,且标签与内容等间距必须放弃使用list。
-biblatex-7714-2015的顺序编码制样式特别设计了这样的环境,以保持和word一致。通过设置选项gbalign来实现:
+此时如果标签右对齐的,那么标签和内容等间距,但标签左侧是不对齐的,此时对应的选项为:gbalign=right。
+如果标签是左对齐的,那么标签和内容的间距不相等,此时对应的选项为:gbalign=left。
+如果标签是中间对齐的,那么标签的两侧的[]是对齐的,数字标签处于其中间,此时对应的选项为:gbalign=center。
+如果要求标签左侧对齐,且标签与内容等间距,则必须放弃使用list,这种方式在本宏包中称为项对齐,对应选项为gbalign=gb7714-2015,
+这是biblatex-7714-2015的顺序编码制样式为项对齐设计了专门环境达成的,其使用方式很简单,加上响应的选项即可:
```\usepackage[backend=biber,bibstyle=gb7714-2015,gbalign=gb7714-2015]{biblatex}```
@@ -1609,6 +1613,8 @@ please see the file 'biblatex-gb7714-2015.pdf' for further information!
* 2023/05/24 v1.1n,ctan,github
* 2023/09/10 v1.1o,ctan,github
* 2024/02/10 v1.1p,ctan,github
+* 2024/03/27 v1.1q,ctan,github
+
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf
index e0b7222d5e..042dce20cb 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex
index 2dce4783ce..e87235d9e4 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex
@@ -538,6 +538,20 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
\caption{文献表作者缺失处理选项gbnoauthor效果}\label{fig:eg:optgbnoauthor}
\end{figure}
+
+
+ \pdfbookmark[4]{gbnoothers}{gbnoothers}
+ \item[gbnoothers]=true,\textbf{false}. \hfill default is false
+
+ 为控制是否输出作者列表截断后的等/et al. 信息增加的选项。
+ \begin{itemize}
+ \item gbnoothers=false,默认输出等、et al.信息;
+ \item gbnoothers=true,不输出。
+ \end{itemize}
+ 该选项是全局选项,设置为true后,全文的作者列表都将不输出。若需要再局部调整,则利用编组局部设置\verb|\settoggle{bbx:gbnoothers}{true}|即可。
+
+
+
\pdfbookmark[4]{gbbiblabel}{gbbiblabel}
\item[gbbiblabel]=\textbf{bracket},parens,plain,dot,box,circle. \hfill default is bracket
@@ -1098,6 +1112,16 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
将会为author2007en,author2014en两个条目添加nameformat域信息。
该命令也只能出现在导言区中。
+
+ \pdfbookmark[4]{delEntryField}{delEntryField}
+ \item[delEntryField] \{entrykey or entrykey comma list\}\{field\}
+
+ 用于给指定的文献条目(集)删除域。即将指定的entrykey 条目或者entrykey comma list 中的各个条目中的 field 域删除。
+
+ \verb|\delEntryField{author2007en,author2014en}{usera}|
+
+ 将会把author2007en,author2014en两个条目中usera域信息删除。
+
\pdfbookmark[4]{setlocalbibstring}{setlocalbibstring}
@@ -1650,7 +1674,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
\end{figure}
\paragraph{\heiti 文献表竖直间距控制}
-文献表各条目之间的竖直间距控制如例\ref{eg:biblist:vspace}所示,此外,还可以调整方括号和圆括号的竖直位置,使其与使用无基线以下部分字体的文本相配合。
+文献表各条目之间的竖直间距控制如例\ref{eg:biblist:vspace}所示。注意,这些竖直间距设置不是行距设置,而是行距基础上附加设置,行距默认采用正文的设置,若要局部调整参考文献的行距,则在局部编组中采用linespread命令或者调整 baselinestretch 实现。此外,还可以调整方括号和圆括号的竖直位置,使其与使用无基线以下部分字体的文本相配合。
\begin{example}{文献表竖直间距控制}{eg:biblist:vspace}
\begin{texlist}
@@ -1779,7 +1803,7 @@ bibitemindent表示
其它一些修改示例可以参考:
\href{run:./chinese-erj.bbx}{chinese-erj.bbx},
\href{run:./gb7714-CCNU.bbx}{gb7714-CCNU.bbx},
-\href{run:./egthesis/thesis-uibe-numeric.tex}{thesis-uibe-numeric.tex}。各标点命令的意义详见biblatex手册。
+\href{run:./egthesis/thesis-uibe-numeric.tex}{thesis-uibe-numeric.tex}。各标点命令的意义详见biblatex手册。一些示例见:\url{https://github.com/TheNetAdmin/zjuthesis/issues/374}。
\begin{example}{文献表常见标点(间隔符)控制}{eg:biblist:separator}
\begin{texlist}
@@ -1806,12 +1830,16 @@ bibitemindent表示
%姓名内部的相关标点,包括如下等设置
%注意这类设置与gbnamefmt选项相关,不同的选项值对应不同的gb...localset
+%包括:gbcaselocalset,gbpinyinlocalset,gbquanpinlocalset,gbfullnamelocalset
+%如果是familyahead,givenahead选项,则直接使用内部的重设命令即可。
%除了如下命令外还有其它设置,有需要可以查biblatex文档
\def\gbcaselocalset{%
\renewcommand*{\revsdnamepunct}{,}%%
\renewrobustcmd*{\bibinitperiod}{}%将名字简写后的点去掉
\renewrobustcmd*{\bibinithyphendelim}{}%.\mbox{-}
-\renewrobustcmd*{\bibnamedelima}{} %%\mbox{-}
+\renewrobustcmd*{\bibnamedelima}{} %%全拼名后的标点\mbox{-}
+\renewrobustcmd*{\bibnamedelimi}{} %名缩写点后的标点,Initials in the bib file
+\renewrobustcmd*{\bibinitdelim}{} %名缩写点后的标点
}
\end{texlist}
\end{example}
@@ -2007,6 +2035,20 @@ annotation = {美国发明专利申请号.},
}
\end{filecontents}
+%导言区
+%去掉文献Zhang2007-500-503的usera域
+\delEntryField{Zhang2007-500-503}{usera}
+%在第1个refsection中去掉article类的文献标识符
+%利用AtEveryBibitem在对refsection和entrytype判断后局部做设置
+\AtEveryBibitem{%
+\ifnumequal{\value{refsection}}{1}
+ {%
+ \ifentrytype{article}{\settoggle{bbx:gbtype}{false}}{\settoggle{bbx:gbtype}{true}}%
+ }%
+ {}%
+}
+
+%正文区
\begin{refsection}[resume.bib]
\nocite{ref-8-1-任天令,ref-9-1-Ren}%
\printbibliography[heading=subbibliography,title={研究成果}]
@@ -2170,7 +2212,7 @@ annotation = {美国发明专利申请号.},
\href{https://github.com/hushidong/biblatex-solution-to-latex-bibliography/blob/master/biblatex-solution-to-latex-bibliography.pdf}%
{biblatex-solution-to-latex-bibliography}中的第2.10节。
-具体例子则可以参考\href{run:./stdgbT7714-2015.pdf}{stdgbT7714-2015.pdf}。其中第8节中大量使用这种方式。
+具体例子则可以参考\href{run:./stdgbT7714-2015.pdf}{stdgbT7714-2015.pdf},其中第8节中大量使用这种方式。
@@ -2540,7 +2582,7 @@ biber -l zh__stroke jobname
其中,排序模板优先使用persort域进行排序,接着是与文种相关的lansortorder域,接着是sortkey域(该域在biblatex中就是key域的别名),接着是sortname等作者姓名相关的域,要让文献根据多音字习惯音进行排序,那么就在key域中设置文献作者姓名的习惯音。比如三篇文献作者分别是[李四]、[J. B. Conway]、[曾三]。在设置sorting=multipinyin, gblanorder=chineseahead, sortlocale=zh\_\_pinyin的情况下,根据上述的multipinyin排序模板,首先根据文种和作者信息将中文文献[曾三][李四]排在前面,接着是[J. B. Conway],因为默认情况下,曾字考虑的读音是ceng2,但这不是我们希望得到的。
-所以需要手动将key域设置为中文的拼音,比如[李四]文献设置key=\{li3si4\},而[曾三]文献设置key=\{zeng1san1\},那么中文文献仍然排在前面,但根据key域的设置会将[李四]文献排列在[曾三]前面。因此手动设置作者姓名的习惯拼音后,文献排列正确,顺序为:[李四][曾三][J. B. Conway]。 需要注意的是:若要手动设置拼音则需要对文献表中的全部中文文献设置否则利用key域排序就会失效,而这并是一个轻松的活,此时我们可以使用自动设置拼音的工具,详见
+所以需要手动将key域设置为中文的拼音,比如[李四]文献设置key=\{li3si4\},而[曾三]文献设置key=\{zeng1san1\},那么中文文献仍然排在前面,但根据key域的设置会将[李四]文献排列在[曾三]前面。因此手动设置作者姓名的习惯拼音后,文献排列正确,顺序为:[李四][曾三][J. B. Conway]。 需要注意的是:若要手动设置拼音则需要对文献表中的全部中文文献设置否则利用key域排序就会失效,而这并不是一个轻松的活,此时我们可以使用自动设置拼音的工具,详见
\href{https://www.latexstudio.net/index/details/index/ids/1546}{为中文参考文献自动添加排序用的拼音信息域},\href{https://github.com/hushidong/biblatex-map}{bibmap宏包}。
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx
index bc09f63c6e..6042720bc3 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx
@@ -11,7 +11,7 @@
%
% 版本和时间信息
%
-\def\versionofgbtstyle{2024/02/10 v1.1p}
+\def\versionofgbtstyle{2024/03/27 v1.1q}
\def\versionofbiblatex{\abx@version}
\ProvidesFile{gb7714-2015.bbx}[\versionofgbtstyle biblatex bibliography style]
%\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求
@@ -236,6 +236,14 @@
% 设置宏包选项
%=====================================================================
%
+ % 增加一个控制是否输出and others信息的选项
+ % 20240315,v1.1p,hzz
+ \newtoggle{bbx:gbnoothers}
+ \DeclareBibliographyOption{gbnoothers}[false]{%biblatex低版本
+ \settoggle{bbx:gbnoothers}{#1}}
+ \ExecuteBibliographyOptions{gbnoothers}
+
+ %
% 增加一个控制是否调整日期输出位置的选项mergedate
% 为兼容性考虑,但实际不产生作用了,因为如果要使用ay样式可以直接从bibstyle进入
% 因为使用string所以只适用于biblatex3.3以上版本
@@ -960,6 +968,7 @@
bibliography = {\str@bibliography},
references = {\str@references},
bytranslatorcn = {\str@bytranslator},%\addperiod,%将trans. by 改成 译\addcomma\
+ byeditor={\iffieldequalstr{userd}{chinese}{\str@editorcn}{ed\adddotspace by}},
and = {\addcomma},%将第2和3人名间的and符号改成逗号,用\finalnamedelim命令也可以定义,参见3.9.1节
andcn = {\addcomma},%and本地化字符串的中文对应词
andincitecn = {\str@andcn},%将标注中的分开,便于与文献表中的区分
@@ -1848,37 +1857,31 @@
}
%用于人工的为条目或条目集添加域
\newcommand{\addEntryField}[3]{%
- \edef\entrykeya{#1}
- \edef\entrykeyb{#2}
- \edef\entrykeyc{#3}
+ \edef\entrykeya{#1}%
+ \edef\entrykeyb{#2}%
+ \edef\entrykeyc{#3}%
\DeclareStyleSourcemap{
\maps[datatype=bibtex]{
\map[foreach={#1}]{
\step[fieldsource=entrykey, match=\regexp{$MAPLOOP}, final]
\step[fieldset=\entrykeyb, fieldvalue=\entrykeyc]
}
- \map{%处理在bib文件中直接给出文献的姓名格式为lowercase的情况
- \step[fieldsource=nameformat,match=lowercase,final]
- \step[fieldset=namefmtid,fieldvalue={1}]
- }
- \map{%处理在bib文件中直接给出文献的姓名格式为givenahead的情况
- \step[fieldsource=nameformat,match=givenahead,final]
- \step[fieldset=namefmtid,fieldvalue={2}]
- }
- \map{%处理在bib文件中直接给出文献的姓名格式为familyahead的情况
- \step[fieldsource=nameformat,match=familyahead,final]
- \step[fieldset=namefmtid,fieldvalue={3}]
- }
- \map{%处理在bib文件中直接给出文献的姓名格式为pinyin的情况
- \step[fieldsource=nameformat,match=pinyin,final]
- \step[fieldset=namefmtid,fieldvalue={4}]
- }
- \map{%处理在bib文件中直接给出文献的姓名格式为全拼的情况
- \step[fieldsource=nameformat,match=quanpin,final]
- \step[fieldset=namefmtid,fieldvalue={6}]
- }
}
- }
+ }%
+ }
+
+%用于人工的为条目或条目集删除域
+\newcommand{\delEntryField}[2]{%
+ \edef\entrykeya{#1}%
+ \edef\entrykeyb{#2}%
+ \DeclareStyleSourcemap{
+ \maps[datatype=bibtex,overwrite]{
+ \map[foreach={#1}]{
+ \step[fieldsource=entrykey, match=\regexp{$MAPLOOP}, final]
+ \step[fieldset=\entrykeyb, fieldvalue={}]
+ }
+ }
+ }%
}
%
@@ -2355,7 +2358,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
\DeclareFieldFormat{gbtypeflag}{%
\iftoggle{bbx:gbmedium}%
{\iftoggle{bbx:url}%
- {\iffieldundef{url}%当存在url时,增加一个OL标识符
+ {\ifboolexpr{ test {\iffieldundef{url}} and test {\iffieldundef{doi}} and test {\iffieldundef{eprint}} }%\iffieldundef{url}%当存在url时,增加一个OL标识符->改为当存在doi或eprint或url时增加OL标识符
{\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}}%
{\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{{\SlashFont/}OL\gbrightbracket}}%
}%
@@ -2476,6 +2479,18 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
\patchcmd{\abx@macro@title}{\newunitpunct}{}{}{}}}{}
}
+%
+\newbibmacro*{byeditor+others}{%
+ \ifnameundef{editor}
+ {}
+ {\iffieldequalstr{userd}{chinese}{}{\usebibmacro{byeditor+othersstrg}%
+ \setunit{\addspace}}%
+ \printnames[byeditor]{editor}%
+ \iffieldequalstr{userd}{chinese}{\usebibmacro{byeditor+othersstrg}}{}%
+ \clearname{editor}%
+ \newunit}%
+ \usebibmacro{byeditorx}%
+ \usebibmacro{bytranslator+others}}
%
% 修改译者位置格式
@@ -2485,8 +2500,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
\renewbibmacro*{bytranslator+others}{\bibauthorfont%
\ifnameundef{translator}
{}
- {\iffieldequalstr{usere}{chinese}{}{\usebibmacro{bytranslator+othersstrg}}%
- %\setunit{\addspace}%
+ {\iffieldequalstr{usere}{chinese}{}{\usebibmacro{bytranslator+othersstrg}\setunit{\addspace}}%
\printnames[bytranslator]{translator}%
\clearname{translator}%
%从macro*{bytranslator+othersstrg}%中可以看到当地化字符串格式的引用前的代码处理
@@ -2792,7 +2806,9 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
{\namepartprefix}
{\namepartsuffix}%
\fi
- \usebibmacro{name:andothers}}
+\iftoggle{bbx:gbnoothers}{}%
+ {\usebibmacro{name:andothers}}%
+}
\DeclareNameAlias{default}{namefmtselected}%姓名的默认格式采用可选的模式
\DeclareNameAlias{sortname}{default}% Used in the bibliography %family-given/given-family
@@ -3092,8 +3108,10 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
{\usebibmacro{name:first-last}{#1}{#3}{#5}{#7}}}%
\or
\usebibmacro{name:gbquanpin}{#1}{#3}{#5}{#7}%
- \fi
- \usebibmacro{name:andothers}}
+ \fi%
+\iftoggle{bbx:gbnoothers}{}%
+ {\usebibmacro{name:andothers}}%
+ }%
}
%
@@ -4218,7 +4236,7 @@ test{\iffieldundef{day}} and test{\iffieldundef{endday}} and test{\iffieldundef{
\usebibmacro{institution+location+date}%
%\newunit\newblock
\usebibmacro{chapter+pages}%
- \iffieldundef{url}{}{a%当没有网址时也不输出修改或更新日期
+ \iffieldundef{url}{}{%当没有网址时也不输出修改或更新日期
\usebibmacro{modifydate}}%修改或更新日期为带括号的时间
\usebibmacro{doi+eprint+url}%
\newunit
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx
index 73316ea3cb..01a0f05a6b 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx
@@ -10,7 +10,7 @@
%
% 版本和时间信息
%
-\def\versionofgbtstyle{2024/02/10 v1.1p}
+\def\versionofgbtstyle{2024/03/27 v1.1q}
\def\versionofbiblatex{\abx@version}
\ProvidesFile{gb7714-2015ay.bbx}[\versionofgbtstyle biblatex bibliography style]
%\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求
@@ -233,6 +233,14 @@
% 设置宏包选项
%=====================================================================
%
+ % 增加一个控制是否输出and others信息的选项
+ % 20240315,v1.1p,hzz
+ \newtoggle{bbx:gbnoothers}
+ \DeclareBibliographyOption{gbnoothers}[false]{%biblatex低版本
+ \settoggle{bbx:gbnoothers}{#1}}
+ \ExecuteBibliographyOptions{gbnoothers}
+
+ %
% 增加一个控制是否输出文献载体的选项
% 20191125,v1,0s,hzz
\newtoggle{bbx:gbmedium}
@@ -913,6 +921,7 @@
bibliography = {\str@bibliography},
references = {\str@references},
bytranslatorcn= {\str@bytranslator\adddot}, %将trans. by 改成 译
+ byeditor={\iffieldequalstr{userd}{chinese}{\str@editorcn}{ed\adddotspace by}},
and = {\addcomma},%将第2和3人名见的and符号改成 逗号,用\finalnamedelim命令也可以定义,参见3.9.1节
andcn = {\addcomma},%\str@andcn\ and本地化字符串的中文对应词
andincitecn = {\str@andcn},%将标注中的分开,便于与文献表中的区分
@@ -1675,37 +1684,31 @@
}
%用于人工的为条目或条目集添加域
\newcommand{\addEntryField}[3]{%
- \edef\entrykeya{#1}
- \edef\entrykeyb{#2}
- \edef\entrykeyc{#3}
+ \edef\entrykeya{#1}%
+ \edef\entrykeyb{#2}%
+ \edef\entrykeyc{#3}%
\DeclareStyleSourcemap{
\maps[datatype=bibtex]{
\map[foreach={#1}]{
\step[fieldsource=entrykey, match=\regexp{$MAPLOOP}, final]
\step[fieldset=\entrykeyb, fieldvalue=\entrykeyc]
}
- \map{%处理在bib文件中直接给出文献的姓名格式为lowercase的情况
- \step[fieldsource=nameformat,match=lowercase,final]
- \step[fieldset=namefmtid,fieldvalue={1}]
- }
- \map{%处理在bib文件中直接给出文献的姓名格式为givenahead的情况
- \step[fieldsource=nameformat,match=givenahead,final]
- \step[fieldset=namefmtid,fieldvalue={2}]
- }
- \map{%处理在bib文件中直接给出文献的姓名格式为familyahead的情况
- \step[fieldsource=nameformat,match=familyahead,final]
- \step[fieldset=namefmtid,fieldvalue={3}]
- }
- \map{%处理在bib文件中直接给出文献的姓名格式为pinyin的情况
- \step[fieldsource=nameformat,match=pinyin,final]
- \step[fieldset=namefmtid,fieldvalue={4}]
- }
- \map{%处理在bib文件中直接给出文献的姓名格式为全拼的情况
- \step[fieldsource=nameformat,match=quanpin,final]
- \step[fieldset=namefmtid,fieldvalue={6}]
- }
}
- }
+ }%
+ }
+
+%用于人工的为条目或条目集删除域
+\newcommand{\delEntryField}[2]{%
+ \edef\entrykeya{#1}%
+ \edef\entrykeyb{#2}%
+ \DeclareStyleSourcemap{
+ \maps[datatype=bibtex,overwrite]{
+ \map[foreach={#1}]{
+ \step[fieldsource=entrykey, match=\regexp{$MAPLOOP}, final]
+ \step[fieldset=\entrykeyb, fieldvalue={}]
+ }
+ }
+ }%
}
%
@@ -2213,7 +2216,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
\DeclareFieldFormat{gbtypeflag}{%
\iftoggle{bbx:gbmedium}%
{\iftoggle{bbx:url}%
- {\iffieldundef{url}%当存在url时,增加一个OL标识符
+ {\ifboolexpr{ test {\iffieldundef{url}} and test {\iffieldundef{doi}} and test {\iffieldundef{eprint}} }%\iffieldundef{url}%当存在url时,增加一个OL标识符->改为当存在doi或eprint或url时增加OL标识符
{\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}}%
{\printdelim{titletypedelim}\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{{\SlashFont/}OL\gbrightbracket}}%
}%
@@ -2334,6 +2337,19 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
}
+\renewbibmacro*{byeditor+others}{%
+ \ifnameundef{editor}
+ {}
+ {\iffieldequalstr{userd}{chinese}{}{\usebibmacro{byeditor+othersstrg}%
+ \setunit{\addspace}}%
+ \printnames[byeditor]{editor}%
+ \iffieldequalstr{userd}{chinese}{\usebibmacro{byeditor+othersstrg}}{}%
+ \clearname{editor}%
+ \newunit}%
+ \usebibmacro{byeditorx}%
+ \usebibmacro{bytranslator+others}}
+
+
%
% 修改译者位置格式
% v1.0w,20210401,hzz,增加对英文等其它语言译者的处理
@@ -2342,8 +2358,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
\renewbibmacro*{bytranslator+others}{\bibauthorfont%
\ifnameundef{translator}
{}
- {\iffieldequalstr{usere}{chinese}{}{\usebibmacro{bytranslator+othersstrg}}%
- %\setunit{\addspace}%
+ {\iffieldequalstr{usere}{chinese}{}{\usebibmacro{bytranslator+othersstrg}\setunit{\addspace}}%
\printnames[bytranslator]{translator}%
\clearname{translator}%
%从macro*{bytranslator+othersstrg}%中可以看到当地化字符串格式的引用前的代码处理
@@ -2648,7 +2663,9 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
{\namepartprefix}
{\namepartsuffix}%
\fi
- \usebibmacro{name:andothers}}
+\iftoggle{bbx:gbnoothers}{}%
+ {\usebibmacro{name:andothers}}%
+}
\DeclareNameAlias{default}{namefmtselected}%姓名的默认格式采用可选的模式
\DeclareNameAlias{sortname}{default}% Used in the bibliography %family-given/given-family
@@ -2948,8 +2965,10 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
{\usebibmacro{name:first-last}{#1}{#3}{#5}{#7}}}%
\or
\usebibmacro{name:gbquanpin}{#1}{#3}{#5}{#7}%
- \fi
- \usebibmacro{name:andothers}}
+ \fi%
+\iftoggle{bbx:gbnoothers}{}%
+ {\usebibmacro{name:andothers}}%
+ }%
}
%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.cbx
index 739528dc1b..8a1a03d1d2 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.cbx
@@ -7,7 +7,7 @@
%% Released under the LaTeX Project Public License v1.3c or later
%% ---------------------------------------------------------------
%%
-\ProvidesFile{gb7714-2015.cbx}[a biblatex citation style for GB/T 7714-2015]
+\ProvidesFile{gb7714-2015ay.cbx}[a biblatex citation style for GB/T 7714-2015]
%
% 加载标准样式
@@ -322,16 +322,20 @@ test {\iftoggle{iftlseven}}%3.7=biblatex
\newrobustcmd*{\upcite}{%
\cite}
+\newrobustcmd{\mkbiboutparens}[1]{%
+ \unspace\allowhyphens%
+\begingroup\mkbibleftborder#1\mkbibrightborder\endgroup}%
+
%
% 重定义parencite命令
%
-\DeclareCiteCommand{\parencite}%[\mkbibparens]
+\DeclareCiteCommand{\parencite}[\mkbiboutparens]%
{\usebibmacro{cite:init}%
- \mkbibleftborder\usebibmacro{prenote}}%
+ \usebibmacro{prenote}}%
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{}
- {\usebibmacro{postnote}\mkbibrightborder}
+ {\usebibmacro{postnote}}
%
% 重定义footcite需要使用的命令
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx
index a4668eb0ff..3ff6cc21b6 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx
@@ -11,7 +11,7 @@
%
% 版本和时间信息
%
-\def\versionofgbtstyle{2024/02/10 v1.1p}
+\def\versionofgbtstyle{2024/03/27 v1.1q}
\def\versionofbiblatex{\abx@version}
\ProvidesFile{gb7714-2015ms.bbx}[\versionofgbtstyle biblatex bibliography style]
%\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求
@@ -120,6 +120,14 @@
% 设置宏包选项
%=====================================================================
%
+ % 增加一个控制是否输出and others信息的选项
+ % 20240315,v1.1p,hzz
+ \newtoggle{bbx:gbnoothers}
+ \DeclareBibliographyOption{gbnoothers}[false]{%biblatex低版本
+ \settoggle{bbx:gbnoothers}{#1}}
+ \ExecuteBibliographyOptions{gbnoothers}
+
+ %
% 增加一个控制是否输出文献载体的选项
% 20191125,v1,0s,hzz
\newtoggle{bbx:gbmedium}
@@ -384,6 +392,13 @@
\def\str@mathesiscn{硕士学位论文}
\def\str@phdthesiscn{博士学位论文}
\def\str@editorcn{主编}
+ \def\str@editorscn{主编}
+ \def\str@compilerscn{整理}
+ \def\str@compilercn{整理}
+ \def\str@revisercn{编}
+ \def\str@reviserscn{编}
+ \def\str@foundercn{编著}
+ \def\str@founderscn{编著}
\AtEndOfPackage{%
\iftoggle{bbx:codegbk}{%
@@ -636,6 +651,12 @@
\NewBibliographyString{editorcn}
\NewBibliographyString{editorscn}
\NewBibliographyString{bytranslatorcn}
+ \NewBibliographyString{compilercn}
+ \NewBibliographyString{compilerscn}
+ \NewBibliographyString{revisercn}
+ \NewBibliographyString{reviserscn}
+ \NewBibliographyString{foundercn}
+ \NewBibliographyString{founderscn}
%
@@ -648,6 +669,7 @@
bibliography = {\str@bibliography},
references = {\str@references},
bytranslatorcn = {\str@bytranslator},%\addperiod,%将trans. by 改成 译
+ byeditor={\iffieldequalstr{userd}{chinese}{\str@editorcn}{ed\adddotspace by}},
and = {\addcomma},%将第2和3人名间的and符号改成逗号,用\finalnamedelim命令也可以定义,参见3.9.1节
andcn = {\addcomma},%and本地化字符串的中文对应词
andincitecn = {\addcomma},%将标注中的分开,便于与文献表中的区分
@@ -671,6 +693,12 @@
phdthesiscn={\str@phdthesiscn},
editorscn={\str@editorcn},
editorcn={\str@editorcn},
+ compilerscn={\str@compilerscn},
+ compilercn={\str@compilercn},
+ reviserscn={\str@reviserscn},
+ revisercn={\str@revisercn},
+ founderscn={\str@founderscn},
+ foundercn={\str@foundercn},
}
%
@@ -1263,6 +1291,35 @@
}
}
+%用于人工的为条目或条目集添加域
+\newcommand{\addEntryField}[3]{%
+ \edef\entrykeya{#1}%
+ \edef\entrykeyb{#2}%
+ \edef\entrykeyc{#3}%
+ \DeclareStyleSourcemap{
+ \maps[datatype=bibtex]{
+ \map[foreach={#1}]{
+ \step[fieldsource=entrykey, match=\regexp{$MAPLOOP}, final]
+ \step[fieldset=\entrykeyb, fieldvalue=\entrykeyc]
+ }
+ }
+ }%
+ }
+
+%用于人工的为条目或条目集删除域
+\newcommand{\delEntryField}[2]{%
+ \edef\entrykeya{#1}%
+ \edef\entrykeyb{#2}%
+ \DeclareStyleSourcemap{
+ \maps[datatype=bibtex,overwrite]{
+ \map[foreach={#1}]{
+ \step[fieldsource=entrykey, match=\regexp{$MAPLOOP}, final]
+ \step[fieldset=\entrykeyb, fieldvalue={}]
+ }
+ }
+ }%
+ }
+
%
%驱动别名等价于驱动层映射
%
@@ -1445,7 +1502,7 @@
\DeclareFieldFormat{gbtypeflag}{%
\iftoggle{bbx:gbmedium}%
{\iftoggle{bbx:url}%
- {\iffieldundef{url}%当存在url时,增加一个OL标识符
+ {\ifboolexpr{test {\iffieldundef{url}} and test {\iffieldundef{doi}} and test {\iffieldundef{eprint}}}%\iffieldundef{url}%当存在url时,增加一个OL标识符->改为当存在doi或eprint或url时增加OL标识符
{\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}}%
{\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{{\SlashFont/}OL\gbrightbracket}}%
}%
@@ -1590,8 +1647,10 @@
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}%
-\fi
- \usebibmacro{name:andothers}}
+\fi%
+\iftoggle{bbx:gbnoothers}{}%
+ {\usebibmacro{name:andothers}}%
+}
\DeclareNameAlias{default}{namefmtselected}%姓名的默认格式采用可选的模式
\DeclareNameAlias{sortname}{default}% Used in the bibliography %family-given/given-family
@@ -1935,6 +1994,17 @@ togl{bbx:gbstyle} or test {\iffieldequalstr{userd}{chinese}}%
\href{\thefield{url}}{##1}}}{##1}}%重设标题格式,将其修改为首字母大写
\DeclareFieldFormat{pages}{##1}%去掉前面引导页码的pp.等字符,\mkpageprefix[bookpagination]{##1}
}%
+\renewbibmacro*{byeditor+others}{%
+ \ifnameundef{editor}%
+ {}%
+ {\iffieldequalstr{userd}{chinese}{}{\usebibmacro{byeditor+othersstrg}%
+ \setunit{\addspace}}%
+ \printnames[byeditor]{editor}%
+ \iffieldequalstr{userd}{chinese}{\usebibmacro{byeditor+othersstrg}}{}%
+ \clearname{editor}%
+ \newunit}%
+ \usebibmacro{byeditorx}%
+ \usebibmacro{bytranslator+others}}%
%
% 修改译者位置格式
% v1.0w,20210401,hzz,增加对英文等其它语言译者的处理
@@ -1943,8 +2013,7 @@ togl{bbx:gbstyle} or test {\iffieldequalstr{userd}{chinese}}%
\renewbibmacro*{bytranslator+others}{\bibauthorfont%
\ifnameundef{translator}
{}
- {\iffieldequalstr{usere}{chinese}{}{\usebibmacro{bytranslator+othersstrg}}%
- %\setunit{\addspace}%
+ {\iffieldequalstr{usere}{chinese}{}{\usebibmacro{bytranslator+othersstrg}\setunit{\addspace}}%
\printnames[bytranslator]{translator}%
\clearname{translator}%
%从macro*{bytranslator+othersstrg}%中可以看到当地化字符串格式的引用前的代码处理
@@ -2092,7 +2161,7 @@ togl{bbx:gbstyle} or test {\iffieldequalstr{userd}{chinese}}%
\iffieldundef{titleaddon}{}{\setunit{\subtitlepunct}\printfield{titleaddon}}%判断一下titleaddon
\ifboolexpr{test{\ifentrytype{book}} and (not test{\iffieldundef{volume}})}%判断一下book类有没有volume
{\setunit{\subtitlepunct}\printfield{volume}}{}%
- \ifboolexpr{(test{\ifentrytype{archive}} or test{\ifentrytype{online}}) and (not test{\iffieldundef{number}})}%判断一下archive类有没有number
+ \ifboolexpr{(test{\ifentrytype{archive}} or test{\ifentrytype{online}}) and (not test{\iffieldundef{number}})}%判断一下archive类有没有number
{\setunit{\subtitlepunct}\printfield{number}}{}%
\iftoggle{bbx:gbtype}%
{\iffieldundef{entrysubtype}{\printfield[gbtypeflag]{usera}}%在标题后直接给出文献标识字母,判断一下,是否是报纸和标准
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.cbx
index fce42d508b..333b873eec 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.cbx
@@ -7,7 +7,7 @@
%% Released under the LaTeX Project Public License v1.3c or later
%% ---------------------------------------------------------------
%%
-\ProvidesFile{gb7714-2015.cbx}[a biblatex citation style for GB/T 7714-2015]
+\ProvidesFile{gb7714-2015ms.cbx}[a biblatex citation style for GB/T 7714-2015]
%
% 加载样式
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx
index 8351664a2a..27b316d648 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx
@@ -11,7 +11,7 @@
%
% 版本和时间信息
%
-\def\versionofgbtstyle{2024/02/10 v1.1p}
+\def\versionofgbtstyle{2024/03/27 v1.1q}
\def\versionofbiblatex{\abx@version}
\ProvidesFile{gb7714-2015mx.bbx}[\versionofgbtstyle biblatex bibliography style]
%\RequireBiber[3]%显式指定用biber后端,当用bibtex时会报错,但其实不会影响编译,只是采用bibtex后无法达成格式需求
@@ -147,6 +147,15 @@
% 设置宏包选项
%=====================================================================
%
+ % 增加一个控制是否输出and others信息的选项
+ % 20240315,v1.1p,hzz
+ \newtoggle{bbx:gbnoothers}
+ \DeclareBibliographyOption{gbnoothers}[false]{%biblatex低版本
+ \settoggle{bbx:gbnoothers}{#1}}
+ \ExecuteBibliographyOptions{gbnoothers}
+
+
+ %
% 增加一个控制是否输出type域的选项
% 20190212,v1,0q,hzz
\newtoggle{bbx:gbfieldtype}
@@ -383,6 +392,13 @@
\def\str@mathesiscn{硕士学位论文}
\def\str@phdthesiscn{博士学位论文}
\def\str@editorcn{主编}
+ \def\str@editorscn{主编}
+ \def\str@compilerscn{整理}
+ \def\str@compilercn{整理}
+ \def\str@revisercn{编}
+ \def\str@reviserscn{编}
+ \def\str@foundercn{编著}
+ \def\str@founderscn{编著}
\AtEndOfPackage{%
\iftoggle{bbx:codegbk}{%
@@ -680,6 +696,12 @@
\NewBibliographyString{editorcn}
\NewBibliographyString{editorscn}
\NewBibliographyString{bytranslatorcn}
+ \NewBibliographyString{compilercn}
+ \NewBibliographyString{compilerscn}
+ \NewBibliographyString{revisercn}
+ \NewBibliographyString{reviserscn}
+ \NewBibliographyString{foundercn}
+ \NewBibliographyString{founderscn}
@@ -694,6 +716,7 @@
bibliography = {\str@bibliography},
references = {\str@references},
bytranslatorcn = {\str@bytranslator},%\addperiod,%将trans. by 改成 译\addcomma\
+ byeditor={\iffieldequalstr{userd}{chinese}{\str@editorcn}{ed\adddotspace by}},
and = {\addcomma},%将第2和3人名间的and符号改成逗号,用\finalnamedelim命令也可以定义,参见3.9.1节
andcn = {\addcomma},%and本地化字符串的中文对应词
andincitecn = {\addcomma},%将标注中的分开,便于与文献表中的区分
@@ -717,6 +740,12 @@
phdthesiscn={\str@phdthesiscn},
editorscn={\str@editorcn},
editorcn={\str@editorcn},
+ compilerscn={\str@compilerscn},
+ compilercn={\str@compilercn},
+ reviserscn={\str@reviserscn},
+ revisercn={\str@revisercn},
+ founderscn={\str@founderscn},
+ foundercn={\str@foundercn},
}
%
@@ -1407,7 +1436,34 @@
}
}
+%用于人工的为条目或条目集添加域
+\newcommand{\addEntryField}[3]{%
+ \edef\entrykeya{#1}%
+ \edef\entrykeyb{#2}%
+ \edef\entrykeyc{#3}%
+ \DeclareStyleSourcemap{
+ \maps[datatype=bibtex]{
+ \map[foreach={#1}]{
+ \step[fieldsource=entrykey, match=\regexp{$MAPLOOP}, final]
+ \step[fieldset=\entrykeyb, fieldvalue=\entrykeyc]
+ }
+ }
+ }%
+ }
+%用于人工的为条目或条目集删除域
+\newcommand{\delEntryField}[2]{%
+ \edef\entrykeya{#1}%
+ \edef\entrykeyb{#2}%
+ \DeclareStyleSourcemap{
+ \maps[datatype=bibtex,overwrite]{
+ \map[foreach={#1}]{
+ \step[fieldsource=entrykey, match=\regexp{$MAPLOOP}, final]
+ \step[fieldset=\entrykeyb, fieldvalue={}]
+ }
+ }
+ }%
+ }
%
@@ -1751,7 +1807,7 @@
\DeclareFieldFormat{gbtypeflag}{%
\iftoggle{bbx:gbmedium}%
{\iftoggle{bbx:url}%
- {\iffieldundef{url}%当存在url时,增加一个OL标识符
+ {\ifboolexpr{ test {\iffieldundef{url}} and test {\iffieldundef{doi}} and test {\iffieldundef{eprint}} }%\iffieldundef{url}%当存在url时,增加一个OL标识符->改为当存在doi或eprint或url时增加OL标识符
{\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{{\SlashFont/}\thefield{medium}}\gbrightbracket}}%
{\allowbreak\printtext{\gbleftbracket}\nobreak#1\nobreak\printtext{{\SlashFont/}OL\gbrightbracket}}%
}%
@@ -1867,7 +1923,17 @@
\patchcmd{\abx@macro@title}{\newunitpunct}{}{}{}}}{}
}
-
+\newbibmacro*{byeditor+others}{%
+ \ifnameundef{editor}
+ {}
+ {\iffieldequalstr{userd}{chinese}{}{\usebibmacro{byeditor+othersstrg}%
+ \setunit{\addspace}}%
+ \printnames[byeditor]{editor}%
+ \iffieldequalstr{userd}{chinese}{\usebibmacro{byeditor+othersstrg}}{}%
+ \clearname{editor}%
+ \newunit}%
+ \usebibmacro{byeditorx}%
+ \usebibmacro{bytranslator+others}}
%
% 修改译者位置格式
% v1.0w,20210401,hzz,增加对英文等其它语言译者的处理
@@ -1876,8 +1942,7 @@
\renewbibmacro*{bytranslator+others}{\bibauthorfont%
\ifnameundef{translator}
{}
- {\iffieldequalstr{usere}{chinese}{}{\usebibmacro{bytranslator+othersstrg}}%
- %\setunit{\addspace}%
+ {\iffieldequalstr{usere}{chinese}{}{\usebibmacro{bytranslator+othersstrg}\setunit{\addspace}}%
\printnames[bytranslator]{translator}%
\clearname{translator}%
%从macro*{bytranslator+othersstrg}%中可以看到当地化字符串格式的引用前的代码处理
@@ -2172,8 +2237,10 @@
{\namepartgiven}
{\namepartprefix}
{\namepartsuffix}%
-\fi
- \usebibmacro{name:andothers}}
+\fi%
+\iftoggle{bbx:gbnoothers}{}%
+ {\usebibmacro{name:andothers}}%
+}
\DeclareNameAlias{default}{namefmtselected}%姓名的默认格式采用可选的模式
\DeclareNameAlias{sortname}{default}% Used in the bibliography %family-given/given-family
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.cbx
index 1beb8d05ca..e7d16c09b4 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.cbx
@@ -7,7 +7,7 @@
%% Released under the LaTeX Project Public License v1.3c or later
%% ---------------------------------------------------------------
%%
-\ProvidesFile{gb7714-2015.cbx}[a biblatex citation style for GB/T 7714-2015]
+\ProvidesFile{gb7714-2015mx.cbx}[a biblatex citation style for GB/T 7714-2015]
%
% 加载标准样式
diff --git a/macros/latex/contrib/fontscale/fontscale-manual.pdf b/macros/latex/contrib/fontscale/fontscale-manual.pdf
index 99984191ff..e90ca7b92d 100644
--- a/macros/latex/contrib/fontscale/fontscale-manual.pdf
+++ b/macros/latex/contrib/fontscale/fontscale-manual.pdf
Binary files differ
diff --git a/macros/latex/contrib/fontscale/fontscale-manual.tex b/macros/latex/contrib/fontscale/fontscale-manual.tex
index 26833d220e..f7d475cd7b 100644
--- a/macros/latex/contrib/fontscale/fontscale-manual.tex
+++ b/macros/latex/contrib/fontscale/fontscale-manual.tex
@@ -13,7 +13,7 @@ A user interface for setting document font sizes
Oliver Beery
-Version 1.0.2\quad{}22 March 2024
+Version 1.0.3\quad{}26 March 2024
\section{Introduction}
diff --git a/macros/latex/contrib/fontscale/fontscale.sty b/macros/latex/contrib/fontscale/fontscale.sty
index ba1ba40b87..3a6d63676a 100644
--- a/macros/latex/contrib/fontscale/fontscale.sty
+++ b/macros/latex/contrib/fontscale/fontscale.sty
@@ -8,8 +8,8 @@
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
\ProvidesExplPackage
{fontscale}
- {2024-03-22}
- {1.0.2}
+ {2024-03-26}
+ {1.0.3}
{A user interface for setting document font sizes}
% The 2023-10-10 l3kernel update added many 'e'-variants.
@@ -127,12 +127,11 @@
\tl_new:N \l__fontscale_keys_precompile_preamble_tl
% Temporary variables
-\seq_new:N \l__fontscale_tmp_seq
-
-\tl_new:N \l__fontscale_step_tl
-\fp_new:N \l__fontscale_step_fp
-\tl_new:N \l__fontscale_scale_tl
-\dim_new:N \l__fontscale_size_dim
+\fp_new:N \l__fontscale_step_fp
+\tl_new:N \l__fontscale_step_tl
+\tl_new:N \l__fontscale_scale_tl
+\dim_new:N \l__fontscale_size_dim
+\skip_new:N \l__fontscale_baselineskip_skip
% INITIAL FONT PARAMETERS
@@ -415,43 +414,43 @@
}
\keys_define:nn { fontscale }
{
- tiny .code:n = \__fontscale_keys_name_fn:n {#1}
+ tiny .code:n = \__fontscale_keys_name_code:n {#1}
, tiny .value_required:n = true
- , scriptsize .code:n = \__fontscale_keys_name_fn:n {#1}
+ , scriptsize .code:n = \__fontscale_keys_name_code:n {#1}
, scriptsize .value_required:n = true
- , footnotesize .code:n = \__fontscale_keys_name_fn:n {#1}
+ , footnotesize .code:n = \__fontscale_keys_name_code:n {#1}
, footnotesize .value_required:n = true
- , small .code:n = \__fontscale_keys_name_fn:n {#1}
+ , small .code:n = \__fontscale_keys_name_code:n {#1}
, small .value_required:n = true
- , normalsize .code:n = \__fontscale_keys_name_fn:n {#1}
+ , normalsize .code:n = \__fontscale_keys_name_code:n {#1}
, normalsize .value_required:n = true
- , large .code:n = \__fontscale_keys_name_fn:n {#1}
+ , large .code:n = \__fontscale_keys_name_code:n {#1}
, large .value_required:n = true
- , Large .code:n = \__fontscale_keys_name_fn:n {#1}
+ , Large .code:n = \__fontscale_keys_name_code:n {#1}
, Large .value_required:n = true
- , LARGE .code:n = \__fontscale_keys_name_fn:n {#1}
+ , LARGE .code:n = \__fontscale_keys_name_code:n {#1}
, LARGE .value_required:n = true
- , huge .code:n = \__fontscale_keys_name_fn:n {#1}
+ , huge .code:n = \__fontscale_keys_name_code:n {#1}
, huge .value_required:n = true
- , Huge .code:n = \__fontscale_keys_name_fn:n {#1}
+ , Huge .code:n = \__fontscale_keys_name_code:n {#1}
, Huge .value_required:n = true
}
-\cs_new_protected:Npn \__fontscale_keys_name_fn:n #1
+\cs_new_protected:Npn \__fontscale_keys_name_code:n #1
{
\str_if_in:nnTF {#1} { / }
- { \__fontscale_keys_name_fn_split:ww #1 \q_stop }
+ { \__fontscale_keys_name_code_split:ww #1 \q_stop }
{ \tl_set:cn { l__fontscale_ \l_keys_key_str _size_tl } {#1} }
}
-\cs_new_protected:Npn \__fontscale_keys_name_fn_split:ww #1 / #2 \q_stop
+\cs_new_protected:Npn \__fontscale_keys_name_code_split:ww #1 / #2 \q_stop
{
\tl_set:cn { l__fontscale_ \l_keys_key_str _size _tl } {#1}
\tl_set:cn { l__fontscale_ \l_keys_key_str _baselineskip_tl } {#2}
@@ -601,6 +600,7 @@
{
\__fontscale_keys_process_normalsize:
\__fontscale_keys_process_other:
+ \__fontscale_keys_process_other_props:
\__fontscale_keys_process_check_order:
}
% Sets the size and baselineskip of \normalsize, stores them in a property
@@ -791,14 +791,67 @@
{ l_fontscale_##1_baselineskip_skip }
{ \use:c { l__fontscale_##1_baselineskip_tl } }
}
- \prop_put:cne { l_fontscale_##1_prop } { scale }
- { \fp_use:c { l_fontscale_##1_scale_fp } }
- \prop_put:cne { l_fontscale_##1_prop } { size }
- { \dim_use:c { l_fontscale_##1_size_dim } }
- \prop_put:cne { l_fontscale_##1_prop } { baselineskip }
- { \skip_use:c { l_fontscale_##1_baselineskip_skip } }
}
}
+\cs_new_protected:Npn \__fontscale_keys_process_other_props:
+ {
+ \prop_put:Nne \l_fontscale_tiny_prop { scale }
+ { \fp_use:N \l_fontscale_tiny_scale_fp }
+ \prop_put:Nne \l_fontscale_scriptsize_prop { scale }
+ { \fp_use:N \l_fontscale_scriptsize_scale_fp }
+ \prop_put:Nne \l_fontscale_footnotesize_prop { scale }
+ { \fp_use:N \l_fontscale_footnotesize_scale_fp }
+ \prop_put:Nne \l_fontscale_small_prop { scale }
+ { \fp_use:N \l_fontscale_small_scale_fp }
+ \prop_put:Nne \l_fontscale_large_prop { scale }
+ { \fp_use:N \l_fontscale_large_scale_fp }
+ \prop_put:Nne \l_fontscale_Large_prop { scale }
+ { \fp_use:N \l_fontscale_Large_scale_fp }
+ \prop_put:Nne \l_fontscale_LARGE_prop { scale }
+ { \fp_use:N \l_fontscale_LARGE_scale_fp }
+ \prop_put:Nne \l_fontscale_huge_prop { scale }
+ { \fp_use:N \l_fontscale_huge_scale_fp }
+ \prop_put:Nne \l_fontscale_Huge_prop { scale }
+ { \fp_use:N \l_fontscale_Huge_scale_fp }
+
+ \prop_put:Nno \l_fontscale_tiny_prop { size }
+ { \dim_use:N \l_fontscale_tiny_size_dim }
+ \prop_put:Nno \l_fontscale_scriptsize_prop { size }
+ { \dim_use:N \l_fontscale_scriptsize_size_dim }
+ \prop_put:Nno \l_fontscale_footnotesize_prop { size }
+ { \dim_use:N \l_fontscale_footnotesize_size_dim }
+ \prop_put:Nno \l_fontscale_small_prop { size }
+ { \dim_use:N \l_fontscale_small_size_dim }
+ \prop_put:Nno \l_fontscale_large_prop { size }
+ { \dim_use:N \l_fontscale_large_size_dim }
+ \prop_put:Nno \l_fontscale_Large_prop { size }
+ { \dim_use:N \l_fontscale_Large_size_dim }
+ \prop_put:Nno \l_fontscale_LARGE_prop { size }
+ { \dim_use:N \l_fontscale_LARGE_size_dim }
+ \prop_put:Nno \l_fontscale_huge_prop { size }
+ { \dim_use:N \l_fontscale_huge_size_dim }
+ \prop_put:Nno \l_fontscale_Huge_prop { size }
+ { \dim_use:N \l_fontscale_Huge_size_dim }
+
+ \prop_put:Nno \l_fontscale_tiny_prop { baselineskip }
+ { \skip_use:N \l_fontscale_tiny_baselineskip_skip }
+ \prop_put:Nno \l_fontscale_scriptsize_prop { baselineskip }
+ { \skip_use:N \l_fontscale_scriptsize_baselineskip_skip }
+ \prop_put:Nno \l_fontscale_footnotesize_prop { baselineskip }
+ { \skip_use:N \l_fontscale_footnotesize_baselineskip_skip }
+ \prop_put:Nno \l_fontscale_small_prop { baselineskip }
+ { \skip_use:N \l_fontscale_small_baselineskip_skip }
+ \prop_put:Nno \l_fontscale_large_prop { baselineskip }
+ { \skip_use:N \l_fontscale_large_baselineskip_skip }
+ \prop_put:Nno \l_fontscale_Large_prop { baselineskip }
+ { \skip_use:N \l_fontscale_Large_baselineskip_skip }
+ \prop_put:Nno \l_fontscale_LARGE_prop { baselineskip }
+ { \skip_use:N \l_fontscale_LARGE_baselineskip_skip }
+ \prop_put:Nno \l_fontscale_huge_prop { baselineskip }
+ { \skip_use:N \l_fontscale_huge_baselineskip_skip }
+ \prop_put:Nno \l_fontscale_Huge_prop { baselineskip }
+ { \skip_use:N \l_fontscale_Huge_baselineskip_skip }
+ }
% Issues a warning if the font sizes or font baselineskips are not in the
% correct order.
\cs_new_protected:Npn \__fontscale_keys_process_check_order:
@@ -961,23 +1014,15 @@
\cs_new:Npn \__fontscale_current_font_baselineskip: { \f@baselineskip }
\NewDocumentCommand \SetFontStep { s m }
- { \__fontscale_set_font_step:Nn #1 {#2} }
-\cs_new_protected:Npn \__fontscale_set_font_step:Nn #1#2
{
- \bool_if:NTF #1
- {
- \tl_set:Ne \l__fontscale_step_tl { \__fontscale_current_font_step: }
- \tl_if_empty:NTF \l__fontscale_step_tl
- { \msg_error:nn { fontscale } { font-step-out-of-bounds } }
- {
- \fp_set:Nn \l__fontscale_step_fp { (#2) + \l__fontscale_step_tl }
- \__fontscale_set_font_step_aux:N \l__fontscale_step_fp
- }
- }
- {
- \fp_set:Nn \l__fontscale_step_fp {#2}
- \__fontscale_set_font_step_aux:N \l__fontscale_step_fp
- }
+ \IfBooleanTF #1
+ { \__fontscale_add_font_step:n {#2} }
+ { \__fontscale_set_font_step:n {#2} }
+ }
+\cs_new_protected:Npn \__fontscale_set_font_step:n #1
+ {
+ \fp_set:Nn \l__fontscale_step_fp {#1}
+ \__fontscale_set_font_step_aux:N \l__fontscale_step_fp
}
\cs_new_protected:Npn \__fontscale_set_font_step_aux:N #1
{
@@ -1001,7 +1046,7 @@
{
\fontsize
{
- \fp_eval:n
+ \fp_to_dim:n
{
\l__fontscale_normalsize_size_fp
* \l__fontscale_modular_ratio_fp ^ #1
@@ -1012,7 +1057,7 @@
{
\fontsize
{
- \fp_eval:n
+ \fp_to_dim:n
{
\l__fontscale_normalsize_size_fp
* \l__fontscale_musical_ratio_fp
@@ -1023,36 +1068,66 @@
}
{
{
- \fp_eval:n { \f@size * \l__fontscale_baselineskip_size_ratio_fp }
+ \fp_to_dim:n
+ { \f@size * \l__fontscale_baselineskip_size_ratio_fp }
}
\selectfont
}
{ \msg_error:nn { fontscale } { font-step-out-of-bounds } }
}
}
+\cs_new_protected:Npn \__fontscale_add_font_step:n #1
+ {
+ \tl_set:Ne \l__fontscale_step_tl { \__fontscale_current_font_step: }
+ \tl_if_empty:NTF \l__fontscale_step_tl
+ { \msg_error:nn { fontscale } { font-step-out-of-bounds } }
+ {
+ \fp_set:Nn \l__fontscale_step_fp { (#1) + \l__fontscale_step_tl }
+ \__fontscale_add_font_step_aux:N \l__fontscale_step_fp
+ }
+ }
+\cs_new_eq:NN \__fontscale_add_font_step_aux:N \__fontscale_set_font_step_aux:N
\NewDocumentCommand \SetFontScale { s m }
- { \__fontscale_set_font_scale:Nn #1 {#2} }
-\cs_new_protected:Npn \__fontscale_set_font_scale:Nn #1#2
{
- \dim_set:Nn \l__fontscale_size_dim
- { \fp_to_dim:n { \l__fontscale_normalsize_size_fp * (#2) } }
- \bool_if:NT #1
- { \dim_add:Nn \l__fontscale_size_dim { \f@size pt } }
- \fontsize \l__fontscale_size_dim
- { \fp_eval:n { \f@size * \l__fontscale_baselineskip_size_ratio_fp } }
+ \IfBooleanTF #1
+ { \__fontscale_add_font_scale:n {#2} }
+ { \__fontscale_set_font_scale:n {#2} }
+ }
+\cs_new_protected:Npn \__fontscale_set_font_scale:n #1
+ {
+ \fontsize
+ { \fp_to_dim:n { \l__fontscale_normalsize_size_fp * (#1) } }
+ { \fp_to_dim:n { \f@size * \l__fontscale_baselineskip_size_ratio_fp } }
+ \selectfont
+ }
+\cs_new_protected:Npn \__fontscale_add_font_scale:n #1
+ {
+ \fontsize
+ { \fp_to_dim:n { \l__fontscale_normalsize_size_fp * (#1) + \f@size } }
+ { \fp_to_dim:n { \f@size * \l__fontscale_baselineskip_size_ratio_fp } }
\selectfont
}
\NewDocumentCommand \SetFontSize { s m }
- { \__fontscale_set_font_size:Nn #1 {#2} }
-\cs_new_protected:Npn \__fontscale_set_font_size:Nn #1#2
{
- \__fontscale_dim_set_with_default_unit:Nn \l__fontscale_size_dim {#2}
- \bool_if:NT #1
- { \dim_add:Nn \l__fontscale_size_dim { \f@size pt } }
+ \IfBooleanTF #1
+ { \__fontscale_add_font_size:n {#2} }
+ { \__fontscale_set_font_size:n {#2} }
+ }
+\cs_new_protected:Npn \__fontscale_set_font_size:n #1
+ {
+ \__fontscale_dim_set_with_default_unit:Nn \l__fontscale_size_dim {#1}
+ \fontsize \l__fontscale_size_dim
+ { \fp_to_dim:n { \f@size * \l__fontscale_baselineskip_size_ratio_fp } }
+ \selectfont
+ }
+\cs_new_protected:Npn \__fontscale_add_font_size:n #1
+ {
+ \__fontscale_dim_set_with_default_unit:Nn \l__fontscale_size_dim {#1}
+ \dim_add:Nn \l__fontscale_size_dim { \f@size pt }
\fontsize \l__fontscale_size_dim
- { \fp_eval:n { \f@size * \l__fontscale_baselineskip_size_ratio_fp } }
+ { \fp_to_dim:n { \f@size * \l__fontscale_baselineskip_size_ratio_fp } }
\selectfont
}
@@ -1060,15 +1135,21 @@
\cs_new_protected:Npn \__fontscale_scalefont:n #1
{
\fontsize
- { \fp_eval:n { \f@size * (#1) } }
- { \fp_eval:n { \dim_to_fp:n { \f@baselineskip } * (#1) } }
+ { \fp_to_dim:n { \f@size * (#1) } }
+ { \fp_to_dim:n { \dim_to_fp:n { \f@baselineskip } * (#1) } }
\selectfont
}
\NewDocumentCommand \SetFontSizeBaselineskip { m m }
{ \__fontscale_set_font_size_baselineskip:nn {#1} {#2} }
\cs_new_protected:Npn \__fontscale_set_font_size_baselineskip:nn #1#2
- { \exp_args:Nee \fontsize {#1} {#2} \selectfont }
+ {
+ \__fontscale_dim_set_with_default_unit:Nn \l__fontscale_size_dim {#1}
+ \__fontscale_skip_set_with_default_unit:Nn \l__fontscale_baselineskip_skip
+ {#2}
+ \fontsize \l__fontscale_size_dim \l__fontscale_baselineskip_skip
+ \selectfont
+ }
\NewDocumentCommand \PrintFontParameters { }
{ \__fontscale_print_font_parameters: }
@@ -1104,19 +1185,36 @@
A~ user~ interface~ for~ setting~ document~ font~ sizes
}
}
- { \__fontscale_print_sample_text:Nn #1 {#2} }
-\cs_new_protected:Npn \__fontscale_print_sample_text:Nn #1#2
{
- \seq_set_eq:NN \l__fontscale_tmp_seq \c__fontscale_names_seq
- \bool_if:NT #1 { \seq_reverse:N \l__fontscale_tmp_seq }
- \seq_map_inline:Nn \l__fontscale_tmp_seq
- {
- \group_begin:
- \use:c {##1}
- #2
- \par
- \group_end:
- }
+ \IfBooleanTF #1
+ { \__fontscale_print_sample_text_descending_order:n {#2} }
+ { \__fontscale_print_sample_text_ascending_order:n {#2} }
+ }
+\cs_new_protected:Npn \__fontscale_print_sample_text_ascending_order:n #1
+ {
+ { \tiny #1 \par }
+ { \scriptsize #1 \par }
+ { \footnotesize #1 \par }
+ { \small #1 \par }
+ { \normalsize #1 \par }
+ { \large #1 \par }
+ { \Large #1 \par }
+ { \LARGE #1 \par }
+ { \huge #1 \par }
+ { \Huge #1 \par }
+ }
+\cs_new_protected:Npn \__fontscale_print_sample_text_descending_order:n #1
+ {
+ { \Huge #1 \par }
+ { \huge #1 \par }
+ { \LARGE #1 \par }
+ { \Large #1 \par }
+ { \large #1 \par }
+ { \normalsize #1 \par }
+ { \small #1 \par }
+ { \footnotesize #1 \par }
+ { \scriptsize #1 \par }
+ { \tiny #1 \par }
}
\NewDocumentCommand \PrintFontSizeCommand { } { \__fontscale_print_name: }
diff --git a/macros/latex/contrib/profmaquette/doc/ProfMaquette-doc.pdf b/macros/latex/contrib/profmaquette/doc/ProfMaquette-doc.pdf
index a4382edbdf..d78fcc96d2 100644
--- a/macros/latex/contrib/profmaquette/doc/ProfMaquette-doc.pdf
+++ b/macros/latex/contrib/profmaquette/doc/ProfMaquette-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty b/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty
index a9131f1115..da9aafbfe0 100644
--- a/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty
+++ b/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty
@@ -2,9 +2,9 @@
% licence : Released under the LaTeX Project Public License v1.3c
% or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}%
-\def\filedate{2024/03/24}%
+\def\filedate{2024/03/26}%
\let\PfMfiledate\filedate%
-\def\fileversion{0.89}%
+\def\fileversion{0.90}%
\let\PfMfileversion\fileversion%
\ProvidesPackage{ProfMaquette}[\filedate\space v\fileversion\space Maquettage de documents]%
@@ -196,13 +196,14 @@
}
}
-\NewDocumentEnvironment{Consignes}{+b}{%
+\NewDocumentEnvironment{Consignes}{}{%
\ifboolKV[Boulot]{CAN}{}{%
\begin{tcolorbox}[consignes]%
- \small\sffamily #1
- \end{tcolorbox}%
+ \small\sffamily
}%
-}{}%
+}{%
+\end{tcolorbox}%
+}%
%% Option french pour les mathématiques
% By CT
@@ -2248,7 +2249,7 @@
\fi%
}%
-\NewDocumentEnvironment{exerciceFiche}{so+b}{%
+\NewDocumentEnvironment{exerciceFiche}{so}{%
\setcounter{PfMAlea}{0}%
\setcounter{PfMNbLogo}{1}%
\useKVdefault[ClesExercices]%
@@ -2277,13 +2278,15 @@
label=page-\thePfMMaquette-\thePfMExo
]
\ifboolKV[Boulot]{Dys}{\raggedright}{}%
- #3
- \end{tcolorbox}%
- \ifboolKV[ClesExercices]{Profile}{\PfMshowitems}{}%
- \PfMApresLesExercices%
- }%
+ }%
+ }%
+ }{%
+ \ifboolKV[ClesExercices]{NonUtilise}{}{%
+ \end{tcolorbox}%
+ \ifboolKV[ClesExercices]{Profile}{\PfMshowitems}{}%
+ \PfMApresLesExercices%
}
-}{}
+}%
\NewDocumentEnvironment{exerciceDS}{so}{%
\setcounter{PfMAlea}{0}%
@@ -2321,7 +2324,7 @@
\PfMApresLesExercices%
}%
-\NewDocumentEnvironment{ExerciceRecapBrevet}{so+b}{%
+\NewDocumentEnvironment{ExerciceRecapBrevet}{so}{%
\setcounter{PfMAlea}{0}%
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#2}%
@@ -2345,10 +2348,10 @@
label=page-\thePfMMaquette-\thePfMExo
]
\ifboolKV[Boulot]{Dys}{\raggedright}{}%
- #3
+ }{%
\end{tcolorbox}
\PfMApresLesExercices%
-}{}%
+}%
\makeatother
%%% Recap Brevet
@@ -4138,7 +4141,7 @@
\dispo{1}{#2}{#3}
}%
\fi%
-}%
+}{}%
\NewDocumentEnvironment{CALign}{O{&=\dots&}O{&=\dots}mb}{%
% #1 séparateur généraliste
diff --git a/macros/latex/contrib/reptheorem/README.md b/macros/latex/contrib/reptheorem/README.md
new file mode 100644
index 0000000000..f084c0692a
--- /dev/null
+++ b/macros/latex/contrib/reptheorem/README.md
@@ -0,0 +1,40 @@
+# `reptheorem`
+
+When writing a large manuscript, it is sometimes
+beneficial to repeat a theorem (or lemma or…) at
+an earlier or later point for didactical purposes.
+However, `thmtools`'s built-in `restatable`
+only allows replicating theorems *after* they
+have been stated, and only in the same document.
+`reptheorem` solves the issue by making use
+of the `.aux` file, and also introduces its own file
+extension, `.thm`, to replicate theorems in other files.
+
+# Installation
+Run the following in the command line:
+1. If reptheorem.ins is present:
+`latex reptheorem.ins`
+2. If reptheorem.ins is absent:
+`latex reptheorem.dtx`
+
+Move `reptheorem.sty` to a folder that TeX can find.
+
+# Documentation
+Run the following in the command line:
+```
+pdflatex reptheorem.dtx
+makeindex -s gind.ist -o reptheorem.ind reptheorem.idx
+makeindex -s gglo.ist -o reptheorem.gls reptheorem.glo
+pdflatex reptheorem.dtx
+```
+This automatically unpacks the package, as well.
+
+---
+
+&copy; 2024- Jesse Straat
+
+License: [LPPL1.3c](https://www.latex-project.org/lppl.txt)
+
+[GitHub Repository](https://github.com/JesseStraat/reptheorem)
+
+
diff --git a/macros/latex/contrib/reptheorem/reptheorem.dtx b/macros/latex/contrib/reptheorem/reptheorem.dtx
new file mode 100644
index 0000000000..d96f740fec
--- /dev/null
+++ b/macros/latex/contrib/reptheorem/reptheorem.dtx
@@ -0,0 +1,486 @@
+% \iffalse meta-comment
+%
+% Copyright (c) 2024- Jesse Straat
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% https://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Jesse Sraat.
+%
+% This work consists of the main file reptheorem.dtx
+% and the derived files
+% reptheorem.sty, reptheorem.pdf, reptheorem.ins
+%
+% Unpacking:
+% (a) If reptheorem.ins is present:
+% latex reptheorem.ins
+% (b) If reptheorem.ins is absent:
+% latex reptheorem.dtx
+%
+% Documentation:
+% pdflatex reptheorem.dtx
+% makeindex -s gind.ist -o reptheorem.ind reptheorem.idx
+% makeindex -s gglo.ist -o reptheorem.gls reptheorem.glo
+% pdflatex reptheorem.dtx
+% dtx file based on https://www.texdev.net/2009/10/06/a-model-dtx-file/
+%
+%<*ignore>
+\iffalse
+%</ignore>
+%
+%<*readme>
+# `reptheorem`
+
+When writing a large manuscript, it is sometimes
+beneficial to repeat a theorem (or lemma or…) at
+an earlier or later point for didactical purposes.
+However, `thmtools`'s built-in `restatable`
+only allows replicating theorems *after* they
+have been stated, and only in the same document.
+`reptheorem` solves the issue by making use
+of the `.aux` file, and also introduces its own file
+extension, `.thm`, to replicate theorems in other files.
+
+# Installation
+Run the following in the command line:
+1. If reptheorem.ins is present:
+ `latex reptheorem.ins`
+2. If reptheorem.ins is absent:
+ `latex reptheorem.dtx`
+
+Move `reptheorem.sty` to a folder that TeX can find.
+
+# Documentation
+Run the following in the command line:
+```
+pdflatex reptheorem.dtx
+makeindex -s gind.ist -o reptheorem.ind reptheorem.idx
+makeindex -s gglo.ist -o reptheorem.gls reptheorem.glo
+pdflatex reptheorem.dtx
+```
+This automatically unpacks the package, as well.
+
+---
+
+&copy; 2024- Jesse Straat
+
+License: [LPPL1.3c](https://www.latex-project.org/lppl.txt)
+
+[GitHub Repository](https://github.com/JesseStraat/reptheorem)
+
+%</readme>
+%
+%<*ignore>
+\fi
+\def\plainTeXstring{plain}
+\ifx\fmtname\plainTeXstring\else
+ \expandafter\begingroup
+\fi
+%</ignore>
+%
+%<*install>
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: reptheorem 2024-03-27 v1.0}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+Copyright (c) 2024- Jesse Straat
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ https://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2008 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Jesse Sraat.
+
+This work consists of the main file reptheorem.dtx
+and the derived files
+ reptheorem.sty, reptheorem.pdf, reptheorem.ins
+
+\endpreamble
+
+\usedir{tex/latex/reptheorem}
+\generate{
+ \file{\jobname.sty}{\from{\jobname.dtx}{package}}
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* repthm.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `reptheorem.dtx'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+%</install>
+%<install>\endbatchfile
+%
+%<*ignore>
+\usedir{source/latex/reptheorem}
+\generate{
+ \file{\jobname.ins}{\from{\jobname.dtx}{install}}
+}
+
+\nopreamble\nopostamble
+\usedir{doc/latex/reptheorem}
+\generate{
+ \file{README.md}{\from{\jobname.dtx}{readme}}
+}
+
+\ifx\fmtname\plainTeXstring
+ \expandafter\endbatchfile
+\else
+ \expandafter\endgroup
+\fi
+%</ignore>
+
+%<*driver>
+\NeedsTeXFormat{LaTeX2e}
+\documentclass{ltxdoc}
+\usepackage{\jobname}
+\usepackage{amsthm}
+\newtheorem{theorem}{Theorem}
+\usepackage[final,
+hyperindex=false,
+colorlinks,
+]{hyperref}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+ \DocInput{\jobname.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \GetFileInfo{\jobname.sty}
+%
+% \DoNotIndex{\begin,\end,\begingroup,\endgroup,\csname,\endcsname,\ifcsname,\if,\else,\IfFileExists,\IfValueTF,\fi}
+% \DoNotIndex{\def,\edef,\expandafter,\gdef}
+% \DoNotIndex{\immediate,\input}
+% \DoNotIndex{\jobname,\label,\let,\long,\newcounter,\NewDocumentCommand}
+% \DoNotIndex{\NewDocumentEnvironment,\noexpand}
+% \DoNotIndex{\ProvidesPackage,\ref,\relax,\setcounter}
+% \DoNotIndex{\string,\value,\write}
+%
+% \title{^^A
+% \textsf{reptheorem}\thanks{^^A
+% Version \fileversion, last revised \filedate.^^A
+% }^^A
+% }^^A
+% \author{^^A
+% Jesse Straat^^A
+% }
+% \date{\filedate}
+%
+% \maketitle
+%
+% \begin{abstract}
+% \noindent When writing a large manuscript, it is sometimes
+% beneficial to repeat a theorem (or lemma or \dots) at
+% an earlier or later point for didactical purposes.
+% However, \textsf{thmtools}'s built-in |restatable|
+% only allows replicating theorems \textit{after} they
+% have been stated, and only in the same document.
+% \textsf{reptheorem} solves the issue by making use
+% of the |.aux| file, and also introduces its own file
+% extension, |.thm|, to replicate theorems in other files.
+% \end{abstract}
+%
+% \tableofcontents
+%
+%\changes{v1.0}{2024-03-27}{First public release}
+%
+%
+%
+%\StopEventually{^^A
+% \PrintChanges
+% \PrintIndex
+%}
+%
+%
+%
+%
+% \section{Repeating theorems}
+% Let's say we define a theorem as follows:
+% \begin{verbatim}
+% \begin{theorem}[Yoneda Lemma]
+% For \(F\colon \mathcal{C}\to \mathbf{Set}\) a functor,
+% \([\mathcal{C}^\mathrm{op},\mathbf{Set}](YA, F) \cong F(A)\)%
+% for all objects \(A\) in \(\mathcal{C}\).
+% \end{theorem}
+% \end{verbatim}
+% Its output is of course
+% \begin{makethm}{theorem}{thm:Yoneda}[Yoneda Lemma]
+% For \(F\colon \mathcal{C}\to \mathbf{Set}\) a functor,
+% \([\mathcal{C}^\mathrm{op},\mathbf{Set}](YA, F) \cong F(A)\)
+% for all objects \(A\) in \(\mathcal{C}\).
+% \end{makethm}
+% Now let's say we want to replicate the theorem
+% within the same document. That is what the new
+% environment \DescribeEnv{makethm} |makethm| is
+% used for.
+% \begin{verbatim}
+% \begin{makethm}{theorem}{thm:Yoneda}[Yoneda Lemma]{
+% For \(F\colon \mathcal{C}\to \mathbf{Set}\) a functor,
+% \([\mathcal{C}^\mathrm{op},\mathbf{Set}](YA, F) \cong F(A)\)%
+% for all objects \(A\) in \(\mathcal{C}\).
+% \end{makethm}
+% \end{verbatim}
+% Its output is the same (in fact, we've secretly used
+% |makethm| in the previous example), but the important
+% difference is that we have saved the theorem for later use.\par
+% The |makethm| environment takes two mandatory arguments
+% and one optional one. The first mandatory argument is the
+% type of theorem environment, like |theorem|, |lemma|,
+% |definition|, etc. The second is the theorem's label.
+% The label is mandatory because to replicate the theorem,
+% we need to have a ``name'' attached to it. |makethm|
+% automatically attaches a |\label|, as well, so |\ref{thm:Yoneda}|
+% becomes \ref{thm:Yoneda}. The optional argument is passed
+% right to the optional argument of the theorem environment,
+% giving the name of a theorem\par
+%
+% Now let's say we want to replicate the theorem later
+% or earlier in the text. This may be done if, for example,
+% the theorem is proven at a later point, or we want to
+% ``tease'' the reader with a powerful theorem that will be
+% proven later in the chapter. To do this, we use the
+% \DescribeMacro{repthm} command, as follows.
+% \begin{verbatim}
+% \repthm{theorem}{thm:Yoneda}
+% \end{verbatim}
+% This outputs the theorem again.
+% \repthm{theorem}{thm:Yoneda}
+% The label of this theorem is a |\ref|, and automatically
+% links to the original theorem statement.\par
+% If the original theorem statement exists in a different
+% file, or has not been created yet, we can add a placeholder
+% alt text to the |\repthm| as an optional argument, which
+% only displays if the theorem is undefined. For example,
+% |\repthm{theorem}{thm:foo}[bar]| returns
+% \repthm{theorem}{thm:foo}[bar]
+% If we do the same without providing an alt text, we get
+% \repthm{theorem}{thm:foo}
+% together with a warning.\par
+% Since we're using the |.aux| file, it is possible
+% to replicate a theorem before it is stated. For example,
+% \begin{verbatim}
+% \repthm{theorem}{thm:later}
+% \begin{makethm}{theorem}{thm:later}[Later]
+% Alligator!
+% \end{makethm}
+% \end{verbatim}
+% returns
+% \repthm{theorem}{thm:later}
+% \begin{makethm}{theorem}{thm:later}[Later]
+% Alligator
+% \end{makethm}
+% Note that it is necessary to run a |.tex| file twice
+% to replicate theorems ahead of time, similarly to
+% how one has to run a file twice to make sure the
+% references are correct.\par
+%
+% \section{Replicating theorems between files}
+% Let's say we have the following files for our project:
+% \begin{verbatim}
+% foo.tex
+% bar.tex
+% \end{verbatim}
+% Let's say that we have defined a theorem |thm:baz|
+% in |bar.tex|, and we want to replicate it in |foo.tex|.
+% To achieve this, we first use the \DescribeMacro{\theoremfile}
+% |\theoremfile| command in the preamble of |bar.tex|. This
+% compiles all theorems defined in |bar.tex| and outputs them
+% into a file |bar.thm|. To then import these into |foo.tex|, we
+% use \DescribeMacro{\loadtheorems} |\loadtheorems{bar.thm}| in
+% the preamble, which loads all theorems saved in |bar.thm|.
+% One can then use |\repthm| as usual.\par
+% Since the |.aux| file is loaded at |\begin{document}|, putting
+% |\loadtheorems| in the preamble of a file will guarantee that
+% the loaded theorem file will be overwritten by the theorems in
+% the |.aux| file, i.e., theorems defined in the same document.
+% In our example, if we also defined a |thm:baz| in |foo.tex|,
+% loading |bar.thm| into |foo.tex| will not overwrite the local
+% |thm:baz|.
+%
+% \subsection{Replicating theorems to subfiles}
+% Replicating theorems to different files is particularly
+% useful when working in big documents with multiple subfiles.
+% For example, let's say we have the files
+% \begin{verbatim}
+% main.tex
+% foo.tex
+% bar.tex
+% \end{verbatim}
+% Here, |main.tex| is generated by including |foo.tex|
+% and |bar.tex| as chapters, creating a single large document.
+% It is now possible to replicate theorems within the
+% subfiles by running |\theoremfile| in |main.tex|,
+% and then using |\loadtheorems{main.thm}| in
+% |foo.tex| and |bar.tex|. This will allow us to
+% use all theorems in the final |main.tex| in each of
+% the subfiles.
+%
+%
+%
+% \section{Source code}
+% \begin{macrocode}
+%<*package>
+\ProvidesPackage{reptheorem}[2024-03-27 v1.0 Reptheorem package]
+% \end{macrocode}
+%
+% \begin{macro}{\theoremfile}
+% Using |\theoremfile| will output all saved theorems into an output file.
+% By default, if your \LaTeX file is |foo.tex|, the output file is |foo.thm|.
+% \begin{macrocode}
+\def\reptheorem@theoremfile{\relax}
+\NewDocumentCommand{\theoremfile}{ O{\jobname.thm} }{
+ % O: the path of the file to which we should save theorems
+ %
+ \def\reptheorem@theoremfile{#1}
+ \newwrite\@thmlist
+ \immediate\openout\@thmlist=#1
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\loadtheorems}
+% If you have exported saved theorems to a file, you can load them
+% into another file using the macro |\loadtheorems|.
+% \begin{macrocode}
+\NewDocumentCommand{\loadtheorems}{ m }{
+ \IfFileExists{#1}{
+ \input{#1}
+ }{
+ \PackageWarning{reptheorem}{%
+ File #1 not found. I will not import any theorems.%
+ }
+ }
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{environment}{makethm}
+% On to defining the actual theorems to be saved.
+% \begin{macrocode}
+\NewDocumentEnvironment{makethm}{ m m o +b }
+ % m: the type of theorem environment
+ % m: the name of the theorem
+ % o: optional parameter for environment
+ % b: the content of the theorem
+ %
+ {%
+ \IfValueTF{#3}{% Check if theorem has optional arguments
+ \begin{#1}[#3]\label{#2}
+ }{
+ \begin{#1}\label{#2}
+ }
+ #4
+ \end{#1}
+ \expandafter\long\expandafter\gdef\csname thm@#2\endcsname{#4}%
+ \expandafter\gdef\csname thmdesc@#2\endcsname{#3}%
+ % Saving parameters to aux file
+ \long\gdef\@thmoutput{%
+ \string\expandafter\string\long\string\expandafter%
+ \string\gdef\noexpand\csname thm@#2\string\endcsname{#4}%
+ ^^J%
+ \string\expandafter\string\expandafter%
+ \string\gdef\noexpand\csname thmdesc@#2\string\endcsname{#3}%
+ }
+ \write\@auxout{\@thmoutput}
+ \if\reptheorem@theoremfile\relax
+ % No file has been set
+ \else
+ % We have a theorem file
+ % Saving parameters to theorem file
+ \write\@thmlist{\@thmoutput}
+ \fi
+ }{}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macro}{\repthm}
+% To repeat a theorem, use the |\repthm| command.
+% The type of theorem is not saved, so it is necessary to
+% respecify it each time a theorem is repeated.
+% \begin{macrocode}
+\newcounter{old@counter}
+\NewDocumentCommand{\repthm}{ m m +o }{
+ % m: the type of theorem environment
+ % m: the name of the theorem
+ % o: alt text
+ \begingroup
+ \setcounter{old@counter}{\value{#1}}
+ % Save theorem counter so we don't increase it
+ \def\thetheorem{\ref{#2}}
+ \let\@@theoremnotdefined\relax
+ %
+ \ifcsname thm@#2\endcsname% Check if theorem is even defined
+ % Theorem is defined
+ \expandafter\edef\expandafter\@@thmdesc{\csname thmdesc@#2\endcsname}%
+ \expandafter\let\expandafter\@@thm\csname thm@#2\endcsname
+ % Output theorem
+ \IfValueTF{\@@thmdesc}{% Check if theorem has name
+ \begin{#1}[\@@thmdesc]
+ \@@thm
+ \end{#1}
+ }{% No optionals
+ \begin{#1}
+ \@@thm
+ \end{#1}
+ }
+ \else
+ % Theorem undefined
+ \IfValueTF{#3}{
+ \begin{#1}
+ #3
+ \end{#1}
+ }{% No theorem or alt text provided: throw warning
+ \begin{#1}
+ \end{#1}
+ \PackageWarning{reptheorem}{%
+ Theorem #2 not defined; rebuild your project.
+ If the issue persists, create the theorem using
+ \begin{makethm} or consider adding alt text to \repthm
+ using the optional parameter%
+ }
+ }
+ \fi
+ \setcounter{#1}{\value{old@counter}}
+ % Reset theorem counter back to original
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+
+
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%\Finale
diff --git a/macros/latex/contrib/reptheorem/reptheorem.ins b/macros/latex/contrib/reptheorem/reptheorem.ins
new file mode 100644
index 0000000000..c85a0d2ff3
--- /dev/null
+++ b/macros/latex/contrib/reptheorem/reptheorem.ins
@@ -0,0 +1,82 @@
+%%
+%% This is file `reptheorem.ins',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% reptheorem.dtx (with options: `install')
+%%
+%% Copyright (c) 2024- Jesse Straat
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% https://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Jesse Sraat.
+%%
+%% This work consists of the main file reptheorem.dtx
+%% and the derived files
+%% reptheorem.sty, reptheorem.pdf, reptheorem.ins
+%%
+\input docstrip.tex
+\Msg{************************************************************************}
+\Msg{* Installation}
+\Msg{* Package: reptheorem 2024-03-27 v1.0}
+\Msg{************************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+
+Copyright (c) 2024- Jesse Straat
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ https://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2008 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Jesse Sraat.
+
+This work consists of the main file reptheorem.dtx
+and the derived files
+reptheorem.sty, reptheorem.pdf, reptheorem.ins
+
+\endpreamble
+
+\usedir{tex/latex/reptheorem}
+\generate{
+\file{\jobname.sty}{\from{\jobname.dtx}{package}}
+}
+
+\obeyspaces
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* repthm.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `reptheorem.dtx'}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+
+\endinput
+%%
+%% End of file `reptheorem.ins'.
diff --git a/macros/latex/contrib/reptheorem/reptheorem.pdf b/macros/latex/contrib/reptheorem/reptheorem.pdf
new file mode 100644
index 0000000000..31caef6e5d
--- /dev/null
+++ b/macros/latex/contrib/reptheorem/reptheorem.pdf
Binary files differ