summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FILES.byname1173
-rw-r--r--FILES.byname.gzbin2512928 -> 2513282 bytes
-rw-r--r--FILES.last07days514
-rw-r--r--biblio/bibtex/contrib/urlbst/README4
-rw-r--r--biblio/bibtex/contrib/urlbst/VERSION2
-rw-r--r--biblio/bibtex/contrib/urlbst/abbrvurl.bst57
-rw-r--r--biblio/bibtex/contrib/urlbst/alphaurl.bst53
-rwxr-xr-xbiblio/bibtex/contrib/urlbst/configure22
-rw-r--r--biblio/bibtex/contrib/urlbst/configure.ac8
-rw-r--r--biblio/bibtex/contrib/urlbst/plainurl.bst55
-rw-r--r--biblio/bibtex/contrib/urlbst/unsrturl.bst53
-rwxr-xr-xbiblio/bibtex/contrib/urlbst/urlbst43
-rw-r--r--biblio/bibtex/contrib/urlbst/urlbst.bib18
-rw-r--r--biblio/bibtex/contrib/urlbst/urlbst.html20
-rwxr-xr-xbiblio/bibtex/contrib/urlbst/urlbst.in33
-rw-r--r--biblio/bibtex/contrib/urlbst/urlbst.pdfbin222858 -> 223396 bytes
-rw-r--r--biblio/bibtex/contrib/urlbst/urlbst.tex26
-rw-r--r--biblio/ctan-bibdata/ctan.bib70
-rw-r--r--biblio/ctan-bibdata/ctan.pdfbin3646376 -> 3649425 bytes
-rw-r--r--dviware/dvisvgm/Makefile.in2
-rw-r--r--dviware/dvisvgm/NEWS6
-rw-r--r--dviware/dvisvgm/aminclude_static.am2
-rwxr-xr-xdviware/dvisvgm/configure20
-rw-r--r--dviware/dvisvgm/configure.ac2
-rw-r--r--dviware/dvisvgm/doc/dvisvgm.14
-rw-r--r--dviware/dvisvgm/src/Bezier.hpp4
-rw-r--r--dviware/dvisvgm/src/FontManager.cpp8
-rw-r--r--dviware/dvisvgm/src/FontManager.hpp3
-rw-r--r--dviware/dvisvgm/src/PDFHandler.cpp42
-rw-r--r--dviware/dvisvgm/src/PDFHandler.hpp2
-rw-r--r--dviware/dvisvgm/src/RangeMap.cpp2
-rw-r--r--dviware/dvisvgm/src/fonts/Base14Fonts.cpp5
-rw-r--r--dviware/dvisvgm/src/fonts/Base14Fonts.hpp2
-rw-r--r--fonts/concmath-otf/Concrete-Math.otfbin224828 -> 227764 bytes
-rw-r--r--fonts/concmath-otf/README.md6
-rw-r--r--fonts/concmath-otf/concmath-otf.ltx2
-rw-r--r--fonts/concmath-otf/concmath-otf.pdfbin147583 -> 147636 bytes
-rw-r--r--fonts/concmath-otf/concmath-otf.sty11
-rw-r--r--fonts/concmath-otf/unimath-concrete.pdfbin1779774 -> 1780617 bytes
-rw-r--r--fonts/erewhon-math/Erewhon-Math-Bold.otfbin110472 -> 110460 bytes
-rw-r--r--fonts/erewhon-math/Erewhon-Math.ltx16
-rw-r--r--fonts/erewhon-math/Erewhon-Math.otfbin384336 -> 386464 bytes
-rw-r--r--fonts/erewhon-math/Erewhon-Math.pdfbin219876 -> 220585 bytes
-rw-r--r--fonts/erewhon-math/README.md11
-rw-r--r--fonts/erewhon-math/fourier-otf.sty11
-rw-r--r--fonts/erewhon-math/unimath-erewhon.pdfbin1847053 -> 1847071 bytes
-rw-r--r--fonts/euler-math/Euler-Math.ltx2
-rw-r--r--fonts/euler-math/Euler-Math.otfbin439804 -> 439748 bytes
-rw-r--r--fonts/euler-math/Euler-Math.pdfbin157551 -> 157628 bytes
-rw-r--r--fonts/euler-math/README.md5
-rw-r--r--fonts/euler-math/euler-math.sty11
-rw-r--r--fonts/euler-math/unimath-euler.pdfbin1452028 -> 1451945 bytes
-rw-r--r--fonts/xcharter-math/README.md5
-rw-r--r--fonts/xcharter-math/XCharter-Math-Bold.otfbin80204 -> 81616 bytes
-rw-r--r--fonts/xcharter-math/XCharter-Math.ltx2
-rw-r--r--fonts/xcharter-math/XCharter-Math.otfbin324576 -> 326420 bytes
-rw-r--r--fonts/xcharter-math/XCharter-Math.pdfbin178959 -> 197687 bytes
-rw-r--r--fonts/xcharter-math/unimath-xcharter.pdfbin1847980 -> 1848017 bytes
-rw-r--r--fonts/xcharter-math/xcharter-otf.sty11
-rw-r--r--graphics/pgf/contrib/tikzviolinplots/AFR.csv48
-rw-r--r--graphics/pgf/contrib/tikzviolinplots/AMR.csv34
-rw-r--r--graphics/pgf/contrib/tikzviolinplots/EMR.csv22
-rw-r--r--graphics/pgf/contrib/tikzviolinplots/EUR.csv51
-rw-r--r--graphics/pgf/contrib/tikzviolinplots/LICENSE416
-rw-r--r--graphics/pgf/contrib/tikzviolinplots/README3
-rw-r--r--graphics/pgf/contrib/tikzviolinplots/README.md7
-rw-r--r--graphics/pgf/contrib/tikzviolinplots/SEAR.csv12
-rw-r--r--graphics/pgf/contrib/tikzviolinplots/WPR.csv21
-rw-r--r--graphics/pgf/contrib/tikzviolinplots/tikzviolinplots.pdfbin0 -> 352446 bytes
-rw-r--r--graphics/pgf/contrib/tikzviolinplots/tikzviolinplots.sty682
-rw-r--r--graphics/pgf/contrib/tikzviolinplots/tikzviolinplots.tex1180
-rw-r--r--macros/latex/contrib/eolang/eolang.dtx19
-rw-r--r--macros/latex/contrib/eolang/eolang.pdfbin2007062 -> 2007063 bytes
-rw-r--r--macros/latex/contrib/naive-ebnf/naive-ebnf.dtx32
-rw-r--r--macros/latex/contrib/naive-ebnf/naive-ebnf.pdfbin443528 -> 542463 bytes
-rw-r--r--macros/latex/contrib/pseudo/LICENSE2
-rw-r--r--macros/latex/contrib/pseudo/Makefile5
-rw-r--r--macros/latex/contrib/pseudo/VERSION2
-rw-r--r--macros/latex/contrib/pseudo/doc/pseudo.pdfbin950360 -> 991356 bytes
-rw-r--r--macros/latex/contrib/pseudo/doc/pseudo.tex778
-rw-r--r--macros/latex/contrib/pseudo/pseudo.sty55
-rw-r--r--macros/latex/contrib/pseudo/test/beamertest.tex (renamed from macros/latex/contrib/pseudo/test/overlaytest.tex)10
-rw-r--r--macros/latex/contrib/tagpdf/README.md4
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-backend.dtx10
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-checks.dtx6
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-code.pdfbin1488604 -> 1495476 bytes
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-data.dtx18
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx8
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx6
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx6
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-roles.dtx50
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-space.dtx6
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-struct.dtx81
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-tree.dtx6
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf-user.dtx6
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf.dtx8
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf.ins1
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf.pdfbin854620 -> 854619 bytes
-rw-r--r--macros/latex/contrib/tagpdf/tagpdf.tex4
-rw-r--r--macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty2
-rw-r--r--macros/latex/contrib/tramlines/README5
-rw-r--r--macros/latex/contrib/tramlines/tramlines-documentation.pdfbin44978 -> 58619 bytes
-rw-r--r--macros/latex/contrib/tramlines/tramlines-documentation.tex32
-rw-r--r--macros/latex/contrib/tramlines/tramlines.sty24
-rw-r--r--macros/luatex/generic/lparse/README.md34
-rw-r--r--macros/luatex/generic/lparse/lparse-doc.tex205
-rw-r--r--macros/luatex/generic/lparse/lparse.lua302
-rw-r--r--macros/luatex/generic/lparse/lparse.pdfbin0 -> 108107 bytes
-rw-r--r--macros/luatex/generic/lparse/lparse.sty22
-rw-r--r--macros/luatex/generic/lparse/lparse.tex22
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb310
-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.asc14
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.xzbin2446908 -> 2446580 bytes
-rw-r--r--timestamp2
117 files changed, 5381 insertions, 1546 deletions
diff --git a/FILES.byname b/FILES.byname
index b7285f9815..1221043e2d 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -87,7 +87,7 @@
2022/09/02 | 16825 | biblio/bibtex/bibtex-x/bibtex.c
2022/05/17 | 68194 | biblio/bibtex/bibtex-x/bibtex.h
2022/08/31 | 4015 | biblio/bibtex/bibtex-x/bibtexu.1
-2022/09/13 | 19994 | biblio/bibtex/bibtex-x/ChangeLog
+2023/01/29 | 20268 | biblio/bibtex/bibtex-x/ChangeLog
2021/06/30 | 4848 | biblio/bibtex/bibtex-x/config.h.in
2007/07/03 | 710 | biblio/bibtex/bibtex-x/configure
2022/04/29 | 1499 | biblio/bibtex/bibtex-x/configure.ac
@@ -117,9 +117,9 @@
2022/05/08 | 562 | biblio/bibtex/bibtex-x/tests/bibtex8.test
2022/04/16 | 1531 | biblio/bibtex/bibtex-x/tests/bibtex8u-mem.test
2021/06/21 | 750 | biblio/bibtex/bibtex-x/tests/bibtexu-basic.test
-2022/05/02 | 1545 | biblio/bibtex/bibtex-x/tests/bibtexu-char.test
+2023/01/29 | 1698 | biblio/bibtex/bibtex-x/tests/bibtexu-char.test
2021/06/21 | 617 | biblio/bibtex/bibtex-x/tests/bibtexu-range.test
-2022/05/08 | 745 | biblio/bibtex/bibtex-x/tests/bibtexu-sort.test
+2023/01/29 | 896 | biblio/bibtex/bibtex-x/tests/bibtexu-sort.test
2022/05/08 | 559 | biblio/bibtex/bibtex-x/tests/bibtexu.test
2021/08/21 | 704 | biblio/bibtex/bibtex-x/tests/bibtexu-yannis.test
2022/04/16 | 61 | biblio/bibtex/bibtex-x/tests/casea.aux
@@ -205,7 +205,7 @@
2022/05/22 | 94162 | biblio/bibtex/bibtex-x/utils.c
2022/04/29 | 5163 | biblio/bibtex/bibtex-x/utils.h
2022/05/22 | 3731 | biblio/bibtex/bibtex-x/version.h
-2022/10/07 | 515766 | biblio/bibtex/bibtex-x.zip
+2023/01/30 | 516037 | biblio/bibtex/bibtex-x.zip
1991/09/08 | 918 | biblio/bibtex/contrib/abstyles/a4c.sty
1991/09/28 | 1000 | biblio/bibtex/contrib/abstyles/a4c.tex
1992/05/25 | 17727 | biblio/bibtex/contrib/abstyles/aabbrv.bst
@@ -1139,24 +1139,24 @@
1992/07/20 | 482 | biblio/bibtex/contrib/test/test-siam.ltx
1992/07/20 | 486 | biblio/bibtex/contrib/test/test-unsrt.ltx
2005/09/29 | 27548 | biblio/bibtex/contrib/test.zip
-2022/12/04 | 32656 | biblio/bibtex/contrib/urlbst/abbrvurl.bst
-2022/12/04 | 36234 | biblio/bibtex/contrib/urlbst/alphaurl.bst
-2022/12/04 | 88026 | biblio/bibtex/contrib/urlbst/configure
-2022/12/04 | 2166 | biblio/bibtex/contrib/urlbst/configure.ac
-2022/12/04 | 18092 | biblio/bibtex/contrib/urlbst/LICENCE-gpl-2.0.txt
-2022/12/04 | 19106 | biblio/bibtex/contrib/urlbst/LICENCE-lppl.txt
-2022/12/04 | 5325 | biblio/bibtex/contrib/urlbst/Makefile.in
-2022/12/04 | 32940 | biblio/bibtex/contrib/urlbst/plainurl.bst
-2022/12/04 | 2422 | biblio/bibtex/contrib/urlbst/README
-2022/12/04 | 30357 | biblio/bibtex/contrib/urlbst/unsrturl.bst
-2022/12/04 | 29492 | biblio/bibtex/contrib/urlbst/urlbst
-2022/12/04 | 6735 | biblio/bibtex/contrib/urlbst/urlbst.bib
-2022/12/04 | 21779 | biblio/bibtex/contrib/urlbst/urlbst.html
-2022/12/04 | 29433 | biblio/bibtex/contrib/urlbst/urlbst.in
-2022/12/04 | 222858 | biblio/bibtex/contrib/urlbst/urlbst.pdf
-2022/12/04 | 20663 | biblio/bibtex/contrib/urlbst/urlbst.tex
-2022/12/04 | 11 | biblio/bibtex/contrib/urlbst/VERSION
-2022/12/04 | 329334 | biblio/bibtex/contrib/urlbst.zip
+2023/01/30 | 33211 | biblio/bibtex/contrib/urlbst/abbrvurl.bst
+2023/01/30 | 36789 | biblio/bibtex/contrib/urlbst/alphaurl.bst
+2023/01/30 | 88019 | biblio/bibtex/contrib/urlbst/configure
+2023/01/30 | 2222 | biblio/bibtex/contrib/urlbst/configure.ac
+2023/01/30 | 18092 | biblio/bibtex/contrib/urlbst/LICENCE-gpl-2.0.txt
+2023/01/30 | 19106 | biblio/bibtex/contrib/urlbst/LICENCE-lppl.txt
+2023/01/30 | 5325 | biblio/bibtex/contrib/urlbst/Makefile.in
+2023/01/30 | 33495 | biblio/bibtex/contrib/urlbst/plainurl.bst
+2023/01/30 | 2399 | biblio/bibtex/contrib/urlbst/README
+2023/01/30 | 30912 | biblio/bibtex/contrib/urlbst/unsrturl.bst
+2023/01/30 | 29997 | biblio/bibtex/contrib/urlbst/urlbst
+2023/01/30 | 7114 | biblio/bibtex/contrib/urlbst/urlbst.bib
+2023/01/30 | 21926 | biblio/bibtex/contrib/urlbst/urlbst.html
+2023/01/30 | 30011 | biblio/bibtex/contrib/urlbst/urlbst.in
+2023/01/30 | 223396 | biblio/bibtex/contrib/urlbst/urlbst.pdf
+2023/01/30 | 20897 | biblio/bibtex/contrib/urlbst/urlbst.tex
+2023/01/30 | 13 | biblio/bibtex/contrib/urlbst/VERSION
+2023/01/30 | 331330 | biblio/bibtex/contrib/urlbst.zip
2011/07/04 | 1081 | biblio/bibtex/contrib/vak/README
2011/07/04 | 43298 | biblio/bibtex/contrib/vak/test-key.zip
2011/07/04 | 46165 | biblio/bibtex/contrib/vak/test.zip
@@ -2048,12 +2048,12 @@
2022/12/25 | 1673 | biblio/citation-style-language/README.md
2022/12/25 | 11958 | biblio/citation-style-language/vancouver.csl
2022/12/25 | 604004 | biblio/citation-style-language.zip
-2023/01/29 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2023/01/30 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
2022/10/08 | 127 | biblio/ctan-bibdata/biblatex-ctan/ctan.cbx
-2023/01/29 | 2763869 | biblio/ctan-bibdata/ctan.bib
-2023/01/29 | 3646557 | biblio/ctan-bibdata/ctan.pdf
+2023/01/30 | 2764218 | biblio/ctan-bibdata/ctan.bib
+2023/01/30 | 3646376 | biblio/ctan-bibdata/ctan.pdf
2023/01/16 | 1489 | biblio/ctan-bibdata/README
-2023/01/29 | 4042194 | biblio/ctan-bibdata.zip
+2023/01/30 | 4042164 | biblio/ctan-bibdata.zip
2022/02/06 | 3110 | biblio/pbibtex/pbibtex-base/cpp.awk
2022/02/06 | 1009 | biblio/pbibtex/pbibtex-base/generate.sh
2022/02/06 | 22422 | biblio/pbibtex/pbibtex-base/jabbrv.bst
@@ -3875,34 +3875,34 @@
1990/10/02 | 159 | dviware/dvisun/makefile
1990/10/02 | 280 | dviware/dvisun/README
2019/06/09 | 55720 | dviware/dvisun.zip
-2023/01/10 | 61535 | dviware/dvisvgm/aclocal.m4
-2023/01/10 | 6748 | dviware/dvisvgm/aminclude_static.am
+2023/01/30 | 61535 | dviware/dvisvgm/aclocal.m4
+2023/01/30 | 6748 | dviware/dvisvgm/aminclude_static.am
2022/12/08 | 5875 | dviware/dvisvgm/ar-lib
2022/10/13 | 576 | dviware/dvisvgm/AUTHORS
2022/12/08 | 7400 | dviware/dvisvgm/compile
2022/12/08 | 49797 | dviware/dvisvgm/config.guess
-2023/01/10 | 4611 | dviware/dvisvgm/config.h.in
+2023/01/30 | 4611 | dviware/dvisvgm/config.h.in
2022/12/08 | 35409 | dviware/dvisvgm/config.sub
-2023/01/10 | 707079 | dviware/dvisvgm/configure
-2023/01/10 | 8424 | dviware/dvisvgm/configure.ac
+2023/01/30 | 707079 | dviware/dvisvgm/configure
+2023/01/30 | 8424 | dviware/dvisvgm/configure.ac
2022/10/13 | 35147 | dviware/dvisvgm/COPYING
2022/12/08 | 23568 | dviware/dvisvgm/depcomp
-2023/01/10 | 718 | dviware/dvisvgm/doc/conf-dblatex-man.xsl
-2023/01/10 | 2618 | dviware/dvisvgm/doc/conf-dblatex-pdf.xsl
-2023/01/10 | 72193 | dviware/dvisvgm/doc/dvisvgm.1
-2023/01/10 | 65338 | dviware/dvisvgm/doc/dvisvgm.txt.in
+2023/01/17 | 718 | dviware/dvisvgm/doc/conf-dblatex-man.xsl
+2023/01/17 | 2618 | dviware/dvisvgm/doc/conf-dblatex-pdf.xsl
+2023/01/30 | 72193 | dviware/dvisvgm/doc/dvisvgm.1
+2023/01/17 | 65338 | dviware/dvisvgm/doc/dvisvgm.txt.in
2022/10/13 | 840 | dviware/dvisvgm/doc/generate-dvisvgm-sty.xsl
-2023/01/10 | 3692 | dviware/dvisvgm/doc/Makefile.am
-2023/01/10 | 21573 | dviware/dvisvgm/doc/Makefile.in
-2023/01/10 | 1041 | dviware/dvisvgm/doc/tweak-dblatex-pdf.xsl
+2023/01/17 | 3692 | dviware/dvisvgm/doc/Makefile.am
+2023/01/30 | 21573 | dviware/dvisvgm/doc/Makefile.in
+2023/01/17 | 1041 | dviware/dvisvgm/doc/tweak-dblatex-pdf.xsl
2022/10/13 | 717 | dviware/dvisvgm/doc/tweak-dblatex-tex.py
-2023/01/10 | 1698 | dviware/dvisvgm/doc/tweak-db-refentry.xsl
+2023/01/17 | 1698 | dviware/dvisvgm/doc/tweak-db-refentry.xsl
2022/10/13 | 9236 | dviware/dvisvgm/INSTALL
2022/12/08 | 15358 | dviware/dvisvgm/install-sh
2023/01/10 | 25426 | dviware/dvisvgm/libs/boost/boost-vectorstream.hpp
2023/01/10 | 1338 | dviware/dvisvgm/libs/boost/LICENSE.txt
2023/01/10 | 89 | dviware/dvisvgm/libs/boost/Makefile.am
-2023/01/10 | 15803 | dviware/dvisvgm/libs/boost/Makefile.in
+2023/01/30 | 15803 | dviware/dvisvgm/libs/boost/Makefile.in
2023/01/10 | 479 | dviware/dvisvgm/libs/boost/vectorstream.hpp
2022/10/13 | 623 | dviware/dvisvgm/libs/brotli/common/constants.c
2022/10/13 | 8012 | dviware/dvisvgm/libs/brotli/common/constants.h
@@ -3983,17 +3983,17 @@
2022/10/13 | 2615 | dviware/dvisvgm/libs/brotli/include/brotli/types.h
2022/10/13 | 1084 | dviware/dvisvgm/libs/brotli/LICENSE
2022/12/14 | 1975 | dviware/dvisvgm/libs/brotli/Makefile.am
-2023/01/10 | 33531 | dviware/dvisvgm/libs/brotli/Makefile.in
+2023/01/30 | 33531 | dviware/dvisvgm/libs/brotli/Makefile.in
2022/10/13 | 132235 | dviware/dvisvgm/libs/clipper/clipper.cpp
2022/10/13 | 15879 | dviware/dvisvgm/libs/clipper/clipper.hpp
2022/10/13 | 1374 | dviware/dvisvgm/libs/clipper/License.txt
2022/12/14 | 179 | dviware/dvisvgm/libs/clipper/Makefile.am
-2023/01/10 | 20513 | dviware/dvisvgm/libs/clipper/Makefile.in
+2023/01/30 | 20513 | dviware/dvisvgm/libs/clipper/Makefile.in
2022/12/06 | 467 | dviware/dvisvgm/libs/defs.am
-2023/01/10 | 239 | dviware/dvisvgm/libs/Makefile.am
-2023/01/10 | 20130 | dviware/dvisvgm/libs/Makefile.in
+2023/01/17 | 239 | dviware/dvisvgm/libs/Makefile.am
+2023/01/30 | 20130 | dviware/dvisvgm/libs/Makefile.in
2022/12/14 | 149 | dviware/dvisvgm/libs/md5/Makefile.am
-2023/01/10 | 19698 | dviware/dvisvgm/libs/md5/Makefile.in
+2023/01/30 | 19698 | dviware/dvisvgm/libs/md5/Makefile.in
2022/10/13 | 8743 | dviware/dvisvgm/libs/md5/md5.c
2022/10/13 | 1426 | dviware/dvisvgm/libs/md5/md5.h
2022/10/13 | 2146 | dviware/dvisvgm/libs/potrace/auxiliary.h
@@ -4005,7 +4005,7 @@
2022/10/13 | 442 | dviware/dvisvgm/libs/potrace/decompose.h
2022/10/13 | 11118 | dviware/dvisvgm/libs/potrace/lists.h
2022/12/14 | 308 | dviware/dvisvgm/libs/potrace/Makefile.am
-2023/01/10 | 20959 | dviware/dvisvgm/libs/potrace/Makefile.in
+2023/01/30 | 20959 | dviware/dvisvgm/libs/potrace/Makefile.in
2022/10/13 | 3122 | dviware/dvisvgm/libs/potrace/potracelib.c
2022/10/13 | 4573 | dviware/dvisvgm/libs/potrace/potracelib.h
2022/10/13 | 2654 | dviware/dvisvgm/libs/potrace/progress.h
@@ -4014,14 +4014,14 @@
2022/10/13 | 102582 | dviware/dvisvgm/libs/variant/include/mpark/variant.hpp
2022/10/13 | 1338 | dviware/dvisvgm/libs/variant/LICENSE.md
2022/10/13 | 71 | dviware/dvisvgm/libs/variant/Makefile.am
-2023/01/10 | 15791 | dviware/dvisvgm/libs/variant/Makefile.in
+2023/01/30 | 15791 | dviware/dvisvgm/libs/variant/Makefile.in
2022/10/13 | 1171 | dviware/dvisvgm/libs/woff2/include/woff2/decode.h
2022/10/13 | 1434 | dviware/dvisvgm/libs/woff2/include/woff2/encode.h
2022/10/13 | 2304 | dviware/dvisvgm/libs/woff2/include/woff2/output.h
2022/10/13 | 131 | dviware/dvisvgm/libs/woff2/include/woff2/version.h
2022/10/13 | 11358 | dviware/dvisvgm/libs/woff2/LICENSE
2022/12/14 | 679 | dviware/dvisvgm/libs/woff2/Makefile.am
-2023/01/10 | 24838 | dviware/dvisvgm/libs/woff2/Makefile.in
+2023/01/30 | 24838 | dviware/dvisvgm/libs/woff2/Makefile.in
2022/10/13 | 4185 | dviware/dvisvgm/libs/woff2/src/buffer.h
2022/10/13 | 12155 | dviware/dvisvgm/libs/woff2/src/font.cc
2022/10/13 | 3509 | dviware/dvisvgm/libs/woff2/src/font.h
@@ -4043,7 +4043,7 @@
2022/10/13 | 15414 | dviware/dvisvgm/libs/woff2/src/woff2_enc.cc
2022/10/13 | 1543 | dviware/dvisvgm/libs/woff2/src/woff2_out.cc
2022/12/14 | 178 | dviware/dvisvgm/libs/xxHash/Makefile.am
-2023/01/10 | 19806 | dviware/dvisvgm/libs/xxHash/Makefile.in
+2023/01/30 | 19806 | dviware/dvisvgm/libs/xxHash/Makefile.in
2022/10/13 | 2394 | dviware/dvisvgm/libs/xxHash/xxh3.h
2022/10/13 | 1855 | dviware/dvisvgm/libs/xxHash/xxhash.c
2022/10/13 | 209623 | dviware/dvisvgm/libs/xxHash/xxhash.h
@@ -4062,90 +4062,90 @@
2022/12/08 | 14525 | dviware/dvisvgm/m4/ltoptions.m4
2022/12/08 | 4395 | dviware/dvisvgm/m4/ltsugar.m4
2022/12/08 | 714 | dviware/dvisvgm/m4/ltversion.m4
-2023/01/10 | 784 | dviware/dvisvgm/Makefile.am
-2023/01/10 | 36547 | dviware/dvisvgm/Makefile.in
+2023/01/17 | 784 | dviware/dvisvgm/Makefile.am
+2023/01/30 | 36547 | dviware/dvisvgm/Makefile.in
2022/12/08 | 6878 | dviware/dvisvgm/missing
-2023/01/10 | 41393 | dviware/dvisvgm/NEWS
-2023/01/10 | 5835 | dviware/dvisvgm/README
-2023/01/10 | 158418 | dviware/dvisvgm/src/AGLTable.hpp
-2023/01/10 | 15777 | dviware/dvisvgm/src/BasicDVIReader.cpp
-2023/01/10 | 5248 | dviware/dvisvgm/src/BasicDVIReader.hpp
-2023/01/10 | 14569 | dviware/dvisvgm/src/Bezier.cpp
-2023/01/10 | 3396 | dviware/dvisvgm/src/Bezier.hpp
-2023/01/10 | 3164 | dviware/dvisvgm/src/BgColorSpecialHandler.cpp
-2023/01/10 | 2228 | dviware/dvisvgm/src/BgColorSpecialHandler.hpp
-2023/01/10 | 4889 | dviware/dvisvgm/src/Bitmap.cpp
-2023/01/10 | 4166 | dviware/dvisvgm/src/Bitmap.hpp
-2023/01/10 | 8299 | dviware/dvisvgm/src/BoundingBox.cpp
-2023/01/10 | 3970 | dviware/dvisvgm/src/BoundingBox.hpp
-2023/01/10 | 6779 | dviware/dvisvgm/src/Calculator.cpp
-2023/01/10 | 2365 | dviware/dvisvgm/src/Calculator.hpp
-2023/01/10 | 2000 | dviware/dvisvgm/src/Character.hpp
-2023/01/10 | 2040 | dviware/dvisvgm/src/CharMapID.cpp
-2023/01/10 | 2541 | dviware/dvisvgm/src/CharMapID.hpp
-2023/01/10 | 8309 | dviware/dvisvgm/src/CLCommandLine.cpp
-2023/01/10 | 2891 | dviware/dvisvgm/src/CLCommandLine.hpp
-2023/01/10 | 6531 | dviware/dvisvgm/src/CLOption.hpp
-2023/01/10 | 3537 | dviware/dvisvgm/src/CMap.cpp
-2023/01/10 | 4475 | dviware/dvisvgm/src/CMap.hpp
-2023/01/10 | 5299 | dviware/dvisvgm/src/CMapManager.cpp
-2023/01/10 | 2221 | dviware/dvisvgm/src/CMapManager.hpp
-2023/01/10 | 8332 | dviware/dvisvgm/src/CMapReader.cpp
-2023/01/10 | 3080 | dviware/dvisvgm/src/CMapReader.hpp
-2023/01/10 | 19513 | dviware/dvisvgm/src/Color.cpp
-2023/01/10 | 4778 | dviware/dvisvgm/src/Color.hpp
-2023/01/10 | 4118 | dviware/dvisvgm/src/ColorSpecialHandler.cpp
-2023/01/10 | 2118 | dviware/dvisvgm/src/ColorSpecialHandler.hpp
-2023/01/10 | 7920 | dviware/dvisvgm/src/CommandLine.hpp
-2023/01/10 | 3410 | dviware/dvisvgm/src/Directory.cpp
-2023/01/10 | 2053 | dviware/dvisvgm/src/Directory.hpp
-2023/01/10 | 2290 | dviware/dvisvgm/src/DLLoader.cpp
-2023/01/10 | 2539 | dviware/dvisvgm/src/DLLoader.hpp
-2023/01/10 | 2334 | dviware/dvisvgm/src/DVIActions.hpp
-2023/01/10 | 25945 | dviware/dvisvgm/src/DVIReader.cpp
-2023/01/10 | 8202 | dviware/dvisvgm/src/DVIReader.hpp
-2023/01/10 | 18502 | dviware/dvisvgm/src/dvisvgm.cpp
-2023/01/10 | 15928 | dviware/dvisvgm/src/DvisvgmSpecialHandler.cpp
-2023/01/10 | 4629 | dviware/dvisvgm/src/DvisvgmSpecialHandler.hpp
-2023/01/10 | 12178 | dviware/dvisvgm/src/DVIToSVGActions.cpp
-2023/01/10 | 4798 | dviware/dvisvgm/src/DVIToSVGActions.hpp
-2023/01/10 | 21204 | dviware/dvisvgm/src/DVIToSVG.cpp
-2023/01/10 | 5630 | dviware/dvisvgm/src/DVIToSVG.hpp
-2023/01/10 | 10966 | dviware/dvisvgm/src/EllipticalArc.cpp
-2023/01/10 | 3105 | dviware/dvisvgm/src/EllipticalArc.hpp
-2023/01/10 | 9740 | dviware/dvisvgm/src/EmSpecialHandler.cpp
-2023/01/10 | 2930 | dviware/dvisvgm/src/EmSpecialHandler.hpp
-2023/01/10 | 3935 | dviware/dvisvgm/src/EncFile.cpp
-2023/01/10 | 2116 | dviware/dvisvgm/src/EncFile.hpp
-2023/01/10 | 3776 | dviware/dvisvgm/src/EPSFile.cpp
-2023/01/10 | 2051 | dviware/dvisvgm/src/EPSFile.hpp
-2023/01/10 | 2098 | dviware/dvisvgm/src/EPSToSVG.hpp
-2023/01/10 | 10261 | dviware/dvisvgm/src/FileFinder.cpp
-2023/01/10 | 2586 | dviware/dvisvgm/src/FileFinder.hpp
-2023/01/10 | 10423 | dviware/dvisvgm/src/FilePath.cpp
-2023/01/10 | 3434 | dviware/dvisvgm/src/FilePath.hpp
-2023/01/10 | 11840 | dviware/dvisvgm/src/FileSystem.cpp
-2023/01/10 | 3267 | dviware/dvisvgm/src/FileSystem.hpp
-2023/01/10 | 1821 | dviware/dvisvgm/src/FixWord.hpp
-2023/01/10 | 12504 | dviware/dvisvgm/src/FontCache.cpp
-2023/01/10 | 2857 | dviware/dvisvgm/src/FontCache.hpp
-2023/01/10 | 23462 | dviware/dvisvgm/src/Font.cpp
-2023/01/10 | 3488 | dviware/dvisvgm/src/FontEncoding.cpp
-2023/01/10 | 2795 | dviware/dvisvgm/src/FontEncoding.hpp
-2023/01/10 | 15229 | dviware/dvisvgm/src/FontEngine.cpp
-2023/01/10 | 3495 | dviware/dvisvgm/src/FontEngine.hpp
-2023/01/10 | 19615 | dviware/dvisvgm/src/Font.hpp
-2023/01/10 | 14419 | dviware/dvisvgm/src/FontManager.cpp
-2023/01/10 | 4590 | dviware/dvisvgm/src/FontManager.hpp
-2023/01/10 | 9316 | dviware/dvisvgm/src/FontMap.cpp
-2023/01/10 | 2909 | dviware/dvisvgm/src/FontMap.hpp
-2023/01/10 | 1984 | dviware/dvisvgm/src/FontMetrics.cpp
-2023/01/10 | 3441 | dviware/dvisvgm/src/FontMetrics.hpp
-2023/01/10 | 3187 | dviware/dvisvgm/src/fonts/Base14Fonts.cpp
-2023/01/10 | 1633 | dviware/dvisvgm/src/fonts/Base14Fonts.hpp
+2023/01/30 | 41660 | dviware/dvisvgm/NEWS
+2023/01/17 | 5835 | dviware/dvisvgm/README
+2023/01/17 | 158418 | dviware/dvisvgm/src/AGLTable.hpp
+2023/01/17 | 15777 | dviware/dvisvgm/src/BasicDVIReader.cpp
+2023/01/17 | 5248 | dviware/dvisvgm/src/BasicDVIReader.hpp
+2023/01/17 | 14569 | dviware/dvisvgm/src/Bezier.cpp
+2023/01/19 | 3376 | dviware/dvisvgm/src/Bezier.hpp
+2023/01/17 | 3164 | dviware/dvisvgm/src/BgColorSpecialHandler.cpp
+2023/01/17 | 2228 | dviware/dvisvgm/src/BgColorSpecialHandler.hpp
+2023/01/17 | 4889 | dviware/dvisvgm/src/Bitmap.cpp
+2023/01/17 | 4166 | dviware/dvisvgm/src/Bitmap.hpp
+2023/01/17 | 8299 | dviware/dvisvgm/src/BoundingBox.cpp
+2023/01/17 | 3970 | dviware/dvisvgm/src/BoundingBox.hpp
+2023/01/17 | 6779 | dviware/dvisvgm/src/Calculator.cpp
+2023/01/17 | 2365 | dviware/dvisvgm/src/Calculator.hpp
+2023/01/17 | 2000 | dviware/dvisvgm/src/Character.hpp
+2023/01/17 | 2040 | dviware/dvisvgm/src/CharMapID.cpp
+2023/01/17 | 2541 | dviware/dvisvgm/src/CharMapID.hpp
+2023/01/17 | 8309 | dviware/dvisvgm/src/CLCommandLine.cpp
+2023/01/17 | 2891 | dviware/dvisvgm/src/CLCommandLine.hpp
+2023/01/17 | 6531 | dviware/dvisvgm/src/CLOption.hpp
+2023/01/17 | 3537 | dviware/dvisvgm/src/CMap.cpp
+2023/01/17 | 4475 | dviware/dvisvgm/src/CMap.hpp
+2023/01/17 | 5299 | dviware/dvisvgm/src/CMapManager.cpp
+2023/01/17 | 2221 | dviware/dvisvgm/src/CMapManager.hpp
+2023/01/17 | 8332 | dviware/dvisvgm/src/CMapReader.cpp
+2023/01/17 | 3080 | dviware/dvisvgm/src/CMapReader.hpp
+2023/01/17 | 19513 | dviware/dvisvgm/src/Color.cpp
+2023/01/17 | 4778 | dviware/dvisvgm/src/Color.hpp
+2023/01/17 | 4118 | dviware/dvisvgm/src/ColorSpecialHandler.cpp
+2023/01/17 | 2118 | dviware/dvisvgm/src/ColorSpecialHandler.hpp
+2023/01/30 | 7920 | dviware/dvisvgm/src/CommandLine.hpp
+2023/01/17 | 3410 | dviware/dvisvgm/src/Directory.cpp
+2023/01/17 | 2053 | dviware/dvisvgm/src/Directory.hpp
+2023/01/17 | 2290 | dviware/dvisvgm/src/DLLoader.cpp
+2023/01/17 | 2539 | dviware/dvisvgm/src/DLLoader.hpp
+2023/01/17 | 2334 | dviware/dvisvgm/src/DVIActions.hpp
+2023/01/17 | 25945 | dviware/dvisvgm/src/DVIReader.cpp
+2023/01/17 | 8202 | dviware/dvisvgm/src/DVIReader.hpp
+2023/01/17 | 18502 | dviware/dvisvgm/src/dvisvgm.cpp
+2023/01/17 | 15928 | dviware/dvisvgm/src/DvisvgmSpecialHandler.cpp
+2023/01/17 | 4629 | dviware/dvisvgm/src/DvisvgmSpecialHandler.hpp
+2023/01/17 | 12178 | dviware/dvisvgm/src/DVIToSVGActions.cpp
+2023/01/17 | 4798 | dviware/dvisvgm/src/DVIToSVGActions.hpp
+2023/01/17 | 21204 | dviware/dvisvgm/src/DVIToSVG.cpp
+2023/01/17 | 5630 | dviware/dvisvgm/src/DVIToSVG.hpp
+2023/01/17 | 10966 | dviware/dvisvgm/src/EllipticalArc.cpp
+2023/01/17 | 3105 | dviware/dvisvgm/src/EllipticalArc.hpp
+2023/01/17 | 9740 | dviware/dvisvgm/src/EmSpecialHandler.cpp
+2023/01/17 | 2930 | dviware/dvisvgm/src/EmSpecialHandler.hpp
+2023/01/17 | 3935 | dviware/dvisvgm/src/EncFile.cpp
+2023/01/17 | 2116 | dviware/dvisvgm/src/EncFile.hpp
+2023/01/17 | 3776 | dviware/dvisvgm/src/EPSFile.cpp
+2023/01/17 | 2051 | dviware/dvisvgm/src/EPSFile.hpp
+2023/01/17 | 2098 | dviware/dvisvgm/src/EPSToSVG.hpp
+2023/01/17 | 10261 | dviware/dvisvgm/src/FileFinder.cpp
+2023/01/17 | 2586 | dviware/dvisvgm/src/FileFinder.hpp
+2023/01/17 | 10423 | dviware/dvisvgm/src/FilePath.cpp
+2023/01/17 | 3434 | dviware/dvisvgm/src/FilePath.hpp
+2023/01/17 | 11840 | dviware/dvisvgm/src/FileSystem.cpp
+2023/01/17 | 3267 | dviware/dvisvgm/src/FileSystem.hpp
+2023/01/17 | 1821 | dviware/dvisvgm/src/FixWord.hpp
+2023/01/17 | 12504 | dviware/dvisvgm/src/FontCache.cpp
+2023/01/17 | 2857 | dviware/dvisvgm/src/FontCache.hpp
+2023/01/17 | 23462 | dviware/dvisvgm/src/Font.cpp
+2023/01/17 | 3488 | dviware/dvisvgm/src/FontEncoding.cpp
+2023/01/17 | 2795 | dviware/dvisvgm/src/FontEncoding.hpp
+2023/01/17 | 15229 | dviware/dvisvgm/src/FontEngine.cpp
+2023/01/17 | 3495 | dviware/dvisvgm/src/FontEngine.hpp
+2023/01/17 | 19615 | dviware/dvisvgm/src/Font.hpp
+2023/01/30 | 14516 | dviware/dvisvgm/src/FontManager.cpp
+2023/01/30 | 4496 | dviware/dvisvgm/src/FontManager.hpp
+2023/01/17 | 9316 | dviware/dvisvgm/src/FontMap.cpp
+2023/01/17 | 2909 | dviware/dvisvgm/src/FontMap.hpp
+2023/01/17 | 1984 | dviware/dvisvgm/src/FontMetrics.cpp
+2023/01/17 | 3441 | dviware/dvisvgm/src/FontMetrics.hpp
+2023/01/17 | 3354 | dviware/dvisvgm/src/fonts/Base14Fonts.cpp
+2023/01/17 | 1633 | dviware/dvisvgm/src/fonts/Base14Fonts.hpp
2023/01/10 | 102294 | dviware/dvisvgm/src/fonts/Dingbats.cff.cpp
2023/01/10 | 524 | dviware/dvisvgm/src/fonts/Makefile.am
-2023/01/10 | 24685 | dviware/dvisvgm/src/fonts/Makefile.in
+2023/01/30 | 24685 | dviware/dvisvgm/src/fonts/Makefile.in
2023/01/10 | 213800 | dviware/dvisvgm/src/fonts/NimbusMonoPS-Bold.cff.cpp
2023/01/10 | 242499 | dviware/dvisvgm/src/fonts/NimbusMonoPS-BoldItalic.cff.cpp
2023/01/10 | 214886 | dviware/dvisvgm/src/fonts/NimbusMonoPS-Italic.cff.cpp
@@ -4159,224 +4159,224 @@
2023/01/10 | 163464 | dviware/dvisvgm/src/fonts/NimbusSans-Italic.cff.cpp
2023/01/10 | 135805 | dviware/dvisvgm/src/fonts/NimbusSans-Regular.cff.cpp
2023/01/10 | 66397 | dviware/dvisvgm/src/fonts/StandardSymbolsPS.cff.cpp
-2023/01/10 | 1805 | dviware/dvisvgm/src/FontStyle.hpp
-2023/01/10 | 7138 | dviware/dvisvgm/src/FontWriter.cpp
-2023/01/10 | 2817 | dviware/dvisvgm/src/FontWriter.hpp
-2023/01/10 | 2757 | dviware/dvisvgm/src/GFGlyphTracer.cpp
-2023/01/10 | 2583 | dviware/dvisvgm/src/GFGlyphTracer.hpp
-2023/01/10 | 10879 | dviware/dvisvgm/src/GFReader.cpp
-2023/01/10 | 3967 | dviware/dvisvgm/src/GFReader.hpp
-2023/01/10 | 3610 | dviware/dvisvgm/src/GFTracer.cpp
-2023/01/10 | 2107 | dviware/dvisvgm/src/GFTracer.hpp
-2023/01/10 | 11978 | dviware/dvisvgm/src/Ghostscript.cpp
-2023/01/10 | 4056 | dviware/dvisvgm/src/Ghostscript.hpp
-2023/01/10 | 1537 | dviware/dvisvgm/src/Glyph.hpp
-2023/01/10 | 2941 | dviware/dvisvgm/src/GlyphTracerMessages.hpp
-2023/01/10 | 27853 | dviware/dvisvgm/src/GraphicsPath.hpp
-2023/01/10 | 9726 | dviware/dvisvgm/src/GraphicsPathParser.hpp
-2023/01/10 | 3609 | dviware/dvisvgm/src/HashFunction.cpp
-2023/01/10 | 2548 | dviware/dvisvgm/src/HashFunction.hpp
-2023/01/10 | 3623 | dviware/dvisvgm/src/HtmlSpecialHandler.cpp
-2023/01/10 | 2214 | dviware/dvisvgm/src/HtmlSpecialHandler.hpp
-2023/01/10 | 9663 | dviware/dvisvgm/src/HyperlinkManager.cpp
-2023/01/10 | 3982 | dviware/dvisvgm/src/HyperlinkManager.hpp
+2023/01/17 | 1805 | dviware/dvisvgm/src/FontStyle.hpp
+2023/01/17 | 7138 | dviware/dvisvgm/src/FontWriter.cpp
+2023/01/17 | 2817 | dviware/dvisvgm/src/FontWriter.hpp
+2023/01/17 | 2757 | dviware/dvisvgm/src/GFGlyphTracer.cpp
+2023/01/17 | 2583 | dviware/dvisvgm/src/GFGlyphTracer.hpp
+2023/01/17 | 10879 | dviware/dvisvgm/src/GFReader.cpp
+2023/01/17 | 3967 | dviware/dvisvgm/src/GFReader.hpp
+2023/01/17 | 3610 | dviware/dvisvgm/src/GFTracer.cpp
+2023/01/17 | 2107 | dviware/dvisvgm/src/GFTracer.hpp
+2023/01/17 | 11978 | dviware/dvisvgm/src/Ghostscript.cpp
+2023/01/17 | 4056 | dviware/dvisvgm/src/Ghostscript.hpp
+2023/01/17 | 1537 | dviware/dvisvgm/src/Glyph.hpp
+2023/01/17 | 2941 | dviware/dvisvgm/src/GlyphTracerMessages.hpp
+2023/01/17 | 27853 | dviware/dvisvgm/src/GraphicsPath.hpp
+2023/01/17 | 9726 | dviware/dvisvgm/src/GraphicsPathParser.hpp
+2023/01/17 | 3609 | dviware/dvisvgm/src/HashFunction.cpp
+2023/01/17 | 2548 | dviware/dvisvgm/src/HashFunction.hpp
+2023/01/17 | 3623 | dviware/dvisvgm/src/HtmlSpecialHandler.cpp
+2023/01/17 | 2214 | dviware/dvisvgm/src/HtmlSpecialHandler.hpp
+2023/01/17 | 9663 | dviware/dvisvgm/src/HyperlinkManager.cpp
+2023/01/17 | 3982 | dviware/dvisvgm/src/HyperlinkManager.hpp
2022/10/13 | 10028 | dviware/dvisvgm/src/iapi.h
2023/01/10 | 4595 | dviware/dvisvgm/src/ierrors.h
-2023/01/10 | 7118 | dviware/dvisvgm/src/ImageToSVG.cpp
-2023/01/10 | 4659 | dviware/dvisvgm/src/ImageToSVG.hpp
-2023/01/10 | 3788 | dviware/dvisvgm/src/InputBuffer.cpp
-2023/01/10 | 5059 | dviware/dvisvgm/src/InputBuffer.hpp
-2023/01/10 | 12240 | dviware/dvisvgm/src/InputReader.cpp
-2023/01/10 | 4184 | dviware/dvisvgm/src/InputReader.hpp
-2023/01/10 | 4491 | dviware/dvisvgm/src/JFM.cpp
-2023/01/10 | 2166 | dviware/dvisvgm/src/JFM.hpp
-2023/01/10 | 4728 | dviware/dvisvgm/src/Length.cpp
-2023/01/10 | 4138 | dviware/dvisvgm/src/Length.hpp
-2023/01/10 | 2014 | dviware/dvisvgm/src/macros.hpp
-2023/01/10 | 7119 | dviware/dvisvgm/src/Makefile.am
-2023/01/10 | 56349 | dviware/dvisvgm/src/Makefile.in
-2023/01/10 | 8515 | dviware/dvisvgm/src/MapLine.cpp
-2023/01/10 | 3089 | dviware/dvisvgm/src/MapLine.hpp
-2023/01/10 | 17194 | dviware/dvisvgm/src/Matrix.cpp
-2023/01/10 | 4227 | dviware/dvisvgm/src/Matrix.hpp
-2023/01/10 | 2704 | dviware/dvisvgm/src/MD5HashFunction.hpp
-2023/01/10 | 7509 | dviware/dvisvgm/src/Message.cpp
-2023/01/10 | 1779 | dviware/dvisvgm/src/MessageException.hpp
-2023/01/10 | 3541 | dviware/dvisvgm/src/Message.hpp
-2023/01/10 | 5812 | dviware/dvisvgm/src/MetafontWrapper.cpp
-2023/01/10 | 1876 | dviware/dvisvgm/src/MetafontWrapper.hpp
-2023/01/10 | 3799 | dviware/dvisvgm/src/MiKTeXCom.cpp
-2023/01/10 | 1894 | dviware/dvisvgm/src/MiKTeXCom.hpp
-2023/01/10 | 2062 | dviware/dvisvgm/src/NoPsSpecialHandler.cpp
-2023/01/10 | 1999 | dviware/dvisvgm/src/NoPsSpecialHandler.hpp
-2023/01/10 | 3927 | dviware/dvisvgm/src/NumericRanges.hpp
-2023/01/10 | 3603 | dviware/dvisvgm/src/Opacity.cpp
-2023/01/10 | 3832 | dviware/dvisvgm/src/Opacity.hpp
-2023/01/10 | 6685 | dviware/dvisvgm/src/optimizer/AttributeExtractor.cpp
-2023/01/10 | 2656 | dviware/dvisvgm/src/optimizer/AttributeExtractor.hpp
-2023/01/10 | 3970 | dviware/dvisvgm/src/optimizer/ClipPathReassigner.cpp
-2023/01/10 | 1979 | dviware/dvisvgm/src/optimizer/ClipPathReassigner.hpp
-2023/01/10 | 4213 | dviware/dvisvgm/src/optimizer/DependencyGraph.hpp
-2023/01/10 | 6760 | dviware/dvisvgm/src/optimizer/GroupCollapser.cpp
-2023/01/10 | 2181 | dviware/dvisvgm/src/optimizer/GroupCollapser.hpp
+2023/01/17 | 7118 | dviware/dvisvgm/src/ImageToSVG.cpp
+2023/01/17 | 4659 | dviware/dvisvgm/src/ImageToSVG.hpp
+2023/01/17 | 3788 | dviware/dvisvgm/src/InputBuffer.cpp
+2023/01/17 | 5059 | dviware/dvisvgm/src/InputBuffer.hpp
+2023/01/17 | 12240 | dviware/dvisvgm/src/InputReader.cpp
+2023/01/17 | 4184 | dviware/dvisvgm/src/InputReader.hpp
+2023/01/17 | 4491 | dviware/dvisvgm/src/JFM.cpp
+2023/01/17 | 2166 | dviware/dvisvgm/src/JFM.hpp
+2023/01/17 | 4728 | dviware/dvisvgm/src/Length.cpp
+2023/01/17 | 4138 | dviware/dvisvgm/src/Length.hpp
+2023/01/17 | 2014 | dviware/dvisvgm/src/macros.hpp
+2023/01/17 | 7119 | dviware/dvisvgm/src/Makefile.am
+2023/01/30 | 56349 | dviware/dvisvgm/src/Makefile.in
+2023/01/17 | 8515 | dviware/dvisvgm/src/MapLine.cpp
+2023/01/17 | 3089 | dviware/dvisvgm/src/MapLine.hpp
+2023/01/17 | 17194 | dviware/dvisvgm/src/Matrix.cpp
+2023/01/17 | 4227 | dviware/dvisvgm/src/Matrix.hpp
+2023/01/17 | 2704 | dviware/dvisvgm/src/MD5HashFunction.hpp
+2023/01/17 | 7509 | dviware/dvisvgm/src/Message.cpp
+2023/01/17 | 1779 | dviware/dvisvgm/src/MessageException.hpp
+2023/01/17 | 3541 | dviware/dvisvgm/src/Message.hpp
+2023/01/17 | 5812 | dviware/dvisvgm/src/MetafontWrapper.cpp
+2023/01/17 | 1876 | dviware/dvisvgm/src/MetafontWrapper.hpp
+2023/01/17 | 3799 | dviware/dvisvgm/src/MiKTeXCom.cpp
+2023/01/17 | 1894 | dviware/dvisvgm/src/MiKTeXCom.hpp
+2023/01/17 | 2062 | dviware/dvisvgm/src/NoPsSpecialHandler.cpp
+2023/01/17 | 1999 | dviware/dvisvgm/src/NoPsSpecialHandler.hpp
+2023/01/17 | 3927 | dviware/dvisvgm/src/NumericRanges.hpp
+2023/01/17 | 3603 | dviware/dvisvgm/src/Opacity.cpp
+2023/01/17 | 3832 | dviware/dvisvgm/src/Opacity.hpp
+2023/01/17 | 6685 | dviware/dvisvgm/src/optimizer/AttributeExtractor.cpp
+2023/01/17 | 2656 | dviware/dvisvgm/src/optimizer/AttributeExtractor.hpp
+2023/01/17 | 3970 | dviware/dvisvgm/src/optimizer/ClipPathReassigner.cpp
+2023/01/17 | 1979 | dviware/dvisvgm/src/optimizer/ClipPathReassigner.hpp
+2023/01/17 | 4213 | dviware/dvisvgm/src/optimizer/DependencyGraph.hpp
+2023/01/17 | 6760 | dviware/dvisvgm/src/optimizer/GroupCollapser.cpp
+2023/01/17 | 2181 | dviware/dvisvgm/src/optimizer/GroupCollapser.hpp
2022/10/13 | 632 | dviware/dvisvgm/src/optimizer/Makefile.am
-2023/01/10 | 23379 | dviware/dvisvgm/src/optimizer/Makefile.in
-2023/01/10 | 1642 | dviware/dvisvgm/src/optimizer/OptimizerModule.hpp
-2023/01/10 | 3192 | dviware/dvisvgm/src/optimizer/RedundantElementRemover.cpp
-2023/01/10 | 1644 | dviware/dvisvgm/src/optimizer/RedundantElementRemover.hpp
-2023/01/10 | 4738 | dviware/dvisvgm/src/optimizer/SVGOptimizer.cpp
-2023/01/10 | 2297 | dviware/dvisvgm/src/optimizer/SVGOptimizer.hpp
-2023/01/10 | 4160 | dviware/dvisvgm/src/optimizer/TextSimplifier.cpp
-2023/01/10 | 1699 | dviware/dvisvgm/src/optimizer/TextSimplifier.hpp
-2023/01/10 | 6846 | dviware/dvisvgm/src/optimizer/TransformSimplifier.cpp
-2023/01/10 | 1856 | dviware/dvisvgm/src/optimizer/TransformSimplifier.hpp
-2023/01/10 | 2013 | dviware/dvisvgm/src/optimizer/WSNodeRemover.cpp
-2023/01/10 | 1687 | dviware/dvisvgm/src/optimizer/WSNodeRemover.hpp
-2023/01/10 | 2067 | dviware/dvisvgm/src/options.dtd
-2023/01/10 | 9254 | dviware/dvisvgm/src/options.xml
-2023/01/10 | 3731 | dviware/dvisvgm/src/PageRanges.cpp
-2023/01/10 | 1729 | dviware/dvisvgm/src/PageRanges.hpp
-2023/01/10 | 5330 | dviware/dvisvgm/src/PageSize.cpp
-2023/01/10 | 2092 | dviware/dvisvgm/src/PageSize.hpp
-2023/01/10 | 4232 | dviware/dvisvgm/src/Pair.hpp
-2023/01/10 | 4040 | dviware/dvisvgm/src/PapersizeSpecialHandler.cpp
-2023/01/10 | 2514 | dviware/dvisvgm/src/PapersizeSpecialHandler.hpp
-2023/01/10 | 13189 | dviware/dvisvgm/src/PathClipper.cpp
-2023/01/10 | 2437 | dviware/dvisvgm/src/PathClipper.hpp
-2023/01/10 | 31276 | dviware/dvisvgm/src/PDFHandler.cpp
-2023/01/10 | 5168 | dviware/dvisvgm/src/PDFHandler.hpp
-2023/01/10 | 15437 | dviware/dvisvgm/src/PDFParser.cpp
-2023/01/10 | 5841 | dviware/dvisvgm/src/PDFParser.hpp
-2023/01/10 | 10418 | dviware/dvisvgm/src/PdfSpecialHandler.cpp
-2023/01/10 | 2836 | dviware/dvisvgm/src/PdfSpecialHandler.hpp
-2023/01/10 | 3242 | dviware/dvisvgm/src/PDFToSVG.cpp
-2023/01/10 | 2163 | dviware/dvisvgm/src/PDFToSVG.hpp
-2023/01/10 | 1913 | dviware/dvisvgm/src/PreScanDVIReader.cpp
-2023/01/10 | 1886 | dviware/dvisvgm/src/PreScanDVIReader.hpp
-2023/01/10 | 13009 | dviware/dvisvgm/src/Process.cpp
-2023/01/10 | 2324 | dviware/dvisvgm/src/Process.hpp
-2023/01/10 | 12876 | dviware/dvisvgm/src/psdefs.cpp
-2023/01/10 | 1806 | dviware/dvisvgm/src/PSFilter.hpp
-2023/01/10 | 17947 | dviware/dvisvgm/src/PSInterpreter.cpp
-2023/01/10 | 7111 | dviware/dvisvgm/src/PSInterpreter.hpp
-2023/01/10 | 6500 | dviware/dvisvgm/src/PSPattern.cpp
-2023/01/10 | 4059 | dviware/dvisvgm/src/PSPattern.hpp
-2023/01/10 | 4494 | dviware/dvisvgm/src/PSPreviewFilter.cpp
-2023/01/10 | 2605 | dviware/dvisvgm/src/PSPreviewFilter.hpp
-2023/01/10 | 52347 | dviware/dvisvgm/src/PsSpecialHandler.cpp
-2023/01/10 | 10843 | dviware/dvisvgm/src/PsSpecialHandler.hpp
-2023/01/10 | 7053 | dviware/dvisvgm/src/RangeMap.cpp
-2023/01/10 | 5180 | dviware/dvisvgm/src/RangeMap.hpp
-2023/01/10 | 2871 | dviware/dvisvgm/src/ShadingPatch.cpp
-2023/01/10 | 3150 | dviware/dvisvgm/src/ShadingPatch.hpp
-2023/01/10 | 4203 | dviware/dvisvgm/src/SignalHandler.cpp
-2023/01/10 | 2180 | dviware/dvisvgm/src/SignalHandler.hpp
-2023/01/10 | 4623 | dviware/dvisvgm/src/SourceInput.cpp
-2023/01/10 | 2388 | dviware/dvisvgm/src/SourceInput.hpp
-2023/01/10 | 4502 | dviware/dvisvgm/src/SpecialActions.hpp
-2023/01/10 | 2512 | dviware/dvisvgm/src/SpecialHandler.hpp
-2023/01/10 | 6511 | dviware/dvisvgm/src/SpecialManager.cpp
-2023/01/10 | 2958 | dviware/dvisvgm/src/SpecialManager.hpp
-2023/01/10 | 5021 | dviware/dvisvgm/src/StreamReader.cpp
-2023/01/10 | 2975 | dviware/dvisvgm/src/StreamReader.hpp
-2023/01/10 | 3768 | dviware/dvisvgm/src/StreamWriter.cpp
-2023/01/10 | 2196 | dviware/dvisvgm/src/StreamWriter.hpp
-2023/01/10 | 9256 | dviware/dvisvgm/src/Subfont.cpp
-2023/01/10 | 3521 | dviware/dvisvgm/src/Subfont.hpp
-2023/01/10 | 3676 | dviware/dvisvgm/src/SVGCharHandler.cpp
-2023/01/10 | 2024 | dviware/dvisvgm/src/SVGCharHandlerFactory.cpp
-2023/01/10 | 1645 | dviware/dvisvgm/src/SVGCharHandlerFactory.hpp
-2023/01/10 | 4533 | dviware/dvisvgm/src/SVGCharHandler.hpp
-2023/01/10 | 5814 | dviware/dvisvgm/src/SVGCharPathHandler.cpp
-2023/01/10 | 2455 | dviware/dvisvgm/src/SVGCharPathHandler.hpp
-2023/01/10 | 3959 | dviware/dvisvgm/src/SVGCharTspanTextHandler.cpp
-2023/01/10 | 2041 | dviware/dvisvgm/src/SVGCharTspanTextHandler.hpp
-2023/01/10 | 4889 | dviware/dvisvgm/src/SVGElement.cpp
-2023/01/10 | 2960 | dviware/dvisvgm/src/SVGElement.hpp
-2023/01/10 | 6475 | dviware/dvisvgm/src/SVGOutput.cpp
-2023/01/10 | 3801 | dviware/dvisvgm/src/SVGOutput.hpp
-2023/01/10 | 2182 | dviware/dvisvgm/src/SVGSingleCharTextHandler.cpp
-2023/01/10 | 1784 | dviware/dvisvgm/src/SVGSingleCharTextHandler.hpp
-2023/01/10 | 12273 | dviware/dvisvgm/src/SVGTree.cpp
-2023/01/10 | 4772 | dviware/dvisvgm/src/SVGTree.hpp
-2023/01/10 | 2005 | dviware/dvisvgm/src/System.cpp
-2023/01/10 | 1511 | dviware/dvisvgm/src/System.hpp
-2023/01/10 | 21388 | dviware/dvisvgm/src/TensorProductPatch.cpp
-2023/01/10 | 5289 | dviware/dvisvgm/src/TensorProductPatch.hpp
-2023/01/10 | 6113 | dviware/dvisvgm/src/Terminal.cpp
-2023/01/10 | 2284 | dviware/dvisvgm/src/Terminal.hpp
-2023/01/10 | 7073 | dviware/dvisvgm/src/TFM.cpp
-2023/01/10 | 3519 | dviware/dvisvgm/src/TFM.hpp
-2023/01/10 | 4761 | dviware/dvisvgm/src/ToUnicodeMap.cpp
-2023/01/10 | 1844 | dviware/dvisvgm/src/ToUnicodeMap.hpp
-2023/01/10 | 12940 | dviware/dvisvgm/src/TpicSpecialHandler.cpp
-2023/01/10 | 2613 | dviware/dvisvgm/src/TpicSpecialHandler.hpp
-2023/01/10 | 8354 | dviware/dvisvgm/src/TriangularPatch.cpp
-2023/01/10 | 3049 | dviware/dvisvgm/src/TriangularPatch.hpp
-2023/01/10 | 5522 | dviware/dvisvgm/src/ttf/CmapTable.cpp
-2023/01/10 | 2188 | dviware/dvisvgm/src/ttf/CmapTable.hpp
-2023/01/10 | 19238 | dviware/dvisvgm/src/ttf/GlyfTable.cpp
-2023/01/10 | 4012 | dviware/dvisvgm/src/ttf/GlyfTable.hpp
-2023/01/10 | 3688 | dviware/dvisvgm/src/ttf/HeadTable.cpp
-2023/01/10 | 2374 | dviware/dvisvgm/src/ttf/HeadTable.hpp
-2023/01/10 | 3055 | dviware/dvisvgm/src/ttf/HheaTable.cpp
-2023/01/10 | 2283 | dviware/dvisvgm/src/ttf/HheaTable.hpp
-2023/01/10 | 2756 | dviware/dvisvgm/src/ttf/HmtxTable.cpp
-2023/01/10 | 2367 | dviware/dvisvgm/src/ttf/HmtxTable.hpp
-2023/01/10 | 2200 | dviware/dvisvgm/src/ttf/LocaTable.hpp
+2023/01/30 | 23379 | dviware/dvisvgm/src/optimizer/Makefile.in
+2023/01/17 | 1642 | dviware/dvisvgm/src/optimizer/OptimizerModule.hpp
+2023/01/17 | 3192 | dviware/dvisvgm/src/optimizer/RedundantElementRemover.cpp
+2023/01/17 | 1644 | dviware/dvisvgm/src/optimizer/RedundantElementRemover.hpp
+2023/01/17 | 4738 | dviware/dvisvgm/src/optimizer/SVGOptimizer.cpp
+2023/01/17 | 2297 | dviware/dvisvgm/src/optimizer/SVGOptimizer.hpp
+2023/01/17 | 4160 | dviware/dvisvgm/src/optimizer/TextSimplifier.cpp
+2023/01/17 | 1699 | dviware/dvisvgm/src/optimizer/TextSimplifier.hpp
+2023/01/17 | 6846 | dviware/dvisvgm/src/optimizer/TransformSimplifier.cpp
+2023/01/17 | 1856 | dviware/dvisvgm/src/optimizer/TransformSimplifier.hpp
+2023/01/17 | 2013 | dviware/dvisvgm/src/optimizer/WSNodeRemover.cpp
+2023/01/17 | 1687 | dviware/dvisvgm/src/optimizer/WSNodeRemover.hpp
+2023/01/17 | 2067 | dviware/dvisvgm/src/options.dtd
+2023/01/17 | 9254 | dviware/dvisvgm/src/options.xml
+2023/01/17 | 3731 | dviware/dvisvgm/src/PageRanges.cpp
+2023/01/17 | 1729 | dviware/dvisvgm/src/PageRanges.hpp
+2023/01/17 | 5330 | dviware/dvisvgm/src/PageSize.cpp
+2023/01/17 | 2092 | dviware/dvisvgm/src/PageSize.hpp
+2023/01/17 | 4232 | dviware/dvisvgm/src/Pair.hpp
+2023/01/17 | 4040 | dviware/dvisvgm/src/PapersizeSpecialHandler.cpp
+2023/01/17 | 2514 | dviware/dvisvgm/src/PapersizeSpecialHandler.hpp
+2023/01/17 | 13189 | dviware/dvisvgm/src/PathClipper.cpp
+2023/01/17 | 2437 | dviware/dvisvgm/src/PathClipper.hpp
+2023/01/30 | 31210 | dviware/dvisvgm/src/PDFHandler.cpp
+2023/01/30 | 5152 | dviware/dvisvgm/src/PDFHandler.hpp
+2023/01/17 | 15437 | dviware/dvisvgm/src/PDFParser.cpp
+2023/01/17 | 5841 | dviware/dvisvgm/src/PDFParser.hpp
+2023/01/17 | 10418 | dviware/dvisvgm/src/PdfSpecialHandler.cpp
+2023/01/17 | 2836 | dviware/dvisvgm/src/PdfSpecialHandler.hpp
+2023/01/17 | 3242 | dviware/dvisvgm/src/PDFToSVG.cpp
+2023/01/17 | 2163 | dviware/dvisvgm/src/PDFToSVG.hpp
+2023/01/17 | 1913 | dviware/dvisvgm/src/PreScanDVIReader.cpp
+2023/01/17 | 1886 | dviware/dvisvgm/src/PreScanDVIReader.hpp
+2023/01/17 | 13009 | dviware/dvisvgm/src/Process.cpp
+2023/01/17 | 2324 | dviware/dvisvgm/src/Process.hpp
+2023/01/17 | 12876 | dviware/dvisvgm/src/psdefs.cpp
+2023/01/17 | 1806 | dviware/dvisvgm/src/PSFilter.hpp
+2023/01/17 | 17947 | dviware/dvisvgm/src/PSInterpreter.cpp
+2023/01/17 | 7111 | dviware/dvisvgm/src/PSInterpreter.hpp
+2023/01/17 | 6500 | dviware/dvisvgm/src/PSPattern.cpp
+2023/01/17 | 4059 | dviware/dvisvgm/src/PSPattern.hpp
+2023/01/17 | 4494 | dviware/dvisvgm/src/PSPreviewFilter.cpp
+2023/01/17 | 2605 | dviware/dvisvgm/src/PSPreviewFilter.hpp
+2023/01/17 | 52347 | dviware/dvisvgm/src/PsSpecialHandler.cpp
+2023/01/17 | 10843 | dviware/dvisvgm/src/PsSpecialHandler.hpp
+2023/01/30 | 7061 | dviware/dvisvgm/src/RangeMap.cpp
+2023/01/17 | 5180 | dviware/dvisvgm/src/RangeMap.hpp
+2023/01/17 | 2871 | dviware/dvisvgm/src/ShadingPatch.cpp
+2023/01/17 | 3150 | dviware/dvisvgm/src/ShadingPatch.hpp
+2023/01/17 | 4203 | dviware/dvisvgm/src/SignalHandler.cpp
+2023/01/17 | 2180 | dviware/dvisvgm/src/SignalHandler.hpp
+2023/01/17 | 4623 | dviware/dvisvgm/src/SourceInput.cpp
+2023/01/17 | 2388 | dviware/dvisvgm/src/SourceInput.hpp
+2023/01/17 | 4502 | dviware/dvisvgm/src/SpecialActions.hpp
+2023/01/17 | 2512 | dviware/dvisvgm/src/SpecialHandler.hpp
+2023/01/17 | 6511 | dviware/dvisvgm/src/SpecialManager.cpp
+2023/01/17 | 2958 | dviware/dvisvgm/src/SpecialManager.hpp
+2023/01/17 | 5021 | dviware/dvisvgm/src/StreamReader.cpp
+2023/01/17 | 2975 | dviware/dvisvgm/src/StreamReader.hpp
+2023/01/17 | 3768 | dviware/dvisvgm/src/StreamWriter.cpp
+2023/01/17 | 2196 | dviware/dvisvgm/src/StreamWriter.hpp
+2023/01/17 | 9256 | dviware/dvisvgm/src/Subfont.cpp
+2023/01/17 | 3521 | dviware/dvisvgm/src/Subfont.hpp
+2023/01/17 | 3676 | dviware/dvisvgm/src/SVGCharHandler.cpp
+2023/01/17 | 2024 | dviware/dvisvgm/src/SVGCharHandlerFactory.cpp
+2023/01/17 | 1645 | dviware/dvisvgm/src/SVGCharHandlerFactory.hpp
+2023/01/17 | 4533 | dviware/dvisvgm/src/SVGCharHandler.hpp
+2023/01/17 | 5814 | dviware/dvisvgm/src/SVGCharPathHandler.cpp
+2023/01/17 | 2455 | dviware/dvisvgm/src/SVGCharPathHandler.hpp
+2023/01/17 | 3959 | dviware/dvisvgm/src/SVGCharTspanTextHandler.cpp
+2023/01/17 | 2041 | dviware/dvisvgm/src/SVGCharTspanTextHandler.hpp
+2023/01/17 | 4889 | dviware/dvisvgm/src/SVGElement.cpp
+2023/01/17 | 2960 | dviware/dvisvgm/src/SVGElement.hpp
+2023/01/17 | 6475 | dviware/dvisvgm/src/SVGOutput.cpp
+2023/01/17 | 3801 | dviware/dvisvgm/src/SVGOutput.hpp
+2023/01/17 | 2182 | dviware/dvisvgm/src/SVGSingleCharTextHandler.cpp
+2023/01/17 | 1784 | dviware/dvisvgm/src/SVGSingleCharTextHandler.hpp
+2023/01/17 | 12273 | dviware/dvisvgm/src/SVGTree.cpp
+2023/01/17 | 4772 | dviware/dvisvgm/src/SVGTree.hpp
+2023/01/17 | 2005 | dviware/dvisvgm/src/System.cpp
+2023/01/17 | 1511 | dviware/dvisvgm/src/System.hpp
+2023/01/17 | 21388 | dviware/dvisvgm/src/TensorProductPatch.cpp
+2023/01/17 | 5289 | dviware/dvisvgm/src/TensorProductPatch.hpp
+2023/01/17 | 6113 | dviware/dvisvgm/src/Terminal.cpp
+2023/01/17 | 2284 | dviware/dvisvgm/src/Terminal.hpp
+2023/01/17 | 7073 | dviware/dvisvgm/src/TFM.cpp
+2023/01/17 | 3519 | dviware/dvisvgm/src/TFM.hpp
+2023/01/17 | 4761 | dviware/dvisvgm/src/ToUnicodeMap.cpp
+2023/01/17 | 1844 | dviware/dvisvgm/src/ToUnicodeMap.hpp
+2023/01/17 | 12940 | dviware/dvisvgm/src/TpicSpecialHandler.cpp
+2023/01/17 | 2613 | dviware/dvisvgm/src/TpicSpecialHandler.hpp
+2023/01/17 | 8354 | dviware/dvisvgm/src/TriangularPatch.cpp
+2023/01/17 | 3049 | dviware/dvisvgm/src/TriangularPatch.hpp
+2023/01/17 | 5522 | dviware/dvisvgm/src/ttf/CmapTable.cpp
+2023/01/17 | 2188 | dviware/dvisvgm/src/ttf/CmapTable.hpp
+2023/01/17 | 19238 | dviware/dvisvgm/src/ttf/GlyfTable.cpp
+2023/01/17 | 4012 | dviware/dvisvgm/src/ttf/GlyfTable.hpp
+2023/01/17 | 3688 | dviware/dvisvgm/src/ttf/HeadTable.cpp
+2023/01/17 | 2374 | dviware/dvisvgm/src/ttf/HeadTable.hpp
+2023/01/17 | 3055 | dviware/dvisvgm/src/ttf/HheaTable.cpp
+2023/01/17 | 2283 | dviware/dvisvgm/src/ttf/HheaTable.hpp
+2023/01/17 | 2756 | dviware/dvisvgm/src/ttf/HmtxTable.cpp
+2023/01/17 | 2367 | dviware/dvisvgm/src/ttf/HmtxTable.hpp
+2023/01/17 | 2200 | dviware/dvisvgm/src/ttf/LocaTable.hpp
2023/01/10 | 688 | dviware/dvisvgm/src/ttf/Makefile.am
-2023/01/10 | 24267 | dviware/dvisvgm/src/ttf/Makefile.in
-2023/01/10 | 2502 | dviware/dvisvgm/src/ttf/MaxpTable.cpp
-2023/01/10 | 2086 | dviware/dvisvgm/src/ttf/MaxpTable.hpp
-2023/01/10 | 3674 | dviware/dvisvgm/src/ttf/NameTable.cpp
-2023/01/10 | 1844 | dviware/dvisvgm/src/ttf/NameTable.hpp
-2023/01/10 | 11284 | dviware/dvisvgm/src/ttf/OS2Table.cpp
-2023/01/10 | 2069 | dviware/dvisvgm/src/ttf/OS2Table.hpp
-2023/01/10 | 3004 | dviware/dvisvgm/src/ttf/PostTable.cpp
-2023/01/10 | 1848 | dviware/dvisvgm/src/ttf/PostTable.hpp
-2023/01/10 | 4953 | dviware/dvisvgm/src/ttf/TTFAutohint.cpp
-2023/01/10 | 2136 | dviware/dvisvgm/src/ttf/TTFAutohint.hpp
-2023/01/10 | 3939 | dviware/dvisvgm/src/ttf/TTFTable.cpp
-2023/01/10 | 4709 | dviware/dvisvgm/src/ttf/TTFTable.hpp
-2023/01/10 | 14587 | dviware/dvisvgm/src/ttf/TTFWriter.cpp
-2023/01/10 | 4895 | dviware/dvisvgm/src/ttf/TTFWriter.hpp
-2023/01/10 | 3040 | dviware/dvisvgm/src/ttf/VheaTable.cpp
-2023/01/10 | 2283 | dviware/dvisvgm/src/ttf/VheaTable.hpp
-2023/01/10 | 2649 | dviware/dvisvgm/src/ttf/VmtxTable.cpp
-2023/01/10 | 2278 | dviware/dvisvgm/src/ttf/VmtxTable.hpp
-2023/01/10 | 10002 | dviware/dvisvgm/src/Unicode.cpp
-2023/01/10 | 2001 | dviware/dvisvgm/src/Unicode.hpp
-2023/01/10 | 9964 | dviware/dvisvgm/src/utility.cpp
-2023/01/10 | 8335 | dviware/dvisvgm/src/utility.hpp
-2023/01/10 | 3439 | dviware/dvisvgm/src/VectorIterator.hpp
-2023/01/10 | 2949 | dviware/dvisvgm/src/VectorStream.hpp
-2023/01/10 | 1577 | dviware/dvisvgm/src/version.hpp.in
-2023/01/10 | 1911 | dviware/dvisvgm/src/VFActions.hpp
-2023/01/10 | 6570 | dviware/dvisvgm/src/VFReader.cpp
-2023/01/10 | 2443 | dviware/dvisvgm/src/VFReader.hpp
-2023/01/10 | 1604 | dviware/dvisvgm/src/windows.hpp
-2023/01/10 | 2237 | dviware/dvisvgm/src/XMLDocument.cpp
-2023/01/10 | 2053 | dviware/dvisvgm/src/XMLDocument.hpp
-2023/01/10 | 17715 | dviware/dvisvgm/src/XMLNode.cpp
-2023/01/10 | 10034 | dviware/dvisvgm/src/XMLNode.hpp
-2023/01/10 | 8749 | dviware/dvisvgm/src/XMLParser.cpp
-2023/01/10 | 2927 | dviware/dvisvgm/src/XMLParser.hpp
-2023/01/10 | 3034 | dviware/dvisvgm/src/XMLString.cpp
-2023/01/10 | 1887 | dviware/dvisvgm/src/XMLString.hpp
-2023/01/10 | 4735 | dviware/dvisvgm/src/XXHashFunction.hpp
-2023/01/10 | 5940 | dviware/dvisvgm/src/ZLibOutputStream.hpp
+2023/01/30 | 24267 | dviware/dvisvgm/src/ttf/Makefile.in
+2023/01/17 | 2502 | dviware/dvisvgm/src/ttf/MaxpTable.cpp
+2023/01/17 | 2086 | dviware/dvisvgm/src/ttf/MaxpTable.hpp
+2023/01/17 | 3674 | dviware/dvisvgm/src/ttf/NameTable.cpp
+2023/01/17 | 1844 | dviware/dvisvgm/src/ttf/NameTable.hpp
+2023/01/17 | 11284 | dviware/dvisvgm/src/ttf/OS2Table.cpp
+2023/01/17 | 2069 | dviware/dvisvgm/src/ttf/OS2Table.hpp
+2023/01/17 | 3004 | dviware/dvisvgm/src/ttf/PostTable.cpp
+2023/01/17 | 1848 | dviware/dvisvgm/src/ttf/PostTable.hpp
+2023/01/17 | 4953 | dviware/dvisvgm/src/ttf/TTFAutohint.cpp
+2023/01/17 | 2136 | dviware/dvisvgm/src/ttf/TTFAutohint.hpp
+2023/01/17 | 3939 | dviware/dvisvgm/src/ttf/TTFTable.cpp
+2023/01/17 | 4709 | dviware/dvisvgm/src/ttf/TTFTable.hpp
+2023/01/17 | 14587 | dviware/dvisvgm/src/ttf/TTFWriter.cpp
+2023/01/17 | 4895 | dviware/dvisvgm/src/ttf/TTFWriter.hpp
+2023/01/17 | 3040 | dviware/dvisvgm/src/ttf/VheaTable.cpp
+2023/01/17 | 2283 | dviware/dvisvgm/src/ttf/VheaTable.hpp
+2023/01/17 | 2649 | dviware/dvisvgm/src/ttf/VmtxTable.cpp
+2023/01/17 | 2278 | dviware/dvisvgm/src/ttf/VmtxTable.hpp
+2023/01/17 | 10002 | dviware/dvisvgm/src/Unicode.cpp
+2023/01/17 | 2001 | dviware/dvisvgm/src/Unicode.hpp
+2023/01/17 | 9964 | dviware/dvisvgm/src/utility.cpp
+2023/01/17 | 8335 | dviware/dvisvgm/src/utility.hpp
+2023/01/17 | 3439 | dviware/dvisvgm/src/VectorIterator.hpp
+2023/01/17 | 2949 | dviware/dvisvgm/src/VectorStream.hpp
+2023/01/17 | 1577 | dviware/dvisvgm/src/version.hpp.in
+2023/01/17 | 1911 | dviware/dvisvgm/src/VFActions.hpp
+2023/01/17 | 6570 | dviware/dvisvgm/src/VFReader.cpp
+2023/01/17 | 2443 | dviware/dvisvgm/src/VFReader.hpp
+2023/01/17 | 1604 | dviware/dvisvgm/src/windows.hpp
+2023/01/17 | 2237 | dviware/dvisvgm/src/XMLDocument.cpp
+2023/01/17 | 2053 | dviware/dvisvgm/src/XMLDocument.hpp
+2023/01/17 | 17715 | dviware/dvisvgm/src/XMLNode.cpp
+2023/01/17 | 10034 | dviware/dvisvgm/src/XMLNode.hpp
+2023/01/17 | 8749 | dviware/dvisvgm/src/XMLParser.cpp
+2023/01/17 | 2927 | dviware/dvisvgm/src/XMLParser.hpp
+2023/01/17 | 3034 | dviware/dvisvgm/src/XMLString.cpp
+2023/01/17 | 1887 | dviware/dvisvgm/src/XMLString.hpp
+2023/01/17 | 4735 | dviware/dvisvgm/src/XXHashFunction.hpp
+2023/01/17 | 5940 | dviware/dvisvgm/src/ZLibOutputStream.hpp
2022/12/08 | 4879 | dviware/dvisvgm/test-driver
-2023/01/10 | 6354 | dviware/dvisvgm/tests/BezierTest.cpp
-2023/01/10 | 2704 | dviware/dvisvgm/tests/BitmapTest.cpp
-2023/01/10 | 6078 | dviware/dvisvgm/tests/BoundingBoxTest.cpp
-2023/01/10 | 3688 | dviware/dvisvgm/tests/CalculatorTest.cpp
-2023/01/10 | 1216 | dviware/dvisvgm/tests/check-conv
-2023/01/10 | 2974 | dviware/dvisvgm/tests/CMapManagerTest.cpp
-2023/01/10 | 4223 | dviware/dvisvgm/tests/CMapReaderTest.cpp
-2023/01/10 | 4980 | dviware/dvisvgm/tests/CMapTest.cpp
-2023/01/10 | 4702 | dviware/dvisvgm/tests/ColorSpecialTest.cpp
-2023/01/10 | 6942 | dviware/dvisvgm/tests/ColorTest.cpp
-2023/01/10 | 8439 | dviware/dvisvgm/tests/CommandLineTest.cpp
+2023/01/17 | 6354 | dviware/dvisvgm/tests/BezierTest.cpp
+2023/01/17 | 2704 | dviware/dvisvgm/tests/BitmapTest.cpp
+2023/01/17 | 6078 | dviware/dvisvgm/tests/BoundingBoxTest.cpp
+2023/01/17 | 3688 | dviware/dvisvgm/tests/CalculatorTest.cpp
+2023/01/17 | 1216 | dviware/dvisvgm/tests/check-conv
+2023/01/17 | 2974 | dviware/dvisvgm/tests/CMapManagerTest.cpp
+2023/01/17 | 4223 | dviware/dvisvgm/tests/CMapReaderTest.cpp
+2023/01/17 | 4980 | dviware/dvisvgm/tests/CMapTest.cpp
+2023/01/17 | 4702 | dviware/dvisvgm/tests/ColorSpecialTest.cpp
+2023/01/17 | 6942 | dviware/dvisvgm/tests/ColorTest.cpp
+2023/01/17 | 8439 | dviware/dvisvgm/tests/CommandLineTest.cpp
2022/10/13 | 2508 | dviware/dvisvgm/tests/data/cidjmgr0-h.tfm
2022/10/13 | 24244 | dviware/dvisvgm/tests/data/cmr10.600gf
2022/10/13 | 35752 | dviware/dvisvgm/tests/data/cmr10.pfb
@@ -4387,8 +4387,8 @@
2022/10/13 | 337419 | dviware/dvisvgm/tests/data/frktest-nf-cmp.svg
2022/10/13 | 163979 | dviware/dvisvgm/tests/data/frktest-wf-cmp.svg
2022/10/13 | 63012 | dviware/dvisvgm/tests/data/lmmono12-regular.otf
-2023/01/10 | 452 | dviware/dvisvgm/tests/data/Makefile.am
-2023/01/10 | 13938 | dviware/dvisvgm/tests/data/Makefile.in
+2023/01/17 | 452 | dviware/dvisvgm/tests/data/Makefile.am
+2023/01/30 | 13938 | dviware/dvisvgm/tests/data/Makefile.in
2022/10/13 | 1207 | dviware/dvisvgm/tests/data/ot1.cmap
2022/10/13 | 1320 | dviware/dvisvgm/tests/data/sample.dvi
2022/10/13 | 60654 | dviware/dvisvgm/tests/data/sample-nf-cmp.svg
@@ -4396,24 +4396,24 @@
2022/10/13 | 1016 | dviware/dvisvgm/tests/data/sample_v2.dvi
2022/10/13 | 256 | dviware/dvisvgm/tests/data/sample_v3.dvi
2022/10/13 | 46985 | dviware/dvisvgm/tests/data/sample-wf-cmp.svg
-2023/01/10 | 2512 | dviware/dvisvgm/tests/DependencyGraphTest.cpp
-2023/01/10 | 2773 | dviware/dvisvgm/tests/DirectoryTest.cpp
-2023/01/10 | 33210 | dviware/dvisvgm/tests/DVIReaderTest.cpp
-2023/01/10 | 13534 | dviware/dvisvgm/tests/DvisvgmSpecialTest.cpp
-2023/01/10 | 5850 | dviware/dvisvgm/tests/EllipticalArcTest.cpp
-2023/01/10 | 7489 | dviware/dvisvgm/tests/EmSpecialTest.cpp
-2023/01/10 | 3124 | dviware/dvisvgm/tests/FileFinderTest.cpp
-2023/01/10 | 4004 | dviware/dvisvgm/tests/FilePathTest.cpp
-2023/01/10 | 3899 | dviware/dvisvgm/tests/FileSystemTest.cpp
-2023/01/10 | 5070 | dviware/dvisvgm/tests/FontCacheTest.cpp
-2023/01/10 | 3875 | dviware/dvisvgm/tests/FontManagerTest.cpp
-2023/01/10 | 2850 | dviware/dvisvgm/tests/FontMapTest.cpp
-2023/01/10 | 2026 | dviware/dvisvgm/tests/genhashcheck.py
-2023/01/10 | 4645 | dviware/dvisvgm/tests/GFGlyphTracerTest.cpp
-2023/01/10 | 12993 | dviware/dvisvgm/tests/GFReaderTest.cpp
-2023/01/10 | 2083 | dviware/dvisvgm/tests/GhostscriptTest.cpp
-2023/01/10 | 6180 | dviware/dvisvgm/tests/GraphicsPathParserTest.cpp
-2023/01/10 | 7230 | dviware/dvisvgm/tests/GraphicsPathTest.cpp
+2023/01/17 | 2512 | dviware/dvisvgm/tests/DependencyGraphTest.cpp
+2023/01/17 | 2773 | dviware/dvisvgm/tests/DirectoryTest.cpp
+2023/01/17 | 33210 | dviware/dvisvgm/tests/DVIReaderTest.cpp
+2023/01/17 | 13534 | dviware/dvisvgm/tests/DvisvgmSpecialTest.cpp
+2023/01/17 | 5850 | dviware/dvisvgm/tests/EllipticalArcTest.cpp
+2023/01/17 | 7489 | dviware/dvisvgm/tests/EmSpecialTest.cpp
+2023/01/17 | 3124 | dviware/dvisvgm/tests/FileFinderTest.cpp
+2023/01/17 | 4004 | dviware/dvisvgm/tests/FilePathTest.cpp
+2023/01/17 | 3899 | dviware/dvisvgm/tests/FileSystemTest.cpp
+2023/01/17 | 5070 | dviware/dvisvgm/tests/FontCacheTest.cpp
+2023/01/17 | 3875 | dviware/dvisvgm/tests/FontManagerTest.cpp
+2023/01/17 | 2850 | dviware/dvisvgm/tests/FontMapTest.cpp
+2023/01/17 | 2026 | dviware/dvisvgm/tests/genhashcheck.py
+2023/01/17 | 4645 | dviware/dvisvgm/tests/GFGlyphTracerTest.cpp
+2023/01/17 | 12993 | dviware/dvisvgm/tests/GFReaderTest.cpp
+2023/01/17 | 2083 | dviware/dvisvgm/tests/GhostscriptTest.cpp
+2023/01/17 | 6180 | dviware/dvisvgm/tests/GraphicsPathParserTest.cpp
+2023/01/17 | 7230 | dviware/dvisvgm/tests/GraphicsPathTest.cpp
2022/10/13 | 14647 | dviware/dvisvgm/tests/gtest/include/gtest/gtest-death-test.h
2022/10/13 | 94331 | dviware/dvisvgm/tests/gtest/include/gtest/gtest.h
2022/10/13 | 33126 | dviware/dvisvgm/tests/gtest/include/gtest/gtest-matchers.h
@@ -4451,45 +4451,45 @@
2022/10/13 | 17269 | dviware/dvisvgm/tests/gtest/src/gtest-printers.cc
2022/10/13 | 4126 | dviware/dvisvgm/tests/gtest/src/gtest-test-part.cc
2022/10/13 | 3780 | dviware/dvisvgm/tests/gtest/src/gtest-typed-test.cc
-2023/01/10 | 5568 | dviware/dvisvgm/tests/HashFunctionTest.cpp
-2023/01/10 | 4034 | dviware/dvisvgm/tests/JFMReaderTest.cpp
-2023/01/10 | 7803 | dviware/dvisvgm/tests/LengthTest.cpp
-2023/01/10 | 15831 | dviware/dvisvgm/tests/Makefile.am
-2023/01/10 | 260253 | dviware/dvisvgm/tests/Makefile.in
-2023/01/10 | 5795 | dviware/dvisvgm/tests/MapLineTest.cpp
-2023/01/10 | 8332 | dviware/dvisvgm/tests/MatrixTest.cpp
-2023/01/10 | 2315 | dviware/dvisvgm/tests/MessageExceptionTest.cpp
-2023/01/10 | 4799 | dviware/dvisvgm/tests/normalize.xsl
-2023/01/10 | 5297 | dviware/dvisvgm/tests/PageRagesTest.cpp
-2023/01/10 | 2398 | dviware/dvisvgm/tests/PageSizeTest.cpp
-2023/01/10 | 4193 | dviware/dvisvgm/tests/PairTest.cpp
-2023/01/10 | 4926 | dviware/dvisvgm/tests/PapersizeSpecialTest.cpp
-2023/01/10 | 8452 | dviware/dvisvgm/tests/PDFParserTest.cpp
-2023/01/10 | 9574 | dviware/dvisvgm/tests/PSInterpreterTest.cpp
-2023/01/10 | 6392 | dviware/dvisvgm/tests/RangeMapTest.cpp
-2023/01/10 | 3629 | dviware/dvisvgm/tests/ShadingPatchTest.cpp
-2023/01/10 | 3801 | dviware/dvisvgm/tests/SpecialManagerTest.cpp
-2023/01/10 | 5392 | dviware/dvisvgm/tests/SplittedCharInputBufferTest.cpp
-2023/01/10 | 7499 | dviware/dvisvgm/tests/StreamInputBufferTest.cpp
-2023/01/10 | 4178 | dviware/dvisvgm/tests/StreamReaderTest.cpp
-2023/01/10 | 3420 | dviware/dvisvgm/tests/StreamWriterTest.cpp
-2023/01/10 | 4460 | dviware/dvisvgm/tests/StringMatcherTest.cpp
-2023/01/10 | 3363 | dviware/dvisvgm/tests/SubfontTest.cpp
-2023/01/10 | 6521 | dviware/dvisvgm/tests/SVGOutputTest.cpp
-2023/01/10 | 12820 | dviware/dvisvgm/tests/TensorProductPatchTest.cpp
-2023/01/10 | 1999 | dviware/dvisvgm/tests/testmain.cpp
+2023/01/17 | 5568 | dviware/dvisvgm/tests/HashFunctionTest.cpp
+2023/01/17 | 4034 | dviware/dvisvgm/tests/JFMReaderTest.cpp
+2023/01/17 | 7803 | dviware/dvisvgm/tests/LengthTest.cpp
+2023/01/17 | 15831 | dviware/dvisvgm/tests/Makefile.am
+2023/01/30 | 260253 | dviware/dvisvgm/tests/Makefile.in
+2023/01/17 | 5795 | dviware/dvisvgm/tests/MapLineTest.cpp
+2023/01/17 | 8332 | dviware/dvisvgm/tests/MatrixTest.cpp
+2023/01/17 | 2315 | dviware/dvisvgm/tests/MessageExceptionTest.cpp
+2023/01/17 | 4799 | dviware/dvisvgm/tests/normalize.xsl
+2023/01/17 | 5297 | dviware/dvisvgm/tests/PageRagesTest.cpp
+2023/01/17 | 2398 | dviware/dvisvgm/tests/PageSizeTest.cpp
+2023/01/17 | 4193 | dviware/dvisvgm/tests/PairTest.cpp
+2023/01/17 | 4926 | dviware/dvisvgm/tests/PapersizeSpecialTest.cpp
+2023/01/17 | 8452 | dviware/dvisvgm/tests/PDFParserTest.cpp
+2023/01/17 | 9574 | dviware/dvisvgm/tests/PSInterpreterTest.cpp
+2023/01/17 | 6392 | dviware/dvisvgm/tests/RangeMapTest.cpp
+2023/01/17 | 3629 | dviware/dvisvgm/tests/ShadingPatchTest.cpp
+2023/01/17 | 3801 | dviware/dvisvgm/tests/SpecialManagerTest.cpp
+2023/01/17 | 5392 | dviware/dvisvgm/tests/SplittedCharInputBufferTest.cpp
+2023/01/17 | 7499 | dviware/dvisvgm/tests/StreamInputBufferTest.cpp
+2023/01/17 | 4178 | dviware/dvisvgm/tests/StreamReaderTest.cpp
+2023/01/17 | 3420 | dviware/dvisvgm/tests/StreamWriterTest.cpp
+2023/01/17 | 4460 | dviware/dvisvgm/tests/StringMatcherTest.cpp
+2023/01/17 | 3363 | dviware/dvisvgm/tests/SubfontTest.cpp
+2023/01/17 | 6521 | dviware/dvisvgm/tests/SVGOutputTest.cpp
+2023/01/17 | 12820 | dviware/dvisvgm/tests/TensorProductPatchTest.cpp
+2023/01/17 | 1999 | dviware/dvisvgm/tests/testmain.cpp
2022/10/13 | 198 | dviware/dvisvgm/tests/testutil.hpp
-2023/01/10 | 3348 | dviware/dvisvgm/tests/TFMReaderTest.cpp
-2023/01/10 | 2501 | dviware/dvisvgm/tests/ToUnicodeMapTest.cpp
-2023/01/10 | 13772 | dviware/dvisvgm/tests/TpicSpecialTest.cpp
-2023/01/10 | 7066 | dviware/dvisvgm/tests/TriangularPatchTest.cpp
-2023/01/10 | 6084 | dviware/dvisvgm/tests/UnicodeTest.cpp
-2023/01/10 | 6583 | dviware/dvisvgm/tests/UtilityTest.cpp
-2023/01/10 | 3785 | dviware/dvisvgm/tests/VectorIteratorTest.cpp
-2023/01/10 | 2276 | dviware/dvisvgm/tests/VectorStreamTest.cpp
-2023/01/10 | 15061 | dviware/dvisvgm/tests/XMLNodeTest.cpp
-2023/01/10 | 3034 | dviware/dvisvgm/tests/XMLStringTest.cpp
-2023/01/11 | 3309241 | dviware/dvisvgm.zip
+2023/01/17 | 3348 | dviware/dvisvgm/tests/TFMReaderTest.cpp
+2023/01/17 | 2501 | dviware/dvisvgm/tests/ToUnicodeMapTest.cpp
+2023/01/17 | 13772 | dviware/dvisvgm/tests/TpicSpecialTest.cpp
+2023/01/17 | 7066 | dviware/dvisvgm/tests/TriangularPatchTest.cpp
+2023/01/17 | 6084 | dviware/dvisvgm/tests/UnicodeTest.cpp
+2023/01/17 | 6583 | dviware/dvisvgm/tests/UtilityTest.cpp
+2023/01/17 | 3785 | dviware/dvisvgm/tests/VectorIteratorTest.cpp
+2023/01/17 | 2276 | dviware/dvisvgm/tests/VectorStreamTest.cpp
+2023/01/17 | 15061 | dviware/dvisvgm/tests/XMLNodeTest.cpp
+2023/01/17 | 3034 | dviware/dvisvgm/tests/XMLStringTest.cpp
+2023/01/30 | 3309423 | dviware/dvisvgm.zip
1991/04/12 | 1728 | dviware/dvitops/aftopl.1
1991/04/12 | 12075 | dviware/dvitops/aftopl.c
1991/01/25 | 837 | dviware/dvitops/cms.h
@@ -5407,7 +5407,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
-2023/01/29 | 616504 | FILES.last07days
+2023/01/30 | 160976 | 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
@@ -27085,14 +27085,14 @@
1999/03/18 | 4749 | fonts/concmath/mf/xccsy7.mf
1999/03/18 | 4732 | fonts/concmath/mf/xccsy8.mf
1999/03/18 | 4765 | fonts/concmath/mf/xccsy9.mf
-2022/11/04 | 18751 | fonts/concmath-otf/concmath-otf.ltx
-2022/11/04 | 147583 | fonts/concmath-otf/concmath-otf.pdf
-2022/11/04 | 5264 | fonts/concmath-otf/concmath-otf.sty
-2022/11/04 | 224828 | fonts/concmath-otf/Concrete-Math.otf
-2022/11/04 | 2690 | fonts/concmath-otf/README.md
-2022/11/04 | 16886 | fonts/concmath-otf/unimath-concrete.ltx
-2022/11/04 | 1779774 | fonts/concmath-otf/unimath-concrete.pdf
-2022/11/04 | 2013335 | fonts/concmath-otf.zip
+2023/01/30 | 18751 | fonts/concmath-otf/concmath-otf.ltx
+2023/01/30 | 147636 | fonts/concmath-otf/concmath-otf.pdf
+2023/01/30 | 5429 | fonts/concmath-otf/concmath-otf.sty
+2023/01/30 | 227764 | fonts/concmath-otf/Concrete-Math.otf
+2023/01/30 | 2902 | fonts/concmath-otf/README.md
+2023/01/30 | 16886 | fonts/concmath-otf/unimath-concrete.ltx
+2023/01/30 | 1780617 | fonts/concmath-otf/unimath-concrete.pdf
+2023/01/30 | 2015377 | fonts/concmath-otf.zip
1999/03/18 | 2379 | fonts/concmath/README
1999/03/18 | 916 | fonts/concmath/tfm/xccam10.tfm
1999/03/18 | 928 | fonts/concmath/tfm/xccam5.tfm
@@ -39061,15 +39061,15 @@
2022/05/16 | 3439 | fonts/erewhon/enc/zut1_zt54pz.enc
2022/05/16 | 3900 | fonts/erewhon/enc/zut1_zx32l7.enc
2022/05/16 | 63740 | fonts/erewhon/map/erewhon.map
-2022/11/04 | 110472 | fonts/erewhon-math/Erewhon-Math-Bold.otf
-2022/11/04 | 30477 | fonts/erewhon-math/Erewhon-Math.ltx
-2022/11/04 | 384336 | fonts/erewhon-math/Erewhon-Math.otf
-2022/11/04 | 219876 | fonts/erewhon-math/Erewhon-Math.pdf
-2022/11/04 | 8550 | fonts/erewhon-math/fourier-otf.sty
-2022/11/04 | 6676 | fonts/erewhon-math/README.md
-2022/11/04 | 16947 | fonts/erewhon-math/unimath-erewhon.ltx
-2022/11/04 | 1847053 | fonts/erewhon-math/unimath-erewhon.pdf
-2022/11/04 | 2351609 | fonts/erewhon-math.zip
+2023/01/30 | 110460 | fonts/erewhon-math/Erewhon-Math-Bold.otf
+2023/01/30 | 30891 | fonts/erewhon-math/Erewhon-Math.ltx
+2023/01/30 | 386464 | fonts/erewhon-math/Erewhon-Math.otf
+2023/01/30 | 220585 | fonts/erewhon-math/Erewhon-Math.pdf
+2023/01/30 | 8715 | fonts/erewhon-math/fourier-otf.sty
+2023/01/30 | 6816 | fonts/erewhon-math/README.md
+2023/01/30 | 16947 | fonts/erewhon-math/unimath-erewhon.ltx
+2023/01/30 | 1847071 | fonts/erewhon-math/unimath-erewhon.pdf
+2023/01/30 | 2354279 | fonts/erewhon-math.zip
2022/05/16 | 227320 | fonts/erewhon/opentype/Erewhon-BoldItalic.otf
2022/05/16 | 246284 | fonts/erewhon/opentype/Erewhon-Bold.otf
2022/05/16 | 238332 | fonts/erewhon/opentype/Erewhon-BoldSlanted.otf
@@ -41019,15 +41019,15 @@
2022/02/04 | 1720 | fonts/etbb/vf/ETbb-Regular-tosf-t1.vf
2022/02/04 | 732 | fonts/etbb/vf/ETbb-Regular-tosf-ts1.vf
2022/02/04 | 3340640 | fonts/etbb.zip
-2022/11/06 | 18064 | fonts/euler-math/Euler-Math.ltx
-2022/11/06 | 439804 | fonts/euler-math/Euler-Math.otf
-2022/11/06 | 157551 | fonts/euler-math/Euler-Math.pdf
-2022/11/06 | 4585 | fonts/euler-math/euler-math.sty
-2022/11/06 | 410 | fonts/euler-math/neo-euler.sty
-2022/11/06 | 2634 | fonts/euler-math/README.md
-2022/11/06 | 16834 | fonts/euler-math/unimath-euler.ltx
-2022/11/06 | 1452028 | fonts/euler-math/unimath-euler.pdf
-2022/11/06 | 1883210 | fonts/euler-math.zip
+2023/01/30 | 18064 | fonts/euler-math/Euler-Math.ltx
+2023/01/30 | 439748 | fonts/euler-math/Euler-Math.otf
+2023/01/30 | 157628 | fonts/euler-math/Euler-Math.pdf
+2023/01/30 | 4750 | fonts/euler-math/euler-math.sty
+2023/01/30 | 410 | fonts/euler-math/neo-euler.sty
+2023/01/30 | 2779 | fonts/euler-math/README.md
+2023/01/30 | 16834 | fonts/euler-math/unimath-euler.ltx
+2023/01/30 | 1451945 | fonts/euler-math/unimath-euler.pdf
+2023/01/30 | 1883691 | fonts/euler-math.zip
2022/07/14 | 363770 | fonts/eulerpx/doc/eulerpxdoc.pdf
2022/07/14 | 5872 | fonts/eulerpx/doc/eulerpxdoc.tex
2022/07/11 | 4519 | fonts/eulerpx/doc/sample.tex
@@ -148861,15 +148861,15 @@
2022/02/23 | 3517 | fonts/xcharter/enc/xch_z3wvjz.enc
2022/02/23 | 3704 | fonts/xcharter/enc/xch_zqx27h.enc
2022/02/23 | 66515 | fonts/xcharter/map/XCharter.map
-2022/11/04 | 2665 | fonts/xcharter-math/README.md
-2022/11/04 | 17127 | fonts/xcharter-math/unimath-xcharter.ltx
-2022/11/04 | 1847980 | fonts/xcharter-math/unimath-xcharter.pdf
-2022/11/04 | 80204 | fonts/xcharter-math/XCharter-Math-Bold.otf
-2022/11/04 | 24841 | fonts/xcharter-math/XCharter-Math.ltx
-2022/11/04 | 324576 | fonts/xcharter-math/XCharter-Math.otf
-2022/11/04 | 178959 | fonts/xcharter-math/XCharter-Math.pdf
-2022/11/04 | 6627 | fonts/xcharter-math/xcharter-otf.sty
-2022/11/04 | 2250287 | fonts/xcharter-math.zip
+2023/01/30 | 2811 | fonts/xcharter-math/README.md
+2023/01/30 | 17127 | fonts/xcharter-math/unimath-xcharter.ltx
+2023/01/30 | 1848017 | fonts/xcharter-math/unimath-xcharter.pdf
+2023/01/30 | 81616 | fonts/xcharter-math/XCharter-Math-Bold.otf
+2023/01/30 | 24841 | fonts/xcharter-math/XCharter-Math.ltx
+2023/01/30 | 326420 | fonts/xcharter-math/XCharter-Math.otf
+2023/01/30 | 197687 | fonts/xcharter-math/XCharter-Math.pdf
+2023/01/30 | 6792 | fonts/xcharter-math/xcharter-otf.sty
+2023/01/30 | 2271189 | fonts/xcharter-math.zip
2022/02/19 | 115708 | fonts/xcharter/opentype/XCharter-BoldItalic.otf
2022/02/19 | 134920 | fonts/xcharter/opentype/XCharter-Bold.otf
2022/02/19 | 136468 | fonts/xcharter/opentype/XCharter-BoldSlanted.otf
@@ -160728,6 +160728,19 @@
2019/02/12 | 1257 | graphics/pgf/contrib/tikz-truchet/tikz-truchet.ins
2019/02/12 | 119406 | graphics/pgf/contrib/tikz-truchet/tikz-truchet.pdf
2019/02/13 | 122986 | graphics/pgf/contrib/tikz-truchet.zip
+2023/01/30 | 1227 | graphics/pgf/contrib/tikzviolinplots/AFR.csv
+2023/01/30 | 955 | graphics/pgf/contrib/tikzviolinplots/AMR.csv
+2023/01/30 | 572 | graphics/pgf/contrib/tikzviolinplots/EMR.csv
+2023/01/30 | 1314 | graphics/pgf/contrib/tikzviolinplots/EUR.csv
+2023/01/30 | 19106 | graphics/pgf/contrib/tikzviolinplots/LICENSE
+2023/01/30 | 97 | graphics/pgf/contrib/tikzviolinplots/README
+2023/01/30 | 197 | graphics/pgf/contrib/tikzviolinplots/README.md
+2023/01/30 | 352 | graphics/pgf/contrib/tikzviolinplots/SEAR.csv
+2023/01/30 | 352446 | graphics/pgf/contrib/tikzviolinplots/tikzviolinplots.pdf
+2023/01/30 | 17484 | graphics/pgf/contrib/tikzviolinplots/tikzviolinplots.sty
+2023/01/30 | 30990 | graphics/pgf/contrib/tikzviolinplots/tikzviolinplots.tex
+2023/01/30 | 615 | graphics/pgf/contrib/tikzviolinplots/WPR.csv
+2023/01/30 | 355570 | graphics/pgf/contrib/tikzviolinplots.zip
2013/08/21 | 95067 | graphics/pgf/contrib/timing-diagrams/diagrams-examples.pdf
2013/08/21 | 9102 | graphics/pgf/contrib/timing-diagrams/diagrams-examples.tex
2013/08/21 | 550 | graphics/pgf/contrib/timing-diagrams/Makefile
@@ -219085,15 +219098,15 @@
2008/06/01 | 200380 | macros/latex/contrib/envlab/envlab.pdf
1997/07/16 | 3824 | macros/latex/contrib/envlab/readme.v12
2008/06/02 | 372141 | macros/latex/contrib/envlab.zip
-2023/01/22 | 47687 | macros/latex/contrib/eolang/cactus.pdf
-2023/01/22 | 172 | macros/latex/contrib/eolang/DEPENDS.txt
-2023/01/22 | 641 | macros/latex/contrib/eolang/eolang.bib
-2023/01/22 | 54583 | macros/latex/contrib/eolang/eolang.dtx
-2023/01/22 | 2628 | macros/latex/contrib/eolang/eolang.ins
-2023/01/22 | 2007062 | macros/latex/contrib/eolang/eolang.pdf
-2023/01/22 | 1083 | macros/latex/contrib/eolang/LICENSE.txt
-2023/01/22 | 1347 | macros/latex/contrib/eolang/README.md
-2023/01/22 | 2017076 | macros/latex/contrib/eolang.zip
+2023/01/30 | 47687 | macros/latex/contrib/eolang/cactus.pdf
+2023/01/30 | 172 | macros/latex/contrib/eolang/DEPENDS.txt
+2023/01/30 | 641 | macros/latex/contrib/eolang/eolang.bib
+2023/01/30 | 54566 | macros/latex/contrib/eolang/eolang.dtx
+2023/01/30 | 2628 | macros/latex/contrib/eolang/eolang.ins
+2023/01/30 | 2007063 | macros/latex/contrib/eolang/eolang.pdf
+2023/01/30 | 1083 | macros/latex/contrib/eolang/LICENSE.txt
+2023/01/30 | 1347 | macros/latex/contrib/eolang/README.md
+2023/01/30 | 2017123 | macros/latex/contrib/eolang.zip
1991/01/31 | 1291 | macros/latex/contrib/epic/epic.readme
2009/07/09 | 25846 | macros/latex/contrib/epic/epic.sty
1991/01/31 | 2444 | macros/latex/contrib/epic/misc.sty
@@ -228895,13 +228908,13 @@
2011/11/27 | 437781 | macros/latex/contrib/nag/nag.pdf
2007/02/25 | 333 | macros/latex/contrib/nag/README
2011/12/03 | 453680 | macros/latex/contrib/nag.zip
-2023/01/29 | 44 | macros/latex/contrib/naive-ebnf/DEPENDS.txt
-2023/01/29 | 1078 | macros/latex/contrib/naive-ebnf/LICENSE.txt
-2023/01/29 | 9439 | macros/latex/contrib/naive-ebnf/naive-ebnf.dtx
-2023/01/29 | 2630 | macros/latex/contrib/naive-ebnf/naive-ebnf.ins
-2023/01/29 | 443528 | macros/latex/contrib/naive-ebnf/naive-ebnf.pdf
-2023/01/29 | 1428 | macros/latex/contrib/naive-ebnf/README.md
-2023/01/29 | 444933 | macros/latex/contrib/naive-ebnf.zip
+2023/01/30 | 44 | macros/latex/contrib/naive-ebnf/DEPENDS.txt
+2023/01/30 | 1078 | macros/latex/contrib/naive-ebnf/LICENSE.txt
+2023/01/30 | 10310 | macros/latex/contrib/naive-ebnf/naive-ebnf.dtx
+2023/01/30 | 2630 | macros/latex/contrib/naive-ebnf/naive-ebnf.ins
+2023/01/30 | 542463 | macros/latex/contrib/naive-ebnf/naive-ebnf.pdf
+2023/01/30 | 1428 | macros/latex/contrib/naive-ebnf/README.md
+2023/01/30 | 542724 | macros/latex/contrib/naive-ebnf.zip
2021/02/27 | 56767 | macros/latex/contrib/nameauth/examples.tex
2021/02/27 | 4536 | macros/latex/contrib/nameauth/Makefile
2021/02/27 | 520964 | macros/latex/contrib/nameauth/nameauth.dtx
@@ -232370,23 +232383,23 @@
2005/01/14 | 18697 | macros/latex/contrib/pseudocode/pseudocode.tex
2005/01/14 | 341 | macros/latex/contrib/pseudocode/README
2005/04/30 | 137812 | macros/latex/contrib/pseudocode.zip
-2022/08/23 | 375 | macros/latex/contrib/pseudo/doc/fig/hilitefig.tex
-2022/08/23 | 677 | macros/latex/contrib/pseudo/doc/fig/kwfig.tex
-2022/08/23 | 355 | macros/latex/contrib/pseudo/doc/fig/pausefig.tex
-2022/08/23 | 300 | macros/latex/contrib/pseudo/doc/fig/readmecode.tex
-2022/08/23 | 47166 | macros/latex/contrib/pseudo/doc/fig/readmefig.svg
-2022/08/23 | 258 | macros/latex/contrib/pseudo/doc/fig/readmefig.tex
-2022/08/23 | 1184 | macros/latex/contrib/pseudo/doc/pseudo.bib
-2022/08/23 | 950360 | macros/latex/contrib/pseudo/doc/pseudo.pdf
-2022/08/23 | 195912 | macros/latex/contrib/pseudo/doc/pseudo.tex
-2022/08/23 | 1080 | macros/latex/contrib/pseudo/LICENSE
-2022/08/23 | 1470 | macros/latex/contrib/pseudo/Makefile
-2022/08/23 | 29600 | macros/latex/contrib/pseudo/pseudo.sty
-2022/08/23 | 4501 | macros/latex/contrib/pseudo/README.md
-2022/08/23 | 177 | macros/latex/contrib/pseudo/test/overlaytest.tex
-2022/08/23 | 6467 | macros/latex/contrib/pseudo/test/pseudotest.tex
-2022/08/23 | 6 | macros/latex/contrib/pseudo/VERSION
-2022/08/23 | 1001387 | macros/latex/contrib/pseudo.zip
+2023/01/30 | 375 | macros/latex/contrib/pseudo/doc/fig/hilitefig.tex
+2023/01/30 | 677 | macros/latex/contrib/pseudo/doc/fig/kwfig.tex
+2023/01/30 | 355 | macros/latex/contrib/pseudo/doc/fig/pausefig.tex
+2023/01/30 | 300 | macros/latex/contrib/pseudo/doc/fig/readmecode.tex
+2023/01/30 | 47166 | macros/latex/contrib/pseudo/doc/fig/readmefig.svg
+2023/01/30 | 258 | macros/latex/contrib/pseudo/doc/fig/readmefig.tex
+2023/01/30 | 1184 | macros/latex/contrib/pseudo/doc/pseudo.bib
+2023/01/30 | 991356 | macros/latex/contrib/pseudo/doc/pseudo.pdf
+2023/01/30 | 207803 | macros/latex/contrib/pseudo/doc/pseudo.tex
+2023/01/30 | 1080 | macros/latex/contrib/pseudo/LICENSE
+2023/01/30 | 1558 | macros/latex/contrib/pseudo/Makefile
+2023/01/30 | 30265 | macros/latex/contrib/pseudo/pseudo.sty
+2023/01/30 | 4501 | macros/latex/contrib/pseudo/README.md
+2023/01/30 | 312 | macros/latex/contrib/pseudo/test/beamertest.tex
+2023/01/30 | 6467 | macros/latex/contrib/pseudo/test/pseudotest.tex
+2023/01/30 | 6 | macros/latex/contrib/pseudo/VERSION
+2023/01/30 | 1044222 | macros/latex/contrib/pseudo.zip
1998/05/03 | 4069 | macros/latex/contrib/psfrag/00readme.txt
1998/05/03 | 2347 | macros/latex/contrib/psfrag/announce.txt
1996/12/04 | 7894 | macros/latex/contrib/psfrag/example.eps
@@ -236493,55 +236506,55 @@
2016/02/03 | 1428 | macros/latex/contrib/tagpair/tagpair.sty
2016/09/23 | 3615 | macros/latex/contrib/tagpair/tagpair.tex
2016/09/23 | 71796 | macros/latex/contrib/tagpair.zip
-2023/01/24 | 23311 | macros/latex/contrib/tagpdf/acrobat.png
-2023/01/24 | 8652 | macros/latex/contrib/tagpdf/ex-AF-file.pdf
-2023/01/24 | 1237 | macros/latex/contrib/tagpdf/ex-AF-file.tex
-2023/01/24 | 17742 | macros/latex/contrib/tagpdf/ex-alt-actualtext-luatex.pdf
-2023/01/24 | 4153 | macros/latex/contrib/tagpdf/ex-alt-actualtext.tex
-2023/01/24 | 6626 | macros/latex/contrib/tagpdf/ex-attribute-luatex.pdf
-2023/01/24 | 1398 | macros/latex/contrib/tagpdf/ex-attribute.tex
-2023/01/24 | 7854 | macros/latex/contrib/tagpdf/ex-formula-problem-luatex.pdf
-2023/01/24 | 1019 | macros/latex/contrib/tagpdf/ex-formula-problem.tex
-2023/01/24 | 22818 | macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.pdf
-2023/01/24 | 2150 | macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.tex
-2023/01/24 | 16888 | macros/latex/contrib/tagpdf/ex-patch-list-luatex.pdf
-2023/01/24 | 2528 | macros/latex/contrib/tagpdf/ex-patch-list-obsolete.tex
-2023/01/24 | 2637 | macros/latex/contrib/tagpdf/ex-patch-list.tex
-2023/01/24 | 18461 | macros/latex/contrib/tagpdf/ex-patch-sectioning-koma-luatex.pdf
-2023/01/24 | 4284 | macros/latex/contrib/tagpdf/ex-patch-sectioning-koma.tex
-2023/01/24 | 21067 | macros/latex/contrib/tagpdf/ex-patch-sectioning-memoir.pdf
-2023/01/24 | 5797 | macros/latex/contrib/tagpdf/ex-patch-sectioning-memoir.tex
-2023/01/24 | 6842 | macros/latex/contrib/tagpdf/ex-softhyphen.pdf
-2023/01/24 | 1073 | macros/latex/contrib/tagpdf/ex-softhyphen.tex
-2023/01/24 | 4618 | macros/latex/contrib/tagpdf/ex-spaceglyph-listings.pdf
-2023/01/24 | 777 | macros/latex/contrib/tagpdf/ex-spaceglyph-listings.tex
-2023/01/24 | 1537 | macros/latex/contrib/tagpdf/ex-structure-obsolete.tex
-2023/01/24 | 19363 | macros/latex/contrib/tagpdf/ex-tagpdf-template.pdf
-2023/01/24 | 801 | macros/latex/contrib/tagpdf/ex-tagpdf-template.tex
-2023/01/24 | 8281 | macros/latex/contrib/tagpdf/global-ex.png
-2023/01/24 | 2022 | macros/latex/contrib/tagpdf/link-figure-input.tex
-2023/01/24 | 141163 | macros/latex/contrib/tagpdf/pac3.PNG
-2023/01/24 | 1177 | macros/latex/contrib/tagpdf/README.md
-2023/01/24 | 40916 | macros/latex/contrib/tagpdf/tagpdf-backend.dtx
-2023/01/24 | 1730 | macros/latex/contrib/tagpdf/tagpdf.bib
-2023/01/24 | 30370 | macros/latex/contrib/tagpdf/tagpdf-checks.dtx
-2023/01/24 | 1488604 | macros/latex/contrib/tagpdf/tagpdf-code.pdf
-2023/01/24 | 2262 | macros/latex/contrib/tagpdf/tagpdf-code.tex
-2023/01/24 | 34964 | macros/latex/contrib/tagpdf/tagpdf-data.dtx
-2023/01/24 | 6247 | macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty
-2023/01/24 | 20721 | macros/latex/contrib/tagpdf/tagpdf.dtx
-2023/01/24 | 3928 | macros/latex/contrib/tagpdf/tagpdf.ins
-2023/01/24 | 26787 | macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx
-2023/01/24 | 14511 | macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx
-2023/01/24 | 15241 | macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx
-2023/01/24 | 854620 | macros/latex/contrib/tagpdf/tagpdf.pdf
-2023/01/24 | 44428 | macros/latex/contrib/tagpdf/tagpdf-roles.dtx
-2023/01/24 | 5109 | macros/latex/contrib/tagpdf/tagpdf-space.dtx
-2023/01/24 | 57372 | macros/latex/contrib/tagpdf/tagpdf-struct.dtx
-2023/01/24 | 109529 | macros/latex/contrib/tagpdf/tagpdf.tex
-2023/01/24 | 17343 | macros/latex/contrib/tagpdf/tagpdf-tree.dtx
-2023/01/24 | 27362 | macros/latex/contrib/tagpdf/tagpdf-user.dtx
-2023/01/25 | 2219558 | macros/latex/contrib/tagpdf.zip
+2023/01/30 | 23311 | macros/latex/contrib/tagpdf/acrobat.png
+2023/01/30 | 8652 | macros/latex/contrib/tagpdf/ex-AF-file.pdf
+2023/01/30 | 1237 | macros/latex/contrib/tagpdf/ex-AF-file.tex
+2023/01/30 | 17742 | macros/latex/contrib/tagpdf/ex-alt-actualtext-luatex.pdf
+2023/01/30 | 4153 | macros/latex/contrib/tagpdf/ex-alt-actualtext.tex
+2023/01/30 | 6626 | macros/latex/contrib/tagpdf/ex-attribute-luatex.pdf
+2023/01/30 | 1398 | macros/latex/contrib/tagpdf/ex-attribute.tex
+2023/01/30 | 7854 | macros/latex/contrib/tagpdf/ex-formula-problem-luatex.pdf
+2023/01/30 | 1019 | macros/latex/contrib/tagpdf/ex-formula-problem.tex
+2023/01/30 | 22818 | macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.pdf
+2023/01/30 | 2150 | macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.tex
+2023/01/30 | 16888 | macros/latex/contrib/tagpdf/ex-patch-list-luatex.pdf
+2023/01/30 | 2528 | macros/latex/contrib/tagpdf/ex-patch-list-obsolete.tex
+2023/01/30 | 2637 | macros/latex/contrib/tagpdf/ex-patch-list.tex
+2023/01/30 | 18461 | macros/latex/contrib/tagpdf/ex-patch-sectioning-koma-luatex.pdf
+2023/01/30 | 4284 | macros/latex/contrib/tagpdf/ex-patch-sectioning-koma.tex
+2023/01/30 | 21067 | macros/latex/contrib/tagpdf/ex-patch-sectioning-memoir.pdf
+2023/01/30 | 5797 | macros/latex/contrib/tagpdf/ex-patch-sectioning-memoir.tex
+2023/01/30 | 6842 | macros/latex/contrib/tagpdf/ex-softhyphen.pdf
+2023/01/30 | 1073 | macros/latex/contrib/tagpdf/ex-softhyphen.tex
+2023/01/30 | 4618 | macros/latex/contrib/tagpdf/ex-spaceglyph-listings.pdf
+2023/01/30 | 777 | macros/latex/contrib/tagpdf/ex-spaceglyph-listings.tex
+2023/01/30 | 1537 | macros/latex/contrib/tagpdf/ex-structure-obsolete.tex
+2023/01/30 | 19363 | macros/latex/contrib/tagpdf/ex-tagpdf-template.pdf
+2023/01/30 | 801 | macros/latex/contrib/tagpdf/ex-tagpdf-template.tex
+2023/01/30 | 8281 | macros/latex/contrib/tagpdf/global-ex.png
+2023/01/30 | 2022 | macros/latex/contrib/tagpdf/link-figure-input.tex
+2023/01/30 | 141163 | macros/latex/contrib/tagpdf/pac3.PNG
+2023/01/30 | 1177 | macros/latex/contrib/tagpdf/README.md
+2023/01/30 | 40916 | macros/latex/contrib/tagpdf/tagpdf-backend.dtx
+2023/01/30 | 1730 | macros/latex/contrib/tagpdf/tagpdf.bib
+2023/01/30 | 30370 | macros/latex/contrib/tagpdf/tagpdf-checks.dtx
+2023/01/30 | 1495476 | macros/latex/contrib/tagpdf/tagpdf-code.pdf
+2023/01/30 | 2262 | macros/latex/contrib/tagpdf/tagpdf-code.tex
+2023/01/30 | 34964 | macros/latex/contrib/tagpdf/tagpdf-data.dtx
+2023/01/30 | 6247 | macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty
+2023/01/30 | 20721 | macros/latex/contrib/tagpdf/tagpdf.dtx
+2023/01/30 | 3962 | macros/latex/contrib/tagpdf/tagpdf.ins
+2023/01/30 | 26787 | macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx
+2023/01/30 | 14511 | macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx
+2023/01/30 | 15241 | macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx
+2023/01/30 | 854619 | macros/latex/contrib/tagpdf/tagpdf.pdf
+2023/01/30 | 45464 | macros/latex/contrib/tagpdf/tagpdf-roles.dtx
+2023/01/30 | 5109 | macros/latex/contrib/tagpdf/tagpdf-space.dtx
+2023/01/30 | 57602 | macros/latex/contrib/tagpdf/tagpdf-struct.dtx
+2023/01/30 | 109529 | macros/latex/contrib/tagpdf/tagpdf.tex
+2023/01/30 | 17343 | macros/latex/contrib/tagpdf/tagpdf-tree.dtx
+2023/01/30 | 27362 | macros/latex/contrib/tagpdf/tagpdf-user.dtx
+2023/01/30 | 2222096 | macros/latex/contrib/tagpdf.zip
2007/08/04 | 1263 | macros/latex/contrib/talk/example.tex
2007/08/04 | 465 | macros/latex/contrib/talk/Makefile
2007/08/04 | 2162 | macros/latex/contrib/talk/README
@@ -238256,11 +238269,11 @@
2017/06/01 | 460464 | macros/latex/contrib/tqft/tqft.pdf
2017/06/01 | 758104 | macros/latex/contrib/tqft.zip
1996/07/30 | 2573 | macros/latex/contrib/tracking/tracking.sty
-2023/01/27 | 482 | macros/latex/contrib/tramlines/README
-2023/01/27 | 44978 | macros/latex/contrib/tramlines/tramlines-documentation.pdf
-2023/01/27 | 4158 | macros/latex/contrib/tramlines/tramlines-documentation.tex
-2023/01/27 | 1382 | macros/latex/contrib/tramlines/tramlines.sty
-2023/01/27 | 46535 | macros/latex/contrib/tramlines.zip
+2023/01/29 | 590 | macros/latex/contrib/tramlines/README
+2023/01/29 | 58619 | macros/latex/contrib/tramlines/tramlines-documentation.pdf
+2023/01/29 | 4224 | macros/latex/contrib/tramlines/tramlines-documentation.tex
+2023/01/29 | 1473 | macros/latex/contrib/tramlines/tramlines.sty
+2023/01/30 | 60082 | macros/latex/contrib/tramlines.zip
2013/04/03 | 884 | macros/latex/contrib/tram/README
2013/04/04 | 28274 | macros/latex/contrib/tram/tram-doc.pdf
2013/04/03 | 2267 | macros/latex/contrib/tram/tram-doc.tex
@@ -242465,6 +242478,13 @@
2018/06/19 | 922 | macros/luatex/generic/kanaparser/kanaparser.tex
2018/06/19 | 2005 | macros/luatex/generic/kanaparser/README.md
2018/06/19 | 378065 | macros/luatex/generic/kanaparser.zip
+2023/01/30 | 7184 | macros/luatex/generic/lparse/lparse-doc.tex
+2023/01/30 | 7131 | macros/luatex/generic/lparse/lparse.lua
+2023/01/30 | 108107 | macros/luatex/generic/lparse/lparse.pdf
+2023/01/30 | 794 | macros/luatex/generic/lparse/lparse.sty
+2023/01/30 | 659 | macros/luatex/generic/lparse/lparse.tex
+2023/01/30 | 1144 | macros/luatex/generic/lparse/README.md
+2023/01/30 | 110333 | macros/luatex/generic/lparse.zip
2022/03/20 | 9157 | macros/luatex/generic/luaaddplot/luaaddplot.dtx
2022/03/20 | 398 | macros/luatex/generic/luaaddplot/luaaddplot.ins
2022/03/20 | 258501 | macros/luatex/generic/luaaddplot/luaaddplot.pdf
@@ -288513,14 +288533,14 @@
2022/12/13 | 340 | systems/texlive/tlnet/archive/bibcop.amd64-freebsd.r65257.tar.xz
2022/12/13 | 340 | systems/texlive/tlnet/archive/bibcop.amd64-netbsd.r65257.tar.xz
2022/12/13 | 340 | systems/texlive/tlnet/archive/bibcop.armhf-linux.r65257.tar.xz
-2023/01/11 | 354964 | systems/texlive/tlnet/archive/bibcop.doc.r65505.tar.xz
+2023/01/30 | 355096 | systems/texlive/tlnet/archive/bibcop.doc.r65665.tar.xz
2022/12/13 | 336 | systems/texlive/tlnet/archive/bibcop.i386-cygwin.r65257.tar.xz
2022/12/13 | 340 | systems/texlive/tlnet/archive/bibcop.i386-freebsd.r65257.tar.xz
2022/12/13 | 340 | systems/texlive/tlnet/archive/bibcop.i386-linux.r65257.tar.xz
2022/12/13 | 340 | systems/texlive/tlnet/archive/bibcop.i386-netbsd.r65257.tar.xz
2022/12/13 | 340 | systems/texlive/tlnet/archive/bibcop.i386-solaris.r65257.tar.xz
-2023/01/11 | 6352 | systems/texlive/tlnet/archive/bibcop.r65505.tar.xz
-2023/01/11 | 5620 | systems/texlive/tlnet/archive/bibcop.source.r65505.tar.xz
+2023/01/30 | 6420 | systems/texlive/tlnet/archive/bibcop.r65665.tar.xz
+2023/01/30 | 5628 | systems/texlive/tlnet/archive/bibcop.source.r65665.tar.xz
2022/12/13 | 340 | systems/texlive/tlnet/archive/bibcop.universal-darwin.r65257.tar.xz
2022/12/13 | 676 | systems/texlive/tlnet/archive/bibcop.win32.r65257.tar.xz
2022/12/13 | 340 | systems/texlive/tlnet/archive/bibcop.x86_64-cygwin.r65257.tar.xz
@@ -288873,10 +288893,10 @@
2021/02/27 | 378432 | systems/texlive/tlnet/archive/blox.doc.r57949.tar.xz
2021/02/27 | 2328 | systems/texlive/tlnet/archive/blox.r57949.tar.xz
2021/02/27 | 13840 | systems/texlive/tlnet/archive/blox.source.r57949.tar.xz
-2023/01/29 | 1290332 | systems/texlive/tlnet/archive/bmstu.doc.r65656.tar.xz
+2023/01/30 | 1290304 | systems/texlive/tlnet/archive/bmstu.doc.r65680.tar.xz
2022/02/08 | 171944 | systems/texlive/tlnet/archive/bmstu-iu8.doc.r61937.tar.xz
2022/02/08 | 12504 | systems/texlive/tlnet/archive/bmstu-iu8.r61937.tar.xz
-2023/01/29 | 5652 | systems/texlive/tlnet/archive/bmstu.r65656.tar.xz
+2023/01/30 | 5652 | systems/texlive/tlnet/archive/bmstu.r65680.tar.xz
2021/05/18 | 133720 | systems/texlive/tlnet/archive/bnumexpr.doc.r59244.tar.xz
2021/05/18 | 4216 | systems/texlive/tlnet/archive/bnumexpr.r59244.tar.xz
2021/05/18 | 23164 | systems/texlive/tlnet/archive/bnumexpr.source.r59244.tar.xz
@@ -289720,7 +289740,7 @@
2022/06/10 | 700 | systems/texlive/tlnet/archive/collection-latex.r63515.tar.xz
2023/01/11 | 744 | systems/texlive/tlnet/archive/collection-latexrecommended.r65512.tar.xz
2023/01/03 | 964 | systems/texlive/tlnet/archive/collection-luatex.r65441.tar.xz
-2023/01/19 | 1648 | systems/texlive/tlnet/archive/collection-mathscience.r65578.tar.xz
+2023/01/30 | 1656 | systems/texlive/tlnet/archive/collection-mathscience.r65674.tar.xz
2022/11/01 | 556 | systems/texlive/tlnet/archive/collection-metapost.r64878.tar.xz
2022/11/08 | 484 | systems/texlive/tlnet/archive/collection-music.r64966.tar.xz
2023/01/28 | 1552 | systems/texlive/tlnet/archive/collection-pictures.r65649.tar.xz
@@ -290627,8 +290647,8 @@
2019/02/28 | 768 | systems/texlive/tlnet/archive/dickimaw.r32925.tar.xz
2019/02/28 | 19784 | systems/texlive/tlnet/archive/dictsym.doc.r20031.tar.xz
2019/02/28 | 31568 | systems/texlive/tlnet/archive/dictsym.r20031.tar.xz
-2023/01/24 | 1326872 | systems/texlive/tlnet/archive/diffcoeff.doc.r65614.tar.xz
-2023/01/24 | 11116 | systems/texlive/tlnet/archive/diffcoeff.r65614.tar.xz
+2023/01/30 | 1328268 | systems/texlive/tlnet/archive/diffcoeff.doc.r65676.tar.xz
+2023/01/30 | 11108 | systems/texlive/tlnet/archive/diffcoeff.r65676.tar.xz
2022/12/06 | 340 | systems/texlive/tlnet/archive/digestif.aarch64-linux.r65210.tar.xz
2022/12/06 | 344 | systems/texlive/tlnet/archive/digestif.amd64-freebsd.r65210.tar.xz
2022/12/06 | 344 | systems/texlive/tlnet/archive/digestif.amd64-netbsd.r65210.tar.xz
@@ -291916,9 +291936,9 @@
2019/08/06 | 202740 | systems/texlive/tlnet/archive/fixcmex.doc.r51825.tar.xz
2019/08/06 | 1400 | systems/texlive/tlnet/archive/fixcmex.r51825.tar.xz
2019/08/06 | 2868 | systems/texlive/tlnet/archive/fixcmex.source.r51825.tar.xz
-2023/01/29 | 251492 | systems/texlive/tlnet/archive/fixdif.doc.r65658.tar.xz
-2023/01/29 | 1988 | systems/texlive/tlnet/archive/fixdif.r65658.tar.xz
-2023/01/29 | 6912 | systems/texlive/tlnet/archive/fixdif.source.r65658.tar.xz
+2023/01/30 | 247816 | systems/texlive/tlnet/archive/fixdif.doc.r65669.tar.xz
+2023/01/30 | 1988 | systems/texlive/tlnet/archive/fixdif.r65669.tar.xz
+2023/01/30 | 6912 | systems/texlive/tlnet/archive/fixdif.source.r65669.tar.xz
2019/02/28 | 50024 | systems/texlive/tlnet/archive/fixfoot.doc.r17131.tar.xz
2019/02/28 | 3280 | systems/texlive/tlnet/archive/fixfoot.r17131.tar.xz
2022/07/24 | 286260 | systems/texlive/tlnet/archive/fixjfm.doc.r63967.tar.xz
@@ -292208,9 +292228,9 @@
2019/02/28 | 41296 | systems/texlive/tlnet/archive/frederika2016.r42157.tar.xz
2019/02/28 | 142332 | systems/texlive/tlnet/archive/frege.doc.r27417.tar.xz
2019/02/28 | 4528 | systems/texlive/tlnet/archive/frege.r27417.tar.xz
-2023/01/24 | 230184 | systems/texlive/tlnet/archive/frenchmath.doc.r65614.tar.xz
-2023/01/24 | 2780 | systems/texlive/tlnet/archive/frenchmath.r65614.tar.xz
-2023/01/24 | 13044 | systems/texlive/tlnet/archive/frenchmath.source.r65614.tar.xz
+2023/01/30 | 230616 | systems/texlive/tlnet/archive/frenchmath.doc.r65677.tar.xz
+2023/01/30 | 2864 | systems/texlive/tlnet/archive/frenchmath.r65677.tar.xz
+2023/01/30 | 13224 | systems/texlive/tlnet/archive/frenchmath.source.r65677.tar.xz
2020/10/20 | 191432 | systems/texlive/tlnet/archive/frimurer.doc.r56704.tar.xz
2020/10/20 | 15456 | systems/texlive/tlnet/archive/frimurer.r56704.tar.xz
2020/10/20 | 4184 | systems/texlive/tlnet/archive/frimurer.source.r56704.tar.xz
@@ -292972,10 +292992,10 @@
2019/02/28 | 24892 | systems/texlive/tlnet/archive/hustthesis.source.r42547.tar.xz
2021/06/02 | 150588 | systems/texlive/tlnet/archive/hvarabic.doc.r59423.tar.xz
2021/06/02 | 1468 | systems/texlive/tlnet/archive/hvarabic.r59423.tar.xz
-2022/06/25 | 1125232 | systems/texlive/tlnet/archive/hvextern.doc.r63711.tar.xz
-2022/06/25 | 7136 | systems/texlive/tlnet/archive/hvextern.r63711.tar.xz
-2022/11/22 | 11546656 | systems/texlive/tlnet/archive/hvfloat.doc.r65069.tar.xz
-2022/11/22 | 12372 | systems/texlive/tlnet/archive/hvfloat.r65069.tar.xz
+2023/01/30 | 1133992 | systems/texlive/tlnet/archive/hvextern.doc.r65670.tar.xz
+2023/01/30 | 7980 | systems/texlive/tlnet/archive/hvextern.r65670.tar.xz
+2023/01/30 | 10482984 | systems/texlive/tlnet/archive/hvfloat.doc.r65671.tar.xz
+2023/01/30 | 13328 | systems/texlive/tlnet/archive/hvfloat.r65671.tar.xz
2019/02/28 | 76336 | systems/texlive/tlnet/archive/hvindex.doc.r46051.tar.xz
2019/02/28 | 1672 | systems/texlive/tlnet/archive/hvindex.r46051.tar.xz
2022/05/09 | 87192 | systems/texlive/tlnet/archive/hvlogos.doc.r63261.tar.xz
@@ -292991,9 +293011,9 @@
2020/01/29 | 9676 | systems/texlive/tlnet/archive/hycolor.source.r53584.tar.xz
2020/09/03 | 329064 | systems/texlive/tlnet/archive/hypdestopt.doc.r56253.tar.xz
2020/09/03 | 2772 | systems/texlive/tlnet/archive/hypdestopt.r56253.tar.xz
-2023/01/24 | 324844 | systems/texlive/tlnet/archive/hypdoc.doc.r65614.tar.xz
-2023/01/24 | 3556 | systems/texlive/tlnet/archive/hypdoc.r65614.tar.xz
-2023/01/24 | 8528 | systems/texlive/tlnet/archive/hypdoc.source.r65614.tar.xz
+2023/01/30 | 325076 | systems/texlive/tlnet/archive/hypdoc.doc.r65678.tar.xz
+2023/01/30 | 3556 | systems/texlive/tlnet/archive/hypdoc.r65678.tar.xz
+2023/01/30 | 8564 | systems/texlive/tlnet/archive/hypdoc.source.r65678.tar.xz
2019/12/21 | 471212 | systems/texlive/tlnet/archive/hypdvips.doc.r53197.tar.xz
2019/12/21 | 24028 | systems/texlive/tlnet/archive/hypdvips.r53197.tar.xz
2019/02/28 | 442692 | systems/texlive/tlnet/archive/hyperbar.doc.r48147.tar.xz
@@ -295047,8 +295067,8 @@
2019/02/28 | 1092 | systems/texlive/tlnet/archive/mceinleger.r15878.tar.xz
2021/09/13 | 232948 | systems/texlive/tlnet/archive/mcexam.doc.r60481.tar.xz
2021/09/13 | 11396 | systems/texlive/tlnet/archive/mcexam.r60481.tar.xz
-2023/01/10 | 885248 | systems/texlive/tlnet/archive/mcf2graph.doc.r65499.tar.xz
-2023/01/10 | 448 | systems/texlive/tlnet/archive/mcf2graph.r65499.tar.xz
+2023/01/30 | 858520 | systems/texlive/tlnet/archive/mcf2graph.doc.r65666.tar.xz
+2023/01/30 | 444 | systems/texlive/tlnet/archive/mcf2graph.r65666.tar.xz
2019/02/28 | 138716 | systems/texlive/tlnet/archive/mcite.doc.r18173.tar.xz
2019/02/28 | 391980 | systems/texlive/tlnet/archive/mciteplus.doc.r31648.tar.xz
2019/02/28 | 34344 | systems/texlive/tlnet/archive/mciteplus.r31648.tar.xz
@@ -295498,9 +295518,9 @@
2019/02/28 | 1612052 | systems/texlive/tlnet/archive/montex.r29349.tar.xz
2020/03/24 | 490212 | systems/texlive/tlnet/archive/montserrat.doc.r54512.tar.xz
2020/03/24 | 13215444 | systems/texlive/tlnet/archive/montserrat.r54512.tar.xz
-2021/02/09 | 313796 | systems/texlive/tlnet/archive/moodle.doc.r57683.tar.xz
-2021/02/09 | 29392 | systems/texlive/tlnet/archive/moodle.r57683.tar.xz
-2021/02/09 | 60312 | systems/texlive/tlnet/archive/moodle.source.r57683.tar.xz
+2023/01/30 | 421500 | systems/texlive/tlnet/archive/moodle.doc.r65672.tar.xz
+2023/01/30 | 37152 | systems/texlive/tlnet/archive/moodle.r65672.tar.xz
+2023/01/30 | 75824 | systems/texlive/tlnet/archive/moodle.source.r65672.tar.xz
2019/02/28 | 220832 | systems/texlive/tlnet/archive/moreenum.doc.r24479.tar.xz
2019/02/28 | 2708 | systems/texlive/tlnet/archive/moreenum.r24479.tar.xz
2019/02/28 | 555528 | systems/texlive/tlnet/archive/morefloats.doc.r37927.tar.xz
@@ -295751,6 +295771,9 @@
2019/02/28 | 438652 | systems/texlive/tlnet/archive/nag.doc.r24741.tar.xz
2019/02/28 | 7800 | systems/texlive/tlnet/archive/nag.r24741.tar.xz
2019/02/28 | 17648 | systems/texlive/tlnet/archive/nag.source.r24741.tar.xz
+2023/01/30 | 436192 | systems/texlive/tlnet/archive/naive-ebnf.doc.r65674.tar.xz
+2023/01/30 | 2012 | systems/texlive/tlnet/archive/naive-ebnf.r65674.tar.xz
+2023/01/30 | 4156 | systems/texlive/tlnet/archive/naive-ebnf.source.r65674.tar.xz
2021/03/02 | 1149712 | systems/texlive/tlnet/archive/nameauth.doc.r58026.tar.xz
2021/03/02 | 6868 | systems/texlive/tlnet/archive/nameauth.r58026.tar.xz
2021/03/02 | 91272 | systems/texlive/tlnet/archive/nameauth.source.r58026.tar.xz
@@ -296803,9 +296826,9 @@
2020/07/28 | 2536 | systems/texlive/tlnet/archive/pinoutikz.r55966.tar.xz
2019/02/28 | 110192 | systems/texlive/tlnet/archive/pitex.doc.r24731.tar.xz
2019/02/28 | 22664 | systems/texlive/tlnet/archive/pitex.r24731.tar.xz
-2023/01/17 | 535396 | systems/texlive/tlnet/archive/piton.doc.r65557.tar.xz
-2023/01/17 | 9780 | systems/texlive/tlnet/archive/piton.r65557.tar.xz
-2023/01/17 | 28944 | systems/texlive/tlnet/archive/piton.source.r65557.tar.xz
+2023/01/30 | 556520 | systems/texlive/tlnet/archive/piton.doc.r65673.tar.xz
+2023/01/30 | 10328 | systems/texlive/tlnet/archive/piton.r65673.tar.xz
+2023/01/30 | 30932 | systems/texlive/tlnet/archive/piton.source.r65673.tar.xz
2019/02/28 | 317704 | systems/texlive/tlnet/archive/pittetd.doc.r15878.tar.xz
2019/02/28 | 8884 | systems/texlive/tlnet/archive/pittetd.r15878.tar.xz
2019/02/28 | 38588 | systems/texlive/tlnet/archive/pittetd.source.r15878.tar.xz
@@ -298130,8 +298153,8 @@
2019/12/12 | 6840 | systems/texlive/tlnet/archive/selinput.source.r53098.tar.xz
2019/02/28 | 509908 | systems/texlive/tlnet/archive/selnolig.doc.r38721.tar.xz
2019/02/28 | 54008 | systems/texlive/tlnet/archive/selnolig.r38721.tar.xz
-2023/01/24 | 420252 | systems/texlive/tlnet/archive/semantex.doc.r65614.tar.xz
-2023/01/24 | 26516 | systems/texlive/tlnet/archive/semantex.r65614.tar.xz
+2023/01/30 | 420772 | systems/texlive/tlnet/archive/semantex.doc.r65679.tar.xz
+2023/01/30 | 26512 | systems/texlive/tlnet/archive/semantex.r65679.tar.xz
2019/02/28 | 357820 | systems/texlive/tlnet/archive/semantic.doc.r15878.tar.xz
2020/01/31 | 270076 | systems/texlive/tlnet/archive/semantic-markup.doc.r53607.tar.xz
2020/01/31 | 2500 | systems/texlive/tlnet/archive/semantic-markup.r53607.tar.xz
@@ -298420,8 +298443,8 @@
2022/10/16 | 3420 | systems/texlive/tlnet/archive/spbmark.r64706.tar.xz
2022/09/28 | 80968 | systems/texlive/tlnet/archive/spectral.doc.r64528.tar.xz
2022/09/28 | 3545188 | systems/texlive/tlnet/archive/spectral.r64528.tar.xz
-2022/02/28 | 1595632 | systems/texlive/tlnet/archive/spectralsequences.doc.r62261.tar.xz
-2022/02/28 | 72148 | systems/texlive/tlnet/archive/spectralsequences.r62261.tar.xz
+2023/01/30 | 2103268 | systems/texlive/tlnet/archive/spectralsequences.doc.r65667.tar.xz
+2023/01/30 | 72236 | systems/texlive/tlnet/archive/spectralsequences.r65667.tar.xz
2019/02/28 | 142556 | systems/texlive/tlnet/archive/spelling.doc.r30715.tar.xz
2019/02/28 | 14072 | systems/texlive/tlnet/archive/spelling.r30715.tar.xz
2019/02/28 | 243456 | systems/texlive/tlnet/archive/sphack.doc.r20842.tar.xz
@@ -299228,7 +299251,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
-2023/01/29 | 424248 | systems/texlive/tlnet/archive/texlive-scripts.doc.r65654.tar.xz
+2023/01/30 | 424452 | systems/texlive/tlnet/archive/texlive-scripts.doc.r65664.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
@@ -299252,7 +299275,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
-2023/01/29 | 113696 | systems/texlive/tlnet/archive/texlive-scripts.r65654.tar.xz
+2023/01/30 | 113700 | systems/texlive/tlnet/archive/texlive-scripts.r65664.tar.xz
2022/09/13 | 580 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r64356.tar.xz
2022/11/29 | 36264 | systems/texlive/tlnet/archive/texlive-scripts.win32.r65128.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r64356.tar.xz
@@ -301117,16 +301140,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
2022/07/17 | 124404 | systems/texlive/tlnet/install-tl
-2023/01/29 | 5828883 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2023/01/29 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2023/01/29 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2023/01/30 | 5828837 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2023/01/30 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2023/01/30 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2021/04/11 | 4945 | systems/texlive/tlnet/install-tl-windows.bat
-2023/01/29 | 20435378 | systems/texlive/tlnet/install-tl-windows.exe
-2023/01/29 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2023/01/29 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2023/01/29 | 25513723 | systems/texlive/tlnet/install-tl.zip
-2023/01/29 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2023/01/29 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2023/01/30 | 20434787 | systems/texlive/tlnet/install-tl-windows.exe
+2023/01/30 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2023/01/30 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2023/01/30 | 25513744 | systems/texlive/tlnet/install-tl.zip
+2023/01/30 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2023/01/30 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2022/04/03 | 1229 | systems/texlive/tlnet/README.md
2022/04/03 | 0 | systems/texlive/tlnet/TEXLIVE_2022
2023/01/17 | 8401 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
@@ -301136,7 +301159,7 @@
2023/01/17 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
2023/01/17 | 49938 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
-2023/01/28 | 7258 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2023/01/29 | 7349 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2023/01/11 | 216583 | 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
@@ -301179,12 +301202,12 @@
2021/05/16 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2021/12/21 | 5429 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2021/12/21 | 27582 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2023/01/29 | 18014561 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2023/01/29 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2023/01/30 | 18017460 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2023/01/30 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2022/04/18 | 86658 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2023/01/29 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2023/01/29 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2023/01/29 | 2446908 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2023/01/30 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2023/01/30 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2023/01/30 | 2446580 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2022/09/14 | 58922 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2022/10/04 | 42404 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2021/12/21 | 16130 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -311432,7 +311455,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
-2023/01/30 | 186 | timestamp
+2023/01/31 | 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 9a3fe3fff9..fdb56ad484 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index e077c3cf31..3ed932382a 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,3 +1,247 @@
+2023/01/30 | 991356 | macros/latex/contrib/pseudo/doc/pseudo.pdf
+2023/01/30 | 97 | graphics/pgf/contrib/tikzviolinplots/README
+2023/01/30 | 955 | graphics/pgf/contrib/tikzviolinplots/AMR.csv
+2023/01/30 | 88019 | biblio/bibtex/contrib/urlbst/configure
+2023/01/30 | 8715 | fonts/erewhon-math/fourier-otf.sty
+2023/01/30 | 8652 | macros/latex/contrib/tagpdf/ex-AF-file.pdf
+2023/01/30 | 858520 | systems/texlive/tlnet/archive/mcf2graph.doc.r65666.tar.xz
+2023/01/30 | 8564 | systems/texlive/tlnet/archive/hypdoc.source.r65678.tar.xz
+2023/01/30 | 854619 | macros/latex/contrib/tagpdf/tagpdf.pdf
+2023/01/30 | 8424 | dviware/dvisvgm/configure.ac
+2023/01/30 | 8281 | macros/latex/contrib/tagpdf/global-ex.png
+2023/01/30 | 81616 | fonts/xcharter-math/XCharter-Math-Bold.otf
+2023/01/30 | 801 | macros/latex/contrib/tagpdf/ex-tagpdf-template.tex
+2023/01/30 | 7980 | systems/texlive/tlnet/archive/hvextern.r65670.tar.xz
+2023/01/30 | 794 | macros/luatex/generic/lparse/lparse.sty
+2023/01/30 | 7920 | dviware/dvisvgm/src/CommandLine.hpp
+2023/01/30 | 7854 | macros/latex/contrib/tagpdf/ex-formula-problem-luatex.pdf
+2023/01/30 | 777 | macros/latex/contrib/tagpdf/ex-spaceglyph-listings.tex
+2023/01/30 | 75824 | systems/texlive/tlnet/archive/moodle.source.r65672.tar.xz
+2023/01/30 | 72236 | systems/texlive/tlnet/archive/spectralsequences.r65667.tar.xz
+2023/01/30 | 72193 | dviware/dvisvgm/doc/dvisvgm.1
+2023/01/30 | 7184 | macros/luatex/generic/lparse/lparse-doc.tex
+2023/01/30 | 7131 | macros/luatex/generic/lparse/lparse.lua
+2023/01/30 | 7114 | biblio/bibtex/contrib/urlbst/urlbst.bib
+2023/01/30 | 707079 | dviware/dvisvgm/configure
+2023/01/30 | 7061 | dviware/dvisvgm/src/RangeMap.cpp
+2023/01/30 | 6 | macros/latex/contrib/pseudo/VERSION
+2023/01/30 | 6912 | systems/texlive/tlnet/archive/fixdif.source.r65669.tar.xz
+2023/01/30 | 6842 | macros/latex/contrib/tagpdf/ex-softhyphen.pdf
+2023/01/30 | 6816 | fonts/erewhon-math/README.md
+2023/01/30 | 6792 | fonts/xcharter-math/xcharter-otf.sty
+2023/01/30 | 677 | macros/latex/contrib/pseudo/doc/fig/kwfig.tex
+2023/01/30 | 6748 | dviware/dvisvgm/aminclude_static.am
+2023/01/30 | 6626 | macros/latex/contrib/tagpdf/ex-attribute-luatex.pdf
+2023/01/30 | 659 | macros/luatex/generic/lparse/lparse.tex
+2023/01/30 | 6467 | macros/latex/contrib/pseudo/test/pseudotest.tex
+2023/01/30 | 6420 | systems/texlive/tlnet/archive/bibcop.r65665.tar.xz
+2023/01/30 | 641 | macros/latex/contrib/eolang/eolang.bib
+2023/01/30 | 6247 | macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty
+2023/01/30 | 615 | graphics/pgf/contrib/tikzviolinplots/WPR.csv
+2023/01/30 | 61535 | dviware/dvisvgm/aclocal.m4
+2023/01/30 | 60082 | macros/latex/contrib/tramlines.zip
+2023/01/30 | 5828837 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2023/01/30 | 5797 | macros/latex/contrib/tagpdf/ex-patch-sectioning-memoir.tex
+2023/01/30 | 57602 | macros/latex/contrib/tagpdf/tagpdf-struct.dtx
+2023/01/30 | 572 | graphics/pgf/contrib/tikzviolinplots/EMR.csv
+2023/01/30 | 5652 | systems/texlive/tlnet/archive/bmstu.r65680.tar.xz
+2023/01/30 | 56349 | dviware/dvisvgm/src/Makefile.in
+2023/01/30 | 5628 | systems/texlive/tlnet/archive/bibcop.source.r65665.tar.xz
+2023/01/30 | 556520 | systems/texlive/tlnet/archive/piton.doc.r65673.tar.xz
+2023/01/30 | 54566 | macros/latex/contrib/eolang/eolang.dtx
+2023/01/30 | 5429 | fonts/concmath-otf/concmath-otf.sty
+2023/01/30 | 542724 | macros/latex/contrib/naive-ebnf.zip
+2023/01/30 | 542463 | macros/latex/contrib/naive-ebnf/naive-ebnf.pdf
+2023/01/30 | 5325 | biblio/bibtex/contrib/urlbst/Makefile.in
+2023/01/30 | 516037 | biblio/bibtex/bibtex-x.zip
+2023/01/30 | 5152 | dviware/dvisvgm/src/PDFHandler.hpp
+2023/01/30 | 5109 | macros/latex/contrib/tagpdf/tagpdf-space.dtx
+2023/01/30 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2023/01/30 | 47687 | macros/latex/contrib/eolang/cactus.pdf
+2023/01/30 | 4750 | fonts/euler-math/euler-math.sty
+2023/01/30 | 47166 | macros/latex/contrib/pseudo/doc/fig/readmefig.svg
+2023/01/30 | 4618 | macros/latex/contrib/tagpdf/ex-spaceglyph-listings.pdf
+2023/01/30 | 4611 | dviware/dvisvgm/config.h.in
+2023/01/30 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2023/01/30 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2023/01/30 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2023/01/30 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2023/01/30 | 45464 | macros/latex/contrib/tagpdf/tagpdf-roles.dtx
+2023/01/30 | 4501 | macros/latex/contrib/pseudo/README.md
+2023/01/30 | 44 | macros/latex/contrib/naive-ebnf/DEPENDS.txt
+2023/01/30 | 4496 | dviware/dvisvgm/src/FontManager.hpp
+2023/01/30 | 444 | systems/texlive/tlnet/archive/mcf2graph.r65666.tar.xz
+2023/01/30 | 439748 | fonts/euler-math/Euler-Math.otf
+2023/01/30 | 436192 | systems/texlive/tlnet/archive/naive-ebnf.doc.r65674.tar.xz
+2023/01/30 | 4284 | macros/latex/contrib/tagpdf/ex-patch-sectioning-koma.tex
+2023/01/30 | 424452 | systems/texlive/tlnet/archive/texlive-scripts.doc.r65664.tar.xz
+2023/01/30 | 421500 | systems/texlive/tlnet/archive/moodle.doc.r65672.tar.xz
+2023/01/30 | 420772 | systems/texlive/tlnet/archive/semantex.doc.r65679.tar.xz
+2023/01/30 | 41660 | dviware/dvisvgm/NEWS
+2023/01/30 | 4156 | systems/texlive/tlnet/archive/naive-ebnf.source.r65674.tar.xz
+2023/01/30 | 4153 | macros/latex/contrib/tagpdf/ex-alt-actualtext.tex
+2023/01/30 | 410 | fonts/euler-math/neo-euler.sty
+2023/01/30 | 40916 | macros/latex/contrib/tagpdf/tagpdf-backend.dtx
+2023/01/30 | 4042164 | biblio/ctan-bibdata.zip
+2023/01/30 | 3962 | macros/latex/contrib/tagpdf/tagpdf.ins
+2023/01/30 | 386464 | fonts/erewhon-math/Erewhon-Math.otf
+2023/01/30 | 375 | macros/latex/contrib/pseudo/doc/fig/hilitefig.tex
+2023/01/30 | 37152 | systems/texlive/tlnet/archive/moodle.r65672.tar.xz
+2023/01/30 | 36789 | biblio/bibtex/contrib/urlbst/alphaurl.bst
+2023/01/30 | 36547 | dviware/dvisvgm/Makefile.in
+2023/01/30 | 3646376 | biblio/ctan-bibdata/ctan.pdf
+2023/01/30 | 355 | macros/latex/contrib/pseudo/doc/fig/pausefig.tex
+2023/01/30 | 3556 | systems/texlive/tlnet/archive/hypdoc.r65678.tar.xz
+2023/01/30 | 355570 | graphics/pgf/contrib/tikzviolinplots.zip
+2023/01/30 | 355096 | systems/texlive/tlnet/archive/bibcop.doc.r65665.tar.xz
+2023/01/30 | 352 | graphics/pgf/contrib/tikzviolinplots/SEAR.csv
+2023/01/30 | 352446 | graphics/pgf/contrib/tikzviolinplots/tikzviolinplots.pdf
+2023/01/30 | 34964 | macros/latex/contrib/tagpdf/tagpdf-data.dtx
+2023/01/30 | 33531 | dviware/dvisvgm/libs/brotli/Makefile.in
+2023/01/30 | 33495 | biblio/bibtex/contrib/urlbst/plainurl.bst
+2023/01/30 | 33211 | biblio/bibtex/contrib/urlbst/abbrvurl.bst
+2023/01/30 | 331330 | biblio/bibtex/contrib/urlbst.zip
+2023/01/30 | 3309423 | dviware/dvisvgm.zip
+2023/01/30 | 326420 | fonts/xcharter-math/XCharter-Math.otf
+2023/01/30 | 325076 | systems/texlive/tlnet/archive/hypdoc.doc.r65678.tar.xz
+2023/01/30 | 312 | macros/latex/contrib/pseudo/test/beamertest.tex
+2023/01/30 | 31210 | dviware/dvisvgm/src/PDFHandler.cpp
+2023/01/30 | 30990 | graphics/pgf/contrib/tikzviolinplots/tikzviolinplots.tex
+2023/01/30 | 30932 | systems/texlive/tlnet/archive/piton.source.r65673.tar.xz
+2023/01/30 | 30912 | biblio/bibtex/contrib/urlbst/unsrturl.bst
+2023/01/30 | 30891 | fonts/erewhon-math/Erewhon-Math.ltx
+2023/01/30 | 30370 | macros/latex/contrib/tagpdf/tagpdf-checks.dtx
+2023/01/30 | 30265 | macros/latex/contrib/pseudo/pseudo.sty
+2023/01/30 | 300 | macros/latex/contrib/pseudo/doc/fig/readmecode.tex
+2023/01/30 | 30011 | biblio/bibtex/contrib/urlbst/urlbst.in
+2023/01/30 | 29997 | biblio/bibtex/contrib/urlbst/urlbst
+2023/01/30 | 2902 | fonts/concmath-otf/README.md
+2023/01/30 | 2864 | systems/texlive/tlnet/archive/frenchmath.r65677.tar.xz
+2023/01/30 | 2811 | fonts/xcharter-math/README.md
+2023/01/30 | 2779 | fonts/euler-math/README.md
+2023/01/30 | 2764218 | biblio/ctan-bibdata/ctan.bib
+2023/01/30 | 27362 | macros/latex/contrib/tagpdf/tagpdf-user.dtx
+2023/01/30 | 26787 | macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx
+2023/01/30 | 26512 | systems/texlive/tlnet/archive/semantex.r65679.tar.xz
+2023/01/30 | 2637 | macros/latex/contrib/tagpdf/ex-patch-list.tex
+2023/01/30 | 2630 | macros/latex/contrib/naive-ebnf/naive-ebnf.ins
+2023/01/30 | 2628 | macros/latex/contrib/eolang/eolang.ins
+2023/01/30 | 260253 | dviware/dvisvgm/tests/Makefile.in
+2023/01/30 | 258 | macros/latex/contrib/pseudo/doc/fig/readmefig.tex
+2023/01/30 | 25513744 | systems/texlive/tlnet/install-tl.zip
+2023/01/30 | 2528 | macros/latex/contrib/tagpdf/ex-patch-list-obsolete.tex
+2023/01/30 | 24841 | fonts/xcharter-math/XCharter-Math.ltx
+2023/01/30 | 24838 | dviware/dvisvgm/libs/woff2/Makefile.in
+2023/01/30 | 247816 | systems/texlive/tlnet/archive/fixdif.doc.r65669.tar.xz
+2023/01/30 | 24685 | dviware/dvisvgm/src/fonts/Makefile.in
+2023/01/30 | 2446580 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2023/01/30 | 24267 | dviware/dvisvgm/src/ttf/Makefile.in
+2023/01/30 | 2399 | biblio/bibtex/contrib/urlbst/README
+2023/01/30 | 2354279 | fonts/erewhon-math.zip
+2023/01/30 | 23379 | dviware/dvisvgm/src/optimizer/Makefile.in
+2023/01/30 | 23311 | macros/latex/contrib/tagpdf/acrobat.png
+2023/01/30 | 230616 | systems/texlive/tlnet/archive/frenchmath.doc.r65677.tar.xz
+2023/01/30 | 22818 | macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.pdf
+2023/01/30 | 227764 | fonts/concmath-otf/Concrete-Math.otf
+2023/01/30 | 2271189 | fonts/xcharter-math.zip
+2023/01/30 | 2262 | macros/latex/contrib/tagpdf/tagpdf-code.tex
+2023/01/30 | 223396 | biblio/bibtex/contrib/urlbst/urlbst.pdf
+2023/01/30 | 2222 | biblio/bibtex/contrib/urlbst/configure.ac
+2023/01/30 | 2222096 | macros/latex/contrib/tagpdf.zip
+2023/01/30 | 220585 | fonts/erewhon-math/Erewhon-Math.pdf
+2023/01/30 | 21926 | biblio/bibtex/contrib/urlbst/urlbst.html
+2023/01/30 | 21573 | dviware/dvisvgm/doc/Makefile.in
+2023/01/30 | 2150 | macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.tex
+2023/01/30 | 21067 | macros/latex/contrib/tagpdf/ex-patch-sectioning-memoir.pdf
+2023/01/30 | 2103268 | systems/texlive/tlnet/archive/spectralsequences.doc.r65667.tar.xz
+2023/01/30 | 20959 | dviware/dvisvgm/libs/potrace/Makefile.in
+2023/01/30 | 20897 | biblio/bibtex/contrib/urlbst/urlbst.tex
+2023/01/30 | 207803 | macros/latex/contrib/pseudo/doc/pseudo.tex
+2023/01/30 | 20721 | macros/latex/contrib/tagpdf/tagpdf.dtx
+2023/01/30 | 20513 | dviware/dvisvgm/libs/clipper/Makefile.in
+2023/01/30 | 20434787 | systems/texlive/tlnet/install-tl-windows.exe
+2023/01/30 | 2022 | macros/latex/contrib/tagpdf/link-figure-input.tex
+2023/01/30 | 2017123 | macros/latex/contrib/eolang.zip
+2023/01/30 | 2015377 | fonts/concmath-otf.zip
+2023/01/30 | 20130 | dviware/dvisvgm/libs/Makefile.in
+2023/01/30 | 2012 | systems/texlive/tlnet/archive/naive-ebnf.r65674.tar.xz
+2023/01/30 | 2007063 | macros/latex/contrib/eolang/eolang.pdf
+2023/01/30 | 1988 | systems/texlive/tlnet/archive/fixdif.r65669.tar.xz
+2023/01/30 | 19806 | dviware/dvisvgm/libs/xxHash/Makefile.in
+2023/01/30 | 197 | graphics/pgf/contrib/tikzviolinplots/README.md
+2023/01/30 | 197687 | fonts/xcharter-math/XCharter-Math.pdf
+2023/01/30 | 19698 | dviware/dvisvgm/libs/md5/Makefile.in
+2023/01/30 | 19363 | macros/latex/contrib/tagpdf/ex-tagpdf-template.pdf
+2023/01/30 | 19106 | graphics/pgf/contrib/tikzviolinplots/LICENSE
+2023/01/30 | 19106 | biblio/bibtex/contrib/urlbst/LICENCE-lppl.txt
+2023/01/30 | 1883691 | fonts/euler-math.zip
+2023/01/30 | 18751 | fonts/concmath-otf/concmath-otf.ltx
+2023/01/30 | 1848017 | fonts/xcharter-math/unimath-xcharter.pdf
+2023/01/30 | 1847071 | fonts/erewhon-math/unimath-erewhon.pdf
+2023/01/30 | 18461 | macros/latex/contrib/tagpdf/ex-patch-sectioning-koma-luatex.pdf
+2023/01/30 | 18092 | biblio/bibtex/contrib/urlbst/LICENCE-gpl-2.0.txt
+2023/01/30 | 18064 | fonts/euler-math/Euler-Math.ltx
+2023/01/30 | 18017460 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2023/01/30 | 1780617 | fonts/concmath-otf/unimath-concrete.pdf
+2023/01/30 | 17742 | macros/latex/contrib/tagpdf/ex-alt-actualtext-luatex.pdf
+2023/01/30 | 17484 | graphics/pgf/contrib/tikzviolinplots/tikzviolinplots.sty
+2023/01/30 | 17343 | macros/latex/contrib/tagpdf/tagpdf-tree.dtx
+2023/01/30 | 1730 | macros/latex/contrib/tagpdf/tagpdf.bib
+2023/01/30 | 172 | macros/latex/contrib/eolang/DEPENDS.txt
+2023/01/30 | 17127 | fonts/xcharter-math/unimath-xcharter.ltx
+2023/01/30 | 16947 | fonts/erewhon-math/unimath-erewhon.ltx
+2023/01/30 | 16888 | macros/latex/contrib/tagpdf/ex-patch-list-luatex.pdf
+2023/01/30 | 16886 | fonts/concmath-otf/unimath-concrete.ltx
+2023/01/30 | 16834 | fonts/euler-math/unimath-euler.ltx
+2023/01/30 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2023/01/30 | 1656 | systems/texlive/tlnet/archive/collection-mathscience.r65674.tar.xz
+2023/01/30 | 15803 | dviware/dvisvgm/libs/boost/Makefile.in
+2023/01/30 | 15791 | dviware/dvisvgm/libs/variant/Makefile.in
+2023/01/30 | 157628 | fonts/euler-math/Euler-Math.pdf
+2023/01/30 | 1558 | macros/latex/contrib/pseudo/Makefile
+2023/01/30 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2023/01/30 | 1537 | macros/latex/contrib/tagpdf/ex-structure-obsolete.tex
+2023/01/30 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2023/01/30 | 15241 | macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx
+2023/01/30 | 1495476 | macros/latex/contrib/tagpdf/tagpdf-code.pdf
+2023/01/30 | 147636 | fonts/concmath-otf/concmath-otf.pdf
+2023/01/30 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2023/01/30 | 1451945 | fonts/euler-math/unimath-euler.pdf
+2023/01/30 | 14516 | dviware/dvisvgm/src/FontManager.cpp
+2023/01/30 | 14511 | macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx
+2023/01/30 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2023/01/30 | 1428 | macros/latex/contrib/naive-ebnf/README.md
+2023/01/30 | 141163 | macros/latex/contrib/tagpdf/pac3.PNG
+2023/01/30 | 13 | biblio/bibtex/contrib/urlbst/VERSION
+2023/01/30 | 1398 | macros/latex/contrib/tagpdf/ex-attribute.tex
+2023/01/30 | 13938 | dviware/dvisvgm/tests/data/Makefile.in
+2023/01/30 | 1347 | macros/latex/contrib/eolang/README.md
+2023/01/30 | 13328 | systems/texlive/tlnet/archive/hvfloat.r65671.tar.xz
+2023/01/30 | 1328268 | systems/texlive/tlnet/archive/diffcoeff.doc.r65676.tar.xz
+2023/01/30 | 13224 | systems/texlive/tlnet/archive/frenchmath.source.r65677.tar.xz
+2023/01/30 | 1314 | graphics/pgf/contrib/tikzviolinplots/EUR.csv
+2023/01/30 | 1290304 | systems/texlive/tlnet/archive/bmstu.doc.r65680.tar.xz
+2023/01/30 | 1237 | macros/latex/contrib/tagpdf/ex-AF-file.tex
+2023/01/30 | 1227 | graphics/pgf/contrib/tikzviolinplots/AFR.csv
+2023/01/30 | 1184 | macros/latex/contrib/pseudo/doc/pseudo.bib
+2023/01/30 | 1177 | macros/latex/contrib/tagpdf/README.md
+2023/01/30 | 1144 | macros/luatex/generic/lparse/README.md
+2023/01/30 | 113700 | systems/texlive/tlnet/archive/texlive-scripts.r65664.tar.xz
+2023/01/30 | 1133992 | systems/texlive/tlnet/archive/hvextern.doc.r65670.tar.xz
+2023/01/30 | 11108 | systems/texlive/tlnet/archive/diffcoeff.r65676.tar.xz
+2023/01/30 | 110460 | fonts/erewhon-math/Erewhon-Math-Bold.otf
+2023/01/30 | 110333 | macros/luatex/generic/lparse.zip
+2023/01/30 | 109529 | macros/latex/contrib/tagpdf/tagpdf.tex
+2023/01/30 | 1083 | macros/latex/contrib/eolang/LICENSE.txt
+2023/01/30 | 108107 | macros/luatex/generic/lparse/lparse.pdf
+2023/01/30 | 1080 | macros/latex/contrib/pseudo/LICENSE
+2023/01/30 | 1078 | macros/latex/contrib/naive-ebnf/LICENSE.txt
+2023/01/30 | 1073 | macros/latex/contrib/tagpdf/ex-softhyphen.tex
+2023/01/30 | 10482984 | systems/texlive/tlnet/archive/hvfloat.doc.r65671.tar.xz
+2023/01/30 | 1044222 | macros/latex/contrib/pseudo.zip
+2023/01/30 | 10328 | systems/texlive/tlnet/archive/piton.r65673.tar.xz
+2023/01/30 | 10310 | macros/latex/contrib/naive-ebnf/naive-ebnf.dtx
+2023/01/30 | 1019 | macros/latex/contrib/tagpdf/ex-formula-problem.tex
2023/01/29 | 9 | support/texlab/src/parser/test_data/latex/label/label_reference_simple.txt
2023/01/29 | 9 | support/texlab/src/parser/test_data/latex/glossary/glossary_entry_reference_simple.txt
2023/01/29 | 9 | support/texlab/src/parser/test_data/latex/citation/citation_missing_brace.txt
@@ -21,7 +265,6 @@
2023/01/29 | 9541 | support/texlab/src/util/cursor.rs
2023/01/29 | 952 | systems/win32/miktex/tm/packages/pr.ini
2023/01/29 | 9465 | support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__knuth_1984.txt.snap
-2023/01/29 | 9439 | macros/latex/contrib/naive-ebnf/naive-ebnf.dtx
2023/01/29 | 939 | support/texlab/src/parser/snapshots/texlab__parser__build_log__tests__parse@005.txt.snap
2023/01/29 | 93028 | systems/win32/miktex/tm/packages/albatross__doc.tar.lzma
2023/01/29 | 92500 | graphics/pgf/contrib/spectralsequences/examples/SSS-KF3n.pdf
@@ -33,6 +276,7 @@
2023/01/29 | 905 | support/texlab/src/citation.rs
2023/01/29 | 9003339 | systems/win32/miktex/tm/packages/profcollege__doc.tar.lzma
2023/01/29 | 898 | support/texlab/src/parser/test_data/bibtex/samples/kastenholz_2006.txt
+2023/01/29 | 896 | biblio/bibtex/bibtex-x/tests/bibtexu-sort.test
2023/01/29 | 8854 | support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__kastenholz_2006.txt.snap
2023/01/29 | 88430 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
2023/01/29 | 8830 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
@@ -95,6 +339,7 @@
2023/01/29 | 742 | support/texlab/src/features/inlay_hint/label.rs
2023/01/29 | 7419 | support/texlab/src/features/formatting/bibtex_internal.rs
2023/01/29 | 73956 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2023/01/29 | 7349 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2023/01/29 | 73338 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
2023/01/29 | 730 | support/texlab/src/features/completion/tikz_library.rs
2023/01/29 | 7308 | support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__almendro_1998.txt.snap
@@ -124,7 +369,6 @@
2023/01/29 | 692 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__svg_include_options.txt.snap
2023/01/29 | 692 | support/texlab/src/features/completion/component_command.rs
2023/01/29 | 69208 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2023/01/29 | 6912 | systems/texlive/tlnet/archive/fixdif.source.r65658.tar.xz
2023/01/29 | 689 | support/texlab/src/syntax/latex.rs
2023/01/29 | 6822 | support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__erwin_2007.txt.snap
2023/01/29 | 6820 | systems/texlive/tlnet/archive/collection-latexextra.r65660.tar.xz
@@ -173,11 +417,12 @@
2023/01/29 | 600326 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
2023/01/29 | 595 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@citation__citation_prenote_postnote.txt.snap
2023/01/29 | 5937 | graphics/mcf2graph/mcf_example.tex
+2023/01/29 | 590 | macros/latex/contrib/tramlines/README
2023/01/29 | 58873 | graphics/pgf/contrib/spectralsequences/examples/MaySS-bo-A1.pdf
2023/01/29 | 58696 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2023/01/29 | 58619 | macros/latex/contrib/tramlines/tramlines-documentation.pdf
2023/01/29 | 585 | support/texlab/src/citation/snapshots/texlab__citation__tests__book_aho_2006.snap
2023/01/29 | 5850 | support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__betram_1996.txt.snap
-2023/01/29 | 5828883 | systems/texlive/tlnet/install-tl-unx.tar.gz
2023/01/29 | 580 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@graphics_path_command.txt.snap
2023/01/29 | 5805 | support/texlab/src/db/analysis.rs
2023/01/29 | 5801 | systems/win32/miktex/tm/packages/bmstu.tar.lzma
@@ -190,7 +435,6 @@
2023/01/29 | 57018 | support/texlab/data/lang_data.json
2023/01/29 | 5691 | support/texlab/src/parser/build_log.rs
2023/01/29 | 5680 | support/texlab/src/tests/text_document/hover.rs
-2023/01/29 | 5652 | systems/texlive/tlnet/archive/bmstu.r65656.tar.xz
2023/01/29 | 557 | support/texlab/src/parser/test_data/bibtex/samples/rivest_1978.txt
2023/01/29 | 55782 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
2023/01/29 | 556 | support/texlab/src/parser/test_data/bibtex/samples/betram_1996.txt
@@ -237,7 +481,6 @@
2023/01/29 | 4 | support/texlab/src/parser/test_data/latex/group/unmatched_brackets_with_group.txt
2023/01/29 | 4 | support/texlab/src/parser/test_data/latex/generic_command_empty.txt
2023/01/29 | 499 | support/texlab/src/features/completion/color.rs
-2023/01/29 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2023/01/29 | 48 | support/texlab/src/parser/test_data/latex/block_comments.txt
2023/01/29 | 48992 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
2023/01/29 | 485 | support/texlab/src/syntax.rs
@@ -258,10 +501,6 @@
2023/01/29 | 459 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@citation__citation_prenote.txt.snap
2023/01/29 | 45904 | systems/texlive/tlnet/archive/tramlines.doc.r65660.tar.xz
2023/01/29 | 45814 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2023/01/29 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2023/01/29 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2023/01/29 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2023/01/29 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2023/01/29 | 455 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__import_simple.txt.snap
2023/01/29 | 454 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@generic_command_args.txt.snap
2023/01/29 | 4513 | support/texlab/src/syntax/latex/kind.rs
@@ -270,10 +509,7 @@
2023/01/29 | 44 | support/texlab/src/parser/test_data/latex/glossary/acronym_definition_simple.txt
2023/01/29 | 44 | support/texlab/src/parser/test_data/latex/environment/environment_definition_optional_arg.txt
2023/01/29 | 44 | support/texlab/src/parser/test_data/latex/color/color_set_definition_simple.txt
-2023/01/29 | 44 | macros/latex/contrib/naive-ebnf/DEPENDS.txt
2023/01/29 | 44598 | systems/win32/miktex/tm/packages/tramlines__doc.tar.lzma
-2023/01/29 | 444933 | macros/latex/contrib/naive-ebnf.zip
-2023/01/29 | 443528 | macros/latex/contrib/naive-ebnf/naive-ebnf.pdf
2023/01/29 | 440 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@citation__citation_multiple_keys.txt.snap
2023/01/29 | 44091 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
2023/01/29 | 44038 | systems/win32/miktex/tm/packages/xduts__source.tar.lzma
@@ -290,8 +526,8 @@
2023/01/29 | 42677 | macros/latex/contrib/hvextern/latex/hvextern.sty
2023/01/29 | 425 | support/texlab/src/tests/text_document/snapshots/texlab__tests__text_document__completion__acronym_ref_open_brace.snap
2023/01/29 | 42478 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2023/01/29 | 424248 | systems/texlive/tlnet/archive/texlive-scripts.doc.r65654.tar.xz
2023/01/29 | 422724 | systems/win32/miktex/tm/packages/moodle__doc.tar.lzma
+2023/01/29 | 4224 | macros/latex/contrib/tramlines/tramlines-documentation.tex
2023/01/29 | 421 | support/texlab/src/tests/text_document/snapshots/texlab__tests__text_document__completion__user_command.snap
2023/01/29 | 421 | support/texlab/src/tests/text_document/snapshots/texlab__tests__text_document__completion__component_environment_command_definition.snap
2023/01/29 | 421 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__latex_include_equality_sign.txt.snap
@@ -309,7 +545,6 @@
2023/01/29 | 404 | support/texlab/src/tests/text_document/snapshots/texlab__tests__text_document__completion__theorem_end.snap
2023/01/29 | 404 | support/texlab/src/tests/text_document/snapshots/texlab__tests__text_document__completion__component_environment_class.snap
2023/01/29 | 404 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@label__label_reference_range_incomplete.txt.snap
-2023/01/29 | 4042194 | biblio/ctan-bibdata.zip
2023/01/29 | 403 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@graphics_path.txt.snap
2023/01/29 | 400 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@command_definition__math_operator_no_impl.txt.snap
2023/01/29 | 4008 | support/texlab/src/util/lsp_enums.rs
@@ -353,7 +588,6 @@
2023/01/29 | 367 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__class_include_simple.txt.snap
2023/01/29 | 365 | support/texlab/src/tests/text_document/snapshots/texlab__tests__text_document__completion__component_environment_simple.snap
2023/01/29 | 3653 | support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__aho_2006.txt.snap
-2023/01/29 | 3646557 | biblio/ctan-bibdata/ctan.pdf
2023/01/29 | 363 | support/texlab/src/tests/text_document/snapshots/texlab__tests__text_document__completion__entry_type_before_article.snap
2023/01/29 | 363 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__inkscape_include_simple.txt.snap
2023/01/29 | 362 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__svg_include_simple.txt.snap
@@ -461,7 +695,6 @@
2023/01/29 | 27 | support/texlab/src/parser/test_data/latex/include/verbatim_include_simple.txt
2023/01/29 | 27 | support/texlab/src/parser/test_data/latex/caption/caption_default.txt
2023/01/29 | 27736 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2023/01/29 | 2763869 | biblio/ctan-bibdata/ctan.bib
2023/01/29 | 2734 | support/texlab/src/tests/text_document/snapshots/texlab__tests__text_document__completion__label.snap
2023/01/29 | 271 | support/texlab/src/tests/text_document/snapshots/texlab__tests__text_document__did_change_configuration__invalid_configuration.snap
2023/01/29 | 271 | support/texlab/src/parser/test_data/latex/issue_745.txt
@@ -474,7 +707,6 @@
2023/01/29 | 2648 | support/texlab/src/tests/text_document/snapshots/texlab__tests__text_document__document_symbol__enumerate_nested.snap
2023/01/29 | 2641 | support/texlab/src/features/symbol/bibtex.rs
2023/01/29 | 2641 | biblio/bibtex/utils/bibcop/README.md
-2023/01/29 | 2630 | macros/latex/contrib/naive-ebnf/naive-ebnf.ins
2023/01/29 | 262 | support/texlab/src/features.rs
2023/01/29 | 2628 | biblio/bibtex/utils/bibcop/bibcop.ins
2023/01/29 | 25 | support/texlab/src/parser/test_data/latex/glossary/glossary_entry_reference_options.txt
@@ -483,7 +715,6 @@
2023/01/29 | 2586 | support/texlab/texlab.tex
2023/01/29 | 2566 | graphics/pgf/contrib/spectralsequences/examples/hatcher.tex
2023/01/29 | 2564 | systems/win32/miktex/tm/packages/uol-physics-report.tar.lzma
-2023/01/29 | 25513723 | systems/texlive/tlnet/install-tl.zip
2023/01/29 | 25487 | support/texlab/src/features/completion/builder.rs
2023/01/29 | 254806 | macros/latex/contrib/fixdif.zip
2023/01/29 | 2532 | graphics/pgf/contrib/spectralsequences/examples/SSS-KZ3.tex
@@ -491,7 +722,6 @@
2023/01/29 | 25296 | support/texlab/CHANGELOG.md
2023/01/29 | 25218 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
2023/01/29 | 2515 | support/texlab/src/parser/test_data/build_log/003.txt
-2023/01/29 | 251492 | systems/texlive/tlnet/archive/fixdif.doc.r65658.tar.xz
2023/01/29 | 250 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@group__unmatched_braces.txt.snap
2023/01/29 | 25010 | graphics/pgf/contrib/spectralsequences/manual/spectralsequences-howitworks.tex
2023/01/29 | 24 | support/texlab/src/parser/test_data/latex/include/svg_include_simple.txt
@@ -503,7 +733,6 @@
2023/01/29 | 246 | support/texlab/src/tests/issues.rs
2023/01/29 | 245751 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
2023/01/29 | 2455 | support/texlab/src/parser/test_data/build_log/002.txt
-2023/01/29 | 2446908 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2023/01/29 | 2416 | support/texlab/src/server/dispatch.rs
2023/01/29 | 24120 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
2023/01/29 | 24056 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
@@ -549,8 +778,8 @@
2023/01/29 | 209150 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
2023/01/29 | 2050 | support/texlab/src/tests/text_document/inlay_hint.rs
2023/01/29 | 2049 | support/texlab/src/util/lang_data.rs
-2023/01/29 | 20435378 | systems/texlive/tlnet/install-tl-windows.exe
2023/01/29 | 203220 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2023/01/29 | 20268 | biblio/bibtex/bibtex-x/ChangeLog
2023/01/29 | 2017058 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
2023/01/29 | 2008 | support/texlab/src/tests/text_document/rename.rs
2023/01/29 | 1 | support/texlab/src/parser/test_data/latex/parameter_error.txt
@@ -560,7 +789,6 @@
2023/01/29 | 19 | support/texlab/src/parser/test_data/latex/inline.txt
2023/01/29 | 19 | support/texlab/src/parser/test_data/latex/include/pgf_library_import_simple.txt
2023/01/29 | 19 | support/texlab/src/parser/test_data/latex/glossary/acronym_reference_simple.txt
-2023/01/29 | 1988 | systems/texlive/tlnet/archive/fixdif.r65658.tar.xz
2023/01/29 | 19814 | biblio/bibtex/utils/bibcop/bibcop.pl
2023/01/29 | 197588 | graphics/pgf/contrib/spectralsequences/examples/ASS-S_2.pdf
2023/01/29 | 19718 | graphics/pgf/contrib/spectralsequences/manual/spectralsequencesmanualpreamble.tex
@@ -586,7 +814,6 @@
2023/01/29 | 1819 | graphics/pgf/contrib/spectralsequences/examples/MaySS-bo-A1.tex
2023/01/29 | 1816 | support/texlab/src/distro/file_name_db.rs
2023/01/29 | 181675 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2023/01/29 | 18014561 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
2023/01/29 | 17 | support/texlab/src/parser/test_data/latex/include/latex_include_simple.txt
2023/01/29 | 17 | support/texlab/src/parser/test_data/latex/include/latex_include_equality_sign.txt
2023/01/29 | 17 | support/texlab/src/parser/test_data/latex/include/import_simple.txt
@@ -610,8 +837,8 @@
2023/01/29 | 16 | support/texlab/src/parser/test_data/latex/include/class_include_empty.txt
2023/01/29 | 16 | support/texlab/src/parser/test_data/latex/command_definition/command_definition_no_impl_error.txt
2023/01/29 | 16999 | support/texlab/src/syntax/latex/cst.rs
+2023/01/29 | 1698 | biblio/bibtex/bibtex-x/tests/bibtexu-char.test
2023/01/29 | 168 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@parameter.txt.snap
-2023/01/29 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
2023/01/29 | 167775 | systems/win32/miktex/tm/packages/uptex-fonts.tar.lzma
2023/01/29 | 1668 | support/texlab/src/features/build/progress.rs
2023/01/29 | 1658 | support/texlab/src/parser/snapshots/texlab__parser__build_log__tests__parse@006.txt.snap
@@ -632,8 +859,6 @@
2023/01/29 | 155063 | macros/latex/contrib/fixdif/fixdif-zh-cn.pdf
2023/01/29 | 1542 | support/texlab/src/tests/text_document/document_link.rs
2023/01/29 | 15419 | macros/latex/contrib/fixdif/fixdif-zh-cn.tex
-2023/01/29 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2023/01/29 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
2023/01/29 | 1514732 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
2023/01/29 | 14 | support/texlab/src/parser/test_data/latex/label/label_reference_multiple.txt
2023/01/29 | 14 | support/texlab/src/parser/test_data/latex/generic_command_args.txt
@@ -641,16 +866,14 @@
2023/01/29 | 149822 | graphics/pgf/contrib/spectralsequences/examples/J_RPinfty.pdf
2023/01/29 | 1495836 | macros/latex/contrib/hvextern/doc/hvextern.pdf
2023/01/29 | 1478 | support/texlab/src/tests/text_document/snapshots/texlab__tests__text_document__document_symbol__section_nested.snap
+2023/01/29 | 1473 | macros/latex/contrib/tramlines/tramlines.sty
2023/01/29 | 1462 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@glossary__acronym_declaration.txt.snap
-2023/01/29 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
2023/01/29 | 1457000 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2023/01/29 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
2023/01/29 | 14441 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
2023/01/29 | 143865 | systems/win32/miktex/tm/packages/ieejtran__doc.tar.lzma
2023/01/29 | 14329 | support/texlab/src/tests/text_document/completion.rs
2023/01/29 | 143187 | macros/luatex/latex/piton/piton.dtx
2023/01/29 | 1428 | support/texlab/src/citation/snapshots/texlab__citation__tests__mvbook_nietzsche_1988.snap
-2023/01/29 | 1428 | macros/latex/contrib/naive-ebnf/README.md
2023/01/29 | 142723 | graphics/pgf/contrib/spectralsequences/examples/MaySS-tmf-A2.pdf
2023/01/29 | 1423 | support/texlab/src/tests/text_document/snapshots/texlab__tests__text_document__completion__import_class_open_brace.snap
2023/01/29 | 14239 | biblio/bibtex/utils/bibcop/bibcop.dtx
@@ -693,7 +916,6 @@
2023/01/29 | 1296 | support/texlab/src/features/rename/command.rs
2023/01/29 | 1292243 | systems/win32/miktex/tm/packages/bmstu__doc.tar.lzma
2023/01/29 | 1290 | support/texlab/src/tests/workspace/snapshots/texlab__tests__workspace__symbol__filter_type_section.snap
-2023/01/29 | 1290332 | systems/texlive/tlnet/archive/bmstu.doc.r65656.tar.xz
2023/01/29 | 1281 | support/texlab/src/tests/text_document/snapshots/texlab__tests__text_document__completion__field_entry_field_name.snap
2023/01/29 | 1280 | support/texlab/src/util/line_index_ext.rs
2023/01/29 | 1270 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@structure__structure_enum_item.txt.snap
@@ -739,7 +961,6 @@
2023/01/29 | 1146 | support/texlab/src/features/formatting.rs
2023/01/29 | 11459 | support/texlab/src/parser/bibtex.rs
2023/01/29 | 1143 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@environment__environment_nested.txt.snap
-2023/01/29 | 113696 | systems/texlive/tlnet/archive/texlive-scripts.r65654.tar.xz
2023/01/29 | 113215 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
2023/01/29 | 1122 | support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@environment__environment_definition.txt.snap
2023/01/29 | 11219 | graphics/pgf/contrib/spectralsequences/manual/spectralsequencesmanual-layoutcharts.tex
@@ -756,7 +977,6 @@
2023/01/29 | 109335 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
2023/01/29 | 1083 | biblio/bibtex/utils/bibcop/LICENSE.txt
2023/01/29 | 1082 | support/texlab/src/features/highlight/label.rs
-2023/01/29 | 1078 | macros/latex/contrib/naive-ebnf/LICENSE.txt
2023/01/29 | 1076 | graphics/pgf/contrib/spectralsequences/manual/examples/spectralsequencesmanual-imJ.tex
2023/01/29 | 106963 | graphics/mcf2graph/mcf_manual.tex
2023/01/29 | 1064 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_aksin_2006.snap
@@ -861,7 +1081,6 @@
2023/01/28 | 7418 | macros/latex/contrib/ufrgscca/latex/ufrgscca.cls
2023/01/28 | 73263 | systems/win32/miktex/tm/packages/miktex-graphite2-bin-x64-2.9.tar.lzma
2023/01/28 | 72811 | systems/win32/miktex/tm/packages/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2023/01/28 | 7258 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2023/01/28 | 706 | macros/latex/contrib/hvfloat/doc/examples/runAll.sh
2023/01/28 | 705732 | systems/win32/miktex/tm/packages/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
2023/01/28 | 702924 | systems/texlive/tlnet/archive/tangramtikz.doc.r65643.tar.xz
@@ -1164,14 +1383,10 @@
2023/01/27 | 5224922 | support/albatross.zip
2023/01/27 | 518567 | systems/win32/miktex/tm/packages/schooldocs__doc.tar.lzma
2023/01/27 | 49659 | systems/win32/miktex/tm/packages/expkv-bundle__source.tar.lzma
-2023/01/27 | 482 | macros/latex/contrib/tramlines/README
-2023/01/27 | 46535 | macros/latex/contrib/tramlines.zip
-2023/01/27 | 44978 | macros/latex/contrib/tramlines/tramlines-documentation.pdf
2023/01/27 | 435827 | graphics/pgf/contrib/tangramtikz/doc/TangramTikz-doc-en.pdf
2023/01/27 | 435237 | graphics/pgf/contrib/tangramtikz/doc/TangramTikz-doc-fr.pdf
2023/01/27 | 4323881 | systems/win32/miktex/tm/packages/pagelayout__doc.tar.lzma
2023/01/27 | 42073 | systems/win32/miktex/tm/packages/tkz-euclide.tar.lzma
-2023/01/27 | 4158 | macros/latex/contrib/tramlines/tramlines-documentation.tex
2023/01/27 | 4090276 | systems/win32/miktex/tm/packages/univie-ling__doc.tar.lzma
2023/01/27 | 388408 | systems/win32/miktex/tm/packages/semantex__doc.tar.lzma
2023/01/27 | 3763 | systems/win32/miktex/tm/packages/hypdoc.tar.lzma
@@ -1222,7 +1437,6 @@
2023/01/27 | 1454133 | install/macros/latex/contrib/se2thesis.tds.zip
2023/01/27 | 1440803 | macros/latex/contrib/se2thesis.zip
2023/01/27 | 1383 | macros/latex/contrib/uol-physics-report/uol-physics-report.ins
-2023/01/27 | 1382 | macros/latex/contrib/tramlines/tramlines.sty
2023/01/27 | 1381349 | systems/win32/miktex/tm/packages/proflycee__doc.tar.lzma
2023/01/27 | 13707 | systems/win32/miktex/tm/packages/frenchmath__source.tar.lzma
2023/01/27 | 13206 | support/albatross/source/albatross-0.5.0-src.zip
@@ -1373,7 +1587,6 @@
2023/01/25 | 338567 | support/TeX4ht/source/tex4ht-ooffice.tex
2023/01/25 | 32549 | macros/luatex/latex/luaquotes/luaquotes-documentation.tex
2023/01/25 | 235606 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
-2023/01/25 | 2219558 | macros/latex/contrib/tagpdf.zip
2023/01/25 | 216121 | support/TeX4ht/source/ChangeLog
2023/01/25 | 2069156 | systems/doc/luatex.zip
2023/01/25 | 19340 | macros/luatex/latex/luaquotes/luaquotes.sty
@@ -1397,23 +1610,16 @@
2023/01/24 | 8983 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-circles.tex
2023/01/24 | 880 | systems/texlive/tlnet/archive/dvisvgm.r65614.tar.xz
2023/01/24 | 87493 | macros/latex/contrib/l3kernel/l3coffins.dtx
-2023/01/24 | 8652 | macros/latex/contrib/tagpdf/ex-AF-file.pdf
-2023/01/24 | 854620 | macros/latex/contrib/tagpdf/tagpdf.pdf
-2023/01/24 | 8528 | systems/texlive/tlnet/archive/hypdoc.source.r65614.tar.xz
2023/01/24 | 8481 | macros/latex/contrib/l3kernel/l3news11.tex
2023/01/24 | 84785 | macros/latex/contrib/l3kernel/l3fp-basics.dtx
-2023/01/24 | 8281 | macros/latex/contrib/tagpdf/global-ex.png
2023/01/24 | 82707 | macros/latex/contrib/l3kernel/l3clist.dtx
2023/01/24 | 823710 | macros/latex/contrib/diffcoeff/diffcoeff.pdf
2023/01/24 | 82195 | macros/latex/contrib/l3kernel/l3names.dtx
2023/01/24 | 81614 | macros/latex/contrib/l3kernel/l3prefixes.pdf
-2023/01/24 | 801 | macros/latex/contrib/tagpdf/ex-tagpdf-template.tex
2023/01/24 | 798 | macros/latex/contrib/sidecap/sc-test5.tex
2023/01/24 | 79792 | macros/latex/contrib/l3kernel/l3box.dtx
2023/01/24 | 7861 | macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-main.tex
-2023/01/24 | 7854 | macros/latex/contrib/tagpdf/ex-formula-problem-luatex.pdf
2023/01/24 | 78244 | macros/latex/contrib/l3kernel/l3str.dtx
-2023/01/24 | 777 | macros/latex/contrib/tagpdf/ex-spaceglyph-listings.tex
2023/01/24 | 7734 | macros/latex/contrib/l3experimental/CHANGELOG.md
2023/01/24 | 76279 | macros/latex/contrib/l3kernel/l3skip.dtx
2023/01/24 | 7454 | macros/latex/contrib/l3kernel/l3fp-assign.dtx
@@ -1426,7 +1632,6 @@
2023/01/24 | 725032 | systems/texlive/tlnet/archive/babel.source.r65614.tar.xz
2023/01/24 | 70859 | macros/latex/contrib/l3kernel/expl3.dtx
2023/01/24 | 70578 | macros/latex/contrib/l3kernel/l3fp.dtx
-2023/01/24 | 6842 | macros/latex/contrib/tagpdf/ex-softhyphen.pdf
2023/01/24 | 6837 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points.tex
2023/01/24 | 68290 | macros/latex/contrib/l3kernel/l3candidates.dtx
2023/01/24 | 679193 | macros/latex/contrib/l3experimental/l3draw-code.pdf
@@ -1434,14 +1639,12 @@
2023/01/24 | 6717 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-points.tex
2023/01/24 | 6677 | macros/latex/contrib/l3kernel/l3news02.tex
2023/01/24 | 66654 | macros/latex/contrib/l3kernel/l3prg.dtx
-2023/01/24 | 6626 | macros/latex/contrib/tagpdf/ex-attribute-luatex.pdf
2023/01/24 | 6574 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-circles-by.tex
2023/01/24 | 6526 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty
2023/01/24 | 6482 | macros/latex/contrib/l3kernel/l3news03.tex
2023/01/24 | 6433 | macros/latex/contrib/l3kernel/l3news06.tex
2023/01/24 | 62840 | macros/latex/contrib/l3kernel/l3tl-analysis.dtx
2023/01/24 | 6267 | macros/latex/contrib/l3kernel/l3syntax-changes.tex
-2023/01/24 | 6247 | macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty
2023/01/24 | 622767 | macros/latex/contrib/l3kernel/expl3.pdf
2023/01/24 | 6224 | macros/latex/contrib/l3kernel/l3.ins
2023/01/24 | 6169 | macros/latex/contrib/l3kernel/l3term-glossary.tex
@@ -1449,16 +1652,13 @@
2023/01/24 | 5854 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-circles.tex
2023/01/24 | 5841 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-utilities.tex
2023/01/24 | 58083 | macros/latex/contrib/l3experimental/xgalley.dtx
-2023/01/24 | 5797 | macros/latex/contrib/tagpdf/ex-patch-sectioning-memoir.tex
2023/01/24 | 57974 | macros/latex/contrib/l3kernel/l3prop.dtx
-2023/01/24 | 57372 | macros/latex/contrib/tagpdf/tagpdf-struct.dtx
2023/01/24 | 5653 | macros/latex/contrib/l3experimental/l3draw-layers.dtx
2023/01/24 | 557803 | macros/latex/contrib/l3kernel/l3doc.pdf
2023/01/24 | 5429 | macros/latex/contrib/l3kernel/l3news04.tex
2023/01/24 | 5343 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-rnd.tex
2023/01/24 | 51820 | systems/texlive/tlnet/archive/make4ht.r65613.tar.xz
2023/01/24 | 517619 | macros/latex/contrib/l3experimental/l3draw.pdf
-2023/01/24 | 5109 | macros/latex/contrib/tagpdf/tagpdf-space.dtx
2023/01/24 | 51059 | macros/latex/contrib/l3kernel/l3fp-extended.dtx
2023/01/24 | 51006 | macros/latex/contrib/l3kernel/l3text.dtx
2023/01/24 | 49947 | systems/doc/luatex/luatex-modifications.tex
@@ -1468,25 +1668,19 @@
2023/01/24 | 4890 | macros/latex/contrib/l3kernel/l3news.tex
2023/01/24 | 47216 | macros/latex/contrib/l3kernel/l3fp-aux.dtx
2023/01/24 | 4716 | macros/latex/contrib/l3kernel/l3news05.tex
-2023/01/24 | 4618 | macros/latex/contrib/tagpdf/ex-spaceglyph-listings.pdf
2023/01/24 | 4601 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-protractor.tex
2023/01/24 | 4538 | macros/latex/contrib/l3kernel/l3legacy.dtx
2023/01/24 | 45040 | macros/latex/contrib/l3kernel/l3prefixes.csv
2023/01/24 | 4451432 | install/macros/latex/contrib/l3experimental.tds.zip
2023/01/24 | 4448 | macros/latex/contrib/l3experimental/l3draw-state.dtx
-2023/01/24 | 44428 | macros/latex/contrib/tagpdf/tagpdf-roles.dtx
2023/01/24 | 4414253 | macros/latex/contrib/l3experimental.zip
2023/01/24 | 4375 | macros/latex/contrib/tkz/tkz-euclide/latex/libs/tkz-lib-eu-marks.tex
2023/01/24 | 43537 | macros/latex/contrib/l3kernel/CHANGELOG.md
2023/01/24 | 4323 | macros/latex/contrib/l3experimental/l3draw-boxes.dtx
2023/01/24 | 43212 | macros/latex/contrib/l3kernel/l3debug.dtx
2023/01/24 | 431 | graphics/pgf/contrib/tangramtikz/README.md
-2023/01/24 | 4284 | macros/latex/contrib/tagpdf/ex-patch-sectioning-koma.tex
2023/01/24 | 4284 | macros/latex/contrib/l3experimental/README.md
2023/01/24 | 42558 | macros/latex/contrib/l3experimental/l3draw.dtx
-2023/01/24 | 420252 | systems/texlive/tlnet/archive/semantex.doc.r65614.tar.xz
-2023/01/24 | 4153 | macros/latex/contrib/tagpdf/ex-alt-actualtext.tex
-2023/01/24 | 40916 | macros/latex/contrib/tagpdf/tagpdf-backend.dtx
2023/01/24 | 408825 | macros/latex/contrib/l3experimental/l3galley.pdf
2023/01/24 | 4085 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-polygons.tex
2023/01/24 | 40704 | macros/latex/contrib/l3kernel/l3sort.dtx
@@ -1497,19 +1691,16 @@
2023/01/24 | 3948 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-polygons.tex
2023/01/24 | 394409 | macros/latex/contrib/l3experimental/xcoffins.pdf
2023/01/24 | 3929 | macros/latex/contrib/l3kernel/README.md
-2023/01/24 | 3928 | macros/latex/contrib/tagpdf/tagpdf.ins
2023/01/24 | 3884 | macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-lua-angles.tex
2023/01/24 | 382072 | macros/latex/contrib/l3experimental/l3graphics.pdf
2023/01/24 | 367940 | macros/latex/contrib/l3experimental/l3str-format.pdf
2023/01/24 | 3615 | macros/latex/contrib/sidecap/sc-test1.tex
2023/01/24 | 360716 | systems/texlive/tlnet/archive/asymptote.r65614.tar.xz
2023/01/24 | 36026 | macros/latex/contrib/l3experimental/l3draw-points.dtx
-2023/01/24 | 3556 | systems/texlive/tlnet/archive/hypdoc.r65614.tar.xz
2023/01/24 | 35441 | macros/latex/contrib/l3kernel/l3quark.dtx
2023/01/24 | 35092 | macros/latex/contrib/l3experimental/xcoffins.dtx
2023/01/24 | 3497 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-base.tex
2023/01/24 | 3496 | macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-lua-base.tex
-2023/01/24 | 34964 | macros/latex/contrib/tagpdf/tagpdf-data.dtx
2023/01/24 | 347982 | macros/latex/contrib/l3experimental/l3sys-shell.pdf
2023/01/24 | 3473 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-grids.tex
2023/01/24 | 34593 | macros/latex/contrib/diffcoeff/diffcoeff.sty
@@ -1520,7 +1711,6 @@
2023/01/24 | 329494 | macros/latex/contrib/sidecap.zip
2023/01/24 | 325718 | macros/latex/contrib/sidecap/sidecap.pdf
2023/01/24 | 32508 | macros/latex/contrib/l3experimental/l3draw-paths.dtx
-2023/01/24 | 324844 | systems/texlive/tlnet/archive/hypdoc.doc.r65614.tar.xz
2023/01/24 | 32429 | macros/latex/contrib/l3kernel/l3cctab.dtx
2023/01/24 | 32409 | macros/latex/contrib/l3kernel/l3unicode.dtx
2023/01/24 | 31827 | macros/latex/contrib/l3experimental/l3str-format.dtx
@@ -1528,21 +1718,14 @@
2023/01/24 | 308483 | macros/latex/contrib/l3experimental/l3benchmark.pdf
2023/01/24 | 3056 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-angles.tex
2023/01/24 | 304752 | macros/latex/contrib/l3kernel/l3regex.dtx
-2023/01/24 | 30370 | macros/latex/contrib/tagpdf/tagpdf-checks.dtx
2023/01/24 | 299636 | macros/latex/contrib/l3experimental/xgalley.pdf
2023/01/24 | 2987 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-text.tex
2023/01/24 | 296239 | macros/latex/contrib/l3kernel/l3styleguide.pdf
2023/01/24 | 2821 | macros/latex/contrib/l3kernel/l3prefixes.tex
-2023/01/24 | 2780 | systems/texlive/tlnet/archive/frenchmath.r65614.tar.xz
2023/01/24 | 2749 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-modules.tex
-2023/01/24 | 27362 | macros/latex/contrib/tagpdf/tagpdf-user.dtx
-2023/01/24 | 26787 | macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx
2023/01/24 | 26737 | macros/latex/contrib/l3kernel/l3kernel-functions.dtx
-2023/01/24 | 26516 | systems/texlive/tlnet/archive/semantex.r65614.tar.xz
-2023/01/24 | 2637 | macros/latex/contrib/tagpdf/ex-patch-list.tex
2023/01/24 | 25753 | macros/latex/contrib/l3experimental/l3graphics.dtx
2023/01/24 | 25650 | macros/latex/contrib/l3kernel/l3fp-random.dtx
-2023/01/24 | 2528 | macros/latex/contrib/tagpdf/ex-patch-list-obsolete.tex
2023/01/24 | 25251 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-points-spc.tex
2023/01/24 | 250136 | macros/latex/contrib/l3kernel/l3news09.pdf
2023/01/24 | 24841 | macros/latex/contrib/l3kernel/source3body.tex
@@ -1553,28 +1736,19 @@
2023/01/24 | 2383376 | systems/texlive/tlnet/archive/asymptote.doc.r65614.tar.xz
2023/01/24 | 23530 | macros/latex/contrib/l3kernel/l3deprecation.dtx
2023/01/24 | 23353 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-spc.tex
-2023/01/24 | 23311 | macros/latex/contrib/tagpdf/acrobat.png
-2023/01/24 | 230184 | systems/texlive/tlnet/archive/frenchmath.doc.r65614.tar.xz
2023/01/24 | 23011 | macros/latex/contrib/l3kernel/l3fp-logic.dtx
-2023/01/24 | 22818 | macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.pdf
2023/01/24 | 2268 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-colors.tex
-2023/01/24 | 2262 | macros/latex/contrib/tagpdf/tagpdf-code.tex
2023/01/24 | 2229 | macros/latex/contrib/l3kernel/source3.tex
2023/01/24 | 21718 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-angles.tex
2023/01/24 | 21665 | macros/latex/contrib/l3kernel/l3text-purify.dtx
2023/01/24 | 215443 | macros/latex/contrib/l3kernel/l3term-glossary.pdf
-2023/01/24 | 2150 | macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.tex
-2023/01/24 | 21067 | macros/latex/contrib/tagpdf/ex-patch-sectioning-memoir.pdf
2023/01/24 | 2104 | macros/latex/contrib/sidecap/sc-test6.tex
-2023/01/24 | 20721 | macros/latex/contrib/tagpdf/tagpdf.dtx
2023/01/24 | 204992 | macros/latex/contrib/l3kernel/l3news12.pdf
2023/01/24 | 20451 | macros/latex/contrib/l3experimental/l3draw-softpath.dtx
-2023/01/24 | 2022 | macros/latex/contrib/tagpdf/link-figure-input.tex
2023/01/24 | 2013468 | systems/texlive/tlnet/archive/latex2e-help-texinfo-spanish.doc.r65614.tar.xz
2023/01/24 | 1978 | macros/latex/contrib/tkz/tkz-euclide/latex/libs/tkz-lib-eu-shape.tex
2023/01/24 | 19641 | macros/latex/contrib/l3kernel/l3fp-convert.dtx
2023/01/24 | 196076 | systems/texlive/tlnet/archive/babel.r65614.tar.xz
-2023/01/24 | 19363 | macros/latex/contrib/tagpdf/ex-tagpdf-template.pdf
2023/01/24 | 19161 | macros/latex/contrib/l3kernel/l3pdf.dtx
2023/01/24 | 19094 | macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-lua-intersections.tex
2023/01/24 | 1908 | macros/latex/contrib/l3kernel/interface3.tex
@@ -1582,7 +1756,6 @@
2023/01/24 | 18694 | macros/latex/contrib/l3experimental/l3bitset.dtx
2023/01/24 | 18531 | macros/latex/contrib/l3kernel/l3fp-round.dtx
2023/01/24 | 18510 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-by.tex
-2023/01/24 | 18461 | macros/latex/contrib/tagpdf/ex-patch-sectioning-koma-luatex.pdf
2023/01/24 | 18295 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-points-by.tex
2023/01/24 | 18272 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-intersections.tex
2023/01/24 | 1788 | macros/latex/contrib/sidecap/sc-test2.tex
@@ -1590,12 +1763,8 @@
2023/01/24 | 17804 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-triangles.tex
2023/01/24 | 1779014 | macros/latex/contrib/l3kernel/interface3.pdf
2023/01/24 | 17760 | systems/texlive/tlnet/archive/tex4ebook.r65613.tar.xz
-2023/01/24 | 17742 | macros/latex/contrib/tagpdf/ex-alt-actualtext-luatex.pdf
2023/01/24 | 177020 | systems/texlive/tlnet/archive/make4ht.doc.r65613.tar.xz
-2023/01/24 | 17343 | macros/latex/contrib/tagpdf/tagpdf-tree.dtx
-2023/01/24 | 1730 | macros/latex/contrib/tagpdf/tagpdf.bib
2023/01/24 | 170076 | macros/latex/contrib/l3kernel/l3news11.pdf
-2023/01/24 | 16888 | macros/latex/contrib/tagpdf/ex-patch-list-luatex.pdf
2023/01/24 | 16633 | macros/latex/contrib/l3kernel/l3text-map.dtx
2023/01/24 | 16509 | macros/latex/contrib/l3experimental/l3benchmark.dtx
2023/01/24 | 163456 | macros/latex/contrib/l3kernel/l3news08.pdf
@@ -1608,8 +1777,6 @@
2023/01/24 | 155616 | macros/latex/contrib/l3kernel/l3doc.dtx
2023/01/24 | 1553 | macros/latex/contrib/l3experimental/l3graphics.ins
2023/01/24 | 1547 | macros/latex/contrib/l3experimental/l3opacity.ins
-2023/01/24 | 1537 | macros/latex/contrib/tagpdf/ex-structure-obsolete.tex
-2023/01/24 | 15241 | macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx
2023/01/24 | 151818 | macros/latex/contrib/l3kernel/l3docstrip.pdf
2023/01/24 | 151569 | macros/latex/contrib/l3kernel/l3news06.pdf
2023/01/24 | 150674 | macros/latex/contrib/l3kernel/l3news02.pdf
@@ -1617,26 +1784,19 @@
2023/01/24 | 1497 | macros/latex/contrib/diffcoeff/README.txt
2023/01/24 | 14927 | macros/latex/contrib/l3kernel/l3bootstrap.dtx
2023/01/24 | 14913 | macros/latex/contrib/l3kernel/l3news12.tex
-2023/01/24 | 1488604 | macros/latex/contrib/tagpdf/tagpdf-code.pdf
2023/01/24 | 148706 | macros/latex/contrib/l3kernel/l3news03.pdf
2023/01/24 | 145318 | macros/latex/contrib/l3kernel/l3tl.dtx
-2023/01/24 | 14511 | macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx
2023/01/24 | 14423 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-show.tex
-2023/01/24 | 141163 | macros/latex/contrib/tagpdf/pac3.PNG
2023/01/24 | 14020560 | install/macros/latex/contrib/l3kernel.tds.zip
-2023/01/24 | 1398 | macros/latex/contrib/tagpdf/ex-attribute.tex
2023/01/24 | 13761468 | macros/latex/contrib/l3kernel.zip
2023/01/24 | 136649 | macros/latex/contrib/l3kernel/l3file.dtx
2023/01/24 | 1360 | macros/latex/contrib/l3experimental/l3draw-code.tex
2023/01/24 | 13272 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-sectors.tex
-2023/01/24 | 1326872 | systems/texlive/tlnet/archive/diffcoeff.doc.r65614.tar.xz
-2023/01/24 | 13044 | systems/texlive/tlnet/archive/frenchmath.source.r65614.tar.xz
2023/01/24 | 129434 | macros/latex/contrib/l3kernel/l3basics.dtx
2023/01/24 | 128316 | macros/latex/contrib/l3kernel/l3news07.pdf
2023/01/24 | 12783 | macros/latex/contrib/l3kernel/l3fp-traps.dtx
2023/01/24 | 127087 | macros/latex/contrib/l3kernel/l3keys.dtx
2023/01/24 | 1243317 | macros/latex/contrib/tkz/tkz-euclide.zip
-2023/01/24 | 1237 | macros/latex/contrib/tagpdf/ex-AF-file.tex
2023/01/24 | 12361 | macros/latex/contrib/l3experimental/l3sys-shell.dtx
2023/01/24 | 122710 | macros/latex/contrib/l3kernel/l3news01.pdf
2023/01/24 | 1224 | macros/latex/contrib/tkz/tkz-euclide/latex/tools/tkz-tools-eu-BB.tex
@@ -1645,18 +1805,14 @@
2023/01/24 | 11884 | macros/latex/contrib/l3kernel/l3styleguide.tex
2023/01/24 | 11839 | macros/latex/contrib/tkz/tkz-euclide/README.md
2023/01/24 | 11781 | macros/latex/contrib/l3kernel/l3fparray.dtx
-2023/01/24 | 1177 | macros/latex/contrib/tagpdf/README.md
2023/01/24 | 1158 | macros/latex/contrib/sidecap/sc-test3.tex
2023/01/24 | 114586 | macros/latex/contrib/l3kernel/l3news04.pdf
2023/01/24 | 113427 | macros/latex/contrib/l3kernel/l3str-convert.dtx
2023/01/24 | 112485 | macros/latex/contrib/l3kernel/l3news05.pdf
2023/01/24 | 11224 | macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.cfg
-2023/01/24 | 11116 | systems/texlive/tlnet/archive/diffcoeff.r65614.tar.xz
2023/01/24 | 11100 | macros/latex/contrib/tkz/tkz-euclide/latex/tools-lua/tkz-tools-lua-math.tex
2023/01/24 | 110994 | macros/latex/contrib/l3kernel/l3color.dtx
-2023/01/24 | 109529 | macros/latex/contrib/tagpdf/tagpdf.tex
2023/01/24 | 10839 | macros/latex/contrib/tkz/tkz-euclide/latex/obj-lua/tkz-obj-lua-points-with.tex
-2023/01/24 | 1073 | macros/latex/contrib/tagpdf/ex-softhyphen.tex
2023/01/24 | 107383 | macros/latex/contrib/l3kernel/l3news09.tex
2023/01/24 | 107332 | systems/texlive/tlnet/archive/dvisvgm.doc.r65614.tar.xz
2023/01/24 | 10652 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-points-with.tex
@@ -1665,171 +1821,5 @@
2023/01/24 | 105029 | macros/latex/contrib/l3kernel/l3fp-parse.dtx
2023/01/24 | 10450 | macros/latex/contrib/tkz/tkz-euclide/latex/obj/tkz-obj-eu-lines.tex
2023/01/24 | 10203 | macros/latex/contrib/tkz/tkz-euclide/latex/drawings/tkz-draw-eu-lines.tex
-2023/01/24 | 1019 | macros/latex/contrib/tagpdf/ex-formula-problem.tex
2023/01/24 | 10136 | macros/latex/contrib/l3experimental/l3draw-transforms.dtx
2023/01/24 | 10018 | macros/latex/contrib/l3experimental/l3draw-scopes.dtx
-2023/01/23 | 9748 | graphics/asymptote/doc/asy.1
-2023/01/23 | 95 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/depend.make
-2023/01/23 | 955 | macros/latex/contrib/pagelayout/doc/example-template.tex
-2023/01/23 | 95522 | systems/win32/miktex/tm/packages/etoc__source.tar.lzma
-2023/01/23 | 9429 | macros/generic/expkv-bundle/pkg-opt.tex
-2023/01/23 | 935 | macros/generic/expkv-bundle/preamble-prefixes.tex
-2023/01/23 | 933271 | systems/win32/miktex/tm/packages/writeongrid__doc.tar.lzma
-2023/01/23 | 917543 | macros/latex/required/babel/base/babel.pdf
-2023/01/23 | 9107 | systems/win32/miktex/tm/packages/writeongrid__source.tar.lzma
-2023/01/23 | 8993 | macros/latex/contrib/pagelayout/doc/banner.pdf
-2023/01/23 | 87056 | macros/generic/expkv-bundle/expkv.dtx
-2023/01/23 | 8623 | macros/generic/expkv-bundle/expkv-bundle.tex
-2023/01/23 | 862071 | install/macros/generic/expkv-bundle.tds.zip
-2023/01/23 | 8618 | macros/latex/contrib/pagelayout/scripts/pagelayoutapi
-2023/01/23 | 848392 | macros/latex/required/babel/base/locale.zip
-2023/01/23 | 8439808 | graphics/asymptote/binaries/i386-windows/texlive/asy.exe
-2023/01/23 | 8322560 | graphics/asymptote/binaries/x86_64-windows/texlive/asy.exe
-2023/01/23 | 827755 | macros/generic/expkv-bundle.zip
-2023/01/23 | 817 | macros/latex/contrib/pagelayout/doc/pagelayout-manual-layout-guides.tex
-2023/01/23 | 814206 | systems/win32/miktex/tm/packages/etoc__doc.tar.lzma
-2023/01/23 | 81092 | graphics/asymptote/doc/TeXShopAndAsymptote.pdf
-2023/01/23 | 790618 | systems/win32/miktex/tm/packages/lineno__doc.tar.lzma
-2023/01/23 | 79041 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.make
-2023/01/23 | 7869 | macros/latex/required/babel/base/babel.ins
-2023/01/23 | 760528 | macros/latex/required/babel/base/babel.dtx
-2023/01/23 | 758 | macros/latex/contrib/pagelayout/doc/example-graphic.tex
-2023/01/23 | 7587 | systems/win32/miktex/tm/packages/overarrows.tar.lzma
-2023/01/23 | 7559 | macros/generic/expkv-bundle/preamble-lst.tex
-2023/01/23 | 74868 | macros/latex/contrib/pagelayout/doc/pagelayout-manual.pdf
-2023/01/23 | 7158 | systems/win32/miktex/tm/packages/eolang.tar.lzma
-2023/01/23 | 714141 | macros/generic/expkv-bundle/expkv-bundle.pdf
-2023/01/23 | 6988 | systems/texlive/tlnet/archive/eolang.r65606.tar.xz
-2023/01/23 | 67141 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.internal
-2023/01/23 | 6493 | macros/latex/contrib/pagelayout/doc/pagelayout-manual-layout-guides.pdf
-2023/01/23 | 63136 | graphics/asymptote/doc/FAQ/asy-faq.info
-2023/01/23 | 6305 | macros/latex/contrib/pagelayout/doc/example-template.pdf
-2023/01/23 | 62338 | systems/win32/miktex/tm/packages/lineno.tar.lzma
-2023/01/23 | 6169 | systems/win32/miktex/tm/packages/exesheet.tar.lzma
-2023/01/23 | 60456 | macros/generic/expkv-bundle/expkv-cs.dtx
-2023/01/23 | 5436 | macros/latex/contrib/pagelayout/doc/quickstart-2.svg
-2023/01/23 | 540691 | systems/win32/miktex/tm/packages/overarrows__doc.tar.lzma
-2023/01/23 | 5217 | macros/generic/expkv-bundle/introduction.tex
-2023/01/23 | 476015 | graphics/asymptote/doc/png/asymptote.info
-2023/01/23 | 4736 | macros/latex/contrib/semantex/stripsemantex.sty
-2023/01/23 | 4679 | systems/win32/miktex/tm/packages/runcode.tar.lzma
-2023/01/23 | 46359 | macros/generic/expkv-bundle/pkg-main.tex
-2023/01/23 | 45956 | systems/win32/miktex/tm/packages/lineno__source.tar.lzma
-2023/01/23 | 45878 | macros/generic/expkv-bundle/expkv-def.dtx
-2023/01/23 | 455799 | macros/latex/contrib/semantex.zip
-2023/01/23 | 43 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/cmake_clean_target.cmake
-2023/01/23 | 4387400 | install/macros/latex/contrib/pagelayout.tds.zip
-2023/01/23 | 4384224 | macros/latex/contrib/pagelayout.zip
-2023/01/23 | 4355447 | systems/win32/miktex/tm/packages/hwemoji__doc.tar.lzma
-2023/01/23 | 4273507 | systems/win32/miktex/tm/packages/hwemoji.tar.lzma
-2023/01/23 | 4236730 | systems/win32/miktex/tm/packages/bidi__doc.tar.lzma
-2023/01/23 | 399977 | systems/win32/miktex/tm/packages/runcode__doc.tar.lzma
-2023/01/23 | 398307 | macros/latex/contrib/semantex/semantex.pdf
-2023/01/23 | 39493 | macros/generic/expkv-bundle/pkg-cs.tex
-2023/01/23 | 387 | macros/latex/contrib/hypdoc/README.md
-2023/01/23 | 3780 | systems/win32/miktex/tm/packages/writeongrid.tar.lzma
-2023/01/23 | 3745233 | help/LaTeX-FAQ-francaise.zip
-2023/01/23 | 37253 | macros/latex/contrib/pagelayout/doc/example-graphic.pdf
-2023/01/23 | 369 | macros/generic/expkv-bundle/preamble-examples.tex
-2023/01/23 | 369250 | systems/win32/miktex/tm/packages/xindex__doc.tar.lzma
-2023/01/23 | 35541 | macros/latex/contrib/hypdoc/hypdoc.dtx
-2023/01/23 | 35387 | systems/win32/miktex/tm/packages/xindex.tar.lzma
-2023/01/23 | 3528 | macros/generic/expkv-bundle/expkv-bundle.ins
-2023/01/23 | 3526 | macros/latex/required/babel/base/bbidxglo.dtx
-2023/01/23 | 3473 | macros/latex/contrib/pagelayout/README.md
-2023/01/23 | 335616 | macros/latex/contrib/hypdoc/hypdoc.pdf
-2023/01/23 | 331819 | macros/latex/contrib/hypdoc.zip
-2023/01/23 | 3242 | macros/latex/contrib/pagelayout/scripts/pagelayoutapi.1
-2023/01/23 | 3073922 | install/macros/latex/required/babel-base.tds.zip
-2023/01/23 | 300600 | macros/latex/contrib/semantex/semantex.sty
-2023/01/23 | 30050 | macros/generic/expkv-bundle/pkg-def.tex
-2023/01/23 | 2 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/progress.marks
-2023/01/23 | 2 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/progress.marks
-2023/01/23 | 29927 | macros/generic/expkv-bundle/expkv-opt-2020-10-10.dtx
-2023/01/23 | 2991 | macros/latex/contrib/pagelayout/scripts/pagelayoutapi.1.md
-2023/01/23 | 29363 | systems/win32/miktex/tm/packages/photobook.tar.lzma
-2023/01/23 | 2770 | systems/win32/miktex/tm/packages/gradient-text__source.tar.lzma
-2023/01/23 | 2754 | macros/generic/expkv-bundle/impatient.tex
-2023/01/23 | 2752879 | systems/win32/miktex/tm/packages/simpleicons.tar.lzma
-2023/01/23 | 26653708 | graphics/asymptote.zip
-2023/01/23 | 2631 | macros/generic/expkv-bundle/preamble-logos.tex
-2023/01/23 | 2538 | systems/win32/miktex/tm/packages/transparent.tar.lzma
-2023/01/23 | 25293 | macros/generic/expkv-bundle/expkv-opt.dtx
-2023/01/23 | 24612 | macros/generic/expkv-bundle/expkv-pop.dtx
-2023/01/23 | 244814 | macros/latex/contrib/frenchmath.zip
-2023/01/23 | 24244 | macros/latex/contrib/pagelayout/doc/pagelayout-manual.tex
-2023/01/23 | 24047 | systems/win32/miktex/tm/packages/overarrows__source.tar.lzma
-2023/01/23 | 2340300 | macros/latex/contrib/pagelayout/tests.zip
-2023/01/23 | 23278 | macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-presentation.tex
-2023/01/23 | 22 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/progress.make
-2023/01/23 | 22836 | systems/win32/miktex/tm/packages/exesheet__source.tar.lzma
-2023/01/23 | 2225845 | systems/win32/miktex/tm/packages/kpfonts.tar.lzma
-2023/01/23 | 2212 | macros/latex/contrib/pagelayout/doc/example-grid.tex
-2023/01/23 | 2207 | macros/latex/required/babel/base/README.md
-2023/01/23 | 2194749 | systems/win32/miktex/tm/packages/adobemapping.tar.lzma
-2023/01/23 | 21890 | macros/latex/required/babel/base/bbcompat.dtx
-2023/01/23 | 216332 | systems/win32/miktex/tm/packages/exesheet__doc.tar.lzma
-2023/01/23 | 209322 | graphics/asymptote/asy.list
-2023/01/23 | 2072 | macros/generic/expkv-bundle/preamble-noidx.tex
-2023/01/23 | 2008607 | systems/win32/miktex/tm/packages/simpleicons__doc.tar.lzma
-2023/01/23 | 199 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/progress.make
-2023/01/23 | 1985 | macros/latex/contrib/pagelayout/doc/example-book.tex
-2023/01/23 | 198487 | graphics/asymptote/doc/CAD.pdf
-2023/01/23 | 1966500 | macros/latex/required/babel/base.zip
-2023/01/23 | 19040 | macros/latex/contrib/pagelayout/LICENSE
-2023/01/23 | 188 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/cmake_clean.cmake
-2023/01/23 | 1873 | macros/generic/expkv-bundle/README.md
-2023/01/23 | 182157 | macros/latex/contrib/semantex/semantex.tex
-2023/01/23 | 18197 | macros/generic/expkv-bundle/pkg-pop.tex
-2023/01/23 | 17992 | systems/win32/miktex/tm/packages/simpleicons__source.tar.lzma
-2023/01/23 | 17991 | graphics/asymptote/asy-keywords.el
-2023/01/23 | 17433 | macros/latex/contrib/pagelayout/doc/banner.svg
-2023/01/23 | 170547 | systems/win32/miktex/tm/packages/xindex__source.tar.lzma
-2023/01/23 | 169844 | systems/win32/miktex/tm/packages/fancyvrb__doc.tar.lzma
-2023/01/23 | 1678 | macros/latex/contrib/pagelayout/scripts/textestvis.1
-2023/01/23 | 16355 | macros/latex/contrib/pagelayout/doc/quickstart-1.svg
-2023/01/23 | 1611808 | systems/win32/miktex/tm/packages/kpfonts__doc.tar.lzma
-2023/01/23 | 16078 | systems/win32/miktex/tm/packages/eolang__source.tar.lzma
-2023/01/23 | 1589167 | systems/win32/miktex/tm/packages/eolang__doc.tar.lzma
-2023/01/23 | 1585204 | systems/texlive/tlnet/archive/eolang.doc.r65606.tar.xz
-2023/01/23 | 15488 | systems/texlive/tlnet/archive/eolang.source.r65606.tar.xz
-2023/01/23 | 150304 | systems/win32/miktex/tm/packages/bidi__source.tar.lzma
-2023/01/23 | 14764663 | macros/texinfo/texinfo.zip
-2023/01/23 | 1471 | macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-lua.tex
-2023/01/23 | 145103 | macros/latex/contrib/diffcoeff/diffcoeff.tex
-2023/01/23 | 1443657 | macros/latex/contrib/diffcoeff.zip
-2023/01/23 | 1419 | macros/latex/contrib/pagelayout/scripts/textestvis.1.md
-2023/01/23 | 1419852 | macros/latex/contrib/pagelayout/doc/kopi.jpg
-2023/01/23 | 140795 | macros/latex/contrib/pagelayout/tex/pagelayout.cls
-2023/01/23 | 137910 | macros/latex/contrib/pagelayout/doc/example-book.pdf
-2023/01/23 | 13712 | macros/generic/expkv-bundle/comparison.tex
-2023/01/23 | 135373 | systems/win32/miktex/tm/packages/photobook__doc.tar.lzma
-2023/01/23 | 134272 | systems/win32/miktex/tm/packages/bidi.tar.lzma
-2023/01/23 | 133420 | macros/latex/contrib/pagelayout/doc/example-borders-and-shadows.pdf
-2023/01/23 | 131280 | systems/win32/miktex/tm/packages/gradient-text__doc.tar.lzma
-2023/01/23 | 1288720 | graphics/asymptote/doc/asymptote.pdf
-2023/01/23 | 1284 | systems/win32/miktex/tm/packages/gradient-text.tar.lzma
-2023/01/23 | 1277 | macros/latex/contrib/pagelayout/doc/quickstart.tex
-2023/01/23 | 127290 | macros/latex/contrib/pagelayout/doc/quickstart-3.svg
-2023/01/23 | 12199 | macros/latex/contrib/pagelayout/scripts/textestvis
-2023/01/23 | 121601 | macros/latex/contrib/pagelayout/doc/quickstart.pdf
-2023/01/23 | 12144 | systems/win32/miktex/tm/packages/fancyvrb.tar.lzma
-2023/01/23 | 121145 | graphics/asymptote/doc/asyRefCard.pdf
-2023/01/23 | 12036 | macros/latex/contrib/pagelayout/doc/example-grid.pdf
-2023/01/23 | 11 | usergrps/gutenberg/VERSION
-2023/01/23 | 1191 | macros/latex/contrib/pagelayout/doc/banner.tex
-2023/01/23 | 11360 | systems/win32/miktex/tm/packages/fancyvrb__source.tar.lzma
-2023/01/23 | 11123 | macros/latex/contrib/pagelayout/doc/example-text.pdf
-2023/01/23 | 1104 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/cmake_clean.cmake
-2023/01/23 | 1102 | macros/generic/expkv-bundle/preamble-l3doctweaks.tex
-2023/01/23 | 1097 | macros/latex/contrib/pagelayout/doc/example-borders-and-shadows.tex
-2023/01/23 | 1094291 | help/LaTeX-FAQ-francaise/FAQ-fr_pages.tar.gz
-2023/01/23 | 1091 | systems/win32/miktex/tm/packages/adobemapping__doc.tar.lzma
-2023/01/23 | 10850 | macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-news.tex
-2023/01/23 | 1075 | macros/latex/contrib/pagelayout/doc/example-text.tex
-2023/01/23 | 10750 | systems/win32/miktex/tm/packages/runcode__source.tar.lzma
-2023/01/23 | 1067 | macros/latex/contrib/pagelayout/doc/3x2.pdf
-2023/01/23 | 10675 | macros/generic/expkv-bundle/preamble-enverb.tex
-2023/01/23 | 1064 | macros/latex/contrib/pagelayout/doc/2x1.pdf
-2023/01/23 | 1028 | macros/latex/contrib/pagelayout/doc/1x1.pdf
-2023/01/23 | 10247 | systems/win32/miktex/tm/packages/etoc.tar.lzma
diff --git a/biblio/bibtex/contrib/urlbst/README b/biblio/bibtex/contrib/urlbst/README
index 15daf75935..8b80f1ec47 100644
--- a/biblio/bibtex/contrib/urlbst/README
+++ b/biblio/bibtex/contrib/urlbst/README
@@ -1,7 +1,7 @@
urlbst -- add @webpage entry and url/doi/eprint/pubmed fields to BibTeX
=======================================================================
-Version 0.9, 2022 December 1.
+Version 0.9.1, 2023 January 30.
The urlbst package consists of a Perl script which edits BibTeX style
files (.bst) to add a `@webpage` entry type, and which adds a few new
@@ -30,7 +30,7 @@ Licences
The copyright and licence position for the modified `.bst` files seems
slightly muddy to me. On the grounds that any licence is better than
no licence, I therefore assert that the _modifications_ which the
-`urlbst` program makes to these files are copyright 2002-03, 2005-12, 2014, 2019, 2022,
+`urlbst` program makes to these files are copyright 2002–23,
Norman Gray, and that these modifications are available for
distribution under the terms of the LaTeX Project Public Licence.
diff --git a/biblio/bibtex/contrib/urlbst/VERSION b/biblio/bibtex/contrib/urlbst/VERSION
index 69b5bc8a8f..0bcbc60c10 100644
--- a/biblio/bibtex/contrib/urlbst/VERSION
+++ b/biblio/bibtex/contrib/urlbst/VERSION
@@ -1 +1 @@
-urlbst-0.9
+urlbst-0.9.1
diff --git a/biblio/bibtex/contrib/urlbst/abbrvurl.bst b/biblio/bibtex/contrib/urlbst/abbrvurl.bst
index 6f94685378..3fe9520b54 100644
--- a/biblio/bibtex/contrib/urlbst/abbrvurl.bst
+++ b/biblio/bibtex/contrib/urlbst/abbrvurl.bst
@@ -1,7 +1,7 @@
%%% Modification of BibTeX style file /usr/local/texlive/2022/texmf-dist/bibtex/bst/base/abbrv.bst
-%%% ... by urlbst, version 0.9 (marked with "% urlbst")
+%%% ... by urlbst, version 0.9.1 (marked with "% urlbst")
%%% See <https://purl.org/nxg/dist/urlbst> and repository <https://heptapod.host/nxg/urlbst>
-%%% Modifications Copyright 2002-03, 2005-12, 2014, 2019, 2022, Norman Gray,
+%%% Modifications Copyright 2002–23, Norman Gray,
%%% and distributed under the terms of the LPPL; see README for discussion.
%%%
%%% Added webpage entry type, and url and lastchecked fields.
@@ -68,24 +68,24 @@ FUNCTION {init.urlbst.variables}
% The following constants may be adjusted by hand, if desired
% The first set allow you to enable or disable certain functionality.
- #1 'addeprints := % 0=no eprints; 1=include eprints
- #1 'adddoi := % 0=no DOI resolver; 1=include it
#2 'hrefform := % 0=no crossrefs; 1=hypertex hrefs; 2=hyperref hrefs
- #0 'doiform := % 0=with href; 1=with \doi{}
+ #1 'adddoi := % 0=no DOI resolver; 1=include it
+ #1 'addeprints := % 0=no eprints; 1=include eprints
#1 'addpubmed := % 0=no PUBMED resolver; 1=include it
#0 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles
+ #0 'doiform := % 0=with href; 1=with \doi{}
% String constants, which you _might_ want to tweak.
- "[link]" 'linktextstring := % anonymous link text
- "cited " 'citedstring := % label in "lastchecked" remark
- "online" 'onlinestring := % label that a resource is online
- "doi:" 'doiprefix := % printed text to introduce DOI
- "arXiv:" 'eprintprefix := % text prefix printed before eprint ref
- "http://www.ncbi.nlm.nih.gov/pubmed/" 'pubmedurl := % prefix to make URL from PUBMED
"PMID:" 'pubmedprefix := % text prefix printed before PUBMED ref
- "https://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref
+ "cited " 'citedstring := % label in "lastchecked" remark
"https://doi.org/" 'doiurl := % prefix to make URL from DOI
"URL: " 'urlintro := % text prefix before URL
+ "[link]" 'linktextstring := % anonymous link text
+ "http://www.ncbi.nlm.nih.gov/pubmed/" 'pubmedurl := % prefix to make URL from PUBMED
+ "arXiv:" 'eprintprefix := % text prefix printed before eprint ref
+ "doi:" 'doiprefix := % printed text to introduce DOI
+ "online" 'onlinestring := % label that a resource is online
+ "https://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref
% The following are internal state variables, not configuration constants,
% so they shouldn't be fiddled with.
@@ -138,6 +138,19 @@ FUNCTION {output.nonnull.original}
}
% urlbst...
+% Minimal DOI parsing.
+% Given a DOI on the stack, check whether it starts with 'doiurl' or not.
+% In either case, leave on the stack first a DOI with, and then a DOI without, the URL prefix.
+FUNCTION {parse.doi}
+{
+ #1 doiurl text.length$ substring$
+ doiurl =
+ { doi
+ doi doiurl text.length$ #1 + #999 substring$ }
+ { doiurl doi *
+ doi }
+ if$
+}
% The following three functions are for handling inlinelink. They wrap
% a block of text which is potentially output with write$ by multiple
% other functions, so we don't know the content a priori.
@@ -164,7 +177,12 @@ FUNCTION {possibly.setup.inlinelink}
if$ }
{ pubmedurl pubmed * }
if$ }
- { doiurl doi * }
+% { doiurl doi * }
+ { doi empty$
+ { "XXX" }
+ { doi parse.doi pop$ }
+ if$
+ }
if$
% an appropriately-formatted URL is now on the stack
hrefform #1 = % hypertex
@@ -761,9 +779,11 @@ FUNCTION {format.eprint}
FUNCTION {format.doi}
{ doi empty$
{ "" }
- { doiform #1 =
- { "\doi{" doi * "}" * }
- { doiprefix doi * doiurl doi * make.href }
+ { doi parse.doi % leaves "https://doi.org/DOI" DOI on the stack
+ 's := 't :=
+ doiform #1 =
+ { "\doi{" s * "}" * }
+ { doiprefix s * t make.href }
if$
}
if$
@@ -797,10 +817,11 @@ FUNCTION {output.web.refs}
inlinelinks
'skip$ % links were inline -- don't repeat them
{ % If the generated DOI will be the same as the URL,
- % then don't print the URL (thanks to Joseph Wright for this code,
+ % then don't print the URL (thanks to Joseph Wright
+ % for (the original version of) this code,
% at http://tex.stackexchange.com/questions/5660)
adddoi
- doiurl doi empty$ { "X" } { doi } if$ * % DOI URL to be generated
+ doi empty$ { "X" } { doi parse.doi pop$ } if$ % DOI URL to be generated
url empty$ { "Y" } { url } if$ % the URL, or "Y" if empty
= % are the strings equal?
and
diff --git a/biblio/bibtex/contrib/urlbst/alphaurl.bst b/biblio/bibtex/contrib/urlbst/alphaurl.bst
index e4fc0af4eb..c72e293d4f 100644
--- a/biblio/bibtex/contrib/urlbst/alphaurl.bst
+++ b/biblio/bibtex/contrib/urlbst/alphaurl.bst
@@ -1,7 +1,7 @@
%%% Modification of BibTeX style file /usr/local/texlive/2022/texmf-dist/bibtex/bst/base/alpha.bst
-%%% ... by urlbst, version 0.9 (marked with "% urlbst")
+%%% ... by urlbst, version 0.9.1 (marked with "% urlbst")
%%% See <https://purl.org/nxg/dist/urlbst> and repository <https://heptapod.host/nxg/urlbst>
-%%% Modifications Copyright 2002-03, 2005-12, 2014, 2019, 2022, Norman Gray,
+%%% Modifications Copyright 2002–23, Norman Gray,
%%% and distributed under the terms of the LPPL; see README for discussion.
%%%
%%% Added webpage entry type, and url and lastchecked fields.
@@ -69,23 +69,23 @@ FUNCTION {init.urlbst.variables}
% The first set allow you to enable or disable certain functionality.
#1 'addeprints := % 0=no eprints; 1=include eprints
- #2 'hrefform := % 0=no crossrefs; 1=hypertex hrefs; 2=hyperref hrefs
#0 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles
+ #1 'addpubmed := % 0=no PUBMED resolver; 1=include it
#1 'adddoi := % 0=no DOI resolver; 1=include it
+ #2 'hrefform := % 0=no crossrefs; 1=hypertex hrefs; 2=hyperref hrefs
#0 'doiform := % 0=with href; 1=with \doi{}
- #1 'addpubmed := % 0=no PUBMED resolver; 1=include it
% String constants, which you _might_ want to tweak.
- "cited " 'citedstring := % label in "lastchecked" remark
- "URL: " 'urlintro := % text prefix before URL
- "[link]" 'linktextstring := % anonymous link text
+ "doi:" 'doiprefix := % printed text to introduce DOI
"arXiv:" 'eprintprefix := % text prefix printed before eprint ref
- "http://www.ncbi.nlm.nih.gov/pubmed/" 'pubmedurl := % prefix to make URL from PUBMED
"PMID:" 'pubmedprefix := % text prefix printed before PUBMED ref
- "online" 'onlinestring := % label that a resource is online
+ "[link]" 'linktextstring := % anonymous link text
+ "cited " 'citedstring := % label in "lastchecked" remark
+ "http://www.ncbi.nlm.nih.gov/pubmed/" 'pubmedurl := % prefix to make URL from PUBMED
"https://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref
- "doi:" 'doiprefix := % printed text to introduce DOI
+ "online" 'onlinestring := % label that a resource is online
"https://doi.org/" 'doiurl := % prefix to make URL from DOI
+ "URL: " 'urlintro := % text prefix before URL
% The following are internal state variables, not configuration constants,
% so they shouldn't be fiddled with.
@@ -138,6 +138,19 @@ FUNCTION {output.nonnull.original}
}
% urlbst...
+% Minimal DOI parsing.
+% Given a DOI on the stack, check whether it starts with 'doiurl' or not.
+% In either case, leave on the stack first a DOI with, and then a DOI without, the URL prefix.
+FUNCTION {parse.doi}
+{
+ #1 doiurl text.length$ substring$
+ doiurl =
+ { doi
+ doi doiurl text.length$ #1 + #999 substring$ }
+ { doiurl doi *
+ doi }
+ if$
+}
% The following three functions are for handling inlinelink. They wrap
% a block of text which is potentially output with write$ by multiple
% other functions, so we don't know the content a priori.
@@ -164,7 +177,12 @@ FUNCTION {possibly.setup.inlinelink}
if$ }
{ pubmedurl pubmed * }
if$ }
- { doiurl doi * }
+% { doiurl doi * }
+ { doi empty$
+ { "XXX" }
+ { doi parse.doi pop$ }
+ if$
+ }
if$
% an appropriately-formatted URL is now on the stack
hrefform #1 = % hypertex
@@ -763,9 +781,11 @@ FUNCTION {format.eprint}
FUNCTION {format.doi}
{ doi empty$
{ "" }
- { doiform #1 =
- { "\doi{" doi * "}" * }
- { doiprefix doi * doiurl doi * make.href }
+ { doi parse.doi % leaves "https://doi.org/DOI" DOI on the stack
+ 's := 't :=
+ doiform #1 =
+ { "\doi{" s * "}" * }
+ { doiprefix s * t make.href }
if$
}
if$
@@ -799,10 +819,11 @@ FUNCTION {output.web.refs}
inlinelinks
'skip$ % links were inline -- don't repeat them
{ % If the generated DOI will be the same as the URL,
- % then don't print the URL (thanks to Joseph Wright for this code,
+ % then don't print the URL (thanks to Joseph Wright
+ % for (the original version of) this code,
% at http://tex.stackexchange.com/questions/5660)
adddoi
- doiurl doi empty$ { "X" } { doi } if$ * % DOI URL to be generated
+ doi empty$ { "X" } { doi parse.doi pop$ } if$ % DOI URL to be generated
url empty$ { "Y" } { url } if$ % the URL, or "Y" if empty
= % are the strings equal?
and
diff --git a/biblio/bibtex/contrib/urlbst/configure b/biblio/bibtex/contrib/urlbst/configure
index 6817ec0028..dcdda31145 100755
--- a/biblio/bibtex/contrib/urlbst/configure
+++ b/biblio/bibtex/contrib/urlbst/configure
@@ -1,7 +1,7 @@
#! /bin/sh
# From configure.ac @PACKAGE_VERSION@.
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for urlbst 0.9.
+# Generated by GNU Autoconf 2.71 for urlbst 0.9.1.
#
# Report bugs to <gray@nxg.name>.
#
@@ -611,8 +611,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='urlbst'
PACKAGE_TARNAME='urlbst'
-PACKAGE_VERSION='0.9'
-PACKAGE_STRING='urlbst 0.9'
+PACKAGE_VERSION='0.9.1'
+PACKAGE_STRING='urlbst 0.9.1'
PACKAGE_BUGREPORT='gray@nxg.name'
PACKAGE_URL=''
@@ -1229,7 +1229,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures urlbst 0.9 to adapt to many kinds of systems.
+\`configure' configures urlbst 0.9.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1291,7 +1291,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of urlbst 0.9:";;
+ short | recursive ) echo "Configuration of urlbst 0.9.1:";;
esac
cat <<\_ACEOF
@@ -1367,7 +1367,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-urlbst configure 0.9
+urlbst configure 0.9.1
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -1404,7 +1404,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by urlbst $as_me 0.9, which was
+It was created by urlbst $as_me 0.9.1, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@@ -1744,7 +1744,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-RELEASEDATE="2022 December 1"
+RELEASEDATE="2023 January 30"
REPOURL=https://heptapod.host/nxg/urlbst
@@ -1754,7 +1754,7 @@ CTANURL=https://ctan.org/pkg/urlbst
-COPYRIGHTYEARS="2002-03, 2005-12, 2014, 2019, 2022"
+COPYRIGHTYEARS="2002–23"
@@ -2427,7 +2427,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by urlbst $as_me 0.9, which was
+This file was extended by urlbst $as_me 0.9.1, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -2482,7 +2482,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-urlbst config.status 0.9
+urlbst config.status 0.9.1
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
diff --git a/biblio/bibtex/contrib/urlbst/configure.ac b/biblio/bibtex/contrib/urlbst/configure.ac
index d8f5227044..dc1d706b02 100644
--- a/biblio/bibtex/contrib/urlbst/configure.ac
+++ b/biblio/bibtex/contrib/urlbst/configure.ac
@@ -1,6 +1,6 @@
dnl Process this file with autoconf to produce a configure script
-AC_INIT(urlbst, 0.9, gray@nxg.name)
-RELEASEDATE="2022 December 1"
+AC_INIT(urlbst, 0.9.1, gray@nxg.name)
+RELEASEDATE="2023 January 30"
AC_SUBST(RELEASEDATE)
AC_SUBST(REPOURL, [https://heptapod.host/nxg/urlbst])
@@ -8,7 +8,9 @@ AC_SUBST(CTANURL, [https://ctan.org/pkg/urlbst])
AC_REVISION(@PACKAGE_VERSION@)
-COPYRIGHTYEARS="2002-03, 2005-12, 2014, 2019, 2022"
+dnl COPYRIGHTYEARS="2002-03, 2005-12, 2014, 2019, 2022, 2023"
+dnl simpler...
+COPYRIGHTYEARS="2002–23"
AC_SUBST(COPYRIGHTYEARS)
AC_PREREQ(2.50)
diff --git a/biblio/bibtex/contrib/urlbst/plainurl.bst b/biblio/bibtex/contrib/urlbst/plainurl.bst
index 34084b5476..e2df8eb613 100644
--- a/biblio/bibtex/contrib/urlbst/plainurl.bst
+++ b/biblio/bibtex/contrib/urlbst/plainurl.bst
@@ -1,7 +1,7 @@
%%% Modification of BibTeX style file /usr/local/texlive/2022/texmf-dist/bibtex/bst/base/plain.bst
-%%% ... by urlbst, version 0.9 (marked with "% urlbst")
+%%% ... by urlbst, version 0.9.1 (marked with "% urlbst")
%%% See <https://purl.org/nxg/dist/urlbst> and repository <https://heptapod.host/nxg/urlbst>
-%%% Modifications Copyright 2002-03, 2005-12, 2014, 2019, 2022, Norman Gray,
+%%% Modifications Copyright 2002–23, Norman Gray,
%%% and distributed under the terms of the LPPL; see README for discussion.
%%%
%%% Added webpage entry type, and url and lastchecked fields.
@@ -68,24 +68,24 @@ FUNCTION {init.urlbst.variables}
% The following constants may be adjusted by hand, if desired
% The first set allow you to enable or disable certain functionality.
- #1 'addpubmed := % 0=no PUBMED resolver; 1=include it
- #1 'addeprints := % 0=no eprints; 1=include eprints
- #0 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles
#1 'adddoi := % 0=no DOI resolver; 1=include it
+ #0 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles
#2 'hrefform := % 0=no crossrefs; 1=hypertex hrefs; 2=hyperref hrefs
+ #1 'addeprints := % 0=no eprints; 1=include eprints
#0 'doiform := % 0=with href; 1=with \doi{}
+ #1 'addpubmed := % 0=no PUBMED resolver; 1=include it
% String constants, which you _might_ want to tweak.
- "cited " 'citedstring := % label in "lastchecked" remark
- "[link]" 'linktextstring := % anonymous link text
- "https://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref
+ "https://doi.org/" 'doiurl := % prefix to make URL from DOI
+ "arXiv:" 'eprintprefix := % text prefix printed before eprint ref
"online" 'onlinestring := % label that a resource is online
+ "URL: " 'urlintro := % text prefix before URL
"doi:" 'doiprefix := % printed text to introduce DOI
- "https://doi.org/" 'doiurl := % prefix to make URL from DOI
"http://www.ncbi.nlm.nih.gov/pubmed/" 'pubmedurl := % prefix to make URL from PUBMED
- "URL: " 'urlintro := % text prefix before URL
+ "[link]" 'linktextstring := % anonymous link text
+ "https://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref
"PMID:" 'pubmedprefix := % text prefix printed before PUBMED ref
- "arXiv:" 'eprintprefix := % text prefix printed before eprint ref
+ "cited " 'citedstring := % label in "lastchecked" remark
% The following are internal state variables, not configuration constants,
% so they shouldn't be fiddled with.
@@ -138,6 +138,19 @@ FUNCTION {output.nonnull.original}
}
% urlbst...
+% Minimal DOI parsing.
+% Given a DOI on the stack, check whether it starts with 'doiurl' or not.
+% In either case, leave on the stack first a DOI with, and then a DOI without, the URL prefix.
+FUNCTION {parse.doi}
+{
+ #1 doiurl text.length$ substring$
+ doiurl =
+ { doi
+ doi doiurl text.length$ #1 + #999 substring$ }
+ { doiurl doi *
+ doi }
+ if$
+}
% The following three functions are for handling inlinelink. They wrap
% a block of text which is potentially output with write$ by multiple
% other functions, so we don't know the content a priori.
@@ -164,7 +177,12 @@ FUNCTION {possibly.setup.inlinelink}
if$ }
{ pubmedurl pubmed * }
if$ }
- { doiurl doi * }
+% { doiurl doi * }
+ { doi empty$
+ { "XXX" }
+ { doi parse.doi pop$ }
+ if$
+ }
if$
% an appropriately-formatted URL is now on the stack
hrefform #1 = % hypertex
@@ -761,9 +779,11 @@ FUNCTION {format.eprint}
FUNCTION {format.doi}
{ doi empty$
{ "" }
- { doiform #1 =
- { "\doi{" doi * "}" * }
- { doiprefix doi * doiurl doi * make.href }
+ { doi parse.doi % leaves "https://doi.org/DOI" DOI on the stack
+ 's := 't :=
+ doiform #1 =
+ { "\doi{" s * "}" * }
+ { doiprefix s * t make.href }
if$
}
if$
@@ -797,10 +817,11 @@ FUNCTION {output.web.refs}
inlinelinks
'skip$ % links were inline -- don't repeat them
{ % If the generated DOI will be the same as the URL,
- % then don't print the URL (thanks to Joseph Wright for this code,
+ % then don't print the URL (thanks to Joseph Wright
+ % for (the original version of) this code,
% at http://tex.stackexchange.com/questions/5660)
adddoi
- doiurl doi empty$ { "X" } { doi } if$ * % DOI URL to be generated
+ doi empty$ { "X" } { doi parse.doi pop$ } if$ % DOI URL to be generated
url empty$ { "Y" } { url } if$ % the URL, or "Y" if empty
= % are the strings equal?
and
diff --git a/biblio/bibtex/contrib/urlbst/unsrturl.bst b/biblio/bibtex/contrib/urlbst/unsrturl.bst
index 185483c1b6..80cd43e8c9 100644
--- a/biblio/bibtex/contrib/urlbst/unsrturl.bst
+++ b/biblio/bibtex/contrib/urlbst/unsrturl.bst
@@ -1,7 +1,7 @@
%%% Modification of BibTeX style file /usr/local/texlive/2022/texmf-dist/bibtex/bst/base/unsrt.bst
-%%% ... by urlbst, version 0.9 (marked with "% urlbst")
+%%% ... by urlbst, version 0.9.1 (marked with "% urlbst")
%%% See <https://purl.org/nxg/dist/urlbst> and repository <https://heptapod.host/nxg/urlbst>
-%%% Modifications Copyright 2002-03, 2005-12, 2014, 2019, 2022, Norman Gray,
+%%% Modifications Copyright 2002–23, Norman Gray,
%%% and distributed under the terms of the LPPL; see README for discussion.
%%%
%%% Added webpage entry type, and url and lastchecked fields.
@@ -68,24 +68,24 @@ FUNCTION {init.urlbst.variables}
% The following constants may be adjusted by hand, if desired
% The first set allow you to enable or disable certain functionality.
- #0 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles
- #1 'adddoi := % 0=no DOI resolver; 1=include it
+ #1 'addpubmed := % 0=no PUBMED resolver; 1=include it
#0 'doiform := % 0=with href; 1=with \doi{}
+ #1 'adddoi := % 0=no DOI resolver; 1=include it
#1 'addeprints := % 0=no eprints; 1=include eprints
- #1 'addpubmed := % 0=no PUBMED resolver; 1=include it
+ #0 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles
#2 'hrefform := % 0=no crossrefs; 1=hypertex hrefs; 2=hyperref hrefs
% String constants, which you _might_ want to tweak.
+ "https://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref
"http://www.ncbi.nlm.nih.gov/pubmed/" 'pubmedurl := % prefix to make URL from PUBMED
- "PMID:" 'pubmedprefix := % text prefix printed before PUBMED ref
"[link]" 'linktextstring := % anonymous link text
- "online" 'onlinestring := % label that a resource is online
- "https://doi.org/" 'doiurl := % prefix to make URL from DOI
- "doi:" 'doiprefix := % printed text to introduce DOI
"URL: " 'urlintro := % text prefix before URL
- "https://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref
+ "https://doi.org/" 'doiurl := % prefix to make URL from DOI
"cited " 'citedstring := % label in "lastchecked" remark
+ "doi:" 'doiprefix := % printed text to introduce DOI
"arXiv:" 'eprintprefix := % text prefix printed before eprint ref
+ "PMID:" 'pubmedprefix := % text prefix printed before PUBMED ref
+ "online" 'onlinestring := % label that a resource is online
% The following are internal state variables, not configuration constants,
% so they shouldn't be fiddled with.
@@ -138,6 +138,19 @@ FUNCTION {output.nonnull.original}
}
% urlbst...
+% Minimal DOI parsing.
+% Given a DOI on the stack, check whether it starts with 'doiurl' or not.
+% In either case, leave on the stack first a DOI with, and then a DOI without, the URL prefix.
+FUNCTION {parse.doi}
+{
+ #1 doiurl text.length$ substring$
+ doiurl =
+ { doi
+ doi doiurl text.length$ #1 + #999 substring$ }
+ { doiurl doi *
+ doi }
+ if$
+}
% The following three functions are for handling inlinelink. They wrap
% a block of text which is potentially output with write$ by multiple
% other functions, so we don't know the content a priori.
@@ -164,7 +177,12 @@ FUNCTION {possibly.setup.inlinelink}
if$ }
{ pubmedurl pubmed * }
if$ }
- { doiurl doi * }
+% { doiurl doi * }
+ { doi empty$
+ { "XXX" }
+ { doi parse.doi pop$ }
+ if$
+ }
if$
% an appropriately-formatted URL is now on the stack
hrefform #1 = % hypertex
@@ -760,9 +778,11 @@ FUNCTION {format.eprint}
FUNCTION {format.doi}
{ doi empty$
{ "" }
- { doiform #1 =
- { "\doi{" doi * "}" * }
- { doiprefix doi * doiurl doi * make.href }
+ { doi parse.doi % leaves "https://doi.org/DOI" DOI on the stack
+ 's := 't :=
+ doiform #1 =
+ { "\doi{" s * "}" * }
+ { doiprefix s * t make.href }
if$
}
if$
@@ -796,10 +816,11 @@ FUNCTION {output.web.refs}
inlinelinks
'skip$ % links were inline -- don't repeat them
{ % If the generated DOI will be the same as the URL,
- % then don't print the URL (thanks to Joseph Wright for this code,
+ % then don't print the URL (thanks to Joseph Wright
+ % for (the original version of) this code,
% at http://tex.stackexchange.com/questions/5660)
adddoi
- doiurl doi empty$ { "X" } { doi } if$ * % DOI URL to be generated
+ doi empty$ { "X" } { doi parse.doi pop$ } if$ % DOI URL to be generated
url empty$ { "Y" } { url } if$ % the URL, or "Y" if empty
= % are the strings equal?
and
diff --git a/biblio/bibtex/contrib/urlbst/urlbst b/biblio/bibtex/contrib/urlbst/urlbst
index 1a7625ee88..cfe72a52b0 100755
--- a/biblio/bibtex/contrib/urlbst/urlbst
+++ b/biblio/bibtex/contrib/urlbst/urlbst
@@ -8,16 +8,16 @@
#
# See https://purl.org/nxg/dist/urlbst for documentation
#
-# Copyright 2002-03, 2005-12, 2014, 2019, 2022, Norman Gray <https://nxg.me.uk>
+# Copyright 2002–23, Norman Gray <https://nxg.me.uk>
#
# This program is distributed under the terms of the
# GNU General Public Licence, v2.0.
-# The modifications to the input .bst files are asserted as Copyright 2002-03, 2005-12, 2014, 2019, 2022, Norman Gray,
+# The modifications to the input .bst files are asserted as Copyright 2002–23, Norman Gray,
# and distributed under the terms of the LaTeX Project Public Licence.
# See the package README for further dicussion of licences.
-$version = '0.9';
-$releasedate = '2022 December 1';
+$version = '0.9.1';
+$releasedate = '2023 January 30';
($progname = $0) =~ s/.*\///;
$mymarker = "% $progname";
$mymarkerend = "% ...$progname to here";
@@ -253,7 +253,7 @@ open (OUT, ">$outfile") || die "Can't open $outfile to write";
print OUT "%%% Modification of BibTeX style file ", ($infile eq '-' ? '<stdin>' : $infile), "\n";
print OUT "%%% ... by $progname, version $version (marked with \"$mymarker\")\n%%% See <$homepageurl> and repository <$repourl>\n";
-print OUT "%%% Modifications Copyright 2002-03, 2005-12, 2014, 2019, 2022, Norman Gray,\n";
+print OUT "%%% Modifications Copyright 2002–23, Norman Gray,\n";
print OUT "%%% and distributed under the terms of the LPPL; see README for discussion.\n";
print OUT "%%%\n";
print OUT "%%% Added webpage entry type, and url and lastchecked fields.\n";
@@ -501,6 +501,19 @@ sub print_output_functions {
print OUT "$mymarker...\n";
print OUT <<'EOD';
+% Minimal DOI parsing.
+% Given a DOI on the stack, check whether it starts with 'doiurl' or not.
+% In either case, leave on the stack first a DOI with, and then a DOI without, the URL prefix.
+FUNCTION {parse.doi}
+{
+ #1 doiurl text.length$ substring$
+ doiurl =
+ { doi
+ doi doiurl text.length$ #1 + #999 substring$ }
+ { doiurl doi *
+ doi }
+ if$
+}
% The following three functions are for handling inlinelink. They wrap
% a block of text which is potentially output with write$ by multiple
% other functions, so we don't know the content a priori.
@@ -527,7 +540,12 @@ FUNCTION {possibly.setup.inlinelink}
if$ }
{ pubmedurl pubmed * }
if$ }
- { doiurl doi * }
+% { doiurl doi * }
+ { doi empty$
+ { "XXX" }
+ { doi parse.doi pop$ }
+ if$
+ }
if$
% an appropriately-formatted URL is now on the stack
hrefform #1 = % hypertex
@@ -683,9 +701,11 @@ EOD
FUNCTION {format.doi}
{ doi empty$
{ "" }
- { doiform #1 =
- { "\doi{" doi * "}" * }
- { doiprefix doi * doiurl doi * make.href }
+ { doi parse.doi % leaves "https://doi.org/DOI" DOI on the stack
+ 's := 't :=
+ doiform #1 =
+ { "\doi{" s * "}" * }
+ { doiprefix s * t make.href }
if$
}
if$
@@ -731,10 +751,11 @@ FUNCTION {output.web.refs}
inlinelinks
'skip$ % links were inline -- don't repeat them
{ % If the generated DOI will be the same as the URL,
- % then don't print the URL (thanks to Joseph Wright for this code,
+ % then don't print the URL (thanks to Joseph Wright
+ % for (the original version of) this code,
% at http://tex.stackexchange.com/questions/5660)
adddoi
- doiurl doi empty$ { "X" } { doi } if$ * % DOI URL to be generated
+ doi empty$ { "X" } { doi parse.doi pop$ } if$ % DOI URL to be generated
url empty$ { "Y" } { url } if$ % the URL, or "Y" if empty
= % are the strings equal?
and
diff --git a/biblio/bibtex/contrib/urlbst/urlbst.bib b/biblio/bibtex/contrib/urlbst/urlbst.bib
index 2b76ae7178..0c8043f5b6 100644
--- a/biblio/bibtex/contrib/urlbst/urlbst.bib
+++ b/biblio/bibtex/contrib/urlbst/urlbst.bib
@@ -162,7 +162,7 @@ Webpage{emory95,
year = 2002,
doi = {10.1090/S0025-5718-01-01333-3}
}
-
+
% Article with a DOI and a URL which refers to the same resource as the DOI
% (we shouldn't get both in the output)
@Article{test:doi2,
@@ -170,8 +170,19 @@ Webpage{emory95,
title = {Fun with {DOIs}},
journal = {Journal of Indirection},
year = 1999,
- doi = {10.1234/5678},
- url = {https://doi.org/10.1234/5678}
+ doi = {10.1234/5678-without},
+ url = {https://doi.org/10.1234/5678-without}
+}
+
+% An article which includes a DOI which includes the doi.org prefix.
+% We shouldn't add a second one.
+@Article{test:doi3,
+ author = {A N Other},
+ title = {More Fun with {DOIs}},
+ journal = {Journal of Indirection (over there)},
+ year = 2000,
+ doi = {https://doi.org/10.1234/5678-with},
+ url = {https://doi.org/10.1234/5678-with}
}
% Article with a PUBMED reference
@@ -218,4 +229,3 @@ Webpage{emory95,
year = 2007,
url = {http://cs.jhu.edu/~jason/papers/#icassp07}
}
-
diff --git a/biblio/bibtex/contrib/urlbst/urlbst.html b/biblio/bibtex/contrib/urlbst/urlbst.html
index 6ee2137710..4ba263e3f4 100644
--- a/biblio/bibtex/contrib/urlbst/urlbst.html
+++ b/biblio/bibtex/contrib/urlbst/urlbst.html
@@ -24,7 +24,7 @@ It is on CTAN at
The code (and bugparade) is
<a href='https://heptapod.host/nxg/urlbst'>online</a>.</p>
-<p>Version 0.9, 2022 December 1.</p>
+<p>Version 0.9.1, 2023 January 30.</p>
</div>
<p>Contents</p>
@@ -206,9 +206,9 @@ href="https://texfaq.org/FAQ-citeURL" >TeX FAQ</a>.</p>
<h2><a name='download'>Download and installation</a></h2>
<p>Download the file as a
-<a href="urlbst-0.9.tar.gz" >tarball</a>
+<a href="urlbst-0.9.1.tar.gz" >tarball</a>
or
-<a href="urlbst-0.9.zip" >zip file</a>
+<a href="urlbst-0.9.1.zip" >zip file</a>
and unpack it. Or you can clone the source repository
<a href='https://heptapod.host/nxg/urlbst'>online</a>.</p>
@@ -315,7 +315,7 @@ is distributed as a PDF file, but if you want to regenerate it, use</p>
<p>The copyright and licence position for the modified <code>.bst</code> files seems
slightly muddy to me. On the grounds that any licence is better than
no licence, I therefore assert that the <em>modifications</em> which the
-<code>urlbst</code> program makes to these files are copyright 2002-03, 2005-12, 2014, 2019, 2022,
+<code>urlbst</code> program makes to these files are copyright 2002–23,
Norman Gray, and that these modifications are available for
distribution under the terms of the LaTeX Project Public Licence.</p>
@@ -365,6 +365,12 @@ to Katrin Leinweber for the pull request which fixed the format of DOI
references.</p>
<dl>
+<dt><strong>0.9.1, 2023 January 30</strong></dt>
+<dd>
+ Added code to spot and wrangle the <code>https://doi.org/</code> URL
+ prefix – the code now behaves correctly whether this is present or not.
+</dd>
+
<dt><strong>0.9, 2022 December 1</strong></dt>
<dd><ul>
<li>Changed repository location to <a href='https://heptapod.host/nxg/urlbst'>heptapod</a>
@@ -379,7 +385,7 @@ references.</p>
</ul>
</dd>
-<dt><strong>0.8, 2019 July 1</strong></dt>
+<dt>0.8, 2019 July 1</dt>
<dd><ul>
<li>The presence of a preexisting <code>format.doi</code>,
<code>format.eprint</code> or <code>format.pubmed</code> function is
@@ -481,13 +487,13 @@ documentation added.</dd>
</dl>
</div>
-<p>Copyright 2002-03, 2005-12, 2014, 2019, 2022, Norman Gray. Released under the terms of the GNU
+<p>Copyright 2002–23, Norman Gray. Released under the terms of the GNU
General Public Licence.</p>
<div class="signature">
<a href="https://nxg.me.uk"
>Norman Gray</a><br/>
-2022 December 1
+2023 January 30
</div>
</body>
diff --git a/biblio/bibtex/contrib/urlbst/urlbst.in b/biblio/bibtex/contrib/urlbst/urlbst.in
index 569bb7c4fb..3cd06089f5 100755
--- a/biblio/bibtex/contrib/urlbst/urlbst.in
+++ b/biblio/bibtex/contrib/urlbst/urlbst.in
@@ -501,6 +501,19 @@ sub print_output_functions {
print OUT "$mymarker...\n";
print OUT <<'EOD';
+% Minimal DOI parsing.
+% Given a DOI on the stack, check whether it starts with 'doiurl' or not.
+% In either case, leave on the stack first a DOI with, and then a DOI without, the URL prefix.
+FUNCTION {parse.doi}
+{
+ #1 doiurl text.length$ substring$
+ doiurl =
+ { doi
+ doi doiurl text.length$ #1 + #999 substring$ }
+ { doiurl doi *
+ doi }
+ if$
+}
% The following three functions are for handling inlinelink. They wrap
% a block of text which is potentially output with write$ by multiple
% other functions, so we don't know the content a priori.
@@ -527,7 +540,12 @@ FUNCTION {possibly.setup.inlinelink}
if$ }
{ pubmedurl pubmed * }
if$ }
- { doiurl doi * }
+% { doiurl doi * }
+ { doi empty$
+ { "XXX" }
+ { doi parse.doi pop$ }
+ if$
+ }
if$
% an appropriately-formatted URL is now on the stack
hrefform #1 = % hypertex
@@ -683,9 +701,11 @@ EOD
FUNCTION {format.doi}
{ doi empty$
{ "" }
- { doiform #1 =
- { "\doi{" doi * "}" * }
- { doiprefix doi * doiurl doi * make.href }
+ { doi parse.doi % leaves "https://doi.org/DOI" DOI on the stack
+ 's := 't :=
+ doiform #1 =
+ { "\doi{" s * "}" * }
+ { doiprefix s * t make.href }
if$
}
if$
@@ -731,10 +751,11 @@ FUNCTION {output.web.refs}
inlinelinks
'skip$ % links were inline -- don't repeat them
{ % If the generated DOI will be the same as the URL,
- % then don't print the URL (thanks to Joseph Wright for this code,
+ % then don't print the URL (thanks to Joseph Wright
+ % for (the original version of) this code,
% at http://tex.stackexchange.com/questions/5660)
adddoi
- doiurl doi empty$ { "X" } { doi } if$ * % DOI URL to be generated
+ doi empty$ { "X" } { doi parse.doi pop$ } if$ % DOI URL to be generated
url empty$ { "Y" } { url } if$ % the URL, or "Y" if empty
= % are the strings equal?
and
diff --git a/biblio/bibtex/contrib/urlbst/urlbst.pdf b/biblio/bibtex/contrib/urlbst/urlbst.pdf
index 7b2a34c124..f0960f4677 100644
--- a/biblio/bibtex/contrib/urlbst/urlbst.pdf
+++ b/biblio/bibtex/contrib/urlbst/urlbst.pdf
Binary files differ
diff --git a/biblio/bibtex/contrib/urlbst/urlbst.tex b/biblio/bibtex/contrib/urlbst/urlbst.tex
index a8d828e38f..8f16c6260f 100644
--- a/biblio/bibtex/contrib/urlbst/urlbst.tex
+++ b/biblio/bibtex/contrib/urlbst/urlbst.tex
@@ -2,7 +2,7 @@
\title{The \texttt{urlbst} package}
\author{Norman Gray\\\texttt{<https://nxg.me.uk>}}
-\date{Version 0.9, 2022 December 1}
+\date{Version 0.9.1, 2023 January 30}
%\usepackage{times}
\usepackage{url}
@@ -210,6 +210,14 @@ approach is to apply the setting \texttt{doiform=1}, which will
generate DOIs wrapped in the macro |\doi{...}|. This allows you to
supply a generic |\doi| macro to format them as you desire.
+The \btfield{doi} field may include the \texttt{https://doi.org/}, or
+it may omit it; the stylefile adds or removes the prefix as
+appropriate. Note that this parsing is rudimentary: it won't detect
+any of the variants of this prefix, meaning \texttt{http:} or
+\texttt{dx.doi.org}, both of which are now deprecated.
+% Note that this string is configured in configure.ac, but changing it
+% there wouldn't change it here (I could, but... Makefile)
+
The \ub\ script works by spotting patterns and characteristic function
names in the input |.bst| file. It works as-is in the case of the
four standard \BibTeX\ style files |plain.bst|, |unsrt.bst|,
@@ -333,14 +341,6 @@ generated bibliographies.
See also the URL entry in the UK \TeX\ FAQ~\cite{texfaq}, and
references therein.
-%% \textbf{Acknowledgements:} Thanks
-%% to Jason Eisner for suggesting the |--inlinelinks| option;
-%% to `ijvm' for code contributions in the |urlbst| script;
-%% to Pawe\l{} Widera for the suggestion to use |\path| when formatting DOIs;
-%% to Michael Giffin for the suggestion to include PubMed URLs;
-%% to Katrin Leinweber for the pull request which fixed the format of DOI
-%% references.
-
\section{Acknowledgements, and release notes}
%%% include:release-notes.tex
@@ -355,6 +355,12 @@ to Katrin Leinweber for the pull request which fixed the format of DOI
references.
\begin{description}
+\item[\textbf{0.9.1, 2023 January 30}]\relax
+
+ Added code to spot and wrangle the |https://doi.org/| URL
+ prefix – the code now behaves correctly whether this is present or not.
+
+
\item[\textbf{0.9, 2022 December 1}]\relax
\begin{itemize}
\item Changed repository location to heptapod\footnote{\url{https://heptapod.host/nxg/urlbst}}
@@ -369,7 +375,7 @@ references.
\end{itemize}
-\item[\textbf{0.8, 2019 July 1}]\relax
+\item[0.8, 2019 July 1]\relax
\begin{itemize}
\item The presence of a preexisting |format.doi|,
|format.eprint| or |format.pubmed| function is
diff --git a/biblio/ctan-bibdata/ctan.bib b/biblio/ctan-bibdata/ctan.bib
index 69b36855b4..408eefcc0b 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 30-01-2023, 02:01:32
+%% created at 31-01-2023, 02:01:22
%%
%% This file is provided under the terms of the LPPL v1.3 or
@@ -14395,8 +14395,8 @@
title = {The \texttt{concmath-otf} package},
subtitle = {Concrete based OpenType Math font},
author = {Daniel Flipo},
- date = {2022-11-04},
- version = {0.24},
+ date = {2023-01-30},
+ version = {0.25},
license = {ofl,lppl1.3},
mirror = {https://mirror.ctan.org/fonts/concmath-otf},
url = {https://ctan.org/pkg/concmath-otf},
@@ -19962,8 +19962,8 @@
title = {The \texttt{dvisvgm} package},
subtitle = {Convert DVI, EPS, and PDF files to Scalable Vector Graphics format (SVG)},
author = {Martin Gieseking},
- date = {2023-01-11},
- version = {3.0.1},
+ date = {2023-01-30},
+ version = {3.0.2},
license = {gpl3+},
mirror = {https://mirror.ctan.org/dviware/dvisvgm},
url = {https://ctan.org/pkg/dvisvgm},
@@ -21861,8 +21861,8 @@
title = {The \texttt{eolang} package},
subtitle = {Formulas and graphs for the EO programming language},
author = {Yegor Bugayenko},
- date = {2023-01-22},
- version = {0.10.0},
+ date = {2023-01-30},
+ version = {0.11.0},
license = {mit},
mirror = {https://mirror.ctan.org/macros/latex/contrib/eolang},
url = {https://ctan.org/pkg/eolang},
@@ -22457,8 +22457,8 @@
title = {The \texttt{erewhon-math} package},
subtitle = {Utopia based OpenType Math font},
author = {Daniel Flipo},
- date = {2022-11-04},
- version = {0.55},
+ date = {2023-01-30},
+ version = {0.56},
license = {ofl,lppl1.3},
mirror = {https://mirror.ctan.org/fonts/erewhon-math},
url = {https://ctan.org/pkg/erewhon-math},
@@ -22984,8 +22984,8 @@
title = {The \texttt{euler-math} package},
subtitle = {OpenType version of Hermann Zapf’s Euler maths font},
author = {Daniel Flipo},
- date = {2022-11-16},
- version = {0.30},
+ date = {2023-01-30},
+ version = {0.31},
license = {ofl,lppl1.3},
mirror = {https://mirror.ctan.org/fonts/euler-math},
url = {https://ctan.org/pkg/euler-math},
@@ -39745,6 +39745,17 @@
information-free) warning messages.},
}
+@manual{ctan-lparse,
+ title = {The \texttt{lparse} package},
+ subtitle = {A Lua module for parsing key-value options},
+ author = {Josef Friedrich},
+ date = {2023-01-30},
+ version = {0.1.0},
+ license = {lppl1.3c},
+ mirror = {https://mirror.ctan.org/macros/luatex/generic/lparse},
+ url = {https://ctan.org/pkg/lparse},
+}
+
@manual{ctan-lpform,
title = {The \texttt{lpform} package},
subtitle = {Typesetting linear programming formulations and sets of equations},
@@ -46718,8 +46729,8 @@
title = {The \texttt{naive-ebnf} package},
subtitle = {EBNF in Plain Text},
author = {Yegor Bugayenko},
- date = {2023-01-29},
- version = {0.0.2},
+ date = {2023-01-30},
+ version = {0.0.3},
license = {mit},
mirror = {https://mirror.ctan.org/macros/latex/contrib/naive-ebnf},
url = {https://ctan.org/pkg/naive-ebnf},
@@ -54350,8 +54361,8 @@
title = {The \texttt{pseudo} package},
subtitle = {Straightforward pseudocode},
author = {Magnus Lie Hetland},
- date = {2022-08-23},
- version = {1.2.1},
+ date = {2023-01-30},
+ version = {1.2.2},
license = {mit},
mirror = {https://mirror.ctan.org/macros/latex/contrib/pseudo},
url = {https://ctan.org/pkg/pseudo},
@@ -65281,8 +65292,8 @@
title = {The \texttt{tagpdf} package},
subtitle = {Tools for experimenting with tagging using pdf\LaTeX{} and LuaLaTeX},
author = {Ulrike Fischer},
- date = {2023-01-25},
- version = {0.98b},
+ date = {2023-01-30},
+ version = {0.98c},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/tagpdf},
url = {https://ctan.org/pkg/tagpdf},
@@ -69041,6 +69052,17 @@
to SVG files.},
}
+@manual{ctan-tikzviolinplots,
+ title = {The \texttt{tikzviolinplots} package},
+ subtitle = {Draws violin plots from data},
+ author = {Pedro Callil-Soares},
+ date = {2023-01-30},
+ version = {0.7.1},
+ license = {lppl1.3},
+ mirror = {https://mirror.ctan.org/graphics/pgf/contrib/tikzviolinplots},
+ url = {https://ctan.org/pkg/tikzviolinplots},
+}
+
@manual{ctan-tile-graphic,
title = {The \texttt{tile-graphic} package},
subtitle = {Create tiles of a graphical file},
@@ -70221,8 +70243,8 @@
subtitle = {A package for creating tramlines (lines above and below a title used
by lawyers in the UK)},
author = {Elijah Z Granet},
- date = {2023-01-27},
- version = {1.0.0},
+ date = {2023-01-30},
+ version = {1.1.0},
license = {lppl1.3c,cc-by-sa-3},
mirror = {https://mirror.ctan.org/macros/latex/contrib/tramlines},
url = {https://ctan.org/pkg/tramlines},
@@ -72599,7 +72621,7 @@
title = {The \texttt{uol-physics-report} package},
subtitle = {A \LaTeX{} document class for writing lab reports},
author = {Jan Eike Suchard},
- date = {2023-01-28},
+ date = {2023-01-30},
version = {1.0},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/macros/latex/contrib/uol-physics-report},
@@ -72826,8 +72848,8 @@
title = {The \texttt{urlbst} package},
subtitle = {Web support for BibTeX},
author = {Norman Gray},
- date = {2022-12-04},
- version = {0.9},
+ date = {2023-01-30},
+ version = {0.9.1},
license = {gpl2,lppl},
mirror = {https://mirror.ctan.org/biblio/bibtex/contrib/urlbst},
url = {https://ctan.org/pkg/urlbst},
@@ -75323,8 +75345,8 @@
title = {The \texttt{xcharter-math} package},
subtitle = {XCharter-based OpenType Math font for LuaTeX and XeTeX},
author = {Daniel Flipo},
- date = {2022-11-04},
- version = {0.35},
+ date = {2023-01-30},
+ version = {0.36},
license = {ofl,lppl1.3},
mirror = {https://mirror.ctan.org/fonts/xcharter-math},
url = {https://ctan.org/pkg/xcharter-math},
diff --git a/biblio/ctan-bibdata/ctan.pdf b/biblio/ctan-bibdata/ctan.pdf
index d66bb2cd1e..e5df087fa7 100644
--- a/biblio/ctan-bibdata/ctan.pdf
+++ b/biblio/ctan-bibdata/ctan.pdf
Binary files differ
diff --git a/dviware/dvisvgm/Makefile.in b/dviware/dvisvgm/Makefile.in
index db990b1fd5..ac9b736303 100644
--- a/dviware/dvisvgm/Makefile.in
+++ b/dviware/dvisvgm/Makefile.in
@@ -15,7 +15,7 @@
@SET_MAKE@
# aminclude_static.am generated automatically by Autoconf
-# from AX_AM_MACROS_STATIC on Tue Jan 10 14:41:23 CET 2023
+# from AX_AM_MACROS_STATIC on Mon Jan 30 08:25:52 CET 2023
VPATH = @srcdir@
am__is_gnu_make = { \
if test -z '$(MAKELEVEL)'; then \
diff --git a/dviware/dvisvgm/NEWS b/dviware/dvisvgm/NEWS
index d1f6981d0b..73e94d8cac 100644
--- a/dviware/dvisvgm/NEWS
+++ b/dviware/dvisvgm/NEWS
@@ -1,3 +1,9 @@
+dvisvgm-3.0.2 (2023-01-30)
+- fixed computation of font sizes in new PDF handler (GH issue #220)
+- fixed viewBox coordinates determined by new PDF handler (GH issue #223)
+- improved detection of font names used in PDF files (GH issue #224)
+- minor code improvements
+
dvisvgm-3.0.1 (2023-01-10)
- added support for the 64-bit GS library in TeX Live
(patch sent by Akira Kakuto)
diff --git a/dviware/dvisvgm/aminclude_static.am b/dviware/dvisvgm/aminclude_static.am
index da2bc19bda..fa78c284ab 100644
--- a/dviware/dvisvgm/aminclude_static.am
+++ b/dviware/dvisvgm/aminclude_static.am
@@ -1,6 +1,6 @@
# aminclude_static.am generated automatically by Autoconf
-# from AX_AM_MACROS_STATIC on Tue Jan 10 14:41:23 CET 2023
+# from AX_AM_MACROS_STATIC on Mon Jan 30 08:25:52 CET 2023
# Code coverage
diff --git a/dviware/dvisvgm/configure b/dviware/dvisvgm/configure
index 3bd0835d9b..fe4f59ca6b 100755
--- a/dviware/dvisvgm/configure
+++ b/dviware/dvisvgm/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for dvisvgm 3.0.1.
+# Generated by GNU Autoconf 2.71 for dvisvgm 3.0.2.
#
# Report bugs to <martin.gieseking@uos.de>.
#
@@ -621,8 +621,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='dvisvgm'
PACKAGE_TARNAME='dvisvgm'
-PACKAGE_VERSION='3.0.1'
-PACKAGE_STRING='dvisvgm 3.0.1'
+PACKAGE_VERSION='3.0.2'
+PACKAGE_STRING='dvisvgm 3.0.2'
PACKAGE_BUGREPORT='martin.gieseking@uos.de'
PACKAGE_URL=''
@@ -1441,7 +1441,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures dvisvgm 3.0.1 to adapt to many kinds of systems.
+\`configure' configures dvisvgm 3.0.2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1512,7 +1512,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of dvisvgm 3.0.1:";;
+ short | recursive ) echo "Configuration of dvisvgm 3.0.2:";;
esac
cat <<\_ACEOF
@@ -1661,7 +1661,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-dvisvgm configure 3.0.1
+dvisvgm configure 3.0.2
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2141,7 +2141,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by dvisvgm $as_me 3.0.1, which was
+It was created by dvisvgm $as_me 3.0.2, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@@ -3712,7 +3712,7 @@ fi
# Define the identity of the package.
PACKAGE='dvisvgm'
- VERSION='3.0.1'
+ VERSION='3.0.2'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -21365,7 +21365,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by dvisvgm $as_me 3.0.1, which was
+This file was extended by dvisvgm $as_me 3.0.2, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -21433,7 +21433,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-dvisvgm config.status 3.0.1
+dvisvgm config.status 3.0.2
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
diff --git a/dviware/dvisvgm/configure.ac b/dviware/dvisvgm/configure.ac
index 7fa9e9b18f..27e1e2ec39 100644
--- a/dviware/dvisvgm/configure.ac
+++ b/dviware/dvisvgm/configure.ac
@@ -4,7 +4,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.69])
-AC_INIT([dvisvgm],[3.0.1],[martin.gieseking@uos.de])
+AC_INIT([dvisvgm],[3.0.2],[martin.gieseking@uos.de])
DATE="January 2023"
AC_CONFIG_SRCDIR(src)
AC_CONFIG_HEADERS([config.h])
diff --git a/dviware/dvisvgm/doc/dvisvgm.1 b/dviware/dvisvgm/doc/dvisvgm.1
index 06705cef77..dc17575416 100644
--- a/dviware/dvisvgm/doc/dvisvgm.1
+++ b/dviware/dvisvgm/doc/dvisvgm.1
@@ -4,10 +4,10 @@
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 2022-10-14
.\" Manual: dvisvgm Manual
-.\" Source: dvisvgm 3.0.1
+.\" Source: dvisvgm 3.0.2
.\" Language: English
.\"
-.TH "DVISVGM" "1" "2022\-10\-14" "dvisvgm 3\&.0\&.1" "dvisvgm Manual"
+.TH "DVISVGM" "1" "2022\-10\-14" "dvisvgm 3\&.0\&.2" "dvisvgm Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/dviware/dvisvgm/src/Bezier.hpp b/dviware/dvisvgm/src/Bezier.hpp
index 9036bfcd55..f79180ccb1 100644
--- a/dviware/dvisvgm/src/Bezier.hpp
+++ b/dviware/dvisvgm/src/Bezier.hpp
@@ -32,7 +32,7 @@ class QuadBezier {
QuadBezier ();
QuadBezier (const DPair &p0, const DPair &p1, const DPair &p2);
void setPoints (const DPair &p0, const DPair &p1, const DPair &p2);
- constexpr const DPair& point (int i) const {return _points[i];}
+ const DPair& point (int i) const {return _points[i];}
DPair valueAt (double t) const;
DPair derivativeAt (double t) const;
double arclen (double t=1.0) const;
@@ -57,7 +57,7 @@ class CubicBezier {
void subdivide (double t, CubicBezier *bezier1, CubicBezier *bezier2) const;
CubicBezier& transform (const Matrix &matrix);
int approximate (double delta, std::vector<DPair> &p, std::vector<double> *t=nullptr) const;
- constexpr const DPair& point (int i) const {return _points[i];}
+ const DPair& point (int i) const {return _points[i];}
int reduceDegree (double delta, std::vector<DPair> &p) const;
std::vector<QuadBezier> toQuadBeziers (double delta, std::vector<double> *startParams=nullptr) const;
BoundingBox getBBox () const;
diff --git a/dviware/dvisvgm/src/FontManager.cpp b/dviware/dvisvgm/src/FontManager.cpp
index 7eeaadeb9d..bc6f88d322 100644
--- a/dviware/dvisvgm/src/FontManager.cpp
+++ b/dviware/dvisvgm/src/FontManager.cpp
@@ -325,18 +325,18 @@ int FontManager::registerFont (uint32_t fontnum, const string &filename, int fon
/** Registers a native font that is referenced by its name instead of a DVI font number.
* @param[in] fname filename/path of the font file
+ * @param[in] fontname font name used if the font file doesn't provide one
* @param[in] ptsize font size in PS points
* return global ID assigned to the font */
-int FontManager::registerFont (const std::string &fname, double ptsize) {
+int FontManager::registerFont (const string &fname, string fontname, double ptsize) {
if (fname.empty())
return -1;
- string fontname;
if (fname.size() > 6 && fname.substr(0,6) == "sys://") {
fontname = fname.substr(6);
if (!find_base14_font(fontname))
return -1;
}
- else if (!FileSystem::exists(fname) || (fontname = FontEngine::instance().getPSName(fname)).empty())
+ else if (!FileSystem::exists(fname) || (fontname.empty() && (fontname = FontEngine::instance().getPSName(fname)).empty()))
return -1;
int id = fontID(fontname, ptsize);
if (id >= 0)
@@ -345,7 +345,7 @@ int FontManager::registerFont (const std::string &fname, double ptsize) {
id = fontID(fontname);
if (id < 0) {
nativeFont = util::make_unique<NativeFontImpl>(fname, fontname, ptsize);
- _name2id.emplace(std::move(fontname), _fonts.size());
+ _name2id.emplace(std::move(fontname), int(_fonts.size()));
}
else {
auto *nf = font_cast<NativeFont*>(getFontById(id));
diff --git a/dviware/dvisvgm/src/FontManager.hpp b/dviware/dvisvgm/src/FontManager.hpp
index eeaa1949de..503813a86d 100644
--- a/dviware/dvisvgm/src/FontManager.hpp
+++ b/dviware/dvisvgm/src/FontManager.hpp
@@ -57,8 +57,7 @@ class FontManager {
int registerFont (uint32_t fontnum, const std::string &fontname, uint32_t checksum, double dsize, double scale);
int registerFont (uint32_t fontnum, const std::string &fname, double ptsize, const FontStyle &style, Color color);
int registerFont (uint32_t fontnum, const std::string &fname, int fontIndex, double ptsize, const FontStyle &style, Color color);
-// int registerFont (const std::string &fname, int fontIndex, double ptsize, const FontStyle &style, Color color);
- int registerFont (const std::string &fname, double ptsize);
+ int registerFont (const std::string &fname, std::string fontname, double ptsize);
Font* getFont (int n) const;
Font* getFont (const std::string &name) const;
Font* getFont (const std::string &name, double ptsize);
diff --git a/dviware/dvisvgm/src/PDFHandler.cpp b/dviware/dvisvgm/src/PDFHandler.cpp
index 9703124e2c..ba88e69852 100644
--- a/dviware/dvisvgm/src/PDFHandler.cpp
+++ b/dviware/dvisvgm/src/PDFHandler.cpp
@@ -139,19 +139,6 @@ string PDFHandler::mutoolVersion () {
}
-/** Returns the bounding box of a selected PDF page. */
-BoundingBox PDFHandler::bbox (string &fname, int pageno) {
- BoundingBox bbox;
- string arraystr = mtShow(fname, "pages/" + to_string(pageno) + "/MediaBox");
- if (arraystr.substr(0, 4) == "null")
- arraystr = mtShow(fname, "pages/" + to_string(pageno) + "/Parent/MediaBox");
- auto vec = parse_pdf_array<double>(arraystr);
- if (vec.size() == 4)
- bbox = BoundingBox(vec[0], vec[1], vec[2], vec[3]);
- return bbox;
-}
-
-
/** Converts a single page of a PDF file to SVG. If no context element is given,
* the SVG page contents are added to a page group element of the SVG tree.
* Otherwise, they are added to the context element which is not inserted into
@@ -220,15 +207,12 @@ void PDFHandler::finishFile () {
void PDFHandler::initPage (int pageno, unique_ptr<SVGElement> context) {
_pageno = pageno;
- _bbox = bbox(_fname, pageno);
- if (context) {
+ if (!context)
+ _svg->newPage(_pageno);
+ else {
_context = context.get();
_svg->pushPageContext(std::move(context));
}
- else {
- _svg->newPage(_pageno);
- _svg->setBBox(_bbox);
- }
// collect sequence of images referenced on current page
collectObjects();
_imgSeq.clear();
@@ -287,7 +271,8 @@ void PDFHandler::elementClosed (XMLElement *trcElement) {
struct Handler {
const char *name;
void (PDFHandler::*func)(XMLElement*);
- } handlers[9] = {
+ } handlers[10] = {
+ {"page", &PDFHandler::doPage},
{"stroke_path", &PDFHandler::doStrokePath},
{"fill_path", &PDFHandler::doFillPath},
{"fill_image", &PDFHandler::doFillImage},
@@ -309,6 +294,13 @@ void PDFHandler::elementClosed (XMLElement *trcElement) {
}
+void PDFHandler::doPage (XMLElement *trcPageElement) {
+ auto vec = parse_attr_value<vector<double>>(trcPageElement, "mediabox");
+ if (vec.size() == 4)
+ _bbox = BoundingBox(vec[0], vec[1], vec[2], vec[3]);
+}
+
+
/** Returns a color object from color data given in the trace XML.
* @param[in] colorspace currently supported: DeviceGray, DeviceRGB, DeviceCMYK
* @param[in] value color components depending on color space */
@@ -645,8 +637,9 @@ void PDFHandler::doFillText (XMLElement *trcFillTextElement) {
filename = it->second.fname;
if (filename.empty())
filename = "sys://"+fontname;
- double ptsize = abs(trm[0]);
- int fontID = FontManager::instance().registerFont(filename, ptsize);
+ double ptsize = matrix_extent({trm[0], trm[1], 0, trm[2], trm[3]});
+ ptsize = round(10*ptsize)/10;
+ int fontID = FontManager::instance().registerFont(filename, fontname, ptsize);
if (fontID >= 0) {
auto font = font_cast<NativeFont*>(FontManager::instance().getFontById(fontID));
if (font != _currentFont) {
@@ -789,7 +782,6 @@ void PDFHandler::collectObjects () {
_objDict = parse_pdf_dict<ObjID>(mtShow("pages/" + to_string(_pageno) + "/Resources/XObject"));
// replace referenced font IDs by actual IDs used for extracted fonts
for (auto &entry : _objDict) {
- string objtype = mtShow(to_string(entry.second.num)+"/Type", SearchPattern(R"(/(\w+))", "$1"));
// store filenames of non-font object in object map
auto fnameIt = _extractedFiles.find(entry.second.num);
entry.second.fname = fnameIt != _extractedFiles.end() ? tmpdir+fnameIt->second : "";
@@ -798,6 +790,10 @@ void PDFHandler::collectObjects () {
if (entry.second.substr(0, 5) == "font-") {
string filepath = tmpdir+entry.second; // path to font file
string fontname = strip_subset_prefix(FontEngine::instance().getPSName(filepath));
+ // If the extracted font file doesn't contain a font name,
+ // try to get it from the corresponding PDF object.
+ if (fontname.empty())
+ fontname = mtShow(to_string(entry.first)+"/FontName", SearchPattern(R"(/(\w+))", "$1"));
_objDict.emplace(fontname, ObjID(entry.first, 0, filepath));
}
}
diff --git a/dviware/dvisvgm/src/PDFHandler.hpp b/dviware/dvisvgm/src/PDFHandler.hpp
index fd34ce0568..3400a1d69d 100644
--- a/dviware/dvisvgm/src/PDFHandler.hpp
+++ b/dviware/dvisvgm/src/PDFHandler.hpp
@@ -57,7 +57,6 @@ class PDFHandler {
const BoundingBox& bbox () const {return _bbox;}
std::unique_ptr<SVGElement> convert (const std::string &fname, int pageno, std::unique_ptr<SVGElement> context=nullptr);
static std::string mutoolVersion ();
- static BoundingBox bbox (std::string &fname, int pageno);
static bool available () {return !mutoolVersion().empty();}
protected:
@@ -77,6 +76,7 @@ class PDFHandler {
void collectObjects ();
void elementOpened (XMLElement *trcElement);
void elementClosed (XMLElement *trcElement);
+ void doPage (XMLElement *trcPageElement);
void doClipPath (XMLElement *trcClipPathElement);
void doClipStrokePath (XMLElement *trcClipStrokePathElement);
void doClipText (XMLElement *trcClipTextElement);
diff --git a/dviware/dvisvgm/src/RangeMap.cpp b/dviware/dvisvgm/src/RangeMap.cpp
index bac95b3093..11489113f3 100644
--- a/dviware/dvisvgm/src/RangeMap.cpp
+++ b/dviware/dvisvgm/src/RangeMap.cpp
@@ -179,7 +179,7 @@ uint32_t RangeMap::valueAt (uint32_t c) const {
/** Returns the number of values mapped. */
size_t RangeMap::numValues () const {
- return std::accumulate(_ranges.begin(), _ranges.end(), 0, [](size_t sum, const Range &range) {
+ return std::accumulate(_ranges.begin(), _ranges.end(), size_t(0), [](size_t sum, const Range &range) {
return sum+range.max()-range.min()+1;
});
}
diff --git a/dviware/dvisvgm/src/fonts/Base14Fonts.cpp b/dviware/dvisvgm/src/fonts/Base14Fonts.cpp
index 07f4850bc1..6f316ffca9 100644
--- a/dviware/dvisvgm/src/fonts/Base14Fonts.cpp
+++ b/dviware/dvisvgm/src/fonts/Base14Fonts.cpp
@@ -2,7 +2,7 @@
** Base14Fonts.cpp **
** **
** This file is part of dvisvgm -- a fast DVI to SVG converter **
-** Copyright (C) 2005-2022 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2023 Martin Gieseking <martin.gieseking@uos.de> **
** **
** This program is free software; you can redistribute it and/or **
** modify it under the terms of the GNU General Public License as **
@@ -38,6 +38,9 @@ extern const MemoryFontData NimbusSans_Italic_cff;
extern const MemoryFontData NimbusSans_Regular_cff;
extern const MemoryFontData StandardSymbolsPS_cff;
+/** Returns the CFF font data for a given name of a Base 14 font.
+ * If 'fontname' doesn't specify one of the 14 PDF base fonts,
+ * the function returns nullptr. */
const MemoryFontData* find_base14_font (const string &fontname) {
struct FontData {
const char *name;
diff --git a/dviware/dvisvgm/src/fonts/Base14Fonts.hpp b/dviware/dvisvgm/src/fonts/Base14Fonts.hpp
index 4e410fdc61..8746f593d6 100644
--- a/dviware/dvisvgm/src/fonts/Base14Fonts.hpp
+++ b/dviware/dvisvgm/src/fonts/Base14Fonts.hpp
@@ -2,7 +2,7 @@
** Base14Fonts.hpp **
** **
** This file is part of dvisvgm -- a fast DVI to SVG converter **
-** Copyright (C) 2005-2022 Martin Gieseking <martin.gieseking@uos.de> **
+** Copyright (C) 2005-2023 Martin Gieseking <martin.gieseking@uos.de> **
** **
** This program is free software; you can redistribute it and/or **
** modify it under the terms of the GNU General Public License as **
diff --git a/fonts/concmath-otf/Concrete-Math.otf b/fonts/concmath-otf/Concrete-Math.otf
index f55332590c..9f22af9fbb 100644
--- a/fonts/concmath-otf/Concrete-Math.otf
+++ b/fonts/concmath-otf/Concrete-Math.otf
Binary files differ
diff --git a/fonts/concmath-otf/README.md b/fonts/concmath-otf/README.md
index 58c6ffacc8..f277c18f24 100644
--- a/fonts/concmath-otf/README.md
+++ b/fonts/concmath-otf/README.md
@@ -64,7 +64,11 @@ Either version 1.3 or, at your option, any later version.
- Fixed \wideoverbar (U+0305) which failed with XeTeX.
- Corrected negative right bearings of some display integrals.
- Added extensible integral for U+222B (usable with luametatex).
+* v. 0.25
+ - Package now compatible with mathtools’ extensible arrows.
+ - Corrected some glyphs’ inconsistencies (maths axis, etc.).
+ - \diagup and \diagdown moved from private area to U+27CB, U+27CD.
---
-Copyright 2022- Daniel Flipo
+Copyright 2022-2023 Daniel Flipo
E-mail: daniel (dot) flipo (at) free (dot) fr
diff --git a/fonts/concmath-otf/concmath-otf.ltx b/fonts/concmath-otf/concmath-otf.ltx
index 50679c6d72..b70a710c1e 100644
--- a/fonts/concmath-otf/concmath-otf.ltx
+++ b/fonts/concmath-otf/concmath-otf.ltx
@@ -28,7 +28,7 @@
\title{Concrete Math font, OTF version}
\author{Daniel Flipo \\ \texttt{daniel.flipo@free.fr}}
-\newcommand*{\version}{0.24}
+\newcommand*{\version}{0.25}
\begin{document}
\maketitle
diff --git a/fonts/concmath-otf/concmath-otf.pdf b/fonts/concmath-otf/concmath-otf.pdf
index e242bbc1ea..6235d29907 100644
--- a/fonts/concmath-otf/concmath-otf.pdf
+++ b/fonts/concmath-otf/concmath-otf.pdf
Binary files differ
diff --git a/fonts/concmath-otf/concmath-otf.sty b/fonts/concmath-otf/concmath-otf.sty
index 67ffec682a..f75b380a22 100644
--- a/fonts/concmath-otf/concmath-otf.sty
+++ b/fonts/concmath-otf/concmath-otf.sty
@@ -1,6 +1,6 @@
\NeedsTeXFormat{LaTeX2e}[2018/01/01]
-\def\fileversion{0.24}
-\def\filedate{2022-11-04}
+\def\fileversion{0.25}
+\def\filedate{2023-01-30}
\ProvidesPackage{concmath-otf}[\filedate\space\fileversion]
% Ensure luatex or xetex engine
@@ -70,6 +70,9 @@
\Umathchardef\mbfdotlessi = 0 0 "E046 \relax
\Umathchardef\mbfdotlessj = 0 0 "E047 \relax
\Umathchardef\mithbar = 0 0 "E078 \relax
+ \Umathchardef\mapstochar = 3 0 "E08D \relax
+ \Umathchardef\lhook = 3 0 "E08E \relax
+ \Umathchardef\rhook = 3 0 "E08F \relax
\Umathchardef\lesseqslantgtr = 3 0 "E094 \relax
\Umathchardef\gtreqslantless = 3 0 "E095 \relax
\Umathchardef\lesseqqslantgtr = 3 0 "E096 \relax
@@ -91,8 +94,8 @@
% <math type> : \mathord=0 \mathrel=3 ; <family>=0
\Umathchardef\circledR = 0 0 "24C7 \relax
\Umathchardef\circledS = 0 0 "24C8 \relax
- \Umathchardef\diagup = 0 0 "E0A0 \relax
- \Umathchardef\diagdown = 0 0 "E0A1 \relax
+ \Umathchardef\diagup = 0 0 "27CB \relax
+ \Umathchardef\diagdown = 0 0 "27CD \relax
\Umathchardef\shortmid = 3 0 "E0A2 \relax
\Umathchardef\shortparallel = 3 0 "E0A3 \relax
\Umathchardef\nshortmid = 3 0 "E0A4 \relax
diff --git a/fonts/concmath-otf/unimath-concrete.pdf b/fonts/concmath-otf/unimath-concrete.pdf
index 6fdebc672f..00d2d3ad38 100644
--- a/fonts/concmath-otf/unimath-concrete.pdf
+++ b/fonts/concmath-otf/unimath-concrete.pdf
Binary files differ
diff --git a/fonts/erewhon-math/Erewhon-Math-Bold.otf b/fonts/erewhon-math/Erewhon-Math-Bold.otf
index 0ef05a5095..2fc842134c 100644
--- a/fonts/erewhon-math/Erewhon-Math-Bold.otf
+++ b/fonts/erewhon-math/Erewhon-Math-Bold.otf
Binary files differ
diff --git a/fonts/erewhon-math/Erewhon-Math.ltx b/fonts/erewhon-math/Erewhon-Math.ltx
index 51e7d451b8..3e0b800dcd 100644
--- a/fonts/erewhon-math/Erewhon-Math.ltx
+++ b/fonts/erewhon-math/Erewhon-Math.ltx
@@ -34,7 +34,7 @@
\title{\decofourleft\,\FOTF\,\decofourright}
\author{Daniel Flipo \\ \texttt{daniel.flipo@free.fr}}
-\newcommand*{\version}{0.55}
+\newcommand*{\version}{0.56}
\begin{document}
\maketitle
@@ -121,6 +121,12 @@ be used to load the \FOTF{} font together with roman text fonts other than
Erewhon, while keeping the advantages 1. to 5. pointed in the preceding list,
f.i.\quad \verb+\usepackage[no-text,Scale=0.98]{fourier-otf}+
+Please note that the fonts loaded by \pkg{fourier-otf.sty} are about 2\%
+larger than those loaded by \pkg{fourier.sty}: the Erewhon text fonts are
+based on Utopia reduced à 94\%, while the fourier fonts are based on
+Utopia reduced à 92\%. Option \verb+Scale=0.98+ can be used to mimic the
+output produced by the \pkg{fourier.sty} package.
+
Option \opt{no-text} can also be useful if Erewhon is to be loaded with
specific options, f.i. \\
\verb+\usepackage[no-text]{fourier-otf}+\\
@@ -435,9 +441,11 @@ $0123456789, \symbf{0123456789}$
When switching from Type\,1 to OpenType, Adobe has significantly increased%
\footnote{Actually +21\% both in height and thickness!}
the sizes of Utopia’s delimiters `()’, `[]’ and `\{\}’. Erewhon-Math has been
-built from Fourier (Utopia’s Type\,1 type faces), while the Erewhon text fonts
-have been built from the OpenType version; the difference was visible on
-examples like \verb|($P(n)$)| which has been typeset as%
+built from Fourier (Utopia’s Type\,1 type faces%
+\footnote{Scaled at 94\% instead of 92\% to match Erewhon text fonts.}),
+while the Erewhon text fonts have been built from the OpenType version;
+the difference was visible on examples like \verb|($P(n)$)| which has been
+typeset as%
\setmathfont{Erewhon-Math.otf}[Style=smalldelim] ($P(n)$)
by versions up to~0.53.%
\setmathfont{Erewhon-Math.otf}
diff --git a/fonts/erewhon-math/Erewhon-Math.otf b/fonts/erewhon-math/Erewhon-Math.otf
index c244fe5ecb..e943b7b08e 100644
--- a/fonts/erewhon-math/Erewhon-Math.otf
+++ b/fonts/erewhon-math/Erewhon-Math.otf
Binary files differ
diff --git a/fonts/erewhon-math/Erewhon-Math.pdf b/fonts/erewhon-math/Erewhon-Math.pdf
index b3adc7208a..be9d157d55 100644
--- a/fonts/erewhon-math/Erewhon-Math.pdf
+++ b/fonts/erewhon-math/Erewhon-Math.pdf
Binary files differ
diff --git a/fonts/erewhon-math/README.md b/fonts/erewhon-math/README.md
index 6eed00e0f5..c3008a9111 100644
--- a/fonts/erewhon-math/README.md
+++ b/fonts/erewhon-math/README.md
@@ -135,10 +135,13 @@ Either version 1.3 or, at your option, any later version.
- Glyph Bbbsum.v1 (displaystyle) added.
- Metrics of some italic capitals (H,M,N,U) corrected.
* v0.55
- - Fixed bug introduced in v0.54 (vertical variants of \Vert and \Vvert).
- - Added extensible integral for U+222B.
-
+ - Fixed vertical variants of \Vert and \Vvert.
+ - Added extensible integral for U+222B (usable with luametatex).
+* v0.56
+ - Package now compatible with mathtools’ extensible arrows.
+ - \diagup and \diagdown moved from private area to U+27CB, U+27CD.
+
---
-Copyright 2019-2022 Michel Bovani, Daniel Flipo
+Copyright 2019-2023 Michel Bovani, Daniel Flipo
E-mail: michel (dot) bovani (at) icloud (dot) com
daniel (dot) flipo (at) free (dot) fr
diff --git a/fonts/erewhon-math/fourier-otf.sty b/fonts/erewhon-math/fourier-otf.sty
index ceab673ddd..d2dc966069 100644
--- a/fonts/erewhon-math/fourier-otf.sty
+++ b/fonts/erewhon-math/fourier-otf.sty
@@ -1,6 +1,6 @@
\NeedsTeXFormat{LaTeX2e}[2018/01/01]
-\def\fileversion{0.55}
-\def\filedate{2022-11-04}
+\def\fileversion{0.56}
+\def\filedate{2023-01-30}
\ProvidesPackage{fourier-otf}[\filedate\space\fileversion]
% Ensure luatex or xetex engine
@@ -109,6 +109,9 @@
\Umathchardef\mitvarvarrho = 0 0 "E071 \relax
\Umathchardef\mitvarvarpi = 0 0 "E072 \relax
\Umathchardef\mithbar = 0 0 "E078 \relax
+ \Umathchardef\mapstochar = 3 0 "E08D \relax
+ \Umathchardef\lhook = 3 0 "E08E \relax
+ \Umathchardef\rhook = 3 0 "E08F \relax
\Umathchardef\parallelslant = 3 0 "E090 \relax
\Umathchardef\nparallelslant = 3 0 "E091 \relax
\Umathchardef\shortparallelslant = 3 0 "E092 \relax
@@ -147,8 +150,8 @@
% <math type> : \mathord=0 \mathrel=3 ; <family>=0
\Umathchardef\circledR = 0 0 "24C7 \relax
\Umathchardef\circledS = 0 0 "24C8 \relax
- \Umathchardef\diagup = 0 0 "E0A0 \relax
- \Umathchardef\diagdown = 0 0 "E0A1 \relax
+ \Umathchardef\diagup = 0 0 "27CB \relax
+ \Umathchardef\diagdown = 0 0 "27CD \relax
\Umathchardef\shortmid = 3 0 "E0A2 \relax
\Umathchardef\shortparallel = 3 0 "E0A3 \relax
\Umathchardef\nshortmid = 3 0 "E0A4 \relax
diff --git a/fonts/erewhon-math/unimath-erewhon.pdf b/fonts/erewhon-math/unimath-erewhon.pdf
index 743d6192e3..4d390a73e5 100644
--- a/fonts/erewhon-math/unimath-erewhon.pdf
+++ b/fonts/erewhon-math/unimath-erewhon.pdf
Binary files differ
diff --git a/fonts/euler-math/Euler-Math.ltx b/fonts/euler-math/Euler-Math.ltx
index b187c48869..ff98ffbd81 100644
--- a/fonts/euler-math/Euler-Math.ltx
+++ b/fonts/euler-math/Euler-Math.ltx
@@ -38,7 +38,7 @@
\title{Euler Math font, OTF version}
\author{Daniel Flipo \\ \texttt{daniel.flipo@free.fr}}
-\newcommand*{\version}{0.30}
+\newcommand*{\version}{0.31}
\begin{document}
\maketitle
diff --git a/fonts/euler-math/Euler-Math.otf b/fonts/euler-math/Euler-Math.otf
index b540610805..d6e74e136c 100644
--- a/fonts/euler-math/Euler-Math.otf
+++ b/fonts/euler-math/Euler-Math.otf
Binary files differ
diff --git a/fonts/euler-math/Euler-Math.pdf b/fonts/euler-math/Euler-Math.pdf
index 781776e0fa..286280cbf5 100644
--- a/fonts/euler-math/Euler-Math.pdf
+++ b/fonts/euler-math/Euler-Math.pdf
Binary files differ
diff --git a/fonts/euler-math/README.md b/fonts/euler-math/README.md
index 5194e1bf6e..271d7a175c 100644
--- a/fonts/euler-math/README.md
+++ b/fonts/euler-math/README.md
@@ -61,8 +61,11 @@ Either version 1.3 or, at your option, any later version.
- *Name of the package changed from Neo-Euler to Euler-Math*;
the former 'neo-euler.sty' style file has been kept for compatibility,
it now loads 'euler-math.sty' and warns about the change.
+* v0.31:
+ - Package now compatible with mathtools’ extensible arrows.
+ - \diagup and \diagdown moved from private area to U+27CB, U+27CD.
---
Copyright 2009-2016 Khaled Hosny
-Copyright 2022- Daniel Flipo
+Copyright 2022-2023 Daniel Flipo
E-mail: daniel (dot) flipo (at) free (dot) fr
diff --git a/fonts/euler-math/euler-math.sty b/fonts/euler-math/euler-math.sty
index cf678d50c0..393a691af8 100644
--- a/fonts/euler-math/euler-math.sty
+++ b/fonts/euler-math/euler-math.sty
@@ -1,6 +1,6 @@
\NeedsTeXFormat{LaTeX2e}[2018/01/01]
-\def\fileversion{0.30}
-\def\filedate{2022-11-06}
+\def\fileversion{0.31}
+\def\filedate{2023-01-30}
\ProvidesPackage{euler-math}[\filedate\space\fileversion]
% Ensure luatex or xetex engine
@@ -43,6 +43,9 @@
\Umathchardef\mbfdotlessi = 0 0 "E046 \relax
\Umathchardef\mbfdotlessj = 0 0 "E047 \relax
\Umathchardef\mbfhbar = 0 0 "E048 \relax
+ \Umathchardef\mapstochar = 3 0 "E08D \relax
+ \Umathchardef\lhook = 3 0 "E08E \relax
+ \Umathchardef\rhook = 3 0 "E08F \relax
\let\lesseqslantgtr\lesseqgtr
\let\gtreqslantless\gtreqless
\let\lesseqqslantgtr\lesseqqgtr
@@ -64,8 +67,8 @@
% <math type> : \mathord=0 \mathrel=3 ; <family>=0
\Umathchardef\circledR = 0 0 "24C7 \relax
\Umathchardef\circledS = 0 0 "24C8 \relax
- \Umathchardef\diagup = 0 0 "E0A0 \relax
- \Umathchardef\diagdown = 0 0 "E0A1 \relax
+ \Umathchardef\diagup = 0 0 "27CB \relax
+ \Umathchardef\diagdown = 0 0 "27CD \relax
\Umathchardef\shortmid = 3 0 "E0A2 \relax
\Umathchardef\shortparallel = 3 0 "E0A3 \relax
\Umathchardef\nshortmid = 3 0 "E0A4 \relax
diff --git a/fonts/euler-math/unimath-euler.pdf b/fonts/euler-math/unimath-euler.pdf
index 5c9c6f7d81..99af68f201 100644
--- a/fonts/euler-math/unimath-euler.pdf
+++ b/fonts/euler-math/unimath-euler.pdf
Binary files differ
diff --git a/fonts/xcharter-math/README.md b/fonts/xcharter-math/README.md
index f09c124129..1b28c7d69c 100644
--- a/fonts/xcharter-math/README.md
+++ b/fonts/xcharter-math/README.md
@@ -64,7 +64,10 @@ Either version 1.3 or, at your option, any later version.
- Fixed \wideoverbar (U+0305) which failed with XeTeX.
- Corrected negative right bearings of some display integrals.
- Added extensible integral for U+222B (usable with luametatex).
+* v0.36:
+ - package now compatible with mathtools’ extensible arrows.
+ - \diagup and \diagdown moved from private area to U+27CB, U+27CD.
---
-Copyright 2022- Daniel Flipo
+Copyright 2022-2023 Daniel Flipo
E-mail: daniel (dot) flipo (at) free (dot) fr
diff --git a/fonts/xcharter-math/XCharter-Math-Bold.otf b/fonts/xcharter-math/XCharter-Math-Bold.otf
index 4963583b33..3a0ec7208b 100644
--- a/fonts/xcharter-math/XCharter-Math-Bold.otf
+++ b/fonts/xcharter-math/XCharter-Math-Bold.otf
Binary files differ
diff --git a/fonts/xcharter-math/XCharter-Math.ltx b/fonts/xcharter-math/XCharter-Math.ltx
index 2e875fa45e..30b8c2ab40 100644
--- a/fonts/xcharter-math/XCharter-Math.ltx
+++ b/fonts/xcharter-math/XCharter-Math.ltx
@@ -35,7 +35,7 @@
\title{\decofourleft\,\XCotf\,\decofourright}
\author{Daniel Flipo \\ \texttt{daniel.flipo@free.fr}}
-\newcommand*{\version}{0.35}
+\newcommand*{\version}{0.36}
\begin{document}
\maketitle
diff --git a/fonts/xcharter-math/XCharter-Math.otf b/fonts/xcharter-math/XCharter-Math.otf
index 74fe319353..bdad1309d2 100644
--- a/fonts/xcharter-math/XCharter-Math.otf
+++ b/fonts/xcharter-math/XCharter-Math.otf
Binary files differ
diff --git a/fonts/xcharter-math/XCharter-Math.pdf b/fonts/xcharter-math/XCharter-Math.pdf
index 5c1f1ba941..c19fdf1808 100644
--- a/fonts/xcharter-math/XCharter-Math.pdf
+++ b/fonts/xcharter-math/XCharter-Math.pdf
Binary files differ
diff --git a/fonts/xcharter-math/unimath-xcharter.pdf b/fonts/xcharter-math/unimath-xcharter.pdf
index 2dd34b314c..69b3ff54c6 100644
--- a/fonts/xcharter-math/unimath-xcharter.pdf
+++ b/fonts/xcharter-math/unimath-xcharter.pdf
Binary files differ
diff --git a/fonts/xcharter-math/xcharter-otf.sty b/fonts/xcharter-math/xcharter-otf.sty
index 8675904312..5fbd6c228f 100644
--- a/fonts/xcharter-math/xcharter-otf.sty
+++ b/fonts/xcharter-math/xcharter-otf.sty
@@ -1,6 +1,6 @@
\NeedsTeXFormat{LaTeX2e}[2018/01/01]
-\def\fileversion{0.35}
-\def\filedate{2022-11-04}
+\def\fileversion{0.36}
+\def\filedate{2023-01-30}
\ProvidesPackage{xcharter-otf}[\filedate\space\fileversion]
% Ensure luatex or xetex engine
@@ -78,6 +78,9 @@
\Umathchardef\mbfimath = 0 0 "E066 \relax
\Umathchardef\mbfjmath = 0 0 "E067 \relax
\Umathchardef\mithbar = 0 0 "E078 \relax
+ \Umathchardef\mapstochar = 3 0 "E08D \relax
+ \Umathchardef\lhook = 3 0 "E08E \relax
+ \Umathchardef\rhook = 3 0 "E08F \relax
\Umathchardef\parallelslant = 3 0 "E090 \relax
\Umathchardef\nparallelslant = 3 0 "E091 \relax
\Umathchardef\shortparallelslant = 3 0 "E092 \relax
@@ -109,8 +112,8 @@
% <math type> : \mathord=0 \mathrel=3 ; <family>=0
\Umathchardef\circledR = 0 0 "24C7 \relax
\Umathchardef\circledS = 0 0 "24C8 \relax
- \Umathchardef\diagup = 0 0 "E0A0 \relax
- \Umathchardef\diagdown = 0 0 "E0A1 \relax
+ \Umathchardef\diagup = 0 0 "27CB \relax
+ \Umathchardef\diagdown = 0 0 "27CD \relax
\Umathchardef\shortmid = 3 0 "E0A2 \relax
\Umathchardef\shortparallel = 3 0 "E0A3 \relax
\Umathchardef\nshortmid = 3 0 "E0A4 \relax
diff --git a/graphics/pgf/contrib/tikzviolinplots/AFR.csv b/graphics/pgf/contrib/tikzviolinplots/AFR.csv
new file mode 100644
index 0000000000..a8c62270dd
--- /dev/null
+++ b/graphics/pgf/contrib/tikzviolinplots/AFR.csv
@@ -0,0 +1,48 @@
+Country,Year,LifeExpectancyAtBirthMale,LifeExpectancyAtBirthFemale
+Algeria,2019,76.2,78.1
+Angola,2019,60.7,65.5
+Benin,2019,61.2,65.7
+Botswana,2019,58.9,65.5
+Burkina Faso,2019,60.1,65.2
+Burundi,2019,61.5,66.1
+Cabo Verde,2019,69.9,77.9
+Cameroon,2019,60.3,64.5
+Central African Republic,2019,50.2,56.3
+Chad,2019,58,61.3
+Comoros,2019,65.9,68.9
+Congo,2019,63.8,65.6
+Côte d'Ivoire,2019,60.5,65.8
+Democratic Republic of the Congo,2019,60,64.8
+Equatorial Guinea,2019,60.9,63.6
+Eritrea,2019,61.3,67.1
+Eswatini,2019,53.4,63.2
+Ethiopia,2019,66.9,70.5
+Gabon,2019,63.6,69.7
+Gambia,2019,63.4,67.7
+Ghana,2019,63.7,69.2
+Guinea,2019,59.5,62.3
+Guinea-Bissau,2019,57.4,63
+Kenya,2019,63.7,68.4
+Lesotho,2019,47.7,54.2
+Liberia,2019,63.2,65
+Madagascar,2019,64.1,66.6
+Malawi,2019,62.3,68.9
+Mali,2019,62.2,63.4
+Mauritania,2019,68.1,68.7
+Mauritius,2019,71,77.3
+Mozambique,2019,54.5,61.7
+Namibia,2019,60.6,68.4
+Niger,2019,62.1,64.6
+Nigeria,2019,61.2,64.1
+Rwanda,2019,66.9,71.2
+Sao Tome and Principe,2019,68.8,72
+Senegal,2019,66.8,70.1
+Seychelles,2019,70,77.1
+Sierra Leone,2019,59.6,61.9
+South Africa,2019,62.2,68.3
+South Sudan,2019,60.8,64.8
+Togo,2019,61.5,67.2
+Uganda,2019,63.2,70.1
+Tanzania,2019,65.4,69.3
+Zambia,2019,59.5,65.4
+Zimbabwe,2019,57.5,63.6
diff --git a/graphics/pgf/contrib/tikzviolinplots/AMR.csv b/graphics/pgf/contrib/tikzviolinplots/AMR.csv
new file mode 100644
index 0000000000..07e9541dfd
--- /dev/null
+++ b/graphics/pgf/contrib/tikzviolinplots/AMR.csv
@@ -0,0 +1,34 @@
+Country,Year,LifeExpectancyAtBirthMale,LifeExpectancyAtBirthFemale
+Antigua and Barbuda,2019,74.9,78
+Argentina,2019,73.5,79.5
+Bahamas,2019,69.9,76.6
+Barbados,2019,74.3,77.7
+Belize,2019,71.4,77.8
+Bolivia (Plurinational State of),2019,71.1,73.1
+Brazil,2019,72.4,79.4
+Canada,2019,80.4,84.1
+Chile,2019,78.1,83.2
+Colombia,2019,76.7,81.9
+Costa Rica,2019,78.3,83.4
+Cuba,2019,75.4,80.3
+Dominican Republic,2019,69.8,76.2
+Ecuador,2019,76.4,80.5
+El Salvador,2019,70.6,79.1
+Grenada,2019,70.6,75.3
+Guatemala,2019,69,75
+Guyana,2019,62.5,69.4
+Haiti,2019,63.3,64.8
+Honduras,2019,70.7,73.2
+Jamaica,2019,74.4,77.7
+Mexico,2019,73.1,78.9
+Nicaragua,2019,72.1,77.9
+Panama,2019,76.6,82.1
+Paraguay,2019,73.1,78.8
+Peru,2019,78.5,81.3
+Saint Lucia,2019,71.3,77.7
+Saint Vincent and the Grenadines,2019,71.3,75.3
+Suriname,2019,68.5,74.6
+Trinidad and Tobago,2019,72.5,79.9
+United States of America,2019,76.3,80.7
+Uruguay,2019,73.5,80.6
+Venezuela (Bolivarian Republic of),2019,69.9,78.2
diff --git a/graphics/pgf/contrib/tikzviolinplots/EMR.csv b/graphics/pgf/contrib/tikzviolinplots/EMR.csv
new file mode 100644
index 0000000000..d08fdda542
--- /dev/null
+++ b/graphics/pgf/contrib/tikzviolinplots/EMR.csv
@@ -0,0 +1,22 @@
+Country,Year,LifeExpectancyAtBirthMale,LifeExpectancyAtBirthFemale
+Afghanistan,2019,63.3,63.2
+Bahrain,2019,75,77
+Djibouti,2019,64.1,67.8
+Egypt,2019,69.6,74.1
+Iran (Islamic Republic of),2019,75.7,79.1
+Iraq,2019,69.9,75
+Jordan,2019,77,78.8
+Kuwait,2019,79.3,83.9
+Lebanon,2019,74,79.2
+Libya,2019,74.2,77.3
+Morocco,2019,71.7,74.3
+Oman,2019,73,75.3
+Pakistan,2019,64.6,66.7
+Qatar,2019,78,76.6
+Saudi Arabia,2019,73.1,76.1
+Somalia,2019,54,59.2
+Sudan,2019,67.6,70.8
+Syrian Arab Republic,2019,71.2,74.3
+Tunisia,2019,74.9,79.2
+United Arab Emirates,2019,75.1,78.4
+Yemen,2019,64.4,68.9
diff --git a/graphics/pgf/contrib/tikzviolinplots/EUR.csv b/graphics/pgf/contrib/tikzviolinplots/EUR.csv
new file mode 100644
index 0000000000..1d296e41d2
--- /dev/null
+++ b/graphics/pgf/contrib/tikzviolinplots/EUR.csv
@@ -0,0 +1,51 @@
+Country,Year,LifeExpectancyAtBirthMale,LifeExpectancyAtBirthFemale
+Albania,2019,76.3,79.9
+Armenia,2019,72.5,79.2
+Austria,2019,79.4,83.8
+Azerbaijan,2019,68.8,74.1
+Belarus,2019,69.7,79.6
+Belgium,2019,79.3,83.5
+Bosnia and Herzegovina,2019,74.4,79.1
+Bulgaria,2019,71.6,78.6
+Croatia,2019,75.5,81.6
+Cyprus,2019,81.1,85.1
+Czechia,2019,76.3,81.9
+Denmark,2019,79.6,83
+Estonia,2019,74.7,82.6
+Finland,2019,79.2,84
+France,2019,79.8,85.1
+Georgia,2019,68.8,77.8
+Germany,2019,78.7,84.8
+Greece,2019,78.6,83.6
+Hungary,2019,73.1,79.6
+Iceland,2019,80.8,83.9
+Ireland,2019,80.2,83.5
+Israel,2019,80.8,84.4
+Italy,2019,80.9,84.9
+Kazakhstan,2019,70,77.6
+Kyrgyzstan,2019,70.7,77.3
+Latvia,2019,70.6,79.8
+Lithuania,2019,71.2,80.4
+Luxembourg,2019,80.6,84.2
+Malta,2019,79.9,83.8
+Montenegro,2019,73.2,78.7
+Netherlands,2019,80.4,83.1
+Norway,2019,81.1,84.1
+Poland,2019,74.5,81.9
+Portugal,2019,78.6,84.4
+Republic of Moldova,2019,69.3,77.1
+North Macedonia,2019,72.8,76.9
+Romania,2019,72,79.3
+Russian Federation,2019,68.2,78
+Serbia,2019,73.5,78.3
+Slovakia,2019,74.8,81.4
+Slovenia,2019,78.6,84.1
+Spain,2019,80.7,85.7
+Sweden,2019,80.8,84
+Switzerland,2019,81.8,85.1
+Tajikistan,2019,67.6,71.5
+Turkey,2019,76.4,80.7
+Turkmenistan,2019,66.5,73
+Ukraine,2019,68,77.8
+United Kingdom of Great Britain and Northern Ireland,2019,79.8,83
+Uzbekistan,2019,70.8,75.2
diff --git a/graphics/pgf/contrib/tikzviolinplots/LICENSE b/graphics/pgf/contrib/tikzviolinplots/LICENSE
new file mode 100644
index 0000000000..2244313901
--- /dev/null
+++ b/graphics/pgf/contrib/tikzviolinplots/LICENSE
@@ -0,0 +1,416 @@
+The LaTeX Project Public License
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+LPPL Version 1.3c 2008-05-04
+
+Copyright 1999 2002-2008 LaTeX3 Project
+ Everyone is allowed to distribute verbatim copies of this
+ license document, but modification of it is not allowed.
+
+
+PREAMBLE
+========
+
+The LaTeX Project Public License (LPPL) is the primary license under
+which the LaTeX kernel and the base LaTeX packages are distributed.
+
+You may use this license for any work of which you hold the copyright
+and which you wish to distribute. This license may be particularly
+suitable if your work is TeX-related (such as a LaTeX package), but
+it is written in such a way that you can use it even if your work is
+unrelated to TeX.
+
+The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
+below, gives instructions, examples, and recommendations for authors
+who are considering distributing their works under this license.
+
+This license gives conditions under which a work may be distributed
+and modified, as well as conditions under which modified versions of
+that work may be distributed.
+
+We, the LaTeX3 Project, believe that the conditions below give you
+the freedom to make and distribute modified versions of your work
+that conform with whatever technical specifications you wish while
+maintaining the availability, integrity, and reliability of
+that work. If you do not see how to achieve your goal while
+meeting these conditions, then read the document `cfgguide.tex'
+and `modguide.tex' in the base LaTeX distribution for suggestions.
+
+
+DEFINITIONS
+===========
+
+In this license document the following terms are used:
+
+ `Work'
+ Any work being distributed under this License.
+
+ `Derived Work'
+ Any work that under any applicable law is derived from the Work.
+
+ `Modification'
+ Any procedure that produces a Derived Work under any applicable
+ law -- for example, the production of a file containing an
+ original file associated with the Work or a significant portion of
+ such a file, either verbatim or with modifications and/or
+ translated into another language.
+
+ `Modify'
+ To apply any procedure that produces a Derived Work under any
+ applicable law.
+
+ `Distribution'
+ Making copies of the Work available from one person to another, in
+ whole or in part. Distribution includes (but is not limited to)
+ making any electronic components of the Work accessible by
+ file transfer protocols such as FTP or HTTP or by shared file
+ systems such as Sun's Network File System (NFS).
+
+ `Compiled Work'
+ A version of the Work that has been processed into a form where it
+ is directly usable on a computer system. This processing may
+ include using installation facilities provided by the Work,
+ transformations of the Work, copying of components of the Work, or
+ other activities. Note that modification of any installation
+ facilities provided by the Work constitutes modification of the Work.
+
+ `Current Maintainer'
+ A person or persons nominated as such within the Work. If there is
+ no such explicit nomination then it is the `Copyright Holder' under
+ any applicable law.
+
+ `Base Interpreter'
+ A program or process that is normally needed for running or
+ interpreting a part or the whole of the Work.
+
+ A Base Interpreter may depend on external components but these
+ are not considered part of the Base Interpreter provided that each
+ external component clearly identifies itself whenever it is used
+ interactively. Unless explicitly specified when applying the
+ license to the Work, the only applicable Base Interpreter is a
+ `LaTeX-Format' or in the case of files belonging to the
+ `LaTeX-format' a program implementing the `TeX language'.
+
+
+
+CONDITIONS ON DISTRIBUTION AND MODIFICATION
+===========================================
+
+1. Activities other than distribution and/or modification of the Work
+are not covered by this license; they are outside its scope. In
+particular, the act of running the Work is not restricted and no
+requirements are made concerning any offers of support for the Work.
+
+2. You may distribute a complete, unmodified copy of the Work as you
+received it. Distribution of only part of the Work is considered
+modification of the Work, and no right to distribute such a Derived
+Work may be assumed under the terms of this clause.
+
+3. You may distribute a Compiled Work that has been generated from a
+complete, unmodified copy of the Work as distributed under Clause 2
+above, as long as that Compiled Work is distributed in such a way that
+the recipients may install the Compiled Work on their system exactly
+as it would have been installed if they generated a Compiled Work
+directly from the Work.
+
+4. If you are the Current Maintainer of the Work, you may, without
+restriction, modify the Work, thus creating a Derived Work. You may
+also distribute the Derived Work without restriction, including
+Compiled Works generated from the Derived Work. Derived Works
+distributed in this manner by the Current Maintainer are considered to
+be updated versions of the Work.
+
+5. If you are not the Current Maintainer of the Work, you may modify
+your copy of the Work, thus creating a Derived Work based on the Work,
+and compile this Derived Work, thus creating a Compiled Work based on
+the Derived Work.
+
+6. If you are not the Current Maintainer of the Work, you may
+distribute a Derived Work provided the following conditions are met
+for every component of the Work unless that component clearly states
+in the copyright notice that it is exempt from that condition. Only
+the Current Maintainer is allowed to add such statements of exemption
+to a component of the Work.
+
+ a. If a component of this Derived Work can be a direct replacement
+ for a component of the Work when that component is used with the
+ Base Interpreter, then, wherever this component of the Work
+ identifies itself to the user when used interactively with that
+ Base Interpreter, the replacement component of this Derived Work
+ clearly and unambiguously identifies itself as a modified version
+ of this component to the user when used interactively with that
+ Base Interpreter.
+
+ b. Every component of the Derived Work contains prominent notices
+ detailing the nature of the changes to that component, or a
+ prominent reference to another file that is distributed as part
+ of the Derived Work and that contains a complete and accurate log
+ of the changes.
+
+ c. No information in the Derived Work implies that any persons,
+ including (but not limited to) the authors of the original version
+ of the Work, provide any support, including (but not limited to)
+ the reporting and handling of errors, to recipients of the
+ Derived Work unless those persons have stated explicitly that
+ they do provide such support for the Derived Work.
+
+ d. You distribute at least one of the following with the Derived Work:
+
+ 1. A complete, unmodified copy of the Work;
+ if your distribution of a modified component is made by
+ offering access to copy the modified component from a
+ designated place, then offering equivalent access to copy
+ the Work from the same or some similar place meets this
+ condition, even though third parties are not compelled to
+ copy the Work along with the modified component;
+
+ 2. Information that is sufficient to obtain a complete,
+ unmodified copy of the Work.
+
+7. If you are not the Current Maintainer of the Work, you may
+distribute a Compiled Work generated from a Derived Work, as long as
+the Derived Work is distributed to all recipients of the Compiled
+Work, and as long as the conditions of Clause 6, above, are met with
+regard to the Derived Work.
+
+8. The conditions above are not intended to prohibit, and hence do not
+apply to, the modification, by any method, of any component so that it
+becomes identical to an updated version of that component of the Work as
+it is distributed by the Current Maintainer under Clause 4, above.
+
+9. Distribution of the Work or any Derived Work in an alternative
+format, where the Work or that Derived Work (in whole or in part) is
+then produced by applying some process to that format, does not relax or
+nullify any sections of this license as they pertain to the results of
+applying that process.
+
+10. a. A Derived Work may be distributed under a different license
+ provided that license itself honors the conditions listed in
+ Clause 6 above, in regard to the Work, though it does not have
+ to honor the rest of the conditions in this license.
+
+ b. If a Derived Work is distributed under a different license, that
+ Derived Work must provide sufficient documentation as part of
+ itself to allow each recipient of that Derived Work to honor the
+ restrictions in Clause 6 above, concerning changes from the Work.
+
+11. This license places no restrictions on works that are unrelated to
+the Work, nor does this license place any restrictions on aggregating
+such works with the Work by any means.
+
+12. Nothing in this license is intended to, or may be used to, prevent
+complete compliance by all parties with all applicable laws.
+
+
+NO WARRANTY
+===========
+
+There is no warranty for the Work. Except when otherwise stated in
+writing, the Copyright Holder provides the Work `as is', without
+warranty of any kind, either expressed or implied, including, but not
+limited to, the implied warranties of merchantability and fitness for a
+particular purpose. The entire risk as to the quality and performance
+of the Work is with you. Should the Work prove defective, you assume
+the cost of all necessary servicing, repair, or correction.
+
+In no event unless required by applicable law or agreed to in writing
+will The Copyright Holder, or any author named in the components of the
+Work, or any other party who may distribute and/or modify the Work as
+permitted above, be liable to you for damages, including any general,
+special, incidental or consequential damages arising out of any use of
+the Work or out of inability to use the Work (including, but not limited
+to, loss of data, data being rendered inaccurate, or losses sustained by
+anyone as a result of any failure of the Work to operate with any other
+programs), even if the Copyright Holder or said author or said other
+party has been advised of the possibility of such damages.
+
+
+MAINTENANCE OF THE WORK
+=======================
+
+The Work has the status `author-maintained' if the Copyright Holder
+explicitly and prominently states near the primary copyright notice in
+the Work that the Work can only be maintained by the Copyright Holder
+or simply that it is `author-maintained'.
+
+The Work has the status `maintained' if there is a Current Maintainer
+who has indicated in the Work that they are willing to receive error
+reports for the Work (for example, by supplying a valid e-mail
+address). It is not required for the Current Maintainer to acknowledge
+or act upon these error reports.
+
+The Work changes from status `maintained' to `unmaintained' if there
+is no Current Maintainer, or the person stated to be Current
+Maintainer of the work cannot be reached through the indicated means
+of communication for a period of six months, and there are no other
+significant signs of active maintenance.
+
+You can become the Current Maintainer of the Work by agreement with
+any existing Current Maintainer to take over this role.
+
+If the Work is unmaintained, you can become the Current Maintainer of
+the Work through the following steps:
+
+ 1. Make a reasonable attempt to trace the Current Maintainer (and
+ the Copyright Holder, if the two differ) through the means of
+ an Internet or similar search.
+
+ 2. If this search is successful, then enquire whether the Work
+ is still maintained.
+
+ a. If it is being maintained, then ask the Current Maintainer
+ to update their communication data within one month.
+
+ b. If the search is unsuccessful or no action to resume active
+ maintenance is taken by the Current Maintainer, then announce
+ within the pertinent community your intention to take over
+ maintenance. (If the Work is a LaTeX work, this could be
+ done, for example, by posting to comp.text.tex.)
+
+ 3a. If the Current Maintainer is reachable and agrees to pass
+ maintenance of the Work to you, then this takes effect
+ immediately upon announcement.
+
+ b. If the Current Maintainer is not reachable and the Copyright
+ Holder agrees that maintenance of the Work be passed to you,
+ then this takes effect immediately upon announcement.
+
+ 4. If you make an `intention announcement' as described in 2b. above
+ and after three months your intention is challenged neither by
+ the Current Maintainer nor by the Copyright Holder nor by other
+ people, then you may arrange for the Work to be changed so as
+ to name you as the (new) Current Maintainer.
+
+ 5. If the previously unreachable Current Maintainer becomes
+ reachable once more within three months of a change completed
+ under the terms of 3b) or 4), then that Current Maintainer must
+ become or remain the Current Maintainer upon request provided
+ they then update their communication data within one month.
+
+A change in the Current Maintainer does not, of itself, alter the fact
+that the Work is distributed under the LPPL license.
+
+If you become the Current Maintainer of the Work, you should
+immediately provide, within the Work, a prominent and unambiguous
+statement of your status as Current Maintainer. You should also
+announce your new status to the same pertinent community as
+in 2b) above.
+
+
+WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
+======================================================
+
+This section contains important instructions, examples, and
+recommendations for authors who are considering distributing their
+works under this license. These authors are addressed as `you' in
+this section.
+
+Choosing This License or Another License
+----------------------------------------
+
+If for any part of your work you want or need to use *distribution*
+conditions that differ significantly from those in this license, then
+do not refer to this license anywhere in your work but, instead,
+distribute your work under a different license. You may use the text
+of this license as a model for your own license, but your license
+should not refer to the LPPL or otherwise give the impression that
+your work is distributed under the LPPL.
+
+The document `modguide.tex' in the base LaTeX distribution explains
+the motivation behind the conditions of this license. It explains,
+for example, why distributing LaTeX under the GNU General Public
+License (GPL) was considered inappropriate. Even if your work is
+unrelated to LaTeX, the discussion in `modguide.tex' may still be
+relevant, and authors intending to distribute their works under any
+license are encouraged to read it.
+
+A Recommendation on Modification Without Distribution
+-----------------------------------------------------
+
+It is wise never to modify a component of the Work, even for your own
+personal use, without also meeting the above conditions for
+distributing the modified component. While you might intend that such
+modifications will never be distributed, often this will happen by
+accident -- you may forget that you have modified that component; or
+it may not occur to you when allowing others to access the modified
+version that you are thus distributing it and violating the conditions
+of this license in ways that could have legal implications and, worse,
+cause problems for the community. It is therefore usually in your
+best interest to keep your copy of the Work identical with the public
+one. Many works provide ways to control the behavior of that work
+without altering any of its licensed components.
+
+How to Use This License
+-----------------------
+
+To use this license, place in each of the components of your work both
+an explicit copyright notice including your name and the year the work
+was authored and/or last substantially modified. Include also a
+statement that the distribution and/or modification of that
+component is constrained by the conditions in this license.
+
+Here is an example of such a notice and statement:
+
+ %% pig.dtx
+ %% Copyright 2005 M. Y. Name
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2005/12/01 or later.
+ %
+ % This work has the LPPL maintenance status `maintained'.
+ %
+ % The Current Maintainer of this work is M. Y. Name.
+ %
+ % This work consists of the files pig.dtx and pig.ins
+ % and the derived file pig.sty.
+
+Given such a notice and statement in a file, the conditions
+given in this license document would apply, with the `Work' referring
+to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
+generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
+referring to any `LaTeX-Format', and both `Copyright Holder' and
+`Current Maintainer' referring to the person `M. Y. Name'.
+
+If you do not want the Maintenance section of LPPL to apply to your
+Work, change `maintained' above into `author-maintained'.
+However, we recommend that you use `maintained', as the Maintenance
+section was added in order to ensure that your Work remains useful to
+the community even when you can no longer maintain and support it
+yourself.
+
+Derived Works That Are Not Replacements
+---------------------------------------
+
+Several clauses of the LPPL specify means to provide reliability and
+stability for the user community. They therefore concern themselves
+with the case that a Derived Work is intended to be used as a
+(compatible or incompatible) replacement of the original Work. If
+this is not the case (e.g., if a few lines of code are reused for a
+completely different task), then clauses 6b and 6d shall not apply.
+
+
+Important Recommendations
+-------------------------
+
+ Defining What Constitutes the Work
+
+ The LPPL requires that distributions of the Work contain all the
+ files of the Work. It is therefore important that you provide a
+ way for the licensee to determine which files constitute the Work.
+ This could, for example, be achieved by explicitly listing all the
+ files of the Work near the copyright notice of each file or by
+ using a line such as:
+
+ % This work consists of all files listed in manifest.txt.
+
+ in that place. In the absence of an unequivocal list it might be
+ impossible for the licensee to determine what is considered by you
+ to comprise the Work and, in such a case, the licensee would be
+ entitled to make reasonable conjectures as to which files comprise
+ the Work.
+
diff --git a/graphics/pgf/contrib/tikzviolinplots/README b/graphics/pgf/contrib/tikzviolinplots/README
new file mode 100644
index 0000000000..b68e3f94ee
--- /dev/null
+++ b/graphics/pgf/contrib/tikzviolinplots/README
@@ -0,0 +1,3 @@
+This package provides comands to draw violin plots from data, inside a
+tikzpicture environment.
+
diff --git a/graphics/pgf/contrib/tikzviolinplots/README.md b/graphics/pgf/contrib/tikzviolinplots/README.md
new file mode 100644
index 0000000000..b8717b327e
--- /dev/null
+++ b/graphics/pgf/contrib/tikzviolinplots/README.md
@@ -0,0 +1,7 @@
+tikzviolinplots
+===============
+
+This package is used to draw violin plots inside a `tikzpicture` environment,
+using data from a file. For more information, please refer to
+`tikzviolinplots.pdf`.
+
diff --git a/graphics/pgf/contrib/tikzviolinplots/SEAR.csv b/graphics/pgf/contrib/tikzviolinplots/SEAR.csv
new file mode 100644
index 0000000000..d0a049eb38
--- /dev/null
+++ b/graphics/pgf/contrib/tikzviolinplots/SEAR.csv
@@ -0,0 +1,12 @@
+Country,Year,LifeExpectancyAtBirthMale,LifeExpectancyAtBirthFemale
+Bangladesh,2019,73,75.6
+Bhutan,2019,72,74.4
+Democratic People's Republic of Korea,2019,69.3,75.7
+India,2019,69.5,72.2
+Indonesia,2019,69.4,73.3
+Maldives,2019,78.6,80.8
+Myanmar,2019,65.9,72.2
+Nepal,2019,68.9,72.7
+Sri Lanka,2019,73.8,79.8
+Thailand,2019,74.4,81
+Timor-Leste,2019,67.9,71.4
diff --git a/graphics/pgf/contrib/tikzviolinplots/WPR.csv b/graphics/pgf/contrib/tikzviolinplots/WPR.csv
new file mode 100644
index 0000000000..892c9d768d
--- /dev/null
+++ b/graphics/pgf/contrib/tikzviolinplots/WPR.csv
@@ -0,0 +1,21 @@
+Country,Year,LifeExpectancyAtBirthMale,LifeExpectancyAtBirthFemale
+Australia,2019,81.3,84.8
+Brunei Darussalam,2019,73.4,75.4
+China,2019,74.7,80.5
+Fiji,2019,65.9,70.3
+Japan,2019,81.5,86.9
+Kiribati,2019,56.1,62.8
+Lao People's Democratic Republic,2019,66.2,70.9
+Malaysia,2019,72.6,77.1
+Micronesia (Federated States of),2019,60.3,66
+Mongolia,2019,63.8,72.8
+New Zealand,2019,80.4,83.5
+Papua New Guinea,2019,63.4,67.4
+Philippines,2019,67.4,73.6
+Republic of Korea,2019,80.3,86.1
+Samoa,2019,69.2,71.8
+Singapore,2019,81,85.5
+Solomon Islands,2019,62.9,67.9
+Tonga,2019,69.8,75.6
+Vanuatu,2019,62.7,68.3
+Viet Nam,2019,69.6,78.1
diff --git a/graphics/pgf/contrib/tikzviolinplots/tikzviolinplots.pdf b/graphics/pgf/contrib/tikzviolinplots/tikzviolinplots.pdf
new file mode 100644
index 0000000000..3aa58bf157
--- /dev/null
+++ b/graphics/pgf/contrib/tikzviolinplots/tikzviolinplots.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/tikzviolinplots/tikzviolinplots.sty b/graphics/pgf/contrib/tikzviolinplots/tikzviolinplots.sty
new file mode 100644
index 0000000000..33c32693b0
--- /dev/null
+++ b/graphics/pgf/contrib/tikzviolinplots/tikzviolinplots.sty
@@ -0,0 +1,682 @@
+%% tikzviolinplots.sty
+%% Copyright 2023 Pedro Callil-Soares
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Pedro Callil-Soares.
+%
+% This work consists of the files tikzviolinplots.sty and
+% tikzviolinplots.tex.
+
+\NeedsTeXFormat{LaTeX2e}[1994/06/01]
+\ProvidesPackage{tikzviolinplots}[2021/08/27 v0.7.1 Violin plot creation in pgfplots]
+
+\RequirePackage{pgfplots}
+\RequirePackage{pgfplotstable}
+\RequirePackage{ifthen}
+\RequirePackage{stringstrings}
+\RequirePackage{pgfkeys}
+
+
+\DeclareOption*{\PackageWarning{tikzviolinplots}{Unknown option: ‘\CurrentOption’}}
+\ProcessOptions\relax
+
+\pgfkeys{
+ /violinplot/.is family, /violinplot,
+ default/.style = {
+ col sep=comma,
+ kernel=gaussian,
+ bandwidth=NONE,
+ index=DATA,
+ samples=50,
+ relative position=0
+ color=black,
+ label={LABEL},
+ invert={FALSE},
+ average mark=x,
+ average size=3pt,
+ average color=black,
+ average opacity=1.0,
+ average fill=white,
+ average fill opacity=0.5,
+ dataset mark=*,
+ dataset size=1pt,
+ dataset color=black,
+ dataset opacity=1.0,
+ dataset fill=black,
+ dataset fill opacity=0.2,
+ },
+ col sep/.estore in = \violin@colsep,
+ kernel/.estore in = \violin@kernel,
+ bandwidth/.estore in = \violin@bandwidth,
+ index/.estore in = \violin@index,
+ samples/.estore in = \violin@samples,
+ relative position/.estore in = \violin@delta,
+ color/.estore in = \violin@color,
+ label/.estore in = \violin@label,
+ invert/.estore in = \violin@invert,
+ average mark/.estore in = \violin@avg@mark,
+ average size/.estore in = \violin@avg@size,
+ average color/.estore in = \violin@avg@color,
+ average opacity/.estore in = \violin@avg@opacity,
+ average fill/.estore in = \violin@avg@fillcolor,
+ average fill opacity/.estore in = \violin@avg@fillopacity,
+ dataset mark/.estore in = \violin@pts@mark,
+ dataset size/.estore in = \violin@pts@size,
+ dataset color/.estore in = \violin@pts@color,
+ dataset opacity/.estore in = \violin@pts@opacity,
+ dataset fill/.estore in = \violin@pts@fillcolor,
+ dataset fill opacity/.estore in = \violin@pts@fillopacity,
+ /violinplotwholefile/.is family, /violinplotwholefile,
+ default/.style = {
+ col sep=comma,
+ kernel=gaussian,
+ bandwidth=NONE,
+ index=DATA,
+ samples=50,
+ relative position=0
+ color=black,
+ label={LABEL},
+ average mark=x,
+ average size=3pt,
+ average color=black,
+ average opacity=1.0,
+ average fill=white,
+ average fill opacity=0.5,
+ dataset mark=*,
+ dataset size=1pt,
+ dataset color=black,
+ dataset opacity=1.0,
+ dataset fill=black,
+ dataset fill opacity=0.2,
+ spacing=1.0,
+ indexes={A,B,C},
+ primary color=blue,
+ secondary color=black,
+ labels={A,B,C},
+ },
+ col sep/.estore in = \violin@batch@colsep,
+ kernel/.estore in = \violin@batch@kernel,
+ bandwidth/.estore in = \violin@batch@bandwidth,
+ index/.estore in = \violin@batch@index,
+ samples/.estore in = \violin@batch@samples,
+ relative position/.estore in = \violin@batch@delta,
+ color/.estore in = \violin@batch@color,
+ label/.estore in = \violin@batch@label,
+ average mark/.estore in = \violin@batch@avg@mark,
+ average size/.estore in = \violin@batch@avg@size,
+ average color/.estore in = \violin@batch@avg@color,
+ average opacity/.estore in = \violin@batch@avg@opacity,
+ average fill/.estore in = \violin@batch@avg@fillcolor,
+ average fill opacity/.estore in = \violin@batch@avg@fillopacity,
+ dataset mark/.estore in = \violin@batch@pts@mark,
+ dataset size/.estore in = \violin@batch@pts@size,
+ dataset color/.estore in = \violin@batch@pts@color,
+ dataset opacity/.estore in = \violin@batch@pts@opacity,
+ dataset fill/.estore in = \violin@batch@pts@fillcolor,
+ dataset fill opacity/.estore in = \violin@batch@pts@fillopacity,
+ spacing/.estore in = \violin@batch@delta,
+ indexes/.estore in = \violin@batch@indexes,
+ primary color/.estore in = \violin@batch@color@primary,
+ secondary color/.estore in = \violin@batch@color@secondary,
+ labels/.estore in = \violin@batch@labels,
+}
+
+\newcommand{\violinsetoptions}[2][]{%
+
+ \def\violin@scaled{false}
+ \def\violin@datapoints{false}
+ \def\violin@averages{false}
+ \def\violin@nomirror{false}
+ \def\violin@reverseaxis{false}
+ \def\violin@axisoptions{#2}
+
+ \@for\kdeoption:=#1\do{
+ \noblanks[q]{\kdeoption}
+ \ifthenelse{
+ \equal{\thestring}{scaled}
+ }{
+ \def\violin@scaled{true}
+ }{}
+ \ifthenelse{
+ \equal{\thestring}{datapoints}
+ }{
+ \def\violin@datapoints{true}
+ }{}
+ \ifthenelse{
+ \equal{\thestring}{averages}
+ }{
+ \def\violin@averages{true}
+ }{}
+ \ifthenelse{
+ \equal{\thestring}{nomirror}
+ }{
+ \def\violin@nomirror{true}
+ }{}
+ \ifthenelse{
+ \equal{\thestring}{reverseaxis}
+ }{
+ \def\violin@reverseaxis{true}
+ }{}
+ }
+
+ \ifthenelse{
+ \equal{\violin@reverseaxis}{true}
+ }{
+ \begin{axis}[
+ axis on top,
+ yticklabels={,,},
+ ymajorticks=false,
+ \violin@axisoptions,
+ ]
+ \end{axis}
+ }{
+ \begin{axis}[
+ axis on top,
+ xticklabels={,,},
+ xmajorticks=false,
+ \violin@axisoptions,
+ ]
+ \end{axis}
+ }
+
+ \@for\kdeoption:=\violin@axisoptions\do{
+ \noblanks[e]{\kdeoption}
+ \let\violin@opt\thestring
+ \whereisword[q]{\violin@opt}{xmin}
+ \ifthenelse{
+ \equal{\theresult}{0}
+ }{}{
+ \let\violin@axis@xmin\violin@opt
+ }
+ \whereisword[q]{\violin@opt}{xmax}
+ \ifthenelse{
+ \equal{\theresult}{0}
+ }{}{
+ \let\violin@axis@xmax\violin@opt
+ }
+ \whereisword[q]{\violin@opt}{ymin}
+ \ifthenelse{
+ \equal{\theresult}{0}
+ }{}{
+ \let\violin@axis@ymin\violin@opt
+ }
+ \whereisword[q]{\violin@opt}{ymax}
+ \ifthenelse{
+ \equal{\theresult}{0}
+ }{}{
+ \let\violin@axis@ymax\violin@opt
+ }
+ }
+
+ \def\violin@axislimits{
+ \violin@axis@xmin,\violin@axis@xmax,
+ \violin@axis@ymin,\violin@axis@ymax,
+ }
+
+ \let\violin@axisoptions\violin@axislimits
+
+}
+
+\newcommand{\violinplot}[2][]{%
+
+ \pgfkeys{/violinplot, default, #1}
+
+ \def\violin@filename{#2}
+
+ \pgfplotstableread[%
+ col sep=\violin@colsep,
+ trim cells=true,
+ ]{\violin@filename}\theviolin@dataset@table
+
+ \pgfplotstablegetrowsof{\theviolin@dataset@table}
+ \pgfmathparse{int(\pgfmathresult-1)}
+ \let\violin@filename@lastindex\pgfmathresult
+
+ \pgfmathparse{0}
+ \let\violin@dataset@stddev\pgfmathresult
+ \let\violin@dataset@average\pgfmathresult
+
+ \pgfplotstableforeachcolumnelement{\violin@index}\of\theviolin@dataset@table\as\xi{%
+ \pgfmathparse{\violin@dataset@average+(\xi/(1+\violin@filename@lastindex))}
+ \let\violin@dataset@average\pgfmathresult
+ }
+
+ \ifthenelse{
+ \equal{\violin@datapoints}{true}
+ }{
+ \pgfplotstablecreatecol[
+ create col/assign/.code={
+ \let\entry\violin@delta
+ \pgfkeyslet{/pgfplots/table/create col/next content}\entry
+ }
+ ]{deltacol}\theviolin@dataset@table
+ }{}
+
+ \ifthenelse{
+ \equal{\violin@reverseaxis}{true}
+ }{
+ \def\violin@axis@x{y}
+ \def\violin@axis@y{x}
+ }{
+ \def\violin@axis@x{x}
+ \def\violin@axis@y{y}
+ }
+
+ \ifthenelse{%
+ \equal{\violin@bandwidth}{NONE}%
+ }{%
+ \pgfplotstableforeachcolumnelement{\violin@index}\of\theviolin@dataset@table\as\xi{%
+ \pgfmathparse{\violin@dataset@stddev+(\xi-\violin@dataset@average)^2}
+ \let\violin@dataset@stddev\pgfmathresult
+ }
+ \pgfmathparse{sqrt(\violin@dataset@stddev/(1+\violin@filename@lastindex))}
+ \let\violin@dataset@stddev\pgfmathresult
+ \pgfmathparse{1.06*\violin@dataset@stddev*((1+\violin@filename@lastindex)^(-0.2))}%
+ \let\violin@bandwidth\pgfmathresult
+ }{%
+ }
+
+ \pgfplotstablegetelem{0}{\violin@index}\of{\theviolin@dataset@table}
+ \let\violin@dataset@min\pgfplotsretval
+ \let\violin@dataset@max\pgfplotsretval
+ \pgfplotstableforeachcolumnelement{\violin@index}\of\theviolin@dataset@table\as\xi{%
+ \pgfmathparse{%
+ \xi > \violin@dataset@min ? int(0) : int(1)%
+ }
+ \ifthenelse{
+ \pgfmathresult = 1
+ }{
+ \let\violin@dataset@min\xi
+ }{
+ }
+ }
+ \pgfmathparse{\violin@dataset@min - 3*\violin@bandwidth}
+ \let\violin@dataset@min\pgfmathresult
+
+ \pgfplotstableforeachcolumnelement{\violin@index}\of\theviolin@dataset@table\as\xi{%
+ \pgfmathparse{%
+ \xi < \violin@dataset@max ? int(0) : int(1)%
+ }
+ \ifthenelse{
+ \pgfmathresult = 1
+ }{
+ \let\violin@dataset@max\xi
+ }{
+ }
+ }
+ \pgfmathparse{\violin@dataset@max + 3*\violin@bandwidth}
+ \let\violin@dataset@max\pgfmathresult
+
+ \pgfplotstableset{
+ create on use/list/.style={create col/expr={
+ \violin@dataset@min + (\violin@dataset@max-\violin@dataset@min)
+ *(\pgfplotstablerow/(\violin@samples-1))
+ }}
+ }
+
+
+ \pgfplotstablenew[columns={list}]{\violin@samples}\violin@kde
+
+ \pgfmathparse{0.0}
+ \let\violin@kde@max\pgfmathresult
+
+ \pgfplotstablecreatecol[
+ create col/assign/.code={
+ \pgfmathparse{\violin@filename@lastindex+1}
+ \let\violin@filename@lastindex\pgfmathresult
+ \pgfmathparse{%
+ 1.0/(\violin@filename@lastindex*\violin@bandwidth)
+ }
+ \let\violin@kde@factor\pgfmathresult
+ \pgfmathparse{0}
+ \let\violin@kde@accum\pgfmathresult
+ \pgfplotstableforeachcolumnelement{\violin@index}\of\theviolin@dataset@table\as\xi{%
+ \pgfmathparse{%
+ ((\xi-\thisrow{list})/%
+ \violin@bandwidth)}
+ \let\violin@u\pgfmathresult
+ \ifthenelse{
+ \equal{\violin@kernel}{gaussian}
+ }{
+ \pgfmathparse{\violin@kde@accum + %
+ e^(-0.5*\violin@u*\violin@u)/sqrt(2*pi)}
+ \let\violin@kde@accum\pgfmathresult
+ }{}
+ \ifthenelse{
+ \equal{\violin@kernel}{logistic}
+ }{
+ \pgfmathparse{\violin@kde@accum + %
+ 1/(e^\violin@u + 2 + e^(-\violin@u))
+ }
+ \let\violin@kde@accum\pgfmathresult
+ }{}
+ \ifthenelse{
+ \equal{\violin@kernel}{parabolic}
+ }{
+ \pgfmathparse{%
+ abs(\violin@u) < 1 ? int(0) : int(1)%
+ }
+ \ifthenelse{
+ \equal{\pgfmathresult}{0}
+ }{
+ \pgfmathparse{\violin@kde@accum + %
+ 0.75*(1-\violin@u*\violin@u)
+ }
+ }{
+ \pgfmathparse{\violin@kde@accum}
+ }
+ \let\violin@kde@accum\pgfmathresult
+ }{}
+ \ifthenelse{
+ \equal{\violin@kernel}{uniform}
+ }{
+ \pgfmathparse{%
+ abs(\violin@u) < 1 ? int(0) : int(1)%
+ }
+ \ifthenelse{
+ \equal{\pgfmathresult}{0}
+ }{
+ \pgfmathparse{\violin@kde@accum + 0.5}
+ }{
+ \pgfmathparse{\violin@kde@accum}
+ }
+ \let\violin@kde@accum\pgfmathresult
+ }{}
+ \ifthenelse{
+ \equal{\violin@kernel}{triangular}
+ }{
+ \pgfmathparse{%
+ abs(\violin@u) < 1 ? int(0) : int(1)%
+ }
+ \ifthenelse{
+ \equal{\pgfmathresult}{0}
+ }{
+ \pgfmathparse{\violin@kde@accum + %
+ 1-abs(\violin@u)}
+ }{
+ \pgfmathparse{\violin@kde@accum}
+ }
+ \let\violin@kde@accum\pgfmathresult
+ }{}
+ }
+ \pgfmathparse{\violin@kde@accum*\violin@kde@factor}
+ \let\entry\pgfmathresult
+ \pgfkeyslet{/pgfplots/table/create col/next content}\entry
+ }
+ ]{kdecol}\violin@kde
+
+ \pgfplotstableforeachcolumnelement{kdecol}\of\violin@kde\as\entry{%
+ \pgfmathparse{%
+ \entry < \violin@kde@max ? int(0) : int(1)%
+ }
+ \ifthenelse{
+ \pgfmathresult = 1
+ }{
+ \let\violin@kde@max\entry
+ }{
+ }
+ }
+
+ \pgfplotstablemodifyeachcolumnelement{kdecol}\of\violin@kde\as\cell{%
+ \let\pgfplotstablezero\violin@delta
+ \ifthenelse{
+ \pgfplotstablerow = 0
+ }{
+ \let\cell\pgfplotstablezero
+ }{
+ \pgfmathparse{int(\violin@samples-1)}
+ \ifthenelse{
+ \pgfplotstablerow = \pgfmathresult
+ }{
+ \let\cell\pgfplotstablezero
+ }{
+ \ifthenelse{
+ \equal{\violin@nomirror}{true}
+ }{
+ \pgfmathparse{1.9}
+ }{
+ \pgfmathparse{1}
+ }
+ \let\violin@mirror@factor\pgfmathresult
+ \ifthenelse{
+ \equal{\violin@scaled}{true}
+ }{
+ \pgfmathparse{\violin@delta+\violin@mirror@factor*0.5*\cell/\violin@kde@max}
+ }{
+ \pgfmathparse{\violin@delta+\violin@mirror@factor*\cell}
+ }
+ \let\cell\pgfmathresult
+ }
+ }
+ }
+
+ \ifthenelse{
+ \equal{\violin@nomirror}{false}
+ }{
+ \pgfplotstablecreatecol[
+ create col/assign/.code={
+ \pgfmathparse{-\thisrow{kdecol}+2*\violin@delta}
+ \let\entry\pgfmathresult
+ \pgfkeyslet{/pgfplots/table/create col/next content}\entry
+ }
+ ]{kdecolinv}\violin@kde
+ }{
+ \ifthenelse{
+ \equal{\violin@invert}{true}
+ }{
+ \pgfplotstablemodifyeachcolumnelement{kdecol}\of\violin@kde\as\cell{%
+ \pgfmathparse{-\cell+2*\violin@delta}
+ \let\cell\pgfmathresult
+ }
+ }{}
+ }
+
+ \ifthenelse{
+ \equal{\violin@reverseaxis}{true}
+ }{
+ \pgfkeys{
+ /pgfplots/xticklabels={,,},
+ /pgfplots/yticklabels={\violin@label},
+ /pgfplots/ytick={\violin@delta},
+ }
+ }{
+ \pgfkeys{
+ /pgfplots/yticklabels={,,},
+ /pgfplots/xticklabels={\violin@label},
+ /pgfplots/xtick={\violin@delta},
+ }
+ }
+
+ \begin{axis}[
+ \violin@axisoptions,
+ axis on top,
+ ]
+ \addplot[
+ no marks,
+ color=\violin@color,
+ ] table [
+ \violin@axis@x=kdecol, \violin@axis@y=list
+ ] {\violin@kde};
+ \addplot[
+ no marks,
+ fill=\violin@color,
+ opacity=0.50,
+ ] table [
+ \violin@axis@x=kdecol, \violin@axis@y=list
+ ] {\violin@kde};
+ \ifthenelse{
+ \equal{\violin@nomirror}{false}
+ }{
+ \addplot[
+ no marks,
+ color=\violin@color,
+ ] table [
+ \violin@axis@x=kdecolinv, \violin@axis@y=list
+ ] {\violin@kde};
+ \addplot[
+ no marks,
+ fill=\violin@color,
+ opacity=0.50,
+ ] table [
+ \violin@axis@x=kdecolinv, \violin@axis@y=list
+ ] {\violin@kde};
+ }{}
+ \ifthenelse{
+ \equal{\violin@nomirror}{true}
+ }{
+ \ifthenelse{
+ \equal{\violin@reverseaxis}{false}
+ }{
+ \addplot[
+ no marks,
+ color=black,
+ ] coordinates {
+ (\violin@delta,\pgfkeysvalueof{/pgfplots/ymin})%
+ (\violin@delta,\pgfkeysvalueof{/pgfplots/ymax})
+ };
+ }{
+ \addplot[
+ no marks,
+ color=black,
+ ] coordinates {
+ (\pgfkeysvalueof{/pgfplots/xmin},\violin@delta)%
+ (\pgfkeysvalueof{/pgfplots/xmax},\violin@delta)
+ };
+ }
+ }{}
+ \ifthenelse{
+ \equal{\violin@averages}{true}
+ }{
+ \ifthenelse{
+ \equal{\violin@reverseaxis}{true}
+ }{
+ \addplot[
+ only marks,
+ mark=\violin@avg@mark,
+ mark size=\violin@avg@size,
+ color=\violin@avg@color,
+ opacity=\violin@avg@opacity,
+ fill=\violin@avg@fillcolor,
+ fill opacity=\violin@avg@fillopacity,
+ ] coordinates {
+ (\violin@dataset@average,\violin@delta)
+ };
+ }{
+ \addplot[
+ only marks,
+ mark=\violin@avg@mark,
+ mark size=\violin@avg@size,
+ color=\violin@avg@color,
+ opacity=\violin@avg@opacity,
+ fill=\violin@avg@fillcolor,
+ fill opacity=\violin@avg@fillopacity,
+ ] coordinates {
+ (\violin@delta,\violin@dataset@average)
+ };
+ }
+ }{}
+ \ifthenelse{
+ \equal{\violin@datapoints}{true}
+ }{
+ \addplot[
+ only marks,
+ mark=\violin@pts@mark,
+ mark size=\violin@pts@size,
+ color=\violin@pts@color,
+ opacity=\violin@pts@opacity,
+ fill=\violin@pts@fillcolor,
+ fill opacity=\violin@pts@fillopacity,
+ ] table [
+ \violin@axis@x=deltacol,
+ \violin@axis@y=\violin@index,
+ ] {\theviolin@dataset@table};
+ }{}
+ \end{axis}
+
+}
+
+\newcommand{\violin@getnth}[2]{%
+ \pgfmathparse{int(0)}
+ \let\violin@getnth@counter\pgfmathresult
+ \let\violin@nthelem\pgfmathresult
+ \@for\violin@listelem:=#1\do{
+ \ifthenelse{
+ \equal{#2}{\violin@getnth@counter}
+ }{
+ \let\violin@nthelem\violin@listelem
+ \pgfmathparse{int(\violin@getnth@counter+1)}
+ \let\violin@getnth@counter\pgfmathresult
+ }{
+ \pgfmathparse{int(\violin@getnth@counter+1)}
+ \let\violin@getnth@counter\pgfmathresult
+ }
+ }
+}
+
+\newcommand{\violinplotwholefile}[2][]{%
+
+ \pgfkeys{/violinplotwholefile, default, #1}
+ \def\violin@batch@filename{#2}
+
+ \pgfmathparse{0}
+ \let\violin@batch@numofplots\pgfmathresult
+ \@for\index:=\violin@batch@indexes\do{
+ \pgfmathparse{int(\violin@batch@numofplots+1)}
+ \let\violin@batch@numofplots\pgfmathresult
+ }
+
+ \pgfmathparse{0}
+ \let\violin@batch@color@deg\pgfmathresult
+ \let\violin@batch@counter\pgfmathresult
+ \let\violin@batch@relativepos\pgfmathresult
+
+ \@for\violin@batch@index:=\violin@batch@indexes\do{
+ \pgfmathparse{int(\violin@batch@counter*%
+ (100/(\violin@batch@numofplots-1)))}
+ \let\violin@batch@color@deg\pgfmathresult
+ \edef\violin@batch@color{\violin@batch@color@primary!\violin@batch@color@deg!\violin@batch@color@secondary}
+
+ \violin@getnth{\violin@batch@labels}{\violin@batch@counter}
+ \let\violin@batch@label\violin@nthelem
+
+ \pgfmathparse{1+\violin@batch@counter*\violin@batch@delta}
+ \let\violin@batch@relativepos\pgfmathresult
+
+ \violinplot[%
+ col sep = \violin@batch@colsep,
+ bandwidth=\violin@batch@bandwidth,
+ kernel = \violin@batch@kernel,
+ index=\violin@batch@index,
+ relative position=\violin@batch@relativepos,
+ samples = \violin@batch@samples,
+ color=\violin@batch@color,
+ label={\violin@batch@label},
+ average mark = \violin@batch@avg@mark,
+ average size = \violin@batch@avg@size,
+ average color = \violin@batch@avg@color,
+ average opacity = \violin@batch@avg@opacity,
+ average fill = \violin@batch@avg@fillcolor,
+ average fill opacity = \violin@batch@avg@fillopacity,
+ dataset mark = \violin@batch@pts@mark,
+ dataset size = \violin@batch@pts@size,
+ dataset color = \violin@batch@pts@color,
+ dataset opacity = \violin@batch@pts@opacity,
+ dataset fill = \violin@batch@pts@fillcolor,
+ dataset fill opacity = \violin@batch@pts@fillopacity,
+ ]{\violin@batch@filename}
+
+ \pgfmathparse{int(\violin@batch@counter+1)}
+ \let\violin@batch@counter\pgfmathresult
+ }
+
+}
+
diff --git a/graphics/pgf/contrib/tikzviolinplots/tikzviolinplots.tex b/graphics/pgf/contrib/tikzviolinplots/tikzviolinplots.tex
new file mode 100644
index 0000000000..e53191ffe7
--- /dev/null
+++ b/graphics/pgf/contrib/tikzviolinplots/tikzviolinplots.tex
@@ -0,0 +1,1180 @@
+%% tikzviolinplots.tex
+%% Copyright 2023 Pedro Callil-Soares
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Pedro Callil-Soares.
+%
+% This work consists of the files tikzviolinplots.sty and
+% tikzviolinplots.tex.
+
+\documentclass{article}
+
+\usepackage{amsmath}
+\usepackage{pgfplots}
+\pgfplotsset{width=\textwidth,compat=1.18}
+\usepgfplotslibrary{statistics}
+\usepackage{tikzviolinplots}
+\usepgfplotslibrary{external}
+\tikzexternalize
+\usetikzlibrary{arrows.meta}
+\usetikzlibrary{decorations.text}
+\usetikzlibrary{decorations.pathmorphing}
+\usepackage{minted}
+\usemintedstyle{gruvbox-light}
+\usepackage{scontents}
+\usepackage{wasysym}
+\usepackage{microtype}
+\usepackage{subcaption}
+\usepackage{hyperref}
+
+\begin{scontents}[write-out=violinandboxplotexample.dat]
+A B C D
+0.876 0.574 2.175 1.684
+1.015 0.822 2.121 2.290
+0.995 1.266 1.916 2.184
+1.101 0.740 2.044 2.065
+1.222 0.636 2.004 2.248
+0.712 1.753 2.038 2.200
+1.063 0.873 1.974 1.865
+0.973 1.020 2.145 1.895
+1.174 0.763 2.052 2.240
+1.057 1.293 2.079 2.360
+1.004 0.853 2.064 1.695
+0.909 0.694 2.136 1.837
+1.108 0.849 2.000 1.744
+1.210 0.468 2.010 1.820
+0.958 0.767 1.824 2.158
+1.119 0.940 2.034 1.846
+1.000 0.962 1.967 2.545
+0.954 1.551 1.833 1.816
+0.918 0.755 1.914 2.369
+1.093 0.973 1.997 1.543
+\end{scontents}
+
+\begin{scontents}[write-out=example.dat]
+A B C D E
+0.3 -2.1 3.50 2.89 1.00
+0.41 -1.9 3.55 2.88 1.06
+0.45 -1.5 3.55 3.13 1.00
+0.46 -1.3 3.60 2.69 1.20
+0.46 -1.3 3.60 2.78 1.00
+0.46 -1.27 3.60 2.83 1.35
+0.47 -1.26 3.65 3.08 1.00
+0.47 -1.26 3.65 3.08 1.53
+0.48 -1.24 3.65 2.73 1.00
+0.51 -1.2 3.65 3.08 1.73
+0.57 -1.13 3.65 3.24 1.00
+2.3 -1.02 3.70 3.10 1.95
+2.41 -0.9 3.70 2.98 1.00
+2.46 -0.2 3.70 2.98 2.21
+2.47 0.0 3.75 3.04 1.00
+2.48 0.1 3.80 3.24 2.49
+2.51 0.3 3.85 3.16 1.00
+2.57 0.5 3.85 3.30 3.04
+\end{scontents}
+
+\title{The \texttt{tikzviolinplots} package}
+\author{Pedro Callil-Soares}
+\date{\today}
+
+\begin{document}
+
+\maketitle
+
+\tableofcontents
+
+\begin{abstract}
+ The package provides commands for violin plot creation and
+ the kernel density estimations required.
+\end{abstract}
+
+\section{Introduction}
+
+This package, through the use of the package \texttt{pgfplots}, allows the
+creation of violin plots in \LaTeX. Violin plots are similar to boxplots,
+but instead of a box signalling the average and quartiles, a kernel density
+estimator is plotted, as in equation \ref{eq:kde}, in which the function $k$
+(the kernel) is a probability distribution, the positive number $h$ (the
+bandwidth) is a smoothing factor and $n$ is the sample size.
+
+\begin{equation}
+ \label{eq:kde}
+ \textnormal{KDE}(x) = %
+ \cfrac{1}{nh}\sum_{i=1}^nk\left(\cfrac{x-x_i}{h}\right)
+\end{equation}
+
+A comparison between the two plots, showcasing its similarities, is
+shown in figures \ref{fig:example}. The violin plot in figure
+\ref{graph:violin_example} assumes normal data, and the bandwidth
+(smoothing factor $h$ in equation \ref{eq:kde}) is defined accordingly.
+
+\pgfplotsset{height=1.6\linewidth}
+
+\begin{figure}[h!]
+ \centering
+ \begin{subfigure}{0.5\textwidth}
+ \centering
+ \begin{tikzpicture}
+ \begin{axis}
+ [
+ boxplot/draw direction=y,
+ ymax=3, ymin=0,
+ xmin=0, xmax=5,
+ ymajorgrids=true,
+ xtick={1,2,3,4},
+ xticklabels={$\alpha$,$\beta$,$\gamma$,$\delta$},
+ ylabel={Some property},
+ ]
+ \addplot+[boxplot,
+ blue!100!red,
+ fill=blue!100!red,
+ fill opacity=0.50,
+ no marks]
+ table [y=A] {violinandboxplotexample.dat};
+ \addplot+[boxplot,
+ blue!66!red,
+ fill=blue!66!red,
+ fill opacity=0.50,
+ no marks]
+ table [y=B] {violinandboxplotexample.dat};
+ \addplot+[boxplot,
+ blue!33!red,
+ fill=blue!33!red,
+ fill opacity=0.50,
+ no marks]
+ table [y=C] {violinandboxplotexample.dat};
+ \addplot+[boxplot,
+ blue!0!red,
+ fill=blue!0!red,
+ fill opacity=0.50,
+ no marks]
+ table [y=D] {violinandboxplotexample.dat};
+ \end{axis}
+ \end{tikzpicture}
+ \caption{Box plot}
+ \label{graph:box_example}
+ \end{subfigure}%
+ \hfill%
+ \begin{subfigure}{0.5\textwidth}
+ \centering
+ \begin{tikzpicture}
+ \violinsetoptions[
+ averages,
+ data points,
+ scaled,
+ ]{
+ xmin=0,xmax=5,
+ ymin=0,ymax=3,
+ xlabel style={
+ yshift = {-2*height("a")}
+ },
+ ymajorgrids=true,
+ ylabel={Same property},
+ }
+ \violinplotwholefile[%
+ primary color=red,
+ secondary color=blue,
+ indexes={A,B,C,D},
+ spacing=1.0,
+ labels={%
+ $\alpha$,
+ $\beta$,
+ $\gamma$,
+ $\delta$,
+ },
+ col sep=tab,
+ dataset size=1pt,
+ dataset mark=*,
+ dataset fill=black!50!white,
+ dataset fill opacity=1.0,
+ average mark=x,
+ average size=5pt,
+ ]{violinandboxplotexample.dat}
+ \end{tikzpicture}
+ \caption{Violin plot}
+ \label{graph:violin_example}
+ \end{subfigure}
+ \caption{Box and violin plot examples}
+ \label{fig:example}
+\end{figure}
+
+\pgfplotsset{height=0.9\linewidth}
+
+\section{Usage}
+
+To plot a violin plot with the commands provided, one must, inside
+a \texttt{tikzpicture} environment, set the general options to all
+plots and insert each individual dataset.
+
+To set the general options, the command \texttt{{\textbackslash}violinsetoptions}
+is provided, and must be invoked before plotting the datasets. This should
+be done with the commands \texttt{{\textbackslash}violinplot} or
+\texttt{{\textbackslash}violinplotwholefile}.
+
+\subsection{General options: \texttt{{\textbackslash}violinsetoptions}}
+
+The command \texttt{{\textbackslash}violinsetoptions} takes two arguments,
+an optional argument with package-specific options and a mandatory
+argument with options to be passed to \texttt{pgfplots}.
+
+\begin{minted}[escapeinside=||]{latex}
+ \violinsetoptions[|\textit{<package-specific options>}|]%
+ {|\textit{<pgfplots general options>}|}
+\end{minted}
+
+\subsubsection{Package-specific options}
+
+There are five options specific to the package: \texttt{scaled},
+\texttt{data points}, \texttt{averages}, \texttt{no mirror} and
+\texttt{reverse axis}, controlling how and which information
+in the datasets should be presented.
+
+The option \texttt{scaled} controls if all plots in the graph
+have the same area or same width. If passed, the kernel
+distribution estimations will be scaled to the same width, as
+shown in figure \ref{graph:violin_verti}; otherwise, the plots
+will present the same area, as in figure \ref{graph:violin_horiz}.
+
+The option \texttt{data points}, if passed, will show, along with
+the violin plots, the distribution of points in the data set, as shown in
+figure \ref{graph:violin_verti}.
+
+If the option \texttt{averages} is passed, the average of the data set
+elements is shown, as in figure \ref{graph:violin_horiz}.
+
+The plots are mirrored by default; however, passing the option \texttt{no mirror}
+will show only half the plot, as shown in figure \ref{graph:violin_horiz}.
+
+Finally, to ``transpose'' the plots (\textit{i.e.} show the distributions
+as functions of the abcissa, as in figure \ref{graph:violin_horiz},
+and not as functions of ordinate, as in figure \ref{graph:violin_verti}),
+one might use the option \texttt{reverse axis}.
+
+\subsubsection{Plot limits and other \texttt{pgfplots} options}
+
+The minima and maxima of the plot axes must be set in the second (and first
+mandatory) argument to the command, and should follow \texttt{pgfplots}
+syntax. For instance, to set the minimum and maximum of the $x$-axis
+to -3 and 6, and of the $y$-axis to 2.5 and 7, one might use:
+
+\begin{minted}[escapeinside=||]{latex}
+ \violinsetoptions[|\textit{<package-specific options>}|]%
+ {xmin=-3, xmax=6, ymin=2.5, xmin=7,%
+ |\textit{<pgfplots general options>}|}
+\end{minted}
+
+Other \texttt{pgfplots} expressions such as title or axes labels may be set
+in the same way in this argument.
+
+\subsection{Options for each data set: \texttt{{\textbackslash}violinplot}}
+
+If the data sets are not very similar and/or advanced customizations
+are desired, \texttt{{\textbackslash}violinplot} should be used to
+plot each data set individually.
+This command takes one mandatory argument, and a list of options:
+
+\begin{minted}[escapeinside=||]{latex}
+ \violinplot[%
+ |\textit{<option>}=\textit{<value>}|
+ ]{|\textit{filename}|}
+\end{minted}
+
+The filename (mandatory argument) must be a path to a file storing the data as
+space-separated columns. The optional argument is a list of options, including:
+
+\begin{itemize}
+ \item \texttt{col sep}: Column separation character in filename.
+ Defaults to \texttt{comma}, and can accept options
+ \texttt{space}, \texttt{tab}, \texttt{comma},
+ \texttt{colon}, \texttt{semicolon}, \texttt{braces},
+ \texttt{\&} and \texttt{ampersand}.
+ \item \texttt{index}: Necessary option, is the name of the column with
+ the data to be plotted.
+ \item \texttt{kernel}: The function to be used for the kernel density
+ estimation; available values are \texttt{gaussian} (default),
+ \texttt{logistic}, \texttt{parabolic}, \texttt{uniform}
+ and \texttt{triangular}.
+ \item \texttt{bandwidth}: Smoothing parameter for the kernel density
+ estimation; defaults to $h$ in equation \ref{eq:band},
+ which assumes gaussian distribution.
+ \begin{equation}
+ \label{eq:band}
+ h=\sqrt[5]{\frac{4\times\textnormal{stddev}%
+ \left(x_1,x_2,\ldots,x_n\right)^5}{3n}}
+ \end{equation}
+ \item \texttt{samples}: Number of points in which the kernel density
+ estimation will be calculated and plotted. Defaults
+ to 50.
+ \item \texttt{relative position}: position of the plot in the axis
+ with the labels for each dataset. Defaults to 0.
+ \item \texttt{color}: Color of the plot, border and interior.
+ Defaults to black. The interior is colored with 0.5
+ opacity.
+ \item \texttt{label}: Label of the plot, positioned at the point
+ set by \texttt{relative position}.
+ \item \texttt{invert}: If \texttt{true}, plot will be drawn in opposite
+ side. Useful for comparing two parts of a data set, by plotting each
+ group side by side.
+ \item Options for average and data points:
+ \begin{itemize}
+ \item \texttt{average mark}, \texttt{dataset mark}: Mark used
+ for averages and points of the data set (defaults
+ to ``\texttt{x}'' and ``\texttt{*}'', respectively).
+ \item \texttt{average size}, \texttt{dataset size}: Size
+ of each mark (defaults to 3pt for averages and 1pt
+ for other points).
+ \item \texttt{average color}, \texttt{dataset color}: Color
+ of each mark's border. Defaults to black in both
+ cases.
+ \item \texttt{average opacity}, \texttt{dataset opacity}:
+ Border opacity. Defaults to 1.0 in both cases.
+ \item \texttt{average fill}, \texttt{dataset fill}: Color
+ of each mark's interior. Defaults to black for the
+ points of the data set and white for the averages.
+ \item \texttt{average fill opacity}, \texttt{dataset fill opacity}:
+ Opacity of the marks. Defaults to 0.5 for averages and
+ 0.2 for the other points.
+ \end{itemize}
+\end{itemize}
+
+\subsection{Simplified interface: \texttt{{\textbackslash}violinplotwholefile}}
+
+If the data sets are similar and no customizations are required, one might
+use the command \texttt{{\textbackslash}violinplotwholefile}.
+
+\begin{minted}[escapeinside=||]{latex}
+ \violinplotwholefile[%
+ |\textit{<option>}=\textit{<value>}|
+ ]{|\textit{filename}|}
+\end{minted}
+
+This command will calculate and plot all columns named. The available options
+are:
+
+\begin{itemize}
+ \item \texttt{primary color}: Primary color utilised. A gradient is built from
+ the secondary color to it. Defaults to black.
+ \item \texttt{secondary color}: Secondary color utilized. A
+ gradient is built from it to the primary color. Defaults
+ to white.
+ \item \texttt{indexes}: List of columns to be plotted.
+ \item \texttt{spacing}: Distance between plots. Defaults to 1.0.
+ \item \texttt{labels}: Labels of the data to be plotted.
+\end{itemize}
+
+Besides, the options available to \texttt{{\textbackslash}violinplots} are also
+available for this command; for instance, one might set the kernel to
+be utilized as the \texttt{uniform} kernel through the option
+\texttt{kernel=uniform}. Of course, \texttt{relative position} is not an option
+here.
+
+\section{Examples}
+
+To show the usage of the package, we plotted several data sets two times, in
+figures \ref{graph:violin_verti} and \ref{graph:violin_horiz}, using either the
+simplified or the complete interface.
+
+The data are in the file \texttt{example.dat}, shown below:
+
+\colorlet{mintedbgcsv}{black!10!white}
+
+\inputminted[%
+ frame=single,
+ rulecolor=mintedbgcsv,
+ framesep=10pt,
+ bgcolor=mintedbgcsv,
+ obeytabs,
+ tabsize=12,
+]{text}{example.dat}
+
+\subsection{Simplified Interface}
+
+First we will plot this data using the simplified interface, resulting in
+figure \ref{graph:violin_verti}.
+
+\begin{figure}[h]
+ \centering
+ \begin{tikzpicture}
+ \violinsetoptions[
+ data points,
+ scaled,
+ ]{
+ xmin=0,xmax=6,
+ ymin=-4,ymax=6,
+ title={Plotting Some Data},
+ xlabel={Groups},
+ ylabel={Some property},
+ xlabel style={
+ yshift = {-2*height("a")}
+ },
+ ymajorgrids=true,
+ }
+ \violinplotwholefile[%
+ primary color=orange,
+ secondary color=black,
+ indexes={C,B,A,D,E},
+ spacing=1.0,
+ labels={%
+ $\alpha$,
+ $\beta$,
+ $\gamma$,
+ $\delta$,
+ $\epsilon$
+ },
+ col sep=tab,
+ dataset size=2pt,
+ dataset mark=diamond*,
+ dataset fill=blue!50!white,
+ dataset fill opacity=1.0,
+ ]{example.dat}
+ \end{tikzpicture}
+ \caption{Violin plot --- vertical example}
+ \label{graph:violin_verti}
+\end{figure}
+
+Code for figure \ref{graph:violin_verti}, using
+\texttt{{\textbackslash}violinplotwholefile}:
+
+\colorlet{mintedbgverti}{orange!10!white}
+
+\begin{minted}[%
+ escapeinside=||,
+ frame=single,
+ rulecolor=mintedbgverti,
+ framesep=10pt,
+ tabsize=4,
+ bgcolor=mintedbgverti]{latex}
+\begin{tikzpicture}
+ \violinsetoptions[
+ data points,
+ scaled,
+ ]{
+ xmin=0,xmax=6,
+ ymin=-4,ymax=6,
+ title={Plotting Some Data},
+ xlabel={Groups},
+ ylabel={Some property},
+ xlabel style={
+ yshift = {-2*height("a")}
+ },
+ ymajorgrids=true,
+ }
+ \violinplotwholefile[%
+ primary color=orange,
+ secondary color=black,
+ batch indexes={C,B,A,D,E},
+ batch spacing=1.0,
+ batch labels={%
+ $\alpha$,
+ $\beta$,
+ $\gamma$,
+ $\delta$,
+ $\epsilon$
+ },
+ col sep=tab,
+ dataset size=2pt,
+ dataset mark=diamond*,
+ dataset fill=blue!50!white,
+ dataset fill opacity=1.0,
+ ]{example.dat}
+\end{tikzpicture}
+
+\end{minted}
+
+\subsection{Complete Interface}
+
+Then the data will be plotted using the complete interface, resulting
+in figure \ref{graph:violin_horiz}.
+
+\begin{figure}[h]
+ \centering
+ \begin{tikzpicture}
+ \violinsetoptions[
+ no mirror,
+ averages,
+ reverse axis,
+ ]{%
+ xmin=-4,xmax=6,
+ ymin=0.7,ymax=7,
+ title={Plotting Some Data},
+ ylabel={Groups},
+ xlabel={Some property},
+ ylabel style={
+ yshift = {2*width("a")}
+ },
+ xmajorgrids=true,
+ }
+ \violinplot[%
+ index=C,
+ relative position=1,
+ color=blue!0!black,
+ label={$\alpha$},
+ col sep=tab,
+ ]{example.dat}
+ \violinplot[%
+ index=B,
+ relative position=2,
+ color=blue!25!black,
+ label={$\beta$},
+ col sep=tab,
+ ]{example.dat}
+ \violinplot[%
+ index=A,
+ relative position=3,
+ color=blue!50!black,
+ label={$\gamma$},
+ col sep=tab,
+ kernel=parabolic,
+ samples=100,
+ bandwidth=0.4,
+ average mark=otimes*,
+ average size=2pt,
+ average fill=blue!70!black,
+ average fill opacity=0.7,
+ ]{example.dat}
+ \violinplot[%
+ index=D,
+ relative position=4,
+ color=blue!75!black,
+ label={$\delta$},
+ col sep=tab,
+ ]{example.dat}
+ \violinplot[%
+ index=E,
+ relative position=5,
+ color=blue!100!black,
+ label={$\epsilon$},
+ col sep=tab,
+ ]{example.dat}
+ \end{tikzpicture}
+ \caption{Violin plot --- horizontal example}
+ \label{graph:violin_horiz}
+\end{figure}
+
+Code for figure \ref{graph:violin_horiz}, using
+\texttt{{\textbackslash}violinplot}:
+
+\colorlet{mintedbghoriz}{blue!10!white}
+
+\begin{minted}[%
+ escapeinside=||,
+ frame=single,
+ rulecolor=mintedbghoriz,
+ framesep=10pt,
+ tabsize=4,
+ bgcolor=mintedbghoriz]{latex}
+\begin{tikzpicture}
+ \violinsetoptions[
+ no mirror,
+ averages,
+ reverse axis,
+ ]{%
+ xmin=-4,xmax=6,
+ ymin=0.7,ymax=7,
+ title={Plotting Some Data},
+ ylabel={Groups},
+ xlabel={Some property},
+ ylabel style={
+ yshift = {2*width("a")}
+ },
+ xmajorgrids=true,
+ }
+ \violinplot[%
+ index=C,
+ relative position=1,
+ color=blue!0!black,
+ label={$\alpha$},
+ col sep=tab,
+ ]{example.dat}
+ \violinplot[%
+ index=B,
+ relative position=2,
+ color=blue!25!black,
+ label={$\beta$},
+ col sep=tab,
+ ]{example.dat}
+ \violinplot[%
+ index=A,
+ relative position=3,
+ color=blue!50!black,
+ label={$\gamma$},
+ col sep=tab,
+ kernel=parabolic,
+ samples=100,
+ bandwidth=0.4,
+ average mark=otimes*,
+ average size=2pt,
+ average fill=blue!70!black,
+ average fill opacity=0.7,
+ ]{example.dat};
+ \violinplot[%
+ index=D,
+ relative position=4,
+ color=blue!75!black,
+ label={$\delta$},
+ col sep=tab,
+ ]{example.dat}
+ \violinplot[%
+ index=E,
+ relative position=5,
+ color=blue!100!black,
+ label={$\epsilon$},
+ col sep=tab,
+ ]{example.dat}
+\end{tikzpicture}
+\end{minted}
+
+\subsection{Drawings and Annotations}
+
+As everything happens inside a \texttt{tikzpicture} environment, drawings
+and annotations are straightforward, as seen in figure \ref{graph:violin_annotations}.
+
+\begin{figure}[h]
+ \centering
+ \begin{tikzpicture}
+ \violinsetoptions[
+ averages,
+ data points,
+ ]{
+ xmin=0,xmax=6,
+ ymin=-2,ymax=5,
+ xlabel = {Bandwidth choice},
+ ylabel = {Some property},
+ title={Problems with Different Distributions},
+ xlabel style={
+ yshift = {-3*height("a")}
+ },
+ ymajorgrids=true,
+ }
+ \violinplot[%
+ index=A,
+ relative position=1,
+ color=green!33!black,
+ label={Estimated bandwidth},
+ col sep=tab,
+ ]{example.dat}
+ \violinplot[%
+ index=A,
+ bandwidth=0.1,
+ relative position=4,
+ color=green!12!black,
+ label={Smaller bandwidth},
+ col sep=tab,
+ ]{example.dat}
+ \begin{axis}[
+ xmin=0,xmax=6,
+ ymin=-2,ymax=5,
+ ]
+ \draw[-{Stealth}] (axis cs: 1.75,0.45) %
+ .. controls (axis cs:1.75,0.85) and %
+ (axis cs:3.9,0.5) .. (axis cs: 3.9,1.05);
+ \draw[decoration={raise=2pt,text along path, text=%
+ {|\tiny| Better bandwidth}, text align={center}}, %
+ decorate] %
+ (axis cs: 1.75,0.45) %
+ .. controls (axis cs:1.75,0.85) and %
+ (axis cs:3.9,0.5) .. (axis cs: 3.9,1.05);
+ \draw[-{Stealth}] %
+ (axis cs: 1.5,0.45) .. controls (axis cs:1.5,0.85) %
+ and (axis cs:1.25,1.1) .. (axis cs: 1.25,1.5) .. %
+ controls (axis cs:1.25,1.9) and (axis cs:1.35,1.9) %
+ .. (axis cs:1.35,2.6);
+ \draw[decoration={raise=2pt,text along path, text=%
+ {|\tiny|Very oversmoothed}, text align={center}}, %
+ decorate] %
+ (axis cs: 1.35,2.6) .. controls (axis cs:1.35,1.9) %
+ and (axis cs:1.25,1.9) .. (axis cs: 1.25,1.5) .. %
+ controls (axis cs:1.25,1.1) and (axis cs:1.5,0.85) %
+ .. (axis cs:1.5,0.45);
+ \end{axis}
+ \end{tikzpicture}
+ \caption{Annotations in a plot}
+ \label{graph:violin_annotations}
+\end{figure}
+
+Figure \ref{graph:violin_annotations} is compiled from the code excerpt below.
+
+\colorlet{mintedbgannot}{green!10!white}
+
+\begin{minted}[%
+ escapeinside=||,
+ frame=single,
+ rulecolor=mintedbgannot,
+ framesep=10pt,
+ tabsize=4,
+ bgcolor=mintedbgannot]{latex}
+\begin{tikzpicture}
+ \violinsetoptions[
+ averages,
+ data points,
+ ]{
+ xmin=0,xmax=6,
+ ymin=-2,ymax=5,
+ xlabel = {Bandwidth choice},
+ ylabel = {Some property},
+ title={Problems with Different %
+ Distributions},
+ xlabel style={
+ yshift = {-3*height("a")}
+ },
+ ymajorgrids=true,
+ }
+ \violinplot[%
+ index=A,
+ relative position=1,
+ color=green!33!black,
+ label={Estimated bandwidth},
+ col sep=tab,
+ ]{example.dat}
+ \violinplot[%
+ index=A,
+ bandwidth=0.1,
+ relative position=4,
+ color=green!12!black,
+ label={Smaller bandwidth},
+ col sep=tab,
+ ]{example.dat}
+ \begin{axis}[
+ xmin=0,xmax=6,
+ ymin=-2,ymax=5,
+ ]
+ \draw[-{Stealth}] (axis cs: 1.75,0.45) %
+ .. controls (axis cs:1.75,0.85) and %
+ (axis cs:3.9,0.5) .. (axis cs: 3.9,1.05);
+ \draw[decoration={raise=2pt,text along path,%
+ text={|\tiny| Better bandwidth}, %
+ text align={center}}, decorate] %
+ (axis cs: 1.75,0.45) %
+ .. controls (axis cs:1.75,0.85) and %
+ (axis cs:3.9,0.5) .. (axis cs: 3.9,1.05);
+ \draw[-{Stealth}] %
+ (axis cs: 1.5,0.45) .. controls %
+ (axis cs:1.5,0.85) and (axis cs:1.25,1.1) %
+ .. (axis cs: 1.25,1.5) .. controls %
+ (axis cs:1.25,1.9) and (axis cs:1.35,1.9) %
+ .. (axis cs:1.35,2.6);
+ \draw[decoration={raise=2pt,text along path, %
+ text={|\tiny|Very oversmoothed}, %
+ text align={center}}, decorate] %
+ (axis cs: 1.35,2.6) .. controls %
+ (axis cs:1.35,1.9) and (axis cs:1.25,1.9) %
+ .. (axis cs: 1.25,1.5) .. %
+ controls (axis cs:1.25,1.1) and %
+ (axis cs:1.5,0.85) .. (axis cs:1.5,0.45);
+ \end{axis}
+\end{tikzpicture}
+\end{minted}
+
+\subsection{Standalone Kernel Density Estimation}
+
+Plotting only one dataset and choosing adequate plot limits, one
+may obtain a simple representation of a kernel density estimation.
+This can be seen in figure \ref{graph:kde_standalone}, obtained from the
+code excerpt below.
+
+\begin{figure}[h]
+ \centering
+ \begin{tikzpicture}
+ \violinsetoptions[
+ no mirror,
+ reverse axis,
+ data points,
+ ]{%
+ xmin=3.3,xmax=4,
+ ymin=-1,ymax=12,
+ title={Plotting Some Data},
+ ylabel={$p(x)$},
+ xlabel={$x$},
+ xmajorgrids=true,
+ ymajorticks=true,
+ ytick={0.0,2.5,5,7.5,10},
+ yticklabels={0.0,2.5,5,7.5,10},
+ }
+ \violinplot[%
+ index=C,
+ relative position=0,
+ color=red!30!black,
+ label={},
+ col sep=tab,
+ dataset size=5pt,
+ dataset color=red!10!black,
+ dataset mark=*,
+ dataset fill=red!90!black,
+ dataset fill opacity=0.2,
+ ]{example.dat}
+ \end{tikzpicture}
+ \caption{Standalone kernel density estimation example}
+ \label{graph:kde_standalone}
+\end{figure}
+
+\colorlet{mintedbgstand}{red!10!white}
+
+\begin{minted}[%
+ escapeinside=||,
+ frame=single,
+ rulecolor=mintedbgstand,
+ framesep=10pt,
+ tabsize=4,
+ bgcolor=mintedbgstand]{latex}
+\begin{tikzpicture}
+ \violinsetoptions[
+ no mirror,
+ reverse axis,
+ data points,
+ ]{%
+ xmin=3.3,xmax=4,
+ ymin=-1,ymax=12,
+ title={Plotting Some Data},
+ ylabel={$p(x)$},
+ xlabel={$x$},
+ xmajorgrids=true,
+ ymajorticks=true,
+ ytick={0.0,2.5,5,7.5,10},
+ yticklabels={0.0,2.5,5,7.5,10},
+ }
+ \violinplot[%
+ index=C,
+ relative position=0,
+ color=red!30!black,
+ label={},
+ col sep=tab,
+ dataset size=5pt,
+ dataset color=red!10!black,
+ dataset mark=*,
+ dataset fill=red!90!black,
+ dataset fill opacity=0.2,
+ ]{example.dat}
+\end{tikzpicture}
+\end{minted}
+
+\subsection{Asymmetrical Violin Plots --- Real World Data}
+
+Using the key \texttt{invert=true} in the options of
+\texttt{\textbackslash violinplot} one can plot two different sets of data side
+by side, in an asymmetrical violin plot. This can be seen in figure
+\ref{graph:asymmetrical}, that exhibits the male and female life expectancy at
+birth, in 2019, for several countries, segregated in the WHO regions.\footnote{
+ \url{https://www.who.int/data/gho/publications/world-health-statistics}.
+}.
+
+\colorlet{malecolor}{cyan!60!white}
+\colorlet{femalecolor}{cyan!60!black}
+
+\begin{figure}[h]
+ \centering
+ \begin{tikzpicture}
+ \violinsetoptions[
+ no mirror,
+ scaled,
+ ]{%
+ xmin=0.8,xmax=13.2,
+ ymin=30,ymax=100,
+ title={Life Expectancy Per WHO Region},
+ xlabel={WHO Region},
+ ylabel={Life Expectancy in Years},
+ xlabel style={
+ yshift = {-3*width("a")}
+ },
+ ymajorgrids=true,
+ }
+ \violinplot[%
+ index=LifeExpectancyAtBirthMale,
+ relative position=2,
+ color=malecolor,
+ label={Africa},
+ col sep=comma,
+ invert=true
+ ]{AFR.csv}
+ \violinplot[%
+ index=LifeExpectancyAtBirthFemale,
+ relative position=2,
+ color=femalecolor,
+ label={},
+ col sep=comma,
+ ]{AFR.csv}
+ \violinplot[%
+ index=LifeExpectancyAtBirthMale,
+ relative position=4,
+ color=malecolor,
+ label={Middle-East},
+ col sep=comma,
+ invert=true
+ ]{EMR.csv}
+ \violinplot[%
+ index=LifeExpectancyAtBirthFemale,
+ relative position=4,
+ color=femalecolor,
+ label={},
+ col sep=comma,
+ ]{EMR.csv}
+ \violinplot[%
+ index=LifeExpectancyAtBirthMale,
+ relative position=6,
+ color=malecolor,
+ label={Pacific},
+ col sep=comma,
+ invert=true
+ ]{WPR.csv}
+ \violinplot[%
+ index=LifeExpectancyAtBirthFemale,
+ relative position=6,
+ color=femalecolor,
+ label={},
+ col sep=comma,
+ ]{WPR.csv};
+ \violinplot[%
+ index=LifeExpectancyAtBirthMale,
+ relative position=8,
+ color=malecolor,
+ label={SE. Asia},
+ col sep=comma,
+ invert=true
+ ]{SEAR.csv}
+ \violinplot[%
+ index=LifeExpectancyAtBirthFemale,
+ relative position=8,
+ color=femalecolor,
+ label={},
+ col sep=comma,
+ ]{SEAR.csv}
+ \violinplot[%
+ index=LifeExpectancyAtBirthMale,
+ relative position=10,
+ color=malecolor,
+ label={Americas},
+ col sep=comma,
+ invert=true
+ ]{AMR.csv}
+ \violinplot[%
+ index=LifeExpectancyAtBirthFemale,
+ relative position=10,
+ color=femalecolor,
+ label={},
+ col sep=comma,
+ ]{AMR.csv}
+ \violinplot[%
+ index=LifeExpectancyAtBirthMale,
+ relative position=12,
+ color=malecolor,
+ label={Europe},
+ col sep=comma,
+ invert=true
+ ]{EUR.csv}
+ \violinplot[%
+ index=LifeExpectancyAtBirthFemale,
+ relative position=12,
+ color=femalecolor,
+ label={},
+ col sep=comma,
+ ]{EUR.csv}
+ \begin{axis}[
+ xmin=0.8,xmax=13.2,
+ ymin=30,ymax=100,
+ ]
+ \draw(axis cs:2,35) node[anchor=east] {\male};
+ \draw(axis cs:2,35) node[anchor=west] {\female};
+ \draw(axis cs:4,35) node[anchor=east] {\male};
+ \draw(axis cs:4,35) node[anchor=west] {\female};
+ \draw(axis cs:6,35) node[anchor=east] {\male};
+ \draw(axis cs:6,35) node[anchor=west] {\female};
+ \draw(axis cs:8,35) node[anchor=east] {\male};
+ \draw(axis cs:8,35) node[anchor=west] {\female};
+ \draw(axis cs:10,35) node[anchor=east] {\male};
+ \draw(axis cs:10,35) node[anchor=west] {\female};
+ \draw(axis cs:12,35) node[anchor=east] {\male};
+ \draw(axis cs:12,35) node[anchor=west] {\female};
+ \end{axis}
+ \end{tikzpicture}
+ \caption{Example of asymmetrical plot}
+ \label{graph:asymmetrical}
+\end{figure}
+
+The code for figure \ref{graph:asymmetrical} is avaliable below:
+
+\begin{minted}[%
+ escapeinside=||,
+ frame=single,
+ rulecolor=cyan!10!white,
+ framesep=10pt,
+ tabsize=4,
+ bgcolor=cyan!10!white]{latex}
+\begin{tikzpicture}
+ \violinsetoptions[
+ no mirror,
+ scaled,
+ ]{%
+ xmin=0,xmax=14,
+ ymin=30,ymax=100,
+ title={Life Expectancy Per WHO Region},
+ xlabel={WHO Region},
+ ylabel={Life Expectancy in Years},
+ xlabel style={
+ yshift = {-3*width("a")}
+ },
+ ymajorgrids=true,
+ }
+ \violinplot[%
+ index=LifeExpectancyAtBirthMale,
+ relative position=2,
+ color=malecolor,
+ label={AFR},
+ col sep=comma,
+ invert=true
+ ]{AFR.csv}
+ \violinplot[%
+ index=LifeExpectancyAtBirthFemale,
+ relative position=2,
+ color=femalecolor,
+ label={},
+ col sep=comma,
+ ]{AFR.csv}
+ \violinplot[%
+ index=LifeExpectancyAtBirthMale,
+ relative position=4,
+ color=malecolor,
+ label={EMR},
+ col sep=comma,
+ invert=true
+ ]{EMR.csv}
+ \violinplot[%
+ index=LifeExpectancyAtBirthFemale,
+ relative position=4,
+ color=femalecolor,
+ label={},
+ col sep=comma,
+ ]{EMR.csv}
+ \violinplot[%
+ index=LifeExpectancyAtBirthMale,
+ relative position=6,
+ color=malecolor,
+ label={WPR},
+ col sep=comma,
+ invert=true
+ ]{WPR.csv}
+ \violinplot[%
+ index=LifeExpectancyAtBirthFemale,
+ relative position=6,
+ color=femalecolor,
+ label={},
+ col sep=comma,
+ ]{WPR.csv};
+ \violinplot[%
+ index=LifeExpectancyAtBirthMale,
+ relative position=8,
+ color=malecolor,
+ label={SEAR},
+ col sep=comma,
+ invert=true
+ ]{SEAR.csv}
+ \violinplot[%
+ index=LifeExpectancyAtBirthFemale,
+ relative position=8,
+ color=femalecolor,
+ label={},
+ col sep=comma,
+ ]{SEAR.csv}
+ \violinplot[%
+ index=LifeExpectancyAtBirthMale,
+ relative position=10,
+ color=malecolor,
+ label={AMR},
+ col sep=comma,
+ invert=true
+ ]{AMR.csv}
+ \violinplot[%
+ index=LifeExpectancyAtBirthFemale,
+ relative position=10,
+ color=femalecolor,
+ label={},
+ col sep=comma,
+ ]{AMR.csv}
+ \violinplot[%
+ index=LifeExpectancyAtBirthMale,
+ relative position=12,
+ color=malecolor,
+ label={EUR},
+ col sep=comma,
+ invert=true
+ ]{EUR.csv}
+ \violinplot[%
+ index=LifeExpectancyAtBirthFemale,
+ relative position=12,
+ color=femalecolor,
+ label={},
+ col sep=comma,
+ ]{EUR.csv}
+ \begin{axis}[
+ xmin=0,xmax=14,
+ ymin=30,ymax=100,
+ ]
+ \draw(axis cs:2,35) node[anchor=east] {\male};
+ \draw(axis cs:2,35) node[anchor=west] {\female};
+ \draw(axis cs:4,35) node[anchor=east] {\male};
+ \draw(axis cs:4,35) node[anchor=west] {\female};
+ \draw(axis cs:6,35) node[anchor=east] {\male};
+ \draw(axis cs:6,35) node[anchor=west] {\female};
+ \draw(axis cs:8,35) node[anchor=east] {\male};
+ \draw(axis cs:8,35) node[anchor=west] {\female};
+ \draw(axis cs:10,35) node[anchor=east] {\male};
+ \draw(axis cs:10,35) node[anchor=west] {\female};
+ \draw(axis cs:12,35) node[anchor=east] {\male};
+ \draw(axis cs:12,35) node[anchor=west] {\female};
+ \end{axis}
+\end{tikzpicture}
+\end{minted}
+
+\section{Limitations}
+
+As the math is handled through \TeX, generating the kernel distribution
+estimations is a slow process; therefore, if possible, the number of samples
+should not be very large. Also, each value should not, itself, be too large,
+to avoid ``dimension too large'' errors. In this case, the data should be scaled
+and the tick labels manually corrected.
+
+As each violin plot is rendered in a different \texttt{axis} environment,
+the positions of the axes' labels are not, usually, correct. One should
+set it manually. In the examples, this was accomplished setting the
+vertical/horizontal shift to twice the height of a letter, in the direction
+opposite to the appropriate axis. This approach also leads to another problem:
+using the keys ``height'' or ``width'' won't rescale the plot; one might use,
+before and after the code for the figure, \texttt{\textbackslash pgfplotsset},
+as shown below:
+
+\colorlet{mintedbgtempplotsset}{red!50!blue}
+\colorlet{mintedbgplotsset}{mintedbgtempplotsset!10!white}
+
+\begin{minted}[%
+ escapeinside=||,
+ frame=single,
+ rulecolor=mintedbgplotsset,
+ framesep=10pt,
+ tabsize=4,
+ bgcolor=mintedbgplotsset]{latex}
+\pgfplotsset{height=1.75\linewidth}
+\begin{tikzpicture}
+ \violinsetoptions[
+ |\textit{options for \texttt{tikzviolinplots}}|
+ ]{
+ |\textit{\texttt{pgfplots} options}|
+ }
+ \violinplot[%
+ |\textit{options for data points}|
+ ]{|\textit{filename}|}
+ |...|
+\end{tikzpicture}
+\pgfplotsset{height=0.9\linewidth}
+\end{minted}
+
+For the same reason, the options \texttt{xmin}, \texttt{ymin}, \texttt{xmax}
+and \texttt{ymax} are required; no automatic placement is performed.
+
+\end{document}
diff --git a/macros/latex/contrib/eolang/eolang.dtx b/macros/latex/contrib/eolang/eolang.dtx
index d65c2092bd..f49cc47530 100644
--- a/macros/latex/contrib/eolang/eolang.dtx
+++ b/macros/latex/contrib/eolang/eolang.dtx
@@ -50,7 +50,7 @@
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{eolang}
%<*package>
-[2023-01-22 0.10.0 Formulas and Graphs for EO Programming Language]
+[2023-01-30 0.11.0 Formulas and Graphs for EO Programming Language]
%</package>
%<*driver>
\documentclass{ltxdoc}
@@ -96,8 +96,7 @@
% and later formalized by \citet{kudasov2021}. Here is how you render
% a simple expression:
% \begin{docshot}
-% \documentclass{article}
-% \pagestyle{empty}
+% \documentclass{minimal}
% \usepackage{eolang}
% \begin{document}
% \begin{phiquation*}
@@ -826,7 +825,7 @@ $tex =~ s/([^\\{a-z0-9]|^)Q(?![a-z0-9])/\1\\Phi{}/g;
$tex =~ s/([^\\{a-z0-9]|^)D>/\1\\Delta{}..>/g;
$tex =~ s/([^\\{a-z0-9]|^)L>/\1\\lambda{}..>/g;
$tex =~ s/"([^"]+)"/|"\1"|/g;
-$tex =~ s/(^|(?<=[\s)(\]\[,.>\/]))([a-z][a-z0-9]+)(?=[\s)(\]\[,.-]|$)/|\2|/g;
+$tex =~ s/(^|(?<=[\s)(\]\[,.>\/]))([a-zA-Z][a-z0-9]+)(?=[\s)(\]\[,.-]|$)/|\2|/g;
$tex =~ s/([^^_]|^)([0-9]+|\*)\/(\\?[a-z]+|\|[a-z]+\|)
(->|\.\.>|~>|:=|!->)/\1\\alpha_{\2}\\vert{}\3\\space{}\4/xg;
$tex =~ s/([^^_]|^)([0-9]+|\*)
@@ -863,8 +862,8 @@ if ($macro ne 'phiq') {
}
$tex =~ s/\$/\\xi{}/g;
$tex =~ s/(?<!\{)\^/\\rho{}/g;
-$tex =~ s/\[\[/\\llbracket\\mathrel{}/g;
-$tex =~ s/\]\]/\\mathrel{}\\rrbracket{}/g;
+$tex =~ s/\[\[/\\llbracket\\mathbin{}/g;
+$tex =~ s/\]\]/\\mathbin{}\\rrbracket{}/g;
$tex =~ s/([\s,>(])([0-9A-F]{2}(?:-[0-9A-F]{2})+|
[0-9]+(?:\.[0-9]+)?)(?!\{)/\1|\2|/xg;
$tex =~ s/TRUE/|TRUE|/g;
@@ -872,12 +871,12 @@ $tex =~ s/FALSE/|FALSE|/g;
$tex =~ s/\?/\\varnothing{}/g;
$tex =~ s/@/\\varphi{}/g;
$tex =~ s/-([a-z]+)>/\\mathrel{\\phiSlot{\1}}/g;
-$tex =~ s/!->/\\mathrel{\\phiConst}/g;
-$tex =~ s/->/\\mathrel{\\mapsto}/g;
-$tex =~ s/~>/\\mathrel{\\phiWave}/g;
+$tex =~ s/!->/\\mathbin{\\phiConst}/g;
+$tex =~ s/->/\\mathbin{\\mapsto}/g;
+$tex =~ s/~>/\\mathbin{\\phiWave}/g;
$tex =~ s/:=/\\mathrel{\\vDash}/g;
$tex =~ s/==/\\mathrel{\\equiv}/g;
-$tex =~ s/\.\.>/\\mathrel{\\phiDotted}/g;
+$tex =~ s/\.\.>/\\mathbin{\\phiDotted}/g;
$tex =~ s/<</\\langle/g;
$tex =~ s/>>/\\rangle/g;
$tex =~ s/\|{2,}/|/g;
diff --git a/macros/latex/contrib/eolang/eolang.pdf b/macros/latex/contrib/eolang/eolang.pdf
index 5f74ed44f4..c97623759b 100644
--- a/macros/latex/contrib/eolang/eolang.pdf
+++ b/macros/latex/contrib/eolang/eolang.pdf
Binary files differ
diff --git a/macros/latex/contrib/naive-ebnf/naive-ebnf.dtx b/macros/latex/contrib/naive-ebnf/naive-ebnf.dtx
index 6213cf6d52..cdd047a30f 100644
--- a/macros/latex/contrib/naive-ebnf/naive-ebnf.dtx
+++ b/macros/latex/contrib/naive-ebnf/naive-ebnf.dtx
@@ -50,7 +50,7 @@
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{naive-ebnf}
%<*package>
-[2023-01-29 0.0.2 EBNF in Plain Text]
+[2023-01-30 0.0.3 EBNF in Plain Text]
%</package>
%<*driver>
\documentclass{ltxdoc}
@@ -81,7 +81,7 @@
%
% \section{Introduction}
%
-% This package helps render a
+% This package helps render an
% \href{https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form}{Extended Backus-Naur Form}
% using plain text notation:
% \begin{docshot}
@@ -97,6 +97,8 @@
% \end{document}
% \end{docshot}
+% \DescribeMacro{ebnf}
+% The |ebnf| environment \emph{doesn't} add any formatting to the paragraph, but only replaces the plain text symbols, such as ``|:=|'' and ``|<Var>|'' with proper \LaTeX{} commands.
% The following syntax is understood inside the |ebnf| environment:
% \begin{itemize}
% \item |:=| separates the left-hand side from the right-hand side of the production rule;
@@ -133,6 +135,19 @@
% with \terminal{)}.
% \end{document}
% \end{docshot}
+% It's possible to use them in math-mode too, for example:
+% \docshotOptions{firstline=6,lastline=8}
+% \begin{docshot}
+% \documentclass{article}
+% \pagestyle{empty}
+% \usepackage[paperwidth=3in]{geometry}
+% \usepackage{naive-ebnf}
+% \begin{document}
+% If $\terminal{(} f_1 \nonterminal{Var}
+% \terminal{)}$ is always true, then
+% $f_1$ is a tautology.
+% \end{document}
+% \end{docshot}
% \section{Package Options}
@@ -187,12 +202,15 @@
% \begin{macro}{\terminal}
% \changes{0.0.2}{2023/01/29}{New command \texttt{\char`\\terminal} added, to enable rendering terminal symbols outside of the \texttt{ebnf} environment.}
+% \changes{0.0.3}{2023/01/30}{Quotes fixed in both text and math modes.}
% Then, we a command to render a single terminal:
% \begin{macrocode}
\makeatletter
-\newcommand\terminal[1]{%
+\newcommand\terminal[1]{{%
\relax\ifmmode\else\ttfamily\fi%
- \ebnf@color{gray}{"}#1\ebnf@color{gray}{"}}
+ \ebnf@color{gray}{\relax\ifmmode\textsf{``}\else{\sffamily``}\fi}%
+ #1%
+ \ebnf@color{gray}{\relax\ifmmode\textsf{''}\else{\sffamily''}\fi}}}
\makeatother
% \end{macrocode}
% \end{macro}
@@ -202,8 +220,10 @@
% Then, we a command to render a single non-terminal:
% \begin{macrocode}
\makeatletter
-\newcommand\nonterminal[1]
- {\(\ebnf@color{gray}{\langle}\textsf{#1}\ebnf@color{gray}{\rangle}\)}
+\newcommand\nonterminal[1]{%
+ \ebnf@color{gray}{\relax\ifmmode\langle\else\(\langle\)\fi}%
+ \relax\ifmmode\textsf{#1}\else{\sffamily#1}\fi%
+ \ebnf@color{gray}{\relax\ifmmode\rangle\else\(\rangle\)\fi}}
\makeatother
% \end{macrocode}
% \end{macro}
diff --git a/macros/latex/contrib/naive-ebnf/naive-ebnf.pdf b/macros/latex/contrib/naive-ebnf/naive-ebnf.pdf
index fdf6d14f90..cfb0270b4c 100644
--- a/macros/latex/contrib/naive-ebnf/naive-ebnf.pdf
+++ b/macros/latex/contrib/naive-ebnf/naive-ebnf.pdf
Binary files differ
diff --git a/macros/latex/contrib/pseudo/LICENSE b/macros/latex/contrib/pseudo/LICENSE
index f0b6409bee..b0f5b7852d 100644
--- a/macros/latex/contrib/pseudo/LICENSE
+++ b/macros/latex/contrib/pseudo/LICENSE
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) 2019-2022 Magnus Lie Hetland
+Copyright (c) 2019-2023 Magnus Lie Hetland
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/macros/latex/contrib/pseudo/Makefile b/macros/latex/contrib/pseudo/Makefile
index b8b64dcd5e..309974597c 100644
--- a/macros/latex/contrib/pseudo/Makefile
+++ b/macros/latex/contrib/pseudo/Makefile
@@ -2,7 +2,7 @@ TARGETS=doc/pseudo.pdf doc/fig/readmefig.svg
LATEX=latexmk -norc -pdf -auxdir=build -outdir=build
FIGS=build/hilitefig.pdf build/pausefig.pdf build/kwfig.pdf
-TESTS=build/pseudotest.pdf
+TESTS=build/pseudotest.pdf build/beamertest.pdf
all: $(TARGETS)
@@ -27,6 +27,9 @@ build/kwfig.pdf: doc/fig/kwfig.tex pseudo.sty
build/pseudotest.pdf: test/pseudotest.tex pseudo.sty
$(LATEX) $<
+build/beamertest.pdf: test/beamertest.tex pseudo.sty
+ $(LATEX) $<
+
pseudo.sty: VERSION LICENSE doc/pseudo.tex
cat LICENSE | sed -e "s/^/% /" | sed -e "s/^% \$$/%/" > pseudo.sty
echo "%" >> pseudo.sty
diff --git a/macros/latex/contrib/pseudo/VERSION b/macros/latex/contrib/pseudo/VERSION
index 6085e94650..23aa839063 100644
--- a/macros/latex/contrib/pseudo/VERSION
+++ b/macros/latex/contrib/pseudo/VERSION
@@ -1 +1 @@
-1.2.1
+1.2.2
diff --git a/macros/latex/contrib/pseudo/doc/pseudo.pdf b/macros/latex/contrib/pseudo/doc/pseudo.pdf
index 920266e118..30721c9667 100644
--- a/macros/latex/contrib/pseudo/doc/pseudo.pdf
+++ b/macros/latex/contrib/pseudo/doc/pseudo.pdf
Binary files differ
diff --git a/macros/latex/contrib/pseudo/doc/pseudo.tex b/macros/latex/contrib/pseudo/doc/pseudo.tex
index 21e640267c..562de5f6fa 100644
--- a/macros/latex/contrib/pseudo/doc/pseudo.tex
+++ b/macros/latex/contrib/pseudo/doc/pseudo.tex
@@ -1,4 +1,22 @@
-\documentclass[a4paper]{article}
+\documentclass[a4paper]{book}
+
+% Using geometry.sty to have equal margins, despite twoside option. It will
+% normally change the margins quite a bit; the following produces something
+% close to normal LaTeX layout -- it just increases \topmargin by 2pt:
+\usepackage[textwidth=345pt,textheight=598pt,centering]{geometry}
+\usepackage{fancyhdr}
+\pagestyle{fancy}
+
+\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
+\renewcommand{\sectionmark}[1]{\markright{\thesection\enskip#1}}
+\fancyhf{}
+\fancyhead[LE,RO]{\thepage}
+\fancyhead[LO]{\nouppercase{\textit{\rightmark}}}
+\fancyhead[RE]{\nouppercase{\textit{\leftmark}}}
+% \def\headrulewidth{0pt}
+
+\usepackage{abspos}
+\usepackage{xcoffins}
\usepackage[inline]{enumitem}
@@ -7,6 +25,8 @@
label=\mbox{\rm($\roman*$)},
}
+\usepackage[prefix=s]{xcolor-solarized}
+
\usepackage{tabularx}
\usepackage{tabto}
@@ -137,6 +157,11 @@
\codefont{ \l_tmpa_tl }
}
+% https://tex.stackexchange.com/a/44362/18003
+\DeclareTextFontCommand \hyphencodefont {
+ \ttfamily \hyphenchar \font=45 \relax
+}
+
\ExplSyntaxOff
\makeatother
@@ -147,7 +172,9 @@
\NewDocumentCommand \shortcutted { m m } {%
If some package defines \cs{#1} before \pkg{pseudo} is loaded, \pkg{pseudo}
- will not overwrite it. The command will still be available, as \cs{#2}.%
+ will not overwrite it. The command will still be available, as \cs{#2}. To
+ get the shorter version, simply use \code{\cs{let}\cs{#1}\cs{#2}}, possibly
+ as part of the \refk{init} hook.%
}
\NewDocumentCommand \pseudoshortcutted { m } {%
@@ -293,6 +320,49 @@
#1
}
+\tcbset{
+ infobox/.style = {
+ pseudo/filled,
+ colback = black!4,
+ colbacktitle = black!4,
+ % coltitle = black!65,
+ top = 9pt,
+ bottom = 8pt,
+ right= 10pt,
+ left= 9pt,
+ },
+ admonition/.style = {
+ infobox,
+ borderline west = {2.5pt}{0pt}{black!25},
+ leftrule = 2.5pt, % spacing
+ before title = {},
+ after title = {},
+ attach title to upper,
+ beforeafter skip balanced = 6.0pt plus 3.0pt minus 1.5pt,
+ },
+ sidebar/.style = {
+ infobox,
+ float,
+ colback = white,
+ colbacktitle = white,
+ boxrule = \lightrulewidth,
+ borderline = {\lightrulewidth}{0pt}{black},
+ toptitle = 8pt,
+ top = 5pt,
+ fonttitle = \centering\bfseries\large,
+ }
+}
+
+\DeclareTColorBox {note} { } {
+ admonition,
+ % title = {Note:\enskip}
+}
+
+\DeclareTColorBox {sidebar} { m } {
+ sidebar,
+ title = {#1},
+}
+
\def\refc{\refCom*}
\def\refe{\refEnv*}
\def\refk{\refKey*}
@@ -360,9 +430,8 @@
}
-\NewDocumentCommand \Abstract { } {
- \begin{abstract}
+\NewDocumentCommand \Abstract { } {
\ior_open:Nn \g_tmpa_ior {README.md}
@@ -394,15 +463,13 @@
\regex_replace_all:nnN
{` ( \w+ ) `}
- { \c{code} \cB{ \1 \cE} } \g_tmpa_tl
+ { \c{hyphencodefont} \cB{ \1 \cE} } \g_tmpa_tl
+ % { \c{code} \cB{ \1 \cE} } \g_tmpa_tl
- \noindent
\tl_use:N \g_tmpa_tl
\ior_close:N \g_tmpa_ior
- \end{abstract}
-
}
\ExplSyntaxOff
@@ -428,7 +495,7 @@
% \NoIndentAfterEnv{source}
\newtcbtheorem[
- number within = section,
+ number within = chapter,
crefname = {Algorithm}{algorithms}
]%
{algorithm}{Algorithm}{pseudo/ruled}{alg}
@@ -443,11 +510,78 @@
\usepackage{ellipsis}
\begin{document}
-\maketitle
-\Abstract
-\section{Introduction}
+\makeatletter
+{\colorlet{scol}{black!15}%
+\def\ssep{\hspace{.5em}\color{scol}}%
+\absput[scale=4.5]{
+ \tcbox[
+ pseudo/boxruled,
+ before upper={}, % bc/o restricted horizontal mode
+ after upper={}, % -- " --
+ title={pseudo \pseudoversion}]
+ {%
+ \begin{pseudo}[hsep=.5em, label=\color{sred}\arabic*]
+ \rlap{straight-}\phantom{pseudocode}\ssep\code{\bslash\bslash+}\\
+ \phantom{pseudocode}\llap{forward}\ssep\code{\bslash\bslash-}\\
+ pseudocode\ssep\code{\bslash\bslash}
+ \end{pseudo}%
+ }
+}}
+\makeatother
+
+\pagenumbering{roman}
+\pagestyle{empty}
+\pagecolor{black!4}
+\null
+\clearpage
+\null\vfill
+{\small
+\makeatletter
+\noindent
+Copyright\enskip\copyright\enskip\@author\enskip2019--\the\year
+\makeatother
+
+\medskip\noindent
+\Abstract}
+\clearpage
+\nopagecolor
+
+\pagenumbering{arabic}
+
+\begin{titlepage}
+\makeatletter
+\null
+\begin{center}
+
+\null
+\vfill
+
+\Huge
+\@title
+
+\vspace{\baselineskip}
+
+\LARGE
+\@author
+
+\vspace{\baselineskip}
+
+\LARGE
+\@date
+
+\vfill
+
+\end{center}
+\makeatother
+\end{titlepage}
+
+\tableofcontents
+
+\pagestyle{fancy}
+
+\chapter{Introduction}
The \pkg{pseudo} package lets you typeset pseudocode in a straightforward and
not all too opinionated manner. You don't need to use separate commands for
@@ -505,7 +639,7 @@ The running time is quadratic in the number of bits in the input.
\end{algorithm}
}
-\subsection*{Microtutorial: How to produce \cref{alg:euclid}}
+\section*{Microtutorial: How to produce \cref{alg:euclid}}
The pseudocode in \cref{alg:euclid} is typeset in the same way as on
\vpageref{p:intro-euclid}. The line numbers are styled using the \refk{label}
@@ -521,12 +655,13 @@ command and its relatives (as well as most other functionality) are discussed in
\cref{sec:overview}, with individual definitions given in
\cref{sec:reference}.\footnote{The actual implementations, with explanations,
are found in \cref{sec:impl}.} The input and output descriptions are aligned
-using \cs{tab} from the \pkg{tabto} package (cf.\@ \cref{sec:tabstops}).
+using \cs{tab} from the \pkg{tabto} package (cf.\@
+\cref{sec:tabstops}).
\begin{texexp}[listing]
% In document preamble:
% \usepackage{tabto}
-% \TabPositions{1.5cm}
+% \TabPositions{1.5cm} % Adjust as needed!
\begin{algorithm}{Euclid's algorithm, \pr{Euclid}(a, b)}{euclid}
@@ -547,7 +682,15 @@ The running time is quadratic in the number of bits in the input.
\end{algorithm}
\end{texexp}
-\subsection*{Alternatives}
+\begin{note}
+With a different font, ``\textb{Output:}''\ may take up more space, and
+\cs{tabto} might just introduce a line break. If so, simply increase the
+argument to \cs{TabPositions}. To produce an indent right after a line break
+(\cs{\bslash})---e.g., if you want multiline input/output---use
+\cs{null}\cs{tab}.
+\end{note}
+
+\section*{Alternatives}
There are many ways of typesetting code and pseudocode in \LaTeX, so if you're
unhappy with \pkg{pseudo}, you have several alternatives to choose from. I
@@ -598,7 +741,7 @@ There are also code-typesetting packages like
\pkg[https://ctan.org/tex-archive/macros/latex/contrib/listings]{listings} and
\pkg{minted}, of course.
-\subsection*{Using older \TeX\ distributions}
+\section*{Using older \TeX\ distributions}
The imlementation of \pkg{pseudo} uses some functionality that isn't available
in older \TeX\ distributions, in particular, older versions of \pkg{xparse} and
@@ -610,20 +753,24 @@ else (e.g., when submitting to some publisher with a custom setup), feel free to
\href{https://github.com/mlhetland/pseudo.sty/pulls}{provide a pull request}
with a fix. One thing to look out for is that older versions of \pkg{xparse}
parse arguments differently, so things like
-\begin{texexp}[listing]
-foo\\<1>
-bar\\[hl]
-\end{texexp}
+\code{\cs{\bslash}[hl]}
+% \begin{texexp}[listing]
+% foo\\<1>
+% bar\\[hl]
+% \end{texexp}
would work, but separating the arguments with spaces, as in
-\begin{texexp}[listing]
-foo\\ <1>
-bar\\ [hl]
-\end{texexp}
+% \begin{texexp}[listing]
+% foo\\ <1>
+% bar\\ [hl]
+% \end{texexp}
+\code*{\cs{\bslash} [hl]}
will \emph{not} work, though this works with more recent versions (as seen
-from some of my examples, later). For more advice on working around an older
-distribution, see also \cref{sec:older}.
+from some of my examples, later).
+\begin{note}
+For more advice on working around an older distribution, see \cref{sec:older}.
+\end{note}
-\section{Overview}
+\chapter{Pseudocode}
\label{sec:overview}
The main component of the \pkg{pseudo} package is the \refe{pseudo}
@@ -643,16 +790,8 @@ repeat the following while $a\neq b$ \\+
\end{pseudo}
\end{texexp}
+% \medskip
\noindent
-Spacing is handled similarly to in \LaTeX\ lists, with \cs{topsep} and
-\cs{parskip} added before and after, as well as \cs{partopsep} whenever the
-environment starts a new paragraph. The left margin (how much the pseudocode
-is indented wrt.\ the surrounding text) is set by the \refk{left-margin} key
-(initially \code{0pt}).\footnote{If \refe{pseudo} occurs in a box such as
-\code{fbox}, or a \pkg[https://ctan.org/pkg/pgf]{tikz} node, this spacing is
-dropped. See also the \refk{compact} key for overriding this behavior.}
-
-\medskip\noindent
There are also some styling commands for special elements of the pseudocode:
\begin{texexp}
@@ -670,6 +809,18 @@ the more convenient short forms (\refc{kw}, \refc{cn}, etc.)\@ are prone to
name collisions, and are only defined if the names are not already in use when
\pkg{pseudo} is imported.
+Spacing is handled similarly to in \LaTeX\ lists, with \cs{topsep} and
+\cs{parskip} added before and after, as well as \cs{partopsep} whenever the
+environment starts a new paragraph. The left margin (how much the pseudocode
+is indented wrt.\ the surrounding text) is set by the \refk{left-margin} key
+(initially \code{0pt}).
+
+\begin{note}
+If \refe{pseudo} occurs in a box such as \code{fbox}, or
+a \pkg[https://ctan.org/pkg/pgf]{tikz} node, this spacing is dropped. See also
+the \refk{compact} key for overriding this behavior.
+\end{note}
+
The \refk{indent-length} option, which determines the length of each
indentation step, is initially set via the secondary \refk{indent-text} key,
so that the any code after \code{\cs{kw}\braces{else}} aligns with the
@@ -767,11 +918,13 @@ You can also configure the quotes and comment markers:
\kw{print} \st{Hello, world!} \quad \ct{Greeting}
\end{pseudo}
\end{texexp}
-%
+
+\begin{note}
Note that \cs{stfont} and friends may either be font-switching commands like
\cs{itshape} or formatting commands like \cs{textit}, though the latter are
generally preferable when available. They need not be restricted to actual
fonts, but may include color commands, for example.
+\end{note}
You can also set the font for the entire code lines, using the \refk{font}
option. The command you provide there should just switch the font (i.e., not
@@ -824,17 +977,39 @@ The code is normally typeset in a two-column \code{tabular} (whose preamble,
and thus number of columns, is configurable via the option \refk{preamble}),
but the first column is handled by an automatic \refk{prefix} inserted before
each line, containing the numbering and column separator (\code{\&}). You
-disable the prefix for the following line by using \code{\refc{\bslash}*}:
+disable the prefix for the following line by using \code{\refc{\bslash}*}. If
+you add the \code{\&} manually, you get an (appropriately indented) unnumbered
+line:
\begin{texexp}
\begin{pseudo}
- this line has an automatic prefix \\+*
-& this line does not \\+
+ this line has an automatic prefix \\+*&
+ this line does not \\+
but this one does
\end{pseudo}
\end{texexp}
\noindent
+The \code{\cs{\bslash}*\&} combo can also be used for manual line breaking in
+multiline pseudocode steps:
+
+\begin{texexp}
+\begin{pseudo}[indent-mark]
+Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
+nonumy \\*& eirmod tempor invidunt ut labore et dolore magna
+aliquyam erat. \\+
+At vero eos et accusam et justo duo dolores et ea rebum. Stet
+clita \\*& kasd gubergren, no sea takimata sanctus est Lorem ipsum
+dolor.
+\end{pseudo}
+\end{texexp}
+
+\begin{note}
+Automatic line wrapping is a bit trickier. See \cref{sec:multiline} for a
+discussion.
+\end{note}
+
+\noindent
This star also works after \code{\cs{begin}\braces{pseudo}}. Note that in
order to prevent your code from ending up in the numbering column, you must
insert a column separator manually. A version of the \refc{pr} command, called
@@ -852,14 +1027,57 @@ if $b \== 0$ \\+
\end{pseudo}
\end{texexp}
-\noindent
-As can be seen in this example, \cs{==} (or \refc{eqs}) is a notational
-convenience defined by \pkg{pseudo}, along with interval dots \cs{..}\@ (or
-\refc{dts}) and the alternative range operator \refc{rng}:
+\begin{note}
+The \refc{hd} command is less capable than \refc{pr} and \refc{fn} in its
+argument parsing: the parenthetical arguments are mandatory, and they are
+terminated at the first closing parenthesis, regardless of nesting. If you want
+to include parentheses in the arguments, you need to wrap them in braces, e.g.,
+\code{\cs{hd}\braces{Traverse}(\braces{G=(V, E), s})}.
+\end{note}
+
+Another style is to include the header as a statement, just as any other,
+perhaps with an introductory keyword. The following example, for example, is
+based on one in the \pkg{algxpar} documentation (using \refe{pseudo*} to
+suppress line numbering, along with a couple of config keys):
+
+{\def\bf{\fontseries{bx}\selectfont}
+\begin{texexp}
+\begin{pseudo*}[font=\bf, indent-length=1.5em]
+function \pr{Max}(a, b) \\+
+ if $a > b$ then \\+
+ return $a$ \\-
+ else \\+
+ return $b$ \\-
+ end if \\-
+end function
+\end{pseudo*}
+\end{texexp}}
+
+As can be seen in the earlier \pr{Euclid} example, \cs{==} (or \refc{eqs}) is
+a notational convenience defined by \pkg{pseudo}, along with interval dots
+\cs{..}\@ (or \refc{dts}) and the alternative range operator \refc{rng}:
\begin{texexp}
Do you prefer $A[1 \.. n]$ or $A[1 \rng n]$?
\end{texexp}
+\begin{sidebar}{Shortcuts for \cs{rng}}
+The \refc{..} command is actually implemented by hijacking the \cs{.} command,
+and isn't easily redefined directly. Instead, if you want \code{1\refc{..}n} to
+produce $1\rng n$, you can redefine \refc{dts}, using
+\code{\cs{let}\refc{dts}\refc{rng}}.
+
+Another option is to introduce some other shortcut, such as \cs{:}, for example:
+\begin{texexp}
+\let\:\rng
+$A[1\:n]$
+\end{texexp}
+Note that \cs{:} is an existing spacing command that produces a medium space. If
+\cs{:} is redefined, this spacing command is still available as \cs{>}. However,
+if you use packages that rely on \cs{:}, such a redefinition might cause
+trouble. One solution is to keep the redefinition local, e.g., using
+\code{\refc{pseudoset}\braces{\refk{init}=\cs{let}\cs{:}\refc{rng}}}.
+\end{sidebar}
+
\noindent
Other special symbols may be found in other packages. For example, if you want
to use $\coloneqq$ for assignment, you can use \cs{coloneqq} from
@@ -904,11 +1122,11 @@ We're using something custom! \label{custom-line}
\end{texexp}
\noindent
-Note that if I refer to the labeled line with \cs{ref}, I'll just end up with
-\ref{custom-line}, which is probably what I'd want in this case. If you want a
-custom reference format as well, you can set that with the \refk{ref} key, in
-the same way as with \refk{label}. If you use the key without arguments, it'll
-use the same format as the one provided to \refk{label}:
+Note that if you refer to the labeled line with \cs{ref}, you'll just end up
+with \ref{custom-line}, which is probably what you'd want in this case. If you
+want a custom reference format as well, you can set that with the \refk{ref}
+key, in the same way as with \refk{label}. If you use the key without arguments,
+it'll use the same format as the one provided to \refk{label}:
\begin{texexp}
\pseudoset{label=(\textit{\roman*}), label-align=l, ref}
@@ -938,7 +1156,7 @@ I'm not highlighted \\[hl]
But I am!
\end{pseudo*}
\end{texexp}
-}
+}%
%
Initially, the \refc{pseudohl} command that is inserted is simply a
\cs{rowcolor} that uses \refk{hl-color}, but you're free to redefine this
@@ -950,11 +1168,17 @@ pseudocode aligned with the surrounding text. However, when using row
highlighting (e.g., because you are stepping through the code in some
presentation), that alignment may be less of an issue---and you'd rather widen
the highlight a bit. The horizontal padding on each side is controlled by the
-\refk{hpad} key.\footnote{In fact, if you use \refk{hl} without \refk{hpad},
-you'll get a warning. You can turn this warning off using \refk{hl-warn}, or by,
-e.g., setting \refk{hpad} to \code{0pt}.} You can either specify a length, or
-just turn on the default, by not supplying an argument. There's a similar
-option, \refk{hsep}, which controls the separation between the two columns.
+\refk{hpad} key.
+
+\begin{note}
+If you use \refk{hl} without \refk{hpad}, you'll get a warning. You can turn
+this warning off using \refk{hl-warn} or by setting \refk{hpad} to \code{0pt}.
+\end{note}
+
+\noindent
+You can either specify a length, or just turn on the default, by not supplying
+an argument. There's a similar option, \refk{hsep}, which controls the
+separation between the two columns.
\begin{texexp}
\begin{pseudo}[hpad, hsep=1em, indent-length=1em]
@@ -974,9 +1198,20 @@ is simply ignored.
What is more, the row separator \emph{itself} takes an overlay specification
as a shortcut for the one on \refk{hl}, so \code{\refc{\bslash}<1,2-4>} is
-equivalent to \code{\refc{\bslash}[\refk{hl}<1,2-4>]}. Just like with the
-optional arguments, space before the overlay specification is ignored, so
-you're free to put the specification in front of the line in question:
+equivalent to \code{\refc{\bslash}[\refk{hl}<1,2-4>]}.
+
+\begin{note}
+Actually, explicitly using \code{\refk{hl}<1,2-4>} wouldn't work! The problem is
+that the key--value lists are split at commas before individual keys (including
+overlay specifications) are parsed. And unlike values, using braces to
+``protect'' the keys isn't entirely straightforward. The solution is instead to
+use the key multiple times, as in
+\code{\refc{\bslash}[\refk{hl}<1>, \refk{hl}<2-4>]}.
+\end{note}
+
+Just like with the optional arguments, space before the overlay specification is
+ignored, so you're free to put the specification in front of the line in
+question:
\medskip
@@ -1018,7 +1253,7 @@ purpose (equivalent to \code*{\refk{eol-append} = \cs{pause}}):
\includegraphics[page=1]{pausefig.pdf}\hfill
\includegraphics[page=2]{pausefig.pdf}\hfill
\includegraphics[page=3]{pausefig.pdf}\hfill
-\includegraphics[page=4]{pausefig.pdf}
+\includegraphics[page=4]{pausefig.pdf}\qquad\null
\vspace{-4pt}
@@ -1038,6 +1273,15 @@ The \refk{eol} value is only inserted wherever \refc{\bslash} starts a new
line (i.e., not at the end of the environment), so in this case only three
\cs{pause} commands are inserted.
+\begin{note}
+ The last \refc{\bslash} looks for an immediately following
+ \code{\cs{end}\braces{pseudo}}, after skipping any non-paragraph whitespace,
+ so if you insert anything between the the \refc{\bslash} and
+ \code{\cs{end}\braces{pseudo}}, even if it's just an empty line (i.e., a
+ \cs{par}), you'll end up with an extra (empty) line in the result. Note,
+ however, that the last \refc{\bslash} is entirely optional!
+\end{note}
+
The previously discussed configuration keys are described in more detail in
\cref{sec:reference}. You can create your own presets or \emph{styles} using
\refc{pseudodefinestyle}. This command takes two arguments; the first is the
@@ -1059,9 +1303,21 @@ unnumbered version of the \refe{pseudo} environment:
\end{texexp}
}
-\section{Boxes and floats}
+\chapter{Boxes and floats}
\label{sec:floats}
+\begin{sidebar}{The short story}
+First import \pkg{tcolorbox}, with
+libraries \code{skins} and \code{theorems} (see nearby sidebar), and then put
+the following in your preamble:
+\begin{texexp}[listing]
+\newtcbtheorem{algorithm}{Algorithm}{pseudo/ruled, float}{alg}
+\end{texexp}
+You now have an \code{algorithm} float with the \code{pseudo/ruled} style. The
+environment takes two arguments: the title and a label name, which can be left
+empty.
+\end{sidebar}
+
There are (at least) two different ways of viewing a block of pseudocode: as
an inline element, like equations, or as a float, like figures and tables. For
example, \citet{Cormen:2009} place their pseudocode inline, and refer to the
@@ -1082,23 +1338,27 @@ you could do a quick \href{https://ctan.org}{\textsc{ctan}} search for
the \pkg[https://ctan.org/tex-archive/macros/latex/contrib/float]{float}
package, will give you many options, with varying functionality.} You could also
use the float environments supplied with packages such as \pkg{algorithms},
-\pkg{algorithmicx} and \pkg{algorithm2e}.\footnote{The definition of \refc{==}
-doesn't properly carry over into floats. It's properly redefined inside
-\refe{pseudo}, so you probably won't notice, but if you wish to use the symbol
-outside the \refe{pseudo} environment, but in a float (e.g., inside
-\cs{caption}), you'll need to either call \refc{RestorePseudoEq} to
-re-establish \pkg{pseudo}'s redefinition of \cs{=} or simply use \refc{eqs}
-instead of \refc{==}.}
+\pkg{algorithmicx} and \pkg{algorithm2e}.
+
+\begin{note}
+The definition of \refc{==} doesn't properly carry over into floats. It's
+properly redefined inside \refe{pseudo}, so you probably won't notice, but if
+you wish to use the symbol outside the \refe{pseudo} environment, but in a float
+(e.g., inside \cs{caption}), you'll need to either call \refc{RestorePseudoEq}
+to re-establish \pkg{pseudo}'s redefinition of \cs{=} or simply use \refc{eqs}
+instead of \refc{==}.
+\end{note}
+\noindent
The \pkg{pseudo} package does provide some specialized setup,
however, using \pkg{tcolorbox}. This also lets you typeset non-float pseudocode
with a colored background, for example, like \citeauthor{Cormen:2022} do in the
most recent version of their textbook~\citep{Cormen:2022}.
-
-\medskip\noindent
-\textb{Note:} For performance reasons, \pkg{pseudo} does \emph{not}
-automatically import \pkg{tcolorbox}; if you want to use the float
-functionality, you will need to import \pkg{tcolorbox} yourself:
+%
+\begin{sidebar}{Importing \pkg{tcolorbox}}
+For performance reasons, \pkg{pseudo} does \emph{not} automatically import
+\pkg{tcolorbox}; if you want to use the box functionality, you will need to
+import it yourself:
\begin{texexp}[listing]
\usepackage{pseudo}
% ...
@@ -1108,7 +1368,8 @@ functionality, you will need to import \pkg{tcolorbox} yourself:
It does not matter whether you import
\pkg{tcolorbox} before or after \pkg{pseudo}, but make sure you also import the
two libraries \code{skins} and \code{theorems}, as in the example above.
-
+\end{sidebar}
+%
The styles defined by \pkg{pseudo} are versions of the commonly used
\emph{boxed} and \emph{ruled} styles, as found in, e.g.,
\pkg[https://ctan.org/tex-archive/macros/latex/contrib/float]{float}, as well as
@@ -1191,7 +1452,7 @@ effect.}
% Actual definition in preamble (so crefname works)
\begin{texexp}[listing]
\newtcbtheorem[
- number within = section,
+ number within = chapter,
crefname = {Algorithm}{algorithms}
]%
{algorithm}{Algorithm}{pseudo/ruled, float}{alg}
@@ -1344,8 +1605,19 @@ The running time of the algorithm is quadratic.
\end{texexp}
}
+\begin{sidebar}{Why only styles?}
+Currently, \pkg{pseudo} defines only \pkg{tcolorbox} \emph{styles}, and not any
+actual boxes or theorem-style environments. While this may change in the future,
+it has a couple of advantages. First, the style definitions aren't dependent on
+\pkg{tcolorbox} being imported, making it entirely optional. Second, when
+defining the box or theorem environment, you can easily configure the counter
+style, counter level, etc., through the normal \pkg{tcolorbox} mechanisms.
+Similar customization mechanisms would have to be defined, anyway, and there is
+no real point in aliasing them, rather than simply using the originals.
+\end{sidebar}
-\section{Reference}
+
+\chapter{Reference}
\label{sec:reference}
This section gives an overview of all the moving parts of the package. A
@@ -1356,7 +1628,7 @@ at the point where \pkg{pseudo} is imported. Several commands (such as, e.g.,
\refk{prefix}). When the behavior of such commands is described, the description
references their initial behavior.
-\subsection{Line structure}
+\section{Line structure}
\label{sec:linestructure}
Each line of a \refe{pseudo} environment is (initially) structured as follows:
@@ -1483,7 +1755,7 @@ appropriate options (e.g., \refk{prefix} and \refk{setup}).
not insert \refk{eol} and does not start a new line).
\end{description}
-\subsection{Command and key reference}
+\section{Command and key reference}
\label{sec:cmdandkeyref}
In addition to descriptions of the various commands and options/keys (in
@@ -2027,7 +2299,21 @@ We're not in math mode, but the argument of \Ln[A] is.
The \refk{hd-space} key can be used to configure \refc{hd} so it sets the
\refk{extra-space} key. Note that the signature arguments are mandatory; in
order to function properly, \cs{hd} must be \emph{expandable}, and therefore
- cannot end with an optional argument, the way \refc{pr} does.
+ cannot end with an optional argument, the way \refc{pr} does. Also, it is
+ not able to determine nesting levels of parentheses, so the arguments are
+ terminated upon encountering the first closing parentheses. If you want to
+ use parentheses in the arguments themselves, you must wrap them in braces,
+ or thing will get wonky:
+
+\begin{texexp}
+\begin{pseudo}*
+\hd{Foo}(G=(V, E), w, s) \\*
+\hd{Foo}({G=(V, E), w, s}) \\
+lorem ipsum dolor sit amet, consetetur
+\end{pseudo}
+\end{texexp}
+
+ \noindent
\pseudoshortcutted{hd}
\end{docCommand}
@@ -2137,7 +2423,7 @@ $\textit{foo-bar:baz}$
\refk{indent-text} is used to calculate one the indent length instead.
\end{docKey}
-\begin{docKey}{indent-level}{\,=\,\meta{length}}{no default, initially \code{0}}
+\begin{docKey}{indent-level}{\,=\,\meta{level}}{no default, initially \code{0}}
Sets the current indentation level. This is most usefully set on
\refe{pseudo} environment, in concert with \refk{start}:\footnote{The
\cs{strut} here is just to even out spacing above and below the text,
@@ -2242,6 +2528,22 @@ indent-mark-width=.4pt}
the \refKey*{indent-length} key.
\end{docKey}
+\begin{docKey}{init}{\,=\,\meta{commands}}{\initiallyempty}
+ Used to set the initialization hook, which is inserted at the beginning of
+ the \refe{pseudo} environment (right before the actual tabular environment
+ begins, as defined by \refk{begin-tabular}). See also \refk{init-append} and
+ \refk{init-prepend}.
+\end{docKey}
+
+\begin{docKey}{init-append}{\,=\,\meta{commands}}{no default}
+ Locally appends \meta{commands} to \refk{init}.
+\end{docKey}
+
+\begin{docKey}{init-prepend}{\,=\,\meta{commands}}{no default}
+ Similar to \refk{init-append}, except that \meta{commands} are added to
+ the \emph{beginning} of \refk{init}.
+\end{docKey}
+
\begin{docKey}{kw}{}{\novaluekey}
Sets \refk{font} to \refc{kwfont}.
\end{docKey}
@@ -2315,21 +2617,23 @@ vs.\
font or theme, e.g., with the \pkg{beamer} command
\code{\cs{usefonttheme}\braces{serif}}, you may not have any issues to begin
with.} though only once, as it's suppressed after the first occurrence, so the
- fact that the font selection doesn't work on the last line isn't reported. Note,
- however, that the current implementation of \refc{kwfont} actually
- \emph{piggybacks} on this warning to determine if the non-extended bold is
- available. This means that if you've tried (and failed) to use
- \code{\cs{fontseries}\braces{b}} \emph{before} the fist use of \refc{kwfont},
- the fallback (i.e., extended bold) won't be triggered.
-
- Also note that \refk{indent-text} (which will tend to be the first
- occurrence use of \refc{kwfont}) won't be evaluated (to determine
- \refk{indent-length}) until you actually start a \refe{pseudo}
- environment, so if you're \emph{aware} that you don't have non-extended
- bold available, and you set \code*{\refk{kwfont} = \cs{bfseries}}, for
- example, there will be no attempt to use the non-extended version, and you
- won't get the font warning that the default implementation produces in
- that case.
+ fact that the font selection doesn't work on the last line isn't reported.
+
+ \begin{note}
+ The current implementation of \refc{kwfont} actually \emph{piggybacks} on
+ this warning to determine if the non-extended bold is available. This means
+ that if you've tried (and failed) to use \code{\cs{fontseries}\braces{b}}
+ \emph{before} the fist use of \refc{kwfont}, the fallback (i.e., extended
+ bold) won't be triggered.
+ \end{note}
+
+ Note that \refk{indent-text} (which will tend to be the first occurrence use
+ of \refc{kwfont}) won't be evaluated (to determine \refk{indent-length})
+ until you actually start a \refe{pseudo} environment, so if you're
+ \emph{aware} that you don't have non-extended bold available, and you set
+ \code*{\refk{kwfont} = \cs{bfseries}}, for example, there will be no attempt
+ to use the non-extended version, and you won't get the font warning that the
+ default implementation produces in that case.
\end{docCommand}
\begin{docKey}{label}{\,=\,\meta{commands}}{%
@@ -2348,10 +2652,11 @@ print \st{Hello, label!} \label{li:label} \\
goto \tn{\ref{li:label}}
\end{pseudo}
\end{texexp}
- \noindent
- Note that \cs{label} should be used in the actual code line, as here, and
- not in the number cell (which is generally not explicitly written,
- anyway).
+
+ \begin{note}
+ Make sure to use \cs{label} in the actual code line, as here, and not in the
+ number cell (which is generally not explicitly written, anyway).
+ \end{note}
As can be seen from the example, \cs{ref} is unaffected by
\refKey*{label}, and in many cases that's what you want---as apposed to,
@@ -2398,10 +2703,10 @@ I'm a livin' in a box \\
I'm a livin' in a cardboard box
\end{pseudo*}}
\end{texexp}
-Note that as opposed to \refk{topsep} and \refk{partopsep}, we are \emph{not}
-working with one of the built-in list spacing commands; \cs{leftmargin} has no
-effect on this key (which is why the hyphenated naming style of other keys such
-as \refk{label-align} or \refk{indent-text} is also adopted for
+As opposed to with \refk{topsep} and \refk{partopsep}, we are \emph{not} working
+with one of the built-in list spacing commands; \cs{leftmargin} has no effect on
+this key (which is why the hyphenated naming style of other keys such as
+\refk{label-align} or \refk{indent-text} is also adopted for
\refk{left-margin}).
%
See also \refk{compact}.
@@ -2680,8 +2985,8 @@ dolor sit amet.
environment (so that units like \code{em} and \code{ex} adapt to the
current font). If no \refk{indent-mark} is set, the \cs{pseudoindent}
command then inserts a horizontal space of length
- $\cs{pseudoindentlength}\times\textit{current indent level}$. Otherwise,
- one \refk{indent-mark} and a horizontal space of length
+ $\cs{pseudoindentlength}\times\mkern-1.8mu\textit{current indent level}$.
+ Otherwise, one \refk{indent-mark} and a horizontal space of length
\cs{pseudoindentlength} is inserted for each level of indentation up to the
current indentation level. (This horizontal space is measured from the left
edge of the \refk{indent-mark}.)
@@ -2892,21 +3197,13 @@ See also \refk{indent-level}.
\medskip
\noindent
- If \pkg{beamer} is \emph{not} used, the key is simply ignored. Note that
- because of current limitations on how keys are handled,
- % Cf. https://github.com/latex3/latex3/issues/67
- unknown keys cannot have defaults, and so there is no way to insert a
- marker for when no value is provided, which could be used to determine
- whether to use
- \code*{\refc{pseudoset}\braces{\meta{name} = \meta{value}}}
- or simply
- \code*{\refc{pseudoset}\braces{\meta{name}}}. Instead, if an empty value
- is provided to the unknown key, that is treated in the same way as when
- the key is used
- without a value, resulting in
- \code*{\refc{pseudoset}\braces{\meta{name}}}
- rather than
- \code*{\refc{pseudoset}\braces{\meta{name} = }}.
+ If \pkg{beamer} is \emph{not} used, the key is simply ignored.
+
+ \begin{note}
+ Currently, using commas in the \meta{overlay specification} doesn't
+ work. As a workaround, you can use the key multiple times. That is, rather
+ than \code{\refk{dim}<1,3>}, use \code{\refk{dim}<1>, \refk{dim}<3>}.
+ \end{note}
If an unknown key does \emph{not} take the form of a key with an overlay
specification, a second special case is also handled: If we're processing
@@ -2915,13 +3212,29 @@ See also \refk{indent-level}.
implicit key is \refk{extra-space}. This means that you can specify extra
space in the ordinary way, with \code{\cs{\bslash}[1.5ex]}, etc.
\end{docKey}
-
-\section{But how do I\,\dots}
+\begin{sidebar}{Unknown Keys and Defaults}
+Because of current limitations on how keys are handled,
+% \footnote{\url{https://github.com/latex3/latex3/issues/67}.}
+unknown keys cannot have defaults, and so there is no way to insert a
+marker for when no value is provided, which could be used to determine
+whether to use
+\code*{\refc{pseudoset}\braces{\meta{name} = \meta{value}}}
+or simply
+\code*{\refc{pseudoset}\braces{\meta{name}}}. Instead, if an empty value
+is provided to the unknown key, that is treated in the same way as when
+the key is used
+without a value, resulting in
+\code*{\refc{pseudoset}\braces{\meta{name}}}
+rather than
+\code*{\refc{pseudoset}\braces{\meta{name} = }}.
+\end{sidebar}
+
+\chapter{But how do I\,\dots}
Some functionality is not built in, but is still fairly easy to achieve. Some
streamlining may be added in future versions.
-\subsection{\dots\,prevent paragraph indentation after \code{pseudo}?}
+\section{\dots\,prevent paragraph indentation after \code{pseudo}?}
If you want to keep the pseudocode as part of a surrounding paragraph, you
could have it not start its own, i.e., not have an empty line before it. This
@@ -2961,7 +3274,7 @@ indentation after \emph{all} instances of \refe{pseudo}, you could use the
If you wish to override this, and indent a given paragraph after all, you can
simply use the \cs{indent} command.
-\subsection{\dots\,get log-like functions?}
+\section{\dots\,get log-like functions?}
There's no built-in command for math-roman function names, as used in $\log$
and $\sin$, etc. (other than just setting \refk{fnfont}, if you want it
@@ -2982,7 +3295,7 @@ if $\MyFunc x \== 1$ \\+
The spacing is then correct whether you enclose the arguments in parentheses
or not.
-\subsection{\dots\,unbold punctuation?}
+\section{\dots\,unbold punctuation?}
If you use the \refk{kw} key, all pseudocode not in math mode will end up
using the keyword font (\refc{kwfont}), which initially is bold. Though some
@@ -3037,13 +3350,15 @@ only do it locally, at the very least):
\end{pseudo*}
\end{texexp}
-\subsection{\dots\,use \codefont{tabularx}?}
+\section{\dots\,use \codefont{tabularx}?}
\label{sec:tabularx}
You can use other tabular packages such as \pkg{tabularx} via
\refk{begin-tabular} and \refk{end-tabular}. Let's say, for example, that you
wish to extend the \refe{pseudo} environment to fill out the entire line, and
-set up a new column for comments. You could achieve that as follows:
+set up a new column for comments. You could achieve that as
+follows:\footnote{For an explanation of the use of \code{[t]}, see the
+documentation of the \refk{pos} option.}
\label{p:fullwidth}
\begin{texexp}
@@ -3078,10 +3393,10 @@ column.\footnote{You can also, of course, just use \refc{eqs} instead.}
See the \pkg{tabularx} documentation (page~4) for an explanation of why we can't
use \code{\cs{begin}\braces{tabularx}} and \code{\cs{end}\braces{tabularx}}.
-Also note that because \pkg{tabularx} passes its contents as the argument to a
-macro, the parsing \pkg{pseudo} uses to determine if \refc{\bslash} is at the
-end of the last line doesn't work; if you add \refc{\bslash} at the end here,
-you'll introduce an empty line.
+Also, because \pkg{tabularx} passes its contents as the argument to a macro, the
+parsing \pkg{pseudo} uses to determine if \refc{\bslash} is at the end of the
+last line doesn't work; if you add \refc{\bslash} at the end here, you'll
+introduce an empty line.
\makeatletter
For simplicity, I've used \code{@\braces{}} to remove space on either side.
@@ -3092,7 +3407,7 @@ to use \cs{pseudolabelalign}, rather than \code{r}.
\makeatother
-\subsection{\dots\,get tab stops?}
+\section{\dots\,get tab stops?}
\label{sec:tabstops}
Some packages, such as \pkg{clrscode3e}, use an actual \code{tabbing}
@@ -3166,6 +3481,11 @@ preamble, or you can do it as part of the box setup, e.g.,. using
\cs{newtcbtheorem} (or, as in the following simplified example,
just supply it directly as an option to the box environment).
+If you'd rather not separate the elements of, say, your input description by
+paragraphs, you could of course use line breaks (\cs{\bslash}); however,
+\cs{tab} won't work on its own at the beginning of the next line. To fix this,
+simply add \cs{null} before it (i.e., use \cs{null}\cs{tab}).
+
\begin{texexp}
% In document preamble:
% \usepackage{tabto}
@@ -3181,7 +3501,7 @@ just supply it directly as an option to the box environment).
\tab No negative cycle in $G$ is reachable from $s$
\textbf{Result}
- \tab An matrix $D$ of distances between the vertices in $V$
+ \tab An array $d$ of distances from $s$
\begin{pseudo}
\dots
@@ -3190,7 +3510,7 @@ just supply it directly as an option to the box environment).
\end{texexp}
-\subsection{\dots\,use horizontal lines?}
+\section{\dots\,use horizontal lines?}
\label{sec:horizontallines}
Many opt for a table-like appearance when typesetting algorithms, with
@@ -3202,6 +3522,7 @@ tools such as \pkg{booktabs}, making sure to suppress the \pkg{pseudo}
\refk{prefix} using the star flag (\code{*}):
\begin{texexp}
+% In document preamble:
% \usepackage{booktabs}
\begin{pseudo}*
\toprule
@@ -3226,7 +3547,7 @@ Rather than \code{\cs{\bslash}[bol=\cs{midrule}]}, you could also have used
that the paragraph break between \refc{\bslash} and its argument has been
commented out.)
-\subsection{\dots\,handle object attributes?}
+\section{\dots\,handle object attributes?}
In the \pkg{clrscode3e} package, you'll find an assortment of commands for
handling object attributes such as $A.\id{length}$. The manual says (here with
@@ -3260,7 +3581,7 @@ perhaps using \pkg{microtype}), you may of course do so, but \pkg{pseudo} does
not (at present) include any special attribute lookup commands that do it for
you.
-\subsection{\dots\,indicate blocks with braces or the like?}
+\section{\dots\,indicate blocks with braces or the like?}
Some packages (such as \pkg{algorithm2e}) have support for using vertical lines
to indicate the block structure;
@@ -3348,7 +3669,7 @@ course. This could be done by some hook triggered by the \code{-} flags in
\refc{\bslash}. If it turns out there's a demand for something like that, I
might add it in a future version.
-\subsection{\dots\,use \pkg{pseudo} with older \TeX\ distributions?}
+\section{\dots\,use \pkg{pseudo} with older \TeX\ distributions?}
\label{sec:older}
As mentioned in the introduction, I've tried to make \pkg{pseudo} work with at
@@ -3408,7 +3729,7 @@ Of course, you won't have access to other functionality (such as
of that should be possible to emulate by hand (possibly peeking at the
implementation in \cref{sec:impl}).
-\subsection{\dots\,use a header with no arguments?}
+\section{\dots\,use a header with no arguments?}
Normally, \refc{hd} has a mandatory set of arguments; at the very least,
you'll need to supply the parentheses:
@@ -3434,7 +3755,7 @@ arguments. If you'd like, though, you can just use \cs{multicolumn} yourself
\end{pseudo}
\end{texexp}
-\subsection{\dots\,place algorithm boxes side by side?}
+\section{\dots\,place algorithm boxes side by side?}
In the simplest case, maybe you just want to place two of them side by side in
the text (i.e., not as floats). Let's say you've defined an environment as
@@ -3502,25 +3823,30 @@ package):
\end{figure}
\end{texexp}
-\subsection{\dots\,have steps span multiple lines?}
+\section{\dots\,have steps span multiple lines?}
+\label{sec:multiline}
First of all, you can do this by just breaking your lines manually, keeping any
additional lines belonging to the same step unnumbered, by using the starred
-version of \refc{\bslash} (and skipping the number column with \code{\&}):
-adding unnumbered lines:
+version of \refc{\bslash} and skipping the number column with \code{\&}, adding
+unnumbered lines:
\begin{texexp}
\begin{pseudo}[line-height=1.1]
- This step is broken\,\dots \\*
-& \dots\,into multiple lines \\
+ This step is broken\,\dots \\*&
+ \dots\,into multiple lines \\
This one is not
\end{pseudo}
\end{texexp}
-If you want the line breaking to be automated, you can use a \code{p} column,
-specified in \refk{preamble} (perhaps defining a style using
-\refc{pseudodefinestyle}), adapted from the default:\footnote{The default is
+If you want the line breaking to be automated, \emph{and you don't need
+indentation}, you can use a \code{p} column, specified in \refk{preamble}
+(perhaps defining a style using \refc{pseudodefinestyle}), adapted from the
+default, as in the following.
+\begin{note}
+The default is
found on p.~\pageref{p:preamble}. However, in the source code there, whitespace
-is insignificant. If writing your own preamble, you should avoid spurious
-whitespace inside \code{>\braces{\dots}} and \code{<\braces{\dots}}.}
+is insignificant. In writing your own preamble, you should avoid spurious
+whitespace inside \code{>\braces{\dots}} and \code{<\braces{\dots}}.
+\end{note}
\begin{texexp}
\begin{pseudo}[preamble = {
>{\pseudohpad} \pseudolabelalign
@@ -3539,13 +3865,14 @@ dolor sit amet.
\noindent
In addition to introducing the \code{p} column, I've added \cs{raggedright} to
-the setup (with \refk{setup-append}, with \cs{RestorePseudoBackslash} to restore
-\refc{\bslash}, because \cs{raggedright} redefines it).
+the setup (using \refk{setup-append}, with \cs{RestorePseudoBackslash} to
+restore \refc{\bslash}, because \cs{raggedright} redefines it).
One disadvantage of the \code{p} column is that you need to know its exact
width. A better solution is probably to replace the default \code{tabular} with
a \code{tabularx}, as discussed in \cref{sec:tabularx}, and use an \code{X}
-column, i.e.:
+column, i.e.:\footnote{For an explanation of the use of \code{[t]}, see the
+documentation of the \refk{pos} option.}
\begin{texexp}[listing]
begin-tabular = \tabularx{\linewidth}[t]{
>{\pseudohpad} \pseudolabelalign
@@ -3555,8 +3882,15 @@ column, i.e.:
setup-append = \RestorePseudoEq,
\end{texexp}
+\noindent
+The main problem with this setup is that the automatic line wrapping doesn't
+take indentation into account, i.e., only the first line is indented! While
+there are ways of dealing with this,\footnote{Cf.\
+\url{https://github.com/mlhetland/pseudo.sty/issues/16}.} the simplest solution
+(at least for now) is probably to break lines manually, using
+\code{\cs{\bslash}*\&}.
-\subsection{\dots\,get the old spacing?}
+\section{\dots\,get the old spacing?}
The current version of the \refe{pseudo} environment ensures the spacing above
and below is adjusted, so the baselines of the previous and following lines are
@@ -3568,7 +3902,7 @@ follows:
\end{texexp}
-\subsection{\dots\,configure my \code{tcolorbox}es?}
+\section{\dots\,configure my \code{tcolorbox}es?}
\label{sec:boxconfig}
If you use the \pkg{pseudo} styles for \code{tcolorbox}es (see
@@ -3578,9 +3912,7 @@ system, not that of \pkg{pseudo}, so it's worth consulting the \pkg{tcolorbox}
documentation (and, perhaps, the source of the \pkg{pseudo} box styles, in
\cref{sec:floatsrc}). In the following, I go through some examples of things you
might want to adjust. First, let's define a rather unstyled environment which we
-can modify locally.\footnote{If you want the styling to apply to the environment
-in general, simply insert it as the third argument. See the \pkg{tcolorbox}
-documentation for more about \cs{newtcbtheorem}.}
+can modify locally.
% Duplicated:
\newtcbtheorem{example}{Example}{}{}
@@ -3588,6 +3920,12 @@ documentation for more about \cs{newtcbtheorem}.}
\newtcbtheorem{example}{Example}{}{}
\end{texexp}
+\begin{note}
+If you want the styling to apply to the environment in general, simply insert it
+as the third argument. See the \pkg{tcolorbox} documentation for more about
+\cs{newtcbtheorem}.
+\end{note}
+
\paragraph{A different separator.} By default, the \pkg{pseudo} box styles use
an \cs{enskip} to separate the label part from the description, but you might
want to use something else, such as a colon or a period. You can get this by
@@ -3601,14 +3939,9 @@ using the \code*{separator sign} key:
\paragraph{A different parskip.} You might want more or less spacing between the
paragraphs of any plain text outside your pseudocode. You do this by setting
\cs{parskip}, which is normally set as part of the \code*{before upper} key in
-the \code{pseudo/\dots} styles (see p.~\ref{p:before-upper}). Rather than
+the \code{pseudo/} styles (see p.~\pageref{p:before-upper}). Rather than
overwrite the \code*{before upper} code, you can use the hook \refk{pseudo/init}
(set as part of the \pkg{tcolorbox} configuration, not using \cs{pseudoset}):%
-\footnote{It is possible to use the \pkg{tcolorbox} key \code*{before upper app}
-(together with the \pkg{tcolorbox} library \code{hooks}) instead of
-\refk{pseudo/init}. However, the compatibility code (\cref{sec:compat}) appends
-some spacing to this setup hook, and this may be messed up by inserting more
-code after it. In this case, \refk{pseudo/init} is safer.}
\begin{texexp}
\begin{example}[pseudo/boxed,
pseudo/init = \parskip\baselineskip]{\dots}{}
@@ -3617,6 +3950,14 @@ code after it. In this case, \refk{pseudo/init} is safer.}
is bigger!
\end{example}
\end{texexp}
+\begin{note}
+It is possible to use the \pkg{tcolorbox} key \code*{before upper app}
+(together with the \pkg{tcolorbox} library \code{hooks}) instead of
+\refk{pseudo/init}. However, the compatibility code (\cref{sec:compat}) appends
+some spacing to this setup hook, and this may be messed up by inserting more
+code after it. In this case, \refk{pseudo/init} is safer.
+\end{note}
+
You \emph{could} set \cs{topsep} and \cs{partopsep} in the same manner, but
unless you want to change the settings for lists (such as \code{itemize} and
\code{enumerate}), you could also just set those for pseudocode specifically,
@@ -3635,9 +3976,12 @@ adjust the line widths.
\end{example}
\end{texexp}
The problem with the other ruled or boxed styles is that they use the
-\code{empty} skin, which removes the box drawing.\footnote{The reason they don't
-just set the appropriate line widths to zero is that this generally still
-results in visible hairlines in many PDF viewers.}
+\code{empty} skin, which removes the box drawing.
+\begin{note}
+The reason they don't just set the appropriate line widths to zero is that this
+generally still results in visible hairlines in many PDF viewers.
+\end{note}
+\noindent
They then instead rely on various \code{borderline} commands. These are
cumulative, so if you want to replace some of them, you first need to clear the
deck with \code*{no borderline}, and then re-do them all. For example, maybe you
@@ -3680,7 +4024,7 @@ If you want to style the top and bottom line separately, just use
\code*{borderline north} and \code*{borderline south} separately, rather than
the collective \code*{borderline horizontal}.
-\section{Implementation}
+\chapter{Implementation}
\label{sec:impl}
\lstdefinestyle{tcblatex}{language={[LaTeX]TeX},
@@ -3757,7 +4101,7 @@ As part of the initial setup, we also record whether we're part of a
\end{source}
We're now ready to begin the actual implementation.
-\subsection{Variable declarations}
+\section{Variable declarations}
Many variables are created as needed by various \code{set} commands, but some
are declared initially. First, we create a plain-vanilla \LaTeX\ counter for
@@ -3799,7 +4143,7 @@ to know if that's the command we're in:
\bool_new:N \l_@@_in_eol_bool
\end{source}
-\subsection{Utilities}
+\section{Utilities}
\paragraph{Variants.} First, let's just generate a couple of expansion
variants we'll need of some standard commands. (I'm using the
@@ -4011,7 +4355,7 @@ the original name to the meaning it had when we entered the scope.
In saving a macro, we also supply a name for the original, which may then be
used to refer to it until it's restored.
\begin{source}
-\cs_new:Npn \@@_gsave_as:NN #1 #2 {
+\cs_new:Npn \@@_cs_gsave_as:NN #1 #2 {
\cs_gset_eq:NN #2 #1
\group_insert_after:N \cs_gset_eq:NN
\group_insert_after:N #1
@@ -4019,7 +4363,22 @@ used to refer to it until it's restored.
}
\end{source}
%
-\subsection{Styles}
+\paragraph{Skipping paragraphs.} Ignoring space is easy enough, but skipping
+\cs{par} tokens takes a bit more work. We'll be using this as part of the
+end-of-line handling, when we're checking if the next ``real'' token is
+\cs{end}. The argument is the code to execute after skipping (and removing)
+whitespace and \cs{par} tokens.
+\begin{source}
+\cs_new:Npn \@@_skip_pars:n #1 {
+ \peek_meaning_remove_ignore_spaces:NTF \par {
+ \@@_skip_pars:n { #1 }
+ } {
+ #1
+ }
+}
+\end{source}
+%
+\section{Styles}
The first text styling commands are only straight-up shortcuts for normal font
commands:
@@ -4030,9 +4389,13 @@ commands:
\@@_new_cmd:Nnn \cn { m } { \textnormal {\cnfont { #1 } } }
\@@_new_cmd:Nnn \id { m } { \textnormal {\idfont { #1 } } }
\end{source}
-(As a side-effect, we've now also defined \cs{pseudonf} and \cs{pseudotn},
-which we don't really need.)
-%
+\begin{note}
+As a side-effect, we've now also defined \cs{pseudonf} and \cs{pseudotn}, which
+we don't really need, as we might as well use \cs{normalfont} and
+\cs{textnormal} directly.
+\end{note}
+
+\noindent
While we're at it, we'll define the initial value for \refc{kwfont}, which is
generally non-extended bold, if that's available, but extended bold otherwise:
\begin{source}
@@ -4047,7 +4410,7 @@ generally non-extended bold, if that's available, but extended bold otherwise:
\group_begin:
\cs_if_exist:NT \@defaultsubs {
- \@@_gsave_as:NN \@defaultsubs \@@_defaultsubs
+ \@@_cs_gsave_as:NN \@defaultsubs \@@_defaultsubs
\cs_gset_eq:NN \@defaultsubs \relax
}
@@ -4167,7 +4530,7 @@ provided:
\@@_new_dec:nn { String } { st }
\end{source}
%
-\subsection{Notation}
+\section{Notation}
Here we'll define a couple of symbols that are useful for pseudocode but that
are not necessarily entirely standard mathematical notation. First, the double
@@ -4255,7 +4618,7 @@ command of \pkg[https://www.cs.dartmouth.edu/~thc/]{clrscode4e}.
}
\end{source}
-\subsection{Options}
+\section{Options}
\label{sec:options}
Much of the behavior of \pkg{pseudo} may be configured through various options,
@@ -4287,6 +4650,14 @@ typesetting the pseudocode.
\begin{source}
\keys_define:nn { pseudo } {
+ init .tl_set:N = \l_@@_init_tl,
+ init-append .code:n = {
+ \tl_put_right:Nn \l_@@_init_tl {#1}
+ },
+ init-prepend .code:n = {
+ \tl_put_left:Nn \l_@@_init_tl {#1}
+ },
+
font .tl_set:N = \pseudofont,
font .initial:n = \normalfont,
@@ -4372,7 +4743,6 @@ magnitude.
},
hl .value_forbidden:n = true,
-
bol .tl_set:N = \l_@@_bol_tl,
bol-append .code:n = {
\tl_put_right:Nn \l_@@_bol_tl {#1}
@@ -4720,7 +5090,7 @@ supply a command for setting them.
\cs_new:Npn \@@_set:n #1 { \keys_set:nn { pseudo } { #1 } }
\end{source}
%
-\subsection{The row separator}
+\section{The row separator}
Much of the work of the \refe{pseudo} environment is performed by the row
separator, that is, the \refc{\bslash} command; whatever part of the line
@@ -4761,8 +5131,8 @@ and clamp the indent level to non-negative values:
%
\paragraph{The actual row separator.} The command consists of a few
interacting macros. The implementation of \refc{\bslash} is
-\verb|@@_eol:|, but that is just a thin wrapper that counts pluses and
-minuses, before handing the control over to \verb|@@_eol_tail|. This is where
+\verb|\@@_eol:|, but that is just a thin wrapper that counts pluses and
+minuses, before handing the control over to \verb|\@@_eol_tail|. This is where
the remaining argument parsing takes place, and the \cs{tabularnewline} is
inserted, after which control is passed to \verb|\@@_bol:| in order to begin a
new line---unless we're at the end of the environment.
@@ -4801,16 +5171,26 @@ but then we'd have a conditional at the beginning of the next line, which
would mess up \cs{bottomrule} or the like. We need to keep \verb|\@@_bol:|
alone at the start of the line.) We call \cs{tabularnewline} either way, in
particular for it to use any extra space provided to \refk{extra-space}.
+
+It seems providing a zero-length extra space in \cs{tabularnewline} can cause
+trouble,\footnote{Cf.\ \url{https://github.com/mlhetland/pseudo.sty/issues/21}}
+so we treat that as a special case.
\begin{source}
- \tl_set:Nx \l_tmpa_tl {
- \exp_not:N \tabularnewline [ \l_@@_extra_space_tl ]
- }
- \peek_meaning_ignore_spaces:NTF \end {
- \l_tmpa_tl
+ \dim_compare:nNnTF \l_@@_extra_space_tl = { 0pt } {
+ \tl_set_eq:NN \l_tmpa_tl \tabularnewline
} {
- \pseudoeol
- \l_tmpa_tl
- \@@_bol:
+ \tl_set:Nx \l_tmpa_tl {
+ \exp_not:N \tabularnewline [ \l_@@_extra_space_tl ]
+ }
+ }
+ \@@_skip_pars:n {
+ \peek_meaning_ignore_spaces:NTF \end {
+ \l_tmpa_tl
+ } {
+ \pseudoeol
+ \l_tmpa_tl
+ \@@_bol:
+ }
}
}
\end{source}
@@ -4837,7 +5217,7 @@ The \verb|\@@_bol:| command (currently) just inserts the \refk{prefix}:
}
\end{source}
%
-\subsection{Various user commands}
+\section{Various user commands}
A few user-level wrappers around internal commands. First, a couple primarily
for use in the \refk{preamble}, together with \refc{pseudosavelabel} and
@@ -4884,7 +5264,7 @@ for setting multiple keys at some later point:
\end{source}
%
% Not allowed to use \code in header, here:
-\subsection{The \codefont{pseudo} environment}
+\section{The \codefont{pseudo} environment}
While this is the main attraction, it's essentially just an augmented
\code{tabular} environment, which does a bit of setup initially, using the
@@ -4895,8 +5275,8 @@ various macros already described.
\group_begin:
- \@@_gsave_as:NN \\ \c_@@_saved_cr_cs
- \@@_gsave_as:NN \= \c_@@_saved_eq_cs
+ \@@_cs_gsave_as:NN \\ \c_@@_saved_cr_cs
+ \@@_cs_gsave_as:NN \= \c_@@_saved_eq_cs
% \RestorePseudoBackslash is inside the tabular
\RestorePseudoEq
@@ -4941,7 +5321,11 @@ various macros already described.
\stepcounter{pseudoenv}
\setcounter{pseudoline}{\l_@@_start_tl}
\addtocounter{pseudoline}{-1}
-
+\end{source}
+Before starting the actual tabular environment, we insert any user-configured
+initialization.
+\begin{source}
+ \tl_use:N \l_@@_init_tl
\tl_use:N \l_@@_begin_tabular_tl
\end{source}
We use \cs{noalign} to be able to place these definitions inside the tabular,
@@ -5034,7 +5418,7 @@ The starred version of the environment is just a wrapper that uses the custom
}
\end{source}
-\subsection{Boxes and floats}
+\section{Boxes and floats}
\label{sec:floatsrc}
Some spacing and width values are taken from \pkg{booktabs}, to partly emulate
@@ -5411,7 +5795,9 @@ preamble, and only if \pkg{tcolorbox} has actually been loaded at that point.
\cs_new:Npn \@@_vmaj:n #1 { \@@_vmaj_aux:w #1 \q_stop }
\cs_new:Npn \@@_vmaj_aux:w #1 . #2 \q_stop { #1 }
- \tl_set:Nx \l_tmpa_tl { \exp_args:No \@@_vmaj:n \tcb@version }
+ \tl_set:Nx \l_tmpa_tl {
+ \exp_args:No \@@_vmaj:n \tcb@version
+ }
\int_compare:nNnT \l_tmpa_tl < 5 {
diff --git a/macros/latex/contrib/pseudo/pseudo.sty b/macros/latex/contrib/pseudo/pseudo.sty
index 2634ab7d38..6fd03eca74 100644
--- a/macros/latex/contrib/pseudo/pseudo.sty
+++ b/macros/latex/contrib/pseudo/pseudo.sty
@@ -1,6 +1,6 @@
% MIT License
%
-% Copyright (c) 2019-2022 Magnus Lie Hetland
+% Copyright (c) 2019-2023 Magnus Lie Hetland
%
% Permission is hereby granted, free of charge, to any person obtaining a copy
% of this software and associated documentation files (the "Software"), to deal
@@ -20,8 +20,8 @@
% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
% SOFTWARE.
%
-\def \pseudoversion {1.2.1}
-\def \pseudodate {2022/08/23}
+\def \pseudoversion {1.2.2}
+\def \pseudodate {2023/01/30}
\RequirePackage{expl3}
\ProvidesExplPackage
{pseudo}
@@ -143,12 +143,19 @@
\DeclareDocumentCommand \pseudosavelabel { } {
\__pseudo_save_label:
}
-\cs_new:Npn \__pseudo_gsave_as:NN #1 #2 {
+\cs_new:Npn \__pseudo_cs_gsave_as:NN #1 #2 {
\cs_gset_eq:NN #2 #1
\group_insert_after:N \cs_gset_eq:NN
\group_insert_after:N #1
\group_insert_after:N #2
}
+\cs_new:Npn \__pseudo_skip_pars:n #1 {
+ \peek_meaning_remove_ignore_spaces:NTF \par {
+ \__pseudo_skip_pars:n { #1 }
+ } {
+ #1
+ }
+}
\__pseudo_new_cmd:Nnn \nf { } { \normalfont }
\__pseudo_new_cmd:Nnn \tn { m } { \textnormal { #1 } }
\__pseudo_new_cmd:Nnn \kw { m } { \textnormal {\kwfont { #1 } } }
@@ -157,7 +164,7 @@
\cs_new:Npn \__pseudo_b_or_bx: {
\group_begin:
\cs_if_exist:NT \@defaultsubs {
- \__pseudo_gsave_as:NN \@defaultsubs \__pseudo_defaultsubs
+ \__pseudo_cs_gsave_as:NN \@defaultsubs \__pseudo_defaultsubs
\cs_gset_eq:NN \@defaultsubs \relax
}
\cs_gset:Nn \__pseudo_b_or_bx: { \fontseries{b}\selectfont }
@@ -274,6 +281,13 @@
}
\ProcessKeysOptions{ pseudo/package }
\keys_define:nn { pseudo } {
+ init .tl_set:N = \l__pseudo_init_tl,
+ init-append .code:n = {
+ \tl_put_right:Nn \l__pseudo_init_tl {#1}
+ },
+ init-prepend .code:n = {
+ \tl_put_left:Nn \l__pseudo_init_tl {#1}
+ },
font .tl_set:N = \pseudofont,
font .initial:n = \normalfont,
hpad .meta:n = {
@@ -551,15 +565,21 @@
}
\NewDocumentCommand \__pseudo_eol_tail { s d<> +O{ } } {
\__pseudo_eol_handle_args:nnn{#1}{#2}{#3}
- \tl_set:Nx \l_tmpa_tl {
- \exp_not:N \tabularnewline [ \l__pseudo_extra_space_tl ]
- }
- \peek_meaning_ignore_spaces:NTF \end {
- \l_tmpa_tl
+ \dim_compare:nNnTF \l__pseudo_extra_space_tl = { 0pt } {
+ \tl_set_eq:NN \l_tmpa_tl \tabularnewline
} {
- \pseudoeol
- \l_tmpa_tl
- \__pseudo_bol:
+ \tl_set:Nx \l_tmpa_tl {
+ \exp_not:N \tabularnewline [ \l__pseudo_extra_space_tl ]
+ }
+ }
+ \__pseudo_skip_pars:n {
+ \peek_meaning_ignore_spaces:NTF \end {
+ \l_tmpa_tl
+ } {
+ \pseudoeol
+ \l_tmpa_tl
+ \__pseudo_bol:
+ }
}
}
\cs_new:Npn \__pseudo_eol: {
@@ -598,8 +618,8 @@
}
\NewDocumentEnvironment { pseudo } { +o s d<> +O{ } } {
\group_begin:
- \__pseudo_gsave_as:NN \\ \c__pseudo_saved_cr_cs
- \__pseudo_gsave_as:NN \= \c__pseudo_saved_eq_cs
+ \__pseudo_cs_gsave_as:NN \\ \c__pseudo_saved_cr_cs
+ \__pseudo_cs_gsave_as:NN \= \c__pseudo_saved_eq_cs
\RestorePseudoEq
\int_set:Nn \g__pseudo_last_saved_line_int {\arabic{pseudoline}}
\__pseudo_star_setup:
@@ -630,6 +650,7 @@
\stepcounter{pseudoenv}
\setcounter{pseudoline}{\l__pseudo_start_tl}
\addtocounter{pseudoline}{-1}
+ \tl_use:N \l__pseudo_init_tl
\tl_use:N \l__pseudo_begin_tabular_tl
\tex_noalign:D {
\RestorePseudoBackslash
@@ -855,7 +876,9 @@ filled/.style = {
\@ifpackageloaded { tcolorbox } {
\cs_new:Npn \__pseudo_vmaj:n #1 { \__pseudo_vmaj_aux:w #1 \q_stop }
\cs_new:Npn \__pseudo_vmaj_aux:w #1 . #2 \q_stop { #1 }
- \tl_set:Nx \l_tmpa_tl { \exp_args:No \__pseudo_vmaj:n \tcb@version }
+ \tl_set:Nx \l_tmpa_tl {
+ \exp_args:No \__pseudo_vmaj:n \tcb@version
+ }
\int_compare:nNnT \l_tmpa_tl < 5 {
\tcbuselibrary { hooks }
\tcbset {
diff --git a/macros/latex/contrib/pseudo/test/overlaytest.tex b/macros/latex/contrib/pseudo/test/beamertest.tex
index 44bdb77c7a..babf88a6f4 100644
--- a/macros/latex/contrib/pseudo/test/overlaytest.tex
+++ b/macros/latex/contrib/pseudo/test/beamertest.tex
@@ -2,6 +2,7 @@
\usepackage{pseudo}
\begin{document}
+
\begin{frame}
\begin{pseudo}
foo \\[dim<2->]
@@ -9,4 +10,13 @@
baz
\end{pseudo}
\end{frame}
+
+% https://github.com/mlhetland/pseudo.sty/issues/21
+\begin{frame}
+\begin{pseudo}[pause]*
+\hd{A}(x) \\
+B \\
+\end{pseudo}
+\end{frame}
+
\end{document}
diff --git a/macros/latex/contrib/tagpdf/README.md b/macros/latex/contrib/tagpdf/README.md
index 654c5ec695..e6db86a9e4 100644
--- a/macros/latex/contrib/tagpdf/README.md
+++ b/macros/latex/contrib/tagpdf/README.md
@@ -1,6 +1,6 @@
#tagpdf — A package to create tagged pdf
-Packageversion: 0.98b
-Packagedate: 2023/01/24
+Packageversion: 0.98c
+Packagedate: 2023/01/30
Author: Ulrike Fischer
## License
diff --git a/macros/latex/contrib/tagpdf/tagpdf-backend.dtx b/macros/latex/contrib/tagpdf/tagpdf-backend.dtx
index 0028f72397..0a2c4f693f 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-backend.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-backend.dtx
@@ -2,7 +2,7 @@
%
%% File: tagpdf-backend.dtx
%
-% Copyright (C) 2019-2022 Ulrike Fischer
+% Copyright (C) 2019-2023 Ulrike Fischer
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -47,13 +47,13 @@
% }^^A
% }
%
-% \date{Version 0.98b, released 2023-01-24}
+% \date{Version 0.98c, released 2023-01-30}
% \maketitle
% \begin{implementation}
% \begin{macrocode}
%<@@=tag>
%<*luatex>
-\ProvidesExplFile {tagpdf-luatex.def} {2023-01-24} {0.98b}
+\ProvidesExplFile {tagpdf-luatex.def} {2023-01-30} {0.98c}
{tagpdf~driver~for~luatex}
% \end{macrocode}
% \section{Loading the lua}
@@ -158,8 +158,8 @@
local ProvidesLuaModule = {
name = "tagpdf",
- version = "0.98b", --TAGVERSION
- date = "2023-01-24", --TAGDATE
+ version = "0.98c", --TAGVERSION
+ date = "2023-01-30", --TAGDATE
description = "tagpdf lua code",
license = "The LATEX Project Public License 1.3c"
}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-checks.dtx b/macros/latex/contrib/tagpdf/tagpdf-checks.dtx
index fae3e853d3..a20017a77c 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-checks.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-checks.dtx
@@ -2,7 +2,7 @@
%
%% File: tagpdf-checks.dtx
%
-% Copyright (C) 2019-2022 Ulrike Fischer
+% Copyright (C) 2019-2023 Ulrike Fischer
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -48,7 +48,7 @@
% }^^A
% }
%
-% \date{Version 0.98b, released 2023-01-24}
+% \date{Version 0.98c, released 2023-01-30}
% \maketitle
% \begin{documentation}
% \section{Commands}
@@ -295,7 +295,7 @@
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-checks-code} {2023-01-24} {0.98b}
+\ProvidesExplPackage {tagpdf-checks-code} {2023-01-30} {0.98c}
{part of tagpdf - code related to checks, conditionals, debugging and messages}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-code.pdf b/macros/latex/contrib/tagpdf/tagpdf-code.pdf
index 5b954258dd..c8c3c146cb 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-code.pdf
+++ b/macros/latex/contrib/tagpdf/tagpdf-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/tagpdf/tagpdf-data.dtx b/macros/latex/contrib/tagpdf/tagpdf-data.dtx
index 93bf80667b..a62f6d3cdb 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-data.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-data.dtx
@@ -47,7 +47,7 @@
% }^^A
% }
%
-% \date{Version 0.98b, released 2023-01-24}
+% \date{Version 0.98c, released 2023-01-30}
% \maketitle
% \begin{documentation}
% This files contains a various data files which are read in
@@ -60,7 +60,7 @@
% It lists the new tag, the rolemap and the namespace of the rolemap.
% \begin{macrocode}
%<*ns-latex>
-%% \ProvidesExplFile {tagpdf-ns-latex.def} {2023-01-24} {0.98b}
+%% \ProvidesExplFile {tagpdf-ns-latex.def} {2023-01-30} {0.98c}
%% {latex} {https://www.latex-project.org/ns/dflt/2022}{}
title, Title, pdf2,
part, Title, pdf2,
@@ -86,7 +86,7 @@ footnotelabel,Lbl, pdf2,
% It is bound to change
% \begin{macrocode}
%<*ns-latex-book>
-%% \ProvidesExplFile {tagpdf-ns-latex-book.def} {2023-01-24} {0.98b}
+%% \ProvidesExplFile {tagpdf-ns-latex-book.def} {2023-01-30} {0.98c}
%% {latex-book} {https://www.latex-project.org/ns/book/2022}{}
chapter, H1,pdf2,
section, H2,pdf2,
@@ -102,7 +102,7 @@ subparagraph, H6,pdf2,
% It is bound to change a lot!
% \begin{macrocode}
%<*ns-latex-inline>
-%% \ProvidesExplFile {tagpdf-ns-latex-inline.def} {2023-01-24} {0.98b}
+%% \ProvidesExplFile {tagpdf-ns-latex-inline.def} {2023-01-30} {0.98c}
%% {latex-inline} {https://www.latex-project.org/ns/inline/2022}{}
chapter, Span, pdf2,
section, Span, pdf2,
@@ -116,7 +116,7 @@ P, Span, pdf2,
% \section{The pdf namespace data}
% \begin{macrocode}
%<*ns-pdf>
-%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2023-01-24} {0.98b}
+%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2023-01-30} {0.98c}
%% {pdf} {http://iso.org/pdf/ssn}{}
StructTreeRoot,StructTreeRoot,pdf,D,
Document,Document,pdf,D,
@@ -184,7 +184,7 @@ Strong,Span,pdf,I,
% \section{The pdf 2.0 namespace data}
% \begin{macrocode}
%<*ns-pdf2>
-%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2023-01-24} {0.98b}
+%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2023-01-30} {0.98c}
%% {pdf2} {http://iso.org/pdf2/ssn}{}
Document,Document,pdf2,D,
Part,Part,pdf2,G,
@@ -240,7 +240,7 @@ Strong,Strong,pdf2,I,
% \section{The mathml namespace data}
% \begin{macrocode}
%<*ns-mathml>
-%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2023-01-24} {0.98b}
+%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2023-01-30} {0.98c}
% {mathml}{http://www.w3.org/1998/Math/MathML}{}
abs,,,
and,,,
@@ -475,7 +475,7 @@ xor,,,
% This will perhaps change in future.
% \begin{macrocode}
%<*parent-child>
-%% \ProvidesExplFile {tagpdf-parent-child.csv} {2023-01-24} {0.98b}
+%% \ProvidesExplFile {tagpdf-parent-child.csv} {2023-01-30} {0.98c}
,,,StructTreeRoot,Document,Art,Part,Div,Sect,BlockQuote,NonStruct,TOC,TOCI,Index,Private,Quote,Note,Reference,BibEntry,P,Hn,H,Lbl,Code,Span,Link,Annot,Form,Ruby,RB,RT,RP,Warichu,WT,WP,L,LI,LBody,Table,TR,TH,TD,THead,TBody,TFoot,Caption,Figure,Formula,MC
Document,both,document level,1,0..n,∅,‡,‡,∅,0..n,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅
Art,1.7,grouping,∅,0..n,∅,‡,‡,0..n,0..n,‡,∅,∅,∅,0..n,∅,0..n,∅,∅,∅,0..1,0..1,∅,∅,∅,0..n,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,∅,∅
@@ -530,7 +530,7 @@ MC,both,---,∅,∅,∅,∅,∅,∅,0..n,‡,∅,∅,∅,0..n,0..n,0..n,0..n,0..
% This will perhaps change in future.
% \begin{macrocode}
%<*parent-child-2>
-%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2023-01-24} {0.98b}
+%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2023-01-30} {0.98c}
,,,StructTreeRoot,Document,DocumentFragment,Art,Part,Div,Sect,Aside,BlockQuote,NonStruct,TOC,TOCI,Index,Private,Title,Sub,Quote,Note,Reference,BibEntry,P,Hn,H,Lbl,Code,Em,Strong,Span,Link,Annot,Form,Ruby,RB,RT,RP,Warichu,WT,WP,FENote,L,LI,LBody,Table,TR,TH,TD,THead,TBody,TFoot,Caption,Figure,Formula,math,mathml,Artifact,MC
Document,both,document level,1,0..n,0..n,∅,‡,‡,∅,0..n,0..n,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅
DocumentFragment,2.0,document level,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,∅,∅,0..n,∅,∅,∅,∅*,∅,∅,∅,∅,∅,∅,∅*,∅,∅,∅,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅,∅,∅,∅,0..n,∅
diff --git a/macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx b/macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx
index fd3409c73b..1d04a19368 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx
@@ -2,7 +2,7 @@
%
%% File: tagpdf-mc-generic.dtx
%
-% Copyright (C) 2019-2022 Ulrike Fischer
+% Copyright (C) 2019-2023 Ulrike Fischer
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Version 0.98b, released 2023-01-24}
+% \date{Version 0.98c, released 2023-01-30}
% \maketitle
% \begin{documentation}
% \end{documentation}
@@ -55,11 +55,11 @@
% \begin{macrocode}
%<@@=tag>
%<*generic>
-\ProvidesExplPackage {tagpdf-mc-code-generic} {2023-01-24} {0.98b}
+\ProvidesExplPackage {tagpdf-mc-code-generic} {2023-01-30} {0.98c}
{part of tagpdf - code related to marking chunks - generic mode}
%</generic>
%<*debug>
-\ProvidesExplPackage {tagpdf-debug-generic} {2023-01-24} {0.98b}
+\ProvidesExplPackage {tagpdf-debug-generic} {2023-01-30} {0.98c}
{part of tagpdf - debugging code related to marking chunks - generic mode}
%</debug>
% \end{macrocode}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx b/macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx
index de5fe42739..066d2e2243 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx
@@ -2,7 +2,7 @@
%
%% File: tagpdf-mc-luacode.dtx
%
-% Copyright (C) 2019-2022 Ulrike Fischer
+% Copyright (C) 2019-2023 Ulrike Fischer
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Version 0.98b, released 2023-01-24}
+% \date{Version 0.98c, released 2023-01-30}
% \maketitle
% \begin{implementation}
% The code is splitted into three parts: code shared by all engines,
@@ -86,7 +86,7 @@
% \begin{macrocode}
%<@@=tag>
%<*luamode>
-\ProvidesExplPackage {tagpdf-mc-code-lua} {2023-01-24} {0.98b}
+\ProvidesExplPackage {tagpdf-mc-code-lua} {2023-01-30} {0.98c}
{tagpdf - mc code only for the luamode }
%</luamode>
% \end{macrocode}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx b/macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx
index e693242d1b..88c5937f57 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx
@@ -2,7 +2,7 @@
%
%% File: tagpdf-mc-shared.dtx
%
-% Copyright (C) 2019-2022 Ulrike Fischer
+% Copyright (C) 2019-2023 Ulrike Fischer
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Version 0.98b, released 2023-01-24}
+% \date{Version 0.98c, released 2023-01-30}
% \maketitle
% \begin{documentation}
% \section{Public Commands}
@@ -174,7 +174,7 @@
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-mc-code-shared} {2023-01-24} {0.98b}
+\ProvidesExplPackage {tagpdf-mc-code-shared} {2023-01-30} {0.98c}
{part of tagpdf - code related to marking chunks -
code shared by generic and luamode }
%</header>
diff --git a/macros/latex/contrib/tagpdf/tagpdf-roles.dtx b/macros/latex/contrib/tagpdf/tagpdf-roles.dtx
index 60ba857294..8948b89055 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-roles.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-roles.dtx
@@ -2,7 +2,7 @@
%
%% File: tagpdf-roles.dtx
%
-% Copyright (C) 2019-2022 Ulrike Fischer
+% Copyright (C) 2019-2023 Ulrike Fischer
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Version 0.98b, released 2023-01-24}
+% \date{Version 0.98c, released 2023-01-30}
% \maketitle
% \begin{documentation}
% \begin{function}
@@ -85,12 +85,20 @@
% Namespaces are mostly a PDF 2.0 property, but it doesn't harm to
% set them also in a PDF 1.7 or earlier.
% \end{function}
+%
+% \begin{function}[TF]{\tag_check_child:nn}
+% \begin{syntax}
+% \cs{tag_check_child:nn}\Arg{tag}\Arg{namespace} \Arg{true code} \Arg{false code}
+% \end{syntax}
+% This checks if the tag \meta{tag} from the name space \meta{namespace}
+% can be used at the current position. In tagpdf-base it is always true.
+% \end{function}
% \end{documentation}
% \begin{implementation}
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-roles-code} {2023-01-24} {0.98b}
+\ProvidesExplPackage {tagpdf-roles-code} {2023-01-30} {0.98c}
{part of tagpdf - code related to roles and structure names}
%</header>
% \end{macrocode}
@@ -522,14 +530,14 @@
% \begin{macrocode}
\tl_if_empty:nF { #2 }
{
- \prop_get:cnN { g__tag_role_NS_#4_prop } {#3}\l_@@_tmpa_tl
+ \prop_get:cnN { g_@@_role_NS_#4_prop } {#3}\l_@@_tmpa_tl
\quark_if_no_value:NTF \l_@@_tmpa_tl
{
- \prop_gput:cnx { g__tag_role_NS_#2_prop } {#1}
+ \prop_gput:cnx { g_@@_role_NS_#2_prop } {#1}
{{\tl_to_str:n{#3}}{\tl_to_str:n{#4}}}
}
{
- \prop_gput:cno { g__tag_role_NS_#2_prop } {#1}{\l_@@_tmpa_tl}
+ \prop_gput:cno { g_@@_role_NS_#2_prop } {#1}{\l_@@_tmpa_tl}
}
}
}
@@ -642,7 +650,7 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_role_read_namespace:n #1 %name of namespace
{
- \prop_if_exist:cF {g__tag_role_NS_#1_prop}
+ \prop_if_exist:cF {g_@@_role_NS_#1_prop}
{ \msg_warning:nnn {tag}{namespace-unknown}{#1} }
\file_if_exist:nTF { tagpdf-ns-#1.def}
{
@@ -1155,6 +1163,30 @@
}
\cs_generate_variant:Nn\@@_check_parent_child:nnN {VVN}
\cs_generate_variant:Nn\@@_check_parent_child:nnnnN {VVVVN,nVnVN,VVnnN}
+%</package>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[TF]{\tag_check_child:nn}
+% \begin{macrocode}
+%<base>\prg_new_protected_conditional:Npnn \tag_check_child:nn #1 #2 {T,F,TF}{\prg_return_true:}
+%<*package>
+\prg_set_protected_conditional:Npnn \tag_check_child:nn #1 #2 {T,F,TF}
+ {
+ \seq_get:NN\g_@@_struct_stack_seq\l_@@_tmpa_tl
+ \@@_struct_get_tag_info:eNN
+ {\l_@@_tmpa_tl}
+ \l_@@_get_parent_tmpa_tl
+ \l_@@_get_parent_tmpb_tl
+ \@@_check_parent_child:VVnnN
+ \l_@@_get_parent_tmpa_tl
+ \l_@@_get_parent_tmpb_tl
+ {#1}{#2}
+ \l_@@_parent_child_check_tl
+ \int_compare:nNnTF { \l_@@_parent_child_check_tl } < {0}
+ {\prg_return_false:}
+ {\prg_return_true:}
+ }
% \end{macrocode}
% \end{macro}
%
@@ -1199,7 +1231,7 @@
{
\cs_new_protected:Npn \@@_role_remap_inline:
{
- \prop_get:cVNT { g__tag_role_NS_latex-inline_prop }\l_@@_role_remap_tag_tl\l_@@_tmpa_tl
+ \prop_get:cVNT { g_@@_role_NS_latex-inline_prop }\l_@@_role_remap_tag_tl\l_@@_tmpa_tl
{
\tl_set:Nx\l_@@_role_remap_tag_tl
{
@@ -1219,7 +1251,7 @@
{
\cs_new_protected:Npn \@@_role_remap_inline:
{
- \prop_get:cVNT { g__tag_role_NS_latex-inline_prop }\l_@@_role_remap_tag_tl\l_@@_tmpa_tl
+ \prop_get:cVNT { g_@@_role_NS_latex-inline_prop }\l_@@_role_remap_tag_tl\l_@@_tmpa_tl
{
\tl_set:Nn\l_@@_role_remap_NS_tl {latex-inline}
}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-space.dtx b/macros/latex/contrib/tagpdf/tagpdf-space.dtx
index f450520a48..5e21bb0f6a 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-space.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-space.dtx
@@ -2,7 +2,7 @@
%
%% File: tagpdf-space.dtx
%
-% Copyright (C) 2019-2022 Ulrike Fischer
+% Copyright (C) 2019-2023 Ulrike Fischer
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Version 0.98b, released 2023-01-24}
+% \date{Version 0.98c, released 2023-01-30}
% \maketitle
% \begin{documentation}
% \begin{function}{interwordspace (setup-key)}
@@ -64,7 +64,7 @@
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-space-code} {2023-01-24} {0.98b}
+\ProvidesExplPackage {tagpdf-space-code} {2023-01-30} {0.98c}
{part of tagpdf - code related to real space chars}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-struct.dtx b/macros/latex/contrib/tagpdf/tagpdf-struct.dtx
index 2e83d51280..229989dad1 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-struct.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-struct.dtx
@@ -2,7 +2,7 @@
%
%% File: tagpdf-struct.dtx
%
-% Copyright (C) 2019-2022 Ulrike Fischer
+% Copyright (C) 2019-2023 Ulrike Fischer
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Version 0.98b, released 2023-01-24}
+% \date{Version 0.98c, released 2023-01-30}
% \maketitle
% \begin{documentation}
% \section{Public Commands}
@@ -242,7 +242,7 @@
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-struct-code} {2023-01-24} {0.98b}
+\ProvidesExplPackage {tagpdf-struct-code} {2023-01-30} {0.98c}
{part of tagpdf - code related to storing structure}
%</header>
% \end{macrocode}
@@ -1510,7 +1510,7 @@
% \section{Attributes and attribute classes}
% \begin{macrocode}
%<*header>
-\ProvidesExplPackage {tagpdf-attr-code} {2023-01-24} {0.98b}
+\ProvidesExplPackage {tagpdf-attr-code} {2023-01-30} {0.98c}
{part of tagpdf - code related to attributes and attribute classes}
%</header>
% \end{macrocode}
@@ -1577,7 +1577,7 @@
{
attribute-class .code:n =
{
- \clist_set:No \l_@@_tmpa_clist { #1 }
+ \clist_set:Nx \l_@@_tmpa_clist { #1 }
\seq_set_from_clist:NN \l_@@_tmpb_seq \l_@@_tmpa_clist
% \end{macrocode}
% we convert the names into pdf names with slash
@@ -1618,50 +1618,53 @@
{
attribute .code:n = % A property (attribute, value currently a dictionary)
{
- \clist_set:No \l_@@_tmpa_clist { #1 }
- \seq_set_from_clist:NN \l_@@_tmpb_seq \l_@@_tmpa_clist
+ \clist_set:Nx \l_@@_tmpa_clist { #1 }
+ \clist_if_empty:NF \l_@@_tmpa_clist
+ {
+ \seq_set_from_clist:NN \l_@@_tmpb_seq \l_@@_tmpa_clist
% \end{macrocode}
% we convert the names into pdf names with slash
% \begin{macrocode}
- \seq_set_map_x:NNn \l_@@_tmpa_seq \l_@@_tmpb_seq
- {
- \pdf_name_from_unicode_e:n {##1}
- }
- \tl_set:Nx \l_@@_attr_value_tl
- {
- \int_compare:nT { \seq_count:N \l_@@_tmpa_seq > 1 }{[}%]
- }
- \seq_map_inline:Nn \l_@@_tmpa_seq
- {
- \prop_if_in:NnF \g_@@_attr_entries_prop {##1}
+ \seq_set_map_x:NNn \l_@@_tmpa_seq \l_@@_tmpb_seq
+ {
+ \pdf_name_from_unicode_e:n {##1}
+ }
+ \tl_set:Nx \l_@@_attr_value_tl
{
- \msg_error:nnn { tag } { attr-unknown } { ##1 }
+ \int_compare:nT { \seq_count:N \l_@@_tmpa_seq > 1 }{[}%]
}
- \prop_if_in:NnF \g_@@_attr_objref_prop {##1}
- {%\prop_show:N \g_@@_attr_entries_prop
- \pdf_object_unnamed_write:nx
- { dict }
+ \seq_map_inline:Nn \l_@@_tmpa_seq
+ {
+ \prop_if_in:NnF \g_@@_attr_entries_prop {##1}
{
- \prop_item:Nn\g_@@_attr_entries_prop {##1}
+ \msg_error:nnn { tag } { attr-unknown } { ##1 }
}
- \prop_gput:Nnx \g_@@_attr_objref_prop {##1} {\pdf_object_ref_last:}
+ \prop_if_in:NnF \g_@@_attr_objref_prop {##1}
+ {%\prop_show:N \g_@@_attr_entries_prop
+ \pdf_object_unnamed_write:nx
+ { dict }
+ {
+ \prop_item:Nn\g_@@_attr_entries_prop {##1}
+ }
+ \prop_gput:Nnx \g_@@_attr_objref_prop {##1} {\pdf_object_ref_last:}
+ }
+ \tl_put_right:Nx \l_@@_attr_value_tl
+ {
+ \c_space_tl
+ \prop_item:Nn \g_@@_attr_objref_prop {##1}
+ }
+ % \tl_show:N \l_@@_attr_value_tl
}
\tl_put_right:Nx \l_@@_attr_value_tl
- {
- \c_space_tl
- \prop_item:Nn \g_@@_attr_objref_prop {##1}
+ { %[
+ \int_compare:nT { \seq_count:N \l_@@_tmpa_seq > 1 }{]}%
}
- % \tl_show:N \l_@@_attr_value_tl
- }
- \tl_put_right:Nx \l_@@_attr_value_tl
- { %[
- \int_compare:nT { \seq_count:N \l_@@_tmpa_seq > 1 }{]}%
- }
- % \tl_show:N \l_@@_attr_value_tl
- \@@_prop_gput:cnx
- { g_@@_struct_\int_eval:n {\c@g_@@_struct_abs_int}_prop }
- { A }
- { \l_@@_attr_value_tl }
+ % \tl_show:N \l_@@_attr_value_tl
+ \@@_prop_gput:cnx
+ { g_@@_struct_\int_eval:n {\c@g_@@_struct_abs_int}_prop }
+ { A }
+ { \l_@@_attr_value_tl }
+ }
},
}
%</package>
diff --git a/macros/latex/contrib/tagpdf/tagpdf-tree.dtx b/macros/latex/contrib/tagpdf/tagpdf-tree.dtx
index 2a02a7c5df..507681afa6 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-tree.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-tree.dtx
@@ -2,7 +2,7 @@
%
%% File: tagpdf-tree.dtx
%
-% Copyright (C) 2019-2022 Ulrike Fischer
+% Copyright (C) 2019-2023 Ulrike Fischer
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -47,13 +47,13 @@
% }^^A
% }
%
-% \date{Version 0.98b, released 2023-01-24}
+% \date{Version 0.98c, released 2023-01-30}
% \maketitle
% \begin{implementation}
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-tree-code} {2023-01-24} {0.98b}
+\ProvidesExplPackage {tagpdf-tree-code} {2023-01-30} {0.98c}
{part of tagpdf - code related to writing trees and dictionaries to the pdf}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/tagpdf/tagpdf-user.dtx b/macros/latex/contrib/tagpdf/tagpdf-user.dtx
index 309b62a6c1..980641b6b7 100644
--- a/macros/latex/contrib/tagpdf/tagpdf-user.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf-user.dtx
@@ -2,7 +2,7 @@
%
%% File: tagpdf-user.dtx
%
-% Copyright (C) 2019-2022 Ulrike Fischer
+% Copyright (C) 2019-2023 Ulrike Fischer
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -46,7 +46,7 @@
% }^^A
% }
%
-% \date{Version 0.98b, released 2023-01-24}
+% \date{Version 0.98c, released 2023-01-30}
% \maketitle
% \begin{documentation}
% \section{Setup commands}
@@ -246,7 +246,7 @@
% \begin{macrocode}
%<@@=tag>
%<*header>
-\ProvidesExplPackage {tagpdf-user} {2023-01-24} {0.98b}
+\ProvidesExplPackage {tagpdf-user} {2023-01-30} {0.98c}
{tagpdf - user commands}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/tagpdf/tagpdf.dtx b/macros/latex/contrib/tagpdf/tagpdf.dtx
index c264123ebc..61222d151a 100644
--- a/macros/latex/contrib/tagpdf/tagpdf.dtx
+++ b/macros/latex/contrib/tagpdf/tagpdf.dtx
@@ -2,7 +2,7 @@
%
%% File: tagpdf.dtx
%
-% Copyright (C) 2019-2022 Ulrike Fischer
+% Copyright (C) 2019-2023 Ulrike Fischer
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -92,7 +92,7 @@
% \begin{macrocode}
%<@@=tag>
%<*package>
-\ProvidesExplPackage {tagpdf} {2023-01-24} {0.98b}
+\ProvidesExplPackage {tagpdf} {2023-01-30} {0.98c}
{ A package to experiment with pdf tagging }
\bool_if:nF
@@ -118,7 +118,7 @@
% \end{macrocode}
%<*debug>
% \begin{macrocode}
-\ProvidesExplPackage {tagpdf-debug} {2023-01-24} {0.98b}
+\ProvidesExplPackage {tagpdf-debug} {2023-01-30} {0.98c}
{ debug code for tagpdf }
\@ifpackageloaded{tagpdf}{}{\PackageWarning{tagpdf-debug}{tagpdf~not~loaded,~quitting}\endinput}
% \end{macrocode}
@@ -159,7 +159,7 @@
% \end{macrocode}
% \begin{macrocode}
%<*base>
-\ProvidesExplPackage {tagpdf-base} {2023-01-24} {0.98b}
+\ProvidesExplPackage {tagpdf-base} {2023-01-30} {0.98c}
{part of tagpdf - provide base, no-op versions of the user commands }
%</base>
% \end{macrocode}
diff --git a/macros/latex/contrib/tagpdf/tagpdf.ins b/macros/latex/contrib/tagpdf/tagpdf.ins
index d494018825..d17e709b25 100644
--- a/macros/latex/contrib/tagpdf/tagpdf.ins
+++ b/macros/latex/contrib/tagpdf/tagpdf.ins
@@ -79,6 +79,7 @@ and all files in that bundle must be distributed together.
\from{tagpdf-struct.dtx}{base}
\from{tagpdf-checks.dtx}{base}
\from{tagpdf-user.dtx}{base}
+ \from{tagpdf-roles.dtx}{base}
}
}
diff --git a/macros/latex/contrib/tagpdf/tagpdf.pdf b/macros/latex/contrib/tagpdf/tagpdf.pdf
index a77e88d3c5..3edd2185eb 100644
--- a/macros/latex/contrib/tagpdf/tagpdf.pdf
+++ b/macros/latex/contrib/tagpdf/tagpdf.pdf
Binary files differ
diff --git a/macros/latex/contrib/tagpdf/tagpdf.tex b/macros/latex/contrib/tagpdf/tagpdf.tex
index e36b3e9197..299763001c 100644
--- a/macros/latex/contrib/tagpdf/tagpdf.tex
+++ b/macros/latex/contrib/tagpdf/tagpdf.tex
@@ -15,8 +15,8 @@
}
\makeatletter
-\def\UlrikeFischer@package@version{0.98b}
-\def\UlrikeFischer@package@date{2023-01-24}
+\def\UlrikeFischer@package@version{0.98c}
+\def\UlrikeFischer@package@date{2023-01-30}
\makeatother
\documentclass[DIV=12,parskip=half-,bibliography=totoc,a4paper]{article}
diff --git a/macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty b/macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty
index 3ad0e3de74..dc1c94b911 100644
--- a/macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty
+++ b/macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty
@@ -1,5 +1,5 @@
%\RequirePackage[enable-debug]{expl3}[2018/06/14]
-\ProvidesExplPackage {tagpdfdocu-patches} {2023-01-24} {0.98b}
+\ProvidesExplPackage {tagpdfdocu-patches} {2023-01-30} {0.98c}
{patches/commands for the tagpdf documentation}
\RequirePackage{etoolbox,xpatch}
diff --git a/macros/latex/contrib/tramlines/README b/macros/latex/contrib/tramlines/README
index e3dfeb4ebe..b252d9323a 100644
--- a/macros/latex/contrib/tramlines/README
+++ b/macros/latex/contrib/tramlines/README
@@ -1,6 +1,6 @@
tramlines - make tramlines
-version: 1.0.0
+version: 1.1.0
This package automatically creates tramlines (lines above and below a title used by lawyers in the UK and the Commonwealth).
@@ -12,4 +12,7 @@ For suggestions, feature requests, and bug reports, please use the project's
GitHub site: https://github.com/ezgranet/tramlines
Version history:
+29/01/2023: Updates to float composition and fixed bug with global commands. Thanks to GitHub user niruvt
+
+
27/01/2023: package creation \ No newline at end of file
diff --git a/macros/latex/contrib/tramlines/tramlines-documentation.pdf b/macros/latex/contrib/tramlines/tramlines-documentation.pdf
index 79938ccd51..e9d9c9d6d9 100644
--- a/macros/latex/contrib/tramlines/tramlines-documentation.pdf
+++ b/macros/latex/contrib/tramlines/tramlines-documentation.pdf
Binary files differ
diff --git a/macros/latex/contrib/tramlines/tramlines-documentation.tex b/macros/latex/contrib/tramlines/tramlines-documentation.tex
index 5b9c304601..f39e7ba70c 100644
--- a/macros/latex/contrib/tramlines/tramlines-documentation.tex
+++ b/macros/latex/contrib/tramlines/tramlines-documentation.tex
@@ -74,11 +74,11 @@ breaklines,
firstnumber=last
]
{latex}
-\def\tramlinesversionnumber{1.0.0}
-\ProvidesPackage{textcsc}
-[2023/01/27\tramlinesversionnumber\
- Command for caps-to-small-caps-text]
-% This work may be distributed and/or modified under the
+\def\tramlinesversionnumber{1.1.0}
+\ProvidesPackage{tramlines}
+[2023/01/29\tramlinesversionnumber\
+ Tramlines]
+ % This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
% of this license or (at your option) any later version.
% The latest version of this license is in
@@ -104,28 +104,32 @@ firstnumber=last
% tramlines
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\setlength\doublerulesep{1pt}% <-- set distance between double rule
-
+\newcommand{\tramlinesep}{2pt}
\newcommand{\tramlines}[1]{\normalsize
-\begin{table*}[ht]
+\smallskip
+\begin{center}
+\begin{minipage}{\textwidth}
\centering
+{%notglobal
+\setlength\doublerulesep{\tramlinesep}% <-- set distance between double rule
\begin{tabular}[t]{l c c }
\toprule\toprule
& #1 & \\
\bottomrule\bottomrule
-\end{tabular}
-\end{table*}
+\end{tabular}}
+\end{minipage}
+\end{center}
+
+\smallskip
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%
% all done
%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\end{minted}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%\end{minted}
-\section{Version History}
-\subsection{\texttt{1.0.0}}
+\subsection*{\texttt{1.0.0}}
\ttfamily 27 January 2023: Package creation
diff --git a/macros/latex/contrib/tramlines/tramlines.sty b/macros/latex/contrib/tramlines/tramlines.sty
index 4bfa700fb1..f3288a8d1f 100644
--- a/macros/latex/contrib/tramlines/tramlines.sty
+++ b/macros/latex/contrib/tramlines/tramlines.sty
@@ -1,7 +1,7 @@
-\def\tramlinesversionnumber{1.0.0}
-\ProvidesPackage{textcsc}
-[2023/01/27\tramlinesversionnumber\
- Command for caps-to-small-caps-text]
+\def\tramlinesversionnumber{1.1.0}
+\ProvidesPackage{tramlines}
+[2023/01/29\tramlinesversionnumber\
+ Tramlines]
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
% of this license or (at your option) any later version.
@@ -28,17 +28,23 @@
% tramlines
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\setlength\doublerulesep{1pt}% <-- set distance between double rule
-
+\newcommand{\tramlinesep}{2pt}
\newcommand{\tramlines}[1]{\normalsize
-\begin{table*}[ht]
+\smallskip
+\begin{center}
+\begin{minipage}{\textwidth}
\centering
+{%notglobal
+\setlength\doublerulesep{\tramlinesep}% <-- set distance between double rule
\begin{tabular}[t]{l c c }
\toprule\toprule
& #1 & \\
\bottomrule\bottomrule
-\end{tabular}
-\end{table*}
+\end{tabular}}
+\end{minipage}
+\end{center}
+
+\smallskip
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/luatex/generic/lparse/README.md b/macros/luatex/generic/lparse/README.md
new file mode 100644
index 0000000000..f6210b4923
--- /dev/null
+++ b/macros/luatex/generic/lparse/README.md
@@ -0,0 +1,34 @@
+# lparse
+
+Parse and scan macro arguments in `Lua` with `LuaTeX` using a `xparse`
+like argument specification.
+
+The name lparse is derived from xparse. The x has been replaced by l
+because this package only works with LuaTeX. l stands for Lua. Just as
+with xparse, it is possible to use a special syntax consisting of single
+letters to express the arguments of a macro. However, lparse is able to
+read arguments regardless of the macro systemd used - whether LaTeX or
+ConTeXt or even plain TeX. Of course, LuaTeX must always be used as the
+engine.
+
+## Current version
+
+2023/01/29 v0.1.0
+
+## License
+
+Copyright (C) 2023 by Josef Friedrich <josef@friedrich.rocks>
+------------------------------------------------------------------------
+This work may be distributed and/or modified under the conditions of
+the LaTeX Project Public License, either version 1.3 of this license
+or (at your option) any later version. The latest version of this
+license is in:
+
+ http://www.latex-project.org/lppl.txt
+
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+## Maintainer
+
+Josef Friedrich <josef@friedrich.rocks>
diff --git a/macros/luatex/generic/lparse/lparse-doc.tex b/macros/luatex/generic/lparse/lparse-doc.tex
new file mode 100644
index 0000000000..35c618f277
--- /dev/null
+++ b/macros/luatex/generic/lparse/lparse-doc.tex
@@ -0,0 +1,205 @@
+\documentclass{ltxdoc}
+
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+
+\usepackage{mdframed}
+\usepackage{minted}
+\usepackage{multicol}
+\usepackage{luacode}
+\usepackage{syntax}
+
+\usemintedstyle{friendly}
+\BeforeBeginEnvironment{minted}{\begin{mdframed}}
+\AfterEndEnvironment{minted}{\end{mdframed}}
+\setminted{
+ breaklines=true,
+ fontsize=\footnotesize,
+ style=manni,
+}
+\def\lua#1{\mintinline{lua}|#1|}
+\def\latex#1{\mintinline{latex}|#1|}
+
+\NewDocumentCommand { \InputLatex } { O{} m } {
+ \begin{mdframed}
+ \inputminted[linenos=false,#1]{latex}{examples/#2}
+ \end{mdframed}
+}
+
+\NewDocumentCommand { \InputLua } { O{} m } {
+ \begin{mdframed}
+ \inputminted[linenos=false,#1]{lua}{examples/#2}
+ \end{mdframed}
+}
+
+\begin{document}
+
+\providecommand*{\url}{\texttt}
+
+\title{The \textsf{lparse} package}
+\author{%
+ Josef Friedrich\\%
+ \url{josef@friedrich.rocks}\\%
+ \href{https://github.com/Josef-Friedrich/lparse}
+ {github.com/Josef-Friedrich/lparse}%
+}
+\date{0.1.0 from 2023/01/29}
+
+\maketitle
+
+\InputLatex[firstline=5,lastline=14]{title-page.tex}
+
+\newpage
+
+\tableofcontents
+
+\newpage
+
+% \section{Einführung}
+\section{Introduction}
+
+% Der Name |lparse| ist von |xparse| abgeleitet.
+The name |lparse| is derived from |xparse|.
+%
+% Das |x| wurde durch |l| ersetzt, da dieses Packet nur zusammen mit
+% Lua\TeX{} funktioniert.
+The |x| has been replaced by |l| because this package only works with Lua\TeX{}.
+%
+% |l| steht für \emph{Lua}
+|l| stands for \emph{Lua}.
+%
+% Ebenso wie bei dem Paket |xparse| ist es möglich, die Argumente eines
+% Makros mit Hilfe einer speziellen Syntax bestehend aus einzelnen
+% Buchstaben zu beschreiben.
+Just as with |xparse|, it is possible to use a special syntax consisting
+of single letters to express the arguments of a macro.
+%
+% |lparse| ist jedoch im Stande unabhängig von der verwendeten
+% Makrosammlung - ob LaTeX oder ConTeXt oder sogar Plain TeX - Argumente
+% einzulesen.
+However, |lparse| is able to read arguments regardless of the macro
+systemd used - whether \LaTeX{} or Con\TeX{}t or even plain \TeX.
+%
+% Als Engine musst natürlich immer LuaTeX verwendet werden.
+Of course, Lua\TeX{} must always be used as the engine.
+
+\subsection{Similar projects}
+
+% Für ConTeXt gibt es einen ähnlichen Argumenten scanner.
+For Con\TeX{}t there is a similar argument scanner (see Con\TeX{}t Lua
+Document
+\href{http://www.pragma-ade.nl/general/manuals/cld-mkiv.pdf}{cld-mkiv}).
+%
+% Dieser Scanner ist in folgenden Dateien implementiert
+This scanner is implemented in the following files:
+\href{https://github.com/contextgarden/context/blob/main/tex/context/base/mkiv/toks-scn.lua}{toks-scn.lua}
+\href{https://github.com/contextgarden/context/blob/main/tex/context/base/mkiv/toks-aux.lua}{toks-aux.lua}
+\href{https://github.com/contextgarden/context/blob/main/tex/context/base/mkiv/toks-ini.lua}{toks-ini.lua}
+% Con\TeX{}t scanner verwendet offenbar die Token Bibliothek des LuaTeX Nachfolgeprojekts luametaTeX
+%
+Con\TeX{}t scanner apparently uses the token library of the LuaTeX
+successor project luameta\TeX:
+\href{https://github.com/contextgarden/context/blob/main/source/luametatex/source/lua/lmttokenlib.c}{lmttokenlib.c}
+
+\section{Description of the argument specification}
+%
+% Folgende Listen, die die Argumenttypen beschreiben, entstammen den
+% Handbücher usrguide bzw. xparse.
+The following lists, which describe the individual argument types, are
+taken from the manuals
+\href{http://mirrors.ctan.org/macros/latex/base/usrguide.pdf}{usrguide}
+and
+\href{http://mirrors.ctan.org/macros/latex/contrib/l3packages/xparse.pdf}{xparse}.
+%
+% Die Beschreibungstexte der einzelnen Argumententypen wurden nur leicht angepasst.
+The descriptive texts of the individual argument types have only been
+slightly adjusted.
+%
+% Die noch nicht unterstützen Argumentypen sind eingeklammert.
+The argument types that are not yet supported are bracketed.
+
+% /usr/local/texlive/texmf-dist/source/latex/l3packages/xparse/xparse.dtx
+\begin{itemize}
+ \item[m] A standard mandatory argument, which can either be a single
+ token alone or multiple tokens surrounded by curly braces |{}|.
+ Regardless of the input, the argument will be passed to the
+ internal code without the outer braces. This is the \pkg{xparse}
+ type specifier for a normal \TeX{} argument.
+ \item[r] Given as \texttt{r}\meta{token1}\meta{token2}, this denotes a
+ \enquote{required} delimited argument, where the delimiters are
+ \meta{token1} and \meta{token2}. If the opening delimiter
+ \meta{token1} is missing, |nil| will be
+ returned after a suitable error.
+ \item[R] Given as \texttt{R}\meta{token1}\meta{token2}\marg{default},
+ this is a \enquote{required} delimited argument as for~\texttt{r},
+ but it has a user-definable recovery \meta{default} instead of
+ |nil|.
+ \item[v] Reads an argument \enquote{verbatim}, between the following
+ character and its next occurrence.
+ \item[(b)] Not implemented! Only suitable in the argument specification of an
+ environment, it denotes the body of the environment, between
+ |\begin|\marg{environment} and |\end|\marg{environment}.
+\end{itemize}
+The types which define optional arguments are:
+\begin{itemize}
+ \item[o] A standard \LaTeX{} optional argument, surrounded with square
+ brackets, which will supply
+ |nil| if not given (as described later).
+ \item[d] Given as \texttt{d}\meta{token1}\meta{token2}, an optional
+ argument which is delimited by \meta{token1} and \meta{token2}.
+ As with \texttt{o}, if no
+ value is given |nil| is returned.
+ \item[O] Given as \texttt{O}\marg{default}, is like \texttt{o}, but
+ returns \meta{default} if no value is given.
+ \item[D] Given as \texttt{D}\meta{token1}\meta{token2}\marg{default},
+ it is as for \texttt{d}, but returns \meta{default} if no value is given.
+ Internally, the \texttt{o}, \texttt{d} and \texttt{O} types are
+ short-cuts to an appropriated-constructed \texttt{D} type argument.
+ \item[s] An optional star, which will result in a value
+ |true| if a star is present and |false|
+ otherwise (as described later).
+ \item[t] An optional \meta{token}, which will result in a value
+ |true| if \meta{token} is present and |false|
+ otherwise. Given as \texttt{t}\meta{token}.
+ \item[(e)] Not implemented! Given as \texttt{e}\marg{tokens}, a set of optional
+ \emph{embellishments}, each of which requires a \emph{value}.
+ If an embellishment is not present, |-NoValue-| is returned. Each
+ embellishment gives one argument, ordered as for the list of
+ \meta{tokens} in the argument specification. All \meta{tokens}
+ must be distinct. \emph{This is an experimental type}.
+ \item[(E)] Not implemented! As for \texttt{e} but returns one or more \meta{defaults}
+ if values are not given: \texttt{E}\marg{tokens}\marg{defaults}.
+\end{itemize}
+
+\clearpage
+
+\section{Implementation}
+
+%%
+%
+%%
+
+\subsection{lparse.lua}
+
+\inputminted[linenos=true]{lua}{lparse.lua}
+
+%%
+%
+%%
+
+\clearpage
+
+\subsection{lparse.tex}
+
+\inputminted[linenos=true]{latex}{lparse.tex}
+
+\clearpage
+
+\subsection{lparse.sty}
+
+\inputminted[linenos=true]{latex}{lparse.sty}
+
+\pagebreak
+\PrintIndex
+\end{document}
diff --git a/macros/luatex/generic/lparse/lparse.lua b/macros/luatex/generic/lparse/lparse.lua
new file mode 100644
index 0000000000..755cf2883f
--- /dev/null
+++ b/macros/luatex/generic/lparse/lparse.lua
@@ -0,0 +1,302 @@
+-- lparse.lua
+-- Copyright 2023 Josef Friedrich
+--
+-- This work may be distributed and/or modified under the
+-- conditions of the LaTeX Project Public License, either version 1.3c
+-- of this license or (at your option) any later version.
+-- The latest version of this license is in
+-- http://www.latex-project.org/lppl.txt
+-- and version 1.3c or later is part of all distributions of LaTeX
+-- version 2008/05/04 or later.
+--
+-- This work has the LPPL maintenance status `maintained'.
+--
+-- The Current Maintainer of this work is Josef Friedrich.
+--
+-- This work consists of the files lparse.lua, lparse.tex,
+-- and lparse.sty.
+---
+if lpeg == nil then
+ lpeg = require('lpeg')
+end
+
+---
+---@param spec string
+---@return Argument[]
+local function parse_spec(spec)
+ local V = lpeg.V
+ local P = lpeg.P
+ local Set = lpeg.S
+ local Range = lpeg.R
+ local CaptureFolding = lpeg.Cf
+ local CaptureTable = lpeg.Ct
+ local Cc = lpeg.Cc
+ local CaptureSimple = lpeg.C
+
+ local function add_result(result, value)
+ if not result then
+ result = {}
+ end
+ table.insert(result, value)
+ return result
+ end
+
+ local function collect_delims(a, b)
+ return { init_delim = a, end_delim = b }
+ end
+
+ local function collect_token(a)
+ return { token = a }
+ end
+
+ local function set_default(a)
+ return { default = a }
+ end
+
+ local function combine(...)
+ local args = { ... }
+
+ local output = {}
+
+ for _, arg in ipairs(args) do
+ if type(arg) ~= 'table' then
+ arg = {}
+ end
+
+ for key, value in pairs(arg) do
+ output[key] = value
+ end
+
+ end
+
+ return output
+ end
+
+ local function ArgumentType(letter)
+ local function get_type(l)
+ return { argument_type = l }
+ end
+ return CaptureSimple(P(letter)) / get_type
+ end
+
+ local T = ArgumentType
+
+ local pattern = P({
+ 'init',
+ init = V('whitespace') ^ 0 *
+ CaptureFolding(CaptureTable('') * V('list'), add_result),
+
+ list = (V('arg') * V('whitespace') ^ 1) ^ 0 * V('arg') ^ -1,
+
+ arg = V('m') + V('r') + V('R') + V('v') + V('o') + V('d') + V('O') +
+ V('D') + V('s') + V('t'),
+
+ m = T('m') / combine,
+
+ r = T('r') * V('delimiters') / combine,
+
+ R = T('R') * V('delimiters') * V('default') / combine,
+
+ v = T('v') * Cc({ verbatim = true }) / combine,
+
+ o = T('o') * Cc({ optional = true }) / combine,
+
+ d = T('d') * V('delimiters') * Cc({ optional = true }) / combine,
+
+ O = T('O') * V('default') * Cc({ optional = true }) / combine,
+
+ D = T('D') * V('delimiters') * V('default') *
+ Cc({ optional = true }) / combine,
+
+ s = T('s') * Cc({ star = true }) / combine,
+
+ t = T('t') * V('token') / combine,
+
+ token = V('delimiter') / collect_token,
+
+ delimiter = CaptureSimple(Range('!~')),
+
+ delimiters = V('delimiter') * V('delimiter') / collect_delims,
+
+ whitespace = Set(' \t\n\r'),
+
+ default = P('{') * CaptureSimple((1 - P('}')) ^ 0) * P('}') /
+ set_default,
+ })
+
+ return pattern:match(spec)
+
+end
+
+---
+---Scan for an optional argument.
+---
+---@param init_delim? string # The character that marks the beginning of an optional argument (by default `[`).
+---@param end_delim? string # The character that marks the end of an optional argument (by default `]`).
+---
+---@return string|nil # The string that was enclosed by the delimiters. The delimiters themselves are not returned.
+local function scan_delimited(init_delim, end_delim)
+ if init_delim == nil then
+ init_delim = '['
+ end
+ if end_delim == nil then
+ end_delim = ']'
+ end
+
+ ---
+ ---@param t Token
+ ---
+ ---@return string
+ local function convert_token_to_string(t)
+ if t.index ~= nil then
+ return utf8.char(t.index)
+ else
+ return '\\' .. t.csname
+ end
+ end
+
+ local delimiter_stack = 0
+
+ local function get_next_char()
+ local t = token.get_next()
+ local char = convert_token_to_string(t)
+ if char == init_delim then
+ delimiter_stack = delimiter_stack + 1
+ end
+
+ if char == end_delim then
+ delimiter_stack = delimiter_stack - 1
+ end
+ return char, t
+ end
+
+ local char, t = get_next_char()
+
+ if t.cmdname == 'spacer' then
+ char, t = get_next_char()
+ end
+
+ if char == init_delim then
+ local output = {}
+
+ char, t = get_next_char()
+
+ -- “while” better than “repeat ... until”: The end_delimiter is
+ -- included in the result output.
+ while not (char == end_delim and delimiter_stack == 0) do
+ table.insert(output, char)
+ char, t = get_next_char()
+ end
+ return table.concat(output, '')
+ else
+ token.put_next(t)
+ end
+end
+
+---@class Argument
+---@field argument_type? string
+---@field optional? boolean
+---@field init_delim? string
+---@field end_delim? string
+---@field dest? string
+---@field star? boolean
+---@field default? string
+---@field verbatim? boolean
+---@field token? string
+
+---@class Parser
+---@field args Argument[]
+---@field result any[]
+local Parser = {}
+---@private
+Parser.__index = Parser
+
+function Parser:new(spec)
+ local parser = {}
+ setmetatable(parser, Parser)
+ parser.spec = spec
+ parser.args = parse_spec(spec)
+ parser.result = parser:parse(parser.args)
+ return parser
+end
+
+---@return any[]
+function Parser:parse()
+ local result = {}
+ local index = 1
+ for _, arg in pairs(self.args) do
+ if arg.star then
+ -- s
+ result[index] = token.scan_keyword('*')
+ elseif arg.token then
+ -- t
+ result[index] = token.scan_keyword(arg.token)
+ elseif arg.optional then
+ -- o d O D
+ local oarg = scan_delimited(arg.init_delim, arg.end_delim)
+ if arg.default and oarg == nil then
+ oarg = arg.default
+ end
+ result[index] = oarg
+ elseif arg.init_delim and arg.end_delim then
+ -- r R
+ local oarg = scan_delimited(arg.init_delim, arg.end_delim)
+ if arg.default and oarg == nil then
+ oarg = arg.default
+ end
+ if oarg == nil then
+ tex.error('Missing required argument')
+ end
+ result[index] = oarg
+ else
+ -- m v
+ local marg = token.scan_argument(arg.verbatim ~= true)
+ if marg == nil then
+ tex.error('Missing required argument')
+ end
+ result[index] = marg
+ end
+ index = index + 1
+ end
+ return result
+end
+
+---@private
+function Parser:set_result(...)
+ self.result = { ... }
+end
+
+function Parser:assert(...)
+ local arguments = { ... }
+ for index, arg in ipairs(arguments) do
+ assert(self.result[index] == arg, string.format(
+ 'Argument at index %d doesn’t match: “%s” != “%s”',
+ index, self.result[index], arg))
+ end
+end
+
+---
+---@return string|boolean|nil ...
+function Parser:export()
+ -- #self.arg: to get all elements of the result table, also elements
+ -- with nil values.
+ return table.unpack(self.result, 1, #self.args)
+end
+
+function Parser:debug()
+ for index = 1, #self.args do
+ print(index, self.result[index])
+ end
+end
+
+---@return Parser
+local function create_parser(spec)
+ return Parser:new(spec)
+end
+
+local function scan(spec)
+ local parser = create_parser(spec)
+ return parser:export()
+end
+
+return { Parser = create_parser, scan = scan, parse_spec = parse_spec }
diff --git a/macros/luatex/generic/lparse/lparse.pdf b/macros/luatex/generic/lparse/lparse.pdf
new file mode 100644
index 0000000000..c1afc32823
--- /dev/null
+++ b/macros/luatex/generic/lparse/lparse.pdf
Binary files differ
diff --git a/macros/luatex/generic/lparse/lparse.sty b/macros/luatex/generic/lparse/lparse.sty
new file mode 100644
index 0000000000..9d4fb2412f
--- /dev/null
+++ b/macros/luatex/generic/lparse/lparse.sty
@@ -0,0 +1,22 @@
+%% lparse.sty
+%% Copyright 2023 Josef Friedrich
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Josef Friedrich.
+%
+% This work consists of the files lparse.lua, lparse.tex,
+% and lparse.sty.
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{lparse}[2023/01/29 v0.1.0 Parse and scan macro arguments in Lua on LuaTeX using a xparse like argument specification]
+
+\input lparse.tex
diff --git a/macros/luatex/generic/lparse/lparse.tex b/macros/luatex/generic/lparse/lparse.tex
new file mode 100644
index 0000000000..7393d581e5
--- /dev/null
+++ b/macros/luatex/generic/lparse/lparse.tex
@@ -0,0 +1,22 @@
+%% lparse.tex
+%% Copyright 2023 Josef Friedrich
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Josef Friedrich.
+%
+% This work consists of the files lparse.lua, lparse.tex,
+% and lparse.sty.
+
+\directlua
+{
+ lparse = require('lparse')
+}
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index ab75e27e88..b40e026dd1 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -4,6 +4,7 @@ $mirrors = {
'https://mirror.marwan.ma/ctan/' => 1,
},
'South Africa' => {
+ 'http://ftp.sun.ac.za/ftp/CTAN/' => 1,
'https://mirror.ufs.ac.za/ctan/' => 1,
},
},
@@ -138,6 +139,7 @@ $mirrors = {
},
'Portugal' => {
'https://ftp.eq.uc.pt/software/TeX/' => 1,
+ 'https://mirrors.up.pt/pub/CTAN/' => 1,
},
'Romania' => {
'https://mirrors.nxthost.com/ctan/' => 1,
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index 3a900295fc..77ae088d25 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,11 +26,11 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2022
-depend revision/65662
+depend revision/65679
name 00texlive.image
category TLCore
-revision 65660
+revision 65680
shortdesc TeX Live files only in the source repository
longdesc The files here are not copied by the installer and containers
longdesc are not built for them; they exist only in the source
@@ -40,7 +40,7 @@ longdesc IgnorePatterns in the check_files routine in tlmgr.pl augment
longdesc this list. Those are not included in the source/ tarball. For
longdesc information on the 00texlive prefix see
longdesc 00texlive.installation(.tlpsrc)
-runfiles size=12961
+runfiles size=12962
.mkisofsrc
autorun.inf
texmf-dist/README
@@ -3002,6 +3002,7 @@ runfiles size=12961
tlpkg/tlpsrc/na-box.tlpsrc
tlpkg/tlpsrc/na-position.tlpsrc
tlpkg/tlpsrc/nag.tlpsrc
+ tlpkg/tlpsrc/naive-ebnf.tlpsrc
tlpkg/tlpsrc/nameauth.tlpsrc
tlpkg/tlpsrc/namedef.tlpsrc
tlpkg/tlpsrc/namedtensor.tlpsrc
@@ -4697,7 +4698,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 65654
+revision 65664
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
@@ -36468,7 +36469,7 @@ catalogue-version 2.5
name bibcop
category Package
-revision 65505
+revision 65665
shortdesc Style checker for .bib files
longdesc This LaTeX package checks the quality of your .bib file and
longdesc emits warning messages if any issues are found. For this, the
@@ -36479,10 +36480,10 @@ longdesc Windows.
depend bibcop.ARCH
depend iexec
depend pgfopts
-containersize 6352
-containerchecksum 11709d0ea1a7b769b04a497ed104bdc0d43617ae686687dd2b0c9de18f9dbcbcea910c37fc1362a4213995cad4acd40e2adf23270f900a6611a69ff58206a005
-doccontainersize 354964
-doccontainerchecksum d99d12aaf3ccf7baf9d2aa755e897f7db5e4138aef3582c7130583206bf7de6f4b7539a7b05534518566799b914ff39b2e90b9a83aa54ddad3dbb6763140952d
+containersize 6420
+containerchecksum c9d4ea81fcbed5a35edcf6594ca9174eb86e8c2196d49970847011e849ee4bbc464b365fcea0ac24ea00e97123cfeb633b5c542ce9a7bd6331c05ca3618e9c92
+doccontainersize 355096
+doccontainerchecksum e5d568a91f14ba4d13b21ef61a183f1c3c6c641f3fcf71782ad86692dcbd2a8f585a5c099be825caccc4d848361329f9ab2d46451fbc35e693078ae12ad6cd0c
docfiles size=94
texmf-dist/doc/bibtex/bibcop/DEPENDS.txt
texmf-dist/doc/bibtex/bibcop/LICENSE.txt
@@ -36491,8 +36492,8 @@ docfiles size=94
texmf-dist/doc/bibtex/bibcop/bibcop.pdf details="Package documentation"
texmf-dist/doc/man/man1/bibcop.1
texmf-dist/doc/man/man1/bibcop.man1.pdf
-srccontainersize 5620
-srccontainerchecksum 4d3569baf515ba4e4e25755b763d36d17fd03217984b65f61a94d5c02a7e8d3bc9b99dd1d095b470ea7202371bcb88d8f111ae62b64f2baf4092c95ce599cc52
+srccontainersize 5628
+srccontainerchecksum 710387bd6068fc6987f60e51a30a31c1ccc4654ee666d6f2c5d4fc2488baa7ce799496bb8e95393fe1fe38918d759ed62f9019ed5d7c5b0e1134ce5f02b0cb4d
srcfiles size=5
texmf-dist/source/bibtex/bibcop/bibcop.dtx
texmf-dist/source/bibtex/bibcop/bibcop.ins
@@ -36503,7 +36504,7 @@ catalogue-contact-repository https://github.com/yegor256/bibcop
catalogue-ctan /biblio/bibtex/utils/bibcop
catalogue-license mit
catalogue-topics biblio-supp ext-code
-catalogue-version 0.0.7
+catalogue-version 0.0.8
name bibcop.aarch64-linux
category Package
@@ -42842,7 +42843,7 @@ catalogue-version 2.51
name bmstu
category Package
-revision 65656
+revision 65680
shortdesc A LaTeX class for Bauman Moscow State Technical University
relocated 1
longdesc The class defines commands and environments for creating
@@ -42854,11 +42855,10 @@ longdesc trebovaniiam MGTU im. N. E. Baumanai GOST 7.32-2017.
longdesc Raschetno-poiasnitel'nye zapiski k vypusknym kvalifikatsionnym
longdesc rabotam uspeshno prokhodiat proverku TestVKR (sborka 203).
containersize 5652
-containerchecksum 91d28a7f6f2f08ab2eccf4d8c9aad6c26c75c9af4756267bb310533b64a38482f8c7d9d6fa490aaf654c1810ed3afb9c56f17d6937bec738f9757eef8f11b9d1
-doccontainersize 1290332
-doccontainerchecksum 809d13bd49b7f9beb1662f13a50ae8a8a1b1a4bc0bed974080ce816abf86060a91531bb6c777b112da50380461ebad9b19ae11b4eeef0b030545e5018f34d7dd
+containerchecksum 6de625592993259eafdbcf16dab8389f5bf5e9ba7d3aed349ec82a1b2ba06977549aa49cb2fae6767201abe87d6cd67246e94f46640a49db80c3b667a04b79ab
+doccontainersize 1290304
+doccontainerchecksum 72f068223213a4ed6dbf1a5b9e00283446138114c7daa333ce22402936040c5e7d8662dcf55100ee99e3001602b1334a3858176ecc213c9d8cce4252282ec157
docfiles size=360
- RELOC/doc/latex/bmstu/0.0
RELOC/doc/latex/bmstu/README.md details="Readme"
RELOC/doc/latex/bmstu/bmstu-logo.pdf
RELOC/doc/latex/bmstu/examples/bmstu-examples.pdf details="Example of use"
@@ -72147,7 +72147,7 @@ containerchecksum d50ac4fdb7c080698344d848408cd31e1941f3975bf517cf2358b6bf385aa1
name collection-mathscience
category Collection
-revision 65578
+revision 65674
shortdesc Mathematics, natural sciences, computer science packages
relocated 1
depend 12many
@@ -72301,6 +72301,7 @@ depend mhequ
depend miller
depend mismath
depend multiobjective
+depend naive-ebnf
depend namedtensor
depend natded
depend nath
@@ -72397,8 +72398,8 @@ depend youngtab
depend yquant
depend ytableau
depend zx-calculus
-containersize 1648
-containerchecksum c504ab7a7568b5e35c2d00b9e3113e23b3895ab03744c423e82bdffbdd7a5d02b74006284bee41fbbfd7fb1ffd627de6cea35e11d71c0574a6b6629196545347
+containersize 1656
+containerchecksum 9b1e9840eb502e763a4b43b36f71d56acb273ada68655eb09c080d17ccae05b04d92e5ab9549f3e4fcc890403d2e7343217c8ae43efc721bcf27c96c938f01b1
name collection-metapost
category Collection
@@ -94059,7 +94060,7 @@ catalogue-topics font font-symbol font-type1 linguistic
name diffcoeff
category Package
-revision 65614
+revision 65676
shortdesc Write differential coefficients easily and consistently
relocated 1
longdesc This package allows the easy and consistent writing of
@@ -94072,11 +94073,11 @@ longdesc and the placement of the differentiand (numerator or appended).
longdesc The package is built on xtemplate and the configurability it
longdesc enables, extending to differentials (including simple line
longdesc elements) and jacobians.
-containersize 11116
-containerchecksum 6fe1c4769619374aed112510cec9d540603d13e79555418b86b5bb9784d4de57ac9ec374a35cfeba23e72fe4979ec4f21d164afb505afeb4c9af5b05d26390bb
-doccontainersize 1326872
-doccontainerchecksum bead98c0750aa9b0f231a647318d7a03ce188c625af49ee35974a46cf993eb9c0a92eac6dec7708c1897228898affcec1ac67ec9e6880e572c3615c029844a89
-docfiles size=451
+containersize 11108
+containerchecksum 3f6e304dbe15deee61f6a54f8d9c69a06bf1ef48e9a0583179bbf5afbaec8364fb3a974f47ab6d6f350c6ea7083095854109e1d4555e2395781e40774ce46f67
+doccontainersize 1328268
+doccontainerchecksum c742e1e8679f3ebf58f2a189acb695af893231c922f5659d9c586f5c684020f30368cf41def55dc1537b25eb05a8b4d8de771d19129dc15df64cdab7b3986ca6
+docfiles size=452
RELOC/doc/latex/diffcoeff/README.txt details="Readme"
RELOC/doc/latex/diffcoeff/diffcoeff.pdf details="Package documentation"
RELOC/doc/latex/diffcoeff/diffcoeff.tex
@@ -124990,7 +124991,7 @@ catalogue-version 1.1
name fixdif
category Package
-revision 65658
+revision 65669
shortdesc Macros for typesetting differential operators
relocated 1
longdesc This package redefines the \d command in LaTeX and provides an
@@ -124998,16 +124999,16 @@ longdesc interface to define new commands for differential operators. It
longdesc is compatible with pdfTeX, XeTeX and LuaTeX, and can also be
longdesc used with the unicode-math package.
containersize 1988
-containerchecksum d0badb2af5d597adc05efd10b9c700aeed4e62b594cb3ea6c6845eb0de743b135786ab1653c5aa247a7ff3558979bd8cdf37e8280295c1947281e5fc753f2c3b
-doccontainersize 251492
-doccontainerchecksum 5c878ce2248bb6d0fd8f25c532fa111ed164f00b8981874078e75e0d3d41c945c0a7d36029ff48b4ef4751746fd7e0063e9e1969c5a5d5d26852ee6cddf51ebb
-docfiles size=67
+containerchecksum ad2101c7d714baea145e0e7a0550e60494995f3d78135841dda63116fe164e4f06aa14192856967d2731afdfde633c7999e450523ee138d76515a17e95f67fa2
+doccontainersize 247816
+doccontainerchecksum a74e2e12f207150c9c8ada79021db2b9df39000819c7c62a94c88714785ba000c7908148eab7c49912f508b386c4e928398034ddd6ae3a5592fccceee5c43e6a
+docfiles size=66
RELOC/doc/latex/fixdif/README.md details="Readme"
RELOC/doc/latex/fixdif/fixdif-zh-cn.pdf details="Package documentation (Chinese)" language="zh"
RELOC/doc/latex/fixdif/fixdif-zh-cn.tex
RELOC/doc/latex/fixdif/fixdif.pdf details="Package documentation (English)"
srccontainersize 6912
-srccontainerchecksum a6a300b21a3e338e0d19882404e37df53e3181e643386f72f148401927f9c2e3293c21ca9f15ff7efe540e4abadb2603f5109e38d5e03b08ceba1ee0a528dc7e
+srccontainerchecksum cc338459b54fa5666e8877450d5f9f15696d5fbffee5a8e9abb5ab27a28e50d8b6e911082713fa377e8342a09bf827f9c99caebe9fc5470746f5e8f90175d8a4
srcfiles size=7
RELOC/source/latex/fixdif/fixdif.dtx
RELOC/source/latex/fixdif/fixdif.ins
@@ -125019,7 +125020,7 @@ catalogue-contact-repository https://github.com/AlphaZTX/fixdif
catalogue-ctan /macros/latex/contrib/fixdif
catalogue-license lppl1.3c
catalogue-topics maths
-catalogue-version 2.0
+catalogue-version 2.0a
name fixfoot
category Package
@@ -130321,7 +130322,7 @@ catalogue-version 1.3
name frenchmath
category Package
-revision 65614
+revision 65677
shortdesc Typesetting mathematics according to French rules
relocated 1
longdesc The package provides: capital letters in roman (upright shape)
@@ -130332,16 +130333,16 @@ longdesc before a semicolon and around square brackets, some useful
longdesc macros and aliases for symbols used in France: \infeg, \supeg,
longdesc \paral, ... several macros for writing french operator names
longdesc like pgcd, ppcm, Card, rg, Vect, ...
-containersize 2780
-containerchecksum 2934bf06a5ddfc9f8228fa34bbf42b47cd8319fb3fac65b9b25fbe7482c92ead6b066e3918ea935cd001967cc85f8fa4730020ea7988b45e45b02e671a3d49ac
-doccontainersize 230184
-doccontainerchecksum 34ad61bdd94839682ca34ed0cd0367737031057039981eb63593b6c951cd27ec0ee7ab80fd85532599ec5d2de7310326af5ad5ea2200596a2823749e4fd97dcc
+containersize 2864
+containerchecksum 24497200f1bd536c8ab9cafd7adb15ad65ae9e7f6ec65156b9c906dd674aaa7c57d40a9bf95ffdbe029ba06b6ed6726d573e4678b362e8ab6ee68738f612d10d
+doccontainersize 230616
+doccontainerchecksum ba0cad9cd8c65ac2557458ccbb2c9dd5c336283ba0bd8fa7261a6bcf70a415e2bb98d63348f8eb3b5b5b7ad06eebaa9dcb04416408fd9a84d9d1c52832ab5345
docfiles size=65
RELOC/doc/latex/frenchmath/README.md details="Readme"
RELOC/doc/latex/frenchmath/frenchmath.pdf details="Package documentation" language="fr"
-srccontainersize 13044
-srccontainerchecksum 7457ffb5a7939a85a985be44c65ce4a16de873d2c7c43a670461970c90c43449d41f488547c69e701d2ec1d378aa26073706b0f628b6eb1039792d1ccb812c24
-srcfiles size=11
+srccontainersize 13224
+srccontainerchecksum da9759ecdef9d4873e8661573934a8a77013591f1743efe7656a581df545eb9e7a72058930984ba23a444924ec00b9b7147e1836c81117b69ec9fabea90d7d21
+srcfiles size=12
RELOC/source/latex/frenchmath/frenchmath.dtx
RELOC/source/latex/frenchmath/frenchmath.ins
runfiles size=3
@@ -145046,7 +145047,7 @@ catalogue-version 0.02
name hvextern
category Package
-revision 63711
+revision 65670
shortdesc Write and execute external code, and insert the output
relocated 1
longdesc This package allows to write MetaPost, TeX, ConTeXt, LaTeX,
@@ -145054,28 +145055,28 @@ longdesc LuaTeX, LuaLaTeX, XeTeX, XeLaTeX, Lua, Perl, or Python source
longdesc code into an external file, run that file via shell-escape to
longdesc create PDF, PNG, or text output, and include that output
longdesc automatically into the main LaTeX document.
-containersize 7136
-containerchecksum 82d584145855932724f2b5b1dade92f097fb60da21fb856c99b2abeadab911a1855d8429fba30919526b2a69d2f26fccd6c74e8e82cf99d172991f305acf02a0
-doccontainersize 1125232
-doccontainerchecksum 6e6c396285c64ed9767a70b989840330cb15a1ee595537bb7b4be2179814082a2f03c0106d52614444437c9f20815df4ff91a18321ebfa04bf13264b1037bba6
-docfiles size=363
+containersize 7980
+containerchecksum 2a0b0771f99c83fd3e33aa0da43afc51ec32ff3eed45ece76eadbe3c4eedf7ddaec16d4ba32f8829cd16e61af93f5b9be83686262174f07ca863f5d183b5520b
+doccontainersize 1133992
+doccontainerchecksum 0dfcd19c671a4e6100df0b89113d517abbc803e411a347059c44652106b7990b7371b96a6bde85ada1420f2029eeb5d614fae5b44b3c2dc7cb9191d55341cae7
+docfiles size=382
RELOC/doc/latex/hvextern/Changes
RELOC/doc/latex/hvextern/README details="Readme"
RELOC/doc/latex/hvextern/hvdoctools.sty
RELOC/doc/latex/hvextern/hvextern.pdf details="Package documentation"
RELOC/doc/latex/hvextern/hvextern.tex
-runfiles size=10
+runfiles size=13
RELOC/tex/latex/hvextern/hvextern-checkfile.lua
RELOC/tex/latex/hvextern/hvextern.lua
RELOC/tex/latex/hvextern/hvextern.sty
catalogue-ctan /macros/latex/contrib/hvextern
catalogue-license lppl1.3c
catalogue-topics ext-code comp-supp image-supp expl3
-catalogue-version 0.32
+catalogue-version 0.33
name hvfloat
category Package
-revision 65069
+revision 65671
shortdesc Controlling captions, fullpage and doublepage floats
relocated 1
longdesc This package defines a macro to place objects (tables and
@@ -145087,11 +145088,11 @@ longdesc \hvFloat{figure}{\includegraphics{rose}}{Caption}{fig:0}.
longdesc Options are provided to place captions to the right or left,
longdesc and rotated. Setting nonFloat=true results in placing the float
longdesc here.
-containersize 12372
-containerchecksum 0471fa0fa232068b67613132f52e3b45162aa87405961d7791e4d3c3527df8a4406a4de328966ed34634070497e43ff1f11b20b1216ee90a327ef231eeae5286
-doccontainersize 11546656
-doccontainerchecksum 4e66d93022aae324ecab00c3ededbec9d68f8fd780f933c56b0a9de60ef8c400410f4a6b3898280f3ff4d3ee35241101e9aad3fd350a361db525fb1cb7ef8c65
-docfiles size=4445
+containersize 13328
+containerchecksum 9189c7cdffe77ca6ea69288641453fb057512079dbf59a112de18d6a496a487e928a4ccdcf9ae4b69433ee73b03ab07e4ea6ebe5f881619b57b24be3ee787f11
+doccontainersize 10482984
+doccontainerchecksum 1dcfe143a1b525763a2c4e1c5f9761002cbbf46259eac4d18d8e95033af86f92c9a9d1106070f696500db89feefec6717c934ec310d463cb4161a3497df9d548
+docfiles size=4827
RELOC/doc/latex/hvfloat/CTAN.png
RELOC/doc/latex/hvfloat/Changes
RELOC/doc/latex/hvfloat/README details="Readme"
@@ -145112,6 +145113,8 @@ docfiles size=4445
RELOC/doc/latex/hvfloat/default2s1c.tex
RELOC/doc/latex/hvfloat/default2s2c.pdf
RELOC/doc/latex/hvfloat/default2s2c.tex
+ RELOC/doc/latex/hvfloat/doublefullpage2s2c.pdf
+ RELOC/doc/latex/hvfloat/doublefullpage2s2c.tex
RELOC/doc/latex/hvfloat/doublepage2s1c.pdf
RELOC/doc/latex/hvfloat/doublepage2s1c.tex
RELOC/doc/latex/hvfloat/doublepage2s2c.pdf
@@ -145126,6 +145129,8 @@ docfiles size=4445
RELOC/doc/latex/hvfloat/even2s2c.tex
RELOC/doc/latex/hvfloat/felsen-wasser-small.pdf
RELOC/doc/latex/hvfloat/frose.png
+ RELOC/doc/latex/hvfloat/fullpage1s1c.pdf
+ RELOC/doc/latex/hvfloat/fullpage1s1c.tex
RELOC/doc/latex/hvfloat/fullpage1s2c.pdf
RELOC/doc/latex/hvfloat/fullpage1s2c.tex
RELOC/doc/latex/hvfloat/hvfloat.pdf details="Package documentation"
@@ -145171,6 +145176,8 @@ docfiles size=4445
RELOC/doc/latex/hvfloat/outer2s2c.tex
RELOC/doc/latex/hvfloat/paper-after1s1c.pdf
RELOC/doc/latex/hvfloat/paper-after1s1c.tex
+ RELOC/doc/latex/hvfloat/paper-after2s2c.pdf
+ RELOC/doc/latex/hvfloat/paper-after2s2c.tex
RELOC/doc/latex/hvfloat/paper-default1s1c.pdf
RELOC/doc/latex/hvfloat/paper-default1s1c.tex
RELOC/doc/latex/hvfloat/paper-default1s2c.pdf
@@ -145179,10 +145186,16 @@ docfiles size=4445
RELOC/doc/latex/hvfloat/paper-default2s1c.tex
RELOC/doc/latex/hvfloat/paper-default2s2c.pdf
RELOC/doc/latex/hvfloat/paper-default2s2c.tex
+ RELOC/doc/latex/hvfloat/paper-even2s1c.pdf
+ RELOC/doc/latex/hvfloat/paper-even2s1c.tex
RELOC/doc/latex/hvfloat/paper-inner2s2c.pdf
RELOC/doc/latex/hvfloat/paper-inner2s2c.tex
+ RELOC/doc/latex/hvfloat/paper-odd2s1c.pdf
+ RELOC/doc/latex/hvfloat/paper-odd2s1c.tex
RELOC/doc/latex/hvfloat/paper-right1s1c.pdf
RELOC/doc/latex/hvfloat/paper-right1s1c.tex
+ RELOC/doc/latex/hvfloat/paper-twocolcaption-after2s2c.pdf
+ RELOC/doc/latex/hvfloat/paper-twocolcaption-after2s2c.tex
RELOC/doc/latex/hvfloat/preamble.ltx
RELOC/doc/latex/hvfloat/right1s1c.pdf
RELOC/doc/latex/hvfloat/right1s1c.tex
@@ -145216,14 +145229,14 @@ docfiles size=4445
RELOC/doc/latex/hvfloat/wide1s2c.tex
RELOC/doc/latex/hvfloat/wide2s2c.pdf
RELOC/doc/latex/hvfloat/wide2s2c.tex
-runfiles size=21
+runfiles size=23
RELOC/tex/latex/hvfloat/hvfloat-fps.sty
RELOC/tex/latex/hvfloat/hvfloat.sty
catalogue-also rotating
catalogue-ctan /macros/latex/contrib/hvfloat
catalogue-license lppl
catalogue-topics float box-manip
-catalogue-version 2.44
+catalogue-version 2.45
name hvindex
category Package
@@ -145408,21 +145421,21 @@ catalogue-version 2.7
name hypdoc
category Package
-revision 65614
+revision 65678
shortdesc Hyper extensions for doc.sty
relocated 1
longdesc This package adds hypertext features to the package doc that is
longdesc used in the documentation system of LaTeX2e. Bookmarks are
longdesc added and references are linked as far as possible.
containersize 3556
-containerchecksum 6a0906e7cca733d9af52ca4b05d96276b8b4dea731892f09a9a074f7638246ee1397e03d49a0fd0771ca8242f785c3fd9e5ae6878a4d16760ec32ebd95a42251
-doccontainersize 324844
-doccontainerchecksum ef008fb98ab515cdfa51d09bfa14f1b6a139f0e24b47408734092eda033d2637bd7d6855a3438fd9b94c69f64cc1ab8bbb41fae20726832b8c70ee8d12bbbf45
+containerchecksum 216c3adfa731d4c18b7072d3fd812065195bd06b849cc2b669650a24d51b93cd5c4dd8b9dbfb5874e90d2b928e32a675d5bafed1f5543b826041374f2d4885dd
+doccontainersize 325076
+doccontainerchecksum 8ef2afe4f1e69aa9934d80363d206a852444396a7067e99ee9ea33c5ab8648e94997631e657f6eca0d9d65e4c14132d46eac7d639ea5f8ba558e83d17c39a2f4
docfiles size=83
RELOC/doc/latex/hypdoc/README.md details="Readme"
RELOC/doc/latex/hypdoc/hypdoc.pdf details="Package documentation"
-srccontainersize 8528
-srccontainerchecksum 389164b7e9080f677435e216b5cc69d7041697f71b533dcf62cb9528d3f1ff0d67692cb1e5784c1242d682dc41db5f0260d30a01d5f1dfb2c48465b6c2783a88
+srccontainersize 8564
+srccontainerchecksum a68d3134f4c96ee6edcd3da623fc37b475c5ec7d599e363b2d5bb14bfb74d4906b7831d595cd1e547534e773a0348cd4cd11252f7ebdb64c7ed11ad0a5e2ab9a
srcfiles size=9
RELOC/source/latex/hypdoc/hypdoc.dtx
runfiles size=3
@@ -202807,22 +202820,20 @@ catalogue-version 0.5
name mcf2graph
category Package
-revision 65499
+revision 65666
shortdesc Draw chemical structure diagrams with MetaPost
relocated 1
longdesc The Molecular Coding Format (MCF) is a linear notation for
longdesc describing chemical structure diagrams. This package converts
longdesc MCF to graphic files using MetaPost.
-containersize 448
-containerchecksum 9b6a081ceeb9d1f1766e8d7e8a0731f34e4e090765ec1d7f1120fa6421a0d6320c1db67ae9c6951cd3d4cb0ee3bcb96a1328ffbf4f467fea3b991ad171d21546
-doccontainersize 885248
-doccontainerchecksum 3077c49fabeaee01bf63421b9998413746475d29315acbd194e68d423f7f63f6959652e83b4aacdd5ed4f36f490afc93e608735ccbf13a86da8ee3cc5754a1df
-docfiles size=297
+containersize 444
+containerchecksum 35567c70e718f97974419280f8e68e4226203f1100e450896198ca7cdc8e6b006a1b428f44c2379bfafeb8fcd884845b1dd7c2e54b2a3f9317af054ed7902b06
+doccontainersize 858520
+doccontainerchecksum 1b8a718afe98fd358cf4fd74acd7e2a1bedd8852adb80efca97e3dac598a5fb6deaa977ba19c137ba086ecef9a50af1408d7bd16924c8137f76909cabc1efb7b
+docfiles size=289
RELOC/doc/metapost/mcf2graph/CHANGELOG
RELOC/doc/metapost/mcf2graph/README details="Readme"
RELOC/doc/metapost/mcf2graph/mcf2graph.mp
- RELOC/doc/metapost/mcf2graph/mcf_exa_code.pdf
- RELOC/doc/metapost/mcf2graph/mcf_exa_code.tex
RELOC/doc/metapost/mcf2graph/mcf_exa_soc.mp
RELOC/doc/metapost/mcf2graph/mcf_example.pdf details="Molecular Coding Format Examples"
RELOC/doc/metapost/mcf2graph/mcf_example.tex
@@ -202832,7 +202843,7 @@ docfiles size=297
catalogue-ctan /graphics/mcf2graph
catalogue-license mit
catalogue-topics graphics graphics-mpost chemistry
-catalogue-version 4.91
+catalogue-version 4.92
name mcite
category Package
@@ -216531,28 +216542,28 @@ catalogue-version 1.03
name moodle
category Package
-revision 57683
+revision 65672
shortdesc Generating Moodle quizzes via LaTeX
relocated 1
longdesc A package for writing Moodle quizzes in LaTeX. In addition to
longdesc typesetting the quizzes for proofreading, the package compiles
longdesc an XML file to be uploaded to a Moodle server.
-containersize 29392
-containerchecksum b2f992d02b16711eb5a79247d0f0b7b590ab21f419f181dcfec33006e08181f035c502f3a4d473fd211ed391f5d6225f2a91946649911db7af851f97d1ba2da3
-doccontainersize 313796
-doccontainerchecksum 9c609a686d13a8577f672988fa037ec48cc46b4006f7d42070c1411978cce615ace296a10d9a1140671c9972362a4ddcda5ceb80ab35e8b9c0628d90032b53a7
-docfiles size=287
+containersize 37152
+containerchecksum 0a297097f864ed3dc8c9d263a6a3aa8930732679a585aa34e2e5b31852bdfc3cff40118d3b67566816dfeda0f74282a476ad8b5ad793d2c433cf44f41f7c91bf
+doccontainersize 421500
+doccontainerchecksum ee40b07bc0ff2ff75f18eeb9ea68dec0a624a1b75b81ac00ea9c5caae3f6232213e1a5ff7028be28372cfc43685f4004059d972176eaa2b18688f16f8ef2ba09
+docfiles size=351
RELOC/doc/latex/moodle/LICENSE
RELOC/doc/latex/moodle/README.md details="Readme"
RELOC/doc/latex/moodle/moodle.pdf details="Package documentation"
+ RELOC/doc/latex/moodle/test/check_babel.tex
+ RELOC/doc/latex/moodle/test/check_polyglossia.tex
RELOC/doc/latex/moodle/test/fig/11.PNG
RELOC/doc/latex/moodle/test/fig/22.pdf
RELOC/doc/latex/moodle/test/fig/3.gif
RELOC/doc/latex/moodle/test/fig/4.jpg
RELOC/doc/latex/moodle/test/fig/5.jpeg
- RELOC/doc/latex/moodle/test/fig/MoodlE_logo.SVG
- RELOC/doc/latex/moodle/test/fig/NoodlE_logo.png
- RELOC/doc/latex/moodle/test/fig/NoodlE_logo.svg
+ RELOC/doc/latex/moodle/test/fig/NoodlE_logo.SVG
RELOC/doc/latex/moodle/test/latin1ref/test_allornothing-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_autopoints-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_calculated_python-moodle.ref
@@ -216563,6 +216574,7 @@ docfiles size=287
RELOC/doc/latex/moodle/test/latin1ref/test_cloze_shortanswer-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_commands-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_description-moodle.ref
+ RELOC/doc/latex/moodle/test/latin1ref/test_diacritics_and_ligatures-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_environments-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_escaping_right_braces_in_cloze-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_essay-moodle.ref
@@ -216573,28 +216585,32 @@ docfiles size=287
RELOC/doc/latex/moodle/test/latin1ref/test_generalfeedback-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_german-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_handout-moodle.ref
+ RELOC/doc/latex/moodle/test/latin1ref/test_horizontal_spacing-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_htmlonly-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_includegraphics-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_includegraphics_via_tikz-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_includegraphics_via_tikz_and_svg-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_includegraphics_with_svg-moodle.ref
- RELOC/doc/latex/moodle/test/latin1ref/test_macros-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_matching-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_math-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_mathenv-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_minted-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_multi-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_multiple_categories-moodle.ref
+ RELOC/doc/latex/moodle/test/latin1ref/test_numerical-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_paragraph_breaks-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_penalty-moodle.ref
- RELOC/doc/latex/moodle/test/latin1ref/test_point_points-moodle.ref
+ RELOC/doc/latex/moodle/test/latin1ref/test_points-moodle.ref
+ RELOC/doc/latex/moodle/test/latin1ref/test_punctuation_and_symbols-moodle.ref
+ RELOC/doc/latex/moodle/test/latin1ref/test_samepage-moodle.ref
+ RELOC/doc/latex/moodle/test/latin1ref/test_sanction-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_shortanswer-moodle.ref
- RELOC/doc/latex/moodle/test/latin1ref/test_special_characters-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_tags-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_tikz-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_tikz_with_svg-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_tolerance-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_truefalse-moodle.ref
+ RELOC/doc/latex/moodle/test/latin1ref/test_turkish-moodle.ref
RELOC/doc/latex/moodle/test/latin1ref/test_verbatim-moodle.ref
RELOC/doc/latex/moodle/test/makefile
RELOC/doc/latex/moodle/test/test_allornothing.tex
@@ -216608,6 +216624,7 @@ docfiles size=287
RELOC/doc/latex/moodle/test/test_cloze_shortanswer.tex
RELOC/doc/latex/moodle/test/test_commands.tex
RELOC/doc/latex/moodle/test/test_description.tex
+ RELOC/doc/latex/moodle/test/test_diacritics_and_ligatures.tex
RELOC/doc/latex/moodle/test/test_environments.tex
RELOC/doc/latex/moodle/test/test_escaping_right_braces_in_cloze.tex
RELOC/doc/latex/moodle/test/test_essay.tex
@@ -216618,28 +216635,32 @@ docfiles size=287
RELOC/doc/latex/moodle/test/test_generalfeedback.tex
RELOC/doc/latex/moodle/test/test_german.tex
RELOC/doc/latex/moodle/test/test_handout.tex
+ RELOC/doc/latex/moodle/test/test_horizontal_spacing.tex
RELOC/doc/latex/moodle/test/test_htmlonly.tex
RELOC/doc/latex/moodle/test/test_includegraphics.tex
RELOC/doc/latex/moodle/test/test_includegraphics_via_tikz.tex
RELOC/doc/latex/moodle/test/test_includegraphics_via_tikz_and_svg.tex
RELOC/doc/latex/moodle/test/test_includegraphics_with_svg.tex
- RELOC/doc/latex/moodle/test/test_macros.tex
RELOC/doc/latex/moodle/test/test_matching.tex
RELOC/doc/latex/moodle/test/test_math.tex
RELOC/doc/latex/moodle/test/test_mathenv.tex
RELOC/doc/latex/moodle/test/test_minted.tex
RELOC/doc/latex/moodle/test/test_multi.tex
RELOC/doc/latex/moodle/test/test_multiple_categories.tex
+ RELOC/doc/latex/moodle/test/test_numerical.tex
RELOC/doc/latex/moodle/test/test_paragraph_breaks.tex
RELOC/doc/latex/moodle/test/test_penalty.tex
- RELOC/doc/latex/moodle/test/test_point_points.tex
+ RELOC/doc/latex/moodle/test/test_points.tex
+ RELOC/doc/latex/moodle/test/test_punctuation_and_symbols.tex
+ RELOC/doc/latex/moodle/test/test_samepage.tex
+ RELOC/doc/latex/moodle/test/test_sanction.tex
RELOC/doc/latex/moodle/test/test_shortanswer.tex
- RELOC/doc/latex/moodle/test/test_special_characters.tex
RELOC/doc/latex/moodle/test/test_tags.tex
RELOC/doc/latex/moodle/test/test_tikz.tex
RELOC/doc/latex/moodle/test/test_tikz_with_svg.tex
RELOC/doc/latex/moodle/test/test_tolerance.tex
RELOC/doc/latex/moodle/test/test_truefalse.tex
+ RELOC/doc/latex/moodle/test/test_turkish.tex
RELOC/doc/latex/moodle/test/test_verbatim.tex
RELOC/doc/latex/moodle/test/utf8ref/test_allornothing-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_autopoints-moodle.ref
@@ -216652,6 +216673,7 @@ docfiles size=287
RELOC/doc/latex/moodle/test/utf8ref/test_cloze_shortanswer-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_commands-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_description-moodle.ref
+ RELOC/doc/latex/moodle/test/utf8ref/test_diacritics_and_ligatures-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_environments-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_escaping_right_braces_in_cloze-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_essay-moodle.ref
@@ -216662,36 +216684,40 @@ docfiles size=287
RELOC/doc/latex/moodle/test/utf8ref/test_generalfeedback-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_german-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_handout-moodle.ref
+ RELOC/doc/latex/moodle/test/utf8ref/test_horizontal_spacing-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_htmlonly-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_includegraphics-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_includegraphics_via_tikz-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_includegraphics_via_tikz_and_svg-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_includegraphics_with_svg-moodle.ref
- RELOC/doc/latex/moodle/test/utf8ref/test_macros-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_matching-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_math-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_mathenv-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_minted-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_multi-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_multiple_categories-moodle.ref
+ RELOC/doc/latex/moodle/test/utf8ref/test_numerical-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_paragraph_breaks-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_penalty-moodle.ref
- RELOC/doc/latex/moodle/test/utf8ref/test_point_points-moodle.ref
+ RELOC/doc/latex/moodle/test/utf8ref/test_points-moodle.ref
+ RELOC/doc/latex/moodle/test/utf8ref/test_punctuation_and_symbols-moodle.ref
+ RELOC/doc/latex/moodle/test/utf8ref/test_samepage-moodle.ref
+ RELOC/doc/latex/moodle/test/utf8ref/test_sanction-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_shortanswer-moodle.ref
- RELOC/doc/latex/moodle/test/utf8ref/test_special_characters-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_tags-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_tikz-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_tikz_with_svg-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_tolerance-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_truefalse-moodle.ref
+ RELOC/doc/latex/moodle/test/utf8ref/test_turkish-moodle.ref
RELOC/doc/latex/moodle/test/utf8ref/test_verbatim-moodle.ref
-srccontainersize 60312
-srccontainerchecksum 3dde72eb7b513695ad3d59dc51bb8f5ba93ed3c2d6d8e90bcbd65e6ec3f86c3ef392eda8537f7a096badf0fa97080b5fb2d61831b38339946b0f4b734ac419b5
-srcfiles size=70
+srccontainersize 75824
+srccontainerchecksum 02754bd2d6ec9ca07e07b3768855cf100d09de057ad7b3605dd7a97574c7f8024028ca882b3b6a1cfa25e49ec40400690ed7e7e1404f0836a9d6158cfec30bca
+srcfiles size=93
RELOC/source/latex/moodle/makefile
RELOC/source/latex/moodle/moodle.dtx
RELOC/source/latex/moodle/moodle.ins
-runfiles size=39
+runfiles size=54
RELOC/tex/latex/moodle/moodle.sty
catalogue-contact-bugs https://framagit.org/mattgk/moodle/-/issues
catalogue-contact-development https://framagit.org/mattgk/moodle
@@ -216699,7 +216725,7 @@ catalogue-contact-repository https://framagit.org/mattgk/moodle/-/tree/master
catalogue-ctan /macros/latex/contrib/moodle
catalogue-license lppl1.3
catalogue-topics exam
-catalogue-version 0.9
+catalogue-version 1.0
name moreenum
category Package
@@ -220402,6 +220428,41 @@ catalogue-license lppl
catalogue-topics latex-qual
catalogue-version 0.7
+name naive-ebnf
+category Package
+revision 65674
+shortdesc EBNF in Plain Text
+relocated 1
+longdesc With the help of this LaTeX package a context-free grammar
+longdesc (CFG) may be rendered in a plain-text mode using a simplified
+longdesc EBNF notation
+depend filecontentsdef
+depend l3kernel
+depend pgfopts
+containersize 2012
+containerchecksum 97039c5aa7648c14cca948ad5c9dcf4c8f4a46abf2e81ed909b3a3efef75a0e393e2382c1576db1d1bf63b8bee1c7a1a7cd4cceca2967250c30f22e2455f6ec5
+doccontainersize 436192
+doccontainerchecksum 5f7c1dc1ea9433734b1665ccbf1e5866b5b028b2ae9cc26e1dc59bae5c973deda5f0f5c014d18ef47e8f9ed0cdb9c7f1179ae1786506ca82b9bf396afed42540
+docfiles size=112
+ RELOC/doc/latex/naive-ebnf/DEPENDS.txt
+ RELOC/doc/latex/naive-ebnf/LICENSE.txt
+ RELOC/doc/latex/naive-ebnf/README.md details="Readme"
+ RELOC/doc/latex/naive-ebnf/naive-ebnf.pdf details="Package documentation"
+srccontainersize 4156
+srccontainerchecksum c84ef97626440a0cd4db1138050b0b5cb9397c16f3ecc0c2ba90a0df9b7c1a7725d3b1a8f3b6550e48b6bb4103f3114accdb460b11383ad09b499fc34ee8b575
+srcfiles size=4
+ RELOC/source/latex/naive-ebnf/naive-ebnf.dtx
+ RELOC/source/latex/naive-ebnf/naive-ebnf.ins
+runfiles size=1
+ RELOC/tex/latex/naive-ebnf/naive-ebnf.sty
+catalogue-contact-bugs https://github.com/yegor256/naive-ebnf/issues
+catalogue-contact-home https://github.com/yegor256/naive-ebnf
+catalogue-contact-repository https://github.com/yegor256/naive-ebnf
+catalogue-ctan /macros/latex/contrib/naive-ebnf
+catalogue-license mit
+catalogue-topics formal-spec
+catalogue-version 0.0.2
+
name nameauth
category Package
revision 58026
@@ -249333,32 +249394,32 @@ catalogue-topics doc-supp
name piton
category Package
-revision 65557
+revision 65673
shortdesc Typeset Python listings with LPEG
relocated 1
longdesc This package uses the Lua library LPEG to typeset and highlight
longdesc Python listings.
-containersize 9780
-containerchecksum 32a895d6e4e497c0f585bb0d020d2a1d3a18c412cf69b22b2ce10c7072af280526ad27ef1edd080a8c8738797514493766e0a63f28908797243980838f815c81
-doccontainersize 535396
-doccontainerchecksum 8505ab7af3886979a9cc5ec72aead1105467069c54496113f7325f21ddca23127715d86eb7987d7658a59815e8c29caf6a5ff15698f492c2736212d2d7b77ce8
-docfiles size=221
+containersize 10328
+containerchecksum 80f097ed6a2c1e54ca994e6ffa2f03d8544c8cf28d44cc02f40cfa848b439b5e5ffb98a999ea0a9e7ccb0e4b38a52c70823ee970091e7c55d000751a075803a4
+doccontainersize 556520
+doccontainerchecksum 4adc82a222238f51df3dc208594a1235a33b1b12038e9f729bf7a343cbd279236edd056049f5e4e3cf607132e0f3101a6823f602be990d0b1dc4f7ba64f40a9b
+docfiles size=231
RELOC/doc/lualatex/piton/README.md details="Readme"
RELOC/doc/lualatex/piton/piton-french.pdf details="Package documentation (French)" language="fr"
RELOC/doc/lualatex/piton/piton-french.tex
RELOC/doc/lualatex/piton/piton.pdf details="Package documentation (English)"
-srccontainersize 28944
-srccontainerchecksum c6a9fee1189e8bc488680586039a3d6f83e4be507b45c2ba15eee4c533912e12295265a77c65b79fd11571c6d4520fdd8e7d57f358c32b78a0fe71cd22172d98
-srcfiles size=34
+srccontainersize 30932
+srccontainerchecksum 2bb2bf774e775c9e5fdbad29b38243ad7ae1b3daa9ed26a153c2e35d7fe18531db71b75711b8a789475d6b14194857b538023ebd226749a0b1765bc638b5ae2d
+srcfiles size=36
RELOC/source/lualatex/piton/piton.dtx
RELOC/source/lualatex/piton/piton.ins
-runfiles size=12
+runfiles size=13
RELOC/tex/lualatex/piton/piton.sty
catalogue-also codehigh
catalogue-ctan /macros/luatex/latex/piton
catalogue-license lppl1.3
catalogue-topics listing synt-hlt luatex
-catalogue-version 1.2
+catalogue-version 1.3
name pittetd
category Package
@@ -281191,7 +281252,7 @@ catalogue-version 0.302
name semantex
category Package
-revision 65614
+revision 65679
shortdesc Semantic, keyval-based mathematics
relocated 1
longdesc The SemanTeX package for LaTeX delivers a more semantic,
@@ -281208,10 +281269,10 @@ longdesc considered feature-complete and more or less stable, so using
longdesc it at this point should be safe. Still, suggestions, ideas, and
longdesc bug reports are more than welcome!
depend semtex
-containersize 26516
-containerchecksum 110354e10f5fdadc7886670cf4ead51e3a0c6f48221b81461ec0c3f95402f3f4c6b3ec10bf47dab5aeab600a602ff4bff37750702cf10383befa219ee891ca53
-doccontainersize 420252
-doccontainerchecksum 35d2b28b013697f85750a5253190cfc660358177b5339005fe8337f6a9e455e31baffad7d0c45c51808efca7f8931982f7673b7fafef8df779f1d3a41d1601b5
+containersize 26512
+containerchecksum 156ef55009e52bc91bead46963d5f383c9b760d4c72a45097de1e3ce3fcb1aae4686386efbf8a3abc2f18d16f59d02f297acd825a9cfa21e544ba2dde9986c13
+doccontainersize 420772
+doccontainerchecksum 1f94edb17be3e148a913e98ce020f5273085507537b51b4737c5c4d1589e415aa361cdb25264c412af8b93025b6dde204c625180c5182d319c199d5e8e591757
docfiles size=144
RELOC/doc/latex/semantex/README.md details="Readme"
RELOC/doc/latex/semantex/semantex.pdf details="Package documentation"
@@ -290151,7 +290212,7 @@ catalogue-topics font font-body font-serif font-proportional font-ttf font-type1
name spectralsequences
category Package
-revision 62261
+revision 65667
shortdesc Print spectral sequence diagrams using PGF/TikZ
relocated 1
longdesc The package is a specialized tool built on top of PGF/TikZ for
@@ -290168,11 +290229,11 @@ longdesc turn off most of the automated layout features and draw
longdesc replacements using TikZ commands. The package also provides a
longdesc carefully designed error reporting system intended to ensure
longdesc that it is as clear as possible what is going wrong.
-containersize 72148
-containerchecksum 217ab3a1d3823397947f2b3f449591c5d173f1a2a0e39be553cb6c0ae4f6b36bb41ccd6ba237f643123889a85ddc991145d4911ae7e8b6e5660a388ca4bb684b
-doccontainersize 1595632
-doccontainerchecksum 7b4d803b3fa2994a127d0af48dea655fd4a16c589f3619c4e0ec1a978b8aeff7636db4fb12be46e359495ee24076da22c0ae265893db63e6bdf22a33ff84a185
-docfiles size=512
+containersize 72236
+containerchecksum 797f7ded1824a025337a12b47a8b85d16d69b8e0f7999015c0b8618ce639f97a5883f1a694a22b56de4a237901e1a43b7cb0f387bb02f567301e59203b16d31b
+doccontainersize 2103268
+doccontainerchecksum 4c876bfdbdb40b6d1b58d1640aa39f02a29097f0ddc1015bbd6b415d0d7aa88c90c0d45edc444c69baeeb68741320745157466bff3242daa48526a1ebe21eaf1
+docfiles size=627
RELOC/doc/latex/spectralsequences/README.md details="Readme"
RELOC/doc/latex/spectralsequences/examples/ANSS-S_2.pdf
RELOC/doc/latex/spectralsequences/examples/ANSS-S_2.tex
@@ -290200,7 +290261,6 @@ docfiles size=512
RELOC/doc/latex/spectralsequences/examples/SSS-KZ3.tex
RELOC/doc/latex/spectralsequences/examples/hatcher.pdf
RELOC/doc/latex/spectralsequences/examples/hatcher.tex
- RELOC/doc/latex/spectralsequences/examples/spectralsequence-example.cls
RELOC/doc/latex/spectralsequences/examples/unstable_ASS_SO.pdf
RELOC/doc/latex/spectralsequences/examples/unstable_ASS_SO.tex
RELOC/doc/latex/spectralsequences/manual/examples/spectralsequencesmanual-KORP8.tex
@@ -290229,7 +290289,7 @@ catalogue-contact-repository https://github.com/SpectralSequences/latex
catalogue-ctan /graphics/pgf/contrib/spectralsequences
catalogue-license lppl
catalogue-topics pgf-tikz
-catalogue-version 1.3.2
+catalogue-version 1.3.3
name spelling
category Package
@@ -311761,7 +311821,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 65654
+revision 65664
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.
@@ -311769,11 +311829,11 @@ 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 113696
-containerchecksum 6bab3005da3c2a621018e6e6580a67e620c7a6022556ef128d2c88af7ca3c5255a2b9c5d5910a63a6653f8890c5bdbc845f1a1036da49008c09ba0db585d906e
-doccontainersize 424248
-doccontainerchecksum ef4417e67c901b701a74ff40e4dc1aef50e6327362f978793f143fa3537a55bd752ce04dd5db83ed19a43775a6a4638516cb2f4db930a650f269d6424ba75bb5
-docfiles size=533
+containersize 113700
+containerchecksum 06fe4c25d20468b37531a9247378a2daf6f20aec4450e779b4f8c2264b98fe3e66894a3a7863147a4319df1aec85acb25ed29ab3555a07d7693869e8184faba5
+doccontainersize 424452
+doccontainerchecksum d736b1ab064d1dc69d31e903b643a118e6ccc92db89ef9d0af9fd52faeda12e5b19a6ce3dd6f1993fa9677f7928185ac71d4913c6db51b98c5f79677c7283922
+docfiles size=534
doc.html
texmf-dist/doc/man/man1/fmtutil-sys.1
texmf-dist/doc/man/man1/fmtutil-sys.man1.pdf
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index f40e11785b..ee85e7d52d 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-adc45cfec8e9bc9c86470a724181989c texlive.tlpdb
+d8dde3d0349ebb35bd96382542d6fd17 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index a35705faa7..e7806b1b40 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-548532d5d3616059d46aeff5f96e017c094cda995a9870997234afd1bef9bbb110ad8eb0b2959a4ebca16136658b5b8ff947960ba78f8f9bfa407cfc3814c335 texlive.tlpdb
+46efcb47670439be9e321a6ee5696cc42fee88d6a892fb37d85b1ae90b7b964101e22fccf127945585f7019fd0c4914fc08964f975ad6915951db32a93f9a93f texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index 34a1acd8ee..2e2d75642d 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
@@ -1,10 +1,10 @@
-----BEGIN PGP SIGNATURE-----
-iQEcBAEBCgAGBQJj1cNkAAoJEEzhh34ZQ4xwkQkH/Ag3xwy5m6bar6EAy/c6dw4T
-xXFCs0Pqh0opECW5uf9dsR6H2CVfuVxggzy1ksZ/pJ+TBUGDxX8wsrGg4zX7yl0o
-EbDRYqsNYJybfBMBoKhNX1vQK1HaRWwD7nDZjXR3fhxM1ZKfgSUC0myv21ZZLlf0
-GQj5m2dlkQ4hNmWZGks1IjL9b3Emgc+o4S1jx3o2gyDjWrEa5cO2aE3IlAkOQiFx
-FGty0+X/SVkPNQN+NQAdyoYLnUZzjP3PIDHU1itjvmnuj3VvK9zcPzb3G/h/zqwx
-oKn301E/eRC+dHYru+d8XMuMpG3A2aOWPquN/PyLErUJZlR+Rm+JTEwFt0cjuGs=
-=L6mP
+iQEbBAEBCgAGBQJj1xToAAoJEEzhh34ZQ4xwKQgH93a/MNaHhJzgN7GtT2mf4fHv
+U47kYiA/d2aOTrB+nAlA2kvrThUj8C7RfxIuMGSG4Abt70+m5Tos0p+Cpxh2hoNF
+7KWPmn7h/DdxzFnXkMXtjh3vj0JcZ32ilSsbAXQIYo6N1LYnWc9RGfvsiSERgN9o
+RLKdiC7yXvz2zWSpdFfJbF9qcNMJ0i9XOeKfxmq1AVy9jVtEE6LBoK+1ImRwN8+A
+gOATLBZw3i4TeBehdOxEvvCMZqeW8AEFq6dCQ0NY5kbT8q3JTe6VFM+oITQIrPNO
+CVazzXKSzE0oOe6B3SBn28K+42WmQbPKFSmaxjXfhXr0tX0IhsN3R3VCqMsUzA==
+=N0Hy
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index c6fd8284e3..f96d26ab38 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 6c3694d620..10288842af 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:
-2023-01-30-02-02
+2023-01-31-02-02