diff options
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 Binary files differindex 9a3fe3fff9..fdb56ad484 100644 --- a/FILES.byname.gz +++ b/FILES.byname.gz 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 Binary files differindex 7b2a34c124..f0960f4677 100644 --- a/biblio/bibtex/contrib/urlbst/urlbst.pdf +++ b/biblio/bibtex/contrib/urlbst/urlbst.pdf 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 Binary files differindex d66bb2cd1e..e5df087fa7 100644 --- a/biblio/ctan-bibdata/ctan.pdf +++ b/biblio/ctan-bibdata/ctan.pdf 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 Binary files differindex f55332590c..9f22af9fbb 100644 --- a/fonts/concmath-otf/Concrete-Math.otf +++ b/fonts/concmath-otf/Concrete-Math.otf 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 Binary files differindex e242bbc1ea..6235d29907 100644 --- a/fonts/concmath-otf/concmath-otf.pdf +++ b/fonts/concmath-otf/concmath-otf.pdf 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 Binary files differindex 6fdebc672f..00d2d3ad38 100644 --- a/fonts/concmath-otf/unimath-concrete.pdf +++ b/fonts/concmath-otf/unimath-concrete.pdf diff --git a/fonts/erewhon-math/Erewhon-Math-Bold.otf b/fonts/erewhon-math/Erewhon-Math-Bold.otf Binary files differindex 0ef05a5095..2fc842134c 100644 --- a/fonts/erewhon-math/Erewhon-Math-Bold.otf +++ b/fonts/erewhon-math/Erewhon-Math-Bold.otf 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 Binary files differindex c244fe5ecb..e943b7b08e 100644 --- a/fonts/erewhon-math/Erewhon-Math.otf +++ b/fonts/erewhon-math/Erewhon-Math.otf diff --git a/fonts/erewhon-math/Erewhon-Math.pdf b/fonts/erewhon-math/Erewhon-Math.pdf Binary files differindex b3adc7208a..be9d157d55 100644 --- a/fonts/erewhon-math/Erewhon-Math.pdf +++ b/fonts/erewhon-math/Erewhon-Math.pdf 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 Binary files differindex 743d6192e3..4d390a73e5 100644 --- a/fonts/erewhon-math/unimath-erewhon.pdf +++ b/fonts/erewhon-math/unimath-erewhon.pdf 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 Binary files differindex b540610805..d6e74e136c 100644 --- a/fonts/euler-math/Euler-Math.otf +++ b/fonts/euler-math/Euler-Math.otf diff --git a/fonts/euler-math/Euler-Math.pdf b/fonts/euler-math/Euler-Math.pdf Binary files differindex 781776e0fa..286280cbf5 100644 --- a/fonts/euler-math/Euler-Math.pdf +++ b/fonts/euler-math/Euler-Math.pdf 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 Binary files differindex 5c9c6f7d81..99af68f201 100644 --- a/fonts/euler-math/unimath-euler.pdf +++ b/fonts/euler-math/unimath-euler.pdf 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 Binary files differindex 4963583b33..3a0ec7208b 100644 --- a/fonts/xcharter-math/XCharter-Math-Bold.otf +++ b/fonts/xcharter-math/XCharter-Math-Bold.otf 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 Binary files differindex 74fe319353..bdad1309d2 100644 --- a/fonts/xcharter-math/XCharter-Math.otf +++ b/fonts/xcharter-math/XCharter-Math.otf diff --git a/fonts/xcharter-math/XCharter-Math.pdf b/fonts/xcharter-math/XCharter-Math.pdf Binary files differindex 5c1f1ba941..c19fdf1808 100644 --- a/fonts/xcharter-math/XCharter-Math.pdf +++ b/fonts/xcharter-math/XCharter-Math.pdf diff --git a/fonts/xcharter-math/unimath-xcharter.pdf b/fonts/xcharter-math/unimath-xcharter.pdf Binary files differindex 2dd34b314c..69b3ff54c6 100644 --- a/fonts/xcharter-math/unimath-xcharter.pdf +++ b/fonts/xcharter-math/unimath-xcharter.pdf 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 Binary files differnew file mode 100644 index 0000000000..3aa58bf157 --- /dev/null +++ b/graphics/pgf/contrib/tikzviolinplots/tikzviolinplots.pdf 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 Binary files differindex 5f74ed44f4..c97623759b 100644 --- a/macros/latex/contrib/eolang/eolang.pdf +++ b/macros/latex/contrib/eolang/eolang.pdf 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 Binary files differindex fdf6d14f90..cfb0270b4c 100644 --- a/macros/latex/contrib/naive-ebnf/naive-ebnf.pdf +++ b/macros/latex/contrib/naive-ebnf/naive-ebnf.pdf 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 Binary files differindex 920266e118..30721c9667 100644 --- a/macros/latex/contrib/pseudo/doc/pseudo.pdf +++ b/macros/latex/contrib/pseudo/doc/pseudo.pdf 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 Binary files differindex 5b954258dd..c8c3c146cb 100644 --- a/macros/latex/contrib/tagpdf/tagpdf-code.pdf +++ b/macros/latex/contrib/tagpdf/tagpdf-code.pdf 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 Binary files differindex a77e88d3c5..3edd2185eb 100644 --- a/macros/latex/contrib/tagpdf/tagpdf.pdf +++ b/macros/latex/contrib/tagpdf/tagpdf.pdf 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 Binary files differindex 79938ccd51..e9d9c9d6d9 100644 --- a/macros/latex/contrib/tramlines/tramlines-documentation.pdf +++ b/macros/latex/contrib/tramlines/tramlines-documentation.pdf 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 Binary files differnew file mode 100644 index 0000000000..c1afc32823 --- /dev/null +++ b/macros/luatex/generic/lparse/lparse.pdf 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 Binary files differindex c6fd8284e3..f96d26ab38 100644 --- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz @@ -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 |