summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-05-17 03:01:31 +0000
committerNorbert Preining <norbert@preining.info>2024-05-17 03:01:31 +0000
commit0cee130f990e7208a0fcdef78916e2cefe1a3639 (patch)
tree4cde621066555e25a58fa6e7e5cd1c5feb55235f
parent53d54125d6d3092f24b069d8fcd96125f8bb850b (diff)
CTAN sync 202405170301
-rw-r--r--FILES.byname176
-rw-r--r--FILES.byname.gzbin2657418 -> 2657453 bytes
-rw-r--r--FILES.last07days209
-rw-r--r--biblio/ctan-bibdata/ctan.bib22
-rw-r--r--macros/latex/contrib/csvsimple/CHANGES.md12
-rw-r--r--macros/latex/contrib/csvsimple/README.md2
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-doc.sty6
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-example.pdfbin72044 -> 72044 bytes
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-example.tex2
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-l3.pdfbin937516 -> 951198 bytes
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-l3.sty12
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-l3.tex53
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-legacy.pdfbin690987 -> 690985 bytes
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-legacy.sty4
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple-legacy.tex2
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple.pdfbin295559 -> 295659 bytes
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple.sty4
-rw-r--r--macros/latex/contrib/csvsimple/csvsimple.tex2
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx35
-rw-r--r--macros/latex/contrib/easybook/easybook.pdfbin632257 -> 632806 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.tex12
-rw-r--r--macros/latex/contrib/fvextra/CHANGELOG.md231
-rw-r--r--macros/latex/contrib/fvextra/fvextra.dtx210
-rw-r--r--macros/latex/contrib/fvextra/fvextra.ins4
-rw-r--r--macros/latex/contrib/fvextra/fvextra.pdfbin905185 -> 895911 bytes
-rw-r--r--macros/latex/contrib/latex2pydata/CHANGELOG.md39
-rw-r--r--macros/latex/contrib/latex2pydata/README13
-rw-r--r--macros/latex/contrib/latex2pydata/latex2pydata.dtx282
-rw-r--r--macros/latex/contrib/latex2pydata/latex2pydata.ins4
-rw-r--r--macros/latex/contrib/latex2pydata/latex2pydata.pdfbin292477 -> 296929 bytes
-rw-r--r--macros/latex/contrib/msu-thesis/README.md18
-rw-r--r--macros/latex/contrib/msu-thesis/docs/msu-thesis.tex35
-rw-r--r--macros/latex/contrib/msu-thesis/msu-thesis.cls18
-rw-r--r--macros/latex/contrib/msu-thesis/msu-thesis.pdfbin114013 -> 117097 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb40
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.md52
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha5122
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc16
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.xzbin2573844 -> 2572200 bytes
-rw-r--r--timestamp2
41 files changed, 893 insertions, 578 deletions
diff --git a/FILES.byname b/FILES.byname
index 3a12f79773..d671d1aab3 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -2078,12 +2078,12 @@
2024/04/21 | 1837 | biblio/citation-style-language/README.md
2024/04/21 | 12878 | biblio/citation-style-language/vancouver.csl
2024/04/21 | 4553350 | biblio/citation-style-language.zip
-2024/05/15 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2024/05/16 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
2022/10/08 | 127 | biblio/ctan-bibdata/biblatex-ctan/ctan.cbx
-2024/05/15 | 2867682 | biblio/ctan-bibdata/ctan.bib
-2024/05/15 | 3708800 | biblio/ctan-bibdata/ctan.pdf
+2024/05/16 | 2867692 | biblio/ctan-bibdata/ctan.bib
+2024/05/16 | 3708800 | biblio/ctan-bibdata/ctan.pdf
2023/01/16 | 1489 | biblio/ctan-bibdata/README
-2024/05/15 | 4121383 | biblio/ctan-bibdata.zip
+2024/05/16 | 4121382 | biblio/ctan-bibdata.zip
2023/02/23 | 3126 | biblio/pbibtex/pbibtex-base/cpp.awk
2023/02/23 | 1009 | biblio/pbibtex/pbibtex-base/generate.sh
2023/02/23 | 22362 | biblio/pbibtex/pbibtex-base/jabbrv.bst
@@ -5445,7 +5445,7 @@
1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp
1990/10/02 | 812 | dviware/vutex/vaxvms.ins
1990/10/02 | 127576 | dviware/vutex/vutex.web
-2024/05/15 | 168318 | FILES.last07days
+2024/05/16 | 155346 | FILES.last07days
2021/07/24 | 1139410 | fonts/aboensis/Aboensis.glyphs
2021/07/24 | 18907382 | fonts/aboensis/aboensis.pdf
2021/07/24 | 137860 | fonts/aboensis/Aboensis-Regular.otf
@@ -207103,7 +207103,7 @@
2024/02/08 | 941417 | install/macros/latex/contrib/contract.tds.zip
2009/06/06 | 535939 | install/macros/latex/contrib/cpssp.tds.zip
2024/04/04 | 348887 | install/macros/latex/contrib/csquotes.tds.zip
-2024/01/19 | 2140492 | install/macros/latex/contrib/csvsimple.tds.zip
+2024/05/16 | 2154272 | install/macros/latex/contrib/csvsimple.tds.zip
2014/05/27 | 124630 | install/macros/latex/contrib/cv4tw.tds.zip
2013/03/29 | 241651 | install/macros/latex/contrib/dashrule.tds.zip
2019/09/27 | 2964951 | install/macros/latex/contrib/datatool.tds.zip
@@ -231188,30 +231188,30 @@
2019/08/10 | 218699 | macros/latex/contrib/csvmerge/csvmerge.pdf
2019/08/08 | 798 | macros/latex/contrib/csvmerge/README
2019/08/10 | 231743 | macros/latex/contrib/csvmerge.zip
-2024/01/19 | 227 | macros/latex/contrib/csvsimple/amountsort.xml
-2024/01/19 | 166 | macros/latex/contrib/csvsimple/catsort.xml
-2024/01/19 | 12016 | macros/latex/contrib/csvsimple/CHANGES.md
-2024/01/19 | 4228 | macros/latex/contrib/csvsimple/csvsimple-doc.sty
-2024/01/19 | 238 | macros/latex/contrib/csvsimple/csvsimple-example.csv
-2024/01/19 | 72044 | macros/latex/contrib/csvsimple/csvsimple-example.pdf
-2024/01/19 | 4020 | macros/latex/contrib/csvsimple/csvsimple-example.tex
-2024/01/19 | 937516 | macros/latex/contrib/csvsimple/csvsimple-l3.pdf
-2024/01/19 | 47599 | macros/latex/contrib/csvsimple/csvsimple-l3.sty
-2024/01/19 | 111634 | macros/latex/contrib/csvsimple/csvsimple-l3.tex
-2024/01/19 | 690987 | macros/latex/contrib/csvsimple/csvsimple-legacy.pdf
-2024/01/19 | 25524 | macros/latex/contrib/csvsimple/csvsimple-legacy.sty
-2024/01/19 | 71383 | macros/latex/contrib/csvsimple/csvsimple-legacy.tex
-2024/01/19 | 295559 | macros/latex/contrib/csvsimple/csvsimple.pdf
-2024/01/19 | 1711 | macros/latex/contrib/csvsimple/csvsimple.sty
-2024/01/19 | 7957 | macros/latex/contrib/csvsimple/csvsimple.tex
-2024/01/19 | 127249 | macros/latex/contrib/csvsimple/csvsimple-title.png
-2024/01/19 | 135 | macros/latex/contrib/csvsimple/encoding.xml
-2024/01/19 | 288 | macros/latex/contrib/csvsimple/gradesort.xml
-2024/01/19 | 176 | macros/latex/contrib/csvsimple/matriculationsort.xml
-2024/01/19 | 229 | macros/latex/contrib/csvsimple/namesort.xml
-2024/01/19 | 2908 | macros/latex/contrib/csvsimple/README.md
-2024/01/19 | 259 | macros/latex/contrib/csvsimple/transform.xml
-2024/01/19 | 2139929 | macros/latex/contrib/csvsimple.zip
+2024/05/16 | 227 | macros/latex/contrib/csvsimple/amountsort.xml
+2024/05/16 | 166 | macros/latex/contrib/csvsimple/catsort.xml
+2024/05/16 | 12332 | macros/latex/contrib/csvsimple/CHANGES.md
+2024/05/16 | 4228 | macros/latex/contrib/csvsimple/csvsimple-doc.sty
+2024/05/16 | 238 | macros/latex/contrib/csvsimple/csvsimple-example.csv
+2024/05/16 | 72044 | macros/latex/contrib/csvsimple/csvsimple-example.pdf
+2024/05/16 | 4020 | macros/latex/contrib/csvsimple/csvsimple-example.tex
+2024/05/16 | 951198 | macros/latex/contrib/csvsimple/csvsimple-l3.pdf
+2024/05/16 | 47580 | macros/latex/contrib/csvsimple/csvsimple-l3.sty
+2024/05/16 | 112985 | macros/latex/contrib/csvsimple/csvsimple-l3.tex
+2024/05/16 | 690985 | macros/latex/contrib/csvsimple/csvsimple-legacy.pdf
+2024/05/16 | 25524 | macros/latex/contrib/csvsimple/csvsimple-legacy.sty
+2024/05/16 | 71383 | macros/latex/contrib/csvsimple/csvsimple-legacy.tex
+2024/05/16 | 295659 | macros/latex/contrib/csvsimple/csvsimple.pdf
+2024/05/16 | 1711 | macros/latex/contrib/csvsimple/csvsimple.sty
+2024/05/16 | 7957 | macros/latex/contrib/csvsimple/csvsimple.tex
+2024/05/16 | 127249 | macros/latex/contrib/csvsimple/csvsimple-title.png
+2024/05/16 | 135 | macros/latex/contrib/csvsimple/encoding.xml
+2024/05/16 | 288 | macros/latex/contrib/csvsimple/gradesort.xml
+2024/05/16 | 176 | macros/latex/contrib/csvsimple/matriculationsort.xml
+2024/05/16 | 229 | macros/latex/contrib/csvsimple/namesort.xml
+2024/05/16 | 2908 | macros/latex/contrib/csvsimple/README.md
+2024/05/16 | 259 | macros/latex/contrib/csvsimple/transform.xml
+2024/05/16 | 2153734 | macros/latex/contrib/csvsimple.zip
2015/10/18 | 50710 | macros/latex/contrib/ctable/ctable.dtx
2013/12/17 | 2518 | macros/latex/contrib/ctable/ctable.ins
2015/10/18 | 830921 | macros/latex/contrib/ctable/ctable.pdf
@@ -232858,12 +232858,12 @@
2008/02/10 | 19110 | macros/latex/contrib/ean13isbn/License.txt
2021/01/24 | 422 | macros/latex/contrib/ean13isbn/README
2021/01/24 | 322624 | macros/latex/contrib/ean13isbn.zip
-2024/05/15 | 83364 | macros/latex/contrib/easybook/easybook.dtx
+2024/05/16 | 84102 | macros/latex/contrib/easybook/easybook.dtx
2024/01/04 | 2081 | macros/latex/contrib/easybook/easybook.ins
-2024/05/15 | 632257 | macros/latex/contrib/easybook/easybook.pdf
-2024/05/15 | 102807 | macros/latex/contrib/easybook/easybook.tex
+2024/05/16 | 632806 | macros/latex/contrib/easybook/easybook.pdf
+2024/05/16 | 103014 | macros/latex/contrib/easybook/easybook.tex
2024/01/03 | 801 | macros/latex/contrib/easybook/README.md
-2024/05/15 | 680959 | macros/latex/contrib/easybook.zip
+2024/05/16 | 681687 | macros/latex/contrib/easybook.zip
2009/06/17 | 82589 | macros/latex/contrib/easy/doc/docbib.pdf
2009/06/17 | 78378 | macros/latex/contrib/easy/doc/docbmat.pdf
2009/06/17 | 99132 | macros/latex/contrib/easy/doc/doceqn.pdf
@@ -236116,11 +236116,12 @@
2012/04/10 | 1889 | macros/latex/contrib/fundus/va/va.ins
2012/04/14 | 196940 | macros/latex/contrib/fundus/va/va.pdf
2012/04/17 | 182914 | macros/latex/contrib/fundus/va.zip
-2023/11/29 | 323249 | macros/latex/contrib/fvextra/fvextra.dtx
-2023/11/29 | 2349 | macros/latex/contrib/fvextra/fvextra.ins
-2023/11/29 | 905185 | macros/latex/contrib/fvextra/fvextra.pdf
-2023/11/29 | 615 | macros/latex/contrib/fvextra/README
-2023/11/29 | 951039 | macros/latex/contrib/fvextra.zip
+2024/05/16 | 9311 | macros/latex/contrib/fvextra/CHANGELOG.md
+2024/05/16 | 313992 | macros/latex/contrib/fvextra/fvextra.dtx
+2024/05/16 | 2349 | macros/latex/contrib/fvextra/fvextra.ins
+2024/05/16 | 895911 | macros/latex/contrib/fvextra/fvextra.pdf
+2024/05/16 | 615 | macros/latex/contrib/fvextra/README
+2024/05/16 | 943075 | macros/latex/contrib/fvextra.zip
2011/02/28 | 40435 | macros/latex/contrib/fwlw/fwlw.pdf
2011/02/27 | 6919 | macros/latex/contrib/fwlw/fwlw.sty
2011/02/27 | 3018 | macros/latex/contrib/fwlw/fwlw.tex
@@ -241515,11 +241516,12 @@
2024/04/27 | 440278 | macros/latex/contrib/lastpage/lastpage.pdf
2024/04/27 | 5200 | macros/latex/contrib/lastpage/README
2024/04/27 | 579236 | macros/latex/contrib/lastpage.zip
-2023/11/20 | 51770 | macros/latex/contrib/latex2pydata/latex2pydata.dtx
-2023/11/20 | 2399 | macros/latex/contrib/latex2pydata/latex2pydata.ins
-2023/11/20 | 292477 | macros/latex/contrib/latex2pydata/latex2pydata.pdf
-2023/11/20 | 1645 | macros/latex/contrib/latex2pydata/README
-2023/11/20 | 299369 | macros/latex/contrib/latex2pydata.zip
+2024/05/16 | 1408 | macros/latex/contrib/latex2pydata/CHANGELOG.md
+2024/05/16 | 54952 | macros/latex/contrib/latex2pydata/latex2pydata.dtx
+2024/05/16 | 2409 | macros/latex/contrib/latex2pydata/latex2pydata.ins
+2024/05/16 | 296929 | macros/latex/contrib/latex2pydata/latex2pydata.pdf
+2024/05/16 | 1685 | macros/latex/contrib/latex2pydata/README
+2024/05/16 | 304832 | macros/latex/contrib/latex2pydata.zip
2019/03/02 | 16411 | macros/latex/contrib/latexalpha2/latexalpha2.dtx
2019/03/02 | 1783 | macros/latex/contrib/latexalpha2/latexalpha2.ins
2019/03/02 | 766675 | macros/latex/contrib/latexalpha2/latexalpha2.pdf
@@ -243850,22 +243852,22 @@
2020/11/24 | 3537 | macros/latex/contrib/ms/multitoc.ins
2007/04/15 | 110362 | macros/latex/contrib/ms/multitoc.pdf
2021/01/17 | 401 | macros/latex/contrib/ms/README.md
-2024/04/03 | 42365 | macros/latex/contrib/msu-thesis/docs/msu-thesis.tex
-2024/04/03 | 43644 | macros/latex/contrib/msu-thesis/msu-thesis.cls
-2024/04/03 | 114013 | macros/latex/contrib/msu-thesis/msu-thesis.pdf
-2024/04/03 | 2935 | macros/latex/contrib/msu-thesis/README.md
-2024/04/03 | 277 | macros/latex/contrib/msu-thesis/samples/chap1bib.tex
-2024/04/03 | 393 | macros/latex/contrib/msu-thesis/samples/chap2bib.tex
-2024/04/03 | 319 | macros/latex/contrib/msu-thesis/samples/chap3bib.tex
-2024/04/03 | 327 | macros/latex/contrib/msu-thesis/samples/chap4bib.tex
-2024/04/03 | 139419 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-chapterbib-testfile.pdf
-2024/04/03 | 1276 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-chapterbib-testfile.tex
-2024/04/03 | 70914 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-template.pdf
-2024/04/03 | 6771 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-template.tex
-2024/04/03 | 1088 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.bib
-2024/04/03 | 214979 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.pdf
-2024/04/03 | 9981 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.tex
-2024/04/03 | 563829 | macros/latex/contrib/msu-thesis.zip
+2024/05/16 | 44031 | macros/latex/contrib/msu-thesis/docs/msu-thesis.tex
+2024/05/16 | 44069 | macros/latex/contrib/msu-thesis/msu-thesis.cls
+2024/05/16 | 117097 | macros/latex/contrib/msu-thesis/msu-thesis.pdf
+2024/05/16 | 3564 | macros/latex/contrib/msu-thesis/README.md
+2024/05/16 | 277 | macros/latex/contrib/msu-thesis/samples/chap1bib.tex
+2024/05/16 | 393 | macros/latex/contrib/msu-thesis/samples/chap2bib.tex
+2024/05/16 | 319 | macros/latex/contrib/msu-thesis/samples/chap3bib.tex
+2024/05/16 | 327 | macros/latex/contrib/msu-thesis/samples/chap4bib.tex
+2024/05/16 | 139419 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-chapterbib-testfile.pdf
+2024/05/16 | 1276 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-chapterbib-testfile.tex
+2024/05/16 | 70914 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-template.pdf
+2024/05/16 | 6771 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-template.tex
+2024/05/16 | 1088 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.bib
+2024/05/16 | 214979 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.pdf
+2024/05/16 | 9981 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.tex
+2024/05/16 | 567782 | macros/latex/contrib/msu-thesis.zip
2021/01/19 | 594454 | macros/latex/contrib/ms.zip
1999/07/29 | 5665 | macros/latex/contrib/mtgreek/mtgreek.dtx
1999/07/29 | 752 | macros/latex/contrib/mtgreek/mtgreek.ins
@@ -306960,7 +306962,7 @@
2024/03/23 | 24386984 | systems/texlive/tlnet/archive/biber.windows.r70724.tar.xz
2024/03/23 | 17247824 | systems/texlive/tlnet/archive/biber.x86_64-cygwin.r70724.tar.xz
2024/03/23 | 35440776 | systems/texlive/tlnet/archive/biber.x86_64-darwinlegacy.r70724.tar.xz
-2024/05/15 | 18438652 | systems/texlive/tlnet/archive/biber.x86_64-linuxmusl.r71258.tar.xz
+2024/05/16 | 18438368 | systems/texlive/tlnet/archive/biber.x86_64-linuxmusl.r71271.tar.xz
2024/03/23 | 25886512 | systems/texlive/tlnet/archive/biber.x86_64-linux.r70724.tar.xz
2022/06/24 | 21943332 | systems/texlive/tlnet/archive/biber.x86_64-solaris.r63707.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/bibexport.aarch64-linux.r46208.tar.xz
@@ -311503,8 +311505,8 @@
2024/01/25 | 2796 | systems/texlive/tlnet/archive/hvlogos.r69581.tar.xz
2022/03/05 | 22308 | systems/texlive/tlnet/archive/hvpygmentex.doc.r62405.tar.xz
2022/03/05 | 3576 | systems/texlive/tlnet/archive/hvpygmentex.r62405.tar.xz
-2024/02/07 | 117728 | systems/texlive/tlnet/archive/hvqrurl.doc.r69723.tar.xz
-2024/02/07 | 1488 | systems/texlive/tlnet/archive/hvqrurl.r69723.tar.xz
+2024/05/16 | 119000 | systems/texlive/tlnet/archive/hvqrurl.doc.r71267.tar.xz
+2024/05/16 | 1540 | systems/texlive/tlnet/archive/hvqrurl.r71267.tar.xz
2022/11/13 | 4360084 | systems/texlive/tlnet/archive/hwemoji.doc.r65001.tar.xz
2022/11/13 | 4274656 | systems/texlive/tlnet/archive/hwemoji.r65001.tar.xz
2020/01/29 | 375200 | systems/texlive/tlnet/archive/hycolor.doc.r53584.tar.xz
@@ -315694,8 +315696,8 @@
2019/02/28 | 378272 | systems/texlive/tlnet/archive/productbox.doc.r20886.tar.xz
2019/02/28 | 4944 | systems/texlive/tlnet/archive/productbox.r20886.tar.xz
2019/02/28 | 15512 | systems/texlive/tlnet/archive/productbox.source.r20886.tar.xz
-2024/04/28 | 15037612 | systems/texlive/tlnet/archive/profcollege.doc.r71100.tar.xz
-2024/04/28 | 1343496 | systems/texlive/tlnet/archive/profcollege.r71100.tar.xz
+2024/05/16 | 15062388 | systems/texlive/tlnet/archive/profcollege.doc.r71268.tar.xz
+2024/05/16 | 1345412 | systems/texlive/tlnet/archive/profcollege.r71268.tar.xz
2022/04/27 | 134096 | systems/texlive/tlnet/archive/proflabo.doc.r63147.tar.xz
2022/04/27 | 2748 | systems/texlive/tlnet/archive/proflabo.r63147.tar.xz
2024/05/12 | 2115472 | systems/texlive/tlnet/archive/proflycee.doc.r71235.tar.xz
@@ -316545,8 +316547,8 @@
2019/02/28 | 284140 | systems/texlive/tlnet/archive/roundrect.doc.r39796.tar.xz
2019/02/28 | 2200 | systems/texlive/tlnet/archive/roundrect.r39796.tar.xz
2019/02/28 | 7076 | systems/texlive/tlnet/archive/roundrect.source.r39796.tar.xz
-2024/04/30 | 462284 | systems/texlive/tlnet/archive/rpgicons.doc.r71129.tar.xz
-2024/04/30 | 17780 | systems/texlive/tlnet/archive/rpgicons.r71129.tar.xz
+2024/05/16 | 467884 | systems/texlive/tlnet/archive/rpgicons.doc.r71269.tar.xz
+2024/05/16 | 17800 | systems/texlive/tlnet/archive/rpgicons.r71269.tar.xz
2019/02/28 | 90388 | systems/texlive/tlnet/archive/rrgtrees.doc.r27322.tar.xz
2019/02/28 | 3284 | systems/texlive/tlnet/archive/rrgtrees.r27322.tar.xz
2019/02/28 | 11056 | systems/texlive/tlnet/archive/rrgtrees.source.r27322.tar.xz
@@ -317575,8 +317577,8 @@
2019/02/28 | 10672 | systems/texlive/tlnet/archive/tap.r31731.tar.xz
2022/01/09 | 495524 | systems/texlive/tlnet/archive/tasks.doc.r61541.tar.xz
2022/01/09 | 7500 | systems/texlive/tlnet/archive/tasks.r61541.tar.xz
-2024/02/11 | 20932 | systems/texlive/tlnet/archive/tblr-extras.doc.r69794.tar.xz
-2024/02/11 | 1744 | systems/texlive/tlnet/archive/tblr-extras.r69794.tar.xz
+2024/05/16 | 22924 | systems/texlive/tlnet/archive/tblr-extras.doc.r71270.tar.xz
+2024/05/16 | 2148 | systems/texlive/tlnet/archive/tblr-extras.r71270.tar.xz
2019/02/28 | 462992 | systems/texlive/tlnet/archive/tcldoc.doc.r22018.tar.xz
2019/02/28 | 7004 | systems/texlive/tlnet/archive/tcldoc.r22018.tar.xz
2019/02/28 | 41140 | systems/texlive/tlnet/archive/tcldoc.source.r22018.tar.xz
@@ -317946,7 +317948,7 @@
2022/09/13 | 600 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r64356.tar.xz
-2024/05/15 | 435428 | systems/texlive/tlnet/archive/texlive-scripts.doc.r71265.tar.xz
+2024/05/16 | 435428 | systems/texlive/tlnet/archive/texlive-scripts.doc.r71272.tar.xz
2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.aarch64-linux.r53577.tar.xz
2020/01/27 | 924 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-freebsd.r53577.tar.xz
2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-netbsd.r53577.tar.xz
@@ -317968,7 +317970,7 @@
2022/09/13 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r64356.tar.xz
-2024/05/15 | 114328 | systems/texlive/tlnet/archive/texlive-scripts.r71265.tar.xz
+2024/05/16 | 114336 | systems/texlive/tlnet/archive/texlive-scripts.r71272.tar.xz
2022/09/13 | 580 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r64356.tar.xz
2024/05/10 | 60592 | systems/texlive/tlnet/archive/texlive-scripts.windows.r71215.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r64356.tar.xz
@@ -319913,16 +319915,16 @@
2020/07/18 | 47816 | systems/texlive/tlnet/archive/zztex.doc.r55862.tar.xz
2020/07/18 | 101724 | systems/texlive/tlnet/archive/zztex.r55862.tar.xz
2024/05/02 | 125808 | systems/texlive/tlnet/install-tl
-2024/05/15 | 5751291 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2024/05/15 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2024/05/15 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2024/05/16 | 5750135 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2024/05/16 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2024/05/16 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2024/04/13 | 5743 | systems/texlive/tlnet/install-tl-windows.bat
-2024/05/15 | 27717855 | systems/texlive/tlnet/install-tl-windows.exe
-2024/05/15 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2024/05/15 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2024/05/15 | 34426554 | systems/texlive/tlnet/install-tl.zip
-2024/05/15 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2024/05/15 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2024/05/16 | 27719326 | systems/texlive/tlnet/install-tl-windows.exe
+2024/05/16 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2024/05/16 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2024/05/16 | 34426572 | systems/texlive/tlnet/install-tl.zip
+2024/05/16 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2024/05/16 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2024/03/13 | 1229 | systems/texlive/tlnet/README.md
2024/03/13 | 0 | systems/texlive/tlnet/TEXLIVE_2024
2024/01/02 | 9011 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
@@ -319932,7 +319934,7 @@
2024/01/02 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
2024/01/16 | 50726 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
-2024/05/15 | 7026 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2024/05/16 | 7132 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2024/03/15 | 229654 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt
2020/04/15 | 2606592 | systems/texlive/tlnet/tlpkg/installer/curl/curl.exe
2017/04/16 | 2629 | systems/texlive/tlnet/tlpkg/installer/installer-options.txt
@@ -319974,12 +319976,12 @@
2023/02/21 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2024/05/02 | 5898 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2023/04/08 | 28167 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2024/05/15 | 19481393 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2024/05/15 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2024/05/16 | 19481687 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2024/05/16 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2024/05/02 | 87729 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2024/05/15 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2024/05/15 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2024/05/15 | 2575900 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2024/05/16 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2024/05/16 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2024/05/16 | 2573844 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2023/02/20 | 58928 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2023/06/11 | 42749 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2023/02/21 | 16138 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -331486,7 +331488,7 @@
2014/07/05 | 611 | systems/win32/yandy/README
2014/07/05 | 1004628 | systems/win32/yandy/yandy-src.tar.xz
2014/07/05 | 1012416 | systems/win32/yandy.zip
-2024/05/16 | 186 | timestamp
+2024/05/17 | 186 | timestamp
2002/08/26 | 61898 | usergrps/dante/antrag.pdf
2002/08/26 | 118217 | usergrps/dante/antrag.ps
2021/11/11 | 917 | usergrps/dante/dtk/doc/beispiel.bib
diff --git a/FILES.byname.gz b/FILES.byname.gz
index 0d69210fd7..684e6e52d5 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index c7fa5359f3..9c968c998d 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,53 +1,114 @@
+2024/05/16 | 9981 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.tex
+2024/05/16 | 951198 | macros/latex/contrib/csvsimple/csvsimple-l3.pdf
+2024/05/16 | 943075 | macros/latex/contrib/fvextra.zip
+2024/05/16 | 9311 | macros/latex/contrib/fvextra/CHANGELOG.md
+2024/05/16 | 895911 | macros/latex/contrib/fvextra/fvextra.pdf
+2024/05/16 | 84102 | macros/latex/contrib/easybook/easybook.dtx
+2024/05/16 | 7957 | macros/latex/contrib/csvsimple/csvsimple.tex
+2024/05/16 | 72044 | macros/latex/contrib/csvsimple/csvsimple-example.pdf
+2024/05/16 | 71383 | macros/latex/contrib/csvsimple/csvsimple-legacy.tex
+2024/05/16 | 7132 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2024/05/16 | 70914 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-template.pdf
+2024/05/16 | 690985 | macros/latex/contrib/csvsimple/csvsimple-legacy.pdf
+2024/05/16 | 681687 | macros/latex/contrib/easybook.zip
+2024/05/16 | 6771 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-template.tex
+2024/05/16 | 632806 | macros/latex/contrib/easybook/easybook.pdf
+2024/05/16 | 615 | macros/latex/contrib/fvextra/README
+2024/05/16 | 5750135 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2024/05/16 | 567782 | macros/latex/contrib/msu-thesis.zip
+2024/05/16 | 54952 | macros/latex/contrib/latex2pydata/latex2pydata.dtx
+2024/05/16 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2024/05/16 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2024/05/16 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2024/05/16 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2024/05/16 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2024/05/16 | 47580 | macros/latex/contrib/csvsimple/csvsimple-l3.sty
+2024/05/16 | 467884 | systems/texlive/tlnet/archive/rpgicons.doc.r71269.tar.xz
+2024/05/16 | 44069 | macros/latex/contrib/msu-thesis/msu-thesis.cls
+2024/05/16 | 44031 | macros/latex/contrib/msu-thesis/docs/msu-thesis.tex
+2024/05/16 | 435428 | systems/texlive/tlnet/archive/texlive-scripts.doc.r71272.tar.xz
+2024/05/16 | 4228 | macros/latex/contrib/csvsimple/csvsimple-doc.sty
+2024/05/16 | 4121382 | biblio/ctan-bibdata.zip
+2024/05/16 | 4020 | macros/latex/contrib/csvsimple/csvsimple-example.tex
+2024/05/16 | 393 | macros/latex/contrib/msu-thesis/samples/chap2bib.tex
+2024/05/16 | 3708800 | biblio/ctan-bibdata/ctan.pdf
+2024/05/16 | 3564 | macros/latex/contrib/msu-thesis/README.md
+2024/05/16 | 34426572 | systems/texlive/tlnet/install-tl.zip
+2024/05/16 | 327 | macros/latex/contrib/msu-thesis/samples/chap4bib.tex
+2024/05/16 | 319 | macros/latex/contrib/msu-thesis/samples/chap3bib.tex
+2024/05/16 | 313992 | macros/latex/contrib/fvextra/fvextra.dtx
+2024/05/16 | 304832 | macros/latex/contrib/latex2pydata.zip
+2024/05/16 | 296929 | macros/latex/contrib/latex2pydata/latex2pydata.pdf
+2024/05/16 | 295659 | macros/latex/contrib/csvsimple/csvsimple.pdf
+2024/05/16 | 2908 | macros/latex/contrib/csvsimple/README.md
+2024/05/16 | 288 | macros/latex/contrib/csvsimple/gradesort.xml
+2024/05/16 | 2867692 | biblio/ctan-bibdata/ctan.bib
+2024/05/16 | 277 | macros/latex/contrib/msu-thesis/samples/chap1bib.tex
+2024/05/16 | 27719326 | systems/texlive/tlnet/install-tl-windows.exe
+2024/05/16 | 259 | macros/latex/contrib/csvsimple/transform.xml
+2024/05/16 | 2573844 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2024/05/16 | 25524 | macros/latex/contrib/csvsimple/csvsimple-legacy.sty
+2024/05/16 | 2409 | macros/latex/contrib/latex2pydata/latex2pydata.ins
+2024/05/16 | 238 | macros/latex/contrib/csvsimple/csvsimple-example.csv
+2024/05/16 | 2349 | macros/latex/contrib/fvextra/fvextra.ins
+2024/05/16 | 229 | macros/latex/contrib/csvsimple/namesort.xml
+2024/05/16 | 22924 | systems/texlive/tlnet/archive/tblr-extras.doc.r71270.tar.xz
+2024/05/16 | 227 | macros/latex/contrib/csvsimple/amountsort.xml
+2024/05/16 | 2154272 | install/macros/latex/contrib/csvsimple.tds.zip
+2024/05/16 | 2153734 | macros/latex/contrib/csvsimple.zip
+2024/05/16 | 214979 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.pdf
+2024/05/16 | 2148 | systems/texlive/tlnet/archive/tblr-extras.r71270.tar.xz
+2024/05/16 | 19481687 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2024/05/16 | 18438368 | systems/texlive/tlnet/archive/biber.x86_64-linuxmusl.r71271.tar.xz
+2024/05/16 | 17800 | systems/texlive/tlnet/archive/rpgicons.r71269.tar.xz
+2024/05/16 | 176 | macros/latex/contrib/csvsimple/matriculationsort.xml
+2024/05/16 | 1711 | macros/latex/contrib/csvsimple/csvsimple.sty
+2024/05/16 | 1685 | macros/latex/contrib/latex2pydata/README
+2024/05/16 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2024/05/16 | 166 | macros/latex/contrib/csvsimple/catsort.xml
+2024/05/16 | 1540 | systems/texlive/tlnet/archive/hvqrurl.r71267.tar.xz
+2024/05/16 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2024/05/16 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2024/05/16 | 15062388 | systems/texlive/tlnet/archive/profcollege.doc.r71268.tar.xz
+2024/05/16 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2024/05/16 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2024/05/16 | 1408 | macros/latex/contrib/latex2pydata/CHANGELOG.md
+2024/05/16 | 139419 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-chapterbib-testfile.pdf
+2024/05/16 | 135 | macros/latex/contrib/csvsimple/encoding.xml
+2024/05/16 | 1345412 | systems/texlive/tlnet/archive/profcollege.r71268.tar.xz
+2024/05/16 | 1276 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-chapterbib-testfile.tex
+2024/05/16 | 127249 | macros/latex/contrib/csvsimple/csvsimple-title.png
+2024/05/16 | 12332 | macros/latex/contrib/csvsimple/CHANGES.md
+2024/05/16 | 119000 | systems/texlive/tlnet/archive/hvqrurl.doc.r71267.tar.xz
+2024/05/16 | 117097 | macros/latex/contrib/msu-thesis/msu-thesis.pdf
+2024/05/16 | 114336 | systems/texlive/tlnet/archive/texlive-scripts.r71272.tar.xz
+2024/05/16 | 112985 | macros/latex/contrib/csvsimple/csvsimple-l3.tex
+2024/05/16 | 1088 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.bib
+2024/05/16 | 103014 | macros/latex/contrib/easybook/easybook.tex
2024/05/15 | 95752 | macros/latex/contrib/rpgicons/rpgicons-pgf.sty
2024/05/15 | 95744 | systems/texlive/tlnet/archive/spbmark.doc.r71256.tar.xz
2024/05/15 | 88052 | macros/latex/contrib/rpgicons/rpgicons-l3.sty
-2024/05/15 | 83364 | macros/latex/contrib/easybook/easybook.dtx
2024/05/15 | 748 | systems/texlive/tlnet/archive/latex2e-help-texinfo.r71252.tar.xz
2024/05/15 | 7180 | systems/texlive/tlnet/archive/collection-latexextra.r71253.tar.xz
-2024/05/15 | 7026 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
-2024/05/15 | 680959 | macros/latex/contrib/easybook.zip
2024/05/15 | 659152 | systems/texlive/tlnet/archive/easybook.doc.r71254.tar.xz
-2024/05/15 | 632257 | macros/latex/contrib/easybook/easybook.pdf
-2024/05/15 | 5751291 | systems/texlive/tlnet/install-tl-unx.tar.gz
2024/05/15 | 5184 | systems/texlive/tlnet/archive/rigidnotation.source.r71264.tar.xz
2024/05/15 | 500755 | macros/latex/contrib/rpgicons/rpgicons-doc.pdf
2024/05/15 | 497219 | macros/latex/contrib/rpgicons.zip
-2024/05/15 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
-2024/05/15 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2024/05/15 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2024/05/15 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2024/05/15 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2024/05/15 | 45746 | macros/latex/contrib/rpgicons/rpgicons-doc.tex
-2024/05/15 | 435428 | systems/texlive/tlnet/archive/texlive-scripts.doc.r71265.tar.xz
-2024/05/15 | 4121383 | biblio/ctan-bibdata.zip
2024/05/15 | 3924 | systems/texlive/tlnet/archive/spbmark.r71256.tar.xz
-2024/05/15 | 3708800 | biblio/ctan-bibdata/ctan.pdf
2024/05/15 | 3576 | systems/texlive/tlnet/archive/colorblind.r71253.tar.xz
-2024/05/15 | 34426554 | systems/texlive/tlnet/install-tl.zip
-2024/05/15 | 2867682 | biblio/ctan-bibdata/ctan.bib
-2024/05/15 | 27717855 | systems/texlive/tlnet/install-tl-windows.exe
2024/05/15 | 273576 | systems/texlive/tlnet/archive/rigidnotation.doc.r71264.tar.xz
-2024/05/15 | 2575900 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2024/05/15 | 2181440 | systems/texlive/tlnet/archive/latex2e-help-texinfo.doc.r71252.tar.xz
2024/05/15 | 2140 | systems/texlive/tlnet/archive/rigidnotation.r71264.tar.xz
-2024/05/15 | 19481393 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
2024/05/15 | 1942 | macros/latex/contrib/rpgicons/README.md
-2024/05/15 | 18438652 | systems/texlive/tlnet/archive/biber.x86_64-linuxmusl.r71258.tar.xz
2024/05/15 | 18080 | systems/texlive/tlnet/archive/easybook.r71254.tar.xz
2024/05/15 | 17960 | systems/texlive/tlnet/archive/easybook.source.r71254.tar.xz
2024/05/15 | 1756 | systems/texlive/tlnet/archive/collection-mathscience.r71255.tar.xz
-2024/05/15 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
-2024/05/15 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2024/05/15 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
2024/05/15 | 1495764 | systems/texlive/tlnet/archive/tex4ht.source.r71257.tar.xz
2024/05/15 | 1465 | macros/latex/contrib/rpgicons/rpgicons.sty
-2024/05/15 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2024/05/15 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
2024/05/15 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r71257.tar.xz
-2024/05/15 | 114328 | systems/texlive/tlnet/archive/texlive-scripts.r71265.tar.xz
2024/05/15 | 1131816 | systems/texlive/tlnet/archive/tex4ht.r71257.tar.xz
2024/05/15 | 108048 | systems/texlive/tlnet/archive/colorblind.doc.r71253.tar.xz
-2024/05/15 | 102807 | macros/latex/contrib/easybook/easybook.tex
2024/05/14 | 9951 | macros/latex/contrib/profcollege/latex/PfCTriominos.tex
2024/05/14 | 9902 | macros/latex/contrib/profcollege/latex/PfCDecDeci.tex
2024/05/14 | 987 | macros/latex/contrib/profcollege/latex/PfCAllumettes.tex
@@ -1566,99 +1627,3 @@
2024/05/10 | 1025330 | systems/win32/miktex/tm/packages/els-cas-templates__source.tar.lzma
2024/05/10 | 10116 | systems/win32/miktex/tm/packages/typog.tar.lzma
2024/05/10 | 1008 | systems/texlive/tlnet/archive/collection-plaingeneric.r71220.tar.xz
-2024/05/09 | 998 | macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.dbx
-2024/05/09 | 9724 | systems/texlive/tlnet/archive/se2thesis.r71208.tar.xz
-2024/05/09 | 9721 | macros/latex/contrib/biblatex-contrib/biblatex-publist/README
-2024/05/09 | 923372 | systems/texlive/tlnet/archive/beebe.r71212.tar.xz
-2024/05/09 | 8870 | info/latex2e-help-texinfo/NEWS
-2024/05/09 | 862356 | systems/texlive/tlnet/archive/l3backend-dev.doc.r71211.tar.xz
-2024/05/09 | 826 | support/lualibs/lua-uca/CHANGELOG.md
-2024/05/09 | 72802 | support/lualibs/lua-uca/lua-uca-doc.pdf
-2024/05/09 | 66714 | macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.bbx
-2024/05/09 | 65308 | macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.tex
-2024/05/09 | 6315 | support/lualibs/lua-uca/lua-uca/lua-uca-tailoring.lua
-2024/05/09 | 622568 | systems/texlive/tlnet/archive/l3kernel-dev.source.r71211.tar.xz
-2024/05/09 | 607685 | support/lualibs/lua-uca.zip
-2024/05/09 | 6005 | support/lualibs/lua-uca/lua-uca/lua-uca-reordering-table.lua
-2024/05/09 | 586 | macros/latex/contrib/univie-ling/doc/templates/template-handout-deutsch.tex
-2024/05/09 | 5853 | support/lualibs/lua-uca/README.md
-2024/05/09 | 583144 | systems/texlive/tlnet/archive/se2thesis.doc.r71208.tar.xz
-2024/05/09 | 565 | macros/latex/contrib/univie-ling/doc/templates/template-handout-english.tex
-2024/05/09 | 5497546 | macros/latex/contrib/univie-ling.zip
-2024/05/09 | 5231 | macros/latex/contrib/univie-ling/doc/templates/template-expose-deutsch.tex
-2024/05/09 | 48816 | systems/texlive/tlnet/archive/tuda-ci.r71209.tar.xz
-2024/05/09 | 4737 | macros/latex/contrib/univie-ling/doc/templates/template-expose-english.tex
-2024/05/09 | 4727 | macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.tex
-2024/05/09 | 4649 | macros/latex/contrib/univie-ling/doc/univie-ling.tex
-2024/05/09 | 459107 | macros/latex/contrib/univie-ling/doc/univie-ling-thesis.pdf
-2024/05/09 | 458151 | macros/latex/contrib/univie-ling/doc/univie-ling-expose.pdf
-2024/05/09 | 455332 | macros/latex/contrib/univie-ling/doc/univie-ling-paper.pdf
-2024/05/09 | 454323 | macros/latex/contrib/univie-ling/doc/univie-ling-poster.pdf
-2024/05/09 | 45091 | support/pdfjam/bin/pdfjam
-2024/05/09 | 448221 | macros/latex/contrib/univie-ling/doc/univie-ling-handout.pdf
-2024/05/09 | 447375 | macros/latex/contrib/biblatex-contrib/biblatex-publist.zip
-2024/05/09 | 4367 | macros/latex/contrib/univie-ling/doc/templates/template-paper-deutsch.tex
-2024/05/09 | 4268 | macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.tex
-2024/05/09 | 412844 | macros/latex/contrib/biblatex-contrib/biblatex-publist/biblatex-publist.pdf
-2024/05/09 | 4071 | macros/latex/contrib/proflycee/tex/proflycee-tools-aleatoire.tex
-2024/05/09 | 4015 | support/pdfjam/pdfjam.conf
-2024/05/09 | 3965 | macros/latex/contrib/univie-ling/doc/templates/template-paper-english.tex
-2024/05/09 | 3800 | macros/latex/contrib/univie-ling/doc/templates/template-poster-deutsch.tex
-2024/05/09 | 3666 | macros/latex/contrib/univie-ling/doc/templates/template-poster-english.tex
-2024/05/09 | 3661 | macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.cbx
-2024/05/09 | 365602 | macros/latex/contrib/univie-ling/doc/univie-ling.pdf
-2024/05/09 | 35300 | macros/latex/contrib/univie-ling/tex/univie-ling-wlg.cls
-2024/05/09 | 3478 | macros/latex/contrib/biblatex-contrib/biblatex-publist/publist.cbx
-2024/05/09 | 345852 | macros/latex/contrib/univie-ling/doc/univie-ling-wlg.pdf
-2024/05/09 | 34012 | macros/latex/contrib/univie-ling/doc/univie-ling-poster.tex
-2024/05/09 | 33812 | systems/texlive/tlnet/archive/l3backend-dev.source.r71211.tar.xz
-2024/05/09 | 33506 | support/lualibs/lua-uca/lua-uca/lua-uca-languages.lua
-2024/05/09 | 32993 | macros/latex/contrib/univie-ling/doc/univie-ling-thesis.tex
-2024/05/09 | 32053 | macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex
-2024/05/09 | 3158 | support/lualibs/lua-uca/HACKING.md
-2024/05/09 | 30426 | macros/latex/contrib/univie-ling/doc/univie-ling-paper.tex
-2024/05/09 | 30143 | macros/latex/contrib/univie-ling/tex/univie-ling-poster.cls
-2024/05/09 | 29024 | macros/latex/contrib/univie-ling/tex/univie-ling-handout.cls
-2024/05/09 | 27073 | macros/latex/contrib/univie-ling/doc/univie-ling-expose.tex
-2024/05/09 | 26743 | macros/latex/contrib/univie-ling/tex/univie-ling-paper.cls
-2024/05/09 | 26743 | macros/latex/contrib/univie-ling/doc/univie-ling-handout.tex
-2024/05/09 | 26649 | macros/latex/contrib/univie-ling/tex/univie-ling-thesis.cls
-2024/05/09 | 25312 | systems/texlive/tlnet/archive/se2thesis.source.r71208.tar.xz
-2024/05/09 | 250470 | macros/latex/contrib/univie-ling/doc/templates/template-wlg-article.pdf
-2024/05/09 | 250366 | macros/latex/contrib/univie-ling/doc/templates/template-wlg-review.pdf
-2024/05/09 | 24425 | macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.bbx
-2024/05/09 | 24132 | macros/plain/contrib/ifis-macros.zip
-2024/05/09 | 227174 | macros/latex/contrib/univie-ling/doc/templates/template-poster-deutsch.pdf
-2024/05/09 | 2258 | macros/latex/contrib/univie-ling/doc/templates/template-wlg-article.tex
-2024/05/09 | 224980 | macros/latex/contrib/univie-ling/doc/templates/template-poster-english.pdf
-2024/05/09 | 2218 | macros/latex/contrib/univie-ling/doc/templates/template-wlg-review.tex
-2024/05/09 | 21473 | macros/latex/contrib/univie-ling/tex/univie-ling-expose.cls
-2024/05/09 | 2102 | support/lualibs/lua-uca/Makefile
-2024/05/09 | 20 | support/pdfjam/VERSION
-2024/05/09 | 201366 | macros/latex/contrib/univie-ling/doc/templates/template-handout-deutsch.pdf
-2024/05/09 | 200967 | macros/latex/contrib/univie-ling/doc/templates/template-handout-english.pdf
-2024/05/09 | 1986783 | support/lualibs/lua-uca/lua-uca/lua-uca-ducet-jit.lua
-2024/05/09 | 190196 | macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.pdf
-2024/05/09 | 186339 | macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.pdf
-2024/05/09 | 1834704 | support/lualibs/lua-uca/lua-uca/lua-uca-ducet.lua
-2024/05/09 | 180112 | systems/texlive/tlnet/archive/l3kernel-dev.r71211.tar.xz
-2024/05/09 | 17992 | support/pdfjam/COPYING
-2024/05/09 | 178820 | support/pdfjam.zip
-2024/05/09 | 1783164 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
-2024/05/09 | 17561 | support/pdfjam/README.md
-2024/05/09 | 173044 | support/lualibs/lua-uca/lua-uca/lua-uca-chinese.lua
-2024/05/09 | 172478 | macros/latex/contrib/univie-ling/doc/templates/template-paper-deutsch.pdf
-2024/05/09 | 1713 | support/pdfjam/man1/pdfjam.1
-2024/05/09 | 167579 | macros/latex/contrib/univie-ling/doc/templates/template-paper-english.pdf
-2024/05/09 | 16128 | systems/texlive/tlnet/archive/l3backend-dev.r71211.tar.xz
-2024/05/09 | 1543 | support/lualibs/lua-uca/lua-uca-doc.tex
-2024/05/09 | 148376 | support/pdfjam/tests.zip
-2024/05/09 | 14343 | macros/latex/contrib/univie-ling/doc/univie-ling-wlg.tex
-2024/05/09 | 132626 | macros/latex/contrib/univie-ling/doc/templates/template-expose-deutsch.pdf
-2024/05/09 | 127848 | macros/latex/contrib/univie-ling/doc/templates/template-expose-english.pdf
-2024/05/09 | 12153 | support/lualibs/lua-uca/lua-uca/lua-uca-collator.lua
-2024/05/09 | 12061108 | systems/texlive/tlnet/archive/l3kernel-dev.doc.r71211.tar.xz
-2024/05/09 | 1168744 | systems/texlive/tlnet/archive/tuda-ci.doc.r71209.tar.xz
-2024/05/09 | 10987 | macros/latex/contrib/univie-ling/README
-2024/05/09 | 1054 | support/lualibs/lua-uca/LICENSE
-2024/05/09 | 10453 | macros/latex/contrib/proflycee/tex/ProfLycee.sty
diff --git a/biblio/ctan-bibdata/ctan.bib b/biblio/ctan-bibdata/ctan.bib
index 31ac5ffcb2..faff74fecb 100644
--- a/biblio/ctan-bibdata/ctan.bib
+++ b/biblio/ctan-bibdata/ctan.bib
@@ -1,7 +1,7 @@
%% bib file of all CTAN packages
%% (C) Herbert Voß
%%
-%% created at 16-05-2024, 02:00:04
+%% created at 17-05-2024, 02:00:04
%%
%% This file is provided under the terms of the LPPL v1.3 or
@@ -16637,8 +16637,8 @@
title = {The \texttt{csvsimple} package},
subtitle = {Simple CSV file processing},
author = {Thomas F. Sturm},
- date = {2024-01-19},
- version = {2.6.0},
+ date = {2024-05-16},
+ version = {2.6.1},
license = {lppl1.3},
mirror = {https://mirror.ctan.org/macros/latex/contrib/csvsimple},
url = {https://ctan.org/pkg/csvsimple},
@@ -20860,8 +20860,8 @@
title = {The \texttt{easybook} package},
subtitle = {Easily typesetting Chinese theses or books},
author = {Qu Yi},
- date = {2024-05-15},
- version = {2024bq},
+ date = {2024-05-16},
+ version = {2024br},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/easybook},
url = {https://ctan.org/pkg/easybook},
@@ -28387,8 +28387,8 @@
title = {The \texttt{fvextra} package},
subtitle = {Extensions and patches for fancyvrb},
author = {Geoffrey Poore},
- date = {2023-11-29},
- version = {1.6.1},
+ date = {2024-05-16},
+ version = {1.7.0},
license = {lppl1.3},
mirror = {https://mirror.ctan.org/macros/latex/contrib/fvextra},
url = {https://ctan.org/pkg/fvextra},
@@ -38675,8 +38675,8 @@
title = {The \texttt{latex2pydata} package},
subtitle = {Write data to file in Python literal format},
author = {Geoffrey Poore},
- date = {2023-11-24},
- version = {0.1},
+ date = {2024-05-16},
+ version = {0.2.0},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/latex2pydata},
url = {https://ctan.org/pkg/latex2pydata},
@@ -47551,8 +47551,8 @@
title = {The \texttt{msu-thesis} package},
subtitle = {Class for Michigan State University Master’s and PhD theses},
author = {Alan Munn},
- date = {2024-04-03},
- version = {4.2},
+ date = {2024-05-16},
+ version = {4.2b},
license = {lppl1.3},
mirror = {https://mirror.ctan.org/macros/latex/contrib/msu-thesis},
url = {https://ctan.org/pkg/msu-thesis},
diff --git a/macros/latex/contrib/csvsimple/CHANGES.md b/macros/latex/contrib/csvsimple/CHANGES.md
index 768f8f65cb..3178395f76 100644
--- a/macros/latex/contrib/csvsimple/CHANGES.md
+++ b/macros/latex/contrib/csvsimple/CHANGES.md
@@ -17,6 +17,18 @@ and this project adheres to
+## [2.6.1] - 2024-05-16
+
+### Changed
+- Documentation of `csvsim/filter fp`, `csvsim/and filter fp`, `\IfCsvsimFpCompareTF`,
+ and `\IfCsvsimIntCompareTF` clarified (issue #37)
+- Reset `data collection` to `\csvdatacollection` for every csv reader (issue #39)
+
+### Fixed
+- Documentation typos fixed (issue #38)
+
+
+
## [2.6.0] - 2024-01-19
### Added
diff --git a/macros/latex/contrib/csvsimple/README.md b/macros/latex/contrib/csvsimple/README.md
index d3e0860104..29196c03e9 100644
--- a/macros/latex/contrib/csvsimple/README.md
+++ b/macros/latex/contrib/csvsimple/README.md
@@ -1,4 +1,4 @@
-# The LaTeX package csvsimple - version 2.6.0 (2024/01/19)
+# The LaTeX package csvsimple - version 2.6.1 (2024/05/16)
> Copyright (c) 2008-2024 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
diff --git a/macros/latex/contrib/csvsimple/csvsimple-doc.sty b/macros/latex/contrib/csvsimple/csvsimple-doc.sty
index 2f507037fb..c8d933c684 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-doc.sty
+++ b/macros/latex/contrib/csvsimple/csvsimple-doc.sty
@@ -1,5 +1,5 @@
% !TeX encoding=UTF-8
-%% The LaTeX package csvsimple - version 2.6.0 (2024/01/19)
+%% The LaTeX package csvsimple - version 2.6.1 (2024/05/16)
%% csvsimple-doc.sty: style file for the documentation
%%
%% -------------------------------------------------------------------------------------------
@@ -18,8 +18,8 @@
%%
%% This work consists of all files listed in README.md
%%
-\def\version{2.6.0}%
-\def\datum{2024/01/19}%
+\def\version{2.6.1}%
+\def\datum{2024/05/16}%
\IfFileExists{csvsimple-doc.cfg}{\input{csvsimple-doc.cfg}}{}\providecommand\csvpkgprefix{}
diff --git a/macros/latex/contrib/csvsimple/csvsimple-example.pdf b/macros/latex/contrib/csvsimple/csvsimple-example.pdf
index 5485a99c1e..f85684f6d1 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-example.pdf
+++ b/macros/latex/contrib/csvsimple/csvsimple-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/csvsimple/csvsimple-example.tex b/macros/latex/contrib/csvsimple/csvsimple-example.tex
index 364596562a..0baf2183c7 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-example.tex
+++ b/macros/latex/contrib/csvsimple/csvsimple-example.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package csvsimple - version 2.6.0 (2024/01/19)
+%% The LaTeX package csvsimple - version 2.6.1 (2024/05/16)
%% csvsimple-example.tex: an example for csvsimple
%%
%% -------------------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/csvsimple/csvsimple-l3.pdf b/macros/latex/contrib/csvsimple/csvsimple-l3.pdf
index bbef5c75a9..f17b9183c3 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-l3.pdf
+++ b/macros/latex/contrib/csvsimple/csvsimple-l3.pdf
Binary files differ
diff --git a/macros/latex/contrib/csvsimple/csvsimple-l3.sty b/macros/latex/contrib/csvsimple/csvsimple-l3.sty
index 9aa9b2c428..849aa79aec 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-l3.sty
+++ b/macros/latex/contrib/csvsimple/csvsimple-l3.sty
@@ -1,4 +1,4 @@
-%% The LaTeX package csvsimple - version 2.6.0 (2024/01/19)
+%% The LaTeX package csvsimple - version 2.6.1 (2024/05/16)
%% csvsimple-l3.sty: Simple LaTeX CSV file processing (LaTeX3)
%%
%% -------------------------------------------------------------------------------------------
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README.md
%%
\NeedsTeXFormat{LaTeX2e}[2023-11-01]
-\ProvidesExplPackage{csvsimple-l3}{2024/01/19}{2.6.0}
+\ProvidesExplPackage{csvsimple-l3}{2024/05/16}{2.6.1}
{LaTeX3 CSV file processing}
@@ -1037,13 +1037,6 @@
}
-\keys_set:nn { csvsim }
- {
- data~collection = \csvdatacollection,
- }
-
-
-
%---- catcodes
\cs_new_protected_nopar:Npn \__csvsim_setup_catcode_list:
@@ -1606,6 +1599,7 @@
check~column~count,
head~to~column~names~prefix = ,
head~to~column~names = false,
+ data~collection = \csvdatacollection,
collect~data = false,
consume~collected~data = false,
column~count = 0,
diff --git a/macros/latex/contrib/csvsimple/csvsimple-l3.tex b/macros/latex/contrib/csvsimple/csvsimple-l3.tex
index 9fad48644d..6c70fa3003 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-l3.tex
+++ b/macros/latex/contrib/csvsimple/csvsimple-l3.tex
@@ -1,7 +1,7 @@
% \LaTeX-Main\
% !TeX encoding=UTF-8
% !TeX spellcheck=en_US
-%% The LaTeX package csvsimple - version 2.6.0 (2024/01/19)
+%% The LaTeX package csvsimple - version 2.6.1 (2024/05/16)
%% csvsimple.tex: Manual
%%
%% -------------------------------------------------------------------------------------------
@@ -214,7 +214,7 @@ way.
An even more comfortable and preferable way to create a table is setting
appropriate option keys. Note, that this gives you the possibility to create a
meta key (called style here) which contains the whole table creation
-using \refCom{csvstyle} or |keys_define:nn| from |l3keys|.
+using \refCom{csvstyle} or |\keys_define:nn| from |l3keys|.
\begin{dispExample}
\csvreader[
@@ -1182,9 +1182,10 @@ The following string compare filters \refKey{csvsim/filter strcmp} and
\end{docCsvKey}
-\begin{docCsvKey}[][doc new and updated={2021-06-25}{2022-10-21}]{filter fp}{=\marg{floating point expression}}{no default}
- Only data lines which fulfill a \LaTeX3 \meta{floating point expression}
- (|l3fp|, \ctanpkg{xfp}) are accepted.
+\enlargethispage*{1cm}
+\begin{docCsvKey}[][doc new and updated={2021-06-25}{2022-10-21}]{filter fp}{=\marg{floating point comparison}}{no default}
+ Only data lines which fulfill a \LaTeX3 \meta{floating point comparison}
+ are accepted. The evaluation is done using \docAuxCommand*{fp_compare_p:n}.
\begin{dispExample}
% \usepackage{booktabs}
\csvreader[
@@ -1316,7 +1317,7 @@ filter options:
\begin{docCsvKeys}[
- doc parameter = {=\marg{floating point expression}},
+ doc parameter = {=\marg{floating point comparison}},
doc description = {style, no default},
doc new = {2022-10-21}
]
@@ -1326,9 +1327,23 @@ filter options:
}
Like \refKey{csvsim/filter fp}, but appended to a required existing
expl3 based filter with \emph{and} (|&&|) resp. \emph{or} (\texttt{\textbar\textbar}).
+\begin{dispExample}
+% \usepackage{booktabs}
+\csvreader[
+ head to column names,
+ tabular = llll,
+ table head = \toprule & \bfseries Name & \bfseries Matr & \bfseries Grade\\\midrule,
+ table foot = \bottomrule,
+ %>> list only matriculation numbers greater than 20000 and grade less than 4.0 <<
+ filter fp = { \matriculation > 20000 },
+ and filter fp = { \grade < 4.0 },
+ ]{grade.csv}{}{%
+ \thecsvrow & \slshape\name, \givenname & \matriculation & \grade
+ }
+\end{dispExample}
\end{docCsvKeys}
-
+\enlargethispage*{1cm}
\begin{docCsvKeys}[
doc parameter = {=\marg{boolean expression}},
doc description = {style, no default},
@@ -2304,14 +2319,18 @@ If set to |false|, the collected data of a CSV file processed with
\refKey{csvsim/collect data} is saved into \refCom{csvdatacollection}.\par
Otherwise, if set to |true|, the collected data is not saved, but directly used
after reading the CSV file, see \refKey{csvsim/generic collected table}.
+After usage, the collected data is cleared, i.e. \refCom{csvdatacollection} is emptied.
\end{docCsvKey}
-\begin{docCsvKey}[][doc new=2021-07-06]{data collection}{=\meta{macro}}{no default, initially \refCom{csvdatacollection}}
+\begin{docCsvKey}[][doc new and updated={2021-07-06}{2024-05-16}]{data collection}{=\meta{macro}}{no default, initially \refCom{csvdatacollection}}
Sets the collection macro to an alternative for \refCom{csvdatacollection}.
\begin{dispListing}
data collection = \myData, % instead of \csvdatacollection
\end{dispListing}
+Note that until version 2.6.0 (2024/01/19), \refKey{csvsim/data collection} was
+not reset to the default \refCom{csvdatacollection} for following CSV files,
+but it is now.
\end{docCsvKey}
@@ -2432,29 +2451,35 @@ for backward compatibility.
\begin{docCommands}[
- doc parameter = \marg{floating point expression}\marg{token list B}\marg{true}\marg{false}
+ doc parameter = \marg{floating point comparison}\marg{true}\marg{false}
]
{
{ doc name = IfCsvsimFpCompareTF, doc new and updated = {2021-06-28}{2023-12-19} },
{ doc name = ifcsvfpcmp, color command=black }
}
- Evaluates the given \meta{floating point expression}
+ Evaluates the given \meta{floating point comparison}
and executes \meta{true} or \meta{false} appropriately.
- The evaluation is done using |\fp_compare:nTF|.
+ The evaluation is done using \docAuxCommand*{fp_compare:nTF}.\\
+ Basically, a \meta{floating point comparison} consists of
+ \mbox{\meta{fp expr\textsubscript{1}} \meta{relation} \meta{fp expr\textsubscript{2}}},
+ like \mbox{$x<y$}, but \docAuxCommand*{fp_compare:nTF} even allows a chain of comparisons.
\refCom{IfCsvsimFpCompareTF} is expandable.
\end{docCommands}
\begin{docCommands}[
- doc parameter = \marg{integer expression}\marg{token list B}\marg{true}\marg{false}
+ doc parameter = \marg{integer comparison}\marg{true}\marg{false}
]
{
{ doc name = IfCsvsimIntCompareTF, doc new and updated = {2021-06-28}{2023-12-19} },
{ doc name = ifcsvintcmp, color command=black }
}
- Evaluates the given \meta{integer expression}
+ Evaluates the given \meta{integer comparison}
and executes \meta{true} or \meta{false} appropriately.
- The evaluation is done using |\int_compare:nTF|.
+ The evaluation is done using \docAuxCommand*{int_compare:nTF}.\\
+ Basically, a \meta{integer comparison} consists of
+ \mbox{\meta{int expr\textsubscript{1}} \meta{relation} \meta{int expr\textsubscript{2}}},
+ like \mbox{$x<y$}, but \docAuxCommand*{int_compare:nTF} even allows a chain of comparisons.
\refCom{IfCsvsimIntCompareTF} is expandable.
\end{docCommands}
diff --git a/macros/latex/contrib/csvsimple/csvsimple-legacy.pdf b/macros/latex/contrib/csvsimple/csvsimple-legacy.pdf
index 7079052a74..6138c507e3 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-legacy.pdf
+++ b/macros/latex/contrib/csvsimple/csvsimple-legacy.pdf
Binary files differ
diff --git a/macros/latex/contrib/csvsimple/csvsimple-legacy.sty b/macros/latex/contrib/csvsimple/csvsimple-legacy.sty
index 28b5562b5d..ecaba4a7b0 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-legacy.sty
+++ b/macros/latex/contrib/csvsimple/csvsimple-legacy.sty
@@ -1,4 +1,4 @@
-%% The LaTeX package csvsimple - version 2.6.0 (2024/01/19)
+%% The LaTeX package csvsimple - version 2.6.1 (2024/05/16)
%% csvsimple-legacy.sty: Simple LaTeX CSV file processing (LaTeX2e)
%%
%% -------------------------------------------------------------------------------------------
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README.md
%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{csvsimple-legacy}[2024/01/19 version 2.6.0 LaTeX2e CSV file processing]
+\ProvidesPackage{csvsimple-legacy}[2024/05/16 version 2.6.1 LaTeX2e CSV file processing]
%---- check package
diff --git a/macros/latex/contrib/csvsimple/csvsimple-legacy.tex b/macros/latex/contrib/csvsimple/csvsimple-legacy.tex
index caa65712ec..ae40e8563d 100644
--- a/macros/latex/contrib/csvsimple/csvsimple-legacy.tex
+++ b/macros/latex/contrib/csvsimple/csvsimple-legacy.tex
@@ -1,6 +1,6 @@
% \LaTeX-Main\
% !TeX encoding=UTF-8
-%% The LaTeX package csvsimple - version 2.6.0 (2024/01/19)
+%% The LaTeX package csvsimple - version 2.6.1 (2024/05/16)
%% csvsimple.tex: Manual
%%
%% -------------------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/csvsimple/csvsimple.pdf b/macros/latex/contrib/csvsimple/csvsimple.pdf
index 7f4023fd07..8d148b5a6f 100644
--- a/macros/latex/contrib/csvsimple/csvsimple.pdf
+++ b/macros/latex/contrib/csvsimple/csvsimple.pdf
Binary files differ
diff --git a/macros/latex/contrib/csvsimple/csvsimple.sty b/macros/latex/contrib/csvsimple/csvsimple.sty
index 60776f67ce..01ccbb3f72 100644
--- a/macros/latex/contrib/csvsimple/csvsimple.sty
+++ b/macros/latex/contrib/csvsimple/csvsimple.sty
@@ -1,4 +1,4 @@
-%% The LaTeX package csvsimple - version 2.6.0 (2024/01/19)
+%% The LaTeX package csvsimple - version 2.6.1 (2024/05/16)
%% csvsimple.sty: Simple LaTeX CSV file processing
%%
%% -------------------------------------------------------------------------------------------
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README.md
%%
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
-\ProvidesExplPackage{csvsimple}{2024/01/19}{2.6.0}
+\ProvidesExplPackage{csvsimple}{2024/05/16}{2.6.1}
{LaTeX CSV file processing}
\cs_if_exist:NT \c__csvsim_package_expl_bool
diff --git a/macros/latex/contrib/csvsimple/csvsimple.tex b/macros/latex/contrib/csvsimple/csvsimple.tex
index 7d34586a42..73d34f4c34 100644
--- a/macros/latex/contrib/csvsimple/csvsimple.tex
+++ b/macros/latex/contrib/csvsimple/csvsimple.tex
@@ -1,6 +1,6 @@
% \LaTeX-Main\
% !TeX encoding=UTF-8
-%% The LaTeX package csvsimple - version 2.6.0 (2024/01/19)
+%% The LaTeX package csvsimple - version 2.6.1 (2024/05/16)
%% csvsimple.tex: Manual
%%
%% -------------------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index 7e00a937f3..c6473783f9 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -14,7 +14,7 @@
% This work has the LPPL maintenance status `maintained'.
%<*class>
\NeedsTeXFormat{LaTeX2e}[2021/11/15]
-\ProvidesExplClass{easybook}{2024/05/15}{2024bq}
+\ProvidesExplClass{easybook}{2024/05/16}{2024br}
{Easily typesetting Chinese theses or books}
\bool_new:N \l__eb_compile_draft_bool
@@ -301,7 +301,7 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}[2021/11/15]
\RequirePackage{etoolbox}
-\ProvidesExplPackage{easybase}{2024/05/15}{2024bq}
+\ProvidesExplPackage{easybase}{2024/05/16}{2024br}
{Easily typesetting Chinese theses or books}
\cs_generate_variant:Nn \dim_set:Nn { NV }
@@ -1456,8 +1456,11 @@
{\addtocontents{toc}{\booltrue{bitoc}}}
}
{
- \RemoveFromHook{cmd/CTEX@addtocline/before}[bitoc]
- \RemoveFromHook{cmd/CTEX@addbitocline/before}[bitoc]
+ \IfHookEmptyTF{cmd/CTEX@addtocline/before}{}
+ {
+ \RemoveFromHook{cmd/CTEX@addtocline/before}[bitoc]
+ \RemoveFromHook{cmd/CTEX@addbitocline/before}[bitoc]
+ }
}
},
name .tl_set:N = \l__eb_print_index_name_tl,
@@ -1771,6 +1774,28 @@
}
\AllotPartialExt{lol}{pll}
+\cs_new_protected:Npn \RegisterTitleIfname #1
+ {
+ \clist_map_function:nN {#1}
+ \eb@register@title@ifname
+ }
+\cs_new_protected:Npn \eb@register@title@ifname #1
+ {
+ \AddToHookWithArguments{cmd/addcontentsline/before}[title/ifname/#1]
+ {
+ \str_if_eq:nnT {##1} {#1}
+ {
+ \addtocontents{##1}
+ {\CTEXifname{\CTEX@ifnametrue}{\CTEX@ifnamefalse}}
+ }
+ }
+ \AddToHook{file/\jobname.#1/before}
+ {\cs_set_eq:NN \eb@title@ifname@resume \CTEXifname}
+ \AddToHook{file/\jobname.#1/after}
+ {\cs_set_eq:NN \CTEXifname \eb@title@ifname@resume}
+ }
+\RegisterTitleIfname{toc}
+
\cs_set_eq:NN \eb@ctexsetii \ctex_set:nn
\cs_new_protected:Npn \SetTocStyle #1#2#3
{
@@ -2557,7 +2582,7 @@
}
%</package>
%<*tcolorbox>
-\ProvidesExplFile{eb-tcolorbox.cfg}{2024/05/15}{2024bq}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2024/05/16}{2024br}
{Customization of tcolorbox for easybook}
\cs_set_protected:Npn \addtotcbstyle #1#2
diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf
index 841632697c..989da36329 100644
--- a/macros/latex/contrib/easybook/easybook.pdf
+++ b/macros/latex/contrib/easybook/easybook.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex
index 17f6bf6e9a..1c3687bbde 100644
--- a/macros/latex/contrib/easybook/easybook.tex
+++ b/macros/latex/contrib/easybook/easybook.tex
@@ -23,8 +23,8 @@
name = easybook,
color-scheme = blue,
title = EASYBOOK使用手册,
- version = v2024bq,
- date = 2024/05/15,
+ version = v2024br,
+ date = 2024/05/16,
authors = 瞿毅,
info = 简便地排版中文学位论文或书籍,
email = toquyi@163.com,
@@ -832,10 +832,10 @@
\subsection[目录]{目录\smodule{toc}}
\label{subsec:catalog}
-模块 \module*{toc} 将使用 \pkg*{titletoc} 宏包处理目录样式。默认包括 \module*{part}$\longrightarrow$\module*{subparagraph}、\module*{figure}、\module*{table} 和 \module*{lstlisting} 条目名的键路径。选项前带有 \ding{73} 符号表示支持所有相应\textbf{条目名}的路径,其它选项则处于 \module*{toc} 键路径下。目前支持多数学术论文目录样式,更复杂的样式可以查看 \pkg*{titletoc} 的相关用法。
+模块 \module*{toc} 将使用 \pkg*{titletoc} 宏包处理目录样式。默认包括 \module*{part}$\longrightarrow$\module*{subparagraph}、\module*{figure}、\module*{table} 和 \module*{lstlisting} 条目名的键路径。选项前带有 \ding{73} 符号表示支持所有相应\textbf{条目名}的路径,其它选项则处于 \module*{toc} 键路径下。目录选项均支持标题编号判定命令 \cs{CTEXifname}。目前支持多数学术论文目录样式,更复杂的样式可以查看 \pkg*{titletoc} 的相关用法。
\begin{cnltxlist}
\keyval{tocformat}{条目格式}\dtag
- 目录中各类型条目的格式。可以设置条目字体和加入垂直间距等,垂直间距最好使用防止垂直间距重合的 \cs*{addvspace} 命令。如果是段落型目录,格式代码仅在段落中当前级别条目前执行一次。
+ 目录中各类型条目的格式。可以设置条目字体和加入垂直间距等,垂直间距最好使用防止垂直间距重合的 \cs*{addvspace} 命令。如果是段落型目录,格式代码仅在段落中当前级别条目前执行一次。也可以用 \cs{CTEXifname} 命令或 \option{tocformat*} 选项给有无编号的标题分别设置格式。
\keyval{tocformat+}{条目格式}\dtag
与选项 \option{tocformat} 用法一样,只是在已有的格式命令后附加代码。
\keyval{tocformat*}{条目格式}\dtag
@@ -863,8 +863,8 @@
{
chapter =
{
- tocformat = \addvspace{8pt}\large,
- tocindent = 1.5em,
+ tocformat = \CTEXifname{\addvspace{8pt}\large}{},
+ tocindent = \CTEXifname{2em}{1.5em},
tocrule = \tocrule[0.6pc](1.1){.}[\zihao{5}],
tocline = \CTEXnumberline{#1}#2
},
diff --git a/macros/latex/contrib/fvextra/CHANGELOG.md b/macros/latex/contrib/fvextra/CHANGELOG.md
new file mode 100644
index 0000000000..7556c74a2d
--- /dev/null
+++ b/macros/latex/contrib/fvextra/CHANGELOG.md
@@ -0,0 +1,231 @@
+# Changelog
+
+
+## v1.7.0 (2024/05/16)
+
+* Added new command `\VerbatimClearBuffer`.
+
+* `VerbatimBuffer` environments with the same buffer name now append to the
+ same buffer, regardless of the value of `globalbuffer`. Previously,
+ `globalbuffer=false` caused any pre-existing buffer to be cleared. Now,
+ `globalbuffer=false` causes anything that is appended to the buffer to be
+ removed at the end of the environment, but the entire buffer is not
+ cleared.
+
+* `\FVExtraUnexpandedReadStarOArgMArgBVArg` now checks that the final
+ argument it reads is braced (#22).
+
+* Text that immediately follows `\VerbatimInsertBuffer` is no longer indented
+ to start a new paragraph.
+
+* Updated `tcblisting` usage in docs for compatibility with the latest
+ `tcolorbox`.
+
+
+## v1.6.1 (2023/11/28)
+
+* Fixed bug from v1.6 that caused a space following a comma to be lost (#21).
+
+
+## v1.6 (2023/11/19)
+
+* Added new environment `VerbatimWrite`. This is similar to `fancyvrb`'s
+ `VerbatimOut`, except that it allows for writing to a file multiple times
+ and guarantees truly verbatim output via `\detokenize`.
+
+* Added new environment `VerbatimBuffer`. This stores the contents of an
+ environment verbatim in a "buffer," a sequence of numbered macros each of
+ which contains one line of the environment. The "buffered" lines can then
+ be looped over for further processing or later use.
+
+* Added new command `\VerbatimInsertBuffer`. This inserts an existing buffer
+ created by `VerbatimBuffer` as a `Verbatim` environment.
+
+* Redefined visible space `\FancyVerbSpace` so that it now has the correct
+ width. It had previously been redefined as `\textvisiblespace`, but that
+ was slightly too narrrow.
+
+* Added option `spacebreak`. This determines the line break that is inserted
+ around spaces when `showspaces=true` or `breakcollapsespaces=false`, by
+ defining the new macro `\FancyVerbSpaceBreak`.
+
+* `breakbefore`, `breakafter`, and `breakanywhere` now produce plain breaks
+ around spaces when `showspaces=true`, instead of breaks with a break symbol
+ at the end of wrapped lines. `\FancyVerbBreakAnywhereBreak`,
+ `\FancyVerbBreakBeforeBreak`, and `\FancyVerbBreakAfterBreak` are no longer
+ inserted next to spaces. Instead, `\FancyVerbSpaceBreak` is inserted or
+ (depending on options) `\FV@Space` is defined to include
+ `\FancyVerbSpaceBreak`.
+
+* Added option `breakcollapsespaces`. When `true` (default), a line break
+ within a run of regular spaces (`showspaces=false`) replaces all spaces
+ with a single break, and the wrapped line after the break starts with a
+ non-space character. When `false`, a line break within a run of regular
+ spaces preserves all spaces, and the wrapped line after the break may start
+ with one or more spaces. This causes regular spaces to behave exactly like
+ the visible spaces produced with `showspaces`; both give identical line
+ breaks, with the only difference being the appearance of spaces.
+
+* `breaklines` now automatically enables breaks after space characters when
+ `showspaces=true`.
+
+* Reimplemented definition of `\FV@Space` to work with new space options.
+
+* Added documentation about how reimplemented commands handle the `codes`
+ option differently compared to `fancyvrb` (#17).
+
+* Starred commands such as `\Verb*` now use both visible spaces and visible
+ tabs instead of just visible spaces. This is more similar to the current
+ behavior of `\verb*`, except that `\verb*` converts tabs into visible
+ spaces (#19).
+
+* The `mathescape` option now resets the ampersand `&` catcode (#18).
+
+
+## v1.5 (2022/11/30)
+
+* Added `\FancyVerbFormatInline` for customizing the formatting of inline
+ verbatim, such as `\Verb`. This parallels `\FancyVerbFormatLine` and
+ `\FancyVerbFormatText`.
+
+* Added line breaking option `breaknonspaceingroup`. When `commandchars` is
+ used to allow macros within verbatim, this inserts breaks within groups
+ `{...}`.
+
+* Added `\FVExtraUnexpandedReadStarOArgMArgBVArg` to support reimplementation
+ of `\mintinline` for `minted`.
+
+* Added `VerbEnv` environment, which is an environment variant of `\Verb`.
+ This supports reimplementation of `\mintinline` for `minted`.
+
+* `breakbefore` and `breakafter` now support the escaped comma `\,` (#15).
+
+* Fixed unintended line breaks after hyphens under LuaTeX (#14).
+
+* Added documentation on Pandoc compatibility (#11).
+
+* Replaced `breakbeforegroup` with `breakbeforeinrun`, and replaced
+ `breakaftergroup` with `breakafterinrun`. With the introduction of
+ `breaknonspaceingroup`, "`group`" is now reserved for referring to TeX
+ groups `{...}`.
+
+* Removed dependency on `ifthen` package.
+
+* `breakautoindent` now works correctly with Pygments output that treats
+ leading whitespace as a separate token or as part of a token.
+
+
+## v1.4 (2019/02/04)
+
+* Reimplemented `\Verb`. It now works as expected inside other commands
+ (with a few limitations), including in movable arguments, and is compatible
+ with `hyperref` for things like PDF bookmarks. It now supports
+ `breaklines` and relevant line-breaking options.
+
+* Reimplemented `\SaveVerb` and `\UseVerb` to be equivalent to the new
+ `\Verb`. The new option `retokenize` allows saved verbatim material to be
+ retokenized under new `commandchars` and `codes` when it is inserted with
+ `\UseVerb`.
+
+* New command `\EscVerb` works like the reimplemented `\Verb`, except that
+ special characters can be escaped with a backslash. It works inside other
+ commands without any limitations, including in movable arguments, and is
+ compatible with `hyperref` for things like PDF bookmarks.
+
+* Added `extra` option for switching between the reimplemented `\Verb`,
+ `\SaveVerb`, `\UseVerb` and the original `fancyvrb` definitions.
+ Reimplemented versions are used by default. This option will apply to any
+ future reimplemented commands and environments.
+
+* New command `\fvinlineset` only applies options to commands related to
+ typesetting verbatim inline, like `\Verb`, `\SaveVerb`, `\UseVerb`. It
+ only works with commands that are defined or reimplemented by `fvextra`.
+ It overrides options from `\fvset`.
+
+* Patched `fancyvrb` so that `\Verb` (either reimplemented version or
+ original) can use characters like `%` for delimiters when used outside any
+ commands.
+
+* `obeytabs` now works with the `calc` package's redefined `\setcounter`.
+ Since `minted` loads `calc`, this also fixes `minted` compatibility
+ (`minted` #221).
+
+* Added new option `fontencoding` (`minted` #208).
+
+* `highlightlines` now works correctly with `frame` (#7).
+
+
+## v1.3.1 (2017/07/08)
+
+* `beameroverlays` now works with `VerbatimOut`.
+
+
+## v1.3 (2017/07/08)
+
+* Added `beameroverlays` option, which enables `beamer` overlays using the
+ `<` and `>` characters.
+
+* Added options `breakindentnchars`, `breaksymbolsepleftnchars` (alias
+ `breaksymbolsepnchars`), `breaksymbolseprightnchars`,
+ `breaksymbolindentleftnchars` (alias `breaksymbolindentnchars`), and
+ `breaksymbolindentrightnchars`. These are identical to the pre-existing
+ options without the `nchars` suffix, except that they allow indentation to
+ be specified as an integer number of characters rather than as a dimension.
+ As a result of these new options, `\settowidth` is no longer used in the
+ preamble, resolving some font incompatibilities (#4).
+
+* Clarified in the docs that `breaksymbolsepright` is a *minimum*, rather
+ than exact, distance.
+
+
+## v1.2.1 (2016/09/02)
+
+* The package is now compatible with classes and packages that redefine
+ `\raggedright`.
+
+* Fixed a bug that introduced extra space in inline contexts such as
+ `\mintinline` when `breaklines=true` (#3).
+
+
+
+## v1.2 (2016/07/20)
+
+* Added support for line breaking when working with Pygments for syntax
+ highlighting.
+
+* The default `highlightcolor` is now defined with `rgb` for compatibility
+ with the `color` package. Fixed a bug in the conditional color definition
+ when `color` and `xcolor` are not loaded before `fvextra`.
+
+
+
+## v1.1 (2016/07/14)
+
+* The options `rulecolor` and `fillcolor` now accept color names directly;
+ using `\color{<color_name>}` is no longer necessary, though it still works.
+
+* Added `tabcolor` and `spacecolor` options for use with `showtabs` and
+ `showspaces`.
+
+* Added `highlightlines` option that takes a line number or range of line
+ numbers and highlights the corresponding lines. Added `highlightcolor`
+ option that controls hightlighting color.
+
+* `obeytabs` no longer causes lines to vanish when tabs are inside macro
+ arguments. Tabs and spaces inside a macro argument but otherwise at the
+ beginning of a line are expanded correctly. Tabs inside a macro argument
+ that are preceded by non-whitespace characters (not spaces or tabs) are
+ expanded based on the starting position of the run of whitespace in which
+ they occur.
+
+* The line breaking options `breakanywhere`, `breakbefore`, and `breakafter`
+ now work with multi-byte UTF-8 code points under pdfTeX with `inputenc`.
+ They were already fully functional under XeTeX and LuaTeX.
+
+* Added `curlyquotes` option, which essentially disables the `uquote` package.
+
+
+
+## v1.0 (2016/06/28)
+
+* Initial release.
diff --git a/macros/latex/contrib/fvextra/fvextra.dtx b/macros/latex/contrib/fvextra/fvextra.dtx
index ca5877ee0f..e4182b6f88 100644
--- a/macros/latex/contrib/fvextra/fvextra.dtx
+++ b/macros/latex/contrib/fvextra/fvextra.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2016-2023 by Geoffrey M. Poore <gpoore@gmail.com>
+% Copyright (C) 2016-2024 by Geoffrey M. Poore <gpoore@gmail.com>
% ---------------------------------------------------------------------------
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -26,7 +26,7 @@
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\ProvidesPackage{fvextra}
%<*package>
- [2023/11/28 v1.6.1 fvextra - extensions and patches for fancyvrb]
+ [2024/05/16 v1.7.0 fvextra - extensions and patches for fancyvrb]
%</package>
%
%<*driver>
@@ -66,23 +66,7 @@
\usepackage{tcolorbox}
\tcbuselibrary{listings}
-% strip leading percent symbols
-\def\tcbverbatimwrite#1{%
- \@bsphack
- \tcb@set@verbatim@finish%
- \tcb@allocate@tcb@out%
- \immediate\openout\tcb@out #1
- \tcb@verbatim@begin@hook%
- \let\do\@makeother\dospecials
- \tcb@verbatim@change@percent\catcode`\^^M\active \catcode`\^^I=12
- \def\verbatim@processline{%
- \immediate\write\tcb@out
- {\expandafter\@gobble\the\verbatim@line}}%
- \verbatim@start}%
-
-% fix redefinition by tcolorbox
-\def\verbatim@processline{%
- \expandafter\check@percent\the\verbatim@line\par}
+\tcbset{verbatim ignore percent}
\usepackage{hyperref}
@@ -223,22 +207,6 @@
\edef\hashchar{\string#}
-\newcommand{\changestext}{}
-\NewEnviron{changelog}[2]{%
- \g@addto@macro\changestext{\item[#1] (#2) \begin{itemize}}%
- \expandafter\g@addto@macro\expandafter\changestext\expandafter{\BODY}%
- \g@addto@macro\changestext{\end{itemize}}%
-}
-\newcommand{\PrintChangelog}{%
- %\addcontentsline{toc}{section}{Changelog}
- %\section*{Changelog}%
- \section{Changelog}%
- \label{sec:changelog}
- \begin{description}%
- \changestext
- \end{description}%
-}
-
%\EnableCrossrefs
%\CodelineIndex
%\RecordChanges
@@ -253,89 +221,6 @@
% \fi
%
%
-% \begin{changelog}{v1.6.1}{2023/11/28}
-% \item Fixed bug from v1.6 that caused a space following a comma to be lost (\#21).
-% \end{changelog}
-%
-% \begin{changelog}{v1.6}{2023/11/19}
-% \item Added new environment \Verb{VerbatimWrite}. This is similar to \Verb{fancyvrb}'s \Verb{VerbatimOut}, except that it allows for writing to a file multiple times and guarantees truly verbatim output via \Verb{\detokenize}.
-% \item Added new environment \Verb{VerbatimBuffer}. This stores the contents of an environment verbatim in a ``buffer,'' a sequence of numbered macros each of which contains one line of the environment. The ``buffered'' lines can then be looped over for further processing or later use.
-% \item Added new command \Verb{\VerbatimInsertBuffer}. This inserts an existing buffer created by \Verb{VerbatimBuffer} as a \Verb{Verbatim} environment.
-% \item Redefined visible space \Verb{\FancyVerbSpace} so that it now has the correct width. It had previously been redefined as \Verb{\textvisiblespace}, but that was slightly too narrrow.
-% \item Added option \Verb{spacebreak}. This determines the line break that is inserted around spaces when \Verb{showspaces=true} or \Verb{breakcollapsespaces=false}, by defining the new macro \Verb{\FancyVerbSpaceBreak}.
-% \item \Verb{breakbefore}, \Verb{breakafter}, and \Verb{breakanywhere} now produce plain breaks around spaces when \Verb{showspaces=true}, instead of breaks with a break symbol at the end of wrapped lines. \Verb{\FancyVerbBreakAnywhereBreak}, \Verb{\FancyVerbBreakBeforeBreak}, and \Verb{\FancyVerbBreakAfterBreak} are no longer inserted next to spaces. Instead, \Verb{\FancyVerbSpaceBreak} is inserted or (depending on options) \Verb{\FV@Space} is defined to include \Verb{\FancyVerbSpaceBreak}.
-% \item Added option \Verb{breakcollapsespaces}. When \Verb{true} (default), a line break within a run of regular spaces (\Verb{showspaces=false}) replaces all spaces with a single break, and the wrapped line after the break starts with a non-space character. When \Verb{false}, a line break within a run of regular spaces preserves all spaces, and the wrapped line after the break may start with one or more spaces. This causes regular spaces to behave exactly like the visible spaces produced with \Verb{showspaces}; both give identical line breaks, with the only difference being the appearance of spaces.
-% \item \Verb{breaklines} now automatically enables breaks after space characters when \Verb{showspaces=true}.
-% \item Reimplemented definition of \Verb{\FV@Space} to work with new space options.
-% \item Added documentation about how reimplemented commands handle the \Verb{codes} option differently compared to \fancyvrb\ (\#17).
-% \item Starred commands such as \Verb{\Verb*} now use both visible spaces and visible tabs instead of just visible spaces. This is more similar to the current behavior of \Verb{\verb*}, except that \Verb{\verb*} converts tabs into visible spaces (\#19).
-% \item The \Verb{mathescape} option now resets the ampersand \Verb{&} catcode (\#18).
-% \end{changelog}
-%
-%
-% \begin{changelog}{v1.5}{2022/11/30}
-% \item Added \cmd{\FancyVerbFormatInline} for customizing the formatting of inline verbatim, such as \cmd{\Verb}. This parallels \cmd{\FancyVerbFormatLine} and \cmd{\FancyVerbFormatText}.
-% \item Added line breaking option \Verb{breaknonspaceingroup}. When \cmd{commandchars} is used to allow macros within verbatim, this inserts breaks within groups \Verb{{...}}.
-% \item Added \cmd{\FVExtraUnexpandedReadStarOArgMArgBVArg} to support reimplementation of \cmd{\mintinline} for \pkg{minted}.
-% \item Added \cmd{VerbEnv} environment, which is an environment variant of \cmd{\Verb}. This supports reimplementation of \cmd{\mintinline} for \pkg{minted}.
-% \item \cmd{breakbefore} and \cmd{breakafter} now support the escaped comma \cmd{\,} (\#15).
-% \item Fixed unintended line breaks after hyphens under LuaTeX (\#14).
-% \item Added documentation on Pandoc compatibility (\#11).
-% \item Replaced \Verb{breakbeforegroup} with \Verb{breakbeforeinrun}, and replaced \Verb{breakaftergroup} with \Verb{breakafterinrun}. With the introduction of \Verb{breaknonspaceingroup}, ``\Verb{group}'' is now reserved for referring to TeX groups \Verb{{...}}.
-% \item Removed dependency on \Verb{ifthen} package.
-% \item \Verb{breakautoindent} now works correctly with Pygments output that treats leading whitespace as a separate token or as part of a token.
-% \end{changelog}
-%
-% \begin{changelog}{v1.4}{2019/02/04}
-% \item Reimplemented \texttt{\string\Verb}. It now works as expected inside other commands (with a few limitations), including in movable arguments, and is compatible with \texttt{hyperref} for things like PDF bookmarks. It now supports \texttt{breaklines} and relevant line-breaking options.
-% \item Reimplemented \texttt{\string\SaveVerb} and \texttt{\string\UseVerb} to be equivalent to the new \texttt{\string\Verb}. The new option \texttt{retokenize} allows saved verbatim material to be retokenized under new \texttt{commandchars} and \texttt{codes} when it is inserted with \texttt{\string\UseVerb}.
-% \item New command \texttt{\string\EscVerb} works like the reimplemented \texttt{\string\Verb}, except that special characters can be escaped with a backslash. It works inside other commands without any limitations, including in movable arguments, and is compatible with \texttt{hyperref} for things like PDF bookmarks.
-% \item Added \texttt{extra} option for switching between the reimplemented \texttt{\string\Verb}, \texttt{\string\SaveVerb}, \texttt{\string\UseVerb} and the original \texttt{fancyvrb} definitions. Reimplemented versions are used by default. This option will apply to any future reimplemented commands and environments.
-% \item New command \texttt{\string\fvinlineset} only applies options to commands related to typesetting verbatim inline, like \texttt{\string\Verb}, \texttt{\string\SaveVerb}, \texttt{\string\UseVerb}. It only works with commands that are defined or reimplemented by \texttt{fvextra}. It overrides options from \texttt{\string\fvset}.
-% \item Patched \texttt{fancyvrb} so that \texttt{\string\Verb} (either reimplemented version or original) can use characters like \texttt{\%} for delimiters when used outside any commands.
-% \item \texttt{obeytabs} now works with the \texttt{calc} package's redefined \texttt{\string\setcounter}. Since \texttt{minted} loads \texttt{calc}, this also fixes \texttt{minted} compatibility (\texttt{minted} \#221).
-% \item Added new option \texttt{fontencoding} (\texttt{minted} \#208).
-% \item \texttt{highlightlines} now works correctly with \texttt{frame} (\#7).
-% \end{changelog}
-%
-% \begin{changelog}{v1.3.1}{2017/07/08}
-% \item \texttt{beameroverlays} now works with \texttt{VerbatimOut}.
-% \end{changelog}
-%
-% \begin{changelog}{v1.3}{2017/07/08}
-% \item Added \texttt{beameroverlays} option, which enables \texttt{beamer} overlays using the \texttt{<} and \texttt{>} characters.
-% \item Added options \texttt{breakindentnchars}, \texttt{breaksymbolsepleftnchars} (alias \texttt{breaksymbolsepnchars}), \texttt{breaksymbolseprightnchars}, \texttt{breaksymbolindentleftnchars} (alias \texttt{breaksymbolindentnchars}), and \texttt{breaksymbolindentrightnchars}. These are identical to the pre-existing options without the \texttt{nchars} suffix, except that they allow indentation to be specified as an integer number of characters rather than as a dimension. As a result of these new options, \texttt{\string\settowidth} is no longer used in the preamble, resolving some font incompatibilities (\#4).
-% \item Clarified in the docs that \texttt{breaksymbolsepright} is a \emph{minimum}, rather than exact, distance.
-% \end{changelog}
-%
-%
-% \begin{changelog}{v1.2.1}{2016/09/02}
-% \item The package is now compatible with classes and packages that redefine \texttt{\string\raggedright}.
-% \item Fixed a bug that introduced extra space in inline contexts such as \texttt{\string\mintinline} when \texttt{breaklines=true} (\#3).
-% \end{changelog}
-%
-%
-% \begin{changelog}{v1.2}{2016/07/20}
-% \item Added support for line breaking when working with Pygments for syntax highlighting.
-% \item The default \texttt{highlightcolor} is now defined with \texttt{rgb} for compatibility with the \texttt{color} package. Fixed a bug in the conditional color definition when \texttt{color} and \texttt{xcolor} are not loaded before \texttt{fvextra}.
-% \end{changelog}
-%
-%
-% \begin{changelog}{v1.1}{2016/07/14}
-% \item The options \texttt{rulecolor} and \texttt{fillcolor} now accept color names directly; using \texttt{\string\color\{<color\_name>\}} is no longer necessary, though it still works.
-% \item Added \texttt{tabcolor} and \texttt{spacecolor} options for use with \texttt{showtabs} and \texttt{showspaces}.
-% \item Added \texttt{highlightlines} option that takes a line number or range of line numbers and highlights the corresponding lines. Added \texttt{highlightcolor} option that controls hightlighting color.
-% \item \texttt{obeytabs} no longer causes lines to vanish when tabs are inside macro arguments. Tabs and spaces inside a macro argument but otherwise at the beginning of a line are expanded correctly. Tabs inside a macro argument that are preceded by non-whitespace characters (not spaces or tabs) are expanded based on the starting position of the run of whitespace in which they occur.
-% \item The line breaking options \texttt{breakanywhere}, \texttt{breakbefore}, and \texttt{breakafter} now work with multi-byte UTF-8 code points under pdfTeX with \texttt{inputenc}. They were already fully functional under XeTeX and LuaTeX.
-% \item Added \texttt{curlyquotes} option, which essentially disables the \texttt{uquote} package.
-% \end{changelog}
-%
-%
-% \begin{changelog}{v1.0}{2016/06/28}
-% \item Initial release.
-% \end{changelog}
-%
-%
% \DoNotIndex{\newcommand,\newenvironment}
% \DoNotIndex{\#,\$,\%,\&,\@,\\,\{,\},\^,\_,\~,\ }
% \DoNotIndex{\@ne}
@@ -918,11 +803,11 @@
% Shortcut for setting |bufferlengthname| and |bufferlinename| simultaneously, using the same root name. This sets |bufferlengthname| to |<buffername>length| and |bufferlinename| to |<buffername>line|.
%
% \item[globalbuffer (bool) (false)]
-% This determines whether buffer line macros are defined globally, that is, whether they are accessible after the end of the |VerbatimBuffer| environment. It does not affect any |afterbuffer| macro, since that is invoked inside the environment. |globalbuffer| also determines whether the buffer length counter contains the buffer length or is reset to zero after the end of the |VerbatimBuffer| environment.
+% This determines whether buffer line macros are defined globally, that is, whether they are accessible after the end of the |VerbatimBuffer| environment. If the line macros are defined globally, then the buffer length counter is also increased appropriately outside the environment. |globalbuffer| does not affect any |afterbuffer| macro, since that is invoked inside the environment.
%
% When buffered lines are used immediately, consider using |afterbuffer| instead of |globalbuffer|. When buffered lines must be used later in a document, consider using |globalbuffer| with custom (and perhaps unique) |bufferlinename| and |bufferlengthname|.
%
-% When |globalbuffer=false|, at the end of the environment all buffer line macros based on the current |bufferlinename| are ``deleted'' (|\let| to an undefined macro), and the buffer length counter from |bufferlengthname| is set to zero. This means that a |VerbatimBuffer| environment with |globalbuffer=false| will clear the buffer created by any previous |VerbatimBuffer| that had |globalbuffer=true| and shared the same |bufferlinename|.
+% When |globalbuffer=true|, |VerbatimBuffer| environments with the same buffer name will append to a single buffer, so that it ultimately contains the concatenated contents of all environments. A |VerbatimBuffer| environment with |globalbuffer=false| will append to the buffer created by any previous |VerbatimBuffer| that had |globalbuffer=true| and shared the same buffer name. Any |afterbuffer| macro will have access to a buffer containing the concatenated data. At the very end of the environment with |globalbuffer=false|, after any |afterbuffer|, this appended content will be removed. All buffer line macros (from |bufferlinename|) that were created by that environment are ``deleted'' (|\let| to an undefined macro), and the buffer length counter (from |bufferlengthname|) is reduced proportionally.
% \end{optionlist}
%
%
@@ -936,6 +821,12 @@
% |\VerbatimInsertBuffer| is not implemented using the typical \fancyvrb\ command and environment implementation styles, so it is not compatible with |\RecustomVerbatimCommand| or |\RecustomVerbatimEnvironment|.
%
%
+% \subsection{\cmd{\VerbatimClearBuffer}}
+% \DescribeMacro{\VerbatimClearBuffer\oarg{options}}
+%
+% Clear an existing buffer created with \cmd{VerbatimBuffer}. |\global\let| all buffer line macros to an undefined macro and set the buffer length counter to zero.
+%
+%
%
%
% \section{Line breaking}
@@ -1503,8 +1394,6 @@
%
%
%
-% \PrintChangelog
-%
% \StopEventually{\PrintIndex}
%
% \section{Implementation}
@@ -2219,12 +2108,16 @@
% \begin{macrocode}
\def\FVExtraUnexpandedReadStarOArgMArgBVArg#1#{%
\FV@UnexpandedReadStarOArgMArgBVArg@i{#1}}
-\def\FV@UnexpandedReadStarOArgMArgBVArg@i#1#2#3{%
- \FVExtraAlwaysUnexpanded{\FVExtraUnexpandedReadStarOArgMArgBVArg#1{#2}{#3}}}
+\def\FV@UnexpandedReadStarOArgMArgBVArg@i#1#2{%
+ \FV@UnexpandedReadStarOArgMArgBVArg@ii{#1}{#2}}
+\def\FV@UnexpandedReadStarOArgMArgBVArg@ii#1#2#3#{%
+ \FV@UnexpandedReadStarOArgMArgBVArg@iii{#1}{#2}{#3}}
+\def\FV@UnexpandedReadStarOArgMArgBVArg@iii#1#2#3#4{%
+ \FVExtraAlwaysUnexpanded{\FVExtraUnexpandedReadStarOArgMArgBVArg#1{#2}#3{#4}}}
\FVExtrapdfstringdefDisableCommands{%
\makeatletter
- \def\FV@UnexpandedReadStarOArgMArgBVArg@i#1#2#3{%
- \FVExtraPDFStringVerbatimDetokenize{#3}}%
+ \def\FV@UnexpandedReadStarOArgMArgBVArg@iii#1#2#3#4{%
+ \FVExtraPDFStringVerbatimDetokenize{#4}}%
\makeatother}
% \end{macrocode}
% \end{macro}
@@ -4038,7 +3931,7 @@
% \begin{macro}{VerbatimBuffer}
% The environment implementation follows standard \fancyvrb\ environment style.
%
-% A special buffer counter is used to track line numbers while avoiding incrementing the regular counter that is used for typeset code. Some macros do nothing with the default |bufferer|, but are needed to enable \fancyvrb\ options when a custom |bufferer| is used in conjuction with optional environment arguments. These include |\FancyVerbDefineActive| and |\FancyVerbFormatCom|. Since counters are global, the location of |\setcounter| at the end of the environment relative to |\begingroup...\endgroup| is not important.
+% A special buffer counter is used to track line numbers while avoiding incrementing the regular counter that is used for typeset code. Some macros do nothing with the default |bufferer|, but are needed to enable \fancyvrb\ options when a custom |bufferer| is used in conjuction with optional environment arguments. These include |\FancyVerbDefineActive| and |\FancyVerbFormatCom|. Since counters are global, the exact location of the |\setcounter| commands at the end of the environment relative to |\begingroup...\endgroup| is not important.
% \begin{macrocode}
\newcounter{FancyVerbBufferLine}
\newcounter{FV@oldbufferlength}
@@ -4054,17 +3947,19 @@
\def\FVB@VerbatimBuffer{%
\@bsphack
\begingroup
- \setcounter{FancyVerbBufferLine}{0}%
- \let\c@FancyVerbLine\c@FancyVerbBufferLine
- \setcounter{FancyVerbBufferIndex}{0}%
- \setcounter{FV@oldbufferlength}{\expandafter\value\expandafter{\FV@bufferlengthname}}%
- \expandafter\setcounter\expandafter{\FV@bufferlengthname}{0}%
\FV@UseKeyValues
+ \setcounter{FancyVerbBufferLine}%
+ {\expandafter\value\expandafter{\FV@bufferlengthname}}%
+ \let\c@FancyVerbLine\c@FancyVerbBufferLine
+ \setcounter{FancyVerbBufferIndex}%
+ {\expandafter\value\expandafter{\FV@bufferlengthname}}%
\ifbool{FV@globalbuffer}%
{\global\booltrue{FV@globalbuffer@tmp}}%
- {\global\boolfalse{FV@globalbuffer@tmp}}%
- \global\let\FV@bufferlengthname@tmp\FV@bufferlengthname
- \global\let\FancyVerbBufferLineName@tmp\FancyVerbBufferLineName
+ {\global\boolfalse{FV@globalbuffer@tmp}%
+ \setcounter{FV@oldbufferlength}%
+ {\expandafter\value\expandafter{\FV@bufferlengthname}}%
+ \global\let\FV@bufferlengthname@tmp\FV@bufferlengthname
+ \global\let\FancyVerbBufferLineName@tmp\FancyVerbBufferLineName}%
\global\let\FV@afterbuffer@tmp\FV@afterbuffer
\FV@DefineWhiteSpace
\def\FV@ProcessLine{\stepcounter{FancyVerbBufferIndex}\FV@Bufferer}%
@@ -4074,28 +3969,27 @@
\FancyVerbFormatCom
\FV@Scan}
\def\FVE@VerbatimBuffer{%
- \endgroup
- \@esphack
- \expandafter\setcounter\expandafter{\FV@bufferlengthname@tmp}%
+ \expandafter\setcounter\expandafter{\FV@bufferlengthname}%
{\value{FancyVerbBufferIndex}}%
\setcounter{FancyVerbBufferIndex}{0}%
+ \endgroup
+ \@esphack
\begingroup
\FV@afterbuffer@tmp
+ \global\let\FV@afterbuffer@tmp\relax
\endgroup
\ifbool{FV@globalbuffer@tmp}%
{}%
- {\ifnum\value{FV@oldbufferlength}>%
- \expandafter\value\expandafter{\FV@bufferlengthname@tmp}\relax
- \expandafter\setcounter\expandafter{\FV@bufferlengthname@tmp}%
- {\value{FV@oldbufferlength}}%
- \fi
- \loop\unless\ifnum\expandafter\value\expandafter{\FV@bufferlengthname@tmp}=0\relax
+ {\loop\unless\ifnum\expandafter\value\expandafter{\FV@bufferlengthname@tmp}=
+ \value{FV@oldbufferlength}\relax
\expandafter\global\expandafter\let\csname
\FancyVerbBufferLineName@tmp
\expandafter\arabic\expandafter{\FV@bufferlengthname@tmp}%
\endcsname\FV@Undefined
\expandafter\addtocounter\expandafter{\FV@bufferlengthname@tmp}{-1}%
- \repeat}}
+ \repeat
+ \global\let\FV@bufferlengthname@tmp\relax
+ \global\let\FancyVerbBufferLineName@tmp\relax}}
\def\endVerbatimBuffer{\FVE@VerbatimBuffer}
% \end{macrocode}
% \end{macro}
@@ -4129,7 +4023,7 @@
\global\let\FV@EnvironName\relax
\let\next\relax
\else
- \ifcsname \FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}\endcsname
+ \ifcsname\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}\endcsname
\expandafter\let\expandafter\FV@Line@Buffer
\csname\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}\endcsname
\expandafter\VerbatimInsertBuffer@def@FV@Line\expandafter{\FV@Line@Buffer}%
@@ -4148,6 +4042,30 @@
\FVB@Verbatim
\FVE@Verbatim
\setcounter{FancyVerbBufferIndex}{0}%
+ \endgroup
+ \@doendpe}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{\cmd{\VerbatimClearBuffer}}
+% \begin{macro}{\VerbatimClearBuffer}
+% Clear an existing buffer.
+% \begin{macrocode}
+\newcommand{\VerbatimClearBuffer}[1][]{%
+ \begingroup
+ \def\FV@KeyValues{#1}%
+ \FV@UseKeyValues
+ \setcounter{FancyVerbBufferIndex}%
+ {\expandafter\value\expandafter{\FV@bufferlengthname}}%
+ \expandafter\setcounter\expandafter{\FV@bufferlengthname}{0}%
+ \loop\unless\ifnum\value{FancyVerbBufferIndex}<1\relax
+ \expandafter\global\expandafter\let
+ \csname\FancyVerbBufferLineName\arabic{FancyVerbBufferIndex}\endcsname
+ \FV@Undefined
+ \addtocounter{FancyVerbBufferIndex}{-1}%
+ \repeat
+ \setcounter{FancyVerbBufferIndex}{0}%
\endgroup}
% \end{macrocode}
% \end{macro}
diff --git a/macros/latex/contrib/fvextra/fvextra.ins b/macros/latex/contrib/fvextra/fvextra.ins
index f36b3c4715..17b718fa06 100644
--- a/macros/latex/contrib/fvextra/fvextra.ins
+++ b/macros/latex/contrib/fvextra/fvextra.ins
@@ -1,4 +1,4 @@
-%% Copyright (C) 2016-2022 by Geoffrey M. Poore <gpoore@gmail.com>
+%% Copyright (C) 2016-2024 by Geoffrey M. Poore <gpoore@gmail.com>
%% --------------------------------------------------------------------------
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -26,7 +26,7 @@
This is a generated file.
-Copyright (C) 2016-2022 by Geoffrey M. Poore <gpoore@gmail.com>
+Copyright (C) 2016-2024 by Geoffrey M. Poore <gpoore@gmail.com>
--------------------------------------------------------------------------
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/fvextra/fvextra.pdf b/macros/latex/contrib/fvextra/fvextra.pdf
index 9e1182bd63..b38e213561 100644
--- a/macros/latex/contrib/fvextra/fvextra.pdf
+++ b/macros/latex/contrib/fvextra/fvextra.pdf
Binary files differ
diff --git a/macros/latex/contrib/latex2pydata/CHANGELOG.md b/macros/latex/contrib/latex2pydata/CHANGELOG.md
new file mode 100644
index 0000000000..f079e3c167
--- /dev/null
+++ b/macros/latex/contrib/latex2pydata/CHANGELOG.md
@@ -0,0 +1,39 @@
+# Changelog — latex2pydata LaTeX package
+
+
+## v0.2.0 (2024-05-16)
+
+* Operations on file handles, file names, and buffers are now global.
+ This prevents errors due to groups.
+
+* `\pydatasetfilehandle`, `\pydatareleasefilehandle`, `\pydatasetfilename`,
+ and `\pydataclosefilename` are redesigned to deal with cases where the same
+ file is opened, written, closed, and then later reopened and overwritten.
+ `\pydatasetfilename` now reuses file handles when the same file is
+ opened and closed multiple times. `\pydataclosefilename` no longer
+ attempts to close files `\AtEndDocument`, since that can interfere with
+ files that need to remain open as long as possible.
+
+* Added new commands `\pydatawritekeyedefvalue` and
+ `\pydatabufferkeyedefvalue`. These `\edef` the value before interpreting
+ it as verbatim text.
+
+* Simplified implementation of `pydatabuffermlvalue` environment, based on
+ latest `fvextra`.
+
+* Added error messages for unknown file handles and file names.
+
+* Added additional state and data checks in `\pydatawritebuffer`.
+
+* Added documentation for `\pydatawritemlvaluestart`,
+ `\pydatawritemlvalueline`, `\pydatawritemlvalueend`,
+ `\pydatabuffermlvaluestart`, `\pydatabuffermlvalueline`,
+ `\pydatabuffermlvalueend`.
+
+* Updated `tcblisting` usage in docs for compatibility with the latest
+ `tcolorbox`.
+
+
+## v0.1.0 (2023-11-19)
+
+* Initial release.
diff --git a/macros/latex/contrib/latex2pydata/README b/macros/latex/contrib/latex2pydata/README
index 678217ebc7..4f7751d62b 100644
--- a/macros/latex/contrib/latex2pydata/README
+++ b/macros/latex/contrib/latex2pydata/README
@@ -2,14 +2,15 @@ latex2pydata - write data to file in Python literal format
Author: Geoffrey M. Poore
License: LPPL v1.3c or later
-Development: https://github.com/gpoore/latex2pydata_tex
+Development: https://github.com/gpoore/latex2pydata/tree/main/latex
latex2pydata is a LaTeX package for writing data to file using Python literal
syntax (https://docs.python.org/3/reference/lexical_analysis.html#literals).
The data may be loaded safely in Python using the ast.literal_eval() function
(https://docs.python.org/3/library/ast.html#ast.literal_eval) or the
-latex2pydata Python package https://github.com/gpoore/latex2pydata_py).
+latex2pydata Python package
+https://github.com/gpoore/latex2pydata/tree/main/python).
The top-level data structure can be configured as either a Python dict or a
list of dicts. Within dicts, all keys and values are written to file as
@@ -20,10 +21,10 @@ data types such as dicts, lists, sets, bools, and numbers.
The data is suitable for direct loading in Python with ast.literal_eval().
It is also possible to load data using the latex2pydata Python package
-(https://github.com/gpoore/latex2pydata_py). This functions as a wrapper for
-ast.literal_eval(). The package requires all keys to match the regex
-"[A-Za-z_][0-9A-Za-z_]*". Periods in keys are interpreted as key paths and
-indicate sub-dicts. For example, the key path "main.sub" represents a key
+(https://github.com/gpoore/latex2pydata/tree/main/python). This functions as
+a wrapper for ast.literal_eval(). The package requires all keys to match the
+regex "[A-Za-z_][0-9A-Za-z_]*". Periods in keys are interpreted as key paths
+and indicate sub-dicts. For example, the key path "main.sub" represents a key
"main" in the main dict that maps to a sub-dict containing a key "sub". The
Python package supports the schema features provided by the LaTeX package, so
that data types other than dicts of strings are possible.
diff --git a/macros/latex/contrib/latex2pydata/latex2pydata.dtx b/macros/latex/contrib/latex2pydata/latex2pydata.dtx
index c49c732037..a9d1751557 100644
--- a/macros/latex/contrib/latex2pydata/latex2pydata.dtx
+++ b/macros/latex/contrib/latex2pydata/latex2pydata.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2023 by Geoffrey M. Poore <gpoore@gmail.com>
+% Copyright (C) 2023-2024 by Geoffrey M. Poore <gpoore@gmail.com>
% ---------------------------------------------------------------------------
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
@@ -26,7 +26,7 @@
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\ProvidesPackage{latex2pydata}
%<*package>
- [2023/11/19 v0.1 latex2pydata - write data to file in Python literal format]
+ [2024/05/16 v0.2.0 latex2pydata - write data to file in Python literal format]
%</package>
%
%<*driver>
@@ -67,23 +67,7 @@
\usepackage{tcolorbox}
\tcbuselibrary{listings}
-% strip leading percent symbols
-\def\tcbverbatimwrite#1{%
- \@bsphack
- \tcb@set@verbatim@finish%
- \tcb@allocate@tcb@out%
- \immediate\openout\tcb@out #1
- \tcb@verbatim@begin@hook%
- \let\do\@makeother\dospecials
- \tcb@verbatim@change@percent\catcode`\^^M\active \catcode`\^^I=12
- \def\verbatim@processline{%
- \immediate\write\tcb@out
- {\expandafter\@gobble\the\verbatim@line}}%
- \verbatim@start}%
-
-% fix redefinition by tcolorbox
-\def\verbatim@processline{%
- \expandafter\check@percent\the\verbatim@line\par}
+\tcbset{verbatim ignore percent}
\usepackage{hyperref}
\hypersetup{
@@ -248,27 +232,11 @@
\edef\hashchar{\string#}
-\newcommand{\changestext}{}
-\NewEnviron{changelog}[2]{%
- \g@addto@macro\changestext{\item[#1] (#2) \begin{itemize}}%
- \expandafter\g@addto@macro\expandafter\changestext\expandafter{\BODY}%
- \g@addto@macro\changestext{\end{itemize}}%
-}
-\newcommand{\PrintChangelog}{%
- %\addcontentsline{toc}{section}{Changelog}
- %\section*{Changelog}%
- \section{Changelog}
- \label{sec:changelog}
- \begin{description}%
- \changestext
- \end{description}%
-}
-
\begingroup
\catcode`\#=12\relax
\gdef\astliteval{\href{https://docs.python.org/3/library/ast.html#ast.literal_eval}{\code{ast.literal_eval()}}}
\endgroup
-\def\pydatapy{\href{https://github.com/gpoore/latex2pydata_py}{\pkg{latex2pydata} Python package}}
+\def\pydatapy{\href{https://github.com/gpoore/latex2pydata/tree/main/python}{\pkg{latex2pydata} Python package}}
\def\fvextra{\href{https://github.com/gpoore/fvextra/}{\pkg{fvextra}}}
\def\fancyvrb{\href{https://ctan.org/pkg/fancyvrb}{\pkg{fancyvrb}}}
@@ -286,11 +254,6 @@
% \fi
%
%
-% \begin{changelog}{v0.1}{2023-11-19}
-% \item Initial release.
-% \end{changelog}
-%
-%
% \DoNotIndex{\newcommand,\newenvironment}
% \DoNotIndex{\#,\$,\%,\&,\@,\\,\{,\},\^,\_,\~,\ }
% \DoNotIndex{\@ne}
@@ -303,7 +266,7 @@
% \GetFileInfo{latex2pydata.dtx}
%
% \title{\vspace{-0.5in}The \pydata\ package}
-% \author{Geoffrey M.\ Poore \\ \href{mailto://gpoore@gmail.com}{\texttt{gpoore@gmail.com}} \\ \href{https://github.com/gpoore/latex2pydata_tex}{\Verb{github.com/gpoore/latex2pydata_tex}}}
+% \author{Geoffrey M.\ Poore \\ \href{mailto://gpoore@gmail.com}{\texttt{gpoore@gmail.com}} \\ \href{https://github.com/gpoore/latex2pydata/tree/main/latex}{\Verb{github.com/gpoore/latex2pydata/tree/main/latex}}}
% \date{\fileversion~from \filedate}
%
% \maketitle
@@ -385,6 +348,8 @@
%
% \subsection{File handling}
%
+% All file handling commands operate globally (|\global|, |\gdef|, etc.).
+%
% \DescMacro{\pydatasetfilehandle\marg{filehandle}}
% Configure writing to file using an existing file handle created with |\newwrite|. This allows manual management of the file handle. For example:
% \begin{Verbatim}[gobble=2]
@@ -398,10 +363,12 @@
%
% To switch from one file handle to another, simply use |\pydatasetfilehandle| with the new file handle. When the file handle is no longer in use, |\pydatareleasefilehandle| is recommended (but not required) to remove references to the file handle and perform basic checking for incomplete or malformed data written to file.
%
+% |\pydatasetfilehandle| sets the file handle globally.
+%
% \DescMacro{\pydatareleasefilehandle\marg{filehandle}}
% When a file handle is no longer needed, remove references to it. Also perform basic checking for incomplete or malformed data written to file.
%
-% This should only be used once per file handle, after all data has been written. It is not needed when switching from one file handle to another when both files remain open; in that case, only |\pydatasetfilehandle| is needed.
+% This should only be used once per opened file, after all data has been written, just before the file is closed. It is not needed when switching from one file handle to another when both files remain open; in that case, only |\pydatasetfilehandle| is needed. If |\pydatareleasefilehandle| is used before all data is written, or it is used multiple times while writing to the same file, then it is no longer possible to detect incomplete or malformed data.
%
% \DescMacro{\pydatasetfilename\marg{filename}}
% Configure a file for writing based on filename, opening the file if necessary. For example:
@@ -412,6 +379,8 @@
%
% To switch from one file to another, simply use |\pydatasetfilename| with the new filename. When the file is no longer in use, |\pydataclosefilename| is recommended.
%
+% |\pydatasetfilename| sets the filename globally.
+%
% \DescMacro{\pydataclosefilename\marg{filename}}
% Close a file previously opened with |\pydatasetfilename|. Also perform basic checking for incomplete or malformed data written to file.
%
@@ -465,7 +434,13 @@
% \subsection{Writing keys and values}
% All keys must be single-line strings of text without a newline. Both single-line and multi-line values are supported. Keys and values are written to the file previously configured via |\pydatasetfilehandle| or |\pydatasetfilename|.
%
-% The \pydata\ commands read keys and values verbatim. When these commands are used inside other commands, they use macros from \fvextra\ to attempt to interpret their arguments as verbatim. However, there are limitations in this case because the arguments are already tokenized:
+% Commands for writing keys and values may read these keys and values in one of two ways.
+% \begin{itemize}
+% \item Commands whose names contain |key| or |value| read these arguments verbatim, as described below.
+% \item Commands whose names contain |edefkey| or |edefvalue| read these arguments normally, then expand the arguments via |\edef|, and finally interpret the result as verbatim text.
+% \end{itemize}
+%
+% The \pydata\ commands that read keys and values verbatim have some limitations. When these commands are used inside other commands, they use macros from \fvextra\ to attempt to interpret their arguments as verbatim. However, there are limitations in this case because the arguments are already tokenized:
% \begin{itemize}
% \item |#| and |%| cannot be used.
% \item Curly braces are only allowed in pairs.
@@ -473,7 +448,7 @@
% \item Be careful with backslashes. A backslash that is followed by one or more ASCII letters will cause a following space to be lost, if the space is not immediately followed by an ASCII letter.
% \item A single |^| is fine, but |^^| will serve as an escape sequence for an ASCII command character.
% \end{itemize}
-% When the \pydata\ commands are used inside other commands that pass their arguments to the \pydata\ commands, it will usually be best to avoid these limitations by defining the other commands to read their arguments verbatim. Consider using the \href{https://ctan.org/pkg/xparse}{\pkg{xparse}} package. It is also possible to use |\FVExtraReadVArg| from \fvextra; for an example, see the implementation of |\pydatawritekey|.
+% When the \pydata\ commands are used inside other commands that pass their arguments to the \pydata\ commands, it may be best to avoid these limitations by defining the other commands to read their arguments verbatim. Consider using the \href{https://ctan.org/pkg/xparse}{\pkg{xparse}} package. It is also possible to use |\FVExtraReadVArg| from \fvextra; for an example, see the implementation of |\pydatawritekey|.
%
% Because the \pydata\ commands treat keys and values as verbatim, any desired macro expansion must be performed before passing the keys and values to the \pydata\ commands.
%
@@ -486,11 +461,22 @@
% \DescMacro{\pydatawritekeyvalue\marg{key}\marg{value}}
% Write a key and a single-line value to file simultaneously.
%
+% \DescMacro{\pydatawritekeyedefvalue\marg{key}\marg{value}}
+% Write a key and a single-line value to file simultaneously. The value is expanded via |\edef| before being interpreted as verbatim text and then written.
+%
% \DescEnv{pydatawritemlvalue}
% Write a multi-line value to file.
%
% This environment uses \fvextra\ and \fancyvrb\ internally to capture the environment contents verbatim. If a new environment is defined as a wrapper for |pydatawritemlvalue|, then |\VerbatimEnvironment| must be used at the beginning of the new environment definition. This configures \fancyvrb\ to find the end of the new environment correctly.
%
+% \DescMacro{\pydatawritemlvaluestart}
+%
+% \DescMacro{\pydatawritemlvalueline\marg{line}}
+%
+% \DescMacro{\pydatawritemlvalueend}
+% These commands allow writing a multi-line value to file one line at a time. \meta{line} is interpreted verbatim.
+%
+%
%
% \subsection{Buffer}
%
@@ -498,6 +484,8 @@
%
% A buffer consists of a sequence of macros of the form |\|\meta{buffername}|line|\meta{n}, where each line of data corresponds to a macro and \meta{n} is an integer greater than or equal to one (one-based indexing). The length of the buffer is stored in the counter \meta{buffername}|length|. Buffers are limited to containing comma-separated key-value data, without any opening or closing dict delimiters |{}|.
%
+% All buffer commands that set the buffer or modify the buffer operate globally (|\global|, |\gdef|, etc.).
+%
%
% \subsubsection{Creating and deleting buffers}
%
@@ -538,15 +526,23 @@
% \DescMacro{\pydatabufferkeyvalue\marg{key}\marg{value}}
% Append a key and a single-line value to the buffer simultaneously.
%
+% \DescMacro{\pydatabufferkeyedefvalue\marg{key}\marg{value}}
+% Append a key and a single-line value to the buffer simultaneously. The value is expanded via |\edef| before being interpreted as verbatim text and then buffered.
+%
% \DescEnv{pydatabuffermlvalue}
% Append a multi-line value to the buffer.
%
% This environment uses \fvextra\ and \fancyvrb\ internally to capture the environment contents verbatim. If a new environment is defined as a wrapper for |pydatabuffermlvalue|, then |\VerbatimEnvironment| must be used at the beginning of the new environment definition. This configures \fancyvrb\ to find the end of the new environment correctly.
%
+% \DescMacro{\pydatabuffermlvaluestart}
+%
+% \DescMacro{\pydatabuffermlvalueline\marg{line}}
+%
+% \DescMacro{\pydatabuffermlvalueend}
+% These commands allow buffering a multi-line value one line at a time. \meta{line} is interpreted verbatim.
%
%
%
-% \PrintChangelog
%
% \StopEventually{\PrintIndex}
%
@@ -582,7 +578,7 @@
% \begin{macrocode}
\RequirePackage{etoolbox}
\RequirePackage{fvextra}
-\IfPackageAtLeastTF{fvextra}{2023/11/19}%
+\IfPackageAtLeastTF{fvextra}{2024/05/16}%
{}{\pydata@error{package fvextra is outdated; upgrade to the latest version}}
\RequirePackage{pdftexcmds}
% \end{macrocode}
@@ -599,55 +595,83 @@
% \end{macro}
%
%
+% \begin{macro}{\pydata@newglobalbool, \pydata@provideglobalbool}
+% Variants of \pkg{etoolbox}'s |\newbool| and |\providebool| that create bools whose state is always global. When these global bools are used with |\setbool|, |\booltrue|, or |\boolfalse|, the global state is updated regardless of whether the command is prefixed with |\global|. These use a global variant of \LaTeX's |\newif| internally.
+% \begin{macrocode}
+\def\pydata@gnewif#1{%
+ \count@\escapechar
+ \escapechar\m@ne
+ \global\let#1\iffalse
+ \pydata@gif#1\iftrue
+ \pydata@gif#1\iffalse
+ \escapechar\count@}
+\def\pydata@gif#1#2{%
+ \expandafter\gdef\csname
+ \expandafter\@gobbletwo\string#1\expandafter\@gobbletwo\string#2\endcsname
+ {\global\let#1#2}}
+\newrobustcmd*{\pydata@newglobalbool}[1]{%
+ \begingroup
+ \let\newif\pydata@gnewif
+ \newbool{#1}%
+ \endgroup}
+\newrobustcmd*{\pydata@provideglobalbool}[1]{%
+ \begingroup
+ \let\newif\pydata@gnewif
+ \providebool{#1}%
+ \endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+%
%
% \subsection{State}
%
-% Track state of writing data and of buffering data.
+% Track state of writing data and of buffering data. Notice that bools for tracking state are a special, custom variant that is always global.
%
% \begin{macro}{pydata@canwrite}
% Whether data can be written. False if a file handle has not been set or if the top-level data structure has been closed.
% \begin{macrocode}
-\newbool{pydata@canwrite}
+\pydata@newglobalbool{pydata@canwrite}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{pydata@hasmeta}
% Whether metadata was written. Metadata is a \code{dict[str, str | dict[str, str]]}.
% \begin{macrocode}
-\newbool{pydata@hasmeta}
+\pydata@newglobalbool{pydata@hasmeta}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{pydata@topexists}
% Whether the top-level data structure has been configured. The top-level data structure can be a list or a dict. The overall data structure must be either |dict[str, str]| or |list[dict[str, str]]|.
% \begin{macrocode}
-\newbool{pydata@topexists}
+\pydata@newglobalbool{pydata@topexists}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{pydata@topislist}
% Whether the top-level data structure is a list.
% \begin{macrocode}
-\newbool{pydata@topislist}
+\pydata@newglobalbool{pydata@topislist}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{pydata@indict}
% Whether a dict has been opened.
% \begin{macrocode}
-\newbool{pydata@indict}
+\pydata@newglobalbool{pydata@indict}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{pydata@haskey}
% Whether a key has been written (waiting for a value).
% \begin{macrocode}
-\newbool{pydata@haskey}
+\pydata@newglobalbool{pydata@haskey}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\pydata@fhstartstate, \pydata@fhstopstate}
-% Start and stop state tracking for a file handle (|\newwrite|). Each file handle has its own set of state bools of the form |pydata@|\meta{boolname}|@|\meta{fh}. When a file handle is in use, the values of these bools are copied into the |pydata@|\meta{boolname} bools; when the file handle is no longer in use, |pydata@|\meta{boolname} values are copied back into |pydata@|\meta{boolname}|@|\meta{fh}.
+% \begin{macro}{\pydata@fhstartstate, \pydata@fhstopstate, \pydata@fhresetstate}
+% Start and stop state tracking for a file handle (|\newwrite|), or reset state after writing is complete. Each file handle has its own set of state bools of the form |pydata@|\meta{boolname}|@|\meta{fh}. When a file handle is in use, the values of these bools are copied into the |pydata@|\meta{boolname} bools; when the file handle is no longer in use, |pydata@|\meta{boolname} values are copied back into |pydata@|\meta{boolname}|@|\meta{fh}.
% \begin{macrocode}
\def\pydata@fhstartstate#1{%
\expandafter\pydata@fhstartstate@i\expandafter{\number#1}}
@@ -659,10 +683,13 @@
\booltrue{pydata@fhnewstate}%
\fi
\def\do##1{%
- \providebool{pydata@##1@#1}%
+ \pydata@provideglobalbool{pydata@##1@#1}%
\ifbool{pydata@##1@#1}{\booltrue{pydata@##1}}{\boolfalse{pydata@##1}}}%
\docsvlist{canwrite, hasmeta, topexists, topislist, indict, haskey}%
- \ifbool{pydata@fhnewstate}{\booltrue{pydata@canwrite}{}}{}}
+ \ifbool{pydata@fhnewstate}%
+ {\booltrue{pydata@canwrite}}{}%
+ \ifbool{pydata@fhisreleased@#1}%
+ {\boolfalse{pydata@fhisreleased@#1}\booltrue{pydata@canwrite}}{}}
\def\pydata@fhstopstate#1{%
\expandafter\pydata@fhstopstate@i\expandafter{\number#1}}
\def\pydata@fhstopstate@i#1{%
@@ -672,6 +699,12 @@
\boolfalse{pydata@##1}}%
\docsvlist{canwrite, hasmeta, topexists, topislist, indict, haskey}%
\fi}
+\def\pydata@fhresetstate#1{%
+ \expandafter\pydata@fhresetstate@i\expandafter{\number#1}}
+\def\pydata@fhresetstate@i#1{%
+ \def\do##1{%
+ \boolfalse{pydata@##1@#1}}%
+ \docsvlist{canwrite, hasmeta, topexists, topislist, indict, haskey}}
% \end{macrocode}
% \end{macro}
%
@@ -680,7 +713,7 @@
%
% If multiple buffers are in use, all buffers use the same |pydata@bufferhaskey|. Inconsistent state is avoided by requiring that |\pydatasetbuffername| can only be invoked when |pydata@bufferhaskey| is false.
% \begin{macrocode}
-\newbool{pydata@bufferhaskey}
+\pydata@newglobalbool{pydata@bufferhaskey}
% \end{macrocode}
% \end{macro}
%
@@ -709,49 +742,68 @@
% Set and release file handle. Release isn't strictly required, but it is necessary for basic data checking on the \LaTeX\ side.
% \begin{macrocode}
\def\pydatasetfilehandle#1{%
+ \if\relax\detokenize{#1}\relax
+ \pydata@error{Missing file handle}%
+ \fi
\ifx\pydata@filehandle\relax
+ \else\ifx\pydata@filehandle#1\relax
\else
\pydata@fhstopstate{\pydata@filehandle}%
- \fi
- \let\pydata@filehandle#1\relax
- \pydata@fhstartstate{#1}}
+ \fi\fi
+ \ifx\pydata@filehandle#1\relax
+ \else
+ \global\let\pydata@filehandle#1\relax
+ \pydata@provideglobalbool{pydata@fhisreleased@\number#1}%
+ \pydata@fhstartstate{#1}%
+ \fi}
\def\pydatareleasefilehandle#1{%
- \ifx\pydata@filehandle\relax
+ \ifcsname ifpydata@canwrite@\number#1\endcsname
\else
- \ifx\pydata@filehandle#1\relax
- \pydata@fhstopstate{#1}%
- \let\pydata@filehandle\relax
- \fi
+ \pydata@error{Unknown file handle #1}%
\fi
- \ifcsname ifpydata@canwrite@\number#1\endcsname
- \ifbool{pydata@canwrite@\number#1}%
- {\ifbool{pydata@haskey@\number#1}%
- {\pydata@error{Incomplete data: key is waiting for value}}{}%
- \ifbool{pydata@indict@\number#1}%
- {\pydata@error{Incomplete data: dict is not closed}}{}%
- \ifbool{pydata@topislist@\number#1}%
- {\pydata@error{Incomplete data: list is not closed}}{}}%
- {}%
- \fi}
+ \ifx\pydata@filehandle#1\relax
+ \pydata@fhstopstate{#1}%
+ \global\let\pydata@filehandle\relax
+ \fi
+ \ifbool{pydata@canwrite@\number#1}%
+ {\ifbool{pydata@haskey@\number#1}%
+ {\pydata@error{Incomplete data: key is waiting for value}}{}%
+ \ifbool{pydata@indict@\number#1}%
+ {\pydata@error{Incomplete data: dict is not closed}}{}%
+ \ifbool{pydata@topislist@\number#1}%
+ {\pydata@error{Incomplete data: list is not closed}}{}}%
+ {}%
+ \pydata@fhresetstate{#1}%
+ \booltrue{pydata@fhisreleased@\number#1}}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pydatasetfilename, \pydataclosefilename}
-% Shortcut for creating a |\newwrite| and then passing the file handle to |\pydatasetfilehandle|. Automatically attempt to close the file handle (if it still exists) at the end of the document. This isn't strictly required since \TeX\ will \href{https://tex.stackexchange.com/a/337291}{automatically close open writes}. Invoking the close macro is necessary for basic data checking on the \LaTeX\ side.
+% Shortcut for creating a |\newwrite| and then passing the file handle to |\pydatasetfilehandle|. File handles are global. If the close macro is not invoked, then basic data checking on the \LaTeX\ side will not be performed. However, \TeX\ will \href{https://tex.stackexchange.com/a/337291}{automatically close open writes at the end of the compile}.
% \begin{macrocode}
\def\pydatasetfilename#1{%
+ \if\relax\detokenize{#1}\relax
+ \pydata@error{Missing filename}%
+ \fi
\ifcsname pydata@fh@#1\endcsname
\else
\expandafter\newwrite\csname pydata@fh@#1\endcsname
- \expandafter\immediate\expandafter\openout\csname pydata@fh@#1\endcsname=#1\relax
- \AtEndDocument{\pydataclosefilename{#1}}%
\fi
+ \pydata@provideglobalbool{pydata@fileisopen@#1}%
+ \ifbool{pydata@fileisopen@#1}%
+ {}%
+ {\expandafter\immediate\expandafter\openout\csname pydata@fh@#1\endcsname=#1\relax
+ \booltrue{pydata@fileisopen@#1}}%
\expandafter\pydatasetfilehandle\expandafter{\csname pydata@fh@#1\endcsname}}
\def\pydataclosefilename#1{%
\ifcsname pydata@fh@#1\endcsname
- \expandafter\pydatareleasefilehandle\expandafter{\csname pydata@fh@#1\endcsname}%
- \expandafter\immediate\expandafter\closeout\csname pydata@fh@#1\endcsname
- \expandafter\let\csname pydata@fh@#1\endcsname\pydata@undefined
+ \ifbool{pydata@fileisopen@#1}%
+ {\expandafter\pydatareleasefilehandle\expandafter{\csname pydata@fh@#1\endcsname}%
+ \expandafter\immediate\expandafter\closeout\csname pydata@fh@#1\endcsname
+ \boolfalse{pydata@fileisopen@#1}}%
+ {}%
+ \else
+ \pydata@error{Unknown file name "#1"}%
\fi}
% \end{macrocode}
% \end{macro}
@@ -779,14 +831,13 @@
\ifbool{pydata@bufferhaskey}%
{\pydata@error{Cannot change buffers when a buffered key is waiting for a value}}%
{}%
- \def\pydata@buffername{#1}%
- \def\pydata@bufferlinename{#1line}%
- \def\pydata@bufferlengthname{#1length}%
+ \gdef\pydata@buffername{#1}%
+ \gdef\pydata@bufferlinename{#1line}%
+ \gdef\pydata@bufferlengthname{#1length}%
\ifcsname c@\pydata@bufferlengthname\endcsname
\else
\expandafter\newcounter\expandafter{\pydata@bufferlengthname}%
- \fi
- \expandafter\setcounter\expandafter{\pydata@bufferlengthname}{0}}
+ \fi}
\pydatasetbuffername{pydata@defaultbuffer}
% \end{macrocode}
% \end{macro}
@@ -798,7 +849,10 @@
\ifnum\expandafter\value\expandafter{\pydata@bufferlengthname}<1\relax
\pydata@error{Cannot write empty buffer}%
\fi
- \ifbool{pydata@indict}{}{\pydata@error{Cannot write a buffer unless in a dict}}%
+ \pydata@checkfilehandle
+ \ifbool{pydata@indict}{}{\pydata@error{Cannot write buffer unless in a dict}}%
+ \ifbool{pydata@haskey}%
+ {\pydata@error{Cannot write buffer when file has a key waiting for a value}}{}%
\ifbool{pydata@bufferhaskey}%
{\pydata@error{Cannot write buffer when a buffered key is waiting for a value}}{}%
\setcounter{pydata@bufferindex}{1}%
@@ -824,7 +878,7 @@
\fi
\setcounter{pydata@bufferindex}{1}%
\loop\unless\ifnum\value{pydata@bufferindex}>\value{#1length}\relax
- \expandafter\let
+ \expandafter\global\expandafter\let
\csname#1line\arabic{pydata@bufferindex}\endcsname\pydata@undefined
\stepcounter{pydata@bufferindex}%
\repeat
@@ -948,7 +1002,7 @@
\else
\pydata@error{Invalid schema missing setting #1}%
\fi
- \def\pydata@schemamissing{#1}}
+ \gdef\pydata@schemamissing{#1}}
\pydatasetschemamissing{error}
% \end{macrocode}
% \end{macro}
@@ -972,7 +1026,7 @@
% Delete existing schema. This isn't done automatically upon writing so that a schema can be defined and then reused.
% \begin{macrocode}
\def\pydataclearschema{%
- \def\pydata@schema{}}
+ \gdef\pydata@schema{}}
% \end{macrocode}
% \end{macro}
%
@@ -1111,7 +1165,7 @@
\ifbool{pydata@bufferhaskey}%
{\pydata@error{Cannot buffer a key when waiting for a value}}{}%
\expandafter\stepcounter\expandafter{\pydata@bufferlengthname}%
- \expandafter\edef\csname
+ \expandafter\xdef\csname
\pydata@bufferlinename\expandafter\arabic\expandafter{\pydata@bufferlengthname}%
\endcsname{%
\pydata@quotestr{#1}:%
@@ -1140,7 +1194,7 @@
\ifbool{pydata@bufferhaskey}%
{}{\pydata@error{Cannot buffer value when waiting for a key}}%
\expandafter\stepcounter\expandafter{\pydata@bufferlengthname}%
- \expandafter\edef\csname
+ \expandafter\xdef\csname
\pydata@bufferlinename\expandafter\arabic\expandafter{\pydata@bufferlengthname}%
\endcsname{%
\pydata@quotestr{#1},%
@@ -1150,7 +1204,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\pydatawritekeyvalue, \pydatabufferkeyvalue}
+% \begin{macro}{\pydatawritekeyvalue, \pydatawritekeyedefvalue, \pydatabufferkeyvalue, \pydatabufferkeyedefvalue}
% Write a key and a single-line value to file simultaneously, or append them to the buffer.
% \begin{macrocode}
\begingroup
@@ -1166,6 +1220,13 @@
\immediate\write\pydata@filehandle{%
\pydata@quotestr{#1}: \pydata@quotestr{#2},%
}}
+\gdef\pydatawritekeyedefvalue{%
+ \FVExtraReadVArg{\FVExtraDetokenizeVArg{\pydatawritekeyedefvalue@i}}}
+\gdef\pydatawritekeyedefvalue@i#1#2{%
+ \edef\pydata@tmp{#2}%
+ \expandafter\pydatawritekeyedefvalue@ii\expandafter{\pydata@tmp}{#1}}
+\gdef\pydatawritekeyedefvalue@ii#1#2{%
+ \FVExtraDetokenizeVArg{\pydatawritekeyvalue@ii{#2}}{#1}}
\gdef\pydatabufferkeyvalue{%
\FVExtraReadVArg{\FVExtraDetokenizeVArg{\pydatabufferkeyvalue@i}}}
\gdef\pydatabufferkeyvalue@i#1{%
@@ -1174,11 +1235,18 @@
\ifbool{pydata@bufferhaskey}%
{\pydata@error{Cannot buffer a key when waiting for a value}}{}%
\expandafter\stepcounter\expandafter{\pydata@bufferlengthname}%
- \expandafter\edef\csname
+ \expandafter\xdef\csname
\pydata@bufferlinename\expandafter\arabic\expandafter{\pydata@bufferlengthname}%
\endcsname{%
\pydata@quotestr{#1}: \pydata@quotestr{#2},%
}}
+\gdef\pydatabufferkeyedefvalue{%
+ \FVExtraReadVArg{\FVExtraDetokenizeVArg{\pydatabufferkeyedefvalue@i}}}
+\gdef\pydatabufferkeyedefvalue@i#1#2{%
+ \edef\pydata@tmp{#2}%
+ \expandafter\pydatabufferkeyedefvalue@ii\expandafter{\pydata@tmp}{#1}}
+\gdef\pydatabufferkeyedefvalue@ii#1#2{%
+ \FVExtraDetokenizeVArg{\pydatabufferkeyvalue@ii{#2}}{#1}}
\endgroup
% \end{macrocode}
% \end{macro}
@@ -1209,7 +1277,7 @@
\ifbool{pydata@bufferhaskey}%
{}{\pydata@error{Cannot buffer value when waiting for a key}}%
\expandafter\stepcounter\expandafter{\pydata@bufferlengthname}%
- \expandafter\edef\csname
+ \expandafter\xdef\csname
\pydata@bufferlinename\expandafter\arabic\expandafter{\pydata@bufferlengthname}%
\endcsname{%
\pydata@mlstropen
@@ -1218,7 +1286,7 @@
\ifbool{pydata@bufferhaskey}%
{}{\pydata@error{Cannot buffer value when waiting for a key}}%
\expandafter\stepcounter\expandafter{\pydata@bufferlengthname}%
- \expandafter\edef\csname
+ \expandafter\xdef\csname
\pydata@bufferlinename\expandafter\arabic\expandafter{\pydata@bufferlengthname}%
\endcsname{%
\pydata@escstrtext{#1}%
@@ -1227,7 +1295,7 @@
\ifbool{pydata@bufferhaskey}%
{}{\pydata@error{Cannot buffer value when waiting for a key}}%
\expandafter\stepcounter\expandafter{\pydata@bufferlengthname}%
- \expandafter\edef\csname
+ \expandafter\xdef\csname
\pydata@bufferlinename\expandafter\arabic\expandafter{\pydata@bufferlengthname}%
\endcsname{%
\pydata@mlstrclose,%
@@ -1252,21 +1320,9 @@
% \begin{macrocode}
\newenvironment{pydatabuffermlvalue}%
{\VerbatimEnvironment
- \begin{VerbatimBuffer}[buffername=pydata@tmpbuffer, globalbuffer=true]}%
- {\end{VerbatimBuffer}}
-\AfterEndEnvironment{pydatabuffermlvalue}{%
\pydatabuffermlvaluestart
- \setcounter{pydata@bufferindex}{1}%
- \loop\unless\ifnum\value{pydata@bufferindex}>\value{pydata@tmpbufferlength}\relax
- \expandafter\let\expandafter\pydata@tmpbufferline
- \csname pydata@tmpbufferline\arabic{pydata@bufferindex}\endcsname
- \expandafter\let
- \csname pydata@tmpbufferline\arabic{pydata@bufferindex}\endcsname\pydata@undefined
- \expandafter\pydatabuffermlvalueline\expandafter{\pydata@tmpbufferline}%
- \stepcounter{pydata@bufferindex}%
- \repeat
- \setcounter{pydata@tmpbufferlength}{0}%
- \setcounter{pydata@bufferindex}{0}%
+ \begin{VerbatimBuffer}[bufferer=\pydatabuffermlvalueline]}%
+ {\end{VerbatimBuffer}%
\pydatabuffermlvalueend}
% \end{macrocode}
% \end{macro}
diff --git a/macros/latex/contrib/latex2pydata/latex2pydata.ins b/macros/latex/contrib/latex2pydata/latex2pydata.ins
index 6367807032..ed696a1f38 100644
--- a/macros/latex/contrib/latex2pydata/latex2pydata.ins
+++ b/macros/latex/contrib/latex2pydata/latex2pydata.ins
@@ -1,4 +1,4 @@
-%% Copyright (C) 2023 by Geoffrey M. Poore <gpoore@gmail.com>
+%% Copyright (C) 2023-2024 by Geoffrey M. Poore <gpoore@gmail.com>
%% --------------------------------------------------------------------------
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
@@ -26,7 +26,7 @@
This is a generated file.
-Copyright (C) 2023 by Geoffrey M. Poore <gpoore@gmail.com>
+Copyright (C) 2023-2024 by Geoffrey M. Poore <gpoore@gmail.com>
--------------------------------------------------------------------------
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/contrib/latex2pydata/latex2pydata.pdf b/macros/latex/contrib/latex2pydata/latex2pydata.pdf
index 96eca7e89d..815d40d7be 100644
--- a/macros/latex/contrib/latex2pydata/latex2pydata.pdf
+++ b/macros/latex/contrib/latex2pydata/latex2pydata.pdf
Binary files differ
diff --git a/macros/latex/contrib/msu-thesis/README.md b/macros/latex/contrib/msu-thesis/README.md
index 31d83c056a..8e706e6de9 100644
--- a/macros/latex/contrib/msu-thesis/README.md
+++ b/macros/latex/contrib/msu-thesis/README.md
@@ -1,4 +1,4 @@
-# MSU Thesis Class Version 4.2 2024/02/18
+# MSU Thesis Class Version 4.2b 2024/05/16
Copyright 2011-2024 by Alan Munn <amunn@msu.edu>
@@ -9,6 +9,13 @@ Submission of Master's Theses and Dissertations (January 2023).
The class is based on the `memoir` document class, and therefore inherits
all of the functionality of that class.
+# TeX distribution requirements
+
+The `msu-thesis` class requires an up-to-date TeX distribution, 2022 release or later.
+
+# Engine requirements
+
+The `msu-thesis` class works with all LaTeX engines (pdfLaTeX, XeLaTeX, LuaLaTeX).
# Update on new formatting requirements (Fall 2022)
@@ -30,7 +37,7 @@ Please [read the documentation!](https://amunn.github.io/msu-thesis/)
## Installation:
-The `msu-thesis` class is part of both TeXLive and MikTeX, so you should either already have it or should be able to install it with your package manager.
+The `msu-thesis` class is part of both TeXLive and MikTeX, so you should either already have it or should be able to install it with your package manager if you have an up-to-date distribution.
If you wish to install it locally, follow the directions below:
@@ -42,9 +49,16 @@ Put `msu-thesis.tex`, `msu-thesis.pdf` and the `samples` folder into
`<local texmf>/doc/latex/msu-thesis`
+Alternatively, you can simply put a copy of `msu-thesis.cls` in the same folder as your thesis source file.
+
The samples folder contains two thesis test-files and
a template.
+## Overleaf users
+
+If you are using Overleaf, you should upload a copy of `msu-thesis.cls` to your project. It *must* have exactly this name to be found. Click on the Menu icon and make sure to choose the latest version of TeX Live for compilation.
+
+
This package may be distributed and/or modified under the conditions of
the LaTeX Project Public License, either version 1.3 of this license or
any later version. The latest version of this license is in
diff --git a/macros/latex/contrib/msu-thesis/docs/msu-thesis.tex b/macros/latex/contrib/msu-thesis/docs/msu-thesis.tex
index 01ca59e7ad..7ea3b12edf 100644
--- a/macros/latex/contrib/msu-thesis/docs/msu-thesis.tex
+++ b/macros/latex/contrib/msu-thesis/docs/msu-thesis.tex
@@ -2,8 +2,8 @@
\documentclass[11pt]{article}
-\def\msuversion{4.2}
-\def\msudate{2024/02/18}
+\def\msuversion{4.2b}
+\def\msudate{2024/05/16}
\title{\textbf{Using the MSU Thesis Class}}
\author{\textbf{Alan Munn}\\Department of Linguistics, Languages, and Cultures\\Michigan State University\\\texttt{\href{mailto:amunn@msu.edu}{amunn@msu.edu}}}
\date{Version \msuversion\\\msudate}
@@ -59,8 +59,12 @@
\abstract{\noindent\begin{quote} This is a class file for MSU theses and dissertations. It is based on the \pkg{memoir}\ class, and therefore supports all of the functionality of that class. It should generate a document which meets all the basic formatting requirements laid out by the \href{https://grad.msu.edu/etd/formatting-guide}{Formatting Guide For Submission of Master’s Theses and Doctoral Dissertations}\ (January, 2023) produced by the Graduate School, including requirements for margins, titlepage, page numbering, section titles, sub- and superscript sizes etc.\end{quote}}
\section{Introduction}
Formatting a dissertation according to a University's thesis requirements is not always a simple task in \LaTeX, especially since the requirements are generally aimed at MSWord users. Furthermore, most of the work of formatting a document is supposed to be done by the document class itself, and not by the individual user. Fortunately, Michigan State University's thesis requirements are for the most part sane, (even if the thesis office itself isn’t) and fairly straightforward. The present class file is designed to further make the process easier for \LaTeX\ users, by doing all the heavy lifting for you, so that you can focus on the content and not the formatting.
-\section{Background}
+\section{Background and requirements}
The MSU Thesis Class is based on the \pkg{memoir}\ document class. The \pkg{memoir}\ class is an extensive class that incorporates the functionality of many other packages into it. The class is extensively documented, and the documentation (\pkg{memman.pdf}) should be available with any \TeX\ distribution. I strongly recommend that you familiarize yourself with \pkg{memoir}\ as you use the present class.
+\subsection{TeX distribution requirements}
+The \pkg{msu-thesis}\ class requires a reasonably up-to-date TeX distribution, 2022 or later.
+\subsection{Engine requirements}
+The class may be used with any LaTeX engine: pdfLaTeX, XeLaTeX, or LuaLaTeX.
\section{Class Options}
In addition to any options passed to the \pkg{memoir}\ class (e.g. |oldfontcommands|; see Section \ref{sec:fonts}, font size), the \pkg{msu-thesis}\ class takes six options: one to specify the type of degree, (see Table~\ref{degrees}), one to enable landscape page numbering, two to enable per-chapter bibliographies and appendices, two to make small adjustments to Table of Contents. If no degree option is specified, a Ph.D. dissertation is assumed.
\begin{table}[htpb]
@@ -189,16 +193,25 @@ The \pkg{memoir}\ class provides commands for single and double spacing (|\Singl
The \pkg{memoir}\ class replicates the functionality of many independent packages, so if you are transferring \LaTeX\ source from other documents using the \pkg{article}\ class, you may encounter some warnings or errors. The \pkg{memoir}\ documentation has substantial information about the packages it emulates, and the packages for which it provides equivalent functionality. See Chap. 18 Sec. 24 of the \pkg{memoir}\ manual for details. Quoting from the manual:
\begin{quote} At the time of writing the emulated packages are: {\sffamily abstract, appendix, booktabs, ccaption, chngcntr, crop, enumerate, epigraph, ifmtarg, ifpdf, index, makeidx, moreverb, needspace, newfile, nextpage, pagenote, patchcmd, parskip, setspace, shortvrb, showidx, titleref, tocbibind, tocloft, verbatim, and verse.} As well as the emulated packages memoir provides functions equivalent to those in the following packages, although the class does not prevent you from using them: {\sffamily fancyhdr, framed, geometry, sidecap, subfigure, and titlesec.}\\\hfill{\normalfont\emph{The Memoir Class} 10th impression, 2015, p.345}
\end{quote}
-\subsection{Captions}
-\subsubsection{Caption delimiter}\label{captiondelim}
-Because the thesis office doesn't understand anything about punctuation, it requires the colon that would appear in a caption to also appear in the contents lists. Since they don't care about the colon itself, but just consistency I've removed colons from the captions entirely, since leaving it in makes the contents lists look really stupid. But in case you or your advisor want the colon in captions, you can add the colon back in by adding |\renewcommand{\msucaptiondelim}{:\space}| to your preamble, and the class will make sure the Lists of Tables and Figures match in formatting. If you have other floating objects with captions (e.g., algorithms, listings) you may need to change their delimiter too (see below). How you do this may depend on the particular packages you are using.
-
+\subsection{Table of Contents issues}
\subsubsection{Simplified vs. full contents}
The thesis guide suggests that you use a simplified table of contents that lists only chapter levels, but that you are welcome to use a more detailed table of contents if you wish. As with most, if not all of the “design” decisions made by the thesis office, this one makes very little typographic sense, and so I have left the default TOC level to be 1, i.e., chapters and sections will be listed in the TOC. If you wish to use the simplified contents format that just lists chapters, add the following to your preamble:
\begin{quote}
|\setcounter{msutocdepth}{0}|
\end{quote}
+\subsubsection{Ensuring the minimum number of leader dots}
+If your chapter titles are very long, they sometimes fail to put any leader dots before the page number in the Table of Contents. The thesis office requires a minimum of three dots of leaders for any TOC line. You can solve this problem by putting a line break into the TOC entry title. To do this, use the optional argument of the corresponding |\chapter| or |\section| etc. command. Note that the line break needs to be preceded by |\protect|.
+
+%\begin{quote}
+\begin{lstlisting}[frame=none,xleftmargin=2.5em]
+\chapter[Long chapter title that will\protect\\ break at this point]
+ {Long chapter title that will break at this point}
+\end{lstlisting}
+%\end{quote}
+\subsection{Captions}
+\subsubsection{Caption delimiter}\label{captiondelim}
+Because the thesis office doesn't understand anything about punctuation, it requires the colon that would appear in a caption to also appear in the contents lists. Since they don't care about the colon itself, but just consistency I've removed colons from the captions entirely, since leaving it in makes the contents lists look really stupid. But in case you or your advisor want the colon in captions, you can add the colon back in by adding |\renewcommand{\msucaptiondelim}{:\space}| to your preamble, and the class will make sure the Lists of Tables and Figures match in formatting. If you have other floating objects with captions (e.g., algorithms, listings) you may need to change their delimiter too (see below). How you do this may depend on the particular packages you are using.
\subsubsection{New lists and floats}
Note that the thesis office no longer seems to \emph{require} lists of anything other than the main table of contents. This is another odd decision on their part. If do include a List of Tables and List of Figures and need to add other lists, you can follow the directions here. Note that lists of algorithms require special treatment. See §\ref{algorithms}.
@@ -273,11 +286,13 @@ If you have changed the |\msucaptiondelimeter| to use a colon (see \ref{captiond
The first method removes the colon from the word Algorithm in the List of Algorithms:
\begin{quote}
+\begin{minipage}{\linewidth}
\begin{lstlisting}
% Use this code after loading any algorithm package and the float package
% This removes the colon after the word Algorithm in the List of Algorithms
\renewcommand*{\cftalgorithmaftersnum}{}
\end{lstlisting}
+\end{minipage}
\end{quote}
The second method adds a colon to the word Algorithm in the captions of the algorithms
@@ -394,6 +409,8 @@ Despite there being no explicit formatting requirements for Chapter headings (ot
\end{itemize}
\subsection{Master’s Theses}
Master’s theses are sometimes relatively short, and you may think that you can just have |\section| commands with no chapters. This will \emph{not} work. The class is designed to use chapters (and as far as I can tell, the Graduate School also expects chapters).
+\subsection{Overleaf users}
+If you're using Overleaf, it's usually best to upload a copy of the class to your project. Please remember that the file \emph{must} be called |msu-thesis.cls|. Naming it something different will cause it not to be found, and an older version will be loaded. Additionally, since Overleaf preserves the TeX Live year that you first opened the project, it's a good idea to change to the most recent TeX Live year that the site offers. You can do this by clicking on the Menu icon in the editor and then selecting the most recent TeX Live version.
\section{Bugs and redistribution}
\subsection{Current version}
@@ -444,11 +461,11 @@ to Wolfgang Sternefeld for supplying the \pkg{linguex}\ spacing fix code, Leo Li
landscape page numbering code, which greatly simplified my original version. Thanks to
Florent Chervet for early \pkg{hyperref} code (up until v.3.6), and Ulrike Fischer for the
current \pkg{hyperref} code. Thanks to David Carlisle for helping me understand a ridiculous spacing problem.
-Thanks also to the following students who have reported
+Thanks also to the following people who have reported
problems over the years: Irina Agafonova, Ali Al-jiboory, Abubakr Ayesh, Julian Blank,
Nathan Brugnone, Dmitriy Bryndin, Greg Christian, Kyle Crayne, Ciaron Hamilton, Matt Husband, Changkuk
Jung, Claire Kopenhafer, Adam Liter, Vanessa Maldonado, Andriana Manousidaki, Ben Miller, William Muir, Eureka
-Pai, Alicia Parrish, Neil ver Planck, Taha Posos, Nick Rekuski, Giacomo Romanini, William Sands, Adam
+Pai, Alicia Parrish, Victoria Parrish, Neil ver Planck, Taha Posos, Nick Rekuski, Giacomo Romanini, William Sands, Adam
Soliman, Mookyong Son, Erik Stitt, Fanurs C.E. Teh, Eremey Valetov, Matthew Vincent, Michael Wojcik, Stephen Yowono, Atacan Yücesoy, Ali
Zare, and Yisu Zhou. A special thank you to Non Thongprong who graciously provided a copy
of his entire thesis which allowed me to debug some especially subtle spacing
diff --git a/macros/latex/contrib/msu-thesis/msu-thesis.cls b/macros/latex/contrib/msu-thesis/msu-thesis.cls
index c73d4be4d0..f873f7a964 100644
--- a/macros/latex/contrib/msu-thesis/msu-thesis.cls
+++ b/macros/latex/contrib/msu-thesis/msu-thesis.cls
@@ -192,12 +192,26 @@
% Version 4.1h 2023/10/07 Changed option processing code
% Version 4.1i 2023/12/02 Fixed spurious blank page with biblatex bibliography
% Version 4.2 2024/02/18 Changed spacing for sections to address complaints about adjacent sectioning commands
+% Version 4.2b 2024/05/16 Added version check for l3kernel.
% Report bugs/problems/questions to <amunn@msu.edu>
%
-\def\msu@version{4.2}
-\def\msu@date{2024/02/18}
+\def\msu@version{4.2b}
+\def\msu@date{2024/05/16}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{msu-thesis}[\msu@date\space Michigan State University Thesis Class version \msu@version]
+\@ifundefined{ExplLoaderFileDate}
+ {\RequirePackage{expl3}}
+ {}
+\@ifl@t@r\ExplLoaderFileDate{2022-06-01}
+ {}
+ {%
+ \ClassError{msu-thesis}{Support package expl3 too old}
+ {%
+ You need to update your TeX distribution: 'l3kernel' of 2022-06-01 or later is required.\MessageBreak
+ Loading msu-thesis will abort!%
+ }%
+ \endinput
+ }%
\DeclareKeys[msu-thesis]
{
PhD.code = {\gdef\msu@degree{Doctor of Philosophy}},
diff --git a/macros/latex/contrib/msu-thesis/msu-thesis.pdf b/macros/latex/contrib/msu-thesis/msu-thesis.pdf
index 533ec424b9..89f49a4d54 100644
--- a/macros/latex/contrib/msu-thesis/msu-thesis.pdf
+++ b/macros/latex/contrib/msu-thesis/msu-thesis.pdf
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index a7c763ae5f..739bbac330 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -9,6 +9,7 @@ $mirrors = {
},
'Asia' => {
'China' => {
+ 'https://mirror.bjtu.edu.cn/CTAN/' => 1,
'https://mirror.nyist.edu.cn/CTAN/' => 1,
'https://mirrors.aliyun.com/CTAN/' => 1,
'https://mirrors.bfsu.edu.cn/CTAN/' => 1,
@@ -150,6 +151,7 @@ $mirrors = {
},
'Spain' => {
'https://ctan.fisiquimicamente.com/' => 1,
+ 'https://ctan.javinator9889.com/' => 1,
'https://osl.ugr.es/CTAN/' => 1,
},
'Sweden' => {
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index 607163bb1f..0aa97a67e4 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,7 +26,7 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2024
-depend revision/71272
+depend revision/71276
name 00texlive.image
category TLCore
@@ -4900,7 +4900,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 71272
+revision 71276
shortdesc TeX Live standalone installer package
longdesc This package defines the files to go into the installer
longdesc archives (install-tl-unx.tar.gz, install-tl.zip) built by the
@@ -89432,7 +89432,7 @@ catalogue-version 1.0
name csvsimple
category Package
-revision 69494
+revision 71274
shortdesc Simple CSV file processing
relocated 1
longdesc The package provides a simple LaTeX interface for the
@@ -89442,11 +89442,11 @@ longdesc usage. Filtering and table generation are especially supported;
longdesc however, this lightweight tool offers no support for data
longdesc sorting or data base storage. The package depends on etoolbox,
longdesc ifthen, pgfrcs, pgfkeys, and shellesc.
-containersize 11828
-containerchecksum ef7d09c254982998b009c4856b69b263e7ee5df3b54c7513aa5459651d12989f38b1593ca9e3d4d3de51ae6cf8b02c89a8a9298213c7872157712fb4c1c61900
-doccontainersize 1740616
-doccontainerchecksum c6934e0bfc8448008c0fbe7ed06da871aa9a9073f7948551881e00dd8ca0d31f7da5132d14282a9b08564a2aa8e875f36cf67db900b94dcf4381530a2b6843c1
-docfiles size=584
+containersize 11820
+containerchecksum b095d4f8dd210a4967d5465baf961f5a99aa331690a879c78444b2a086de3a53106d8aca5a1359056f304c2b104886dc0f83039810434cabcd7d5e7a258ba9b4
+doccontainersize 1754600
+doccontainerchecksum 2e9367ff9a57db31adeaf37fac0b38a61d506d5e9f4c2e5784cdd1064c289659f19b5eb5cba7f3aef72a8f6ce012f9425bea13a1530457b488e5baba5cacee13
+docfiles size=589
RELOC/doc/latex/csvsimple/CHANGES.md
RELOC/doc/latex/csvsimple/README.md details="Readme"
RELOC/doc/latex/csvsimple/amountsort.xml
@@ -89475,7 +89475,7 @@ catalogue-also csvtools datatool
catalogue-ctan /macros/latex/contrib/csvsimple
catalogue-license lppl1.3
catalogue-topics data-import data-disp csv-support expl3
-catalogue-version 2.6.0
+catalogue-version 2.6.1
name ctable
category Package
@@ -106983,7 +106983,7 @@ catalogue-topics notes editorial
name easybook
category Package
-revision 71254
+revision 71275
shortdesc Easily typesetting Chinese theses or books
relocated 1
longdesc easybook is a pure academic template created based on the
@@ -106994,16 +106994,16 @@ longdesc providing multiple commands and interfaces allows users to
longdesc easily customize the thesis template. Its basic macro package
longdesc easybase can also be used with CTeX and standard document
longdesc classes.
-containersize 18080
-containerchecksum 4d09a2678689989b4bcc6160b8e17c3a73ca8dff5cab21ed6056ff2fe845379af3eaecef5e7d14655d6f6840224250fdf519ced17633bb47a1a0622262d76405
-doccontainersize 659152
-doccontainerchecksum cf3c3b3b20c3ed48b916787c0cf89ccc7b6145bda41fe3db265e4d148c41b901cc2a9b834f15ee74adfecf960eb31158d8190aa1aa787314ad33d72d90bb2d1e
+containersize 18068
+containerchecksum 7915d28e3f84bb4d86d514f4a1c77e6e200d195628aae2615a0927134dc0f1200f245b86b16bbcc27f37857a7c89aa2eacedc4eab0f96d5f8e8b75224a0291d5
+doccontainersize 659228
+doccontainerchecksum 457d576fbf4b45f73dc026a29e18c8dd7d8ef374bca6dc1e8528cfe9cf9e897628b4e82cf655514ae0ad3fbec4dfe36fe4b91107b1c23dd98612ac29428a6966
docfiles size=182
RELOC/doc/latex/easybook/README.md details="Readme"
RELOC/doc/latex/easybook/easybook.pdf details="Package documentation" language="zh"
RELOC/doc/latex/easybook/easybook.tex
srccontainersize 17960
-srccontainerchecksum 6e2519f98beb36f38760d73d75b54643f9cb25e9c4b51c5655a3a98a713666c3189fbc6cbd49d2f1cba42be6f164b53c4d7572719bdd019b7ce0b57d39e3a817
+srccontainerchecksum 8399ba4b14ac648fc17c2ab3f6c24df1aea3517b2d2dc3973fd1f645a04342e99142394f5c8a8cc1ac8bafcaa377a546dbbba0ee4546e08010105aebde99029f
srcfiles size=22
RELOC/source/latex/easybook/easybook.dtx
RELOC/source/latex/easybook/easybook.ins
@@ -107016,7 +107016,7 @@ catalogue-contact-repository https://gitee.com/texno3/easybook
catalogue-ctan /macros/latex/contrib/easybook
catalogue-license lppl1.3c
catalogue-topics book-pub dissertation class doc-templ chinese expl3
-catalogue-version 2024bp
+catalogue-version 2024bq
name easydtx
category Package
@@ -327256,7 +327256,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 71272
+revision 71276
shortdesc TeX Live infrastructure programs
longdesc Includes install-tl, tl-portable, rungs, etc.; not needed for
longdesc tlmgr to run but still ours. Not included in tlcritical.
@@ -327264,10 +327264,10 @@ depend texlive-scripts.ARCH
depend texlive.infra
execute addMap mathpple.map
postaction shortcut type=menu name="TeX Live command-line" cmd=TEXDIR/tlpkg/installer/tl-cmd.bat
-containersize 114336
-containerchecksum 75ca1e82124f96b34ac92263f3af8b4e04cfb81657c89ff7e7d130781fc7a84e2a6cdef1e5cc31969f1aeed0d7e5c5fb123312673c501375661e5fb233e4c517
+containersize 114368
+containerchecksum 409543de14a797e585b25df974b5014c5133b34e27a8c008f0648d7fe7e782f26b433aa3f81932ba8ba569cfa358d50168b733516e5d46797856f972913cd36d
doccontainersize 435428
-doccontainerchecksum b60e998104041028e2756f537266b92170394f44ce54b2afc05b180439177ddaec2798cebe98da3e14a3ddb7f15b344d1a4b40165787b5bf71dedc23c307bbcd
+doccontainerchecksum e323ef9caa2daa80528ff2e74aaa3a256d3253c1843550cfd2476b5781563dd6ce4107aa7095ae10c4077e810fe5881b716551ee66977d2537123dd5f736fb2e
docfiles size=569
doc.html
texmf-dist/doc/man/man1/fmtutil-sys.1
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index 3a044f784e..b3da92dce4 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-29aa70eb7aa616d98ffc40a7634858a7 texlive.tlpdb
+203b71eb41e040b79a41515b0594fd48 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index 777ad06c93..03532289f6 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-c7cb876946b30ef57f57f2c2c578712f4cd1862caac02d5ebdf4e5984d25f4cfd135674581e7df7080211d1996e1697cd1779c4d173167e3eeab20401007e630 texlive.tlpdb
+62a9b31922e1cd0ec3c53a4b9f051edf8896e00eef756ce2a5b7c26b2e9dadb425ca7b06291a55355289091fdd673b245a1d822d6b22b914558ca9fdf8633aa4 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index abfcc79378..bc38a213bc 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
@@ -1,11 +1,11 @@
-----BEGIN PGP SIGNATURE-----
-iQEzBAEBCgAdFiEE2PL4YFeoV+QqiBBqTOGHfhlDjHAFAmZFSTQACgkQTOGHfhlD
-jHBaswf9Fc/XsAUQdxXSCkFlwloMNw8xWiMGMMP61bSQ8+v0RwlOPfJPUuhsmjh+
-JvLPyhHvMLvnonEy5yS7Koy99BlZPbcoozKCtV07heaOOkVnzqjmEt/+KOM/0y97
-+tZsunFGGsEnxW/x5lHYdpM3R4w/uZ9jdqSFPEJ6sBisVKYApfiTtMNiYo/pquoU
-Oe7bKF6/oT89xOfTm7Iqp0gNwp5tIMuDDt80BBNCRPbJ1fjQdSyjJRGjd6cPEjlA
-wZ8xHNNIA3u3/Z6pce80EhoqaxDaiDOP01zKSaM47jh4k5l2F4/4U4UfxJoHpskm
-SpEv1dqPJWiW9obxB5LZDlqitWxc7Q==
-=rghm
+iQEzBAEBCgAdFiEE2PL4YFeoV+QqiBBqTOGHfhlDjHAFAmZGmsMACgkQTOGHfhlD
+jHAd3gf/SKTVzGIa32JBT0ARgnfKWi9Nd0+x+67/9SEa07QCk+IP8nAGTtOHLoVi
+fmZyjKkkhfTOBr2pBCiCaEA3aAmgRKFY8S4cr9Dmjy7AU0JvKdelmsfWzFQIY4AM
+7SqajxFGNJNV5tsT1/WzOVTskE7ChYNSORAOD4o7Pp6NZRc3R3WUogTiL0AKNdGP
+g8o30LRHwWQa7OnuPsRhIhg/ywkbUB0MtpSra0kpTKWUEVzKp6EsNKWftg8EsqsB
+Ytv9+7lHndodfQWEh2gCPSCS/QHbciFwcXVAIbHsJe7qb72XyjqM2FHKXiI/8nw6
+Ch3+xcmDK/4HzyUjHW4bmkaAUiA1wg==
+=vtA9
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index 2659bd4d9c..8f79cf8523 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/timestamp b/timestamp
index f4bc461ebc..c55a82415a 100644
--- a/timestamp
+++ b/timestamp
@@ -2,4 +2,4 @@
# The source CTAN of this site's material:
dante.ctan.org
# The year-month-day-hour-minute of this site's material:
-2024-05-16-02-02
+2024-05-17-02-02