summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FILES.byname159
-rw-r--r--FILES.byname.gzbin2644392 -> 2644493 bytes
-rw-r--r--FILES.last07days341
-rw-r--r--biblio/ctan-bibdata/ctan.bib21
-rw-r--r--graphics/metapost/contrib/macros/mptrees/README.md2
-rw-r--r--graphics/metapost/contrib/macros/mptrees/france-region.jpgbin0 -> 411269 bytes
-rw-r--r--graphics/metapost/contrib/macros/mptrees/mptrees-doc.pdfbin203314 -> 689872 bytes
-rw-r--r--graphics/metapost/contrib/macros/mptrees/mptrees-doc.tex389
-rw-r--r--graphics/metapost/contrib/macros/mptrees/mptrees.mp442
-rw-r--r--macros/latex/contrib/didactic/LICENSE416
-rw-r--r--macros/latex/contrib/didactic/Makefile34
-rw-r--r--macros/latex/contrib/didactic/ProvideSemanticEnv.tex7
-rw-r--r--macros/latex/contrib/didactic/README.md44
-rw-r--r--macros/latex/contrib/didactic/didactic.dtx1156
-rw-r--r--macros/latex/contrib/didactic/didactic.ins58
-rw-r--r--macros/latex/contrib/didactic/didactic.pdfbin0 -> 264041 bytes
-rw-r--r--macros/latex/contrib/didactic/hello.py7
-rw-r--r--macros/latex/contrib/didactic/idea.tex4
-rw-r--r--macros/latex/contrib/didactic/lightblock.tex3
-rw-r--r--macros/latex/contrib/prociagssymp/README.txt38
-rw-r--r--macros/latex/contrib/prociagssymp/TestprocIAGssymp.pdfbin80898 -> 0 bytes
-rw-r--r--macros/latex/contrib/prociagssymp/TestprocIAGssymp.tex145
-rw-r--r--macros/latex/contrib/prociagssymp/procIAGssymp.dtx290
-rw-r--r--macros/latex/contrib/prociagssymp/procIAGssymp.pdfbin0 -> 142766 bytes
-rw-r--r--macros/latex/contrib/prociagssymp/procIAGssymp.sty174
-rw-r--r--support/l3sys-query/CHANGELOG.md8
-rw-r--r--support/l3sys-query/README.md2
-rw-r--r--support/l3sys-query/l3sys-query-tool.pdfbin373585 -> 373623 bytes
-rw-r--r--support/l3sys-query/l3sys-query-tool.tex10
-rw-r--r--support/l3sys-query/l3sys-query.14
-rw-r--r--support/l3sys-query/l3sys-query.lua2
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb108
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.md52
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha5122
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc16
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.xzbin2565004 -> 2562444 bytes
-rw-r--r--timestamp2
37 files changed, 2985 insertions, 901 deletions
diff --git a/FILES.byname b/FILES.byname
index 2d6315289b..897986c6ee 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -2081,12 +2081,12 @@
2024/03/12 | 1837 | biblio/citation-style-language/README.md
2024/03/12 | 12878 | biblio/citation-style-language/vancouver.csl
2024/03/12 | 4553440 | biblio/citation-style-language.zip
-2024/04/07 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2024/04/08 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
2022/10/08 | 127 | biblio/ctan-bibdata/biblatex-ctan/ctan.cbx
-2024/04/07 | 2859792 | biblio/ctan-bibdata/ctan.bib
-2024/04/07 | 3708800 | biblio/ctan-bibdata/ctan.pdf
+2024/04/08 | 2859792 | biblio/ctan-bibdata/ctan.bib
+2024/04/08 | 3708800 | biblio/ctan-bibdata/ctan.pdf
2023/01/16 | 1489 | biblio/ctan-bibdata/README
-2024/04/07 | 4120019 | biblio/ctan-bibdata.zip
+2024/04/08 | 4120026 | biblio/ctan-bibdata.zip
2023/02/23 | 3126 | biblio/pbibtex/pbibtex-base/cpp.awk
2023/02/23 | 1009 | biblio/pbibtex/pbibtex-base/generate.sh
2023/02/23 | 22362 | biblio/pbibtex/pbibtex-base/jabbrv.bst
@@ -2243,7 +2243,7 @@
1989/12/11 | 6196 | biblio/tib/tib.man
1989/03/29 | 23265 | biblio/tib/vitaMake
2005/12/15 | 366385 | biblio/tib.zip
-2024/02/14 | 18102 | CTAN.sites
+2024/04/08 | 17987 | CTAN.sites
1990/10/03 | 5032 | dviware/beebe/00readme.txt
1990/10/03 | 479 | dviware/beebe/doc/00dir.cmd
1990/10/03 | 1209 | dviware/beebe/doc/00dir.lst
@@ -5448,7 +5448,7 @@
1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp
1990/10/02 | 812 | dviware/vutex/vaxvms.ins
1990/10/02 | 127576 | dviware/vutex/vutex.web
-2024/04/07 | 71707 | FILES.last07days
+2024/04/08 | 70566 | 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
@@ -170685,11 +170685,12 @@
2011/07/15 | 5007 | graphics/metapost/contrib/macros/mpcolornames/source/metapost/mpcolornames/spec-xcolor-sty.awk
2011/07/15 | 1393 | graphics/metapost/contrib/macros/mpcolornames/source/metapost/mpcolornames/tab-clash-svg-dvips.awk
2011/07/15 | 134370 | graphics/metapost/contrib/macros/mpcolornames.zip
-2024/02/22 | 203314 | graphics/metapost/contrib/macros/mptrees/mptrees-doc.pdf
-2024/02/22 | 46731 | graphics/metapost/contrib/macros/mptrees/mptrees-doc.tex
-2024/02/22 | 47333 | graphics/metapost/contrib/macros/mptrees/mptrees.mp
-2024/02/22 | 349 | graphics/metapost/contrib/macros/mptrees/README.md
-2024/02/23 | 219608 | graphics/metapost/contrib/macros/mptrees.zip
+2024/02/05 | 411269 | graphics/metapost/contrib/macros/mptrees/france-region.jpg
+2024/04/08 | 689872 | graphics/metapost/contrib/macros/mptrees/mptrees-doc.pdf
+2024/04/08 | 57963 | graphics/metapost/contrib/macros/mptrees/mptrees-doc.tex
+2024/04/08 | 48977 | graphics/metapost/contrib/macros/mptrees/mptrees.mp
+2024/04/08 | 347 | graphics/metapost/contrib/macros/mptrees/README.md
+2024/04/08 | 884768 | graphics/metapost/contrib/macros/mptrees.zip
2002/05/13 | 4291 | graphics/metapost/contrib/macros/piechartmp/examples/wec-mfun.mp
2002/05/13 | 32908 | graphics/metapost/contrib/macros/piechartmp/examples/wec-mfun.pdf
2002/05/13 | 3308 | graphics/metapost/contrib/macros/piechartmp/examples/wec.mp
@@ -231686,6 +231687,17 @@
2010/02/23 | 37530 | macros/latex/contrib/dichokey/rhodocyb.pdf
1999/12/19 | 2877 | macros/latex/contrib/dichokey/rhodocyb.tex
2010/02/23 | 212504 | macros/latex/contrib/dichokey.zip
+2024/04/07 | 39777 | macros/latex/contrib/didactic/didactic.dtx
+2024/04/07 | 2143 | macros/latex/contrib/didactic/didactic.ins
+2024/04/07 | 264041 | macros/latex/contrib/didactic/didactic.pdf
+2024/03/22 | 119 | macros/latex/contrib/didactic/hello.py
+2024/03/22 | 200 | macros/latex/contrib/didactic/idea.tex
+2024/03/22 | 19102 | macros/latex/contrib/didactic/LICENSE
+2024/03/22 | 70 | macros/latex/contrib/didactic/lightblock.tex
+2024/04/07 | 1001 | macros/latex/contrib/didactic/Makefile
+2024/03/25 | 284 | macros/latex/contrib/didactic/ProvideSemanticEnv.tex
+2024/03/24 | 1478 | macros/latex/contrib/didactic/README.md
+2024/04/08 | 275645 | macros/latex/contrib/didactic.zip
2024/02/28 | 438 | macros/latex/contrib/didec/CHANGES.md
2024/02/28 | 5120 | macros/latex/contrib/didec/didec.doc.sty
2024/02/28 | 495045 | macros/latex/contrib/didec/didec.pdf
@@ -247101,11 +247113,10 @@
2017/07/10 | 81303 | macros/latex/contrib/probsoln/samples/sample.pdf
2017/07/10 | 1799 | macros/latex/contrib/probsoln/samples/sample.tex
2017/07/10 | 1116208 | macros/latex/contrib/probsoln.zip
-2022/05/05 | 5955 | macros/latex/contrib/prociagssymp/procIAGssymp.sty
-2022/05/05 | 903 | macros/latex/contrib/prociagssymp/README.txt
-2022/05/05 | 80898 | macros/latex/contrib/prociagssymp/TestprocIAGssymp.pdf
-2022/05/05 | 6335 | macros/latex/contrib/prociagssymp/TestprocIAGssymp.tex
-2022/05/06 | 86110 | macros/latex/contrib/prociagssymp.zip
+2024/04/08 | 11288 | macros/latex/contrib/prociagssymp/procIAGssymp.dtx
+2024/04/08 | 142766 | macros/latex/contrib/prociagssymp/procIAGssymp.pdf
+2024/04/08 | 1286 | macros/latex/contrib/prociagssymp/README.txt
+2024/04/08 | 143201 | macros/latex/contrib/prociagssymp.zip
2024/03/24 | 10211376 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
2024/03/24 | 5713946 | macros/latex/contrib/profcollege/doc/ProfCollege-doc.zip
2024/03/24 | 987 | macros/latex/contrib/profcollege/latex/PfCAllumettes.tex
@@ -297213,14 +297224,14 @@
2008/10/19 | 40536 | support/l2a.zip
1996/12/30 | 40770 | support/l2x/l2x-1.5.tar.gz
1996/12/30 | 4116 | support/l2x/README
-2024/04/03 | 865 | support/l3sys-query/CHANGELOG.md
-2024/04/03 | 1527 | support/l3sys-query/l3sys-query.1
-2024/04/03 | 14600 | support/l3sys-query/l3sys-query.lua
-2024/04/03 | 373585 | support/l3sys-query/l3sys-query-tool.pdf
-2024/04/03 | 11751 | support/l3sys-query/l3sys-query-tool.tex
-2024/04/03 | 1196 | support/l3sys-query/README.md
-2024/04/03 | 694 | support/l3sys-query/SECURITY.md
-2024/04/03 | 377317 | support/l3sys-query.zip
+2024/04/08 | 1025 | support/l3sys-query/CHANGELOG.md
+2024/04/08 | 1520 | support/l3sys-query/l3sys-query.1
+2024/04/08 | 14600 | support/l3sys-query/l3sys-query.lua
+2024/04/08 | 373623 | support/l3sys-query/l3sys-query-tool.pdf
+2024/04/08 | 11733 | support/l3sys-query/l3sys-query-tool.tex
+2024/04/08 | 1196 | support/l3sys-query/README.md
+2024/04/08 | 694 | support/l3sys-query/SECURITY.md
+2024/04/08 | 377367 | support/l3sys-query.zip
2023/12/23 | 44049 | support/lacheck/aclocal.m4
2014/12/24 | 319 | support/lacheck/ac/withenable.ac
2022/05/01 | 4338 | support/lacheck/ChangeLog
@@ -304367,8 +304378,8 @@
2020/06/08 | 120320 | systems/texlive/tlnet/archive/abnt.doc.r55471.tar.xz
2019/02/28 | 4585444 | systems/texlive/tlnet/archive/abntex2.doc.r49248.tar.xz
2019/02/28 | 29920 | systems/texlive/tlnet/archive/abntex2.r49248.tar.xz
-2023/11/15 | 203316 | systems/texlive/tlnet/archive/abntexto.doc.r68837.tar.xz
-2023/11/15 | 8164 | systems/texlive/tlnet/archive/abntexto.r68837.tar.xz
+2024/04/08 | 203956 | systems/texlive/tlnet/archive/abntexto.doc.r70885.tar.xz
+2024/04/08 | 8264 | systems/texlive/tlnet/archive/abntexto.r70885.tar.xz
2020/06/08 | 2800 | systems/texlive/tlnet/archive/abnt.r55471.tar.xz
2022/04/08 | 35013704 | systems/texlive/tlnet/archive/aboensis.doc.r62977.tar.xz
2022/04/08 | 96600 | systems/texlive/tlnet/archive/aboensis.r62977.tar.xz
@@ -304893,7 +304904,7 @@
2021/05/09 | 344 | systems/texlive/tlnet/archive/asymptote.amd64-netbsd.r59140.tar.xz
2019/02/28 | 526632 | systems/texlive/tlnet/archive/asymptote-by-example-zh-cn.doc.r15878.tar.xz
2019/02/28 | 388 | systems/texlive/tlnet/archive/asymptote-by-example-zh-cn.r15878.tar.xz
-2024/03/09 | 2345048 | systems/texlive/tlnet/archive/asymptote.doc.r70502.tar.xz
+2024/04/08 | 2345040 | systems/texlive/tlnet/archive/asymptote.doc.r70885.tar.xz
2019/02/28 | 373604 | systems/texlive/tlnet/archive/asymptote-faq-zh-cn.doc.r15878.tar.xz
2019/02/28 | 380 | systems/texlive/tlnet/archive/asymptote-faq-zh-cn.r15878.tar.xz
2024/03/11 | 1482440 | systems/texlive/tlnet/archive/asymptote.i386-freebsd.r70569.tar.xz
@@ -304901,7 +304912,7 @@
2024/03/12 | 1443008 | systems/texlive/tlnet/archive/asymptote.i386-solaris.r70582.tar.xz
2019/02/28 | 898452 | systems/texlive/tlnet/archive/asymptote-manual-zh-cn.doc.r15878.tar.xz
2019/02/28 | 400 | systems/texlive/tlnet/archive/asymptote-manual-zh-cn.r15878.tar.xz
-2024/03/09 | 380428 | systems/texlive/tlnet/archive/asymptote.r70502.tar.xz
+2024/04/08 | 380420 | systems/texlive/tlnet/archive/asymptote.r70885.tar.xz
2024/03/11 | 5583936 | systems/texlive/tlnet/archive/asymptote.universal-darwin.r70570.tar.xz
2024/03/09 | 3444488 | systems/texlive/tlnet/archive/asymptote.windows.r70502.tar.xz
2024/03/10 | 1251084 | systems/texlive/tlnet/archive/asymptote.x86_64-cygwin.r70539.tar.xz
@@ -309106,8 +309117,8 @@
2019/02/28 | 392 | systems/texlive/tlnet/archive/fontools.x86_64-linuxmusl.r46840.tar.xz
2019/02/28 | 384 | systems/texlive/tlnet/archive/fontools.x86_64-linux.r25997.tar.xz
2019/02/28 | 384 | systems/texlive/tlnet/archive/fontools.x86_64-solaris.r25997.tar.xz
-2024/04/02 | 135232 | systems/texlive/tlnet/archive/fontscale.doc.r70831.tar.xz
-2024/04/02 | 6540 | systems/texlive/tlnet/archive/fontscale.r70831.tar.xz
+2024/04/08 | 135304 | systems/texlive/tlnet/archive/fontscale.doc.r70885.tar.xz
+2024/04/08 | 6580 | systems/texlive/tlnet/archive/fontscale.r70885.tar.xz
2023/06/26 | 267160 | systems/texlive/tlnet/archive/fonts-churchslavonic.doc.r67473.tar.xz
2023/06/26 | 2071376 | systems/texlive/tlnet/archive/fonts-churchslavonic.r67473.tar.xz
2024/02/26 | 598444 | systems/texlive/tlnet/archive/fontsetup.doc.r70134.tar.xz
@@ -309146,9 +309157,9 @@
2019/02/28 | 196308 | systems/texlive/tlnet/archive/footbib.doc.r17115.tar.xz
2019/02/28 | 6692 | systems/texlive/tlnet/archive/footbib.r17115.tar.xz
2019/02/28 | 22456 | systems/texlive/tlnet/archive/footbib.source.r17115.tar.xz
-2024/02/15 | 514744 | systems/texlive/tlnet/archive/footmisc.doc.r69890.tar.xz
-2024/02/15 | 7688 | systems/texlive/tlnet/archive/footmisc.r69890.tar.xz
-2024/02/15 | 22408 | systems/texlive/tlnet/archive/footmisc.source.r69890.tar.xz
+2024/04/08 | 514740 | systems/texlive/tlnet/archive/footmisc.doc.r70885.tar.xz
+2024/04/08 | 7692 | systems/texlive/tlnet/archive/footmisc.r70885.tar.xz
+2024/04/08 | 22408 | systems/texlive/tlnet/archive/footmisc.source.r70885.tar.xz
2019/02/28 | 396 | systems/texlive/tlnet/archive/footmisx.doc.r42621.tar.xz
2019/02/28 | 6048 | systems/texlive/tlnet/archive/footmisx.r42621.tar.xz
2019/02/28 | 19832 | systems/texlive/tlnet/archive/footmisx.source.r42621.tar.xz
@@ -309895,8 +309906,8 @@
2023/12/08 | 25860 | systems/texlive/tlnet/archive/heria.source.r69058.tar.xz
2022/10/14 | 221248 | systems/texlive/tlnet/archive/heros-otf.doc.r64695.tar.xz
2022/10/14 | 2380 | systems/texlive/tlnet/archive/heros-otf.r64695.tar.xz
-2022/11/01 | 273748 | systems/texlive/tlnet/archive/hershey-mp.doc.r64878.tar.xz
-2022/11/01 | 1684 | systems/texlive/tlnet/archive/hershey-mp.r64878.tar.xz
+2024/04/08 | 273748 | systems/texlive/tlnet/archive/hershey-mp.doc.r70885.tar.xz
+2024/04/08 | 1684 | systems/texlive/tlnet/archive/hershey-mp.r70885.tar.xz
2019/02/28 | 213100 | systems/texlive/tlnet/archive/he-she.doc.r41359.tar.xz
2019/02/28 | 3096 | systems/texlive/tlnet/archive/he-she.r41359.tar.xz
2024/02/01 | 224820 | systems/texlive/tlnet/archive/heuristica.doc.r69649.tar.xz
@@ -310015,9 +310026,9 @@
2023/05/16 | 17820 | systems/texlive/tlnet/archive/hu-berlin-bundle.source.r67128.tar.xz
2023/05/12 | 126832 | systems/texlive/tlnet/archive/huffman.doc.r67071.tar.xz
2023/05/12 | 3036 | systems/texlive/tlnet/archive/huffman.r67071.tar.xz
-2020/11/04 | 146568 | systems/texlive/tlnet/archive/hulipsum.doc.r56848.tar.xz
-2020/11/04 | 55344 | systems/texlive/tlnet/archive/hulipsum.r56848.tar.xz
-2020/11/04 | 56600 | systems/texlive/tlnet/archive/hulipsum.source.r56848.tar.xz
+2024/04/08 | 154600 | systems/texlive/tlnet/archive/hulipsum.doc.r70885.tar.xz
+2024/04/08 | 55636 | systems/texlive/tlnet/archive/hulipsum.r70885.tar.xz
+2024/04/08 | 57044 | systems/texlive/tlnet/archive/hulipsum.source.r70885.tar.xz
2019/02/28 | 747152 | systems/texlive/tlnet/archive/hustthesis.doc.r42547.tar.xz
2019/02/28 | 57756 | systems/texlive/tlnet/archive/hustthesis.r42547.tar.xz
2019/02/28 | 24892 | systems/texlive/tlnet/archive/hustthesis.source.r42547.tar.xz
@@ -312432,18 +312443,18 @@
2019/02/28 | 43836 | systems/texlive/tlnet/archive/minifp.source.r32559.tar.xz
2024/03/01 | 8120 | systems/texlive/tlnet/archive/minimalist.doc.r70302.tar.xz
2024/03/01 | 13100 | systems/texlive/tlnet/archive/minimalist.r70302.tar.xz
-2024/04/04 | 375300 | systems/texlive/tlnet/archive/minim.doc.r70848.tar.xz
-2022/03/05 | 26048 | systems/texlive/tlnet/archive/minim-hatching.doc.r62395.tar.xz
-2022/03/05 | 2232 | systems/texlive/tlnet/archive/minim-hatching.r62395.tar.xz
-2024/01/09 | 100224 | systems/texlive/tlnet/archive/minim-math.doc.r69352.tar.xz
-2024/01/09 | 34080 | systems/texlive/tlnet/archive/minim-math.r69352.tar.xz
-2024/04/04 | 131668 | systems/texlive/tlnet/archive/minim-mp.doc.r70847.tar.xz
-2024/04/04 | 22564 | systems/texlive/tlnet/archive/minim-mp.r70847.tar.xz
-2024/03/01 | 142708 | systems/texlive/tlnet/archive/minim-pdf.doc.r70311.tar.xz
-2024/03/01 | 17504 | systems/texlive/tlnet/archive/minim-pdf.r70311.tar.xz
-2024/04/04 | 25344 | systems/texlive/tlnet/archive/minim.r70848.tar.xz
-2024/01/09 | 61960 | systems/texlive/tlnet/archive/minim-xmp.doc.r69352.tar.xz
-2024/01/09 | 6392 | systems/texlive/tlnet/archive/minim-xmp.r69352.tar.xz
+2024/04/08 | 375300 | systems/texlive/tlnet/archive/minim.doc.r70885.tar.xz
+2024/04/08 | 26052 | systems/texlive/tlnet/archive/minim-hatching.doc.r70885.tar.xz
+2024/04/08 | 2232 | systems/texlive/tlnet/archive/minim-hatching.r70885.tar.xz
+2024/04/08 | 100228 | systems/texlive/tlnet/archive/minim-math.doc.r70885.tar.xz
+2024/04/08 | 34080 | systems/texlive/tlnet/archive/minim-math.r70885.tar.xz
+2024/04/08 | 131668 | systems/texlive/tlnet/archive/minim-mp.doc.r70885.tar.xz
+2024/04/08 | 22564 | systems/texlive/tlnet/archive/minim-mp.r70885.tar.xz
+2024/04/08 | 142704 | systems/texlive/tlnet/archive/minim-pdf.doc.r70885.tar.xz
+2024/04/08 | 17496 | systems/texlive/tlnet/archive/minim-pdf.r70885.tar.xz
+2024/04/08 | 25344 | systems/texlive/tlnet/archive/minim.r70885.tar.xz
+2024/04/08 | 61964 | systems/texlive/tlnet/archive/minim-xmp.doc.r70885.tar.xz
+2024/04/08 | 6392 | systems/texlive/tlnet/archive/minim-xmp.r70885.tar.xz
2019/02/28 | 72252 | systems/texlive/tlnet/archive/minipage-marginpar.doc.r15878.tar.xz
2019/02/28 | 1588 | systems/texlive/tlnet/archive/minipage-marginpar.r15878.tar.xz
2019/02/28 | 6140 | systems/texlive/tlnet/archive/minipage-marginpar.source.r15878.tar.xz
@@ -312596,9 +312607,9 @@
2019/02/28 | 174792 | systems/texlive/tlnet/archive/modulus.doc.r47599.tar.xz
2019/02/28 | 1212 | systems/texlive/tlnet/archive/modulus.r47599.tar.xz
2019/02/28 | 3136 | systems/texlive/tlnet/archive/modulus.source.r47599.tar.xz
-2024/03/08 | 283416 | systems/texlive/tlnet/archive/moloch.doc.r70491.tar.xz
-2024/03/08 | 3988 | systems/texlive/tlnet/archive/moloch.r70491.tar.xz
-2024/03/08 | 7248 | systems/texlive/tlnet/archive/moloch.source.r70491.tar.xz
+2024/04/08 | 283412 | systems/texlive/tlnet/archive/moloch.doc.r70885.tar.xz
+2024/04/08 | 3988 | systems/texlive/tlnet/archive/moloch.r70885.tar.xz
+2024/04/08 | 7240 | systems/texlive/tlnet/archive/moloch.source.r70885.tar.xz
2019/02/28 | 89416 | systems/texlive/tlnet/archive/mongolian-babel.doc.r15878.tar.xz
2019/02/28 | 5300 | systems/texlive/tlnet/archive/mongolian-babel.r15878.tar.xz
2019/02/28 | 12068 | systems/texlive/tlnet/archive/mongolian-babel.source.r15878.tar.xz
@@ -314892,9 +314903,9 @@
2023/10/20 | 5928 | systems/texlive/tlnet/archive/recorder-fingering.r68595.tar.xz
2024/03/30 | 128352 | systems/texlive/tlnet/archive/rec-thy.doc.r70806.tar.xz
2024/03/30 | 13384 | systems/texlive/tlnet/archive/rec-thy.r70806.tar.xz
-2024/04/05 | 230780 | systems/texlive/tlnet/archive/rectopma.doc.r70860.tar.xz
-2024/04/05 | 996 | systems/texlive/tlnet/archive/rectopma.r70860.tar.xz
-2024/04/05 | 2536 | systems/texlive/tlnet/archive/rectopma.source.r70860.tar.xz
+2024/04/08 | 230780 | systems/texlive/tlnet/archive/rectopma.doc.r70885.tar.xz
+2024/04/08 | 1000 | systems/texlive/tlnet/archive/rectopma.r70885.tar.xz
+2024/04/08 | 2536 | systems/texlive/tlnet/archive/rectopma.source.r70885.tar.xz
2019/02/28 | 768 | systems/texlive/tlnet/archive/recycle.doc.r15878.tar.xz
2019/02/28 | 9820 | systems/texlive/tlnet/archive/recycle.r15878.tar.xz
2019/02/28 | 43356 | systems/texlive/tlnet/archive/refcheck.doc.r29128.tar.xz
@@ -316446,7 +316457,7 @@
2022/09/13 | 600 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r64356.tar.xz
-2024/04/06 | 434544 | systems/texlive/tlnet/archive/texlive-scripts.doc.r70863.tar.xz
+2024/04/08 | 434544 | systems/texlive/tlnet/archive/texlive-scripts.doc.r70879.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
@@ -316468,7 +316479,7 @@
2022/09/13 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r64356.tar.xz
-2024/04/06 | 114204 | systems/texlive/tlnet/archive/texlive-scripts.r70863.tar.xz
+2024/04/08 | 114204 | systems/texlive/tlnet/archive/texlive-scripts.r70879.tar.xz
2022/09/13 | 580 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r64356.tar.xz
2024/03/01 | 60292 | systems/texlive/tlnet/archive/texlive-scripts.windows.r70269.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r64356.tar.xz
@@ -318390,16 +318401,16 @@
2020/07/18 | 47816 | systems/texlive/tlnet/archive/zztex.doc.r55862.tar.xz
2020/07/18 | 101724 | systems/texlive/tlnet/archive/zztex.r55862.tar.xz
2024/02/05 | 125030 | systems/texlive/tlnet/install-tl
-2024/04/07 | 5750826 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2024/04/07 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2024/04/07 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2024/04/08 | 5751505 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2024/04/08 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2024/04/08 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2023/05/13 | 5083 | systems/texlive/tlnet/install-tl-windows.bat
-2024/04/07 | 27720040 | systems/texlive/tlnet/install-tl-windows.exe
-2024/04/07 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2024/04/07 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2024/04/07 | 34425335 | systems/texlive/tlnet/install-tl.zip
-2024/04/07 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2024/04/07 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2024/04/08 | 27719610 | systems/texlive/tlnet/install-tl-windows.exe
+2024/04/08 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2024/04/08 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2024/04/08 | 34425343 | systems/texlive/tlnet/install-tl.zip
+2024/04/08 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2024/04/08 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2024/03/13 | 1229 | systems/texlive/tlnet/README.md
2024/03/13 | 0 | systems/texlive/tlnet/TEXLIVE_2024
2024/01/02 | 9011 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
@@ -318409,7 +318420,7 @@
2024/01/02 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
2024/01/16 | 50726 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
-2024/04/02 | 7317 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2024/04/07 | 7325 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2024/03/15 | 229654 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt
2020/04/15 | 2606592 | systems/texlive/tlnet/tlpkg/installer/curl/curl.exe
2017/04/16 | 2629 | systems/texlive/tlnet/tlpkg/installer/installer-options.txt
@@ -318451,12 +318462,12 @@
2023/02/21 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2024/01/31 | 5840 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2023/04/08 | 28167 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2024/04/07 | 19412945 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2024/04/07 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2024/04/08 | 19412978 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2024/04/08 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2024/03/10 | 87229 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2024/04/07 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2024/04/07 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2024/04/07 | 2564156 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2024/04/08 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2024/04/08 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2024/04/08 | 2565004 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2023/02/20 | 58928 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2023/06/11 | 42749 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2023/02/21 | 16138 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -329863,7 +329874,7 @@
2014/07/05 | 611 | systems/win32/yandy/README
2014/07/05 | 1004628 | systems/win32/yandy/yandy-src.tar.xz
2014/07/05 | 1012416 | systems/win32/yandy.zip
-2024/04/08 | 186 | timestamp
+2024/04/09 | 186 | timestamp
2002/08/26 | 61898 | usergrps/dante/antrag.pdf
2002/08/26 | 118217 | usergrps/dante/antrag.ps
2021/11/11 | 917 | usergrps/dante/dtk/doc/beispiel.bib
diff --git a/FILES.byname.gz b/FILES.byname.gz
index a4506c5af2..7fb5ce22c1 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index 930812b972..93c2e2319d 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,48 +1,106 @@
+2024/04/08 | 884768 | graphics/metapost/contrib/macros/mptrees.zip
+2024/04/08 | 8264 | systems/texlive/tlnet/archive/abntexto.r70885.tar.xz
+2024/04/08 | 7692 | systems/texlive/tlnet/archive/footmisc.r70885.tar.xz
+2024/04/08 | 7240 | systems/texlive/tlnet/archive/moloch.source.r70885.tar.xz
+2024/04/08 | 694 | support/l3sys-query/SECURITY.md
+2024/04/08 | 689872 | graphics/metapost/contrib/macros/mptrees/mptrees-doc.pdf
+2024/04/08 | 6580 | systems/texlive/tlnet/archive/fontscale.r70885.tar.xz
+2024/04/08 | 6392 | systems/texlive/tlnet/archive/minim-xmp.r70885.tar.xz
+2024/04/08 | 61964 | systems/texlive/tlnet/archive/minim-xmp.doc.r70885.tar.xz
+2024/04/08 | 57963 | graphics/metapost/contrib/macros/mptrees/mptrees-doc.tex
+2024/04/08 | 5751505 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2024/04/08 | 57044 | systems/texlive/tlnet/archive/hulipsum.source.r70885.tar.xz
+2024/04/08 | 55636 | systems/texlive/tlnet/archive/hulipsum.r70885.tar.xz
+2024/04/08 | 514740 | systems/texlive/tlnet/archive/footmisc.doc.r70885.tar.xz
+2024/04/08 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2024/04/08 | 48977 | graphics/metapost/contrib/macros/mptrees/mptrees.mp
+2024/04/08 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2024/04/08 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2024/04/08 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2024/04/08 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2024/04/08 | 434544 | systems/texlive/tlnet/archive/texlive-scripts.doc.r70879.tar.xz
+2024/04/08 | 4120026 | biblio/ctan-bibdata.zip
+2024/04/08 | 3988 | systems/texlive/tlnet/archive/moloch.r70885.tar.xz
+2024/04/08 | 380420 | systems/texlive/tlnet/archive/asymptote.r70885.tar.xz
+2024/04/08 | 377367 | support/l3sys-query.zip
+2024/04/08 | 375300 | systems/texlive/tlnet/archive/minim.doc.r70885.tar.xz
+2024/04/08 | 373623 | support/l3sys-query/l3sys-query-tool.pdf
+2024/04/08 | 3708800 | biblio/ctan-bibdata/ctan.pdf
+2024/04/08 | 347 | graphics/metapost/contrib/macros/mptrees/README.md
+2024/04/08 | 34425343 | systems/texlive/tlnet/install-tl.zip
+2024/04/08 | 34080 | systems/texlive/tlnet/archive/minim-math.r70885.tar.xz
+2024/04/08 | 2859792 | biblio/ctan-bibdata/ctan.bib
+2024/04/08 | 283412 | systems/texlive/tlnet/archive/moloch.doc.r70885.tar.xz
+2024/04/08 | 27719610 | systems/texlive/tlnet/install-tl-windows.exe
+2024/04/08 | 275645 | macros/latex/contrib/didactic.zip
+2024/04/08 | 273748 | systems/texlive/tlnet/archive/hershey-mp.doc.r70885.tar.xz
+2024/04/08 | 26052 | systems/texlive/tlnet/archive/minim-hatching.doc.r70885.tar.xz
+2024/04/08 | 2565004 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2024/04/08 | 2536 | systems/texlive/tlnet/archive/rectopma.source.r70885.tar.xz
+2024/04/08 | 25344 | systems/texlive/tlnet/archive/minim.r70885.tar.xz
+2024/04/08 | 2345040 | systems/texlive/tlnet/archive/asymptote.doc.r70885.tar.xz
+2024/04/08 | 230780 | systems/texlive/tlnet/archive/rectopma.doc.r70885.tar.xz
+2024/04/08 | 22564 | systems/texlive/tlnet/archive/minim-mp.r70885.tar.xz
+2024/04/08 | 22408 | systems/texlive/tlnet/archive/footmisc.source.r70885.tar.xz
+2024/04/08 | 2232 | systems/texlive/tlnet/archive/minim-hatching.r70885.tar.xz
+2024/04/08 | 203956 | systems/texlive/tlnet/archive/abntexto.doc.r70885.tar.xz
+2024/04/08 | 19412978 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2024/04/08 | 17987 | CTAN.sites
+2024/04/08 | 17496 | systems/texlive/tlnet/archive/minim-pdf.r70885.tar.xz
+2024/04/08 | 1684 | systems/texlive/tlnet/archive/hershey-mp.r70885.tar.xz
+2024/04/08 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
+2024/04/08 | 154600 | systems/texlive/tlnet/archive/hulipsum.doc.r70885.tar.xz
+2024/04/08 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2024/04/08 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2024/04/08 | 1520 | support/l3sys-query/l3sys-query.1
+2024/04/08 | 14600 | support/l3sys-query/l3sys-query.lua
+2024/04/08 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2024/04/08 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2024/04/08 | 143201 | macros/latex/contrib/prociagssymp.zip
+2024/04/08 | 142766 | macros/latex/contrib/prociagssymp/procIAGssymp.pdf
+2024/04/08 | 142704 | systems/texlive/tlnet/archive/minim-pdf.doc.r70885.tar.xz
+2024/04/08 | 135304 | systems/texlive/tlnet/archive/fontscale.doc.r70885.tar.xz
+2024/04/08 | 131668 | systems/texlive/tlnet/archive/minim-mp.doc.r70885.tar.xz
+2024/04/08 | 1286 | macros/latex/contrib/prociagssymp/README.txt
+2024/04/08 | 1196 | support/l3sys-query/README.md
+2024/04/08 | 11733 | support/l3sys-query/l3sys-query-tool.tex
+2024/04/08 | 114204 | systems/texlive/tlnet/archive/texlive-scripts.r70879.tar.xz
+2024/04/08 | 11288 | macros/latex/contrib/prociagssymp/procIAGssymp.dtx
+2024/04/08 | 1025 | support/l3sys-query/CHANGELOG.md
+2024/04/08 | 100228 | systems/texlive/tlnet/archive/minim-math.doc.r70885.tar.xz
+2024/04/08 | 1000 | systems/texlive/tlnet/archive/rectopma.r70885.tar.xz
2024/04/07 | 922444 | systems/texlive/tlnet/archive/beebe.r70870.tar.xz
2024/04/07 | 898 | macros/latex/contrib/hulipsum/README
2024/04/07 | 76228 | systems/texlive/tlnet/archive/latexindent.r70874.tar.xz
2024/04/07 | 737020 | systems/texlive/tlnet/archive/bithesis.doc.r70873.tar.xz
+2024/04/07 | 7325 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2024/04/07 | 6580 | systems/texlive/tlnet/archive/bookcover.r70872.tar.xz
2024/04/07 | 576 | systems/texlive/tlnet/archive/collection-formatsextra.r70875.tar.xz
-2024/04/07 | 5750826 | systems/texlive/tlnet/install-tl-unx.tar.gz
2024/04/07 | 51330 | macros/latex/contrib/fontscale/fontscale.sty
2024/04/07 | 4988 | systems/texlive/tlnet/archive/inconsolata-nerd-font.source.r70871.tar.xz
-2024/04/07 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
-2024/04/07 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2024/04/07 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2024/04/07 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2024/04/07 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
-2024/04/07 | 4120019 | biblio/ctan-bibdata.zip
+2024/04/07 | 39777 | macros/latex/contrib/didactic/didactic.dtx
2024/04/07 | 3851776 | systems/texlive/tlnet/archive/latexindent.windows.r70874.tar.xz
-2024/04/07 | 3708800 | biblio/ctan-bibdata/ctan.pdf
-2024/04/07 | 34425335 | systems/texlive/tlnet/install-tl.zip
-2024/04/07 | 2859792 | biblio/ctan-bibdata/ctan.bib
-2024/04/07 | 27720040 | systems/texlive/tlnet/install-tl-windows.exe
2024/04/07 | 27012 | systems/texlive/tlnet/archive/bithesis.source.r70873.tar.xz
+2024/04/07 | 264041 | macros/latex/contrib/didactic/didactic.pdf
2024/04/07 | 2604844 | systems/texlive/tlnet/archive/inconsolata-nerd-font.r70871.tar.xz
-2024/04/07 | 2564156 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2024/04/07 | 241 | macros/latex/contrib/abntexto/README
2024/04/07 | 229180 | macros/latex/contrib/abntexto.zip
2024/04/07 | 216269 | macros/latex/contrib/hulipsum.zip
+2024/04/07 | 2143 | macros/latex/contrib/didactic/didactic.ins
2024/04/07 | 20996 | macros/latex/contrib/fontscale/fontscale-manual.tex
2024/04/07 | 20316 | systems/texlive/tlnet/archive/bithesis.r70873.tar.xz
-2024/04/07 | 19412945 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
2024/04/07 | 18236 | systems/texlive/tlnet/archive/xmltex.r70875.tar.xz
2024/04/07 | 1807396 | systems/texlive/tlnet/archive/bookcover.doc.r70872.tar.xz
2024/04/07 | 176844 | macros/latex/contrib/hulipsum/hulipsum.dtx
2024/04/07 | 1766584 | systems/texlive/tlnet/archive/inconsolata-nerd-font.doc.r70871.tar.xz
2024/04/07 | 1704 | macros/latex/contrib/hulipsum/hulipsum.ins
2024/04/07 | 17004 | systems/texlive/tlnet/archive/xmltex.doc.r70875.tar.xz
-2024/04/07 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx
2024/04/07 | 156432 | macros/latex/contrib/hulipsum/hulipsum.pdf
-2024/04/07 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2024/04/07 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
2024/04/07 | 15044 | systems/texlive/tlnet/archive/bookcover.source.r70872.tar.xz
-2024/04/07 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2024/04/07 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
2024/04/07 | 143386 | macros/latex/contrib/fontscale.zip
2024/04/07 | 1362124 | systems/texlive/tlnet/archive/latexindent.doc.r70874.tar.xz
2024/04/07 | 129725 | macros/latex/contrib/fontscale/fontscale-manual.pdf
+2024/04/07 | 1001 | macros/latex/contrib/didactic/Makefile
2024/04/06 | 9859 | support/latexindent/LatexIndent/Lines.pm
2024/04/06 | 95406 | macros/latex/contrib/bookcover/bookcover.dtx
2024/04/06 | 9467855 | support/latexindent/bin/windows/latexindent.exe
@@ -84,7 +142,6 @@
2024/04/06 | 4402 | support/latexindent/documentation/latex-indent.bib
2024/04/06 | 4394 | fonts/inconsolata-nerd-font/OFL.txt
2024/04/06 | 4388 | support/latexindent/LatexIndent/NamedGroupingBracesBrackets.pm
-2024/04/06 | 434544 | systems/texlive/tlnet/archive/texlive-scripts.doc.r70863.tar.xz
2024/04/06 | 39888 | systems/texlive/tlnet/archive/sjtutex.source.r70867.tar.xz
2024/04/06 | 3645472 | macros/latex/contrib/bookcover.zip
2024/04/06 | 35225 | support/latexindent/LatexIndent/Wrap.pm
@@ -146,11 +203,9 @@
2024/04/06 | 1285520 | support/latexindent/documentation/latexindent.pdf
2024/04/06 | 12653 | support/latexindent/LatexIndent/Braces.pm
2024/04/06 | 11509 | support/latexindent/LatexIndent/FileContents.pm
-2024/04/06 | 114204 | systems/texlive/tlnet/archive/texlive-scripts.r70863.tar.xz
2024/04/06 | 11206 | support/latexindent/LatexIndent/Heading.pm
2024/04/06 | 11098920 | systems/texlive/tlnet/archive/glossaries.doc.r70866.tar.xz
2024/04/06 | 10648 | support/latexindent/LatexIndent/Command.pm
-2024/04/05 | 996 | systems/texlive/tlnet/archive/rectopma.r70860.tar.xz
2024/04/05 | 986383 | install/macros/latex/contrib/sjtutex.tds.zip
2024/04/05 | 9000 | systems/texlive/tlnet/archive/customenvs.r70859.tar.xz
2024/04/05 | 892481 | macros/latex/contrib/sjtutex.zip
@@ -192,11 +247,9 @@
2024/04/05 | 254 | fonts/simpleicons/tex/usimpleiconstwo.fd
2024/04/05 | 254 | fonts/simpleicons/tex/usimpleiconssix.fd
2024/04/05 | 254 | fonts/simpleicons/tex/usimpleiconsone.fd
-2024/04/05 | 2536 | systems/texlive/tlnet/archive/rectopma.source.r70860.tar.xz
2024/04/05 | 2521275 | fonts/simpleicons/doc/simpleicons.pdf
2024/04/05 | 2434580 | fonts/simpleicons/opentype/SimpleIcons.otf
2024/04/05 | 2410 | fonts/simpleicons/enc/simpleiconsonethree.enc
-2024/04/05 | 230780 | systems/texlive/tlnet/archive/rectopma.doc.r70860.tar.xz
2024/04/05 | 2253299 | fonts/simpleicons/type1/SimpleIcons.pfb
2024/04/05 | 221060 | macros/latex/contrib/coloredtheorem.zip
2024/04/05 | 214188 | macros/latex/contrib/sjtutex/sjtutex.dtx
@@ -357,7 +410,6 @@
2024/04/04 | 3832 | macros/generic/markdown/examples/example.md
2024/04/04 | 38022 | macros/latex/contrib/customenvs/doc/customenvs-doc-fr.tex
2024/04/04 | 3753 | macros/latex/contrib/csquotes/csq-compat.def
-2024/04/04 | 375300 | systems/texlive/tlnet/archive/minim.doc.r70848.tar.xz
2024/04/04 | 37410 | macros/latex/contrib/glossaries/samples/sample-entryfmt.pdf
2024/04/04 | 3724 | macros/latex/contrib/glossaries/samples/sampleCustomAcr.tex
2024/04/04 | 37154 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example007.pdf
@@ -403,7 +455,6 @@
2024/04/04 | 2576944 | systems/texlive/tlnet/archive/memoize.doc.r70841.tar.xz
2024/04/04 | 2544 | macros/latex/contrib/glossaries/samples/sampleFnAcrDesc.tex
2024/04/04 | 253815 | macros/latex/contrib/glossaries/samples/glossary-lipsum-examples.pdf
-2024/04/04 | 25344 | systems/texlive/tlnet/archive/minim.r70848.tar.xz
2024/04/04 | 2517750 | macros/latex/contrib/glossaries/glossaries-code.pdf
2024/04/04 | 2474 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example022.png
2024/04/04 | 246668 | systems/texlive/tlnet/archive/moderncv.doc.r70838.tar.xz
@@ -417,7 +468,6 @@
2024/04/04 | 2328 | macros/latex/contrib/glossaries/samples/sample-prefix.tex
2024/04/04 | 2308 | macros/latex/contrib/glossaries/samples/sampleDesc.tex
2024/04/04 | 22881 | macros/generic/markdown/libraries/markdown-tinyyaml.lua
-2024/04/04 | 22564 | systems/texlive/tlnet/archive/minim-mp.r70847.tar.xz
2024/04/04 | 22528 | macros/generic/markdown/README.md
2024/04/04 | 2225 | macros/latex/contrib/coloredtheorem/coloredtheorem.sty
2024/04/04 | 22135 | macros/latex/contrib/csquotes/csquotes.def
@@ -477,7 +527,6 @@
2024/04/04 | 13469 | macros/latex/contrib/glossaries/makeglossaries-lite.lua
2024/04/04 | 13425448 | install/macros/latex/contrib/glossaries.tds.zip
2024/04/04 | 13348 | macros/latex/contrib/glossaries/glossaries.ins
-2024/04/04 | 131668 | systems/texlive/tlnet/archive/minim-mp.doc.r70847.tar.xz
2024/04/04 | 128489 | macros/latex/contrib/glossaries/glossary2glossaries.pdf
2024/04/04 | 127899 | macros/latex/contrib/glossaries/samples/sample.pdf
2024/04/04 | 124710 | macros/latex/contrib/glossaries/glossary2glossaries.html
@@ -516,13 +565,11 @@
2024/04/04 | 10096 | macros/latex/contrib/glossaries/samples/samplexdy.tex
2024/04/04 | 10078 | macros/latex/contrib/glossaries/glossaries-user-examples/glossaries-user-example025.pdf
2024/04/03 | 9981 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.tex
-2024/04/03 | 865 | support/l3sys-query/CHANGELOG.md
2024/04/03 | 8139 | graphics/pgf/contrib/pgf-periodictable/translations/pgfPT.lang.undefined.tex
2024/04/03 | 7654649 | graphics/pgf/contrib/pgf-periodictable.zip
2024/04/03 | 7457011 | graphics/pgf/contrib/pgf-periodictable/pgf-PeriodicTableManual.pdf
2024/04/03 | 7248 | graphics/pgf/contrib/pgf-periodictable/myGroupColors.tex
2024/04/03 | 70914 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-template.pdf
-2024/04/03 | 694 | support/l3sys-query/SECURITY.md
2024/04/03 | 6771 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-template.tex
2024/04/03 | 56681 | macros/luatex/generic/minim-mp/minim-mp.lua
2024/04/03 | 563829 | macros/latex/contrib/msu-thesis.zip
@@ -531,8 +578,6 @@
2024/04/03 | 411282 | macros/luatex/generic/minim.zip
2024/04/03 | 397133 | macros/luatex/generic/minim/minim.pdf
2024/04/03 | 393 | macros/latex/contrib/msu-thesis/samples/chap2bib.tex
-2024/04/03 | 377317 | support/l3sys-query.zip
-2024/04/03 | 373585 | support/l3sys-query/l3sys-query-tool.pdf
2024/04/03 | 343643 | macros/luatex/latex/lua-placeholders.zip
2024/04/03 | 327 | macros/latex/contrib/msu-thesis/samples/chap4bib.tex
2024/04/03 | 319 | macros/latex/contrib/msu-thesis/samples/chap3bib.tex
@@ -543,13 +588,9 @@
2024/04/03 | 214979 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.pdf
2024/04/03 | 208078 | graphics/pgf/contrib/pgf-periodictable/pgf-PeriodicTable.sty
2024/04/03 | 164656 | macros/luatex/generic/minim-mp.zip
-2024/04/03 | 1527 | support/l3sys-query/l3sys-query.1
-2024/04/03 | 14600 | support/l3sys-query/l3sys-query.lua
2024/04/03 | 139419 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-chapterbib-testfile.pdf
2024/04/03 | 134407 | macros/luatex/generic/minim-mp/minim-mp.pdf
2024/04/03 | 1276 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-chapterbib-testfile.tex
-2024/04/03 | 1196 | support/l3sys-query/README.md
-2024/04/03 | 11751 | support/l3sys-query/l3sys-query-tool.tex
2024/04/03 | 114013 | macros/latex/contrib/msu-thesis/msu-thesis.pdf
2024/04/03 | 1088 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.bib
2024/04/03 | 10430 | graphics/pgf/contrib/pgf-periodictable/translations/pgfPT.lang.nl.tex
@@ -565,11 +606,9 @@
2024/04/02 | 7561 | macros/luatex/latex/lua-placeholders/scripts/lua-placeholders.lua
2024/04/02 | 741 | macros/luatex/latex/lua-placeholders/README.md
2024/04/02 | 7388 | macros/luatex/latex/lua-placeholders/scripts/lua-placeholders-types.lua
-2024/04/02 | 7317 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2024/04/02 | 7078 | macros/generic/memoize/INSTALL.md
2024/04/02 | 668 | macros/generic/memoize/README.md
2024/04/02 | 66214 | macros/luatex/latex/lua-placeholders/doc/lua-placeholders-example/example.pdf
-2024/04/02 | 6540 | systems/texlive/tlnet/archive/fontscale.r70831.tar.xz
2024/04/02 | 653091 | macros/latex/contrib/easybook.zip
2024/04/02 | 638117 | macros/generic/memoize/doc/memoize-code.pdf
2024/04/02 | 6344 | macros/generic/memoize/memoize-clean.py
@@ -584,7 +623,6 @@
2024/04/02 | 5034 | macros/generic/memoize/doc/memoize-extract.1.md
2024/04/02 | 4996188 | macros/latex/contrib/schule.zip
2024/04/02 | 497255 | graphics/pgf/contrib/profsio/doc/ProfSio-doc-fr.pdf
-2024/04/02 | 49361 | fonts/newtx/README
2024/04/02 | 493345 | macros/generic/memoize/doc/memoize-doc.tex
2024/04/02 | 490630 | macros/latex/contrib/resolsysteme.zip
2024/04/02 | 42782 | macros/latex/contrib/resolsysteme/doc/ResolSysteme-doc.tex
@@ -595,8 +633,6 @@
2024/04/02 | 32741 | macros/generic/memoize/doc/examples-src.zip
2024/04/02 | 32480 | macros/generic/memoize/doc/examples.zip
2024/04/02 | 3108 | macros/luatex/latex/gitinfo-lua/tex/gitinfo-lua.sty
-2024/04/02 | 3022 | macros/luatex/generic/minim-mp/minim-mp.sty
-2024/04/02 | 30156 | fonts/newtx/tex/newtxtext.sty
2024/04/02 | 2935898 | install/macros/generic/memoize.tds.zip
2024/04/02 | 289 | macros/luatex/latex/lua-placeholders/doc/lua-placeholders-example/example.yaml
2024/04/02 | 2882650 | macros/generic/memoize.zip
@@ -618,7 +654,6 @@
2024/04/02 | 151307 | macros/generic/memoize/memoize.edtx
2024/04/02 | 149250 | graphics/pgf/contrib/profsio/tex/ProfSio.sty
2024/04/02 | 14922 | macros/luatex/latex/lua-placeholders/doc/lua-placeholders-manual.tex
-2024/04/02 | 135232 | systems/texlive/tlnet/archive/fontscale.doc.r70831.tar.xz
2024/04/02 | 12932 | macros/generic/memoize/doc/yadoc.sty
2024/04/02 | 126738 | macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.pdf
2024/04/02 | 124787 | macros/luatex/latex/gitinfo-lua.zip
@@ -627,227 +662,3 @@
2024/04/02 | 10 | macros/generic/memoize/doc/memoize-doc.mst
2024/04/02 | 1093 | macros/luatex/latex/gitinfo-lua/README.md
2024/04/02 | 1040 | macros/luatex/latex/gitinfo-lua/doc/git-scenario.sh
-2024/04/01 | 89175 | systems/win32/miktex/tm/packages/miktex-png-bin-x64-2.9.tar.lzma
-2024/04/01 | 8882 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2024/04/01 | 88626 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2024/04/01 | 8851 | systems/win32/miktex/tm/packages/miktex-md5-bin-x64-2.9.tar.lzma
-2024/04/01 | 851468 | systems/texlive/tlnet/archive/install-latex-guide-zh-cn.doc.r70823.tar.xz
-2024/04/01 | 848092 | systems/texlive/tlnet/archive/piton.doc.r70824.tar.xz
-2024/04/01 | 84592 | systems/win32/miktex/tm/packages/miktex-freeglut-bin-x64-2.9.tar.lzma
-2024/04/01 | 834540 | systems/win32/miktex/tm/packages/miktex-pdftex-bin-x64-2.9.tar.lzma
-2024/04/01 | 83043 | systems/win32/miktex/tm/packages/miktex-fonts-bin-x64-2.9.tar.lzma
-2024/04/01 | 828880 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2024/04/01 | 82202 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2024/04/01 | 82053 | systems/win32/miktex/tm/packages/miktex-lzma-bin-x64-2.9.tar.lzma
-2024/04/01 | 81978 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2024/04/01 | 81575 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2024/04/01 | 813950 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2024/04/01 | 813629 | systems/win32/miktex/tm/packages/files.csv.lzma
-2024/04/01 | 8006 | macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples-pyluatex.tex
-2024/04/01 | 79539 | systems/win32/miktex/tm/packages/miktex-bibtex-bin-x64-2.9.tar.lzma
-2024/04/01 | 79041 | systems/win32/miktex/tm/packages/miktex-fmt-bin-x64-2.9.tar.lzma
-2024/04/01 | 7884 | macros/latex/contrib/schule/latex/schuleab.cls
-2024/04/01 | 78348 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2024/04/01 | 780740 | systems/win32/miktex/tm/packages/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2024/04/01 | 77662 | systems/win32/miktex/tm/packages/miktex-web-bin-x64-2.9.tar.lzma
-2024/04/01 | 77379 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2024/04/01 | 76202 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2024/04/01 | 75456 | systems/win32/miktex/tm/packages/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2024/04/01 | 75079 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2024/04/01 | 74210 | systems/win32/miktex/tm/packages/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2024/04/01 | 73456 | systems/win32/miktex/tm/packages/miktex-graphite2-bin-x64-2.9.tar.lzma
-2024/04/01 | 73443 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2024/04/01 | 73399 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2024/04/01 | 7197 | macros/latex/contrib/schule/latex/schullzk.sty
-2024/04/01 | 712977 | systems/win32/miktex/tm/packages/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2024/04/01 | 71050 | systems/win32/miktex/tm/packages/miktex-texify-bin-x64-2.9.tar.lzma
-2024/04/01 | 707693 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2024/04/01 | 698896 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2024/04/01 | 69672 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2024/04/01 | 68072 | systems/win32/miktex/tm/packages/miktex-bibarts-bin-x64-2.9.tar.lzma
-2024/04/01 | 67448 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2024/04/01 | 6595 | macros/latex/contrib/schule/latex/schulinf.sty
-2024/04/01 | 65114 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2024/04/01 | 65099 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin-x64.tar.lzma
-2024/04/01 | 64876 | systems/win32/miktex/tm/packages/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2024/04/01 | 64553 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2024/04/01 | 6263 | macros/latex/contrib/schule/latex/schulekl.cls
-2024/04/01 | 619632 | systems/win32/miktex/tm/packages/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2024/04/01 | 61754 | systems/win32/miktex/tm/packages/miktex-psutils-bin-x64-2.9.tar.lzma
-2024/04/01 | 6151 | macros/latex/contrib/resolsysteme/doc/ResolSysteme-exemples.tex
-2024/04/01 | 60979 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2024/04/01 | 609727 | systems/win32/miktex/tm/packages/miktex-yap-bin-x64-2.9.tar.lzma
-2024/04/01 | 608916 | systems/win32/miktex/tm/packages/miktex-libressl-bin-x64-2.9.tar.lzma
-2024/04/01 | 60860 | systems/win32/miktex/tm/packages/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2024/04/01 | 606700 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2024/04/01 | 603371 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2024/04/01 | 59695 | systems/win32/miktex/tm/packages/miktex-xml2pmx-bin-x64.tar.lzma
-2024/04/01 | 5951 | macros/latex/contrib/schule/latex/schullzk.cls
-2024/04/01 | 59302 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2024/04/01 | 58952 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2024/04/01 | 5787 | macros/latex/contrib/schule/latex/schulein.cls
-2024/04/01 | 5780 | macros/latex/contrib/schule/latex/schuleue.cls
-2024/04/01 | 5774 | macros/latex/contrib/schule/latex/schullsg.cls
-2024/04/01 | 57527 | systems/win32/miktex/tm/packages/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2024/04/01 | 568 | systems/texlive/tlnet/archive/install-latex-guide-zh-cn.r70823.tar.xz
-2024/04/01 | 56013 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2024/04/01 | 55349 | systems/win32/miktex/tm/packages/miktex-synctex-bin-x64-2.9.tar.lzma
-2024/04/01 | 5507 | macros/latex/contrib/schule/latex/schulphy.sty
-2024/04/01 | 54784 | systems/win32/miktex/tm/packages/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2024/04/01 | 54743 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2024/04/01 | 54172 | systems/texlive/tlnet/archive/piton.source.r70824.tar.xz
-2024/04/01 | 54117 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2024/04/01 | 530421 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2024/04/01 | 52712 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2024/04/01 | 52680 | systems/win32/miktex/tm/packages/miktex-m-tx-bin-x64-2.9.tar.lzma
-2024/04/01 | 514214 | systems/win32/miktex/tm/packages/miktex-ptex-bin-x64.tar.lzma
-2024/04/01 | 499621 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
-2024/04/01 | 49958 | systems/win32/miktex/tm/packages/miktex-expat-bin-x64-2.9.tar.lzma
-2024/04/01 | 49726 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2024/04/01 | 49013 | systems/win32/miktex/tm/packages/miktex-mtprint-bin-x64-2.9.tar.lzma
-2024/04/01 | 48204 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2024/04/01 | 48158 | systems/win32/miktex/tm/packages/miktex-dvipng-bin-x64-2.9.tar.lzma
-2024/04/01 | 47371 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2024/04/01 | 473517 | systems/win32/miktex/tm/packages/miktex-metapost-bin-x64-2.9.tar.lzma
-2024/04/01 | 473500 | systems/win32/miktex/tm/packages/miktex-doc.tar.lzma
-2024/04/01 | 473027 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2024/04/01 | 46161 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
-2024/04/01 | 45931 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2024/04/01 | 45683 | systems/win32/miktex/tm/packages/miktex-mthelp-bin-x64-2.9.tar.lzma
-2024/04/01 | 45100 | systems/win32/miktex/tm/packages/miktex-upmendex-bin-x64.tar.lzma
-2024/04/01 | 44911 | systems/win32/miktex/tm/packages/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2024/04/01 | 44368 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2024/04/01 | 44078 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2024/04/01 | 44074 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2024/04/01 | 43843 | systems/win32/miktex/tm/packages/miktex-patgen-bin-x64.tar.lzma
-2024/04/01 | 43125 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2024/04/01 | 41204 | systems/win32/miktex/tm/packages/miktex-chktex-bin-x64-2.9.tar.lzma
-2024/04/01 | 4038724 | systems/texlive/tlnet/archive/pst-func.doc.r70822.tar.xz
-2024/04/01 | 40351 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2024/04/01 | 395539 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2024/04/01 | 395040 | systems/win32/miktex/tm/packages/miktex-cairo-bin-x64-2.9.tar.lzma
-2024/04/01 | 3764 | macros/latex/contrib/schule/doc/schule.tex
-2024/04/01 | 37635 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2024/04/01 | 37550 | systems/win32/miktex/tm/packages/miktex-posix-bin-x64-2.9.tar.lzma
-2024/04/01 | 3754 | macros/latex/contrib/schule/README
-2024/04/01 | 37547 | systems/win32/miktex/tm/packages/miktex-axohelp-bin-x64-2.9.tar.lzma
-2024/04/01 | 37276 | systems/win32/miktex/tm/packages/miktex-arctrl-bin-x64-2.9.tar.lzma
-2024/04/01 | 372672 | systems/texlive/tlnet/archive/profmaquette.doc.r70826.tar.xz
-2024/04/01 | 36839 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2024/04/01 | 36719 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2024/04/01 | 357259 | systems/win32/miktex/tm/packages/miktex-xetex-bin-x64-2.9.tar.lzma
-2024/04/01 | 35499 | systems/win32/miktex/tm/packages/miktex-mspack-bin-x64-2.9.tar.lzma
-2024/04/01 | 35342 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2024/04/01 | 352176 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2024/04/01 | 352165 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2024/04/01 | 352106 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2024/04/01 | 34617 | systems/win32/miktex/tm/packages/miktex-makeindex-bin-x64-2.9.tar.lzma
-2024/04/01 | 34106 | systems/win32/miktex/tm/packages/miktex-uriparser-bin-x64-2.9.tar.lzma
-2024/04/01 | 33874 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2024/04/01 | 33846 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2024/04/01 | 336407 | systems/win32/miktex/tm/packages/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2024/04/01 | 33609 | systems/win32/miktex/tm/packages/miktex-lacheck-bin-x64-2.9.tar.lzma
-2024/04/01 | 3340 | macros/latex/contrib/schule/doc/changelog.tex
-2024/04/01 | 329757 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2024/04/01 | 32909 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2024/04/01 | 32059 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2024/04/01 | 31987 | systems/win32/miktex/tm/packages/miktex-autosp-bin-x64-2.9.tar.lzma
-2024/04/01 | 31588 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2024/04/01 | 31327 | systems/win32/miktex/tm/packages/miktex-bzip2-bin-x64-2.9.tar.lzma
-2024/04/01 | 305499 | systems/win32/miktex/tm/packages/miktex-freetype2-bin-x64-2.9.tar.lzma
-2024/04/01 | 305472 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2024/04/01 | 30015 | systems/win32/miktex/tm/packages/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2024/04/01 | 293644 | systems/win32/miktex/tm/packages/miktex-mo-bin-x64-2.9.tar.lzma
-2024/04/01 | 2930162 | systems/win32/miktex/tm/packages/miktex-texworks-bin-x64-2.9.tar.lzma
-2024/04/01 | 291418 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2024/04/01 | 29137 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2024/04/01 | 287548 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2024/04/01 | 2844035 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2024/04/01 | 275714 | systems/win32/miktex/tm/packages/miktex-console-bin-x64-2.9.tar.lzma
-2024/04/01 | 27215 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2024/04/01 | 272010 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2024/04/01 | 27161 | systems/win32/miktex/tm/packages/miktex-teckit-bin-x64-2.9.tar.lzma
-2024/04/01 | 26770 | systems/win32/miktex/tm/packages/miktex-devnag-bin-x64-2.9.tar.lzma
-2024/04/01 | 256795 | systems/win32/miktex/tm/packages/miktex-hitex-bin-x64.tar.lzma
-2024/04/01 | 25619 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2024/04/01 | 25600 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2024/04/01 | 25401 | systems/win32/miktex/tm/packages/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2024/04/01 | 249310 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
-2024/04/01 | 245847 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2024/04/01 | 245828 | systems/win32/miktex/tm/packages/miktex-pmx-bin-x64-2.9.tar.lzma
-2024/04/01 | 24176 | systems/win32/miktex/tm/packages/miktex-popt-bin-x64-2.9.tar.lzma
-2024/04/01 | 24138 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2024/04/01 | 240019 | systems/win32/miktex/tm/packages/miktex-curl-bin-x64-2.9.tar.lzma
-2024/04/01 | 23996 | systems/texlive/tlnet/archive/profmaquette.r70826.tar.xz
-2024/04/01 | 238852 | systems/win32/miktex/tm/packages/miktex-metafont-bin-x64-2.9.tar.lzma
-2024/04/01 | 232104 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2024/04/01 | 221335 | systems/win32/miktex/tm/packages/miktex-omegaware-bin-x64-2.9.tar.lzma
-2024/04/01 | 221333 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2024/04/01 | 218895 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2024/04/01 | 217648 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2024/04/01 | 216080 | systems/win32/miktex/tm/packages/miktex-hunspell-bin-x64-2.9.tar.lzma
-2024/04/01 | 21008 | systems/texlive/tlnet/archive/pst-func.r70822.tar.xz
-2024/04/01 | 20828 | systems/win32/miktex/tm/packages/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2024/04/01 | 20752 | systems/win32/miktex/tm/packages/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2024/04/01 | 2069758 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2024/04/01 | 2069640 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2024/04/01 | 205316 | systems/win32/miktex/tm/packages/miktex-pixman-bin-x64-2.9.tar.lzma
-2024/04/01 | 202815 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2024/04/01 | 2018160 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2024/04/01 | 2017218 | systems/win32/miktex/tm/packages/miktex-luatex-bin-x64-2.9.tar.lzma
-2024/04/01 | 19989 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2024/04/01 | 19941 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2024/04/01 | 19552 | systems/texlive/tlnet/archive/piton.r70824.tar.xz
-2024/04/01 | 19039 | macros/latex/contrib/coloredtheorem/LICENSE
-2024/04/01 | 182722 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2024/04/01 | 17973 | macros/latex/contrib/schule/latex/schuleub.cls
-2024/04/01 | 1771647 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
-2024/04/01 | 1771559 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2024/04/01 | 175809 | systems/win32/miktex/tm/packages/miktex-tex-bin-x64-2.9.tar.lzma
-2024/04/01 | 174093 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2024/04/01 | 160320 | systems/win32/miktex/tm/packages/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2024/04/01 | 159831 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2024/04/01 | 159069 | macros/latex/contrib/resolsysteme/tex/ResolSysteme.sty
-2024/04/01 | 1588852 | systems/win32/miktex/tm/packages/miktex-poppler-bin-x64-2.9.tar.lzma
-2024/04/01 | 1560363 | systems/win32/miktex/tm/packages/miktex-runtime-bin-x64-2.9.tar.lzma
-2024/04/01 | 15414 | macros/latex/contrib/schule/latex/schulealt.sty
-2024/04/01 | 1531026 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2024/04/01 | 1495652 | systems/texlive/tlnet/archive/tex4ht.source.r70827.tar.xz
-2024/04/01 | 1472723 | macros/latex/contrib/schule/doc/schule.pdf
-2024/04/01 | 14601 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
-2024/04/01 | 1456960 | systems/win32/miktex/tm/packages/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2024/04/01 | 14535 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma
-2024/04/01 | 1442114 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2024/04/01 | 142876 | systems/win32/miktex/tm/packages/miktex-mktex-bin-x64-2.9.tar.lzma
-2024/04/01 | 141878 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2024/04/01 | 138745 | systems/win32/miktex/tm/packages/miktex-dvips-bin-x64-2.9.tar.lzma
-2024/04/01 | 137676 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2024/04/01 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r70827.tar.xz
-2024/04/01 | 13626 | macros/latex/contrib/schule/latex/schuleit.cls
-2024/04/01 | 1344614 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2024/04/01 | 122059683 | macros/context/latest/cont-tmf.zip
-2024/04/01 | 1185913 | systems/win32/miktex/tm/packages/miktex-asymptote-bin-x64-2.9.tar.lzma
-2024/04/01 | 118362 | systems/win32/miktex/tm/packages/miktex-gregorio-bin-x64-2.9.tar.lzma
-2024/04/01 | 117804 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2024/04/01 | 1172110 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2024/04/01 | 1152 | systems/win32/miktex/tm/packages/pr.ini
-2024/04/01 | 1150 | systems/win32/miktex/tm/packages/next/pr.ini
-2024/04/01 | 114369 | systems/win32/miktex/tm/packages/miktex-texware-bin-x64-2.9.tar.lzma
-2024/04/01 | 1129580 | systems/texlive/tlnet/archive/tex4ht.r70827.tar.xz
-2024/04/01 | 112427 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2024/04/01 | 110473 | systems/win32/miktex/tm/packages/miktex-mfware-bin-x64-2.9.tar.lzma
-2024/04/01 | 110246 | systems/win32/miktex/tm/packages/miktex-jpeg-bin-x64-2.9.tar.lzma
-2024/04/01 | 109929 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2024/04/01 | 108740 | systems/win32/miktex/tm/packages/miktex-cweb-bin-x64-2.9.tar.lzma
-2024/04/01 | 108516 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2024/04/01 | 10728 | macros/latex/contrib/schule/latex/schulekl.sty
-2024/04/01 | 106704 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2024/04/01 | 106071 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2024/04/01 | 105648 | systems/win32/miktex/tm/packages/miktex-gd-bin-x64-2.9.tar.lzma
-2024/04/01 | 105460 | systems/win32/miktex/tm/packages/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2024/04/01 | 104467 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2024/04/01 | 104194 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2024/04/01 | 104130 | systems/win32/miktex/tm/packages/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2024/04/01 | 103894 | systems/win32/miktex/tm/packages/miktex-lua53-bin-x64-2.9.tar.lzma
-2024/04/01 | 103548 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2024/04/01 | 10220 | macros/latex/contrib/schule/latex/schule.sty
diff --git a/biblio/ctan-bibdata/ctan.bib b/biblio/ctan-bibdata/ctan.bib
index cba08a21a6..6f17dc59ab 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 08-04-2024, 02:00:03
+%% created at 09-04-2024, 02:00:03
%%
%% This file is provided under the terms of the LPPL v1.3 or
@@ -18837,6 +18837,17 @@
url = {https://ctan.org/pkg/dictsym},
}
+@manual{ctan-didactic,
+ title = {The \texttt{didactic} package},
+ subtitle = {Tools for writing teaching material},
+ author = {Daniel Bosk},
+ date = {2024-04-08},
+ version = {1.6},
+ license = {lppl1.3c},
+ mirror = {https://mirror.ctan.org/macros/latex/contrib/didactic},
+ url = {https://ctan.org/pkg/didactic},
+}
+
@manual{ctan-didec,
title = {The \texttt{didec} package},
subtitle = {Fixed-point arithmetic with two decimal places},
@@ -37479,7 +37490,7 @@
title = {The \texttt{l3sys-query} package},
subtitle = {System queries for \LaTeX{} using Lua},
author = {{The LaTeX Project Team}},
- date = {2024-04-03},
+ date = {2024-04-08},
version = {},
license = {mit},
mirror = {https://mirror.ctan.org/support/l3sys-query},
@@ -47334,8 +47345,8 @@
title = {The \texttt{mptrees} package},
subtitle = {Probability trees with MetaPost},
author = {Olivier Péault},
- date = {2024-02-23},
- version = {24.02},
+ date = {2024-04-08},
+ version = {24.04},
license = {lppl1.3c},
mirror = {https://mirror.ctan.org/graphics/metapost/contrib/macros/mptrees},
url = {https://ctan.org/pkg/mptrees},
@@ -55665,7 +55676,7 @@
title = {The \texttt{procIAGssymp} package},
subtitle = {Macros for IAG symposium papers},
author = {Battista Benciolini},
- date = {2022-05-06},
+ date = {2024-04-08},
version = {},
license = {lppl},
mirror = {https://mirror.ctan.org/macros/latex/contrib/prociagssymp},
diff --git a/graphics/metapost/contrib/macros/mptrees/README.md b/graphics/metapost/contrib/macros/mptrees/README.md
index f74fa1c30c..97332c500f 100644
--- a/graphics/metapost/contrib/macros/mptrees/README.md
+++ b/graphics/metapost/contrib/macros/mptrees/README.md
@@ -1,4 +1,4 @@
-Package mptrees - Version 24.02 - February 22, 2024
+Package mptrees - Version 24.04 - April 8th, 2024
---
diff --git a/graphics/metapost/contrib/macros/mptrees/france-region.jpg b/graphics/metapost/contrib/macros/mptrees/france-region.jpg
new file mode 100644
index 0000000000..486b88268a
--- /dev/null
+++ b/graphics/metapost/contrib/macros/mptrees/france-region.jpg
Binary files differ
diff --git a/graphics/metapost/contrib/macros/mptrees/mptrees-doc.pdf b/graphics/metapost/contrib/macros/mptrees/mptrees-doc.pdf
index 5a62a3b517..39438c5357 100644
--- a/graphics/metapost/contrib/macros/mptrees/mptrees-doc.pdf
+++ b/graphics/metapost/contrib/macros/mptrees/mptrees-doc.pdf
Binary files differ
diff --git a/graphics/metapost/contrib/macros/mptrees/mptrees-doc.tex b/graphics/metapost/contrib/macros/mptrees/mptrees-doc.tex
index 1cc7339d01..9107592c46 100644
--- a/graphics/metapost/contrib/macros/mptrees/mptrees-doc.tex
+++ b/graphics/metapost/contrib/macros/mptrees/mptrees-doc.tex
@@ -10,6 +10,7 @@
\usepackage{unicode-math}
\setmainfont{STIX Two Text}
\setmathfont{STIX Two Math}
+\usepackage{fontawesome5}
\usepackage{geometry}
\geometry{hmargin=2cm,vmargin={1.5cm,1.8cm},includefoot}
@@ -180,7 +181,7 @@
\DeclareTCBListing[auto counter]{exemple}{ !O{} }{
enhanced,
- title=Exemple \thetcbcounter,
+ title=Example \thetcbcounter,
coltitle=black,
fonttitle=\bfseries,
attach boxed title to top left,
@@ -527,6 +528,8 @@ Numeric controlling the scale of the label at the end of the edge (the event).
\begin{mptparam}{nodeformat}{string}{""}
String that indicates how the events are printed (the shape of path around the event). Possible values are (for now) \verb|"bbox"|, \verb|"circle"|, \verb|"superellipse"|.
+
+See below for personalised values.
\end{mptparam}
\begin{exemple}[lefthand ratio=0.65]
@@ -562,6 +565,30 @@ nodefgcolor:=(0.7,0.4,0.7);
draw stree[1][1](3cm,2cm)("$A$","$B$");
\end{exemple}
+\begin{rpobjet}{nodeshape(expr A,B)}{cycle path}
+It is also possible to redefine the path defining the node. Simply rewrite the \verb|nodeshape| macro, which must take a picture as parameter and whose result must be a cycle path.
+
+The parameter passed to the macro is the figure representing the drawing of the event (normally the name of the event). You may use it, or not, in the macro definition.
+\end{rpobjet}
+
+\begin{exemple}[lefthand ratio=0.6]
+vardef nodeshape(expr p)=
+ fullcircle xscaled 1cm yscaled 0.6cm
+enddef;
+
+draw stree[1][1](3cm,3cm)("$A$","$B$");
+\end{exemple}
+
+
+\begin{exemple}[lefthand ratio=0.7]
+vardef nodeshape(expr p)=
+ llcorner p..ulcorner p..urcorner p..lrcorner p--cycle
+enddef;
+
+nodebgcolor:=0.7white;
+draw stree[1][1](3cm,3cm)("$A$","$B$");
+\end{exemple}
+
\subsection{Leaves}
@@ -757,6 +784,10 @@ When the boolean \verb|edgearrow| is set to true, edges end with an arrow.
String which indicates the shape of the edge. Possible values are \verb|segment|, \verb|curve|, \verb|broken|.
Note that double quotes have to be replaced by single quotes when this parameter is changed locally inside the \verb|tree| macro.
+
+
+See below for personalised values.
+
\end{mptparam}
@@ -808,6 +839,23 @@ Note that double quotes have to be replaced by single quotes when this parameter
draw stree[1][1](3cm,3cm)("$A$","$B$");
\end{exemple}
+\begin{rpobjet}{edgeshape(expr A,B)}{path}
+It is possible to completely redefine the path defining the edge. Simply rewrite the \verb|edgeshape| macro, which must take two pairs as parameters and whose result must be a path.
+
+The first parameter represents the start point and the second the end point.
+
+\end{rpobjet}
+
+\begin{exemple}[lefthand ratio=0.6]
+vardef edgeshape(expr S,E)=
+ save a;numeric a;a=angle(E-S);
+ S--((0.25cm,0) rotated (a+30) shifted 0.5[S,E])
+ --((0.25cm,0) rotated (a-150) shifted 0.5[S,E])
+ --E
+enddef;
+
+draw stree[1][1](3cm,3cm)("$A$","$B$");
+\end{exemple}
\section{Regular trees}
@@ -1136,6 +1184,8 @@ drawnodes();
\begin{mptparam}{nodeformat}{string}{""}
String that indicates how the nodes are printed (the shape of path around the node). Possible values are (for now) \verb|"bbox"|, \verb|"circle"|, \verb|"superellipse"| and \verb|"square"|.
+
+See below for personalised values.
\end{mptparam}
@@ -1194,6 +1244,41 @@ drawnodes();
\end{exemple}
+\begin{rpobjet}{nodeshape(expr A,B)}{(cycle) path}
+In the same way as for trees, it is also possible to redefine the path defining the node. Simply rewrite the \verb|nodeshape| macro, which must take a picture as parameter and whose result must be a cycle path.
+
+The parameter passed to the macro is the figure representing the drawing of the event (normally the name of the event). You may use it, or not, in the macro definition.
+
+Note that in the path definition, the coordinates $(0,0)$ correspond to the node coordinates.
+
+\end{rpobjet}
+
+\begin{exemple}[lefthand ratio = 0.65]
+vardef nodeshape(expr p)=
+ fullcircle xscaled 1.5nodewidth yscaled 0.8nodewidth
+enddef;
+
+defnodes((0cm,0cm),(2cm,2cm),(4cm,0));
+drawnodes();
+\end{exemple}
+
+
+\begin{exemple}[lefthand ratio = 0.65]
+vardef nodeshape(expr p)=
+ pair c,h,v;
+ h:=lrcorner p - llcorner p;
+ v:=ulcorner p - llcorner p;
+ c:=center p;
+ (c-h -- c+v -- c+h -- c-v -- cycle) shifted -c
+enddef;
+
+defnodes((0cm,0cm),(2cm,2cm),(4cm,0));
+drawnodes();
+\end{exemple}
+
+
+
+
\begin{rpdeclaration}{drawnodes(<nodes>) withbgcolor <color>}
While \verb|withcolor| applies to lines and labels, \verb|withbgcolor| applies to the filling of nodes.
\end{rpdeclaration}
@@ -1347,6 +1432,28 @@ drawnodes();
drawedges((1,2),(3,1),"$p$")();
\end{exemple}
+\begin{mptparam}{startedgeshift}{numeric}{0}
+Space added at the beginning of the edge.
+\end{mptparam}
+
+\begin{mptparam}{endedgeshift}{numeric}{0}
+Space added at the end of the edge.
+\end{mptparam}
+
+\begin{mptparam}{edgeshift}{numeric}{0}
+Space added at both start and end of the edge.
+\end{mptparam}
+
+\begin{exemple}[lefthand ratio = 0.6]
+defnodes((0cm,0cm),(2cm,2cm),(4cm,0));
+drawnodes();
+drawedges((1,2),(1,3),"$p$")();
+startedgeshift:=-0.3cm;endedgeshift:=-0.1cm;
+drawedges((1,3))() withcolor blue;
+edgeshift:=0.2cm;
+drawedges((1,2))() withcolor blue;
+\end{exemple}
+
\begin{mptparam}{probformat}{string}{""}
String that indicates how the weights are printed (the shape of the path). Possible values are (for now) \verb|"bbox"|, \verb|"circle"|, \verb|"superellipse"| and \verb|"square"|.
@@ -1438,6 +1545,28 @@ drawnodes();
drawdiredges((1,1),(2,2),(3,3))();
\end{exemple}
+\begin{rpobjet}{edgeshape(expr A,B)}{path}
+In the same way as for trees, it is also possible to completely redefine the path defining the edge. Simply rewrite the \verb|edgeshape| macro, which must take two pairs as parameters and whose result must be a path.
+
+The first parameter represents the start point and the second the end point.
+
+\end{rpobjet}
+
+\begin{exemple}[lefthand ratio = 0.6]
+vardef edgeshape(expr A,B)=
+ save a;numeric a;a=angle(B-A);
+ A--((0.25cm,0) rotated (a+30) shifted 0.5[A,B])
+ --((0.25cm,0) rotated (a-150) shifted 0.5[A,B])
+ --B
+enddef;
+
+defnodes((0cm,0cm),(2cm,2cm),(4cm,0));
+drawnodes();
+drawedge(1,2)();
+drawdiredge(3,1)();
+\end{exemple}
+
+
\section{Complete graphs}
\begin{rplabel}{draw(dir)graph.<pos>(<(Na,Nb)>,<string1>,<(Nc,Nd)>,<string2>,...)(<angle1>,<angle2>)}
@@ -1487,6 +1616,262 @@ drawedges((1,2),(3,1))();
\end{exemple}
-\end{document}
+\section{Examples}
+
+\subsection*{Weighted graph}
+\begin{exemple}[listing above text]
+u:=0.8cm;
+nodewidth:=0.15cm;
+nodebgcolor:=black;
+printnodename:=false;
+defnodes((5u,0),(0,3u),(2u,4u),(7u,4u),(3u,6u),(2u,7u),(12u,7u),(7u,8u),
+ (10u,8u),(9.5u,9.5u));
+drawnodes();
+drawedges((1,2),"9",(1,3),"9",(1,4),"8",(1,7),"18")();
+drawedges((2,3),"3",(2,6),"6")();
+drawedges((3,4),"9",(3,5),"2",(3,6),"4")();
+drawedges((4,5),"8",(4,7),"10",(4,8),"7",(4,9),"9")();
+drawedges((5,6),"2",(5,8),"9")();
+drawedges((6,8),"9")();
+drawedges((7,9),"3",(7,10),"4")();
+drawedges((8,9),"5",(8,10),"4")();
+drawedges((9,10),"1")();
+\end{exemple}
+
+
+\subsection*{Minimum spanning tree}
+\begin{exemple}[listing above text]
+u:=0.8cm;
+nodewidth:=0.15cm;
+nodebgcolor:=black;
+printnodename:=false;
+defnodes((5u,0),(0,3u),(2u,4u),(7u,4u),(3u,6u),(2u,7u),(12u,7u),(7u,8u),
+ (10u,8u),(9.5u,9.5u));
+drawnodes();
+drawoptions(withcolor 0.7white);
+drawedges((1,2),"9",(1,3),"9",(1,7),"18")();
+drawedges((2,6),"6")();
+drawedges((3,4),"9",(3,6),"4")();
+drawedges((4,7),"10",(4,9),"9")();
+drawedges((5,8),"9")();
+drawedges((6,8),"9")();
+drawedges((7,10),"4")();
+drawedges((8,9),"5")();
+drawoptions(withcolor black);
+edgelinewidth:=2;
+drawedges((1,4),"8",(2,3),"3",(3,5),"2",(4,5),"8",(5,6),"2",(4,8),"7",
+ (8,10),"4",(9,10),"1",(7,9),"3")();
+\end{exemple}
+
+
+\subsection*{Graph colouring}
+
+\begin{exemple}[lefthand ratio = 0.6]
+printnodename:=false;
+nodewidth:=0.3cm;
+for i=1 upto 7:
+ defnodes(((2cm,0) rotated (360*i/7)));
+endfor
+nodebgcolor:=red;
+drawnodes(2,6);
+nodebgcolor:=blue;
+drawnodes(1,4);
+nodebgcolor:=green;
+drawnodes(3,5,7);
+drawedges((1,5),(1,6),(1,7),(2,3),(2,4),(2,5),
+ (3,4),(4,5),(4,6),(4,7),(6,7))();
+\end{exemple}
+
+\bigskip
+With Lua\LaTeX{} and \verb|luamplib| package you can use \verb|\includegraphics| inside a \MP{} code:
+
+\begin{exemple}[listing above text]
+u:=0.5cm;
+nodewidth:=0.4cm;
+nodename:="arabic";
+printnodename:=false;
+draw btex \includegraphics[width=10cm]{france-region.jpg} etex;
+% picture from https://capcarto.fr/telechargements/
+draw grid(20,18)(u);
+defnodes((4.5u,12.5u),(7.5u,14.5u),(5u,10u),(9.5u,16.5u),(10u,13u),
+ (15u,13u),(9u,12u),(12u,11u),(6u,8u),(11u,7u),(9u,3u),
+ (15u,5u),(19u,1u));
+nodebgcolor:=red;
+drawnodes(7,4,11,13);
+nodebgcolor:=green;
+drawnodes(2,10,6);
+nodebgcolor:=blue;
+drawnodes(5,3,12);
+nodebgcolor:=(1,1,0);
+drawnodes(1,8,9);
+drawedges((1,2),(1,3),(2,3),(2,4),(2,5),(2,7),(3,7),(3,9),(4,5),
+ (4,6),(5,6),(5,7),(5,8),(6,8),(7,8),(7,9),(7,10),(8,10),
+ (9,10),(9,11),(10,11),(10,12),(11,12))();
+\end{exemple}
+
+
+
+\subsection*{Markov chain}
+
+\begin{exemple}[lefthand ratio = 0.6]
+scaleprob:=0.8;
+u:=1.6cm;
+nodebgcolor:=0.8white;
+defnodes((0,0),(2u,0),(u,1.5u));
+drawnodes();
+drawoptions(withcolor red);
+drawdiredges((1,2),"$0.5$",(1,3),"$0.3$")(-25);
+drawdiredge(1,1)("$0.2$",210);
+drawoptions(withcolor blue);
+drawdiredges((2,1),"$0.1$",(2,3),"$0.3$")(-25);
+drawdiredge(2,2)("$0.6$",-30);
+drawoptions(withcolor 0.5green);
+drawdiredges((3,1),"$0.7$",(3,2),"$0.2$")(-25);
+drawdiredge(3,3)("$0.1$");
+\end{exemple}
+
+\subsection*{Hypercube $Q_3$}
+
+\begin{exemple}[lefthand ratio = 0.65]
+u:=3cm;
+nodewidth:=0.3cm;
+edgelinewidth:=2;
+pair p; p:=(0.4u,0.4u);
+defnodes((0,0),(u,0),(0,u),(u,u));
+defnodes((0,0)+p,(u,0)+p,(0,u)+p,(u,u)+p);
+nodebgcolor:=black;nodelinecolor:=black;
+drawnode.lrt(6,"101");
+nodebgcolor:=red;nodelinecolor:=red;
+drawnode.llft(1,"000");drawnode.lrt(2,"001");
+drawnode.rt(4,"011");drawnode.lrt(5,"100");
+nodebgcolor:=blue;nodelinecolor:=blue;
+drawnode.lft(3,"010");drawnode.ulft(7,"110");
+drawnode.urt(8,"111");
+drawedges((1,3),(3,4),(2,6),(4,8),(6,8),(5,6),(5,7))();
+drawedges((3,7),(7,8))() withcolor blue;
+drawedges((1,2),(1,5),(2,4))() withcolor red;
+\end{exemple}
+
+\subsection*{Three utilities problem}
+
+With Lua\LaTeX{}, \verb|luamplib| and \verb|fontawesome5| packages.
+
+\begin{exemple}[lefthand ratio = 0.7]
+u:=1.2cm;
+defnodes((u,2u),(2u,2u),(3u,2u),(u,u),(2u,u),(3u,u));
+nodelinecolor:=white;
+drawnode(1,"\large \faHome");
+drawnode(2,"\large \faHome");
+drawnode(3,"\large \faHome");
+nodebgcolor:=black;nodefgcolor:=blue;
+drawnode(4,"\faWater");
+nodefgcolor:=red;drawnode(5,"\faBurn");
+nodefgcolor:=(1,1,0);drawnode(6,"\faBolt");
+drawedges((1,4),(2,4),(2,5),(2,6),(3,6))();
+drawedges((1,5),(5,3))(-115);
+vardef edgeshape(expr A,B)=
+save a;numeric a;a=angle(B-A);s:=if A>B: - fi 1;
+A..(0.7[A,B]+(0.35(B-A) rotated (s*90))){dir a}..B
+enddef;
+drawedges((4,3))();
+edgelinewidth:=2;drawedges((6,1))() withcolor (1,0.5,0);
+\end{exemple}
+
+\subsection*{Various}
+\begin{exemple}[lefthand ratio = 0.6]
+nodebgcolor:=0.7white;
+nodewidth:=0.2cm;
+
+for i=1 upto 7:
+ defnode(A[i],(2cm,0) rotated (360*i/7));
+ drawnode[360*i/7](i);
+ for j=1 upto i-1:
+ drawedge(i,j)();
+ endfor
+endfor
+\end{exemple}
+
+\begin{exemple}[lefthand ratio = 0.6]
+nodebgcolor:=0.7white;
+nodewidth:=0.2cm;
+printnodename:=false;
+u:=0.7cm;
+defnodes((3u,-3u));
+drawnode(1);
+for i=1 upto 4:
+ for j=1 upto 4:
+ defnodes((0,-2u) rotatedaround((0,-3u),90j)
+ rotated 90i);
+ endfor
+ defnodes((3u,-3u) rotated (90i));
+ drawnodes(5i-3,5i-2,5i-1,5i,5i+1);
+ drawedges((5i-4,5i-3),(5i-3,5i-2),(5i-2,5i-1),
+ (5i-1,5i),(5i,5i-3),(5i-1,5i+1))();
+endfor;
+\end{exemple}
+
+
+\begin{exemple}[listing above text,before lower=\footnotesize]
+u:=1.2cm;
+nodewidth:=0.4cm;
+defnodes((0,0.6u),(3u,0.6u),(5u,0),(8u,0),(10u,0.6u),(13u,0.6u),(0,-0.6u),
+ (3u,-0.6u),(10u,-0.6u),(13u,-0.6u));
+nodeedgeoffset:=-0.2cm;
+nodebgcolor:=0.8white;
+edgelinewidth:=0.2cm;
+vardef edgeshape (expr A,B)=A{dir 0}..{dir 0}B enddef;
+drawedges((1,2))() withcolor red;
+drawedges((5,6))() withcolor red;
+drawedges((7,8))() withcolor blue;
+drawedges((9,10))() withcolor blue;
+endedgeshift:=0.1cm; drawedges((2,3))() withcolor red;
+endedgeshift:=-0.1cm; drawedges((8,3))() withcolor blue;
+endedgeshift:=0cm;
+startedgeshift:=0.1cm; drawedges((4,5))() withcolor red;
+startedgeshift:=-0.1cm;drawedges((4,9))() withcolor blue;
+edgeshift:=0.1cm; drawedges((3,4))() withcolor red;
+edgeshift:=-0.1cm; drawedges((3,4))() withcolor blue;
+drawnode.bot(1,"C.H.U.");
+drawnode.bot(2,"Berges de Maine");
+drawnode.bot(5,"Hôtel de Ville");
+drawnode.bot(6,"Foch - Maison bleue");
+drawnode.bot(7,"Doutre");
+drawnode.bot(8,"Place Molière");
+drawnode.bot(9,"Conservatoire");
+drawnode.bot(10,"Montaigne");
+vardef nodeshape(expr p)=
+ (halfcircle shifted (0,0.5)--
+ halfcircle scaled -1 shifted (0,-0.5)--
+ cycle) scaled nodewidth
+enddef;
+drawnode.bot(3,"Saint-Serge");
+drawnode.bot(4,"Centre de Congrès");
+\end{exemple}
+
+\begin{exemple}[listing above text]
+vardef nodeshape(expr p)=
+% From "Drawing with Metapost" by Toby Thurston
+% https://github.com/thruston/Drawing-with-Metapost/
+ for i=1 upto 20:
+ (0.4cm if odd(i): - else: + fi 3+ uniformdeviate 3,0) rotated (i*360/20) --
+ endfor cycle
+enddef;
+vardef edgeshape(expr A,B)=
+ save an;numeric an;an:=angle(B-A);
+ A{dir (an + 60*(uniformdeviate 2-1))}..
+ 0.5[A,B]{dir (180+an)}..
+ {dir (an + 60*(uniformdeviate 2-1))}B
+enddef;
+nodebgcolor:=(1,0.5,0);
+nodelinecolor:=0.6red;
+nodefgcolor:=0.6red;
+linecolor:=0.5green;
+edgelinewidth:=1.5;
+defnodes((0cm,0cm),(4cm,2cm),(8cm,1cm),(5cm,-3cm));
+drawnodes();
+drawedges((1,2),(2,3),(3,4),(1,4))();
+\end{exemple}
+
+\end{document}
diff --git a/graphics/metapost/contrib/macros/mptrees/mptrees.mp b/graphics/metapost/contrib/macros/mptrees/mptrees.mp
index f31080b61c..eba564d665 100644
--- a/graphics/metapost/contrib/macros/mptrees/mptrees.mp
+++ b/graphics/metapost/contrib/macros/mptrees/mptrees.mp
@@ -2,10 +2,10 @@
%% mptrees.mp %%
%% Probability trees with MetaPost %%
%% o.peault@posteo.net %%
-%% Version 24.02 (February 2024) %%
+%% Version 24.04 (April 2024) %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
string mptreesversion;
-mptreesversion:="24.02";
+mptreesversion:="24.04";
%
% This work may be distributed and/or modified under the conditions of
% the LaTeX Project Public License, either version 1.3 of this license
@@ -13,6 +13,7 @@ mptreesversion:="24.02";
% license is in http://www.latex-project.org/lppl.txt
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
message "mptrees version " & mptreesversion;
if not known mplib: input latexmp fi;
@@ -41,7 +42,6 @@ numeric mpt_tmpdirtree;
% à la fin de begintree, on exécute deux fois mpt_tree
extra_endfig:="if mpt_begtr: mpt_tree currentpicture:=nullpicture; mpt_passe:=2; AdjustNodes; mpt_tree; mpt_begtr:=false;mpt_passe:=1 fi;" & extra_endfig;
-%extra_endfig:="if mpt_begtr: mpt_tree drawoptions(withcolor blue); mpt_passe:=2; AdjustNodes; mpt_tree; mpt_begtr:=false;mpt_passe:=1 fi;" & extra_endfig;
numeric posprob; % position de l'étiquette sur la branche
@@ -73,7 +73,7 @@ color linecolor;
linecolor:=black;
numeric nodelinewidth; % épaisseur de la ligne autour des noeuds
-nodelinewidth:=0.5bp;
+nodelinewidth:=-1; % change pour tree et graph
pair Orig_arbre[][]; % sommet de l'arbre i,j
Orig_arbre[1][1]:=origin;
@@ -166,7 +166,6 @@ vardef labelarbres(expr s)=
save p; picture p;
if picture s: p=s
elseif path s: p=image(draw s)
-% elseif string s: p=scantokens("btex" & s & "etex");
else: p=textext(s)
fi;
p
@@ -219,7 +218,7 @@ vardef superellipsebox(expr p)=
c=0.5[ulcorner l,llcorner l];
d=0.5[llcorner l,lrcorner l];
if (mpt_isgraph and (not naturalwidth) and (not mpt_isprob)):
- l:=superellipse(1/2 right, 1/2 up, 1/2 left, 1/2 down, .8);
+ l:=superellipse(1/2 right, 1/2 up, 1/2 left, 1/2 down, superellipseparam);
l:=l scaled nodewidth
elseif naturalwidth:
l:=superellipse(a,b,c,d,superellipseparam);
@@ -230,13 +229,6 @@ vardef superellipsebox(expr p)=
l
enddef;
-vardef supellformat(expr p,cl,cb,cf)=
-image(%
- if (cb<>white) or (mpt_bgc): fill superellipsebox(p) withcolor cb mpt_opbg_ fi;
- draw superellipsebox(p) withcolor cl withpen pencircle scaled nodelinewidth mpt_po_ ;
- if arbrebool or mpt_isprob: draw p withcolor cf mpt_po_ fi;
-)
-enddef;
% Circle
vardef circlebox(expr p)=
@@ -247,27 +239,13 @@ vardef circlebox(expr p)=
c:=0.5[a,b];
if (mpt_isgraph and (not naturalwidth) and (not mpt_isprob)):
fullcircle scaled nodewidth
- elseif naturalwidth:
+ elseif naturalwidth and (not mpt_isprob):
fullcircle scaled (abs(b-a)-2)
else:
fullcircle scaled (abs(b-a)-2) shifted c
fi
enddef;
-vardef circleformat(expr p,cl,cb,cf)=
-image(%
- if (cb<>white) or (mpt_isprobover) or (mpt_bgc): fill circlebox(p) withcolor cb mpt_opbg_ fi;
- draw circlebox(p) withcolor cl withpen pencircle scaled nodelinewidth mpt_po_;
- if arbrebool or mpt_isprob: draw p withcolor cf mpt_po_ fi;
-)
-enddef;
-
-vardef circleprobformat(expr p,cf)=
-image(%
- fill circlebox(p) withcolor background;
- draw p withcolor cf mpt_po_;
-)
-enddef;
% square
vardef squarebox(expr p)=
@@ -285,20 +263,45 @@ vardef squarebox(expr p)=
fi
enddef;
-vardef squareformat(expr p,cl,cb,cf)=
+
+
+
+
+
+vardef circleprobformat(expr p,cf)=
+image(%
+ myfill circlebox(p) withcolor background;
+ draw p withcolor cf _op_ mpt_po_;
+)
+enddef;
+
+
+
+
+
+vardef formatprobbox(expr p,cl,cb,cf)=
+image(%
+ if (cb<>white) or (mpt_isprobover) or (mpt_bgc): myfill probshape(p) withcolor cb mpt_opbg_ fi;
+ draw probshape(p) withcolor cl withpen pencircle scaled nodelinewidth mpt_po_;
+ if arbrebool or mpt_isprob: draw p withcolor cf mpt_po_ fi;
+)
+enddef;
+
+vardef formatnodebox(expr p,cl,cb,cf)=
+save pp;path pp;
+if mpt_isgraph: pp:= mpt_nodepath[num] shifted -mpt_nodecoord[num] else: pp:=nodeshape(p) fi;
image(%
- if (cb<>white) or (mpt_bgc): fill squarebox(p) withcolor cb mpt_opbg_ fi;
- draw squarebox(p) withcolor cl withpen pencircle scaled nodelinewidth mpt_po_;
- if arbrebool or mpt_isprob: draw p withcolor cf mpt_po_ fi;
+ if (cb<>white) or (mpt_isprobover) or (mpt_bgc): fill pp withcolor cb mpt_opbg_ fi;
+ draw pp withcolor cl withpen pencircle scaled nodelinewidth mpt_po_;
+ if arbrebool or mpt_isprob: draw p shifted (center pp-center p) withcolor cf mpt_po_ fi;
)
enddef;
-% bbox
-vardef bboxformat(expr p,cl,cb,cf)=
+vardef formatleavebox(expr p,cl,cb,cf)=
image(%
- if (cb<>white) or (mpt_bgc): fill bbox p withcolor cb mpt_opbg_ fi;
- draw bbox p withcolor cl withpen pencircle scaled nodelinewidth mpt_po_;
- if arbrebool or mpt_isprob: draw p withcolor cf mpt_po_ fi;
+ if (cb<>white) or (mpt_isprobover) or (mpt_bgc): fill leaveshape(p) withcolor cb mpt_opbg_ fi;
+ draw leaveshape(p) withcolor cl withpen pencircle scaled nodelinewidth mpt_po_;
+ if arbrebool or mpt_isprob: draw p withcolor cf mpt_po_ fi;
)
enddef;
@@ -312,69 +315,61 @@ probformat:="";
-
vardef formatprob(expr p)=
+save pp;path pp;
+pp:=probshape(p);
save cl,cb,cf;
color cl,cb,cf;
cl:=problinecolor;
cb:=probbgcolor;
cf:=probfgcolor;
- if probformat="superellipse":
- supellformat(p,cl,cb,cf)
- elseif probformat="circle":
- circleformat(p,cl,cb,cf)
- elseif probformat="square":
- squareformat(p,cl,cb,cf)
- elseif probformat="bbox":
- bboxformat(p,cl,cb,cf)
- elseif mpt_isprobover and (probformat=""):
- circleprobformat(p,cf)
- else:
+ if mpt_isprobover and (probformat="") and mpt_probsh_ori:
+ circleprobformat(p,cf)
+ elseif (probformat="") and mpt_probsh_ori:
image (draw p withcolor cf mpt_po_)
+ else:
+ formatprobbox(p,cl,cb,cf)
fi
enddef;
vardef formatnodeev(expr p)=
+save pp;path pp;
+pp:=nodeshape(p);
save cl,cb,cf;
color cl,cb,cf;
cl:=nodelinecolor;
cb:=nodebgcolor;
cf:=nodefgcolor;
- if nodeformat="superellipse":
- supellformat(p,cl,cb,cf)
- elseif nodeformat="circle":
- circleformat(p,cl,cb,cf)
- elseif (mpt_isgraph) and (nodeformat=""):
- circleformat(p,cl,cb,cf)
- elseif nodeformat="square":
- squareformat(p,cl,cb,cf)
- elseif nodeformat="bbox":
- bboxformat(p,cl,cb,cf)
- else:
+ if nodelinewidth=-1:
+ nodelinewidth:= if mpt_isgraph: 1 else: 0.5 fi
+ fi;
+ if (not mpt_isgraph) and (nodeformat="") and mpt_nodesh_ori:
image (draw p withcolor cf mpt_po_)
+ else:
+ formatnodebox(p,cl,cb,cf)
fi
enddef;
+
+
vardef formatnodeleave(expr p)=
save cl,cb,cf;
color cl,cb,cf;
cl:=leavelinecolor;
cb:=leavebgcolor;
cf:=leavefgcolor;
- if leaveformat="superellipse":
- supellformat(p,cl,cb,cf)
- elseif leaveformat="circle":
- circleformat(p,cl,cb,cf)
- elseif leaveformat="bbox":
- bboxformat(p,cl,cb,cf)
- elseif leaveformat="none":
+ if leaveformat="none":
image (draw p withcolor cf)
- else:
+ elseif leaveformat="":
formatnodeev(p)
+ else:
+ formatleavebox(p,cl,cb,cf)
fi
enddef;
+
+
vardef formatnode(expr p)=
if known exist.arbre[colonne_cour+1][counttmp]:
formatnodeev(p)
@@ -384,12 +379,63 @@ vardef formatnode(expr p)=
enddef;
+boolean mpt_nodesh_ori,mpt_probsh_ori;
+mpt_nodesh_ori:=false;
+mpt_probsh_ori:=false;
+
+
+% Forme du chemin autour de la oproba
+vardef probshape(expr p)=
+ mpt_probsh_ori:=true;
+ if probformat="superellipse":
+ superellipsebox(p)
+ elseif probformat="circle":
+ circlebox(p)
+ elseif probformat="square":
+ squarebox(p)
+ else:
+ bbox p %shifted -center bbox p
+ fi
+enddef;
+
+% Forme du chemin autour du noeud
+vardef nodeshape(expr p)=
+ mpt_nodesh_ori:=true;
+ if nodeformat="superellipse":
+ superellipsebox(p)
+ elseif (nodeformat="circle") or (nodeformat=""):
+ circlebox(p)
+ elseif nodeformat="square":
+ squarebox(p)
+ else:
+ bbox p %shifted -center bbox p
+ fi
+enddef;
+
+vardef leaveshape(expr p)=
+ if leaveformat="superellipse":
+ superellipsebox(p)
+ elseif (leaveformat="circle"):
+ circlebox(p)
+ elseif leaveformat="square":
+ squarebox(p)
+ else:
+ bbox p %shifted -center bbox p
+ fi
+enddef;
+
+
+
+
+
+vardef formatnodepath(expr p)=
+ nodeshape(p)
+enddef;
+
%%% Prints events
vardef theevlabel(expr s,z,inc)=
save d; numeric d;
-% save p;picture p;
-% p:=formatnode(s);
d=0.5*longdir(s,inc);
s shifted (z - center s + (d+labeloffset)*dir(inc))
enddef;
@@ -491,9 +537,32 @@ enddef;
%%%%%%%% Dessin de la branche
+
vardef dessinbranche(expr Ori,Fin)=
+ edgeshape(Ori,Fin)
+enddef;
+
+
+vardef dessinarete(expr Ori,Fin)=
+ save an,dec;
+ numeric an;pair decdeb,decfin;
+ an:=angle(Fin-Ori);
+ if edgeshift<>0:
+ startedgeshift:=edgeshift;endedgeshift:=edgeshift
+ fi;
+ decdeb:=(0,startedgeshift) rotated an;
+ decfin:=(0,endedgeshift) rotated an;
+ edgeshape(Ori+decdeb,Fin+decfin)
+enddef;
+
+
+
+vardef edgeshape(expr Ori,Fin)=
+ save an;
+ numeric an;
if mpt_isgraph:
- mpt_tmp_branche
+ an:=angle(Fin-Ori);
+ (Ori){dir (an+edgeangleaa[0])}..{dir (an-edgeangleaa[1])}(Fin)
elseif branchtype="segment":
Ori--Fin
elseif branchtype="curve":
@@ -1175,92 +1244,23 @@ enddef;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Outils
-vardef isdigit primary d =
- ("0"<=d)and(d<="9")
-enddef ;
-
-% Convertit un suffixe en chaine avec les chiffres en indice
-vardef _chaine(suffix s)=
- save c,d;
- string c,d;
- d:= str s;
- if length(d)=1:
- c:=d
- elseif isdigit (substring (1,2) of d):
- c:= (substring (0,1) of d) & "_{" & substring (1,infinity) of d & "}"
- else: c:=str s
- fi;
- c
-enddef;
-
-vardef _chainec(expr d)=
- save c;
- string c;
- if length(d)=1:
- c:=d
- elseif isdigit (substring (1,2) of d):
- c:= (substring (0,1) of d) & "_{" & substring (1,infinity) of d & "}"
- elseif isdigit (substring (2,3) of d):
- c:= (substring (0,2) of d) & "_{" & substring (2,infinity) of d & "}"
- else:
- c:=d
- fi;
- c
-enddef;
-
-% longueur d'un paramètre text
-vardef long_texte(text t)=
- save i;
- numeric i;
- i:=0;
- for n=t: i:=i+1; endfor
- i
-enddef;
-
-
-% Placement fin des étiquettes
-vardef thelabelang@#(expr s,z)=
- save tmpang,tmpfig,tmppt,tmppath,tmpstr;
- string tmpstr;
- numeric tmpang;
- pair tmppt;
- path tmppath;
- save p; picture p;
- tmpstr := str @#;
- if picture s: p=s
- else: p = textext(s)
- fi;
- tmppath := llcorner p -- lrcorner p -- urcorner p -- ulcorner p -- cycle;
- if ASCII tmpstr = 91:
- tmpang := scantokens substring(1,length(tmpstr)-1) of tmpstr
- else:
- tmpang := scantokens tmpstr
- fi;
- tmppt := tmppath intersectionpoint ((0.5urcorner p+0.5llcorner p)-- (0.5urcorner p +0.5llcorner p+ 100 * (dir (180+tmpang))));
- p shifted (-tmppt + z + labeloffset*(cosd(tmpang),sind(tmpang)) )
-enddef;
-
-def labelang = draw thelabelang enddef;
-
-
%%%%%%
%% Paramètres
%%%%%
-numeric nodewidth,edgelinewidth,edgearrowpos;
+numeric nodewidth,edgelinewidth,edgearrowpos,edgeshift,startegdeshift;
nodewidth:=0.6cm;
edgelinewidth:=1;
-nodelinewidth:=1;
edgearrowpos:=1;
+edgeshift:=0;
+startedgeshift:=0;
boolean naturalwidth;
naturalwidth:=false;
numeric nodelabeloffset, nodeedgeoffset; % pour la position des étiquettes
nodelabeloffset:=2;
-%nodeedgeoffset:=nodelinewidth/2+edgelinewidth/2;
nodeedgeoffset:=-101;
@@ -1357,7 +1357,7 @@ enddef;
def defnode(suffix ptA)(expr A)=
save tmpchcomp,tmpchlet,tmpchnum;
string tmpchcomp,tmpchlet,tmpchnum;
- mpt_isgraph:=true;
+ mpt_isgraph:=true;arbrebool:=false;
tmpchcomp:= str ptA;
tmpchlet:=mptlpart(str ptA);
tmpchnum:=mptnumpart(str ptA);
@@ -1379,7 +1379,7 @@ enddef;
def defnodestr(expr ptA)(expr A)= % Quand le premier paramètre est une chaine simple
save tmpchcomp,tmpchlet,tmpchnum;
string tmpchcomp,tmpchlet,tmpchnum;
- mpt_isgraph:=true;
+ mpt_isgraph:=true;arbrebool:=false;
tmpchcomp:= ptA;
tmpchlet:=ptA;
tmpchnum:="";
@@ -1394,6 +1394,7 @@ enddef;
def defnodes(text t)= % Pour définir plusieurs noeuds à la fois
+ mpt_isgraph:=true;arbrebool:=false;
if (nodename="array") or (nodename="arabic"):
for i=t:
mpt_numtotal:=mpt_numtotal+1;
@@ -1448,18 +1449,6 @@ vardef nodepath(suffix ptA)=
mpt_nodepath[nn]
enddef;
-% Forme du chemin autour du noeud
-vardef formatnodepath(expr p)=
- if nodeformat="superellipse":
- superellipsebox(p)
- elseif (nodeformat="circle") or (nodeformat=""):
- circlebox(p)
- elseif nodeformat="square":
- squarebox(p)
- else:
- bbox p shifted -center bbox p
- fi
-enddef;
% Dessin du noeud
@@ -1483,8 +1472,9 @@ vardef thenodenum@#(text t)=
pair tmp_pt;
string ch,latch;
picture dess;
- mpt_isgraph:=true;
- interim labeloffset:=nodelabeloffset+nodewidth/2;
+ mpt_isgraph:=true;arbrebool:=false;
+% interim labeloffset:=nodelabeloffset+nodewidth/2;
+ interim labeloffset:=nodelabeloffset;
if ((ASCII str @# < 58) or (ASCII str @# = 91)) and (str @#<>""):
def mylabel = labelang enddef
else:
@@ -1496,9 +1486,9 @@ vardef thenodenum@#(text t)=
ch:="$" & _chainec(mpt_nodename[num]) & "$";
if nodename="arabic": ch := "$" & decimal(num) & "$" fi;
mpt_nodepath[num]:=formatnodepath(labelarbres(ch) scaled scaleev) shifted mpt_nodecoord[num];
- label(formatnodeev(labelarbres(ch) scaled scaleev),mpt_nodecoord[num]);
+ draw formatnodeev(labelarbres(ch) scaled scaleev) shifted mpt_nodecoord[num];
if printnodename:
- mylabel@#(textext(ch) scaled scaleev,mpt_nodecoord[num]) withcolor nodefgcolor mpt_po_
+ mylabel@#(textext(ch) scaled scaleev, ptofpath@#(mpt_nodepath[num],mpt_nodecoord[num])) withcolor nodefgcolor mpt_po_
fi)
else:
dess:=image(%
@@ -1508,12 +1498,12 @@ vardef thenodenum@#(text t)=
tmp_pt:=mpt_nodecoord[num];
else:
mpt_nodepath[num]:=formatnodepath(labelarbres(PP) scaled scaleev) shifted mpt_nodecoord[num];
- label(formatnodeev(labelarbres(PP) scaled scaleev),tmp_pt);
+ draw formatnodeev(labelarbres(PP) scaled scaleev) shifted tmp_pt;
if printnodename:
if string PP:
- mylabel@#(textext(PP),tmp_pt) withcolor nodefgcolor mpt_po_;
+ mylabel@#(textext(PP),ptofpath@#(mpt_nodepath[num],mpt_nodecoord[num])) withcolor nodefgcolor mpt_po_;
else:
- mylabel@#(PP scaled defaultscale,tmp_pt) withcolor nodefgcolor mpt_po_;
+ mylabel@#(PP scaled defaultscale,ptofpath@#(mpt_nodepath[num],mpt_nodecoord[num])) withcolor nodefgcolor mpt_po_;
fi
fi
fi;
@@ -1590,6 +1580,7 @@ enddef;
def drawnodes = draw nodes enddef;
+
%%%%%%%%%%%%%
%% Arêtes
%%%%%%%%%%%%%
@@ -1607,8 +1598,7 @@ vardef theedgeAB(expr m,n)=
B:=mpt_nodecoord[n];
path pathab;
if m<>n:
- an:=angle(B-A);
- pathab:=A{dir (an+edgeangleaa[0])}..{dir (an-edgeangleaa[1])}B;
+ pathab:=dessinarete(A,B);
ta=xpart(pathab intersectiontimes mpt_nodepath[m]);
tb=xpart(pathab intersectiontimes mpt_nodepath[n]);
pathab:= subpath(ta,tb) of pathab;
@@ -1666,7 +1656,7 @@ vardef theedgenum(expr nA,nB)(text p)=
numeric edgeangleaa[],tmp_loopangle[];
edgeangleaa[0]=edgeangleaa[1]=edgeangle;
tmp_loopangle[0]:=loopangle;tmp_loopangle[1]:=loopstartangle;
- mpt_isgraph:=true;
+ mpt_isgraph:=true;arbrebool:=false;
nn:=0;
for i=p:
if numeric i:
@@ -1686,7 +1676,7 @@ vardef theedgenumfig(expr nA,nB)(text p)=
save tmppath;
path tmppath;
tmppath:=theedgenum(nA,nB)(p);
- image(draw tmppath withpen pencircle scaled edgelinewidth mpt_po_;
+ image(draw tmppath withpen pencircle scaled edgelinewidth withcolor linecolor mpt_po_;
if mpt_dir:
filldraw arrowhead subpath(0, edgearrowpos*length mpt_tmp_path) of mpt_tmp_path mpt_po_
fi;
@@ -1737,11 +1727,11 @@ vardef theedgepondnum@#(expr nA,nB)(text p)=
if ((ASCII str @# < 58) or (ASCII str @# = 91)) and (str @#<>""):
def mylabel = labelang enddef
else:
- def mylabel = label enddef
+ def mylabel = labelmp enddef
fi;
tmppath:=theedgenum(nA,nB)(p);
tmppt:=point (arctime posprob*(arclength tmppath) of tmppath) of tmppath;
- image(draw theedgenum(nA,nB)(p) withpen pencircle scaled edgelinewidth mpt_po_;
+ image(draw theedgenum(nA,nB)(p) withpen pencircle scaled edgelinewidth withcolor linecolor mpt_po_;
if mpt_dir:
filldraw arrowhead subpath(0, edgearrowpos*length mpt_tmp_path) of mpt_tmp_path mpt_po_
fi;
@@ -1789,12 +1779,12 @@ enddef;
vardef drawedge@#(text s)(text p) text t=
mpt_drop(t);
- draw edge@#(s)(p) withpen pencircle scaled edgelinewidth;
+ mydraw edge@#(s)(p) withpen pencircle scaled edgelinewidth;
mpt_drop();
enddef;
vardef drawedges@#(text s)(text p) text t=
- draw edges@#(s)(p) t
+ mydraw edges@#(s)(p) t
enddef;
@@ -1877,3 +1867,111 @@ enddef;
def drawgrid= draw grid enddef;
+
+
+%%%%%%%%%%%%%%%
+%% Outils
+%%%%%%%%%%%%%%%%
+
+
+vardef isdigit primary d =
+ ("0"<=d)and(d<="9")
+enddef ;
+
+% Convertit un suffixe en chaine avec les chiffres en indice
+vardef _chaine(suffix s)=
+ save c,d;
+ string c,d;
+ d:= str s;
+ if length(d)=1:
+ c:=d
+ elseif isdigit (substring (1,2) of d):
+ c:= (substring (0,1) of d) & "_{" & substring (1,infinity) of d & "}"
+ else: c:=str s
+ fi;
+ c
+enddef;
+
+vardef _chainec(expr d)=
+ save c;
+ string c;
+ if length(d)=1:
+ c:=d
+ elseif isdigit (substring (1,2) of d):
+ c:= (substring (0,1) of d) & "_{" & substring (1,infinity) of d & "}"
+ elseif isdigit (substring (2,3) of d):
+ c:= (substring (0,2) of d) & "_{" & substring (2,infinity) of d & "}"
+ else:
+ c:=d
+ fi;
+ c
+enddef;
+
+% longueur d'un paramètre text
+vardef long_texte(text t)=
+ save i;
+ numeric i;
+ i:=0;
+ for n=t: i:=i+1; endfor
+ i
+enddef;
+
+
+% Placement fin des étiquettes
+vardef thelabelang@#(expr s,z)=
+ save tmpang,tmpfig,tmppt,tmppath,tmpstr;
+ string tmpstr;
+ numeric tmpang;
+ pair tmppt;
+ path tmppath;
+ save p; picture p;
+ tmpstr := str @#;
+ if picture s: p=s
+ else: p = textext(s)
+ fi;
+ tmppath := llcorner p -- lrcorner p -- urcorner p -- ulcorner p -- cycle;
+ if ASCII tmpstr = 91:
+ tmpang := scantokens substring(1,length(tmpstr)-1) of tmpstr
+ else:
+ tmpang := scantokens tmpstr
+ fi;
+ tmppt := tmppath intersectionpoint ((0.5urcorner p+0.5llcorner p)-- (0.5urcorner p +0.5llcorner p+ 100 * (dir (180+tmpang))));
+ p shifted (-tmppt + z + labeloffset*(cosd(tmpang),sind(tmpang)) )
+enddef;
+
+
+% draw et fill sans _op_
+def myfill expr c = addto currentpicture contour c enddef;
+def mydraw expr p =
+ addto currentpicture
+ if picture p:
+ also p
+ else:
+ doublepath p withpen currentpen
+ fi
+enddef;
+
+
+
+
+def labelang = draw thelabelang enddef;
+def labelmp = mydraw thelabel enddef;
+
+
+vardef ptofpath@#(expr p, c)= % Trouve le point du chemin p à la position @# par rapport à c
+ save diam; numeric diam; diam:=abs(urcorner bbox p - llcorner bbox p);
+ save tmpang;numeric tmpang;
+ if (str @#=""):
+ c
+ elseif ((ASCII str @# < 58) or (ASCII str @# = 91)):
+ if ASCII str @# = 91:
+ tmpang := scantokens substring(1,length(str @#)-1) of str @#
+ else:
+ tmpang := scantokens str @#
+ fi;
+ (c--((c+diam*(1,0)) rotatedaround(c,tmpang))) intersectionpoint p
+ else:
+ (c--(c+diam*laboff@#)) intersectionpoint p
+ fi
+enddef;
+
diff --git a/macros/latex/contrib/didactic/LICENSE b/macros/latex/contrib/didactic/LICENSE
new file mode 100644
index 0000000000..1b57559a83
--- /dev/null
+++ b/macros/latex/contrib/didactic/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 2008 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
+ % https://www.latex-project.org/lppl.txt
+ % and version 1.3c or later is part of all distributions of LaTeX
+ % version 2008 or later.
+ %
+ % This work has the LPPL maintenance status `maintained'.
+ %
+ % The Current Maintainer of this work is 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/macros/latex/contrib/didactic/Makefile b/macros/latex/contrib/didactic/Makefile
new file mode 100644
index 0000000000..a317f1b753
--- /dev/null
+++ b/macros/latex/contrib/didactic/Makefile
@@ -0,0 +1,34 @@
+LATEX?=latex
+PDFLATEX?=pdflatex
+LATEXFLAGS=-shell-escape
+PYTHONTEX=python3 $(shell which pythontex) --interpreter python:python3
+
+.PHONY: all
+all: didactic.sty didactic.pdf didactic.tar.gz
+
+SRC+= didactic.dtx hello.py idea.tex lightblock.tex ProvideSemanticEnv.tex
+
+didactic.pdf: ${SRC} didactic.sty
+ ${PDFLATEX} ${LATEXFLAGS} $<
+ ${PYTHONTEX} didactic
+ ${PDFLATEX} ${LATEXFLAGS} $<
+ ${PDFLATEX} ${LATEXFLAGS} $<
+
+didactic.sty: didactic.ins
+ ${LATEX} ${LATEXFLAGS} $<
+
+didactic.tar.gz: ${SRC} didactic.ins LICENSE Makefile README.md didactic.pdf
+ tar -czf $@ --transform "s|^|didactic/|" $^
+
+.PHONY: clean
+clean:
+ ${RM} didactic.sty didactic.pdf
+ ${RM} didactic.log
+ ${RM} didactic.aux didactic.glo didactic.idx didactic.log
+ ${RM} didactic.out didactic.pdf
+ ${RM} didactic.pytxcode didactic.pytxmcr didactic.pytxpyg
+ ${RM} didactic.tar.gz didactic.toc didactic.unq
+ ${RM} pythontex_data.pkl
+ ${RM} -R _minted-didactic
+ ${RM} $(wildcard py_default_default_*.stdout)
+ ${RM} -R pythontex-files-didactic
diff --git a/macros/latex/contrib/didactic/ProvideSemanticEnv.tex b/macros/latex/contrib/didactic/ProvideSemanticEnv.tex
new file mode 100644
index 0000000000..0b436a3508
--- /dev/null
+++ b/macros/latex/contrib/didactic/ProvideSemanticEnv.tex
@@ -0,0 +1,7 @@
+\ProvideSemanticEnv{idea}[purpleblock]{Idea}[%
+ numbered=no,style=definition
+ ]{idea}{ideas}{Idea}{Ideas}
+\ProvideTranslation{swedish}{idea}{idé}
+\ProvideTranslation{swedish}{ideas}{idéerna}
+\ProvideTranslation{swedish}{Idea}{Idé}
+\ProvideTranslation{swedish}{Ideas}{Idéerna}
diff --git a/macros/latex/contrib/didactic/README.md b/macros/latex/contrib/didactic/README.md
new file mode 100644
index 0000000000..f55168d205
--- /dev/null
+++ b/macros/latex/contrib/didactic/README.md
@@ -0,0 +1,44 @@
+# didactic
+
+This package provides macros and environments useful for writing teaching
+material. It provides more semantic environments on top of the standard
+`definition`, `theorem`, and friends: for instance, `exercise`, `activity` and
+`question`. These are suitably colour coded when used with Beamer. They occur
+as "normal" text in handouts produced by `beamerarticle` (same style as
+`definition` usually has).
+
+It also provides macros for typesetting code listings and output side by side.
+
+Finally, it modifies the appearance of `beamer` (Berlin based theme) and
+`memoir` (Tufte style layout), if loaded. It's designed to be used with
+`beamer` to produce slides and `beamerarticle` with `memoir` to produce notes,
+and handouts from the same source.
+
+## Installation
+
+To use the package, you only need to install `didactic.sty` in a place where
+your LaTeX distribution can find it. For a local installation, you can put it
+in the same directory as your document, or in `~/texmf/tex/latex/didactic/`.
+
+Actually, for the latter, you can simply do the following:
+
+```bash
+mkdir -p ~/texmf/tex/latex
+cd ~/texmf/tex/latex
+git clone https://github.com/dbosk/didactic.git
+cd didactic
+make all
+```
+
+That will build both `didactic.sty` and `didactic.pdf`. The documentation is
+located in `didactic.pdf`.
+
+
+## Maintainer
+
+The was authored by Daniel Bosk <daniel+ctan@bosk.se>, who is also the
+maintainer.
+
+## License
+
+This package is licensed under the LPPL 1.3c or later.
diff --git a/macros/latex/contrib/didactic/didactic.dtx b/macros/latex/contrib/didactic/didactic.dtx
new file mode 100644
index 0000000000..5429b8bf61
--- /dev/null
+++ b/macros/latex/contrib/didactic/didactic.dtx
@@ -0,0 +1,1156 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2019--2020, 2022, 2024 by Daniel Bosk <daniel@bosk.se>
+% -------------------------------------------------------
+%
+% This file 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.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{didactic.dtx}
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}
+%<package>\ProvidesPackage{didactic}
+%<*package>
+ [2024/04/07 v1.6 didactic]
+%</package>
+%<package>\RequirePackage{xparse}
+%<package>\RequirePackage{xkeyval}
+%<package>\RequirePackage{xstring}
+%<package>\RequirePackage{pythontex}
+%<package>\RequirePackage{minted}
+%<package>\RequirePackage{babel}
+%<package>\RequirePackage{translations}
+%<package>\RequirePackage{amsthm}
+%<package>\RequirePackage{thmtools}
+%<package>\PassOptionsToPackage{unq}{unique}
+%<package>\RequirePackage{unique}
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage[utf8]{inputenc}
+\usepackage[swedish,british]{babel}
+\usepackage{pythontex}
+\usepackage[notheorems]{beamerarticle}
+\usepackage[marginparmargin=left]{didactic}
+\usepackage{lipsum}
+\usepackage{hyperref}
+\usepackage{cleveref}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+ \DocInput{didactic.dtx}
+ \PrintChanges
+ %\PrintIndex
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{0}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+%
+% \changes{v1.0}{2019/01/29}{Initial version}
+% \changes{v1.1}{2019/03/26}{Adds summary environment}
+% \changes{v1.2}{2019/10/26}{Adds lightblock, darkblock and coloured blocks}
+% \changes{v1.3}{2019/01/29}{Renames to didactic; adds tools for code examples}
+% \changes{v1.4}{2023/03/20}{%
+% Adds settings for memoir and beamer, contrasting code examples,
+% translations.
+% }
+% \changes{v1.5}{2023/03/25}{Adds |\ProvideSemanticEnv|}
+% \changes{v1.6}{2024/04/07}{%
+% Sets beamer bibliography item correctly.
+% Adds |fullwidth| environment, handles margins better.
+% Adds |sidecaption| environment and |\flushscap| command.
+% }
+%
+% \GetFileInfo{didactic.dtx}
+%
+% \DoNotIndex{\newcommand,\newenvironment}
+%
+%
+% \title{The \textsf{didactic} package\thanks{This document
+% corresponds to \textsf{didactic}~\fileversion, dated \filedate.
+% Licensed under the terms of LPPL, version 1.3c or later.}}
+% \author{Daniel Bosk\\\texttt{daniel@bosk.se}}
+%
+% \maketitle
+%
+% \tableofcontents
+%
+% \section{Introduction}
+%
+% This package introduces some environments that are useful for writing
+% teaching material.
+% It also provides a few settings for |beamer| and |memoir| to make the
+% resulting document more readable.
+%
+% \section{Usage}
+%
+% The package automatically detects if |beamer| or |memoir| is loaded and
+% customizes the document accordingly.
+% \DescribeEnv{nobeamer}
+% \DescribeEnv{noarticle}
+% \DescribeEnv{nomemoir}
+% That can be prevented, however, by using the |nobeamer| or |nomemoir|
+% options.
+% The |noarticle| is to prevent the article versions of the (|beamer|)
+% environments to be defined.
+%
+% \DescribeEnv{notheorems}
+% The package also provides a few environments for |beamer| and |article| mode.
+% Particularly, it can define theorems and definitions, which might be defined
+% also by other packages.
+% To prevent this, use the |notheorems| option.
+%
+% \DescribeEnv{inner}
+% \DescribeEnv{outer}
+% \DescribeEnv{top}
+% \DescribeEnv{bottom}
+% When the package customizes |memoir| it sets the inner and outer margins to
+% fit margin notes better.
+% The |inner| and |outer| options can be used to set the inner and outer
+% margins to be used.
+% The |top| and |bottom| options can be used to set the top and bottom margins.
+%
+% \subsection{Beamer blocks and semantic environments for papers}
+%
+% \DescribeEnv{assumption}
+% \DescribeEnv{idea}
+% \DescribeEnv{question}
+% \DescribeEnv{exercise}
+% \DescribeEnv{activity}
+% \DescribeEnv{remark}
+% These environments provides wrappers around Beamer's |block| environment.
+% The idea is to complement the blocks provided by Beamer, such as |theorem|,
+% |definition| and |example|, with some more useful blocks.
+% Each of them provides a block with an appropriate title and optional subtitle
+% and is of a suitable colour.
+% For instance, consider the following.
+% \input{idea.tex}
+% That can be produced by the following code.
+% \inputminted[linenos]{latex}{idea.tex}
+%
+% \DescribeMacro{\ProvideSemanticEnv}
+% We can create new such block environments, that work both with |beamer| and
+% without, by using the |\ProvideSemanticEnv| command.
+% This command takes five arguments:
+% \begin{enumerate}
+% \item the name of the environment,
+% \item the name of the block environment to use (optional),
+% \item the title of the block,
+% \item options to pass to |thmtools| (optional),
+% \item the key of the translation of the refname of the block,
+% \item the key of the translation of the refnames of the block.
+% \item the key of the translation of the Refname of the block,
+% \item the key of the translation of the Refnames of the block.
+% \end{enumerate}
+% For example, the |idea| block above was created by the following code:
+% \inputminted{latex}{ProvideSemanticEnv.tex}
+%
+% \DescribeEnv{lightblock}
+% \DescribeEnv{darkblock}
+% We provide two shades of boxes, light coloured and dark coloured boxes.
+% These can be used to create boxes of various colours easily.
+% These two environments take two mandatory arguments: the first one is a
+% colour, the second is the title.
+%
+% In the text (not slides) the blocks are not coloured.
+% For instance, consider the following.
+% \input{lightblock.tex}
+% That can be produced by the following code.
+% \inputminted[linenos]{latex}{lightblock.tex}
+%
+% \DescribeEnv{blackblock}
+% \DescribeEnv{whiteblock}
+% \DescribeEnv{bwblock}
+% For instance, we provide a black block, white block and a black-white block.
+% These take only one mandatory argument: a title.
+%
+% \DescribeEnv{redblock}
+% \DescribeEnv{blueblock}
+% \DescribeEnv{purpleblock}
+% \DescribeEnv{greenblock}
+% \DescribeEnv{yellowblock}
+% \DescribeEnv{orangeblock}
+% We also provide a few predefined blocks in various common colours.
+% They all take a title as mandatory argument.
+%
+% \subsection{Tools for code examples}
+%
+% We also provide two commands for working with code examples: |lstexample| and
+% |runpython|.
+%
+% \DescribeMacro{\lstexample}
+% The |\lstexample| command allows us to typeset the source code of the
+% example.
+% For instance, |\lstexample{python}{hello.py}| produces the following:
+% \lstexample{python}{hello.py}
+%
+% We can also pass optional arguments directly to |minted| that is used to
+% typeset the code.
+% \begin{example}
+% |\lstexample[linenos,highlightlines=4]{python}{hello.py}| produces the
+% following.
+% \lstexample[linenos,highlightlines=4]{python}{hello.py}
+% \end{example}
+%
+% \DescribeMacro{\runpython}
+% We can also run the example code and include its output using the
+% |\runpython| macro.
+% \begin{example}
+% For instance, |\runpython{hello.py}| produces the following.
+% \runpython{hello.py}
+% \end{example}
+%
+% \DescribeMacro{\codebycode}
+% The |\codebycode| command is simply two |\lstexample| commands side by side:
+% |\codebycode[opt1]{lang1}{file1}[opt2]{lang2}{file2}|.
+% \codebycode
+% [breaklines,linenos]{python}{hello.py}
+% [breaklines,linenos,highlightlines=4]{python}{hello.py}
+%
+% \DescribeMacro{\runbyrun}
+% We can also put the output side by side using
+% |\runbyrun{hello.py}{hello.py}|.
+% \runbyrun{hello.py}{hello.py}
+%
+% \subsection{Adding margin notes of different kinds}
+%
+% \DescribeMacro{\indentedmarginpar}
+% We want to be able to put quite some content in the margins.
+% For this reason we want to have indented paragraphs in the margin notes.
+% We can use the |\indentedmarginpar{text}| command to do this.
+% For instance, consider the output in the margin.
+% \indentedmarginpar{%
+% This is an example of an indented margin paragraph.
+%
+% It can contain multiple paragraphs.
+% }
+%
+% \DescribeMacro{\newnotetype}
+% \DescribeMacro{\ltnote}
+% We also want to be able to use titled notes of different kinds.
+% We can use the |\newnotetype[fmtcmd]{type}{title}| command to define a new
+% type of note.
+% For instance |\ltnote| is defined as
+% \begin{center}
+% |\newnotetype{\ltnote}{\GetTranslationWarn{Learning theory}}|.
+% \end{center}
+% \ltnote{This is an example of a learning theory note.}
+%
+% We can also change the formatting of the title.
+% |\newnotetype[\textbf]{\bfnote}{Bold note}| and
+% |\bfnote{This is a bold note.}| gives us the note in the margin.
+% \newnotetype[\textbf]{\bfnote}{Bold note}
+% \bfnote{This is a bold note.}
+% \ltnote{Another example of a learning theory note.}
+%
+% \StopEventually{}
+%
+% \section{Implementation}
+%
+% Let's start with the options.
+%
+% \subsection{Options}
+%
+% We have a few negative options, that is, if specified we don't want to do
+% them.
+% This means that we'll need to use conditionals.
+% So each option definition consists first of a |\newif| then setting it to
+% true, and finnally, a |\DeclareOption|.
+% The body of the |\DeclareOption| then sets the |\if| to false.
+% After all the options are declared we'll use |\ProcessOptions|.
+% After that we can have all code actually doing the work, all wrapped in |\if|
+% statements.
+%
+% \begin{environment}{nobeamer}
+% \begin{environment}{nobeamertheme}
+% \begin{environment}{noarticle}
+% This option is used to disable the |beamer| specific parts of the package.
+% Meaning that we don't customize |beamer| even when we find that it is loaded.
+% \begin{macrocode}
+\newif\if@didactic@beamer
+\@ifclassloaded{beamer}{\@didactic@beamertrue}{\@didactic@beamerfalse}
+\DeclareOptionX{nobeamer}{\@didactic@beamerfalse}
+\newif\if@didactic@article
+\@ifclassloaded{beamer}{\@didactic@articlefalse}{\@didactic@articletrue}
+\newif\if@didactic@beamertheme
+\@didactic@beamerthemetrue
+\DeclareOptionX{nobeamertheme}{\@didactic@beamerthemefalse}
+\DeclareOptionX{noarticle}{\@didactic@articlefalse}
+% \end{macrocode}
+% \end{environment}
+% \end{environment}
+% \end{environment}
+%
+% \begin{environment}{nomemoir}
+% This option is used to disable the |memoir| specific parts of the package.
+% Meaning that we don't customize |memoir| even when we find that it is loaded.
+% \begin{macrocode}
+\newif\if@didactic@memoir
+\@ifclassloaded{memoir}{\@didactic@memoirtrue}{\@didactic@memoirfalse}
+\DeclareOptionX{nomemoir}{\@didactic@memoirfalse}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{notheorems}
+% This option is used to disable defining the usual environments provided by
+% |amsmath|: definition, theorem, etc.
+% \begin{macrocode}
+\newif\if@didactic@theorems
+\@didactic@theoremstrue
+\DeclareOptionX{notheorems}{\@didactic@theoremsfalse}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{inner}
+% \begin{environment}{outer}
+% \begin{environment}{top}
+% \begin{environment}{bottom}
+% We also have some key--value options to control the margins.
+% \begin{macrocode}
+\newcommand\@didactic@margin@inner{20mm}
+\newcommand\@didactic@margin@outer{70mm}
+\newcommand\@didactic@margin@top{25mm}
+\newcommand\@didactic@margin@bottom{40mm}
+\DeclareOptionX{inner}[25mm]{\renewcommand\@didactic@margin@inner{#1}}
+\DeclareOptionX{outer}[65mm]{\renewcommand\@didactic@margin@outer{#1}}
+\DeclareOptionX{top}[25mm]{\renewcommand\@didactic@margin@top{#1}}
+\DeclareOptionX{bottom}[40mm]{\renewcommand\@didactic@margin@bottom{#1}}
+% \end{macrocode}
+% \end{environment}
+% \end{environment}
+% \end{environment}
+% \end{environment}
+%
+% \begin{environment}{marginparmargin}
+% We also have an option to set the marginpar margin.
+% We simply pass this on to |memoir| and keep a record ourselves too.
+% We know that the default in |memoir| is |outer|.
+% \begin{macrocode}
+\newcommand\@didactic@marginparmargin{outer}
+\DeclareOptionX{marginparmargin}{%
+ \renewcommand\@didactic@marginparmargin{#1}
+ \@ifclassloaded{memoir}{%
+ \marginparmargin{#1}
+ \strictpagechecktrue
+ \checkandfixthelayout
+ }{}
+}
+% \end{macrocode}
+% \end{environment}
+%
+% Now that we've declared the options we can process them.
+% \begin{macrocode}
+\ProcessOptionsX\relax
+% \end{macrocode}
+%
+% \subsection{Customizing \texttt{beamer}}
+%
+% If |beamer| is loaded we want to customize it.
+% However, only if the user hasn't disabled this with the |nobeamer| option.
+% \begin{macrocode}
+\if@didactic@beamer
+% \end{macrocode}
+
+% If we use |beamer| we want to use the Berlin theme.
+% This theme guides the viewer very nicely, how must is left and where we are
+% in the presentation.
+% (The same is true for the presenter.)
+% \begin{macrocode}
+\if@didactic@beamertheme
+ \usetheme{Berlin}
+% \end{macrocode}
+% However, we want to customize the footline.
+% We want to add two lines in the footline.
+% We want to add the author (left) and institute (right) to the first line.
+% Then we add the title (left) and page number (right) to the bottom line.
+% \begin{macrocode}
+ \setbeamertemplate{footline}%{miniframes theme}
+ {%
+ \begin{beamercolorbox}[colsep=1.5pt]{upper separation line foot}
+ \end{beamercolorbox}
+ \begin{beamercolorbox}[ht=2.5ex,dp=1.125ex,%
+ leftskip=.3cm,rightskip=.3cm plus1fil]{author in head/foot}%
+ \leavevmode{\usebeamerfont{author in head/foot}\insertshortauthor}%
+ \hfill%
+ {\usebeamerfont{institute in head/foot}%
+ \usebeamercolor[fg]{institute in head/foot}\insertshortinstitute}%
+ \end{beamercolorbox}%
+ \begin{beamercolorbox}[ht=2.5ex,dp=1.125ex,%
+ leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}%
+ {\usebeamerfont{title in head/foot}\insertshorttitle}%
+ \hfill%
+ \insertframenumber%
+ \end{beamercolorbox}%
+ \begin{beamercolorbox}[colsep=1.5pt]{lower separation line foot}
+ \end{beamercolorbox}
+ }
+% \end{macrocode}
+%
+% We also want to set the transparency of the covered items.
+% We also want to set the bibliography item to text, we need this to get proper
+% references (not icons) in the bibliography.
+% (We need that for certain bibliography styles.)
+% \begin{macrocode}
+ \setbeamercovered{transparent}
+ \setbeamertemplate{bibliography item}{\relax}
+\fi
+% \end{macrocode}
+%
+% Finally, we want to add a table of contents at the beginning of each section
+% and subsection.
+% We want these to be shaded, so that the current section is highlighted.
+% We also want to hide the subsections of the other sections.
+% \begin{macrocode}
+\AtBeginSection[]{%
+ \begin{frame}<beamer>
+ \tableofcontents[currentsection,
+ subsectionstyle=show/show/hide]
+ \end{frame}
+}
+\AtBeginSubsection[]{%
+ \begin{frame}<beamer>
+ \tableofcontents[currentsection,
+ subsectionstyle=show/shaded/hide]
+ \end{frame}
+}
+\fi% end \if@didactic@beamer
+% \end{macrocode}
+%
+% \subsection{Customizing \texttt{memoir}}
+%
+% If |memoir| is loaded we want to customize it.
+% However, only if the user hasn't disabled this with the |nomemoir| option.
+% \begin{macrocode}
+\if@didactic@memoir
+% \end{macrocode}
+%
+% We want to set up |memoir| to use the Tufte style.
+% This means that we want to put a lot of text in the margin.
+% We'll use margin notes and put all the footnotes in the margin.
+% We also want to use footnotes for references so that they also appear in the
+% margin.
+%
+% We want to use the |marginfix| package to fix the margin notes.
+% \begin{macrocode}
+\RequirePackage{marginfix}
+\setlrmarginsandblock{\@didactic@margin@inner}
+ {\@didactic@margin@outer}
+ {*}
+\setulmarginsandblock{\@didactic@margin@top}
+ {\@didactic@margin@bottom}
+ {*}
+
+\footnotesinmargin
+
+\RequirePackage{ragged2e}
+\renewcommand{\sidefootform}{\RaggedRight}
+\renewcommand{\foottextfont}{\footnotesize\RaggedRight}
+
+\setmpjustification{\RaggedRight}{\RaggedRight}
+
+% margin figure and caption typeset ragged against text block
+\setfloatadjustment{marginfigure}{\mpjustification}
+\setmarginfloatcaptionadjustment{figure}{\captionstyle{\mpjustification}}
+
+% side captions
+% https://tex.stackexchange.com/a/275626/17418
+\sidecapmargin{outer}
+\setsidecappos{t}
+\checkandfixthelayout
+\setsidecaps{\marginparsep}{\marginparwidth}
+\renewcommand{\sidecapstyle}{%
+ \captionstyle{\RaggedRight}
+}
+
+% From https://tex.stackexchange.com/a/324757/17418
+% Palatino for main text and math
+\RequirePackage[osf,sc]{mathpazo}
+% Helvetica for sans serif
+% (scaled to match size of Palatino)
+\RequirePackage[scaled=0.90]{helvet}
+% Bera Mono for monospaced
+% (scaled to match size of Palatino)
+\RequirePackage[scaled=0.85]{beramono}
+\setlxvchars\setxlvchars
+\checkandfixthelayout
+\nouppercaseheads
+% \end{macrocode}
+%
+% We also want to adapt the citation commands of a few packages to use
+% footnotes.
+% For these, we check if the package is loaded, if it is, we do the changes.
+% We don't load the packages ourselves, we assume the user has done that.
+% This also means that the |didactic| package should be loaded last.
+% \begin{macrocode}
+\@ifpackageloaded{biblatex}{%
+ \ExecuteBibliographyOptions{%
+ autocite=footnote,
+ singletitle=false,
+ %style=verbose,
+ %citestyle=verbose,
+ maxbibnames=99,
+ isbn=false,doi=false,url=false
+ }
+ % from https://tex.stackexchange.com/a/374059/17418
+ \DeclareCiteCommand{\fullauthorcite}
+ {\usebibmacro{prenote}}
+ {\usedriver
+ {\setcounter{maxnames}{99}% use up to 99 authors
+ \DeclareNameAlias{sortname}{default}}
+ {\thefield{entrytype}}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+}{}
+\@ifpackageloaded{csquotes}{%
+ \SetCiteCommand{\footcite}
+}{}
+% \end{macrocode}
+%
+% And that concludes the |memoir| part.
+% \begin{macrocode}
+\fi% end \if@didactic@memoir
+% \end{macrocode}
+%
+% \subsection{A side-caption environment for \texttt{beamer}}
+%
+% \begin{environment}{sidecaption}
+% When using |memoir|, we can use the |sidecaption| environment to put the
+% caption in the margin.
+% However, when using |beamer| we don't have this environment, so we need to
+% provide it with a suitable behaviour.
+% It's suitable to just translate it to a normal caption, as usually used in
+% |beamer|.
+% \begin{macrocode}
+\ProvideDocumentEnvironment{sidecaption}{omo+b}{%
+ #4
+ \caption{#2\IfValueT{#3}{\label{#3}}}
+}{\relax}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{macro}{\flushscap}
+% We also want to provide a command to flush a figure towards the caption.
+% \begin{macrocode}
+\NewDocumentCommand{\flushscap}{O{\centering}}{%
+ \@ifclassloaded{memoir}{%
+ \ifscapmargleft%
+ \flushleft%
+ \else%
+ \flushright%
+ \fi%
+ }{%
+ #1%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{More semantic environments}
+%
+% We want to provide a set of environments (blocks) for |beamer|.
+% We want the names of the blocks to be translated.
+% We'll use the |translations| package for this.
+% That way we get the language used through the normal use of |babel|.
+%
+% We also want to have the same environments for the article mode, but in a
+% nicer format that the default of |beamerarticle|.
+% For instance, instead of
+% \begin{block}{Example}
+% This is an example.
+% \end{block}
+% we want something like
+% \begin{example}
+% This is an example.
+% \end{example}
+%
+% This means that we'll need to do one thing if |beamer| is loaded and another
+% if |beamerarticle| is loaded---or rather, when |beamer| is not loaded, we
+% should be able to use this without |beamer| and |beamerarticle|.
+%
+% We want to provide environments like this one:
+% \begin{exercise}\label{exercise}
+% This is an exercise.
+% \end{exercise}
+% \begin{exercise}\label{anotherexercise}
+% This is another exercise.
+% \end{exercise}
+% We can use |\cref| to refer to them, getting something like \cref{exercise} or
+% \cref{exercise,anotherexercise}.
+%
+% We also want it to work with different languages, provided there is a
+% translation.
+% We do Swedish here.
+%
+% \selectlanguage{swedish}
+% Vi kan också skapa exempel på svenska.
+% \begin{exercise}\label{exempel}
+% Detta är ett exempel.
+% \end{exercise}
+% \begin{exercise}\label{ytterligareexempel}
+% Detta är ytterligare ett exempel.
+% \end{exercise}
+% Vi kan referera till dem med |\cref|, vilket ger något som \cref{exempel}
+% eller \cref{exempel,ytterligareexempel}.
+% \selectlanguage{british}
+%
+% Let's also add another idea, but in Swedish.
+%
+% \selectlanguage{swedish}
+% \begin{idea}\label{ide}
+% Detta är en idé.
+% \end{idea}
+% Då har vi \cref{ide}, men vi hade även tidigare \cref{theidea}.
+% Tillsammans är de \cref{ide,theidea}.
+% \selectlanguage{british}
+%
+% We can also refer to them in English, \cref{ide} and \cref{theidea}
+% separately and together as \cref{ide,theidea}.
+%
+% \begin{macro}{\ProvideSemanticEnv}
+% We provide a command to create such environments.
+% This way we just run this command in the preamble, if |beamer| is loaded it
+% creates the block environments for |beamer|, otherwise it creates the
+% environments for the article.
+%
+% It can be used like this:
+% \begin{center}
+% |\ProvideSemanticEnv{test}[alertblock]{Test}[style=definition]|\\
+% \qquad|{test}{tests}{Test}{Tests}|
+% \end{center}
+% \begin{macrocode}
+\ProvideDocumentCommand{\ProvideSemanticEnv}{m o m o mmmm}{%
+ \@ifundefined{#1}{%
+ \@ifclassloaded{beamer}{% beamer
+% \end{macrocode}
+% For |beamer| we want to use the |block| environment, or one of the coloured
+% blocks that we provide below.
+% We let the second argument (optional) be the name of the block environment to
+% use.
+% This will be the easiest way to set the colour of the block.
+%
+% Lastly, we let the third argument be the title of the block.
+% This is the English title and also the key used to translate the title of the
+% block.
+% \begin{macrocode}
+ \IfValueTF{#2}{%
+ \ProvideDocumentEnvironment{#1}{o}{%
+ \begin{#2}{\GetTranslationWarn{#3}\IfValueT{##1}{: ##1}}
+ }{%
+ \end{#2}
+ }
+ }{%
+ \ProvideDocumentEnvironment{#1}{o}{%
+ \begin{block}{\GetTranslationWarn{#3}\IfValueT{##1}{: ##1}}
+ }{%
+ \end{block}
+ }
+ }
+% \end{macrocode}
+%
+% If we don't use |beamer|, we want to use the |thmtools| package to define the
+% environments.
+% The fourth argument (optional), will be passed as options to
+% |\declaretheorem|.
+% The fifth to eighth arguments are the keys of (meaning English) translations
+% of the refnames of the block.
+% \begin{macrocode}
+ }{% not beamer
+ \IfValueTF{#4}{%
+ \declaretheorem[
+ name=\GetTranslationWarn{#3},
+ refname={{\GetTranslationWarn{#5}},{\GetTranslationWarn{#6}}},
+ Refname={{\GetTranslationWarn{#7}},{\GetTranslationWarn{#8}}},
+ #4
+ ]{#1}
+ }{%
+ \declaretheorem[
+ style=definition,
+ name=\GetTranslationWarn{#3},
+ refname={{\GetTranslationWarn{#5}},{\GetTranslationWarn{#6}}},
+ Refname={{\GetTranslationWarn{#7}},{\GetTranslationWarn{#8}}}
+ ]{#1}
+ }
+ }
+% \end{macrocode}
+%
+% Since the |refname| and |Refname| options of |thmtools| doesn't seem to work
+% we will add the necessary |\crefname| and |\Crefname| commands at the
+% beginning of the document, for both |beamer| and non-|beamer| case.
+% \begin{macrocode}
+ \AtBeginDocument{%
+ \@ifpackageloaded{cleveref}{%
+ \crefname{#1}
+ {\GetTranslationWarn{#5}}
+ {\GetTranslationWarn{#6}}
+ \Crefname{#1}
+ {\GetTranslationWarn{#7}}
+ {\GetTranslationWarn{#8}}
+ }{%
+ \relax
+ }
+ }
+ }{\relax} % \@ifundefined{#1}
+} % \ProvideSemanticEnv
+% \end{macrocode}
+% \end{macro}
+% \begin{environment}{assumption}
+% \begin{environment}{idea}
+% \begin{environment}{question}
+% \begin{environment}{exercise}
+% \begin{environment}{activity}
+% \begin{environment}{remark}
+% \begin{environment}{summary}
+% Then let's define some useful environments.
+% \begin{macrocode}
+\ProvideSemanticEnv{assumption}[alertblock]{Assumption}
+ {assumption}{assumptions}{Assumption}{Assumptions}
+\ProvideSemanticEnv{idea}[greenblock]{Idea}
+ {idea}{ideas}{Idea}{Ideas}
+\ProvideSemanticEnv{question}[orangeblock]{Question}
+ {question}{questions}{Question}{Questions}
+\ProvideSemanticEnv{exercise}[yellowblock]{Exercise}
+ {exercise}{exercises}{Exercise}{Exercises}
+\ProvideSemanticEnv{activity}[yellowblock]{Activity}
+ {activity}{activities}{Activity}{Activities}
+\ProvideSemanticEnv{remark}[alertblock]{Remark}[%
+ numbered=no,style=remark
+ ]{remark}{remarks}{Remark}{Remarks}
+\ProvideSemanticEnv{summary}[block]{Summary}[%
+ numbered=no,style=remark
+ ]{summary}{summaries}{Summary}{Summaries}
+% \end{macrocode}
+% \end{environment}
+% \end{environment}
+% \end{environment}
+% \end{environment}
+% \end{environment}
+% \end{environment}
+% \end{environment}
+%
+% We also want to provide the normal environments for theorems and definitions
+% and such.
+% \begin{macrocode}
+\if@didactic@theorems
+ \ProvideSemanticEnv{definition}[block]{Definition}
+ {definition}{definitions}{Definition}{Definitions}
+ \ProvideSemanticEnv{theorem}[block]{Theorem}[%
+ numbered=unless unique,style=theorem
+ ]{theorem}{theorems}{Theorem}{Theorems}
+ \ProvideSemanticEnv{corollary}[block]{Corollary}[%
+ numbered=unless unique,style=theorem
+ ]{corollary}{corollaries}{Corollary}{Corollaries}
+ \ProvideSemanticEnv{lemma}[block]{Lemma}[%
+ numbered=unless unique,style=theorem
+ ]{lemma}{lemmas}{Lemma}{Lemmas}
+ \ProvideSemanticEnv{proof}[block]{Proof}[%
+ numbered=no,style=proof
+ ]{proof}{proofs}{Proof}{Proofs}
+ \ProvideSemanticEnv{solution}[block]{Solution}[%
+ numbered=no,style=proof
+ ]{solution}{solutions}{Solution}{Solutions}
+ \ProvideSemanticEnv{example}[exampleblock]{Example}
+ {example}{examples}{Example}{Examples}
+\fi
+% \end{macrocode}
+%
+%
+% \subsection{Translations}
+%
+% We also want to provide translations for the environments.
+% We want to provide those even if none of the packages above are loaded.
+% \begin{macrocode}
+\ProvideTranslation{swedish}{Assumption}{Antagande}
+\ProvideTranslation{swedish}{Assumptions}{Antagandena}
+\ProvideTranslation{swedish}{assumption}{antagande}
+\ProvideTranslation{swedish}{assumptions}{antagandena}
+\ProvideTranslation{swedish}{Idea}{Idé}
+\ProvideTranslation{swedish}{Ideas}{Idéerna}
+\ProvideTranslation{swedish}{idea}{idé}
+\ProvideTranslation{swedish}{ideas}{idéerna}
+\ProvideTranslation{swedish}{Question}{Fråga}
+\ProvideTranslation{swedish}{Questions}{Frågor}
+\ProvideTranslation{swedish}{question}{fråga}
+\ProvideTranslation{swedish}{questions}{frågor}
+\ProvideTranslation{swedish}{Exercise}{Övningsuppgift}
+\ProvideTranslation{swedish}{Exercises}{Övningsuppgifterna}
+\ProvideTranslation{swedish}{exercise}{övningsuppgift}
+\ProvideTranslation{swedish}{exercises}{övningsuppgifterna}
+\ProvideTranslation{swedish}{Activity}{Aktivitet}
+\ProvideTranslation{swedish}{Activities}{Aktiviteter}
+\ProvideTranslation{swedish}{activity}{aktivitet}
+\ProvideTranslation{swedish}{activities}{aktiviteter}
+\ProvideTranslation{swedish}{Note}{Anmärkning}
+\ProvideTranslation{swedish}{Notes}{Anmärkningar}
+\ProvideTranslation{swedish}{note}{anmärkning}
+\ProvideTranslation{swedish}{notes}{anmärkningar}
+\ProvideTranslation{swedish}{Remark}{Anmärkning}
+\ProvideTranslation{swedish}{Remarks}{Anmärkningar}
+\ProvideTranslation{swedish}{remark}{anmärkning}
+\ProvideTranslation{swedish}{remarks}{anmärkningar}
+\ProvideTranslation{swedish}{Summary}{Sammanfattning}
+\ProvideTranslation{swedish}{Summaries}{Sammanfattningar}
+\ProvideTranslation{swedish}{summary}{sammanfattning}
+\ProvideTranslation{swedish}{summaries}{sammanfattningar}
+\ProvideTranslation{swedish}{definition}{definition}
+\ProvideTranslation{swedish}{definitions}{definitionerna}
+\ProvideTranslation{swedish}{Definition}{Definition}
+\ProvideTranslation{swedish}{Definitions}{Definitionerna}
+\ProvideTranslation{swedish}{theorem}{sats}
+\ProvideTranslation{swedish}{theorems}{satserna}
+\ProvideTranslation{swedish}{Theorem}{Sats}
+\ProvideTranslation{swedish}{Theorems}{Satserna}
+\ProvideTranslation{swedish}{corollary}{följdsats}
+\ProvideTranslation{swedish}{Corollary}{Följdsats}
+\ProvideTranslation{swedish}{corollaries}{följdsatser}
+\ProvideTranslation{swedish}{Corollaries}{Följdsatser}
+\ProvideTranslation{swedish}{lemma}{hjälpsats}
+\ProvideTranslation{swedish}{lemmas}{hjälpsatserna}
+\ProvideTranslation{swedish}{Lemma}{Hjälpsats}
+\ProvideTranslation{swedish}{Lemmas}{Hjälpsatserna}
+\ProvideTranslation{swedish}{proof}{bevis}
+\ProvideTranslation{swedish}{Proof}{Bevis}
+\ProvideTranslation{swedish}{proofs}{bevisen}
+\ProvideTranslation{swedish}{Proofs}{Bevisen}
+\ProvideTranslation{swedish}{Solution}{Lösningsförslag}
+\ProvideTranslation{swedish}{Solutions}{Lösningsförslagen}
+\ProvideTranslation{swedish}{solution}{lösningsförslag}
+\ProvideTranslation{swedish}{solutions}{lösningsförslagen}
+\ProvideTranslation{swedish}{Example}{Exempel}
+\ProvideTranslation{swedish}{Examples}{Exempelen}
+\ProvideTranslation{swedish}{example}{exempel}
+\ProvideTranslation{swedish}{examples}{exempelen}
+% \end{macrocode}
+%
+%
+% \subsection{Coloured blocks}
+%
+% \begin{environment}{lightblock}
+% \begin{environment}{darkblock}
+% \begin{environment}{blackblock}
+% \begin{environment}{whiteblock}
+% \begin{environment}{bwblock}
+% \begin{environment}{redblock}
+% \begin{environment}{blueblock}
+% \begin{environment}{purpleblock}
+% \begin{environment}{greenblock}
+% \begin{environment}{yellowblock}
+% \begin{environment}{orangeblock}
+% Now we have the coloured blocks.
+% These we want to define even if |beamer| is not loaded, but for this we need
+% |beamerarticle| instead.
+% \begin{macrocode}
+\ProvideDocumentEnvironment{lightblock}{mm}{%
+ \setbeamercolor{block body}{bg=#1!10,fg=black}
+ \setbeamercolor{block title}{bg=#1,fg=black}
+ \setbeamercolor{local structure}{fg=#1}
+ \begin{block}{#2}
+}{%
+ \end{block}
+}
+\ProvideDocumentEnvironment{darkblock}{mm}{%
+ \setbeamercolor{block body}{bg=#1!10,fg=black}
+ \setbeamercolor{block title}{bg=#1,fg=white}
+ \setbeamercolor{local structure}{fg=#1}
+ \begin{block}{#2}
+}{%
+ \end{block}
+}
+\ProvideDocumentEnvironment{blackblock}{m}
+{\begin{darkblock}{black}{#1}}
+{\end{darkblock}}
+\ProvideDocumentEnvironment{whiteblock}{m}{%
+ \setbeamercolor{block body}{bg=white!10,fg=black}
+ \setbeamercolor{block title}{bg=white,fg=black}
+ \setbeamercolor{local structure}{fg=black}
+ \begin{block}{#1}
+}{%
+ \end{block}
+}
+\ProvideDocumentEnvironment{bwblock}{m}{%
+ \setbeamercolor{block body}{bg=white!10,fg=black}
+ \setbeamercolor{block title}{bg=black,fg=white}
+ \setbeamercolor{local structure}{fg=black}
+ \begin{block}{#1}
+}{%
+ \end{block}
+}
+\ProvideDocumentEnvironment{redblock}{m}
+{\begin{darkblock}{red}{#1}}
+{\end{darkblock}}
+\ProvideDocumentEnvironment{blueblock}{m}
+{\begin{darkblock}{blue}{#1}}
+{\end{darkblock}}
+\ProvideDocumentEnvironment{purpleblock}{m}
+{\begin{darkblock}{purple}{#1}}
+{\end{darkblock}}
+\ProvideDocumentEnvironment{greenblock}{m}
+{\begin{lightblock}{green}{#1}}
+{\end{lightblock}}
+\ProvideDocumentEnvironment{yellowblock}{m}
+{\begin{lightblock}{yellow}{#1}}
+{\end{lightblock}}
+\ProvideDocumentEnvironment{orangeblock}{m}
+{\begin{lightblock}{orange}{#1}}
+{\end{lightblock}}
+% \end{macrocode}
+% \end{environment}
+% \end{environment}
+% \end{environment}
+% \end{environment}
+% \end{environment}
+% \end{environment}
+% \end{environment}
+% \end{environment}
+% \end{environment}
+% \end{environment}
+% \end{environment}
+%
+% \subsection{Adding margin notes of different kinds}
+%
+% We want to add titled margin notes.
+% These margin notes should use indentation since they might contains several
+% paragraphs.
+%
+% \begin{macro}{\indentedmarginpar}
+% We start with the indented margin notes.
+% They simply take a text as argument and typeset it in the margin:
+% |\indentedmarginpar{this is the text}|.
+% \indentedmarginpar{this is the text}
+% \begin{macrocode}
+% Gives us indentation in the margin notes.
+% Adapted from https://tex.stackexchange.com/a/257171
+\NewDocumentCommand{\indentedmarginpar}{+m}{%
+ \@ifclassloaded{memoir}{\strictpagecheck}{\relax}%
+ \marginpar{%
+ \setlength{\parindent}{1.0em}\footnotesize
+ \@afterindentfalse\@afterheading #1
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\newnotetype}
+% Now, let's add a command to add margin notes with a title.
+% The |\newnotetype{\titlenote}{Title]| command creates a new command
+% |\titlenote| that takes a text as argument and typesets it in the margin with
+% the title |Title|: |\titlenote{this is the text}|.
+% \newnotetype{\titlenote}{Title}
+% \titlenote{this is the text}
+% \begin{macrocode}
+\NewDocumentCommand{\newnotetype}{omm}{%
+ \IfValueTF{#1}
+ {\NewDocumentCommand{#2}{+m}{%
+ \indentedmarginpar{#1{#3:} ##1}%
+ }}
+ {\NewDocumentCommand{#2}{+m}{%
+ \indentedmarginpar{\emph{#3:} ##1}%
+ }}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ltnote}
+% We provide a few different types of margin notes.
+% That way we can also include translations for them.
+% \begin{macrocode}
+\ProvideTranslation{swedish}{Learning theory}{Lärandeteori}
+\newnotetype{\ltnote}{\GetTranslationWarn{Learning theory}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \subsection{Listing and running code examples}
+%
+% Let's turn our focus to |\lstexample| and |\runpython|.
+% We want to make it easy to typeset and print the output of example Python
+% programs in slides and texts.
+% We want to use PythonTeX to automatically run the code and typeset the source
+% code using |minted|.
+%
+% These are the same for both |beamer| and article mode.
+%
+% \begin{macro}{\lstexample}
+% The first part is easy.
+% To typeset the source file we simply need to use the minted package.
+% We provide an optional argument to pass options to minted.
+% \begin{macrocode}
+\NewDocumentCommand{\lstexample}{omm}{%
+ \IfValueTF{#1}
+ {\inputminted[escapeinside=||,#1]{#2}{#3}}
+ {\inputminted[escapeinside=||]{#2}{#3}}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\runpython}
+% Now, for the second part, printing the output, we do this in two steps.
+% First, we create a function using PythonTeX that runs a Python program and
+% prints it output.
+% We can use it like |\runpython{hello.py}| to run the program in |hello.py|.
+% The output is printed in verbatim mode.
+% Alternatively we could use |\runpython[opt]{hello.py}| to pass |opt| to the
+% underlying |fancyvrb| environment.
+%
+% Let's create that function in PythonTeX to run the example program file.
+% We simply execute it with Python 3 and capture its output.
+% Then we print the output to stdout, which is then captured by PythonTeX.
+% We use |pytex.add_dependencies| to add the file as a dependency to rerun the
+% code when necessary.
+% \begin{macrocode}
+\begin{pycode}
+import subprocess
+
+def run_module(m):
+ result = subprocess.run(["python3", m], capture_output=True)
+ print(result.stdout.decode("utf8").strip())
+ pytex.add_dependencies(m)
+
+def mintedoutput(m, opt):
+ if opt:
+ print(r'\begin{minted}[{}]{{text}}'.format(opt))
+ else:
+ print(r'\begin{minted}{text}')
+ run_module(m)
+ print(r'\end{minted}')
+\end{pycode}
+% \end{macrocode}
+%
+% Then we simply create a command that run that function with the file as
+% argument.
+% Then print the output in verbatim mode.
+% \begin{macrocode}
+\NewDocumentCommand{\runpython}{om}{%
+ \setpythontexautoprint{false}%
+ \pyc{run_module("#2")}%
+ \printpythontex[verbatim]%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Contrasting code examples}
+%
+% Sometimes we want to contrast two code examples side by side.
+% \begin{macro}{\textbytext}
+% For example |\textbytext{\lipsum[1]}{\lipsum[1]}| should typeset the two
+% examples side by side.
+% \textbytext{\lipsum[1]}{\lipsum[1]}
+% If we use the |memoir| class and our settings (|\if@didactic@memoir|), we
+% want to use the |adjustwidth| environment to expand the text block to better
+% fit them.
+% Otherwise we use the standard text block.
+%
+% To do this we first add a |fullwidth| environment\footnote{%
+% Similarly to \url{https://tex.stackexchange.com/a/350944/17418}.
+% }.
+% We can get the |adjustwidth| environment from the |changepage| package
+% whenever |memoir| isn't used.
+% \begin{macrocode}
+\RequirePackage{changepage}
+\newlength{\@didactic@textbytext@oldcolumnwidth}
+\NewDocumentEnvironment{fullwidth}{+b}{%
+ \setlength{\@didactic@textbytext@oldcolumnwidth}{\columnwidth}
+ \setlength{\columnwidth}{\textwidth+2em+\marginparwidth+\marginparsep}
+ \IfStrEqCase{\@didactic@marginparmargin}{%
+ {inner}{\begin{adjustwidth*}{-\marginparwidth-\marginparsep}{-2em}}
+ {left}{\begin{adjustwidth}{-\marginparwidth-\marginparsep}{-2em}}
+ {outer}{\begin{adjustwidth*}{-2em}{-\marginparwidth-\marginparsep}}
+ {right}{\begin{adjustwidth}{-2em}{-\marginparwidth-\marginparsep}}
+ }[\relax]
+ #1
+ \IfStrEqCase{\@didactic@marginparmargin}{%
+ {inner}{\end{adjustwidth*}}
+ {left}{\end{adjustwidth}}
+ {outer}{\end{adjustwidth*}}
+ {right}{\end{adjustwidth}}
+ }[\relax]
+ \setlength{\columnwidth}{\@didactic@textbytext@oldcolumnwidth}
+}{\relax}
+% \end{macrocode}
+%
+% Now to the |\textbytext| command.
+% We simply set up a |tabularx| environment with two columns and use it inside
+% a |fullwidth| environment.
+% \begin{macrocode}
+\NewDocumentCommand{\textbytext}{+m+m}{%
+ \begin{fullwidth}
+ \begin{tabularx}{\columnwidth}{XX}
+ #1 & #2
+ \end{tabularx}
+ \end{fullwidth}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\codebycode}
+% When we deal with code, we deal with verbatim data.
+% The easiest way to deal with this is to simply keep the code in files and
+% supply the file names to |\inputminted|.
+% The |\codebycode| command is simply two |\inputminted| commands side by side:
+% |\codebycode[opt1]{lang1}{file1}[opt2]{lang2}{file2}|.
+% \codebycode
+% [breaklines,linenos]{python}{hello.py}
+% [breaklines,linenos]{python}{hello.py}
+%
+% This gives us the following implementation.
+% We can reuse |\textbytext| to typeset the two examples side by side.
+% \begin{macrocode}
+\RequirePackage{tabularx}
+\RequirePackage{minted}
+\NewDocumentCommand{\codebycode}{ommomm}{%
+ \textbytext{%
+ \IfValueTF{#1}
+ {\lstexample[#1]{#2}{#3}}
+ {\lstexample{#2}{#3}}%
+ }{%
+ \IfValueTF{#4}
+ {\lstexample[#4]{#5}{#6}}
+ {\lstexample{#5}{#6}}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\runbyrun}
+% We also want to typeset the runs (|\runpython|).
+% We can use |\textbytext| to typeset the two outputs side by side.
+% \begin{macrocode}
+\NewDocumentCommand{\runbyrun}{mm}{%
+ \textbytext{\runpython{#1}}{\runpython{#2}}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
+\endinput
diff --git a/macros/latex/contrib/didactic/didactic.ins b/macros/latex/contrib/didactic/didactic.ins
new file mode 100644
index 0000000000..089f31cd00
--- /dev/null
+++ b/macros/latex/contrib/didactic/didactic.ins
@@ -0,0 +1,58 @@
+%%
+%% Copyright (C) 2019 by Daniel Bosk <dbosk@kth.se>
+%%
+%% This file 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.3 or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+%%
+
+\input docstrip.tex
+\keepsilent
+
+\usedir{tex/latex/didactic}
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2019 by Daniel Bosk <dbosk@kth.se>
+
+This file 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.3 or later is part of all distributions of LaTeX version
+2005/12/01 or later.
+
+\endpreamble
+
+\generate{\file{didactic.sty}{\from{didactic.dtx}{package}}}
+
+\obeyspaces
+\Msg{*************************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the following *}
+\Msg{* file into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* didactic.sty *}
+\Msg{* *}
+\Msg{* To produce the documentation run the file *}
+\Msg{* *}
+\Msg{* didactic.dtx *}
+\Msg{* *}
+\Msg{* through LaTeX. *}
+\Msg{* *}
+\Msg{* Happy TeXing! *}
+\Msg{* *}
+\Msg{*************************************************************}
+
+\endbatchfile
diff --git a/macros/latex/contrib/didactic/didactic.pdf b/macros/latex/contrib/didactic/didactic.pdf
new file mode 100644
index 0000000000..3c219334ad
--- /dev/null
+++ b/macros/latex/contrib/didactic/didactic.pdf
Binary files differ
diff --git a/macros/latex/contrib/didactic/hello.py b/macros/latex/contrib/didactic/hello.py
new file mode 100644
index 0000000000..4034830401
--- /dev/null
+++ b/macros/latex/contrib/didactic/hello.py
@@ -0,0 +1,7 @@
+"""A Hello World example in Python 3"""
+
+def main():
+ print("Hello, world!")
+
+if __name__ == "__main__":
+ main()
diff --git a/macros/latex/contrib/didactic/idea.tex b/macros/latex/contrib/didactic/idea.tex
new file mode 100644
index 0000000000..e6ea88ae62
--- /dev/null
+++ b/macros/latex/contrib/didactic/idea.tex
@@ -0,0 +1,4 @@
+\begin{idea}[These blocks]\label{theidea}
+ The idea of these blocks is to be able to use them in both slides and text.
+ This way, we can focus on writing just one version of the content.
+\end{idea}
diff --git a/macros/latex/contrib/didactic/lightblock.tex b/macros/latex/contrib/didactic/lightblock.tex
new file mode 100644
index 0000000000..83f4577bf7
--- /dev/null
+++ b/macros/latex/contrib/didactic/lightblock.tex
@@ -0,0 +1,3 @@
+\begin{lightblock}{green}{Title}
+ This is the body.
+\end{lightblock}
diff --git a/macros/latex/contrib/prociagssymp/README.txt b/macros/latex/contrib/prociagssymp/README.txt
index 98ddf544e7..d71ae0813d 100644
--- a/macros/latex/contrib/prociagssymp/README.txt
+++ b/macros/latex/contrib/prociagssymp/README.txt
@@ -1,25 +1,37 @@
-% This file is README.txt for the "procIAGssymp" package.
-% Current version : [2022/05/05]
-% Author: Battista Benciolini
+This file is README for the procIAGssymp package.
+Current version : [2024/04/08]
+Author: Battista Benciolini < benciolinibattista at gmail dot com >
-The package "procIAGssymp" provides (re-)definitions of some LaTeX
-commands that can be useful for the preparation of a paper with
-the style of the proceedings of symposia sponsored by the
+The package provides (re-)definitions of some LaTeX commands
+that can be useful for the preparation of a paper with
+the style of the proceeding of symposia sponsored by the
International Association of Geodesy (IAG).
-I presume that "official" more refined and
-up-to-date "sty" and "cls" file are now available
+I assume that official, more refined and
+up-to-date style (or class) file are now available
from the publisher. This package is therefore not as useful
as it was at the time of it's first publication,
but it is pehaps still conveniet for some user.
-The distribution includes :
+The package is distributed as file procIAGssymp.dtx
+
+The file procIAGssymp.dtx
+can be treated with any LaTeX processor and it generates:
+
+ procIAGssymp.sty to be loaded with \usepachage{procIAGssymp}
+
+ procIAGssymp.pdf the complete documentation
+
+ TESTprocIAGssymp.tex a minimal example using the package
+
+I used pdflatex in the installation of TeXlive2024
+
+
+This program may be used, distributed and modified under
+the conditions of the LaTeX Project Public License.
+(see:http://www.latex-project.org/lppl.txt)
-README.txt this file
-procIAGssymp.sty the package
-TestprocIAGssymp.tex external documentation, example, suggestions
-TestprocIAGssymp.pdf external documentation, example, suggestions
===================== END of README file ======================
diff --git a/macros/latex/contrib/prociagssymp/TestprocIAGssymp.pdf b/macros/latex/contrib/prociagssymp/TestprocIAGssymp.pdf
deleted file mode 100644
index 3963711a2c..0000000000
--- a/macros/latex/contrib/prociagssymp/TestprocIAGssymp.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/prociagssymp/TestprocIAGssymp.tex b/macros/latex/contrib/prociagssymp/TestprocIAGssymp.tex
deleted file mode 100644
index d0343bda46..0000000000
--- a/macros/latex/contrib/prociagssymp/TestprocIAGssymp.tex
+++ /dev/null
@@ -1,145 +0,0 @@
-% THIS IS BOTH A MINIMAL USER-MANUAL
-% OF THE PACKAGE procIAGssymp.sty
-% AND AN EXAMPLE OF ITS USE
-%
-% File : TestprocIAGssymp.tex (current version 2022-05-05)
-% Author: Battista Benciolini
-% E-mail: <Battista.Benciolini@unitn.it>
-% See file procIAGssymp.sty for more information
-%
-%
-\documentclass[a4paper,twocolumn,10pt]{article} %
-\usepackage{procIAGssymp}
-\title{The package procIAGssymp.sty for the formatting
- of a paper with the style of the proceedings of
- symposia sponsored by IAG}
-\author{B.Benciolini\thanks{e-mail: battista.benciolini@unitn.it}
-\and No Second Author \and No Third Author\thanks{No-Where Institute}}
-\date{ }
-\hbadness=10000 \vbadness=10000
-\begin{document}
-\maketitle
-\paragraph{Abstract.} The package \texttt{procIAGssymp.sty} has
-been designed to help the formatting of a paper with the style
-of the proceedings of symposia sponsored by the
-"International Association of Geodesy (IAG)".
-This paper itself is an example of the use of the package. It
-contains instructions and suggestions for the use of the package,
-while most of the comment included in \texttt{procIAGssymp.sty}
-are of a more technical nature.
-\paragraph{WARNING:}
-I have not recently checked the instruction from
-the publisher of the proceedings of IAG-sponsored-symposia.
-I presume that "official" more refined and
-up-to-date "sty" and "cls" files
-are now available from the publisher.
-This package is therefore not as useful
-as it was at the time of it's first publication,
-but it is pehaps still conveniet for some user.
-\linea
-\section{Introduction}
-The package \texttt{procIAGssymp.sty} provides some (re-)definitions
-of \LaTeX commands. The use of the package is explained in this text.
-\par\noindent I have tried to provide a package that helps in
-the preparation of a paper that corresponds to the instructions
-distributed by the publisher of the proceedings of
-IAG-sponsored-symposia, but please read the subsection
-\textbf{Important notes} below.
-\par\noindent The curious readers are
-invited to look directly at the source of this file and, more
-important, to the code in the file \texttt{procIAGssymp.sty}.
-\section{Suggestions for the user}
-\subsection{General page lay-out}
-The general lay-out of the pages is controlled by some assignment
-made by \texttt{procIAGssymp.sty} AND by the use of the class
-\texttt{article} that must be loaded with the proper options, i.e.
-\verb+[a4paper,twocolumn,10pt]+ .
-\subsection{Top-matter}
-The title and the author(s) must be prepared with
-\verb+\title{ . . .}+ and \verb+\author{ . . .}+ and they will be
-printed by \verb+\maketitle+. The use of \verb+\thanks{. . .}+ inside
-the argument of \verb+\title{ . . .}+ is not appropriate because this
-command has been redefined.
-If there are several authors, their
-names must be separated by \verb+\and+. The authors that share the
-same address must be listed consecutively and must be followed by
-\verb+\thanks{. . .}+ (with the address as argument). To see an example
-you can see the code of this file.
-\subsection{Sectioning}
-The use of \verb+\section{. . . }+ and \verb+\subsection{. . . }+
-can be done as in any \LaTeX paper.
-These commands have been redefined so that they
-produce the first level and second level headers in the proper format.
-All the other sectioning commands have been redefined with a coherent
-style.
-The command \verb+\section*{References}+ can be used to start
-the reference list. One of the following sections is just a test of
-the various sectioning commands.
-\section{Test of sectioning (1st level)}
-\subsection{Test of sectioning (2nd level)}
-\subsubsection{Test of sectioning (3rd level)}
-This is just an example of the use and abuse
-of \verb+\section+, \verb+\subsection+ and
-\verb+\subsubsection+. We can also test \verb+\paragraph+ and
-\verb+\subparagraph+.
-\paragraph{Paragraph} This is a paragraph, headed by \verb+\paragraph+.
-\subparagraph{Subparagraph} This is a sub paragraph. And the section
-end HERE.
-\section{Technicalities}
-\subsection{About the format of the top-matter}
-The main structure of the topmatter is governed by \verb+\@maketitle+
-which is properly redefined. \par\noindent
-The command \verb+\thanks+ has been
-redefined to print the authors' address immediately after the
-authors' names. The new form of this command makes it unsuitable
-to put a note to the title.
-\subsection{Compatibility}
-The package has been used together with the \texttt{article} class
-and with several packages including:
-\texttt{makeidx}, \texttt{amsmath},
-\texttt{amssymb}, \texttt{apalike}, \texttt{array},
-\texttt{epsfig}, \texttt{graphicx} and \texttt{verbatim}.
-I have not found any compatibility problem.
-\section{Some info from the internal documentation}
-\subsection{Important Notes}
-\begin{enumerate}
-\item The files that are distributed are :
-\begin{itemize}
-\item \verb+README.txt+ ,
-\item \verb+procIAGssymp.sty+ ,
-\item \verb+TestprocIAGssymp.tex+ ,
-\item \verb+TestprocIAGssymp.pdf+ .
-\end{itemize}
-\item The copyright holder of this package is its author.
-This program may be used, distributed and/or modified under
-the conditions of the LaTeX Project Public License.
-The latest version of this license is in:
-\texttt{http://www.latex-project.org/lppl.txt}
-\item When this package is used the correspondence between the
-obtained result and any requirement and prescription
-must be judged by the user.
-\item The release of this package on CTAN is a personal initiative
-of its author. The mention of IAG and of the publisher
-of the proceedings of the symposia sponsored by IAG does
-not imply any involvement of these entities in this initiative.
-\end{enumerate}
-\subsection{History}
-\begin{description}
-\item[2000-2002:] development, test, in-house use,
-\item[2002:] released in CTAN,
-\item[2022:] general revision,
-changes in the comments and documentation, new release in CTAN.
-\end{description}
-%
-\subsection{Acknowledgment}
-People listed here after contributed with suggestions.
-Some of them also provided fragments of code. \\
-Claretta Carrara, Nico Snew, Claudio Beccari.
-%
-\section{Recommendation}
-I recommend all the users of the package \texttt{procIAGssymp.sty}
-to send me any comment about it.
-\end{document}
-\endinput
-%%
-%% End of file TestprocIAGssymp.tex
diff --git a/macros/latex/contrib/prociagssymp/procIAGssymp.dtx b/macros/latex/contrib/prociagssymp/procIAGssymp.dtx
new file mode 100644
index 0000000000..e5b82fc82d
--- /dev/null
+++ b/macros/latex/contrib/prociagssymp/procIAGssymp.dtx
@@ -0,0 +1,290 @@
+% \iffalse
+% file: procIAGssymp.dtx
+% author: Battista Benciolini
+% date: 2024-04-08
+%\fi
+% \iffalse
+%<*ins>
+\begingroup
+\input docstrip.tex
+\keepsilent
+\preamble
+-------------------------------------------------------------
+This file is part of the distribution of procIAGssymp.
+The author is Battista Benciolini
+benciolinibattista al gmail dot com
+-------------------------------------------------------------
+The package provides (re-)definitions of some LaTeX commands
+that can be useful for the preparation of a paper with
+the style of the proceeding of symposia sponsored by the
+International Association of Geodesy (IAG).
+-------------------------------------------------------------
+This program may be used, distributed and modified under
+the conditions of the LaTeX Project Public License.
+(see: http://www.latex-project.org/lppl.txt)
+-------------------------------------------------------------
+\endpreamble
+\askforoverwritefalse
+\generate{\file{procIAGssymp.sty}{\from{procIAGssymp.dtx}{package}}}
+\generate{\file{TESTprocIAGssymp.tex}{\from{procIAGssymp.dtx}{example}}}
+\endgroup
+%</ins>
+%\fi
+% \iffalse
+%<*driver>
+\documentclass[a4paper,10pt]{ltxdoc} %
+\title{The package \texttt{procIAGssymp}}
+\author{Battista Benciolini\thanks{contact: benciolinibattista al gmail dot com}}
+\parindent=0pt
+\begin{document}
+\maketitle
+\DocInput{procIAGssymp.dtx}
+\end{document}
+%</driver>
+% \fi
+% \section{Introduction and warnings} The package |procIAGssymp.sty| has
+% been designed to help the formatting of a paper with the style
+% of the proceedings of symposia sponsored by the
+% International Association of Geodesy (IAG).
+% \par
+% I have not recently checked the instruction from
+% the publisher of the proceedings of IAG-sponsored-symposia.
+% They probably changed since the time this code has been prepared.
+% I presume that official more refined and
+% up-to-date class or style files
+% are now available from the publisher.
+% This package is therefore not as useful
+% as it was at the time of it's first publication,
+% but it is pehaps still conveniet for some user.
+% \par
+% The release of this package on CTAN is a personal initiative
+% of its author. The mention of IAG and of the publisher
+% of the proceedings of the symposia sponsored by IAG does
+% not imply any involvement of these entities in this initiative.
+% \section{The use of \texttt{procIAGssymp.sty}}
+% \subsection{General informations}
+% Some of the informations of these section are repeated
+% in the test article that is distributed with the package.
+% \par
+% The reccommended class (with option) is:
+% |[a4paper,twocolumn,10pt]{article}|.
+% \subsection{Top-matter}
+% The title and the (list of) author(s) must be prepared with
+% \DescribeMacro{\title}
+% \DescribeMacro{\author}
+% |\title{ . . .}| and |\author{ . . .}| and they will be
+% printed by |\maketitle|.
+% If there are several authors, their
+% \DescribeMacro{\and}
+% names must be separated by |\and|.
+% \DescribeMacro{\thanks}
+% The authors that share the
+% same address must be listed consecutively and must be followed by
+% |\thanks{. . .}| (with the address as argument).
+% The use of |\thanks{. . .}| referred
+% to the title is not appropriate because this command has been redefined.
+% \subsection{Sectioning}
+% \DescribeMacro{\section} % \DescribeMacro{\subsection}
+% The use of |\section{. . . }| and |\subsection{. . . }|
+% can be done as in any \LaTeX\ paper.
+% These commands have been redefined so that they
+% produce the first level and second level headers in the proper format.
+% All the other sectioning commands have been redefined with a coherent style.
+% The command |\section*{References}| can be used to start the reference list.
+% \subsection{Technicalities about the format of the top-matter}
+% The main structure of the topmatter is governed by |\@maketitle|
+% which is properly redefined.
+% The command |\thanks| has been redefined to print the
+% authors' address immediately after the authors' names.
+% The new form of this command makes it unsuitable
+% to put a note to the title.
+% %
+% \section{Acknowledgment}
+% People listed here after contributed with suggestions.
+% Some of them also provided fragments of code.
+% {\large Claretta Carrara, Nico Snew, Claudio Beccari.}
+% %
+% \section{Code of \texttt{procIAGssymp.sty}}
+% \iffalse
+%<*package>
+% \fi
+% \begin{macrocode}
+\ProvidesPackage{procIAGssymp}[2024/04/08]
+% \end{macrocode}
+% \begin{macro}{\@maketitle}
+% The following redefinition of |\@maketitle| is quite simplified with
+% respect to the standard one. The data is not printed; the title is
+% not centered and it is in sans-serif style; the author is no longer
+% in tabular environment; the author and its address are left justified.
+% \begin{macrocode}
+\def\@maketitle{%
+ {\LARGE\sffamily\bfseries\@title}
+ \vskip 6mm%
+ {\lineskip .5em%
+ {\raggedright\@author}}
+ \vskip 6mm%
+ \par
+ \vskip 1.5em}
+% \end{macrocode}
+%\end{macro}
+%
+% The proper behaviour of the command |\and| in relation with |\thanks|
+% require the new conditional named |\ifafterthanks|.
+% It will be used in the redefinition of |\and|.
+% \begin{macrocode}
+\newif\ifafterthanks \afterthanksfalse
+% \end{macrocode}
+% \begin{macro}{\thanks}
+% The macro |\thanks| must be redefined to print the address immediately after
+% the author(s) it refers to.
+% \begin{macrocode}
+\renewcommand{\thanks}[1]{\\ #1 \vskip6mm \global\afterthankstrue}
+% \end{macrocode}
+%\end{macro}
+% \begin{macro}{\and}
+% The macro|\and| must be redefined.
+% \begin{macrocode}
+\renewcommand{\and}{\ifafterthanks\relax \else{\unskip,}\ \fi
+\global\afterthanksfalse}
+% \end{macrocode}
+%\end{macro}
+%
+% \begin{macro}{\section}
+% The command |\section| is redefined to use proper shape and proper spacing.
+% \begin{macrocode}
+\renewcommand\section{\@startsection%
+{section}{1}{0mm}{-3mm}{2mm}%
+{\fontsize{10.95}{13.6}\selectfont\sffamily\bfseries}}%
+% \end{macrocode}
+%\end{macro}
+% \begin{macro}{\subsection}
+% The command |\subsection| is redefined to use proper shape and proper spacing.
+% \begin{macrocode}
+\renewcommand\subsection{\@startsection%
+{subsection}{2}{0mm}{-3mm}{2mm}%
+{\normalfont\sffamily\bfseries}}%
+% \end{macrocode}
+%\end{macro}
+% The first and second order sectioning are generally used. The
+% lower lever sectioning commands are redefined for compatibiliy.
+% \begin{macrocode}
+\renewcommand\subsubsection{\@startsection%
+{subsubsection}{3}{0mm}{-2mm}{2mm}%
+{\normalfont\normalsize\sffamily\bfseries}}%
+\renewcommand\paragraph{\@startsection%
+{paragraph}{4}{0mm}{-2mm}{-1em}%
+{\normalfont\normalsize\sffamily\bfseries}} %
+\renewcommand\subparagraph{\@startsection%
+{subparagraph}{5}{\parindent}{-2mm}{-1em}%
+{\normalfont\normalsize\sffamily\bfseries}}%
+% \end{macrocode}
+% It is also necessary to set some dimensions.
+% \begin{macrocode}
+\textheight224mm
+\textwidth156mm
+\columnsep8mm
+\topmargin0mm
+% \end{macrocode}
+%\begin{macro}{\linea}
+% The new command |\linea|, with Italian name -:) ,
+% can be used to put some space and a rule after the abstract.
+% \begin{macrocode}
+\newcommand{\linea}{\vskip1mm\noindent\rule{74mm}{.5pt}}
+% \end{macrocode}
+%\end{macro}
+% \iffalse
+%</package>
+% \fi
+% \section{Code of \texttt{TESTprocIAGssymp.tex}}
+% The code of |TESTprocIAGssymp.tex| is presented here after.
+% \iffalse
+%<*example>
+% \fi
+% \begin{macrocode}
+\documentclass[a4paper,twocolumn,10pt]{article} %
+\usepackage{procIAGssymp}
+\title{The package procIAGssymp.sty for the formatting
+ of a paper with the style of the proceedings of
+ symposia sponsored by IAG}
+\author{B.Benciolini\thanks{contact: benciolinibattista al gmail dot com}
+\and No Second Author \and No Third Author\thanks{No-Where Institute}}
+\hbadness=10000 \vbadness=10000
+\begin{document}
+\maketitle
+\paragraph{Abstract} The use of the package \texttt{procIAGssymp.sty}
+is explained and tested in this short paper.
+\linea
+\section{Introduction}
+The package \texttt{procIAGssymp.sty} provides some (re-)definitions
+of \LaTeX\ commands. The main pourpose of the present text is to give
+an example of the use of the package \texttt{procIAGssymp.sty}.
+The content is just an essential explenation of the use of the same package.
+\par\noindent Please refer to the file \texttt{procIAGssymp.pdf} for
+a complete documentation and to \texttt{README.txt} for general
+introductory information.
+\section{Suggestions for the user}
+\subsection{General page lay-out}
+The general lay-out of the pages is controlled by some assignment
+made by \texttt{procIAGssymp.sty} and by the use of the class
+\texttt{article} that must be loaded with the proper options, i.e.
+\verb+[a4paper,twocolumn,10pt]+.
+\subsection{Top-matter}
+The title and the author(s) must be prepared with
+\verb+\title{ . . .}+ and \verb+\author{ . . .}+ and they will be
+printed by \verb+\maketitle+.
+If there are several authors, their names must be separated by \verb+\and+.
+The authors that share the same address must be listed consecutively and must
+be followed by \verb+\thanks{. . .}+ (with the address as argument).
+The use of \verb+\thanks{. . .}+ referred to the title is not appropriate
+because this command has been redefined.
+\subsection{More about the format of the top-matter}
+The main structure of the topmatter is governed by \verb+\@maketitle+
+which is properly redefined. \par\noindent
+The command \verb+\thanks+ has been redefined to print the
+authors' address immediately after the authors' names.
+The new form of this command makes it unsuitable
+to put a note to the title.
+\subsection{Sectioning}
+The use of \verb+\section{. . . }+ and \verb+\subsection{. . . }+
+can be done as in any \LaTeX\ paper.
+These commands have been redefined so that they
+produce the first level and second level headers in the proper format. All
+the other sectioning commands have been redefined with a coherent style. The
+command \verb+\section*{References}+ can be used to start the reference list.
+One of the following sections is just a test of the various sectioning commands.
+\section{Test of sectioning (1st level)}
+\subsection{Test of sectioning (2nd level)}
+\subsubsection{Test of sectioning (3rd level)}
+This is just an example of the use and abuse
+of \verb+\section+, \verb+\subsection+ and
+\verb+\subsubsection+. We can also test \verb+\paragraph+ and
+\verb+\subparagraph+.
+\paragraph{Paragraph} This is a paragraph, headed by \verb+\paragraph+.
+\subparagraph{Subparagraph} This is a sub paragraph. And the section
+ends here.
+\section{History}
+\begin{description}
+\item[2000 ... 2002:] development, test, in-house use,
+\item[2002] first released in CTAN,
+\item[2022-05-05] general revision,
+changes in the comments and documentation, new release in CTAN,
+\item[2024-04-08] general revision, changes in the documentation,
+all stuff collected in \texttt{procIAGssymp.dtx},
+new release in CTAN.
+\end{description}
+\section{Recommendation}
+I recommend all the users of the package \texttt{procIAGssymp.sty}
+to send me any comment about it.
+\end{document}
+\endinput
+% \end{macrocode}
+% \iffalse
+%</example >
+% \fi
+%
+% \iffalse
+% The END
+% -------
+% \fi
+% \vfill\centerline{\large ***}\vfill
+%
diff --git a/macros/latex/contrib/prociagssymp/procIAGssymp.pdf b/macros/latex/contrib/prociagssymp/procIAGssymp.pdf
new file mode 100644
index 0000000000..1b97771c8c
--- /dev/null
+++ b/macros/latex/contrib/prociagssymp/procIAGssymp.pdf
Binary files differ
diff --git a/macros/latex/contrib/prociagssymp/procIAGssymp.sty b/macros/latex/contrib/prociagssymp/procIAGssymp.sty
deleted file mode 100644
index 9db8245f92..0000000000
--- a/macros/latex/contrib/prociagssymp/procIAGssymp.sty
+++ /dev/null
@@ -1,174 +0,0 @@
-\ProvidesPackage{procIAGssymp}[2022/05/05]
-%*************************************************
-%* *
-%* This file is *
-%* *
-%* procIAGssymp.sty *
-%* ---------------- *
-%* *
-%* it contains (re-)definitions for the *
-%* proceedings of IAG sponsored symposia *
-%* *
-%* Author: Battista Benciolini *
-%* *
-%* Address: Dip. di Ingegneria Civile *
-%* Ambientale e Meccanica *
-%* Via Mesiano, 77 *
-%* I-38050 Trento *
-%* ITALY *
-%* *
-%* e-mail: Battista.Benciolini@unitn.it *
-%* *
-%*************************************************
-%
-%
-% PURPOSE
-% =======
-%
-% This package provides (re-)definitions of some LaTeX commands
-% that can be useful for the preparation of a paper with
-% the style of the proceeding of symposia sponsored by the
-% International Association of Geodesy (IAG).
-%
-%
-% IMPORTANT NOTES
-% ===============
-%
-% 0- WARNING
-% I have not recently checked the instruction from
-% the publisher of the proceedings of IAG-sponsored-symposia.
-% I presume that "official" more refined and
-% up-to-date "sty" and "cls" files
-% are now available from the publisher.
-% This package is therefore not as useful
-% as it was at the time of it's first publication,
-% but it is pehaps still convenient for some user.
-%
-% 1 - This file is part of a program (in the meaning specified
-% by the LPPL- see next point) that includes:
-% - README.txt
-% - procIAGssymp.sty (= this file)
-% - TestprocIAGssymp.tex (= sample and suggestions)
-% - TestprocIAGssymp.pdf (= sample and suggestions)
-% 2 - The copyright holder of this package is its author.
-% This program may be used, distributed and/or modified under
-% the conditions of the LaTeX Project Public License.
-% The latest version of this license is in:
-% http://www.latex-project.org/lppl.txt
-% 3 - When this package is used the correspondence between the
-% obtained result and any requirement and prescription
-% must be judged by the user.
-% 4 - The release of this package on CTAN is a personal initiative of
-% its author. The mention of IAG and of the publisher
-% of the procedings of the symposia sponsored by IAG does
-% not imply any involvement of these entities in this initiative.
-%
-%
-% HISTORY
-% =======
-% 2000-2002 : development, test, in-house use
-% 2002 : released in CTAN
-% 2022 : general revision,
-% small changes in the comments and documentation,
-% new release in CTAN
-%
-%
-% AKNOWLEDGMENT
-% =============
-%
-% People listed here after contributed with suggestions.
-% Some of them also provided fragments of code.
-% Claretta Carrara, Nico Snew, Claudio Beccari.
-%
-% --------------------------------------------------------------------
-%
-%
-% The following redefinition of \@maketitle is quite simplified with
-% respect to the standard one. The data is not printed; the title is
-% not centered and it is in sans-serif style; the author is no longer
-% in tabular environment; the author and its address are left justified.
-\def\@maketitle{%
- %% \newpage
- %% \null
- {\LARGE\sffamily\bfseries\@title}
- \vskip 6mm%
- {%\large
- \lineskip .5em%
- {\raggedright\@author}}
- \vskip 6mm%
- \par
- \vskip 1.5em}% end of\@maketitle
-%
-%
-% a new if, used to govern the behaviour
-% of \and in relation with \thanks
-\newif\ifafterthanks \afterthanksfalse
-%
-% redefinition of \thanks, to print the address immediately after
-% the author(s) it refers to
-\renewcommand{\thanks}[1]{\\ #1 \vskip6mm \global\afterthankstrue}
-%
-% redefinition of \and
-\renewcommand{\and}{\ifafterthanks\relax \else{\unskip,}\ \fi
-\global\afterthanksfalse}
-%
-%
-% redefinition of sectioning commands tu use proper font and spacing
-% 1st and 2nd order headings (section and subsrcion)
-%%% WARNING : is character size correct ??
-%
-\renewcommand\section{\@startsection%
-{section}%
-{1}% %level
-{0mm}% %indent
-{-3mm}% %beforeskip
-{2mm}% %afterskip
-{\fontsize{10.95}{13.6}\selectfont\sffamily\bfseries}} %style
-%
-\renewcommand\subsection{\@startsection%
-{subsection}%
-{2}% %level
-{0mm}% %indent
-{-3mm}% %beforeskip
-{2mm}% %afterskip
-{\normalfont\sffamily\bfseries}} %style
-%
-% higher order headings (subsubsection, paragraph and subparagraph)
-%
-\renewcommand\subsubsection{\@startsection%
-{subsubsection}%
-{3}% %level
-{0mm}% %indent
-{-2mm}% %beforeskip
-{2mm}% %afterskip
-{\normalfont\normalsize\sffamily\bfseries}} %style
-%
-\renewcommand\paragraph{\@startsection%
-{paragraph}%
-{4}% %level
-{0mm}% %indent
-{-2mm}% %beforeskip
-{-1em}% %afterskip
-{\normalfont\normalsize\sffamily\bfseries}} %style
-%
-\renewcommand\subparagraph{\@startsection%
-{subparagraph}%
-{5}% %level
-{\parindent}% %indent
-{-2mm}% %beforeskip
-{-1em}% %afterskip
-{\normalfont\normalsize\sffamily\bfseries}} %style
-%
-% margins and unitlength
-\textheight224mm
-\textwidth156mm
-\columnsep8mm
-\topmargin0mm
-\setlength{\unitlength}{1mm}
-%
-%
-% the new command \linea, with Italian name -:) ,
-% can be used to put some space and a rule after the abstract
-\newcommand{\linea}{\vskip1mm\noindent\rule{74mm}{.5pt}}
-%
-% end end end
diff --git a/support/l3sys-query/CHANGELOG.md b/support/l3sys-query/CHANGELOG.md
index 2ab9d77ad3..7ad3250cee 100644
--- a/support/l3sys-query/CHANGELOG.md
+++ b/support/l3sys-query/CHANGELOG.md
@@ -7,6 +7,11 @@ Changelog](https://keepachangelog.com/en/1.0.0/), this project uses date-based
## [Unreleased]
+## [2024-04-08]
+
+### Changed
+- Improvement to man file, `SYNOPSIS` section
+
## [2024-04-03]
### Changed
@@ -31,7 +36,8 @@ Changelog](https://keepachangelog.com/en/1.0.0/), this project uses date-based
### Added
- New script
-[Unreleased]: https://github.com/latex3/l3sys-query/compare/2024-04-03...HEAD
+[Unreleased]: https://github.com/latex3/l3sys-query/compare/2024-04-08...HEAD
+[2024-04-08]: https://github.com/latex3/l3sys-query/compare/2024-04-03...2024-04-08
[2024-04-03]: https://github.com/latex3/l3sys-query/compare/2024-03-28...2024-04-03
[2024-03-28]: https://github.com/latex3/l3sys-query/compare/2024-03-15...2024-03-28
[2024-03-15]: https://github.com/latex3/l3sys-query/compare/2024-03-14...2024-03-15
diff --git a/support/l3sys-query/README.md b/support/l3sys-query/README.md
index 34441af719..bb62d6d944 100644
--- a/support/l3sys-query/README.md
+++ b/support/l3sys-query/README.md
@@ -1,6 +1,6 @@
# `l3sys-query`: System queries for LaTeX using Lua
-Release 2024-04-03
+Release 2024-04-08
## Overview
diff --git a/support/l3sys-query/l3sys-query-tool.pdf b/support/l3sys-query/l3sys-query-tool.pdf
index a664a52654..75e2933975 100644
--- a/support/l3sys-query/l3sys-query-tool.pdf
+++ b/support/l3sys-query/l3sys-query-tool.pdf
Binary files differ
diff --git a/support/l3sys-query/l3sys-query-tool.tex b/support/l3sys-query/l3sys-query-tool.tex
index 174e725b9f..7809e4be69 100644
--- a/support/l3sys-query/l3sys-query-tool.tex
+++ b/support/l3sys-query/l3sys-query-tool.tex
@@ -45,7 +45,7 @@ for those people who are interested.
}%
}
-\date{Release 2024-04-03}
+\date{Release 2024-04-08}
\maketitle
\tableofcontents
@@ -252,10 +252,10 @@ The \LaTeX{} interfaces described below adust the quoting used depending on the
Using \texttt{l3sys-query} is not tied to access \emph{via} \pkg{expl3}, but
this is the preferred approach for the \LaTeX{} Team. Details of how to use
-\texttt{l3sys-query} as an \pkg{expl3} programmer will covered in
-\texttt{interface3.pdf} once the macro code is finalized. A document level
-interface will also be provided via a \pkg{l3sys-query} package which is based
-on the \pkg{expl3} interface and will be described here.
+\texttt{l3sys-query} as an \pkg{expl3} programmer are covered in
+\texttt{interface3.pdf}. A document level interface is also be provided via a
+\pkg{l3sys-query} package which is based on the \pkg{expl3} interface; it is
+described in \texttt{l3sys-query.pdf}.
\end{documentation}
diff --git a/support/l3sys-query/l3sys-query.1 b/support/l3sys-query/l3sys-query.1
index 41c4127633..ba68f97fe3 100644
--- a/support/l3sys-query/l3sys-query.1
+++ b/support/l3sys-query/l3sys-query.1
@@ -1,10 +1,10 @@
-.TH L3SYS-QUERY 1 "2024-04-03" "LaTeX"
+.TH L3SYS-QUERY 1 "2024-04-08" "LaTeX"
.SH NAME
l3sys-query
.SH SYNOPSIS
- Usage l3sys-query <cmd> [<options>] [<args>]
+l3sys-query <cmd> [<options>] [<args>]
.SH DESCRIPTION
diff --git a/support/l3sys-query/l3sys-query.lua b/support/l3sys-query/l3sys-query.lua
index 5bdea72d50..e1c6568095 100644
--- a/support/l3sys-query/l3sys-query.lua
+++ b/support/l3sys-query/l3sys-query.lua
@@ -36,7 +36,7 @@ for those people who are interested.
-- Details of the script itself, etc.
--
local copyright = "Copyright (C) 2024 The LaTeX Project"
-local release_date = "2024-04-03"
+local release_date = "2024-04-08"
local script_desc = "System queries for LaTeX using Lua\n"
local script_name = "l3sys-query"
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index dd3ddddbf4..d47878c319 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,11 +26,11 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2024
-depend revision/70884
+depend revision/70892
name 00texlive.image
category TLCore
-revision 70885
+revision 70890
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
@@ -1462,6 +1462,7 @@ runfiles size=14462
tlpkg/tlpsrc/dichokey.tlpsrc
tlpkg/tlpsrc/dickimaw.tlpsrc
tlpkg/tlpsrc/dictsym.tlpsrc
+ tlpkg/tlpsrc/didactic.tlpsrc
tlpkg/tlpsrc/didec.tlpsrc
tlpkg/tlpsrc/diffcoeff.tlpsrc
tlpkg/tlpsrc/digestif.tlpsrc
@@ -72064,7 +72065,7 @@ containerchecksum 889eae40b82f31c7c4b3a17740399c763dabec7986fcb39261b252afff69a0
name collection-latexextra
category Collection
-revision 70717
+revision 70890
shortdesc LaTeX additional packages
relocated 1
longdesc A very large collection of add-on packages for LaTeX.
@@ -72432,6 +72433,7 @@ depend diagbox
depend diagnose
depend dialogl
depend dichokey
+depend didactic
depend didec
depend dimnum
depend dinbrief
@@ -73609,7 +73611,7 @@ depend zref-vario
depend zwgetfdate
depend zwpagelayout
containersize 7148
-containerchecksum 920653c37a64dc76f334a6e056b44973010d4264a71f39ddb5bc333c5595a09b9b7fb63e02a606b89a5a7f08deda6b3e5c05b8e928674387cbec8e3fa9aec011
+containerchecksum 495c5a9627a2d75f18463a6696310088a2a3bc4c501153574159c363588c233534d55270e154e200bef95673c4c683f77e316058c1a421379a5a1a3acc1de807
name collection-latexrecommended
category Collection
@@ -96749,6 +96751,50 @@ catalogue-ctan /fonts/dictsym
catalogue-license lppl1.3
catalogue-topics font font-symbol font-type1 linguistic
+name didactic
+category Package
+revision 70890
+shortdesc Tools for writing teaching material
+relocated 1
+longdesc This package provides macros and environments useful for
+longdesc writing teaching material. It provides more semantic
+longdesc environments on top of the standard definition, theorem, and
+longdesc friends: for instance, exercise, activity and question. These
+longdesc are suitably colour-coded when used with Beamer. They occur as
+longdesc "normal" text in handouts produced by beamerarticle (same style
+longdesc as definition usually has). It also provides macros for
+longdesc typesetting code listings and output side by side. Finally, it
+longdesc modifies the appearance of beamer (Berlin-based theme) and
+longdesc memoir (Tufte style layout), if loaded. It is designed to be
+longdesc used with beamer to produce slides and beamerarticle with
+longdesc memoir to produce notes and handouts from the same source.
+containersize 4504
+containerchecksum 347bbfa23a40e0ff8888f8d57e0c1a43cdaabc0b955f9fedc817e702b34f632b53eefec153b855db1b63c3fe5a37f897eb264727c7293a8639abc508bf83db0b
+doccontainersize 264372
+doccontainerchecksum aaad656523197ac59addd157080cf0974c63d33f96d793a4b8e24d655819996c74ec221d48c351b473bd92e215146ea5ede7effab22dffd9a2c74e37bf9e3bd6
+docfiles size=75
+ RELOC/doc/latex/didactic/LICENSE
+ RELOC/doc/latex/didactic/ProvideSemanticEnv.tex
+ RELOC/doc/latex/didactic/README.md details="Readme"
+ RELOC/doc/latex/didactic/didactic.pdf details="Package documentation"
+ RELOC/doc/latex/didactic/hello.py
+ RELOC/doc/latex/didactic/idea.tex
+ RELOC/doc/latex/didactic/lightblock.tex
+srccontainersize 10996
+srccontainerchecksum e314638fe3aaf16e752af335e7a8560faaeaa7185cd9e37f8008a529ff8644941d60381adeb8f2a383368c1c2f105be1a90055bcdc34508e62a35dd2510bfde0
+srcfiles size=12
+ RELOC/source/latex/didactic/Makefile
+ RELOC/source/latex/didactic/didactic.dtx
+ RELOC/source/latex/didactic/didactic.ins
+runfiles size=4
+ RELOC/tex/latex/didactic/didactic.sty
+catalogue-contact-bugs https://github.com/dbosk/didactic/issues
+catalogue-contact-repository https://github.com/dbosk/didactic
+catalogue-ctan /macros/latex/contrib/didactic
+catalogue-license lppl1.3c
+catalogue-topics teaching presentation
+catalogue-version 1.6
+
name didec
category Package
revision 70229
@@ -180245,7 +180291,7 @@ catalogue-topics macro-supp latex3 pre-release
name l3sys-query
category Package
-revision 70851
+revision 70889
shortdesc System queries for LaTeX using Lua
longdesc The l3sys-query script provides a method for TeX runs to obtain
longdesc system information via shell escape to Lua. The facilities are
@@ -180260,9 +180306,9 @@ longdesc the current working directory
depend l3sys-query.ARCH
depend luatex
containersize 5404
-containerchecksum b25a431664bc2312de56982c299152f59f31cbeda8678533f592fbdfb9a37455f740b41666995c10d63324dc4cd2a7e2b372d9b2be630235f230fb17f951eb2d
-doccontainersize 383644
-doccontainerchecksum efd74a0f58ed1f3c142b132aae29fc06e2aa6da52da044bc2afd637caece9109ed13019c6f460fb60e5a068d1add45f8e9e97e1b7c02668a22f19507da582830
+containerchecksum 6bf0f78f704c3d5511d8e54eb3fb89a1d0ee6870c7fe60d20d286c83a86fb18529d7dd717c76e9a30051ec099b154014f1243e7d3e214ad026537a188dc916e7
+doccontainersize 383792
+doccontainerchecksum ef8e3bab156c7aecec8c77bae0ab4f73a9426d799d57373584230216a4c061772cf8085db9e5c32bba42896072951949b9ac3d5942c20c009ede7b6b38555b42
docfiles size=103
texmf-dist/doc/man/man1/l3sys-query.1
texmf-dist/doc/man/man1/l3sys-query.man1.pdf
@@ -227659,18 +227705,18 @@ binfiles arch=x86_64-solaris size=1
name mptrees
category Package
-revision 70112
+revision 70887
shortdesc Probability trees with MetaPost
relocated 1
longdesc This package provides MetaPost tools for drawing simple
-longdesc probability trees. One command and several parameters to
-longdesc control the output are provided.
-containersize 11460
-containerchecksum 86b68e221c12ef06dc44ccfa628f244b41a7be262d9d1ea21c22829e0d1dce14e53625a069e1525a86f394e2318e4fb436b68bd1fcdd6b0a2f6dadd14b6faf04
-doccontainersize 208488
-doccontainerchecksum 58010c8d5a036bb72879b94d4c14e6ab752b56d1201e06fd6f6801782147e11cfee8302dbc7abe93373fa94f05a80c04fc3f80a44847f78c6a7e7c2c97926d86
-docfiles size=63
+longdesc probability trees and graphs (in discrete geometry).
+containersize 11920
+containerchecksum 4677a293c69c68eff3018f963adc1cd0c4da41b072ab993dfc74fc1c0114461dc4cba26c49acc9466d5d0601fabcb4c16d8f0a4e81ce6f9484b8466901b2533d
+doccontainersize 575300
+doccontainerchecksum 974afd6e49a86421f82ac673715247d9558ed93abdb9ae54d6726f0b09a607e4ce2863b97a87370a2efb14dcf14af76b4910e230106b8f3d9631c9273cfbbec4
+docfiles size=286
RELOC/doc/metapost/mptrees/README.md details="Readme"
+ RELOC/doc/metapost/mptrees/france-region.jpg
RELOC/doc/metapost/mptrees/mptrees-doc.pdf details="Package documentation"
RELOC/doc/metapost/mptrees/mptrees-doc.tex
runfiles size=12
@@ -227678,7 +227724,7 @@ runfiles size=12
catalogue-ctan /graphics/metapost/contrib/macros/mptrees
catalogue-license lppl1.3c
catalogue-topics diagram-maths maths probability graphics-mpost
-catalogue-version 24.02
+catalogue-version 24.04
name ms
category Package
@@ -267734,22 +267780,26 @@ catalogue-version 3.05
name prociagssymp
category Package
-revision 63242
+revision 70888
shortdesc Macros for IAG symposium papers
relocated 1
longdesc This package provides (re-)definitions of some LaTeX commands
longdesc that can be useful for the preparation of papers with the style
longdesc of the proceedings of symposia sponsored by the 'International
longdesc Association of Geodesy (IAG)' published by Springer-Verlag.
-containersize 2532
-containerchecksum f85716931c9fb7ac695db838d5e76160c485dac5f5f6a8f1c27cb7e375d78b385dce513103fdef30eca238fed78734661e192d712e74d948fbce0ccd209a1066
-doccontainersize 84172
-doccontainerchecksum 9d7e118fb0b704649176bb51f523d8a64ed11fb8e58cd1cafc7ffe3f4ad5005366cf518df9d7a4577b600524e19f089a4086d46f946668e82a1272b28c750f8f
-docfiles size=23
+containersize 1276
+containerchecksum 4e1fd3d41736b68b2ec934247f9c2694d38de335a900260551c38ba6ff14659a6a39ab23ac45e74ebd63d8de72e68fb6fa2011690e725acd0f0d857b6331b5f0
+doccontainersize 141996
+doccontainerchecksum d8aab92942e9b453991d0eede7fdc9ef86a89f3d71c4760a762ed9d4ffcab2d9506a106a551e5a755ee9e55d1a082a44dd403c6c80052dc399957423c00c088b
+docfiles size=38
RELOC/doc/latex/prociagssymp/README.txt details="Readme"
- RELOC/doc/latex/prociagssymp/TestprocIAGssymp.pdf details="Minimal user manual and example of use"
- RELOC/doc/latex/prociagssymp/TestprocIAGssymp.tex
-runfiles size=2
+ RELOC/doc/latex/prociagssymp/TESTprocIAGssymp.tex
+ RELOC/doc/latex/prociagssymp/procIAGssymp.pdf details="Package documentation"
+srccontainersize 3840
+srccontainerchecksum 0e9ef672b1a8b8f2416686fc51dba1d46d15860223a6a68db0d0e06e46a1c6eeb80683a652eb1402a619091a43d1077b499be1f91c7453e8abfb4fca2bdf11e4
+srcfiles size=3
+ RELOC/source/latex/prociagssymp/procIAGssymp.dtx
+runfiles size=1
RELOC/tex/latex/prociagssymp/procIAGssymp.sty
catalogue-ctan /macros/latex/contrib/prociagssymp
catalogue-license lppl
@@ -367462,10 +367512,10 @@ binfiles arch=universal-darwin size=13272
name xetex.windows
category TLCore
-revision 70757
+revision 70891
shortdesc windows files of xetex
-containersize 10533576
-containerchecksum 3fb075c8ef18a052f249979a6d4dddb17bc9877f97809ca7766bee8314f6bdc79814e7d07694ce9302e7ec6a7318ffac5dab6e0be05b986da6a5618dcac63834
+containersize 10481064
+containerchecksum ea66f072ba77692f490ede41c5410c5393d346b88a40022cff2fc1bcf6383e54f63d9e3e9b151bfea3d881905370174a1a02da2d63355ec4f2a1f8f8b759a38c
binfiles arch=windows size=11449
bin/windows/fc-cache.exe
bin/windows/fc-cat.exe
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index aedf3e4a87..c59450aca1 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-5240836c8f3dd51e90b106ee13dba7ca texlive.tlpdb
+34741681e900b2c326851869a4d01165 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index 2c3548b8de..cbb30a0769 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-5416cc8066cd90d8a5c743fa88849447091cc2bead65582c4c8ae3777b96e02cd18192a9198069b9a0afd07ae987c2144dc801077a4a1be0b8c92226ccaa7852 texlive.tlpdb
+6f6b78fbdb85488691d5b78975633e7643efb864a836e6ea8c9324e4dbd128189db6fbcb9f79c069a068f30b7f198ec4eaea4c769043ee6b35887bf795cb3f6b texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index 92172cba24..af8e907305 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
@@ -1,11 +1,11 @@
-----BEGIN PGP SIGNATURE-----
-iQEzBAEBCgAdFiEE2PL4YFeoV+QqiBBqTOGHfhlDjHAFAmYTMHMACgkQTOGHfhlD
-jHClSgf9Htn/YXnk+OeK8Za2P3ZTiEPwJA4mleFLjrftHXsFajiwnr2Uzj+44sHU
-ol+kmLBwrbDUP9ea8kaWldZGka9XaADVSdBfvmwAzjDA7lnoa3e3d/XGO0F1mSNR
-vLJmpUpdDZNHLfIEBxGvSY+IT/g4BprlZd8pXLREEBL1hXw1LukSYrYfSZLnR6Fs
-NRJkfvv/u9z9+Zd6+AMiHtStvb/e4s6r9ymME82ckUIPL77CHFnLJMiQgEva1HPH
-i/9IvMFvtGMQdr6CbL2X9dBd1RXbubc0ivMYsqmaw/KxSCcN75usbHiWadVXBZeH
-6xW34Mvtvry3/JwiqBzKiW+44Z2GFA==
-=hPxl
+iQEzBAEBCgAdFiEE2PL4YFeoV+QqiBBqTOGHfhlDjHAFAmYUgeoACgkQTOGHfhlD
+jHCqqQf8CrCyMjLA6mVgaz3M0n65R5c9Gf6jTD47Ff6OsMMBW3EhZsg95y/nn/SK
+iF99WoJaa9WfwvGiUbIFfe9e5/oeWUGwB+8UXjFBq9FMaI8bJNNpdM85F8mIfsB4
+50H8Avgvn5HTTj9S7ZAssHKV3250uudpfszAUaztDc9qt4KpR6z4Eeth9pUmvbfV
+FFbKSE8n8ORLgQn33q8gmOl4NDjSkIAXkinPgpB5lGjLcioLccq5QENiPaPm4+F6
+qfSg4qzwLHBIcZD0vwbwX35t+ybLzkWlBAbdOIGVBch6uTVuxA4lHjbZ2lnIB3hH
+x5xLkdQpmDVOtdhmJEt5hht3be7XHA==
+=JTq6
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index d9a66b7d00..7c6c204d38 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/timestamp b/timestamp
index 3ed07bee47..61cd20f479 100644
--- a/timestamp
+++ b/timestamp
@@ -2,4 +2,4 @@
# The source CTAN of this site's material:
dante.ctan.org
# The year-month-day-hour-minute of this site's material:
-2024-04-08-02-02
+2024-04-09-02-02