summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FILES.byname700
-rw-r--r--FILES.byname.gzbin2413808 -> 2413841 bytes
-rw-r--r--FILES.last07days937
-rw-r--r--macros/latex/contrib/bangorcsthesis/README2
-rw-r--r--macros/latex/contrib/bangorcsthesis/bangorcsthesis.dtx9
-rw-r--r--macros/latex/contrib/bangorcsthesis/bangorcsthesis.pdfbin298583 -> 298298 bytes
-rw-r--r--macros/latex/contrib/codebox/codebox-doc-en.pdfbin71350 -> 71369 bytes
-rw-r--r--macros/latex/contrib/codebox/codebox-doc-en.tex6
-rw-r--r--macros/latex/contrib/codebox/codebox.dtx53
-rw-r--r--macros/latex/contrib/codebox/codebox.pdfbin300058 -> 302033 bytes
-rw-r--r--macros/latex/contrib/datax/README.md22
-rw-r--r--macros/latex/contrib/datax/datax.dtx16
-rw-r--r--macros/latex/contrib/datax/datax.pdfbin189196 -> 202889 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx43
-rw-r--r--macros/latex/contrib/easybook/easybook.pdfbin575309 -> 575298 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.tex6
-rw-r--r--macros/latex/contrib/pascaltriangle/pascaltriangle.pdfbin165670 -> 165740 bytes
-rw-r--r--macros/latex/contrib/pascaltriangle/pascaltriangle.sty4
-rw-r--r--macros/latex/contrib/pascaltriangle/pascaltriangle.tex2
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md11
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/README.md2
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty27
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx7
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdfbin953379 -> 953495 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/hyperxmp-patches-tmp-ltx.sty2
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx73
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdfbin676300 -> 678500 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx7
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdfbin577785 -> 577968 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx7
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdfbin505418 -> 505748 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx5
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdfbin546853 -> 547004 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx5
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdfbin529883 -> 530048 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx5
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdfbin533076 -> 533242 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx5
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdfbin525259 -> 525438 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx5
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdfbin575283 -> 575459 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx5
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdfbin504512 -> 504678 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx7
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdfbin739053 -> 739166 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx7
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdfbin552088 -> 552450 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx7
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdfbin648865 -> 649022 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx7
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdfbin664425 -> 664573 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx7
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdfbin517264 -> 517424 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx7
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdfbin417279 -> 417490 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx7
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdfbin572674 -> 572871 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.pdfbin383080 -> 382883 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/pdflscape-ltx.sty2
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx7
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdfbin424541 -> 424940 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx9
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdfbin446113 -> 446303 bytes
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/transparent-ltx.sty2
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty9
-rw-r--r--macros/latex/contrib/proof-at-the-end/README.md204
-rw-r--r--macros/latex/contrib/proof-at-the-end/proof-at-the-end.dtx707
-rw-r--r--macros/latex/contrib/proof-at-the-end/proof-at-the-end.ins4
-rw-r--r--macros/latex/contrib/proof-at-the-end/proof-at-the-end.pdfbin248763 -> 347459 bytes
-rw-r--r--macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.pdfbin116402 -> 121561 bytes
-rw-r--r--macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.tex91
-rw-r--r--macros/latex/contrib/spbmark/spbmark.pdfbin71793 -> 74237 bytes
-rw-r--r--macros/latex/contrib/spbmark/spbmark.sty4
-rw-r--r--macros/latex/contrib/spbmark/spbmark.tex43
-rw-r--r--macros/latex/contrib/zref-clever/CHANGELOG.md26
-rw-r--r--macros/latex/contrib/zref-clever/MANIFEST.md48
-rw-r--r--macros/latex/contrib/zref-clever/zref-clever-code.pdfbin1069860 -> 1175713 bytes
-rw-r--r--macros/latex/contrib/zref-clever/zref-clever.dtx3350
-rw-r--r--macros/latex/contrib/zref-clever/zref-clever.pdfbin306402 -> 310423 bytes
-rw-r--r--macros/latex/contrib/zref-clever/zref-clever.tex133
-rw-r--r--macros/optex/README4
-rw-r--r--macros/optex/base/basic-macros.opm2
-rw-r--r--macros/optex/base/doc.opm2
-rw-r--r--macros/optex/base/fnotes.opm5
-rw-r--r--macros/optex/base/fonts-select.opm5
-rw-r--r--macros/optex/base/hyperlinks.opm24
-rw-r--r--macros/optex/base/languages.opm2
-rw-r--r--macros/optex/base/multicolumns.opm2
-rw-r--r--macros/optex/base/optex.ini2
-rw-r--r--macros/optex/base/optex.lua9
-rw-r--r--macros/optex/base/others.opm80
-rw-r--r--macros/optex/base/plain-macros.opm27
-rw-r--r--macros/optex/base/prefixed.opm10
-rw-r--r--macros/optex/base/references.opm46
-rw-r--r--macros/optex/base/sections.opm4
-rw-r--r--macros/optex/base/styles.opm4
-rw-r--r--macros/optex/base/unimath-codes.opm8
-rw-r--r--macros/optex/base/verbatim.opm2
-rw-r--r--macros/optex/doc/omls.tex7
-rw-r--r--macros/optex/doc/optex-doc.pdfbin1387160 -> 1399602 bytes
-rw-r--r--macros/optex/doc/optex-doc.tex2
-rw-r--r--macros/optex/doc/optex-math.tex9
-rw-r--r--macros/optex/doc/optex-techdoc.tex2
-rw-r--r--macros/optex/doc/optex-userdoc.tex19
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl9
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb122
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.md52
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha5122
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc14
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.xzbin2344124 -> 2342988 bytes
-rw-r--r--systems/win32/miktex/tm/packages/next/files.csv.lzmabin636274 -> 635157 bytes
-rw-r--r--systems/win32/miktex/tm/packages/next/pr.ini8
-rw-r--r--systems/win32/miktex/tm/packages/pr.ini8
-rw-r--r--timestamp2
114 files changed, 4388 insertions, 2710 deletions
diff --git a/FILES.byname b/FILES.byname
index 0fe0da4af6..7780714c29 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -5207,7 +5207,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
-2022/01/27 | 233279 | FILES.last07days
+2022/01/28 | 233004 | 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
@@ -184353,7 +184353,7 @@
2012/05/03 | 352839 | install/macros/latex/contrib/ydoc.tds.zip
2020/04/09 | 806385 | install/macros/latex/contrib/zhlipsum.tds.zip
2020/05/01 | 293478 | install/macros/latex/contrib/zhnumber.tds.zip
-2022/01/10 | 1433166 | install/macros/latex/contrib/zref-clever.tds.zip
+2022/01/28 | 1542110 | install/macros/latex/contrib/zref-clever.tds.zip
2020/10/09 | 728226 | install/macros/latex/contrib/zref.tds.zip
2022/01/12 | 36684397 | install/macros/latex-dev/latex-base-dev.tds.zip
2022/01/12 | 2792859 | install/macros/latex-dev/required/latex-amsmath-dev.tds.zip
@@ -202322,11 +202322,11 @@
2019/06/29 | 256076 | macros/latex/contrib/backnaur/backnaur.pdf
2019/06/18 | 1120 | macros/latex/contrib/backnaur/README
2019/06/29 | 252961 | macros/latex/contrib/backnaur.zip
-2021/11/12 | 261043 | macros/latex/contrib/bangorcsthesis/bangorcsthesis.dtx
+2022/01/28 | 261104 | macros/latex/contrib/bangorcsthesis/bangorcsthesis.dtx
2021/11/12 | 1260 | macros/latex/contrib/bangorcsthesis/bangorcsthesis.ins
-2021/11/12 | 298583 | macros/latex/contrib/bangorcsthesis/bangorcsthesis.pdf
-2021/11/12 | 7666 | macros/latex/contrib/bangorcsthesis/README
-2021/11/12 | 361677 | macros/latex/contrib/bangorcsthesis.zip
+2022/01/28 | 298298 | macros/latex/contrib/bangorcsthesis/bangorcsthesis.pdf
+2022/01/28 | 7665 | macros/latex/contrib/bangorcsthesis/README
+2022/01/28 | 361422 | macros/latex/contrib/bangorcsthesis.zip
2018/02/13 | 256338 | macros/latex/contrib/bangorexam/bangorexam.dtx
2017/07/04 | 908 | macros/latex/contrib/bangorexam/bangorexam.ins
2017/10/09 | 182901 | macros/latex/contrib/bangorexam/bangorexam.pdf
@@ -206542,17 +206542,17 @@
2015/06/01 | 12155 | macros/latex/contrib/cntperchap/cntperchap.sty
2015/06/01 | 1440 | macros/latex/contrib/cntperchap/README
2015/06/01 | 274186 | macros/latex/contrib/cntperchap.zip
-2022/01/04 | 289 | macros/latex/contrib/codebox/build.sh
-2022/01/04 | 71350 | macros/latex/contrib/codebox/codebox-doc-en.pdf
-2022/01/04 | 12351 | macros/latex/contrib/codebox/codebox-doc-en.tex
-2022/01/04 | 37215 | macros/latex/contrib/codebox/codebox.dtx
-2022/01/04 | 300058 | macros/latex/contrib/codebox/codebox.pdf
+2022/01/28 | 289 | macros/latex/contrib/codebox/build.sh
+2022/01/28 | 71369 | macros/latex/contrib/codebox/codebox-doc-en.pdf
+2022/01/28 | 12351 | macros/latex/contrib/codebox/codebox-doc-en.tex
+2022/01/28 | 37745 | macros/latex/contrib/codebox/codebox.dtx
+2022/01/28 | 302033 | macros/latex/contrib/codebox/codebox.pdf
2021/12/24 | 29262 | macros/latex/contrib/codebox/ctxdoc-en.cls
2021/12/26 | 122 | macros/latex/contrib/codebox/hellojava.java
2021/12/26 | 888 | macros/latex/contrib/codebox/hellopy.py
-2022/01/04 | 3274 | macros/latex/contrib/codebox/README.md
+2022/01/28 | 3274 | macros/latex/contrib/codebox/README.md
2021/12/26 | 104 | macros/latex/contrib/codebox/test.c
-2022/01/05 | 387959 | macros/latex/contrib/codebox.zip
+2022/01/28 | 390166 | macros/latex/contrib/codebox.zip
2010/03/30 | 46009 | macros/latex/contrib/codedoc/codedoc.cls
2010/03/30 | 598708 | macros/latex/contrib/codedoc/CodeDoc-manual.pdf
2010/03/30 | 156353 | macros/latex/contrib/codedoc/CodeDoc-manual.tex
@@ -207491,12 +207491,12 @@
2019/09/27 | 31751 | macros/latex/contrib/datatool/samples/sample-two-per-row.pdf
2019/09/27 | 1476 | macros/latex/contrib/datatool/samples/sample-two-per-row.tex
2019/09/27 | 2883204 | macros/latex/contrib/datatool.zip
-2021/09/22 | 8833 | macros/latex/contrib/datax/datax.dtx
-2021/09/22 | 1781 | macros/latex/contrib/datax/datax.ins
-2021/09/22 | 817 | macros/latex/contrib/datax/datax-logo.tikz
-2021/09/22 | 189196 | macros/latex/contrib/datax/datax.pdf
-2021/09/22 | 1632 | macros/latex/contrib/datax/README.md
-2021/09/22 | 193306 | macros/latex/contrib/datax.zip
+2022/01/27 | 8735 | macros/latex/contrib/datax/datax.dtx
+2022/01/27 | 1781 | macros/latex/contrib/datax/datax.ins
+2022/01/27 | 817 | macros/latex/contrib/datax/datax-logo.tikz
+2022/01/27 | 202889 | macros/latex/contrib/datax/datax.pdf
+2022/01/27 | 1642 | macros/latex/contrib/datax/README.md
+2022/01/28 | 201486 | macros/latex/contrib/datax.zip
2012/10/13 | 73208 | macros/latex/contrib/dateiliste/dateiliste.dtx
2012/10/13 | 2341 | macros/latex/contrib/dateiliste/dateiliste.ins
2012/10/13 | 262917 | macros/latex/contrib/dateiliste/dateiliste.pdf
@@ -208741,12 +208741,12 @@
2008/02/10 | 19110 | macros/latex/contrib/ean13isbn/License.txt
2021/01/24 | 422 | macros/latex/contrib/ean13isbn/README
2021/01/24 | 322624 | macros/latex/contrib/ean13isbn.zip
-2022/01/26 | 75857 | macros/latex/contrib/easybook/easybook.dtx
+2022/01/28 | 75867 | macros/latex/contrib/easybook/easybook.dtx
2022/01/02 | 2085 | macros/latex/contrib/easybook/easybook.ins
-2022/01/26 | 575309 | macros/latex/contrib/easybook/easybook.pdf
-2022/01/26 | 80422 | macros/latex/contrib/easybook/easybook.tex
+2022/01/28 | 575298 | macros/latex/contrib/easybook/easybook.pdf
+2022/01/28 | 80422 | macros/latex/contrib/easybook/easybook.tex
2021/11/17 | 795 | macros/latex/contrib/easybook/README.md
-2022/01/26 | 615825 | macros/latex/contrib/easybook.zip
+2022/01/28 | 615805 | macros/latex/contrib/easybook.zip
2009/06/17 | 82589 | macros/latex/contrib/easy/doc/docbib.pdf
2009/06/17 | 78378 | macros/latex/contrib/easy/doc/docbmat.pdf
2009/06/17 | 99132 | macros/latex/contrib/easy/doc/doceqn.pdf
@@ -219392,12 +219392,12 @@
2021/03/14 | 112 | macros/latex/contrib/parskip/parskip.tex
2021/03/14 | 408 | macros/latex/contrib/parskip/README.md
2021/03/14 | 407854 | macros/latex/contrib/parskip.zip
-2022/01/06 | 267 | macros/latex/contrib/pascaltriangle/build.sh
-2022/01/06 | 165670 | macros/latex/contrib/pascaltriangle/pascaltriangle.pdf
-2022/01/06 | 13857 | macros/latex/contrib/pascaltriangle/pascaltriangle.sty
-2022/01/06 | 10624 | macros/latex/contrib/pascaltriangle/pascaltriangle.tex
-2022/01/06 | 2808 | macros/latex/contrib/pascaltriangle/README.md
-2022/01/07 | 167533 | macros/latex/contrib/pascaltriangle.zip
+2022/01/28 | 267 | macros/latex/contrib/pascaltriangle/build.sh
+2022/01/28 | 165740 | macros/latex/contrib/pascaltriangle/pascaltriangle.pdf
+2022/01/28 | 13840 | macros/latex/contrib/pascaltriangle/pascaltriangle.sty
+2022/01/28 | 10624 | macros/latex/contrib/pascaltriangle/pascaltriangle.tex
+2022/01/28 | 2808 | macros/latex/contrib/pascaltriangle/README.md
+2022/01/28 | 167589 | macros/latex/contrib/pascaltriangle.zip
2019/09/04 | 12784 | macros/latex/contrib/pas-cours/doc/MiKTeX-screenshot01.png
2019/09/04 | 18893 | macros/latex/contrib/pas-cours/doc/MiKTeX-screenshot02.png
2019/09/04 | 18571 | macros/latex/contrib/pas-cours/doc/MiKTeX-screenshot03.png
@@ -220037,56 +220037,56 @@
2019/12/05 | 299397 | macros/latex/contrib/pdflscape/pdflscape.pdf
2019/12/05 | 170 | macros/latex/contrib/pdflscape/README.md
2019/12/06 | 301872 | macros/latex/contrib/pdflscape.zip
-2022/01/13 | 5995 | macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md
-2022/01/13 | 7728 | macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty
-2022/01/13 | 176911 | macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx
-2022/01/13 | 953379 | macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf
-2022/01/13 | 4691 | macros/latex/contrib/pdfmanagement-testphase/hyperxmp-patches-tmp-ltx.sty
-2022/01/13 | 69503 | macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx
-2022/01/13 | 676300 | macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf
-2022/01/13 | 28755 | macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx
-2022/01/13 | 577785 | macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf
-2022/01/13 | 17432 | macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx
-2022/01/13 | 505418 | macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf
-2022/01/13 | 26670 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx
-2022/01/13 | 546853 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf
-2022/01/13 | 18287 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx
-2022/01/13 | 529883 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf
-2022/01/13 | 20554 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx
-2022/01/13 | 533076 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf
-2022/01/13 | 67958 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx
-2022/01/13 | 739053 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf
-2022/01/13 | 26660 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx
-2022/01/13 | 525259 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf
-2022/01/13 | 27436 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx
-2022/01/13 | 575283 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf
-2022/01/13 | 22111 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx
-2022/01/13 | 504512 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf
-2022/01/13 | 28056 | macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx
-2022/01/13 | 552088 | macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf
-2022/01/13 | 63346 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx
-2022/01/13 | 648865 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf
-2022/01/13 | 31429 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx
-2022/01/13 | 664425 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf
-2022/01/13 | 15777 | macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx
-2022/01/13 | 517264 | macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf
-2022/01/13 | 6542 | macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx
-2022/01/13 | 417279 | macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf
-2022/01/13 | 4041 | macros/latex/contrib/pdfmanagement-testphase/l3ref-tmp.sty
-2022/01/13 | 19595 | macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx
-2022/01/13 | 572674 | macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf
-2022/01/13 | 4627 | macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.dtx
-2022/01/13 | 383080 | macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.pdf
-2022/01/13 | 1822 | macros/latex/contrib/pdfmanagement-testphase/pdflscape-ltx.sty
-2022/01/13 | 11526 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx
-2022/01/13 | 424541 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf
-2022/01/13 | 18064 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx
-2022/01/13 | 4884 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.ins
-2022/01/13 | 446113 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf
-2022/01/13 | 1200 | macros/latex/contrib/pdfmanagement-testphase/README.md
-2022/01/13 | 580 | macros/latex/contrib/pdfmanagement-testphase/transparent-ltx.sty
-2022/01/13 | 4617 | macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty
-2022/01/13 | 11131063 | macros/latex/contrib/pdfmanagement-testphase.zip
+2022/01/28 | 6315 | macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md
+2022/01/28 | 7863 | macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty
+2022/01/28 | 176832 | macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx
+2022/01/28 | 953495 | macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf
+2022/01/28 | 4691 | macros/latex/contrib/pdfmanagement-testphase/hyperxmp-patches-tmp-ltx.sty
+2022/01/28 | 70441 | macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx
+2022/01/28 | 678500 | macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf
+2022/01/28 | 28676 | macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx
+2022/01/28 | 577968 | macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf
+2022/01/28 | 17353 | macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx
+2022/01/28 | 505748 | macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf
+2022/01/28 | 26591 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx
+2022/01/28 | 547004 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf
+2022/01/28 | 18208 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx
+2022/01/28 | 530048 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf
+2022/01/28 | 20475 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx
+2022/01/28 | 533242 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf
+2022/01/28 | 67879 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx
+2022/01/28 | 739166 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf
+2022/01/28 | 26581 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx
+2022/01/28 | 525438 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf
+2022/01/28 | 27357 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx
+2022/01/28 | 575459 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf
+2022/01/28 | 22032 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx
+2022/01/28 | 504678 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf
+2022/01/28 | 27977 | macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx
+2022/01/28 | 552450 | macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf
+2022/01/28 | 63267 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx
+2022/01/28 | 649022 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf
+2022/01/28 | 31350 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx
+2022/01/28 | 664573 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf
+2022/01/28 | 15698 | macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx
+2022/01/28 | 517424 | macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf
+2022/01/28 | 6463 | macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx
+2022/01/28 | 417490 | macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf
+2022/01/28 | 4041 | macros/latex/contrib/pdfmanagement-testphase/l3ref-tmp.sty
+2022/01/28 | 19516 | macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx
+2022/01/28 | 572871 | macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf
+2022/01/28 | 4627 | macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.dtx
+2022/01/28 | 382883 | macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.pdf
+2022/01/28 | 1822 | macros/latex/contrib/pdfmanagement-testphase/pdflscape-ltx.sty
+2022/01/28 | 11447 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx
+2022/01/28 | 424940 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf
+2022/01/28 | 17984 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx
+2022/01/28 | 4884 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.ins
+2022/01/28 | 446303 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf
+2022/01/28 | 1200 | macros/latex/contrib/pdfmanagement-testphase/README.md
+2022/01/28 | 580 | macros/latex/contrib/pdfmanagement-testphase/transparent-ltx.sty
+2022/01/28 | 4863 | macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty
+2022/01/28 | 11136248 | macros/latex/contrib/pdfmanagement-testphase.zip
2011/05/05 | 156 | macros/latex/contrib/pdfmarginpar/doc/pdfmarginparexample.aux
2011/05/05 | 3368 | macros/latex/contrib/pdfmarginpar/doc/pdfmarginparexample.log
2011/05/05 | 64982 | macros/latex/contrib/pdfmarginpar/doc/pdfmarginparexample.pdf
@@ -221118,13 +221118,13 @@
2021/12/16 | 2832 | macros/latex/contrib/projlib/ProjLib.ins
2021/12/16 | 4348 | macros/latex/contrib/projlib/README.md
2021/12/16 | 772758 | macros/latex/contrib/projlib.zip
-2019/05/22 | 116402 | macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.pdf
-2019/05/22 | 8959 | macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.tex
-2019/05/22 | 49789 | macros/latex/contrib/proof-at-the-end/proof-at-the-end.dtx
-2019/05/22 | 961 | macros/latex/contrib/proof-at-the-end/proof-at-the-end.ins
-2019/05/22 | 248763 | macros/latex/contrib/proof-at-the-end/proof-at-the-end.pdf
-2019/05/22 | 20122 | macros/latex/contrib/proof-at-the-end/README.md
-2019/05/22 | 385483 | macros/latex/contrib/proof-at-the-end.zip
+2022/01/28 | 121561 | macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.pdf
+2022/01/28 | 9998 | macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.tex
+2022/01/28 | 72728 | macros/latex/contrib/proof-at-the-end/proof-at-the-end.dtx
+2022/01/28 | 961 | macros/latex/contrib/proof-at-the-end/proof-at-the-end.ins
+2022/01/28 | 347459 | macros/latex/contrib/proof-at-the-end/proof-at-the-end.pdf
+2022/01/28 | 30793 | macros/latex/contrib/proof-at-the-end/README.md
+2022/01/28 | 490723 | macros/latex/contrib/proof-at-the-end.zip
2019/04/25 | 32432 | macros/latex/contrib/proofread/example.pdf
2019/04/25 | 6572 | macros/latex/contrib/proofread/example.tex
2019/04/25 | 18943 | macros/latex/contrib/proofread/proofread.dtx
@@ -224069,10 +224069,10 @@
2016/10/06 | 136549 | macros/latex/contrib/spalign/spalign.pdf
2016/10/06 | 132943 | macros/latex/contrib/spalign.zip
2021/06/27 | 571 | macros/latex/contrib/spbmark/README.md
-2022/01/25 | 71793 | macros/latex/contrib/spbmark/spbmark.pdf
-2022/01/25 | 13454 | macros/latex/contrib/spbmark/spbmark.sty
-2022/01/25 | 11130 | macros/latex/contrib/spbmark/spbmark.tex
-2022/01/25 | 76732 | macros/latex/contrib/spbmark.zip
+2022/01/28 | 74237 | macros/latex/contrib/spbmark/spbmark.pdf
+2022/01/28 | 13535 | macros/latex/contrib/spbmark/spbmark.sty
+2022/01/28 | 11949 | macros/latex/contrib/spbmark/spbmark.tex
+2022/01/28 | 79485 | macros/latex/contrib/spbmark.zip
2010/10/31 | 241052 | macros/latex/contrib/sphack/sphack-doc.pdf
2010/10/31 | 4122 | macros/latex/contrib/sphack/sphack-doc.tex
2010/12/23 | 4230 | macros/latex/contrib/sphack/sphack.sty
@@ -233460,17 +233460,17 @@
2021/12/20 | 2573 | macros/latex/contrib/zref-check/zref-check.ins
2021/12/20 | 456837 | macros/latex/contrib/zref-check/zref-check.pdf
2021/12/20 | 2492 | macros/latex/contrib/zref-check/zref-check.tex
-2022/01/10 | 1544 | macros/latex/contrib/zref-clever/CHANGELOG.md
-2022/01/10 | 70 | macros/latex/contrib/zref-clever/DEPENDS.txt
-2022/01/10 | 13286 | macros/latex/contrib/zref-clever/MANIFEST.md
-2022/01/10 | 824 | macros/latex/contrib/zref-clever/README.md
-2022/01/10 | 1403089 | macros/latex/contrib/zref-clever.zip
-2022/01/10 | 1069860 | macros/latex/contrib/zref-clever/zref-clever-code.pdf
-2022/01/10 | 1486 | macros/latex/contrib/zref-clever/zref-clever-code.tex
-2022/01/10 | 255029 | macros/latex/contrib/zref-clever/zref-clever.dtx
-2022/01/10 | 3082 | macros/latex/contrib/zref-clever/zref-clever.ins
-2022/01/10 | 306402 | macros/latex/contrib/zref-clever/zref-clever.pdf
-2022/01/10 | 111819 | macros/latex/contrib/zref-clever/zref-clever.tex
+2022/01/28 | 2339 | macros/latex/contrib/zref-clever/CHANGELOG.md
+2022/01/28 | 70 | macros/latex/contrib/zref-clever/DEPENDS.txt
+2022/01/28 | 14300 | macros/latex/contrib/zref-clever/MANIFEST.md
+2022/01/28 | 824 | macros/latex/contrib/zref-clever/README.md
+2022/01/28 | 1509701 | macros/latex/contrib/zref-clever.zip
+2022/01/28 | 1175713 | macros/latex/contrib/zref-clever/zref-clever-code.pdf
+2022/01/28 | 1486 | macros/latex/contrib/zref-clever/zref-clever-code.tex
+2022/01/28 | 290639 | macros/latex/contrib/zref-clever/zref-clever.dtx
+2022/01/28 | 3082 | macros/latex/contrib/zref-clever/zref-clever.ins
+2022/01/28 | 310423 | macros/latex/contrib/zref-clever/zref-clever.pdf
+2022/01/28 | 117090 | macros/latex/contrib/zref-clever/zref-clever.tex
2020/10/09 | 581 | macros/latex/contrib/zref/README.md
2020/10/09 | 690321 | macros/latex/contrib/zref.zip
2020/10/09 | 195694 | macros/latex/contrib/zref/zref.dtx
@@ -236615,12 +236615,12 @@
2007/07/13 | 11462 | macros/omega/latex/contrib/tamil-omega/yudit/yudit.properties
2007/12/12 | 900761 | macros/omega/latex/contrib/tamil-omega.zip
2021/05/16 | 6139 | macros/optex/base/alloc.opm
-2021/08/16 | 5422 | macros/optex/base/basic-macros.opm
+2022/01/24 | 5439 | macros/optex/base/basic-macros.opm
2021/04/07 | 33294 | macros/optex/base/bib-iso690.opm
2021/04/07 | 5800 | macros/optex/base/bib-simple.opm
2021/05/16 | 13887 | macros/optex/base/cite-bib.opm
2021/07/16 | 18762 | macros/optex/base/colors.opm
-2021/07/16 | 14448 | macros/optex/base/doc.opm
+2022/01/13 | 14449 | macros/optex/base/doc.opm
2021/04/22 | 657 | macros/optex/base/f-adventor.opm
2021/07/07 | 9407 | macros/optex/base/fams-ini.opm
2021/04/22 | 1156 | macros/optex/base/f-antt.opm
@@ -236644,12 +236644,12 @@
2021/04/28 | 8821 | macros/optex/base/f-lmfonts.opm
2021/04/22 | 1200 | macros/optex/base/f-merriweather.opm
2021/04/27 | 1337 | macros/optex/base/f-newcm.opm
-2021/05/20 | 8931 | macros/optex/base/fnotes.opm
+2022/01/19 | 9000 | macros/optex/base/fnotes.opm
2021/01/07 | 4446 | macros/optex/base/fonts-catalog.opm
2021/05/16 | 9452 | macros/optex/base/fonts-opmac.opm
2021/08/05 | 1671 | macros/optex/base/fonts-preload.opm
2021/05/02 | 10066 | macros/optex/base/fonts-resize.opm
-2021/08/16 | 45915 | macros/optex/base/fonts-select.opm
+2021/09/24 | 45971 | macros/optex/base/fonts-select.opm
2021/04/22 | 694 | macros/optex/base/f-pagella.opm
2021/04/22 | 1515 | macros/optex/base/f-poltawski.opm
2021/04/27 | 2617 | macros/optex/base/f-roboto.opm
@@ -236664,11 +236664,11 @@
2021/07/16 | 9751 | macros/optex/base/hi-syntax.opm
2021/07/16 | 3014 | macros/optex/base/hisyntax-python.opm
2021/01/07 | 1566 | macros/optex/base/hisyntax-tex.opm
-2021/05/21 | 9828 | macros/optex/base/hyperlinks.opm
+2021/08/31 | 9966 | macros/optex/base/hyperlinks.opm
2021/03/29 | 11861 | macros/optex/base/hyphen-lan.opm
2021/08/02 | 12428 | macros/optex/base/if-macros.opm
2021/01/06 | 3270 | macros/optex/base/keyval.opm
-2021/05/23 | 9424 | macros/optex/base/languages.opm
+2022/01/14 | 9424 | macros/optex/base/languages.opm
2021/03/10 | 5218 | macros/optex/base/lists.opm
2021/01/11 | 2377 | macros/optex/base/logos.opm
2021/04/06 | 7398 | macros/optex/base/luatex-ini.opm
@@ -236676,34 +236676,34 @@
2021/07/18 | 6490 | macros/optex/base/maketoc.opm
2021/03/15 | 3770 | macros/optex/base/margins.opm
2021/04/20 | 13569 | macros/optex/base/mathclass.opm
-2021/08/16 | 44605 | macros/optex/base/math-macros.opm
+2021/09/15 | 44605 | macros/optex/base/math-macros.opm
2021/08/05 | 9694 | macros/optex/base/math-preload.opm
2021/08/16 | 11589 | macros/optex/base/math-unicode.opm
2021/04/25 | 12400 | macros/optex/base/more-macros.opm
-2021/05/20 | 4856 | macros/optex/base/multicolumns.opm
-2021/08/26 | 4127 | macros/optex/base/optex.ini
-2021/08/18 | 23073 | macros/optex/base/optex.lua
-2021/08/02 | 3841 | macros/optex/base/others.opm
+2022/01/13 | 4857 | macros/optex/base/multicolumns.opm
+2022/01/24 | 4127 | macros/optex/base/optex.ini
+2021/12/21 | 23464 | macros/optex/base/optex.lua
+2022/01/13 | 7116 | macros/optex/base/others.opm
2021/02/15 | 4624 | macros/optex/base/outlines.opm
2021/08/04 | 11206 | macros/optex/base/output.opm
2021/07/16 | 25543 | macros/optex/base/parameters.opm
2021/02/08 | 5319 | macros/optex/base/pdfuni-string.opm
-2021/04/09 | 13786 | macros/optex/base/plain-macros.opm
-2021/08/16 | 13702 | macros/optex/base/prefixed.opm
+2022/01/13 | 14183 | macros/optex/base/plain-macros.opm
+2022/01/13 | 13736 | macros/optex/base/prefixed.opm
2021/01/07 | 2203 | macros/optex/base/print-unimath.opm
-2021/07/20 | 3997 | macros/optex/base/references.opm
+2022/01/22 | 5289 | macros/optex/base/references.opm
2021/07/21 | 6240 | macros/optex/base/ref-file.opm
-2021/03/24 | 20821 | macros/optex/base/sections.opm
-2021/07/15 | 12909 | macros/optex/base/slides.opm
-2021/05/16 | 2752 | macros/optex/base/styles.opm
+2022/01/13 | 20808 | macros/optex/base/sections.opm
+2022/01/13 | 12909 | macros/optex/base/slides.opm
+2022/01/13 | 2754 | macros/optex/base/styles.opm
2021/08/04 | 27400 | macros/optex/base/table.opm
2021/04/13 | 122831 | macros/optex/base/uni-lcuc.opm
-2021/04/25 | 19640 | macros/optex/base/unimath-codes.opm
+2022/01/06 | 19820 | macros/optex/base/unimath-codes.opm
2021/01/31 | 241445 | macros/optex/base/unimath-table.opm
2021/04/30 | 16097 | macros/optex/base/usebib.opm
-2021/08/02 | 17054 | macros/optex/base/verbatim.opm
+2022/01/13 | 17055 | macros/optex/base/verbatim.opm
2020/12/05 | 9599 | macros/optex/demo/op-biblist.bib
-2021/05/19 | 3498 | macros/optex/demo/op-demo.tex
+2022/01/22 | 3498 | macros/optex/demo/op-demo.tex
2021/01/07 | 1192 | macros/optex/demo/op-letter-cs.tex
2021/01/07 | 573 | macros/optex/demo/op-letter-en.tex
2021/04/08 | 8265 | macros/optex/demo/op-mathalign.tex
@@ -236711,21 +236711,21 @@
2020/05/17 | 62385 | macros/optex/demo/op-slides-bg.png
2021/04/13 | 10355 | macros/optex/demo/op-slides.tex
2021/05/27 | 518 | macros/optex/doc/mte-doc.tex
-2021/07/21 | 34554 | macros/optex/doc/omls.tex
+2022/01/13 | 34625 | macros/optex/doc/omls.tex
2020/05/16 | 1460 | macros/optex/doc/optex.1
-2021/08/26 | 1387160 | macros/optex/doc/optex-doc.pdf
-2021/08/26 | 4476 | macros/optex/doc/optex-doc.tex
-2021/08/16 | 69152 | macros/optex/doc/optex-math.tex
-2021/07/16 | 8469 | macros/optex/doc/optex-techdoc.tex
-2021/07/21 | 87211 | macros/optex/doc/optex-userdoc.tex
+2022/01/24 | 1399602 | macros/optex/doc/optex-doc.pdf
+2022/01/24 | 4476 | macros/optex/doc/optex-doc.tex
+2021/08/27 | 69274 | macros/optex/doc/optex-math.tex
+2022/01/13 | 8477 | macros/optex/doc/optex-techdoc.tex
+2022/01/24 | 87535 | macros/optex/doc/optex-userdoc.tex
2021/05/02 | 1949 | macros/optex/pkg/emoji.opm
2021/05/27 | 21561 | macros/optex/pkg/mte.opm
2020/12/20 | 1087 | macros/optex/pkg/plain-at.opm
2020/11/11 | 85045 | macros/optex/pkg/qrcode.opm
2021/07/21 | 1318 | macros/optex/pkg/tikz.opm
2021/05/02 | 7597 | macros/optex/pkg/vlna.opm
-2021/08/26 | 6596 | macros/optex/README
-2021/08/26 | 2350520 | macros/optex.zip
+2022/01/24 | 6789 | macros/optex/README
+2022/01/28 | 2364657 | macros/optex.zip
2022/01/06 | 732 | macros/pdftex/mptopdf/doc/context/scripts/mkii/mptopdf.man
2022/01/06 | 4557 | macros/pdftex/mptopdf/scripts/context/perl/mptopdf.pl
2022/01/06 | 4608 | macros/pdftex/mptopdf/scripts/context/stubs/mswin/mptopdf.exe
@@ -278105,11 +278105,11 @@
2019/02/28 | 89944 | systems/texlive/tlnet/archive/acmconf.doc.r15878.tar.xz
2019/02/28 | 4192 | systems/texlive/tlnet/archive/acmconf.r15878.tar.xz
2019/02/28 | 18700 | systems/texlive/tlnet/archive/acmconf.source.r15878.tar.xz
-2022/01/05 | 1239136 | systems/texlive/tlnet/archive/acro.doc.r61488.tar.xz
+2022/01/28 | 1239228 | systems/texlive/tlnet/archive/acro.doc.r61762.tar.xz
2020/04/16 | 280324 | systems/texlive/tlnet/archive/acronym.doc.r54758.tar.xz
2020/04/16 | 4980 | systems/texlive/tlnet/archive/acronym.r54758.tar.xz
2020/04/16 | 17392 | systems/texlive/tlnet/archive/acronym.source.r54758.tar.xz
-2022/01/05 | 43816 | systems/texlive/tlnet/archive/acro.r61488.tar.xz
+2022/01/28 | 43856 | systems/texlive/tlnet/archive/acro.r61762.tar.xz
2022/01/24 | 157936 | systems/texlive/tlnet/archive/acroterm.doc.r61719.tar.xz
2022/01/24 | 1408 | systems/texlive/tlnet/archive/acroterm.r61719.tar.xz
2022/01/24 | 3828 | systems/texlive/tlnet/archive/acroterm.source.r61719.tar.xz
@@ -280905,9 +280905,9 @@
2019/02/28 | 233644 | systems/texlive/tlnet/archive/dateiliste.doc.r27974.tar.xz
2019/02/28 | 4264 | systems/texlive/tlnet/archive/dateiliste.r27974.tar.xz
2019/02/28 | 22632 | systems/texlive/tlnet/archive/dateiliste.source.r27974.tar.xz
-2019/02/28 | 94372 | systems/texlive/tlnet/archive/datenumber.doc.r18951.tar.xz
-2019/02/28 | 3328 | systems/texlive/tlnet/archive/datenumber.r18951.tar.xz
-2019/02/28 | 5664 | systems/texlive/tlnet/archive/datenumber.source.r18951.tar.xz
+2022/01/28 | 307264 | systems/texlive/tlnet/archive/datenumber.doc.r61761.tar.xz
+2022/01/28 | 3308 | systems/texlive/tlnet/archive/datenumber.r61761.tar.xz
+2022/01/28 | 5704 | systems/texlive/tlnet/archive/datenumber.source.r61761.tar.xz
2022/01/24 | 114964 | systems/texlive/tlnet/archive/datestamp.doc.r61719.tar.xz
2022/01/24 | 1552 | systems/texlive/tlnet/archive/datestamp.r61719.tar.xz
2022/01/24 | 3452 | systems/texlive/tlnet/archive/datestamp.source.r61719.tar.xz
@@ -281048,9 +281048,9 @@
2022/01/18 | 590640 | systems/texlive/tlnet/archive/dbshow.doc.r61634.tar.xz
2022/01/18 | 7092 | systems/texlive/tlnet/archive/dbshow.r61634.tar.xz
2022/01/18 | 29152 | systems/texlive/tlnet/archive/dbshow.source.r61634.tar.xz
-2021/09/04 | 286236 | systems/texlive/tlnet/archive/dccpaper.doc.r60413.tar.xz
-2021/09/04 | 24824 | systems/texlive/tlnet/archive/dccpaper.r60413.tar.xz
-2021/09/04 | 26548 | systems/texlive/tlnet/archive/dccpaper.source.r60413.tar.xz
+2022/01/28 | 286284 | systems/texlive/tlnet/archive/dccpaper.doc.r61763.tar.xz
+2022/01/28 | 24808 | systems/texlive/tlnet/archive/dccpaper.r61763.tar.xz
+2022/01/28 | 26584 | systems/texlive/tlnet/archive/dccpaper.source.r61763.tar.xz
2019/02/28 | 927712 | systems/texlive/tlnet/archive/dcpic.doc.r30206.tar.xz
2019/02/28 | 13996 | systems/texlive/tlnet/archive/dcpic.r30206.tar.xz
2019/09/02 | 284556 | systems/texlive/tlnet/archive/ddphonism.doc.r52009.tar.xz
@@ -285264,9 +285264,9 @@
2019/02/28 | 750376 | systems/texlive/tlnet/archive/makeshape.doc.r28973.tar.xz
2019/02/28 | 1888 | systems/texlive/tlnet/archive/makeshape.r28973.tar.xz
2019/02/28 | 18928 | systems/texlive/tlnet/archive/makeshape.source.r28973.tar.xz
-2021/08/24 | 453160 | systems/texlive/tlnet/archive/mandi.doc.r60311.tar.xz
-2021/08/24 | 11264 | systems/texlive/tlnet/archive/mandi.r60311.tar.xz
-2021/08/24 | 28416 | systems/texlive/tlnet/archive/mandi.source.r60311.tar.xz
+2022/01/28 | 483900 | systems/texlive/tlnet/archive/mandi.doc.r61764.tar.xz
+2022/01/28 | 11988 | systems/texlive/tlnet/archive/mandi.r61764.tar.xz
+2022/01/28 | 30480 | systems/texlive/tlnet/archive/mandi.source.r61764.tar.xz
2020/04/12 | 249564 | systems/texlive/tlnet/archive/manfnt.doc.r54684.tar.xz
2019/02/28 | 25916 | systems/texlive/tlnet/archive/manfnt-font.r45777.tar.xz
2020/04/12 | 1420 | systems/texlive/tlnet/archive/manfnt.r54684.tar.xz
@@ -288566,9 +288566,9 @@
2021/06/26 | 250232 | systems/texlive/tlnet/archive/siunits.doc.r59702.tar.xz
2021/06/26 | 6040 | systems/texlive/tlnet/archive/siunits.r59702.tar.xz
2021/06/26 | 34532 | systems/texlive/tlnet/archive/siunits.source.r59702.tar.xz
-2022/01/27 | 1207128 | systems/texlive/tlnet/archive/siunitx.doc.r61746.tar.xz
-2022/01/27 | 62664 | systems/texlive/tlnet/archive/siunitx.r61746.tar.xz
-2022/01/27 | 108344 | systems/texlive/tlnet/archive/siunitx.source.r61746.tar.xz
+2022/01/28 | 1207136 | systems/texlive/tlnet/archive/siunitx.doc.r61765.tar.xz
+2022/01/28 | 62656 | systems/texlive/tlnet/archive/siunitx.r61765.tar.xz
+2022/01/28 | 108388 | systems/texlive/tlnet/archive/siunitx.source.r61765.tar.xz
2022/01/24 | 200108 | systems/texlive/tlnet/archive/skak.doc.r61719.tar.xz
2019/02/28 | 316212 | systems/texlive/tlnet/archive/skaknew.doc.r20031.tar.xz
2019/02/28 | 160064 | systems/texlive/tlnet/archive/skaknew.r20031.tar.xz
@@ -289445,7 +289445,7 @@
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r55172.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r55172.tar.xz
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r55172.tar.xz
-2022/01/27 | 403020 | systems/texlive/tlnet/archive/texlive-scripts.doc.r61743.tar.xz
+2022/01/28 | 403116 | systems/texlive/tlnet/archive/texlive-scripts.doc.r61757.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
@@ -289469,7 +289469,7 @@
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r55172.tar.xz
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r55172.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r55172.tar.xz
-2022/01/27 | 108400 | systems/texlive/tlnet/archive/texlive-scripts.r61743.tar.xz
+2022/01/28 | 108396 | systems/texlive/tlnet/archive/texlive-scripts.r61757.tar.xz
2021/02/25 | 572 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r57908.tar.xz
2021/04/12 | 36308 | systems/texlive/tlnet/archive/texlive-scripts.win32.r58829.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r55172.tar.xz
@@ -289940,8 +289940,8 @@
2020/05/25 | 540 | systems/texlive/tlnet/archive/tkz-doc.r55265.tar.xz
2022/01/21 | 1067668 | systems/texlive/tlnet/archive/tkz-euclide.doc.r61668.tar.xz
2022/01/21 | 37244 | systems/texlive/tlnet/archive/tkz-euclide.r61668.tar.xz
-2022/01/27 | 745472 | systems/texlive/tlnet/archive/tkz-fct.doc.r61747.tar.xz
-2022/01/27 | 4736 | systems/texlive/tlnet/archive/tkz-fct.r61747.tar.xz
+2022/01/28 | 745540 | systems/texlive/tlnet/archive/tkz-fct.doc.r61766.tar.xz
+2022/01/28 | 4744 | systems/texlive/tlnet/archive/tkz-fct.r61766.tar.xz
2021/01/22 | 325056 | systems/texlive/tlnet/archive/tkz-graph.doc.r57484.tar.xz
2021/01/22 | 6216 | systems/texlive/tlnet/archive/tkz-graph.r57484.tar.xz
2022/01/24 | 431372 | systems/texlive/tlnet/archive/tkz-orm.doc.r61719.tar.xz
@@ -291245,16 +291245,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
2021/12/06 | 105168 | systems/texlive/tlnet/install-tl
-2022/01/27 | 6812406 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2022/01/27 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2022/01/27 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2022/01/28 | 6812778 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2022/01/28 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2022/01/28 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2021/04/11 | 4945 | systems/texlive/tlnet/install-tl-windows.bat
-2022/01/27 | 20873395 | systems/texlive/tlnet/install-tl-windows.exe
-2022/01/27 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2022/01/27 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2022/01/27 | 25632153 | systems/texlive/tlnet/install-tl.zip
-2022/01/27 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2022/01/27 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2022/01/28 | 20876635 | systems/texlive/tlnet/install-tl-windows.exe
+2022/01/28 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2022/01/28 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2022/01/28 | 25632147 | systems/texlive/tlnet/install-tl.zip
+2022/01/28 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2022/01/28 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2021/04/01 | 1229 | systems/texlive/tlnet/README.md
2021/04/01 | 0 | systems/texlive/tlnet/TEXLIVE_2021
2021/07/03 | 7181 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
@@ -291264,7 +291264,7 @@
2021/07/03 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
2022/01/12 | 49482 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
-2022/01/26 | 7384 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2022/01/27 | 7398 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2020/04/15 | 223687 | 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
@@ -291306,12 +291306,12 @@
2021/05/16 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2021/12/21 | 5429 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2021/12/21 | 27582 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2022/01/27 | 17090488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2022/01/27 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2022/01/28 | 17090530 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2022/01/28 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2021/12/21 | 86654 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2022/01/27 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2022/01/27 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2022/01/27 | 2344124 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2022/01/28 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2022/01/28 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2022/01/28 | 2342988 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2021/12/21 | 58848 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2021/12/21 | 42112 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2021/12/21 | 16130 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -296390,7 +296390,7 @@
2020/10/03 | 318630 | systems/win32/miktex/tm/packages/filehook.tar.lzma
2012/12/04 | 924573 | systems/win32/miktex/tm/packages/fileinfo.tar.lzma
2011/09/21 | 281409 | systems/win32/miktex/tm/packages/filemod.tar.lzma
-2022/01/27 | 633491 | systems/win32/miktex/tm/packages/files.csv.lzma
+2022/01/28 | 633491 | systems/win32/miktex/tm/packages/files.csv.lzma
2001/05/14 | 5617 | systems/win32/miktex/tm/packages/finbib.tar.lzma
2015/10/20 | 44379 | systems/win32/miktex/tm/packages/findhyph.tar.lzma
2011/10/21 | 89323 | systems/win32/miktex/tm/packages/fink.tar.lzma
@@ -297902,9 +297902,9 @@
2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma
2021/12/09 | 39714 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma
2021/12/09 | 43639 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/01/27 | 262772 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2022/01/27 | 1409873 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2022/01/27 | 1306005 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2022/01/28 | 262789 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2022/01/28 | 1410657 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2022/01/28 | 1306742 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2021/12/09 | 13527 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma
2021/12/09 | 14417 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma
2016/07/15 | 35914 | systems/win32/miktex/tm/packages/mil3.tar.lzma
@@ -298128,189 +298128,189 @@
2018/04/09 | 400132 | systems/win32/miktex/tm/packages/newunicodechar.tar.lzma
2011/09/19 | 101312 | systems/win32/miktex/tm/packages/newvbtm.tar.lzma
2021/03/17 | 232249 | systems/win32/miktex/tm/packages/newverbs.tar.lzma
-2022/01/27 | 636274 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2022/01/27 | 51534 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2022/01/27 | 57342 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2022/01/27 | 959840 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2022/01/27 | 1087178 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2022/01/27 | 28756 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2022/01/27 | 31551 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2022/01/27 | 30171 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2022/01/27 | 35242 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2022/01/27 | 56673 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2022/01/27 | 65086 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2022/01/27 | 86664 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
-2022/01/27 | 95332 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2022/01/27 | 68780 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2022/01/27 | 77065 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2022/01/27 | 27269 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2022/01/27 | 31336 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2022/01/27 | 332746 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
-2022/01/27 | 394300 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2022/01/27 | 32958 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2022/01/27 | 37097 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2022/01/27 | 51500 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2022/01/27 | 57257 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2022/01/27 | 256459 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2022/01/27 | 281545 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2022/01/27 | 179828 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
-2022/01/27 | 196134 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2022/01/27 | 54991 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2022/01/27 | 62425 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2022/01/27 | 21321 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2022/01/27 | 24090 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2022/01/27 | 470363 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2022/01/27 | 46096 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2022/01/27 | 52043 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2022/01/27 | 285741 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2022/01/27 | 326302 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2022/01/27 | 41390 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2022/01/27 | 45772 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2022/01/27 | 120221 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2022/01/27 | 135130 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2022/01/27 | 1304429 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
-2022/01/27 | 1452739 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2022/01/27 | 99701 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2022/01/27 | 113014 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2022/01/27 | 43669 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2022/01/27 | 48844 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2022/01/27 | 25103 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2022/01/27 | 28555 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2022/01/27 | 57029 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2022/01/27 | 63366 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2022/01/27 | 136036 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2022/01/27 | 155303 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2022/01/27 | 73463 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2022/01/27 | 79038 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2022/01/27 | 71990 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2022/01/27 | 81530 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2022/01/27 | 259313 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2022/01/27 | 296107 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2022/01/27 | 22154 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
-2022/01/27 | 25063 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2022/01/27 | 97082 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2022/01/27 | 112663 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2022/01/27 | 64575 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2022/01/27 | 73279 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2022/01/27 | 96924 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2022/01/27 | 115646 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2022/01/27 | 38469 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2022/01/27 | 43821 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2022/01/27 | 483936 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
-2022/01/27 | 566721 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2022/01/27 | 152075 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
-2022/01/27 | 168843 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2022/01/27 | 95485 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2022/01/27 | 109561 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2022/01/27 | 16500 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
-2022/01/27 | 18359 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2022/01/27 | 28321 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2022/01/27 | 30512 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2022/01/27 | 630239 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2022/01/27 | 681612 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2022/01/27 | 532455 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2022/01/27 | 599013 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2022/01/27 | 477925 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
-2022/01/27 | 527828 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2022/01/27 | 93942 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2022/01/27 | 103437 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2022/01/27 | 1731303 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2022/01/27 | 1992376 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2022/01/27 | 68014 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2022/01/27 | 74060 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2022/01/27 | 27698 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2022/01/27 | 32155 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2022/01/27 | 7758 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2022/01/27 | 8782 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2022/01/27 | 199664 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2022/01/27 | 216349 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2022/01/27 | 251406 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2022/01/27 | 286565 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2022/01/27 | 99181 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2022/01/27 | 104676 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2022/01/27 | 126844 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2022/01/27 | 139123 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2022/01/27 | 246042 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2022/01/27 | 276121 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2022/01/27 | 199684 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2022/01/27 | 181570 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2022/01/27 | 68653 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2022/01/27 | 76281 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2022/01/27 | 31398 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2022/01/27 | 35174 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2022/01/27 | 38565 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2022/01/27 | 43927 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2022/01/27 | 43453 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2022/01/27 | 47910 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2022/01/27 | 45893 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2022/01/27 | 52310 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2022/01/27 | 198988 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
-2022/01/27 | 213500 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2022/01/27 | 36057 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
-2022/01/27 | 41265 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2022/01/27 | 753219 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2022/01/27 | 824779 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2022/01/27 | 200082 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2022/01/27 | 202745 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2022/01/27 | 210221 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2022/01/27 | 244845 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2022/01/27 | 78966 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2022/01/27 | 88163 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2022/01/27 | 1180763 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2022/01/27 | 1322450 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2022/01/27 | 20194 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2022/01/27 | 23947 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2022/01/27 | 31572 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2022/01/27 | 37390 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2022/01/27 | 64735 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2022/01/27 | 72883 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2022/01/27 | 50850 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2022/01/27 | 58659 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2022/01/27 | 691229 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
-2022/01/27 | 752397 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
-2022/01/27 | 1355963 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2022/01/27 | 1499385 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2022/01/27 | 42768 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
-2022/01/27 | 52550 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2022/01/27 | 57445 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2022/01/27 | 63757 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2022/01/27 | 25537 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2022/01/27 | 27502 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2022/01/27 | 16580 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2022/01/27 | 18483 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2022/01/27 | 64578 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2022/01/27 | 70971 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2022/01/27 | 157600 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2022/01/27 | 172572 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2022/01/27 | 58707 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2022/01/27 | 67223 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2022/01/27 | 101458 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
-2022/01/27 | 109142 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2022/01/27 | 2672855 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
-2022/01/27 | 2797477 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2022/01/27 | 55339 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
-2022/01/27 | 62337 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2022/01/27 | 37118 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2022/01/27 | 41208 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2022/01/27 | 28695 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2022/01/27 | 34032 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2022/01/27 | 67763 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2022/01/27 | 71915 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2022/01/27 | 317773 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2022/01/27 | 355357 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2022/01/27 | 55735 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
-2022/01/27 | 57403 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2022/01/27 | 591459 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2022/01/27 | 629342 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2022/01/27 | 39737 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2022/01/27 | 43698 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/01/27 | 262667 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2022/01/27 | 1410596 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2022/01/27 | 1305915 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2022/01/27 | 13513 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2022/01/27 | 14411 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2022/01/28 | 635157 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2022/01/28 | 51547 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2022/01/28 | 57353 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2022/01/28 | 960374 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2022/01/28 | 1086642 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2022/01/28 | 28766 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2022/01/28 | 31538 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2022/01/28 | 30181 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2022/01/28 | 35237 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2022/01/28 | 56850 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2022/01/28 | 65078 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2022/01/28 | 86495 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2022/01/28 | 95214 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2022/01/28 | 68737 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2022/01/28 | 77068 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2022/01/28 | 27252 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2022/01/28 | 31335 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2022/01/28 | 332530 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2022/01/28 | 393910 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2022/01/28 | 32963 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2022/01/28 | 37112 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2022/01/28 | 51411 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2022/01/28 | 57209 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2022/01/28 | 256593 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2022/01/28 | 281919 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2022/01/28 | 179944 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2022/01/28 | 196135 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2022/01/28 | 54998 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2022/01/28 | 62445 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2022/01/28 | 21310 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2022/01/28 | 24077 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2022/01/28 | 478896 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2022/01/28 | 46109 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2022/01/28 | 52003 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2022/01/28 | 285552 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2022/01/28 | 326179 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2022/01/28 | 41387 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2022/01/28 | 45733 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2022/01/28 | 120229 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2022/01/28 | 134989 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2022/01/28 | 1300069 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2022/01/28 | 1452954 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2022/01/28 | 99696 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2022/01/28 | 113011 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2022/01/28 | 43650 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2022/01/28 | 48820 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2022/01/28 | 25128 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2022/01/28 | 28582 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2022/01/28 | 57011 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2022/01/28 | 63364 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2022/01/28 | 135904 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2022/01/28 | 155441 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2022/01/28 | 73652 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2022/01/28 | 79061 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2022/01/28 | 72005 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2022/01/28 | 81505 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2022/01/28 | 259150 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2022/01/28 | 296123 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2022/01/28 | 22157 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2022/01/28 | 25079 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2022/01/28 | 97051 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2022/01/28 | 112666 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2022/01/28 | 64539 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2022/01/28 | 73204 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2022/01/28 | 96824 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2022/01/28 | 115635 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2022/01/28 | 38478 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2022/01/28 | 43812 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2022/01/28 | 484671 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2022/01/28 | 565707 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2022/01/28 | 152020 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2022/01/28 | 168796 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2022/01/28 | 95476 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2022/01/28 | 109548 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2022/01/28 | 16509 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2022/01/28 | 18376 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2022/01/28 | 28337 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2022/01/28 | 30558 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2022/01/28 | 630634 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2022/01/28 | 682181 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2022/01/28 | 532415 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2022/01/28 | 598773 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2022/01/28 | 477696 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2022/01/28 | 528104 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2022/01/28 | 94009 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2022/01/28 | 103410 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2022/01/28 | 1732204 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2022/01/28 | 2006600 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2022/01/28 | 68018 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2022/01/28 | 74118 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2022/01/28 | 27786 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2022/01/28 | 32080 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2022/01/28 | 7757 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2022/01/28 | 8783 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2022/01/28 | 199422 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2022/01/28 | 216595 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2022/01/28 | 251250 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2022/01/28 | 286567 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2022/01/28 | 99226 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2022/01/28 | 104697 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2022/01/28 | 126864 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2022/01/28 | 139184 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2022/01/28 | 254845 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2022/01/28 | 286069 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2022/01/28 | 199791 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2022/01/28 | 181556 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2022/01/28 | 68530 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2022/01/28 | 76200 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2022/01/28 | 31412 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2022/01/28 | 35179 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2022/01/28 | 38567 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2022/01/28 | 43945 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2022/01/28 | 43428 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2022/01/28 | 47984 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2022/01/28 | 45927 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2022/01/28 | 52323 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2022/01/28 | 199168 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2022/01/28 | 213132 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2022/01/28 | 36059 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2022/01/28 | 41237 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2022/01/28 | 753733 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2022/01/28 | 824418 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2022/01/28 | 200154 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2022/01/28 | 203064 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2022/01/28 | 209862 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2022/01/28 | 244997 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2022/01/28 | 78982 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2022/01/28 | 88150 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2022/01/28 | 1181080 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2022/01/28 | 1322845 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2022/01/28 | 20190 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2022/01/28 | 23937 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2022/01/28 | 31573 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2022/01/28 | 37378 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2022/01/28 | 64692 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2022/01/28 | 72889 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2022/01/28 | 50821 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2022/01/28 | 58644 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2022/01/28 | 691859 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
+2022/01/28 | 752445 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2022/01/28 | 1355173 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2022/01/28 | 1499490 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2022/01/28 | 42763 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2022/01/28 | 52514 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2022/01/28 | 57561 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2022/01/28 | 63749 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2022/01/28 | 25480 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2022/01/28 | 27461 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2022/01/28 | 16569 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2022/01/28 | 18492 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2022/01/28 | 64501 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2022/01/28 | 70973 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2022/01/28 | 157565 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2022/01/28 | 172637 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2022/01/28 | 58727 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2022/01/28 | 67221 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2022/01/28 | 101559 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2022/01/28 | 109308 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2022/01/28 | 2674148 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2022/01/28 | 2799000 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2022/01/28 | 55198 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2022/01/28 | 62352 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2022/01/28 | 37132 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2022/01/28 | 41214 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2022/01/28 | 28702 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2022/01/28 | 34051 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2022/01/28 | 67890 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2022/01/28 | 71841 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2022/01/28 | 317512 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2022/01/28 | 355066 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2022/01/28 | 55753 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2022/01/28 | 57423 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2022/01/28 | 591257 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2022/01/28 | 629384 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2022/01/28 | 39323 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2022/01/28 | 43566 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2022/01/28 | 262686 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2022/01/28 | 1411214 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2022/01/28 | 1306402 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2022/01/28 | 13510 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2022/01/28 | 14408 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
2019/03/12 | 1412 | systems/win32/miktex/tm/packages/nextpage.tar.lzma
-2022/01/27 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2022/01/28 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
2018/07/06 | 145915 | systems/win32/miktex/tm/packages/nexus-otf.tar.lzma
2017/03/30 | 191149 | systems/win32/miktex/tm/packages/nfssext-cfr.tar.lzma
2012/12/20 | 612251 | systems/win32/miktex/tm/packages/nicefilelist.tar.lzma
@@ -298757,7 +298757,7 @@
2020/10/20 | 342254 | systems/win32/miktex/tm/packages/preview.tar.lzma
2019/06/20 | 375963 | systems/win32/miktex/tm/packages/prftree.tar.lzma
2021/04/23 | 274028 | systems/win32/miktex/tm/packages/principia.tar.lzma
-2022/01/27 | 920 | systems/win32/miktex/tm/packages/pr.ini
+2022/01/28 | 920 | systems/win32/miktex/tm/packages/pr.ini
2010/09/27 | 248469 | systems/win32/miktex/tm/packages/printlen.tar.lzma
2008/06/17 | 77313 | systems/win32/miktex/tm/packages/proba.tar.lzma
2017/07/12 | 988486 | systems/win32/miktex/tm/packages/probsoln.tar.lzma
@@ -300501,7 +300501,7 @@
2004/06/04 | 404 | tds/tds.sed
2004/06/23 | 65418 | tds/tds.tex
2019/05/29 | 304264 | tds.zip
-2022/01/28 | 186 | timestamp
+2022/01/29 | 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 9c01d74f6c..18d196dd1d 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index b0cb6afd41..4f892f535e 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,323 +1,433 @@
-2022/01/27 | 99701 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2022/01/28 | 9998 | macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.tex
+2022/01/28 | 99696 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2022/01/28 | 99226 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2022/01/28 | 97051 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2022/01/28 | 96824 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2022/01/28 | 961 | macros/latex/contrib/proof-at-the-end/proof-at-the-end.ins
+2022/01/28 | 960374 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2022/01/28 | 95476 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2022/01/28 | 953495 | macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf
+2022/01/28 | 95214 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2022/01/28 | 94009 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2022/01/28 | 920 | systems/win32/miktex/tm/packages/pr.ini
+2022/01/28 | 88150 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2022/01/28 | 8783 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2022/01/28 | 86495 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2022/01/28 | 824 | macros/latex/contrib/zref-clever/README.md
+2022/01/28 | 824418 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2022/01/28 | 81505 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2022/01/28 | 80422 | macros/latex/contrib/easybook/easybook.tex
+2022/01/28 | 79485 | macros/latex/contrib/spbmark.zip
+2022/01/28 | 79061 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2022/01/28 | 78982 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2022/01/28 | 7863 | macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty
+2022/01/28 | 7757 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2022/01/28 | 77068 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2022/01/28 | 7665 | macros/latex/contrib/bangorcsthesis/README
+2022/01/28 | 76200 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2022/01/28 | 75867 | macros/latex/contrib/easybook/easybook.dtx
+2022/01/28 | 753733 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2022/01/28 | 752445 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2022/01/28 | 745540 | systems/texlive/tlnet/archive/tkz-fct.doc.r61766.tar.xz
+2022/01/28 | 74237 | macros/latex/contrib/spbmark/spbmark.pdf
+2022/01/28 | 74118 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2022/01/28 | 739166 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf
+2022/01/28 | 73652 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2022/01/28 | 73204 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2022/01/28 | 72889 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2022/01/28 | 72728 | macros/latex/contrib/proof-at-the-end/proof-at-the-end.dtx
+2022/01/28 | 72005 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2022/01/28 | 71841 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2022/01/28 | 71369 | macros/latex/contrib/codebox/codebox-doc-en.pdf
+2022/01/28 | 70 | macros/latex/contrib/zref-clever/DEPENDS.txt
+2022/01/28 | 70973 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2022/01/28 | 70441 | macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx
+2022/01/28 | 691859 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
+2022/01/28 | 68737 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2022/01/28 | 68530 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2022/01/28 | 682181 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2022/01/28 | 6812778 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2022/01/28 | 68018 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2022/01/28 | 67890 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2022/01/28 | 67879 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx
+2022/01/28 | 678500 | macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf
+2022/01/28 | 67221 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2022/01/28 | 664573 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf
+2022/01/28 | 65078 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2022/01/28 | 649022 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf
+2022/01/28 | 64692 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2022/01/28 | 6463 | macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx
+2022/01/28 | 64539 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2022/01/28 | 64501 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2022/01/28 | 63749 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2022/01/28 | 635157 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2022/01/28 | 63364 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2022/01/28 | 633491 | systems/win32/miktex/tm/packages/files.csv.lzma
+2022/01/28 | 63267 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx
+2022/01/28 | 6315 | macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md
+2022/01/28 | 630634 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2022/01/28 | 629384 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2022/01/28 | 62656 | systems/texlive/tlnet/archive/siunitx.r61765.tar.xz
+2022/01/28 | 62445 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2022/01/28 | 62352 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2022/01/28 | 615805 | macros/latex/contrib/easybook.zip
+2022/01/28 | 598773 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2022/01/28 | 591257 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2022/01/28 | 58727 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2022/01/28 | 58644 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2022/01/28 | 580 | macros/latex/contrib/pdfmanagement-testphase/transparent-ltx.sty
+2022/01/28 | 577968 | macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf
+2022/01/28 | 57561 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2022/01/28 | 575459 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf
+2022/01/28 | 575298 | macros/latex/contrib/easybook/easybook.pdf
+2022/01/28 | 57423 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2022/01/28 | 57353 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2022/01/28 | 572871 | macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf
+2022/01/28 | 57209 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2022/01/28 | 5704 | systems/texlive/tlnet/archive/datenumber.source.r61761.tar.xz
+2022/01/28 | 57011 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2022/01/28 | 56850 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2022/01/28 | 565707 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2022/01/28 | 55753 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2022/01/28 | 552450 | macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf
+2022/01/28 | 55198 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2022/01/28 | 54998 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2022/01/28 | 547004 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf
+2022/01/28 | 533242 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf
+2022/01/28 | 532415 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2022/01/28 | 530048 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf
+2022/01/28 | 528104 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2022/01/28 | 525438 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf
+2022/01/28 | 52514 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2022/01/28 | 52323 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2022/01/28 | 52003 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2022/01/28 | 517424 | macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf
+2022/01/28 | 51547 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2022/01/28 | 51411 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2022/01/28 | 50821 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2022/01/28 | 505748 | macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf
+2022/01/28 | 504678 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf
+2022/01/28 | 490723 | macros/latex/contrib/proof-at-the-end.zip
+2022/01/28 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2022/01/28 | 4884 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.ins
+2022/01/28 | 48820 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2022/01/28 | 4863 | macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty
+2022/01/28 | 484671 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2022/01/28 | 483900 | systems/texlive/tlnet/archive/mandi.doc.r61764.tar.xz
+2022/01/28 | 47984 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2022/01/28 | 478896 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2022/01/28 | 477696 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2022/01/28 | 4744 | systems/texlive/tlnet/archive/tkz-fct.r61766.tar.xz
+2022/01/28 | 4691 | macros/latex/contrib/pdfmanagement-testphase/hyperxmp-patches-tmp-ltx.sty
+2022/01/28 | 4627 | macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.dtx
+2022/01/28 | 46109 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2022/01/28 | 45927 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2022/01/28 | 45733 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2022/01/28 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2022/01/28 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2022/01/28 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2022/01/28 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2022/01/28 | 446303 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf
+2022/01/28 | 43945 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2022/01/28 | 43856 | systems/texlive/tlnet/archive/acro.r61762.tar.xz
+2022/01/28 | 43812 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2022/01/28 | 43650 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2022/01/28 | 43566 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2022/01/28 | 43428 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2022/01/28 | 42763 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2022/01/28 | 424940 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf
+2022/01/28 | 417490 | macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf
+2022/01/28 | 41387 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2022/01/28 | 41237 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2022/01/28 | 41214 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2022/01/28 | 4041 | macros/latex/contrib/pdfmanagement-testphase/l3ref-tmp.sty
+2022/01/28 | 403116 | systems/texlive/tlnet/archive/texlive-scripts.doc.r61757.tar.xz
+2022/01/28 | 393910 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2022/01/28 | 39323 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2022/01/28 | 390166 | macros/latex/contrib/codebox.zip
+2022/01/28 | 38567 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2022/01/28 | 38478 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2022/01/28 | 382883 | macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.pdf
+2022/01/28 | 37745 | macros/latex/contrib/codebox/codebox.dtx
+2022/01/28 | 37378 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2022/01/28 | 37132 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2022/01/28 | 37112 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2022/01/28 | 361422 | macros/latex/contrib/bangorcsthesis.zip
+2022/01/28 | 36059 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2022/01/28 | 355066 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2022/01/28 | 35237 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2022/01/28 | 35179 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2022/01/28 | 347459 | macros/latex/contrib/proof-at-the-end/proof-at-the-end.pdf
+2022/01/28 | 34051 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2022/01/28 | 332530 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2022/01/28 | 3308 | systems/texlive/tlnet/archive/datenumber.r61761.tar.xz
+2022/01/28 | 32963 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2022/01/28 | 3274 | macros/latex/contrib/codebox/README.md
+2022/01/28 | 326179 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2022/01/28 | 32080 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2022/01/28 | 317512 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2022/01/28 | 31573 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2022/01/28 | 31538 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2022/01/28 | 31412 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2022/01/28 | 31350 | macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx
+2022/01/28 | 31335 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2022/01/28 | 310423 | macros/latex/contrib/zref-clever/zref-clever.pdf
+2022/01/28 | 3082 | macros/latex/contrib/zref-clever/zref-clever.ins
+2022/01/28 | 30793 | macros/latex/contrib/proof-at-the-end/README.md
+2022/01/28 | 307264 | systems/texlive/tlnet/archive/datenumber.doc.r61761.tar.xz
+2022/01/28 | 30558 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2022/01/28 | 30480 | systems/texlive/tlnet/archive/mandi.source.r61764.tar.xz
+2022/01/28 | 302033 | macros/latex/contrib/codebox/codebox.pdf
+2022/01/28 | 30181 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2022/01/28 | 298298 | macros/latex/contrib/bangorcsthesis/bangorcsthesis.pdf
+2022/01/28 | 296123 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2022/01/28 | 290639 | macros/latex/contrib/zref-clever/zref-clever.dtx
+2022/01/28 | 289 | macros/latex/contrib/codebox/build.sh
+2022/01/28 | 28766 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2022/01/28 | 28702 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2022/01/28 | 28676 | macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx
+2022/01/28 | 286567 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2022/01/28 | 286284 | systems/texlive/tlnet/archive/dccpaper.doc.r61763.tar.xz
+2022/01/28 | 286069 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2022/01/28 | 28582 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2022/01/28 | 285552 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2022/01/28 | 28337 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2022/01/28 | 281919 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2022/01/28 | 2808 | macros/latex/contrib/pascaltriangle/README.md
+2022/01/28 | 2799000 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2022/01/28 | 27977 | macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx
+2022/01/28 | 27786 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2022/01/28 | 27461 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2022/01/28 | 27357 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx
+2022/01/28 | 27252 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2022/01/28 | 267 | macros/latex/contrib/pascaltriangle/build.sh
+2022/01/28 | 2674148 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2022/01/28 | 26591 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx
+2022/01/28 | 26584 | systems/texlive/tlnet/archive/dccpaper.source.r61763.tar.xz
+2022/01/28 | 26581 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx
+2022/01/28 | 262789 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2022/01/28 | 262686 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2022/01/28 | 261104 | macros/latex/contrib/bangorcsthesis/bangorcsthesis.dtx
+2022/01/28 | 259150 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2022/01/28 | 256593 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2022/01/28 | 25632147 | systems/texlive/tlnet/install-tl.zip
+2022/01/28 | 254845 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2022/01/28 | 25480 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2022/01/28 | 25128 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2022/01/28 | 251250 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2022/01/28 | 25079 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2022/01/28 | 24808 | systems/texlive/tlnet/archive/dccpaper.r61763.tar.xz
+2022/01/28 | 244997 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2022/01/28 | 24077 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2022/01/28 | 23937 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2022/01/28 | 2364657 | macros/optex.zip
+2022/01/28 | 2342988 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2022/01/28 | 2339 | macros/latex/contrib/zref-clever/CHANGELOG.md
+2022/01/28 | 22157 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2022/01/28 | 22032 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx
+2022/01/28 | 216595 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2022/01/28 | 213132 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2022/01/28 | 21310 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2022/01/28 | 209862 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2022/01/28 | 20876635 | systems/texlive/tlnet/install-tl-windows.exe
+2022/01/28 | 20475 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx
+2022/01/28 | 203064 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2022/01/28 | 20190 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2022/01/28 | 201486 | macros/latex/contrib/datax.zip
+2022/01/28 | 2006600 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2022/01/28 | 200154 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2022/01/28 | 199791 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2022/01/28 | 199422 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2022/01/28 | 199168 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2022/01/28 | 196135 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2022/01/28 | 19516 | macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx
+2022/01/28 | 18492 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2022/01/28 | 18376 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2022/01/28 | 1822 | macros/latex/contrib/pdfmanagement-testphase/pdflscape-ltx.sty
+2022/01/28 | 18208 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx
+2022/01/28 | 181556 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2022/01/28 | 179944 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2022/01/28 | 17984 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx
+2022/01/28 | 176832 | macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx
+2022/01/28 | 17353 | macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx
+2022/01/28 | 1732204 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2022/01/28 | 172637 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2022/01/28 | 17090530 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2022/01/28 | 168796 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2022/01/28 | 167589 | macros/latex/contrib/pascaltriangle.zip
+2022/01/28 | 165740 | macros/latex/contrib/pascaltriangle/pascaltriangle.pdf
+2022/01/28 | 16569 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2022/01/28 | 16509 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2022/01/28 | 157565 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2022/01/28 | 15698 | macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx
+2022/01/28 | 155441 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2022/01/28 | 1542110 | install/macros/latex/contrib/zref-clever.tds.zip
+2022/01/28 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2022/01/28 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2022/01/28 | 152020 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2022/01/28 | 1509701 | macros/latex/contrib/zref-clever.zip
+2022/01/28 | 1499490 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2022/01/28 | 1486 | macros/latex/contrib/zref-clever/zref-clever-code.tex
+2022/01/28 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2022/01/28 | 1452954 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2022/01/28 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2022/01/28 | 14408 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2022/01/28 | 14300 | macros/latex/contrib/zref-clever/MANIFEST.md
+2022/01/28 | 1411214 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2022/01/28 | 1410657 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2022/01/28 | 139184 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2022/01/28 | 13840 | macros/latex/contrib/pascaltriangle/pascaltriangle.sty
+2022/01/28 | 135904 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2022/01/28 | 1355173 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2022/01/28 | 13535 | macros/latex/contrib/spbmark/spbmark.sty
+2022/01/28 | 13510 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2022/01/28 | 134989 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2022/01/28 | 1322845 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2022/01/28 | 1306742 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2022/01/28 | 1306402 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2022/01/28 | 1300069 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2022/01/28 | 126864 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2022/01/28 | 1239228 | systems/texlive/tlnet/archive/acro.doc.r61762.tar.xz
+2022/01/28 | 12351 | macros/latex/contrib/codebox/codebox-doc-en.tex
+2022/01/28 | 121561 | macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.pdf
+2022/01/28 | 1207136 | systems/texlive/tlnet/archive/siunitx.doc.r61765.tar.xz
+2022/01/28 | 120229 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2022/01/28 | 1200 | macros/latex/contrib/pdfmanagement-testphase/README.md
+2022/01/28 | 11988 | systems/texlive/tlnet/archive/mandi.r61764.tar.xz
+2022/01/28 | 11949 | macros/latex/contrib/spbmark/spbmark.tex
+2022/01/28 | 1181080 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2022/01/28 | 1175713 | macros/latex/contrib/zref-clever/zref-clever-code.pdf
+2022/01/28 | 117090 | macros/latex/contrib/zref-clever/zref-clever.tex
+2022/01/28 | 115635 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2022/01/28 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2022/01/28 | 11447 | macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx
+2022/01/28 | 113011 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2022/01/28 | 112666 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2022/01/28 | 11136248 | macros/latex/contrib/pdfmanagement-testphase.zip
+2022/01/28 | 109548 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2022/01/28 | 109308 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2022/01/28 | 1086642 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2022/01/28 | 108396 | systems/texlive/tlnet/archive/texlive-scripts.r61757.tar.xz
+2022/01/28 | 108388 | systems/texlive/tlnet/archive/siunitx.source.r61765.tar.xz
+2022/01/28 | 10624 | macros/latex/contrib/pascaltriangle/pascaltriangle.tex
+2022/01/28 | 104697 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2022/01/28 | 103410 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2022/01/28 | 101559 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
2022/01/27 | 996 | macros/latex/contrib/siunitx/README.md
2022/01/27 | 99523 | macros/latex/contrib/dccpaper/dccpaper.dtx
-2022/01/27 | 99181 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
2022/01/27 | 98548 | macros/latex/contrib/siunitx/siunitx-unit.dtx
2022/01/27 | 9843 | macros/latex/contrib/datenumber/datenumber-german.tex
2022/01/27 | 983 | macros/latex/contrib/acro/examples/acro.example.issue-119.tex
2022/01/27 | 9759 | macros/latex/contrib/siunitx/siunitx-symbol.dtx
-2022/01/27 | 97082 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
2022/01/27 | 97019 | macros/latex/contrib/mandi/mandi.dtx
-2022/01/27 | 96924 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2022/01/27 | 959840 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2022/01/27 | 95485 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2022/01/27 | 95332 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2022/01/27 | 93942 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2022/01/27 | 920 | systems/win32/miktex/tm/packages/pr.ini
2022/01/27 | 9162 | macros/latex/contrib/datenumber/datenumber-english.tex
2022/01/27 | 908075 | macros/latex/contrib/acro/acro-manual.pdf
-2022/01/27 | 88163 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
2022/01/27 | 8798 | macros/latex/contrib/siunitx/siunitx-command.dtx
-2022/01/27 | 8782 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2022/01/27 | 86664 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2022/01/27 | 8735 | macros/latex/contrib/datax/datax.dtx
2022/01/27 | 841020 | systems/texlive/tlnet/archive/babel.doc.r61748.tar.xz
-2022/01/27 | 824779 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2022/01/27 | 817 | macros/latex/contrib/datax/datax-logo.tikz
2022/01/27 | 8175 | macros/latex/contrib/acro/examples/acro.example.issue-119.pdf
-2022/01/27 | 81530 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2022/01/27 | 79038 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2022/01/27 | 78966 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
2022/01/27 | 779 | macros/latex/contrib/acro/examples/acro.example.possessive.tex
-2022/01/27 | 7758 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2022/01/27 | 77065 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2022/01/27 | 76281 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
2022/01/27 | 760097 | macros/latex/contrib/tkz/tkz-fct.zip
2022/01/27 | 757 | macros/latex/contrib/acro/examples/acro.example.texsx-542461.tex
-2022/01/27 | 753219 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2022/01/27 | 752397 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
2022/01/27 | 746688 | systems/texlive/tlnet/archive/wrapfig2.doc.r61749.tar.xz
-2022/01/27 | 745472 | systems/texlive/tlnet/archive/tkz-fct.doc.r61747.tar.xz
-2022/01/27 | 74060 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2022/01/27 | 73463 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2022/01/27 | 7398 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2022/01/27 | 732 | systems/texlive/tlnet/archive/latex2e-help-texinfo.r61750.tar.xz
-2022/01/27 | 73279 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2022/01/27 | 72883 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2022/01/27 | 71990 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2022/01/27 | 71915 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2022/01/27 | 70971 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
2022/01/27 | 706 | macros/latex/contrib/acro/examples/acro.example.issue-111.tex
2022/01/27 | 697412 | systems/texlive/tlnet/archive/babel.source.r61748.tar.xz
-2022/01/27 | 691229 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
-2022/01/27 | 68780 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2022/01/27 | 68653 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2022/01/27 | 681612 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2022/01/27 | 6812406 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2022/01/27 | 68014 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2022/01/27 | 67763 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2022/01/27 | 67223 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
2022/01/27 | 66664 | macros/latex/contrib/mandi/mandistudent.dtx
-2022/01/27 | 65086 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
2022/01/27 | 65067 | macros/latex/contrib/acro/examples/acro.example.units.pdf
-2022/01/27 | 64735 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2022/01/27 | 64578 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2022/01/27 | 64575 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
2022/01/27 | 639472 | macros/latex/contrib/siunitx/siunitx.pdf
2022/01/27 | 63939 | macros/latex/contrib/siunitx/CHANGELOG.md
-2022/01/27 | 63757 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2022/01/27 | 636274 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2022/01/27 | 63366 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2022/01/27 | 633491 | systems/win32/miktex/tm/packages/files.csv.lzma
-2022/01/27 | 630239 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2022/01/27 | 629342 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2022/01/27 | 62664 | systems/texlive/tlnet/archive/siunitx.r61746.tar.xz
2022/01/27 | 6260 | systems/texlive/tlnet/archive/wrapfig2.r61749.tar.xz
-2022/01/27 | 62425 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2022/01/27 | 62337 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
2022/01/27 | 608200 | macros/latex/contrib/siunitx/siunitx-code.pdf
2022/01/27 | 59921 | macros/latex/contrib/dccpaper/dccpaper-by.eps
-2022/01/27 | 599013 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
2022/01/27 | 596328 | systems/texlive/tlnet/archive/easybook.doc.r61745.tar.xz
-2022/01/27 | 591459 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2022/01/27 | 58707 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2022/01/27 | 58659 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2022/01/27 | 57445 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2022/01/27 | 57403 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2022/01/27 | 57342 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2022/01/27 | 57257 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2022/01/27 | 57029 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2022/01/27 | 56673 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2022/01/27 | 566721 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2022/01/27 | 55735 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
-2022/01/27 | 55339 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
-2022/01/27 | 54991 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2022/01/27 | 532455 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2022/01/27 | 527828 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2022/01/27 | 52550 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2022/01/27 | 52310 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2022/01/27 | 52043 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
2022/01/27 | 519765 | macros/latex/contrib/mandi.zip
-2022/01/27 | 51534 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2022/01/27 | 51500 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
2022/01/27 | 50881 | macros/latex/contrib/siunitx/siunitx-table.dtx
-2022/01/27 | 50850 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
2022/01/27 | 5029 | macros/latex/contrib/siunitx/siunitx-locale.dtx
2022/01/27 | 5012 | macros/latex/contrib/dccpaper/dccpaper-by.pdf
2022/01/27 | 500572 | macros/latex/contrib/mandi/mandi.pdf
-2022/01/27 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
-2022/01/27 | 48844 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2022/01/27 | 483936 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
-2022/01/27 | 47910 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2022/01/27 | 477925 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
2022/01/27 | 4748 | macros/latex/contrib/siunitx/siunitx-abbreviations.cfg
-2022/01/27 | 4736 | systems/texlive/tlnet/archive/tkz-fct.r61747.tar.xz
-2022/01/27 | 470363 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
2022/01/27 | 463 | macros/latex/contrib/mandi/README.md
-2022/01/27 | 46096 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2022/01/27 | 45893 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2022/01/27 | 45772 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2022/01/27 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2022/01/27 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2022/01/27 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2022/01/27 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
-2022/01/27 | 43927 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2022/01/27 | 43821 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2022/01/27 | 43698 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/01/27 | 43669 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2022/01/27 | 43453 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2022/01/27 | 42768 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
-2022/01/27 | 41390 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2022/01/27 | 41265 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2022/01/27 | 41208 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2022/01/27 | 403020 | systems/texlive/tlnet/archive/texlive-scripts.doc.r61743.tar.xz
-2022/01/27 | 39737 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2022/01/27 | 394300 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
2022/01/27 | 3881 | macros/latex/contrib/mandi/mandi.ins
-2022/01/27 | 38565 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2022/01/27 | 38469 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
2022/01/27 | 375100 | macros/latex/contrib/datenumber.zip
-2022/01/27 | 37390 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
2022/01/27 | 372 | macros/latex/contrib/acro/examples/acro.example.texsx-515295.tex
-2022/01/27 | 37118 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2022/01/27 | 37097 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
2022/01/27 | 3708 | macros/latex/contrib/dccpaper/README.md
2022/01/27 | 3687 | macros/latex/contrib/siunitx/siunitx.ins
-2022/01/27 | 36057 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
-2022/01/27 | 355357 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
2022/01/27 | 353 | macros/latex/contrib/acro/examples/acro.example.texsx-513623.tex
-2022/01/27 | 35242 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2022/01/27 | 35174 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2022/01/27 | 34032 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
2022/01/27 | 34008 | macros/latex/contrib/siunitx/siunitx-print.dtx
2022/01/27 | 33799 | macros/latex/contrib/siunitx/siunitx-compound.dtx
2022/01/27 | 337415 | macros/latex/contrib/dccpaper.zip
2022/01/27 | 33721 | macros/latex/contrib/acro/examples/acro.example.texsx-507726.pdf
2022/01/27 | 336860 | macros/latex/contrib/dccpaper/dccpaper.pdf
-2022/01/27 | 332746 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
2022/01/27 | 329 | macros/latex/contrib/acro/examples/acro.example.issue-109.tex
-2022/01/27 | 32958 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2022/01/27 | 326302 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
2022/01/27 | 3252 | macros/latex/contrib/acro/acro-examples.sty
2022/01/27 | 32432 | macros/latex/contrib/acro/examples/acro.example.texsx-505891.pdf
-2022/01/27 | 32155 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
2022/01/27 | 3214 | macros/latex/contrib/acro/examples/acro.example.basic.tex
-2022/01/27 | 317773 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
2022/01/27 | 31738 | macros/latex/contrib/siunitx/siunitx-version-1.cfg
2022/01/27 | 31668 | macros/latex/contrib/siunitx/siunitx-emulation.dtx
2022/01/27 | 315 | macros/latex/contrib/acro/examples/acro.example.acflike.tex
-2022/01/27 | 31572 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2022/01/27 | 31551 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2022/01/27 | 31398 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2022/01/27 | 31336 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2022/01/27 | 30512 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
2022/01/27 | 30275 | macros/latex/contrib/acro/examples/acro.example.issue-109.pdf
-2022/01/27 | 30171 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2022/01/27 | 296107 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
2022/01/27 | 2883 | macros/latex/contrib/siunitx/siunitx-binary.dtx
-2022/01/27 | 28756 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
2022/01/27 | 286 | macros/latex/contrib/acro/examples/acro.example.issue-154.tex
-2022/01/27 | 28695 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2022/01/27 | 286565 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2022/01/27 | 285741 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2022/01/27 | 28555 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2022/01/27 | 28321 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
2022/01/27 | 2821 | macros/latex/contrib/dccpaper/Makefile
-2022/01/27 | 281545 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2022/01/27 | 2797477 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2022/01/27 | 27698 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2022/01/27 | 276121 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2022/01/27 | 27502 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
2022/01/27 | 273398 | macros/latex/contrib/siunitx/siunitx-v2.sty
2022/01/27 | 272 | systems/texlive/tlnet/archive/texlive-en.r61754.tar.xz
-2022/01/27 | 27269 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2022/01/27 | 2672855 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
-2022/01/27 | 262772 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2022/01/27 | 262667 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
2022/01/27 | 25985 | macros/latex/contrib/siunitx/siunitx-complex.dtx
-2022/01/27 | 259313 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2022/01/27 | 256459 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2022/01/27 | 25632153 | systems/texlive/tlnet/install-tl.zip
-2022/01/27 | 25537 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2022/01/27 | 251406 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2022/01/27 | 25103 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2022/01/27 | 25063 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
2022/01/27 | 2492 | macros/latex/contrib/siunitx/siunitx-code.tex
-2022/01/27 | 246042 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2022/01/27 | 244845 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
2022/01/27 | 24224 | macros/latex/contrib/acro/examples/acro.example.issue-154.pdf
-2022/01/27 | 24090 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2022/01/27 | 23947 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2022/01/27 | 2344124 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2022/01/27 | 23332 | systems/texlive/tlnet/archive/wrapfig2.source.r61749.tar.xz
2022/01/27 | 23242 | macros/latex/contrib/mandi/mandiexp.dtx
2022/01/27 | 23155 | macros/latex/contrib/tkz/tkz-fct/latex/tkz-fct.sty
2022/01/27 | 22752 | macros/latex/contrib/acro/examples/acro.example.texsx-513623.pdf
-2022/01/27 | 22154 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
-2022/01/27 | 216349 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2022/01/27 | 213500 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2022/01/27 | 21321 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
2022/01/27 | 2124 | macros/latex/contrib/acro/README
-2022/01/27 | 210221 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
2022/01/27 | 2100572 | systems/texlive/tlnet/archive/latex2e-help-texinfo.doc.r61750.tar.xz
2022/01/27 | 20922 | macros/latex/contrib/acro/examples/acro.example.acflike.pdf
-2022/01/27 | 20873395 | systems/texlive/tlnet/install-tl-windows.exe
-2022/01/27 | 202745 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2022/01/27 | 20194 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2022/01/27 | 202889 | macros/latex/contrib/datax/datax.pdf
2022/01/27 | 200979 | macros/latex/contrib/datenumber/datenumber-german.pdf
-2022/01/27 | 200082 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2022/01/27 | 199684 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2022/01/27 | 199664 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2022/01/27 | 1992376 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
2022/01/27 | 19900 | macros/latex/contrib/siunitx/siunitx.dtx
-2022/01/27 | 198988 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
2022/01/27 | 1978 | macros/latex/contrib/acro/examples/acro.example.units.tex
-2022/01/27 | 196134 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
2022/01/27 | 196113 | macros/latex/contrib/datenumber/datenumber-english.pdf
2022/01/27 | 1953012 | systems/texlive/tlnet/archive/texlive-en.doc.r61754.tar.xz
2022/01/27 | 1951 | macros/latex/contrib/tkz/tkz-fct/README.md
2022/01/27 | 19487 | macros/latex/contrib/datenumber/datenumber.dtx
-2022/01/27 | 18483 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2022/01/27 | 18359 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
2022/01/27 | 183100 | systems/texlive/tlnet/archive/babel.r61748.tar.xz
-2022/01/27 | 181570 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2022/01/27 | 179828 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2022/01/27 | 1781 | macros/latex/contrib/datax/datax.ins
2022/01/27 | 174172 | macros/latex/contrib/acro/acro.sty
-2022/01/27 | 1731303 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
2022/01/27 | 1729 | macros/latex/contrib/siunitx/siunitx-binary.cfg
-2022/01/27 | 172572 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2022/01/27 | 17090488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2022/01/27 | 168843 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
2022/01/27 | 16709 | macros/latex/contrib/siunitx/siunitx-angle.dtx
-2022/01/27 | 16580 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
2022/01/27 | 16512 | systems/texlive/tlnet/archive/easybook.source.r61745.tar.xz
-2022/01/27 | 16500 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
2022/01/27 | 16464 | systems/texlive/tlnet/archive/easybook.r61745.tar.xz
+2022/01/27 | 1642 | macros/latex/contrib/datax/README.md
2022/01/27 | 15855 | macros/latex/contrib/acro/examples/acro.example.texsx-515295.pdf
2022/01/27 | 1584 | macros/latex/contrib/datenumber/README.txt
2022/01/27 | 15808 | macros/latex/contrib/acro/examples/acro.example.texsx-542461.pdf
-2022/01/27 | 157600 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
2022/01/27 | 15733 | macros/latex/contrib/acro/examples/acro.example.issue-111.pdf
-2022/01/27 | 155303 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2022/01/27 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
2022/01/27 | 1533516 | systems/texlive/tlnet/archive/libertinust1math.doc.r61751.tar.xz
2022/01/27 | 15317 | macros/latex/contrib/siunitx/siunitx-quantity.dtx
-2022/01/27 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2022/01/27 | 152075 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
-2022/01/27 | 1499385 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
2022/01/27 | 148480 | macros/latex/contrib/siunitx/siunitx.tex
2022/01/27 | 1476 | macros/latex/contrib/acro/examples/acro.example.texsx-507726.tex
2022/01/27 | 1463224 | install/macros/latex/contrib/siunitx.tds.zip
-2022/01/27 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2022/01/27 | 1452739 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2022/01/27 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2022/01/27 | 14411 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
2022/01/27 | 144061 | macros/latex/contrib/acro/acro2.sty
2022/01/27 | 1422920 | macros/latex/contrib/siunitx.zip
-2022/01/27 | 1410596 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2022/01/27 | 1409873 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
2022/01/27 | 1398932 | macros/latex/contrib/acro.zip
-2022/01/27 | 139123 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
2022/01/27 | 13686 | macros/latex/contrib/acro/examples/acro.example.possessive.pdf
-2022/01/27 | 136036 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2022/01/27 | 1355963 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2022/01/27 | 13513 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2022/01/27 | 135130 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2022/01/27 | 1322450 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2022/01/27 | 1306005 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
-2022/01/27 | 1305915 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2022/01/27 | 1304429 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
2022/01/27 | 12772 | support/texlogfilter.zip
-2022/01/27 | 126844 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
2022/01/27 | 125351 | macros/latex/contrib/acro/examples/acro.example.basic.pdf
2022/01/27 | 1242040 | systems/texlive/tlnet/archive/libertinust1math.r61751.tar.xz
2022/01/27 | 122028 | macros/latex/contrib/siunitx/siunitx-number.dtx
-2022/01/27 | 1207128 | systems/texlive/tlnet/archive/siunitx.doc.r61746.tar.xz
-2022/01/27 | 120221 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2022/01/27 | 1180763 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2022/01/27 | 115646 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2022/01/27 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
-2022/01/27 | 113014 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2022/01/27 | 112663 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2022/01/27 | 109561 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2022/01/27 | 109142 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2022/01/27 | 1087178 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2022/01/27 | 108400 | systems/texlive/tlnet/archive/texlive-scripts.r61743.tar.xz
-2022/01/27 | 108344 | systems/texlive/tlnet/archive/siunitx.source.r61746.tar.xz
2022/01/27 | 1068 | macros/latex/contrib/acro/examples/acro.example.texsx-505891.tex
2022/01/27 | 105001 | macros/latex/contrib/acro/acro-manual.tex
-2022/01/27 | 104676 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2022/01/27 | 103437 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2022/01/27 | 101458 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
2022/01/27 | 10106 | macros/latex/contrib/siunitx/siunitx-abbreviation.dtx
2022/01/26 | 905509 | macros/latex/contrib/wrapfig2.zip
2022/01/26 | 872936 | info/latex2e-help-texinfo/latex2e.info
2022/01/26 | 853492 | macros/latex/required/babel/base/babel.pdf
2022/01/26 | 8412 | dviware/dvisvgm/configure.ac
2022/01/26 | 817399 | info/latex2e-help-texinfo/latex2e.txt
-2022/01/26 | 80422 | macros/latex/contrib/easybook/easybook.tex
2022/01/26 | 794551 | macros/latex/required/babel/base/locale.zip
-2022/01/26 | 75857 | macros/latex/contrib/easybook/easybook.dtx
2022/01/26 | 7461 | macros/latex/required/babel/base/babel.ins
2022/01/26 | 74192 | systems/texlive/tlnet/archive/spbmark.doc.r61740.tar.xz
-2022/01/26 | 7384 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2022/01/26 | 7352 | info/latex2e-help-texinfo/NEWS
2022/01/26 | 728574 | info/latex2e-help-texinfo/latex2e.texi
2022/01/26 | 721772 | macros/latex/required/babel/base/babel.dtx
@@ -325,9 +435,7 @@
2022/01/26 | 68834 | dviware/dvisvgm/doc/dvisvgm.1
2022/01/26 | 6496 | dviware/dvisvgm/src/PSPattern.cpp
2022/01/26 | 6303997 | fonts/libertinust1math.zip
-2022/01/26 | 615825 | macros/latex/contrib/easybook.zip
2022/01/26 | 60275 | dviware/dvisvgm/src/Makefile.in
-2022/01/26 | 575309 | macros/latex/contrib/easybook/easybook.pdf
2022/01/26 | 56953 | dviware/dvisvgm/aclocal.m4
2022/01/26 | 5258 | fonts/libertinust1math/README
2022/01/26 | 505350 | info/latex2e-help-texinfo/spanish/latex2e-es.xml
@@ -374,11 +482,9 @@
2022/01/25 | 9080 | macros/latex/contrib/tkz/tkz-base/latex/tkz-base.cfg
2022/01/25 | 84039 | macros/latex/contrib/animate/animate.tex
2022/01/25 | 80388 | macros/latex/contrib/wrapfig2/wrapfig2.dtx
-2022/01/25 | 76732 | macros/latex/contrib/spbmark.zip
2022/01/25 | 758679 | macros/latex/contrib/wrapfig2/wrapfig2.pdf
2022/01/25 | 73919 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md
2022/01/25 | 728705 | macros/latex/contrib/tkz/tkz-fct/doc/tkz-fct.pdf
-2022/01/25 | 71793 | macros/latex/contrib/spbmark/spbmark.pdf
2022/01/25 | 6744 | macros/latex/contrib/tkz/tkz-base/latex/tkz-obj-axesmin.tex
2022/01/25 | 6565 | macros/latex/contrib/tkz/tkz-fct/doc/latex/TKZdoc-fct-main.tex
2022/01/25 | 6560 | systems/texlive/tlnet/archive/collection-latexextra.r61730.tar.xz
@@ -427,7 +533,6 @@
2022/01/25 | 1464 | systems/texlive/tlnet/archive/altsubsup.r61730.tar.xz
2022/01/25 | 138910 | macros/latex/contrib/animate/animate.sty
2022/01/25 | 135556 | systems/texlive/tlnet/archive/bmstu.r61731.tar.xz
-2022/01/25 | 13454 | macros/latex/contrib/spbmark/spbmark.sty
2022/01/25 | 1335 | macros/latex/contrib/wrapfig2/README.txt
2022/01/25 | 132948 | systems/texlive/tlnet/archive/fontools.doc.r61726.tar.xz
2022/01/25 | 13203 | macros/latex/contrib/tkz/tkz-base/latex/tkz-obj-points.tex
@@ -435,7 +540,6 @@
2022/01/25 | 12662 | macros/latex/contrib/animate/ChangeLog
2022/01/25 | 1217 | macros/latex/contrib/tkz/tkz-base/latex/tkz-tools-BB.tex
2022/01/25 | 1140695 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/font.txt
-2022/01/25 | 11130 | macros/latex/contrib/spbmark/spbmark.tex
2022/01/25 | 10268 | systems/texlive/tlnet/archive/uni-titlepage.r61729.tar.xz
2022/01/24 | 99855 | systems/win32/miktex/tm/packages/polexpr__doc.tar.lzma
2022/01/24 | 994140 | systems/win32/miktex/tm/packages/tkz-euclide__doc.tar.lzma
@@ -463,6 +567,7 @@
2022/01/24 | 892 | systems/texlive/tlnet/archive/tex.r61719.tar.xz
2022/01/24 | 8820 | systems/texlive/tlnet/archive/metafont.r61719.tar.xz
2022/01/24 | 880 | systems/texlive/tlnet/archive/dvisvgm.r61719.tar.xz
+2022/01/24 | 87535 | macros/optex/doc/optex-userdoc.tex
2022/01/24 | 873272 | systems/texlive/tlnet/archive/latex2e-help-texinfo-spanish.doc.r61719.tar.xz
2022/01/24 | 8712 | systems/texlive/tlnet/archive/geometry.r61719.tar.xz
2022/01/24 | 864586 | macros/latex/contrib/uni-titlepage/uni-titlepage.pdf
@@ -518,6 +623,7 @@
2022/01/24 | 687228 | systems/texlive/tlnet/archive/cfr-initials.doc.r61719.tar.xz
2022/01/24 | 6845 | systems/win32/miktex/tm/packages/kanbun__source.tar.lzma
2022/01/24 | 680 | systems/texlive/tlnet/archive/grid.source.r61719.tar.xz
+2022/01/24 | 6789 | macros/optex/README
2022/01/24 | 67652 | systems/win32/miktex/tm/packages/latexindent.tar.lzma
2022/01/24 | 6656 | systems/texlive/tlnet/archive/ut-thesis.source.r61719.tar.xz
2022/01/24 | 66225 | systems/win32/miktex/tm/packages/latex-amsmath-dev__source.tar.lzma
@@ -576,6 +682,7 @@
2022/01/24 | 55392 | systems/win32/miktex/tm/packages/reledmac.tar.lzma
2022/01/24 | 55376 | systems/texlive/tlnet/archive/pst-solides3d.r61719.tar.xz
2022/01/24 | 5456 | systems/texlive/tlnet/archive/marathi.r61719.tar.xz
+2022/01/24 | 5439 | macros/optex/base/basic-macros.opm
2022/01/24 | 540992 | systems/texlive/tlnet/archive/businesscard-qrcode.doc.r61719.tar.xz
2022/01/24 | 54018 | macros/latex/contrib/uni-titlepage/titlepage-TU-HH.pdf
2022/01/24 | 539616 | systems/texlive/tlnet/archive/helvetic.r61719.tar.xz
@@ -609,6 +716,7 @@
2022/01/24 | 45993 | systems/win32/miktex/tm/packages/l3packages__source.tar.lzma
2022/01/24 | 459328 | systems/texlive/tlnet/archive/arraycols.doc.r61719.tar.xz
2022/01/24 | 45480112 | systems/texlive/tlnet/archive/knuth-pdf.doc.r61719.tar.xz
+2022/01/24 | 4476 | macros/optex/doc/optex-doc.tex
2022/01/24 | 44722 | systems/win32/miktex/tm/packages/zref-clever__source.tar.lzma
2022/01/24 | 44284 | systems/texlive/tlnet/archive/lineno.source.r61719.tar.xz
2022/01/24 | 4408 | systems/texlive/tlnet/archive/muling.source.r61719.tar.xz
@@ -622,6 +730,7 @@
2022/01/24 | 42280 | systems/texlive/tlnet/archive/eplain.r61719.tar.xz
2022/01/24 | 42151 | macros/latex/contrib/uni-titlepage/titlepage-KIT.pdf
2022/01/24 | 41912 | systems/texlive/tlnet/archive/minitoc.r61719.tar.xz
+2022/01/24 | 4127 | macros/optex/base/optex.ini
2022/01/24 | 41265 | macros/latex/contrib/uni-titlepage/titlepage-JT-Aufsaetze.pdf
2022/01/24 | 410340 | systems/texlive/tlnet/archive/fontinst.source.r61719.tar.xz
2022/01/24 | 40931 | systems/win32/miktex/tm/packages/njuthesis__source.tar.lzma
@@ -867,6 +976,7 @@
2022/01/24 | 14130568 | systems/texlive/tlnet/archive/missaali.doc.r61719.tar.xz
2022/01/24 | 141165 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx
2022/01/24 | 1408 | systems/texlive/tlnet/archive/acroterm.r61719.tar.xz
+2022/01/24 | 1399602 | macros/optex/doc/optex-doc.pdf
2022/01/24 | 1383004 | systems/texlive/tlnet/archive/pst-spinner.doc.r61719.tar.xz
2022/01/24 | 138164 | systems/texlive/tlnet/archive/ut-thesis.doc.r61719.tar.xz
2022/01/24 | 1376 | systems/texlive/tlnet/archive/xpeek.r61719.tar.xz
@@ -1399,6 +1509,7 @@
2022/01/22 | 530 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/test/test_opendialog.c
2022/01/22 | 5308 | graphics/asymptote/pair.h
2022/01/22 | 52 | graphics/asymptote/doc/square.asy
+2022/01/22 | 5289 | macros/optex/base/references.opm
2022/01/22 | 5279 | graphics/asymptote/base/bsp.asy
2022/01/22 | 52750 | graphics/asymptote/cudareflect/tinyexr/test/unit/tester.cc
2022/01/22 | 5272 | graphics/asymptote/GUI/labelEditor.py
@@ -1697,6 +1808,7 @@
2022/01/22 | 34 | graphics/asymptote/examples/teapotIBL.asy
2022/01/22 | 34 | graphics/asymptote/autogen.sh
2022/01/22 | 349 | graphics/asymptote/examples/logdown.asy
+2022/01/22 | 3498 | macros/optex/demo/op-demo.tex
2022/01/22 | 348 | graphics/asymptote/LspCpp/LibLsp/lsp/ParentProcessWatcher.h
2022/01/22 | 348 | graphics/asymptote/examples/RiemannSurface.asy
2022/01/22 | 3472 | graphics/asymptote/picture.h
@@ -2590,394 +2702,3 @@
2022/01/22 | 1000 | graphics/asymptote/LspCpp/LibLsp/JsonRpc/StreamMessageProducer.h
2022/01/22 | 1000 | graphics/asymptote/doc/FAQ/Makefile
2022/01/22 | 100007 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/screens/open_cocoa.png
-2022/01/21 | 9999 | macros/latex/contrib/l3kernel/l3news10.tex
-2022/01/21 | 99766 | macros/latex/contrib/l3kernel/l3color.dtx
-2022/01/21 | 9811405 | support/latexindent/latexindent.exe
-2022/01/21 | 9775 | support/latexindent/LatexIndent/LogFile.pm
-2022/01/21 | 959 | macros/latex/contrib/beamer/base/themes/theme/beamerthemePaloAlto.sty
-2022/01/21 | 954 | macros/latex/contrib/beamer/doc/emulation-examples/beamerexample-foils.tex
-2022/01/21 | 9537 | support/latexindent/LatexIndent/IfElseFi.pm
-2022/01/21 | 951 | macros/latex/contrib/beamer/base/themes/theme/beamerthemeBerkeley.sty
-2022/01/21 | 9465 | macros/latex/contrib/l3kernel/l3news08.tex
-2022/01/21 | 9436 | macros/latex/contrib/l3kernel/l3flag.dtx
-2022/01/21 | 9407 | macros/latex/contrib/beamer/base/beamerbasedecode.sty
-2022/01/21 | 9243 | support/latexindent/LatexIndent/Lines.pm
-2022/01/21 | 9216 | macros/latex/contrib/l3kernel/l3unicode.dtx
-2022/01/21 | 9209 | macros/latex/contrib/beamer/base/beamerbaseframesize.sty
-2022/01/21 | 9134 | macros/latex/contrib/beamer/doc/beamerug-graphics.tex
-2022/01/21 | 90394 | macros/latex/contrib/l3kernel/l3seq.dtx
-2022/01/21 | 902 | macros/latex/contrib/beamer/base/themes/theme/beamerthemeBoadilla.sty
-2022/01/21 | 90018 | macros/latex/contrib/l3kernel/l3int.dtx
-2022/01/21 | 87516 | macros/latex/contrib/l3kernel/l3coffins.dtx
-2022/01/21 | 861 | macros/latex/contrib/beamer/doc/examples/a-lecture/beamerexample-lecture-pic1.jpg
-2022/01/21 | 856 | macros/latex/contrib/beamer/base/themes/theme/beamerthemeSingapore.sty
-2022/01/21 | 853 | macros/latex/contrib/beamer/base/themes/color/beamercolorthemerose.sty
-2022/01/21 | 8496 | macros/latex/contrib/beamer/doc/beameruserguide.tex
-2022/01/21 | 8481 | macros/latex/contrib/l3kernel/l3news11.tex
-2022/01/21 | 84785 | macros/latex/contrib/l3kernel/l3fp-basics.dtx
-2022/01/21 | 835 | macros/latex/contrib/beamer/base/themes/color/beamercolorthemeorchid.sty
-2022/01/21 | 833 | support/latexindent/LatexIndent/Version.pm
-2022/01/21 | 8317 | macros/latex/contrib/beamer/doc/beamerug-tricks.tex
-2022/01/21 | 8313 | macros/latex/contrib/beamer/base/beamerbasemisc.sty
-2022/01/21 | 8300 | macros/latex/contrib/beamer/doc/solutions/conference-talks/conference-ornate-20min.fr.tex
-2022/01/21 | 823 | macros/latex/contrib/beamer/base/themes/color/beamercolorthemestructure.sty
-2022/01/21 | 82359 | macros/latex/contrib/l3kernel/l3clist.dtx
-2022/01/21 | 80935 | macros/latex/contrib/l3kernel/l3prefixes.pdf
-2022/01/21 | 8005 | support/latexindent/documentation/sec-the-line-switch.tex
-2022/01/21 | 79925 | macros/latex/contrib/l3kernel/l3names.dtx
-2022/01/21 | 7986 | macros/latex/contrib/beamer/doc/beamerug-twoscreens.tex
-2022/01/21 | 79792 | macros/latex/contrib/l3kernel/l3box.dtx
-2022/01/21 | 7955 | support/latexindent/documentation/sec-introduction.tex
-2022/01/21 | 790 | macros/latex/contrib/beamer/base/themes/theme/beamerthemeHannover.sty
-2022/01/21 | 7755 | macros/latex/contrib/beamer/base/beamerbasetoc.sty
-2022/01/21 | 76557 | macros/latex/contrib/beamer/doc/beamerug-frames.tex
-2022/01/21 | 76279 | macros/latex/contrib/l3kernel/l3skip.dtx
-2022/01/21 | 7574 | macros/latex/contrib/beamer/base/beamerbasemodes.sty
-2022/01/21 | 75639 | macros/latex/contrib/l3kernel/l3str.dtx
-2022/01/21 | 7558 | macros/latex/contrib/beamer/doc/solutions/conference-talks/conference-ornate-20min.de.tex
-2022/01/21 | 7454 | macros/latex/contrib/l3kernel/l3fp-assign.dtx
-2022/01/21 | 74289 | macros/latex/contrib/l3kernel/l3msg.dtx
-2022/01/21 | 74196 | support/latexindent/documentation/sec-default-user-local.tex
-2022/01/21 | 73835 | macros/latex/contrib/l3kernel/l3fp-trig.dtx
-2022/01/21 | 7344 | macros/latex/contrib/beamer/base/beamerbaseboxes.sty
-2022/01/21 | 7221 | support/latexindent/documentation/subsubsec-no-add-remaining-code-blocks.tex
-2022/01/21 | 7214 | support/latexindent/LatexIndent/MandatoryArgument.pm
-2022/01/21 | 720 | macros/latex/contrib/beamer/base/themes/color/beamercolorthemesidebartab.sty
-2022/01/21 | 716 | macros/latex/contrib/beamer/doc/beamerinnerthemeexample.tex
-2022/01/21 | 7161 | support/latexindent/documentation/figure-schematic.png
-2022/01/21 | 709 | macros/latex/contrib/beamer/base/themes/font/beamerfontthemestructuresmallcapsserif.sty
-2022/01/21 | 7089 | macros/latex/contrib/beamer/base/themes/color/beamercolorthemedefault.sty
-2022/01/21 | 70685 | macros/latex/contrib/l3kernel/expl3.dtx
-2022/01/21 | 70578 | macros/latex/contrib/l3kernel/l3fp.dtx
-2022/01/21 | 702 | macros/latex/contrib/beamer/base/themes/font/beamerfontthemestructureitalicserif.sty
-2022/01/21 | 701 | macros/latex/contrib/beamer/base/themes/theme/compatibility/beamerthemecompatibility.sty
-2022/01/21 | 6984 | support/latexindent/LatexIndent/FileExtension.pm
-2022/01/21 | 6946 | macros/latex/contrib/beamer/base/themes/outer/beamerouterthemedefault.sty
-2022/01/21 | 69218 | macros/latex/contrib/l3kernel/l3candidates.dtx
-2022/01/21 | 6920139 | macros/latex/contrib/l3kernel/source3.pdf
-2022/01/21 | 69044 | macros/latex/contrib/l3kernel/l3text-case.dtx
-2022/01/21 | 6858 | macros/latex/contrib/beamer/doc/solutions/conference-talks/conference-ornate-20min.en.tex
-2022/01/21 | 6742 | support/latexindent/LatexIndent/Environment.pm
-2022/01/21 | 671 | macros/latex/contrib/beamer/base/themes/font/beamerfontthemestructurebold.sty
-2022/01/21 | 6677 | macros/latex/contrib/l3kernel/l3news02.tex
-2022/01/21 | 6654 | macros/latex/contrib/beamer/CHANGELOG.md
-2022/01/21 | 6645 | support/latexindent/LatexIndent/BackUpFileProcedure.pm
-2022/01/21 | 66231 | support/latexindent/documentation/subsec-poly-switches.tex
-2022/01/21 | 66196 | macros/latex/contrib/l3kernel/l3prg.dtx
-2022/01/21 | 6578 | macros/latex/contrib/beamer/base/multimedia/xmpmulti.sty
-2022/01/21 | 6560 | support/latexindent/LatexIndent/Item.pm
-2022/01/21 | 6483 | support/latexindent/LatexIndent/OptionalArgument.pm
-2022/01/21 | 6482 | macros/latex/contrib/l3kernel/l3news03.tex
-2022/01/21 | 6450 | macros/latex/contrib/l3kernel/l3term-glossary.tex
-2022/01/21 | 6433 | macros/latex/contrib/l3kernel/l3news06.tex
-2022/01/21 | 637 | macros/latex/contrib/beamer/base/beamerbasetranslator.sty
-2022/01/21 | 6373 | support/latexindent/LatexIndent/TrailingComments.pm
-2022/01/21 | 633 | support/latexindent/documentation/cmhlistings.tex
-2022/01/21 | 6319 | macros/latex/contrib/beamer/doc/beamerug-installation.tex
-2022/01/21 | 63065 | macros/latex/contrib/beamer/doc/beamerug-localstructure.tex
-2022/01/21 | 6267 | macros/latex/contrib/l3kernel/l3syntax-changes.tex
-2022/01/21 | 622339 | macros/latex/contrib/l3kernel/expl3.pdf
-2022/01/21 | 6217 | macros/latex/contrib/beamer/base/patch/beamerpatchparalist.sty
-2022/01/21 | 62111 | support/latexindent/documentation/latexindent-yaml-schema.json
-2022/01/21 | 6182 | macros/latex/contrib/l3kernel/l3.ins
-2022/01/21 | 61715 | support/latexindent/LatexIndent/AlignmentAtAmpersand.pm
-2022/01/21 | 6144719 | support/latexindent.zip
-2022/01/21 | 613 | macros/latex/contrib/beamer/doc/examples/a-lecture/beamerexample-lecture-pic4.jpg
-2022/01/21 | 6114 | support/latexindent/documentation/test-default-settings.tex
-2022/01/21 | 6039 | macros/latex/contrib/beamer/doc/solutions/generic-talks/generic-ornate-15min-45min.fr.tex
-2022/01/21 | 5969 | support/latexindent/LatexIndent/Else.pm
-2022/01/21 | 5966 | macros/latex/contrib/beamer/base/emulation/beamerprosper.sty
-2022/01/21 | 5962 | support/latexindent/documentation/subsubsec-commands-with-arguments.tex
-2022/01/21 | 594 | macros/latex/contrib/beamer/base/themes/theme/beamerthemeEastLansing.sty
-2022/01/21 | 585 | support/latexindent/documentation/sec-references.tex
-2022/01/21 | 582 | macros/latex/contrib/beamer/base/themes/color/beamercolorthemelily.sty
-2022/01/21 | 580 | macros/latex/contrib/beamer/base/themes/theme/compatibility/beamerthemetree.sty
-2022/01/21 | 5771 | support/latexindent/LatexIndent/UnNamedGroupingBracesBrackets.pm
-2022/01/21 | 5753 | macros/latex/contrib/beamer/base/beamerbasetemplates.sty
-2022/01/21 | 57531 | macros/latex/contrib/l3kernel/l3prop.dtx
-2022/01/21 | 57291 | support/latexindent/LatexIndent/GetYamlSettings.pm
-2022/01/21 | 5717 | support/latexindent/documentation/subsec-combine-text-wrap-para-line-breaks.tex
-2022/01/21 | 5712 | macros/latex/contrib/beamer/base/beamerbasenotes.sty
-2022/01/21 | 57078 | macros/latex/contrib/l3kernel/l3tl-analysis.dtx
-2022/01/21 | 569 | macros/latex/contrib/beamer/base/themes/theme/beamerthemeRochester.sty
-2022/01/21 | 558 | macros/latex/contrib/beamer/base/themes/theme/compatibility/beamerthemeshadow.sty
-2022/01/21 | 557 | macros/latex/contrib/beamer/base/themes/theme/beamerthemeMadrid.sty
-2022/01/21 | 5514 | macros/latex/contrib/beamer/doc/examples/a-lecture/beamerexample-lecture-style.tex
-2022/01/21 | 5492 | macros/latex/contrib/beamer/doc/solutions/generic-talks/generic-ornate-15min-45min.de.tex
-2022/01/21 | 547601 | macros/latex/contrib/beamer/doc/beamerexample-lecture-beamer-version.pdf
-2022/01/21 | 5429 | macros/latex/contrib/l3kernel/l3news04.tex
-2022/01/21 | 5356 | macros/latex/contrib/beamer/base/beamerbasetitle.sty
-2022/01/21 | 5306 | support/latexindent/LatexIndent/KeyEqualsValuesBraces.pm
-2022/01/21 | 5268 | support/latexindent/documentation/subsubsec-headings.tex
-2022/01/21 | 5252 | macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesidebar.sty
-2022/01/21 | 51776 | macros/latex/contrib/beamer/base/art/beamericononline.eps
-2022/01/21 | 51059 | macros/latex/contrib/l3kernel/l3fp-extended.dtx
-2022/01/21 | 5103 | macros/latex/contrib/beamer/base/themes/outer/beamerouterthememiniframes.sty
-2022/01/21 | 5073 | macros/latex/contrib/beamer/doc/solutions/generic-talks/generic-ornate-15min-45min.en.tex
-2022/01/21 | 504 | macros/latex/contrib/beamer/base/themes/theme/beamerthemeBerlin.sty
-2022/01/21 | 501 | macros/latex/contrib/beamer/base/themes/theme/beamerthemeIlmenau.sty
-2022/01/21 | 5011 | support/latexindent/LatexIndent/Check.pm
-2022/01/21 | 4977 | macros/latex/contrib/l3kernel/l3news07.tex
-2022/01/21 | 4937 | macros/latex/contrib/l3kernel/l3news01.tex
-2022/01/21 | 49311 | macros/latex/contrib/l3kernel/l3fp-expo.dtx
-2022/01/21 | 490 | macros/latex/contrib/beamer/doc/beamerfontthemeexample.tex
-2022/01/21 | 4890 | macros/latex/contrib/l3kernel/l3news.tex
-2022/01/21 | 486 | macros/latex/contrib/beamer/doc/beamerthemeexample.tex
-2022/01/21 | 485 | macros/latex/contrib/beamer/base/themes/theme/beamerthemeAnnArbor.sty
-2022/01/21 | 4858 | support/latexindent/documentation/subsubsec-ifelsefi.tex
-2022/01/21 | 482 | macros/latex/contrib/beamer/base/themes/theme/compatibility/beamerthemeplain.sty
-2022/01/21 | 47217 | macros/latex/contrib/l3kernel/l3fp-aux.dtx
-2022/01/21 | 471 | macros/latex/contrib/beamer/doc/examples/a-lecture/beamerexample-lecture-pic3.jpg
-2022/01/21 | 471 | macros/latex/contrib/beamer/base/themes/theme/beamerthemeCambridgeUS.sty
-2022/01/21 | 4716 | macros/latex/contrib/l3kernel/l3news05.tex
-2022/01/21 | 464 | macros/latex/contrib/beamer/doc/beamerouterthemeexample.tex
-2022/01/21 | 462 | macros/latex/contrib/beamer/base/themes/theme/beamerthemeDresden.sty
-2022/01/21 | 459 | macros/latex/contrib/beamer/base/themes/theme/beamerthemeSzeged.sty
-2022/01/21 | 4548 | macros/latex/contrib/beamer/base/beamerbasetheorems.sty
-2022/01/21 | 453741 | biblio/citation-style-language.zip
-2022/01/21 | 4503 | support/latexindent/LatexIndent/BlankLines.pm
-2022/01/21 | 4446 | support/latexindent/LatexIndent/Preamble.pm
-2022/01/21 | 441708 | macros/latex/contrib/beamer/doc/beamerexample-lecture-print-version.pdf
-2022/01/21 | 44096 | support/latexindent/documentation/logo.png
-2022/01/21 | 4373 | macros/latex/contrib/beamer/doc/beamerug-transparencies.tex
-2022/01/21 | 4371 | macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesmoothbars.sty
-2022/01/21 | 435 | macros/latex/contrib/beamer/doc/examples/a-lecture/beamerexample-lecture-pic5.jpg
-2022/01/21 | 4355 | support/latexindent/LatexIndent/RoundBrackets.pm
-2022/01/21 | 433 | macros/latex/contrib/beamer/base/themes/theme/compatibility/beamerthemebars.sty
-2022/01/21 | 43203 | macros/latex/contrib/l3kernel/l3debug.dtx
-2022/01/21 | 431 | macros/latex/contrib/beamer/base/themes/theme/compatibility/beamerthemeclassic.sty
-2022/01/21 | 4270 | support/latexindent/LatexIndent/NamedGroupingBracesBrackets.pm
-2022/01/21 | 425 | macros/latex/contrib/beamer/base/themes/theme/beamerthemeFrankfurt.sty
-2022/01/21 | 4252 | macros/latex/contrib/beamer/base/themes/inner/beamerinnerthemeinmargin.sty
-2022/01/21 | 42461 | macros/latex/contrib/l3kernel/l3prefixes.csv
-2022/01/21 | 4240 | macros/latex/contrib/l3kernel/l3legacy.dtx
-2022/01/21 | 4236 | macros/latex/contrib/beamer/base/themes/font/beamerfontthemedefault.sty
-2022/01/21 | 41261 | macros/latex/contrib/beamer/doc/beamerug-guidelines.tex
-2022/01/21 | 407 | macros/latex/contrib/beamer/base/themes/theme/beamerthemeJuanLesPins.sty
-2022/01/21 | 407 | macros/latex/contrib/beamer/base/themes/theme/beamerthemeDarmstadt.sty
-2022/01/21 | 40720 | macros/latex/contrib/beamer/doc/beamerug-license.tex
-2022/01/21 | 40705 | macros/latex/contrib/l3kernel/l3sort.dtx
-2022/01/21 | 40585 | macros/latex/contrib/beamer/doc/beamerug-overlays.tex
-2022/01/21 | 403 | macros/latex/contrib/beamer/base/themes/theme/beamerthemeWarsaw.sty
-2022/01/21 | 402 | macros/latex/contrib/beamer/base/themes/inner/beamerinnerthemecircles.sty
-2022/01/21 | 4026 | macros/latex/contrib/beamer/base/beamerbaseverbatim.sty
-2022/01/21 | 401 | macros/latex/contrib/beamer/base/themes/inner/beamerinnerthemerectangles.sty
-2022/01/21 | 39707 | macros/latex/contrib/beamer/doc/beamerug-globalstructure.tex
-2022/01/21 | 396 | macros/latex/contrib/beamer/base/themes/theme/compatibility/beamerthemesplit.sty
-2022/01/21 | 395879 | macros/latex/contrib/l3kernel/l3news.pdf
-2022/01/21 | 393 | macros/latex/contrib/beamer/base/themes/theme/beamerthemeLuebeck.sty
-2022/01/21 | 391 | macros/latex/contrib/beamer/base/themes/theme/beamerthemeAntibes.sty
-2022/01/21 | 390 | macros/latex/contrib/beamer/base/themes/theme/beamerthemeCopenhagen.sty
-2022/01/21 | 3834 | support/latexindent/documentation/subsubsec-special.tex
-2022/01/21 | 380 | macros/latex/contrib/beamer/doc/examples/a-lecture/beamerexample-lecture-print-version.tex
-2022/01/21 | 3803 | macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesmoothtree.sty
-2022/01/21 | 378 | macros/latex/contrib/beamer/base/themes/theme/beamerthemeBergen.sty
-2022/01/21 | 37244 | systems/texlive/tlnet/archive/tkz-euclide.r61668.tar.xz
-2022/01/21 | 37155 | macros/latex/contrib/l3kernel/l3text.dtx
-2022/01/21 | 36306 | macros/latex/contrib/beamer/doc/beamerug-color.tex
-2022/01/21 | 3615 | macros/latex/contrib/beamer/base/themes/theme/beamerthemeboxes.sty
-2022/01/21 | 3614 | support/latexindent/LatexIndent/Replacement.pm
-2022/01/21 | 35658 | macros/latex/contrib/beamer/doc/beamerug-animations.tex
-2022/01/21 | 35621 | macros/latex/contrib/l3kernel/l3quark.dtx
-2022/01/21 | 355 | macros/latex/contrib/beamer/base/themes/theme/beamerthemedefault.sty
-2022/01/21 | 3559848 | macros/latex/contrib/beamer.zip
-2022/01/21 | 3556421 | install/macros/latex/contrib/beamer.tds.zip
-2022/01/21 | 351 | macros/latex/contrib/beamer/base/themes/theme/beamerthemeMontpellier.sty
-2022/01/21 | 351 | macros/latex/contrib/beamer/base/themes/theme/beamerthemeMalmoe.sty
-2022/01/21 | 3464 | macros/latex/contrib/beamer/base/art/beamericonarticle.tex
-2022/01/21 | 3444 | macros/latex/contrib/beamer/doc/licenses/manifest-code.txt
-2022/01/21 | 343905 | macros/latex/contrib/beamer/doc/beamerexample-conference-talk.pdf
-2022/01/21 | 3435 | support/latexindent/documentation/subsubsec-environments-with-items.tex
-2022/01/21 | 342 | macros/latex/contrib/beamer/doc/examples/a-lecture/beamerexample-lecture-beamer-version.tex
-2022/01/21 | 34166 | macros/latex/contrib/l3kernel/l3intarray.dtx
-2022/01/21 | 33808 | macros/latex/contrib/beamer/doc/beamerug-elements.tex
-2022/01/21 | 3378 | support/latexindent/LatexIndent/HorizontalWhiteSpace.pm
-2022/01/21 | 33561 | macros/latex/contrib/l3kernel/CHANGELOG.md
-2022/01/21 | 333 | macros/latex/contrib/beamer/base/themes/font/beamerfontthemeprofessionalfonts.sty
-2022/01/21 | 332 | macros/latex/contrib/beamer/base/themes/theme/beamerthemePittsburgh.sty
-2022/01/21 | 33143 | macros/latex/contrib/beamer/base/art/beamericononline.20.eps
-2022/01/21 | 33116 | macros/latex/contrib/l3kernel/l3sys.dtx
-2022/01/21 | 3294 | macros/latex/contrib/beamer/base/beamerbasearticle.sty
-2022/01/21 | 32823 | macros/latex/contrib/beamer/doc/examples/a-lecture/beamerexample-lecture-logo.pdf
-2022/01/21 | 3273 | support/latexindent/LatexIndent/Tokens.pm
-2022/01/21 | 32653 | macros/latex/contrib/beamer/doc/beamerug-emulation.tex
-2022/01/21 | 32430 | macros/latex/contrib/l3kernel/l3cctab.dtx
-2022/01/21 | 3072 | macros/latex/contrib/beamer/doc/solutions/short-talks/speaker_introduction-ornate-2min.fr.tex
-2022/01/21 | 3049 | macros/latex/contrib/beamer/base/art/beamericonbook.tex
-2022/01/21 | 303561 | macros/latex/contrib/l3kernel/l3regex.dtx
-2022/01/21 | 3009 | support/latexindent/documentation/sec-the-m-switch.tex
-2022/01/21 | 2994 | macros/latex/contrib/l3kernel/README.md
-2022/01/21 | 2961 | macros/latex/contrib/beamer/doc/solutions/short-talks/speaker_introduction-ornate-2min.de.tex
-2022/01/21 | 2958 | macros/latex/contrib/beamer/base/art/beamericonarticle.20.pdf
-2022/01/21 | 295820 | macros/latex/contrib/l3kernel/l3styleguide.pdf
-2022/01/21 | 2936 | macros/latex/contrib/beamer/base/art/beamericonarticle.pdf
-2022/01/21 | 29020 | macros/latex/contrib/beamer/base/beamerbasenavigation.sty
-2022/01/21 | 2821 | macros/latex/contrib/l3kernel/l3prefixes.tex
-2022/01/21 | 2795 | support/latexindent/latexindent.pl
-2022/01/21 | 2771 | macros/latex/contrib/beamer/doc/beamerug-solutions.tex
-2022/01/21 | 2754 | macros/latex/contrib/beamer/base/themes/outer/beamerouterthemeshadow.sty
-2022/01/21 | 27425 | macros/latex/contrib/beamer/base/beamerbaseoverlay.sty
-2022/01/21 | 2734 | macros/latex/contrib/beamer/base/art/beamericonbook.20.pdf
-2022/01/21 | 26711 | support/latexindent/LatexIndent/Verbatim.pm
-2022/01/21 | 2667 | macros/latex/contrib/beamer/base/art/beamericonbook.pdf
-2022/01/21 | 26603 | macros/latex/contrib/beamer/base/art/beamericonarticle.eps
-2022/01/21 | 2627 | macros/latex/contrib/beamer/doc/solutions/short-talks/speaker_introduction-ornate-2min.en.tex
-2022/01/21 | 26232 | macros/latex/contrib/beamer/base/beamerbasecompatibility.sty
-2022/01/21 | 25650 | macros/latex/contrib/l3kernel/l3fp-random.dtx
-2022/01/21 | 25568 | macros/latex/contrib/beamer/base/beamerbaseframe.sty
-2022/01/21 | 2529 | macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesplit.sty
-2022/01/21 | 250139 | macros/latex/contrib/l3kernel/l3news09.pdf
-2022/01/21 | 2492 | support/latexindent/LatexIndent/Switches.pm
-2022/01/21 | 24762 | macros/latex/contrib/beamer/base/art/beamericonbook.20.eps
-2022/01/21 | 24673 | macros/latex/contrib/l3kernel/l3kernel-functions.dtx
-2022/01/21 | 24631 | macros/latex/contrib/l3kernel/source3body.tex
-2022/01/21 | 24611 | macros/latex/contrib/beamer/base/art/beamericononline.pdf
-2022/01/21 | 24451 | macros/latex/contrib/beamer/base/art/beamericononline.20.pdf
-2022/01/21 | 24312 | macros/latex/contrib/beamer/doc/beamerug-tutorial.tex
-2022/01/21 | 24294 | support/latexindent/documentation/latexindent.tex
-2022/01/21 | 242489 | macros/latex/contrib/l3kernel/l3syntax-changes.pdf
-2022/01/21 | 24160 | macros/latex/contrib/beamer/base/beamerbaseauxtemplates.sty
-2022/01/21 | 2390 | macros/latex/contrib/l3kernel/l3docstrip.dtx
-2022/01/21 | 23584 | support/latexindent/LatexIndent/Arguments.pm
-2022/01/21 | 2322 | macros/latex/contrib/beamer/base/themes/color/beamercolorthememonarca.sty
-2022/01/21 | 230882 | macros/latex/contrib/l3kernel/l3term-glossary.pdf
-2022/01/21 | 23075 | support/latexindent/documentation/sec-how-to-use.tex
-2022/01/21 | 23011 | macros/latex/contrib/l3kernel/l3fp-logic.dtx
-2022/01/21 | 22964 | macros/latex/contrib/beamer/doc/licenses/fdl.txt
-2022/01/21 | 22888 | support/latexindent/LatexIndent/ModifyLineBreaks.pm
-2022/01/21 | 2251777 | macros/latex/contrib/beamer/doc/beameruserguide.pdf
-2022/01/21 | 22489 | support/latexindent/documentation/sec-appendices.tex
-2022/01/21 | 2229 | macros/latex/contrib/l3kernel/source3.tex
-2022/01/21 | 22108 | macros/latex/contrib/beamer/doc/beamerug-nonpresentation.tex
-2022/01/21 | 22081 | support/latexindent/documentation/subsec-one-sentence-per-line.tex
-2022/01/21 | 2190 | macros/latex/contrib/beamer/base/themes/outer/beamerouterthemeinfolines.sty
-2022/01/21 | 2188 | support/latexindent/LatexIndent/Logger.pm
-2022/01/21 | 21782 | support/latexindent/LatexIndent/Document.pm
-2022/01/21 | 21643 | macros/latex/contrib/l3kernel/l3text-purify.dtx
-2022/01/21 | 21628 | support/latexindent/documentation/sec-replacements.tex
-2022/01/21 | 2144 | macros/latex/contrib/beamer/base/themes/theme/compatibility/beamerthemelined.sty
-2022/01/21 | 2141 | macros/latex/contrib/beamer/base/themes/color/beamercolorthemealbatross.sty
-2022/01/21 | 21365 | macros/latex/contrib/beamer/doc/beamerug-fonts.tex
-2022/01/21 | 21237 | macros/latex/contrib/l3kernel/l3deprecation.dtx
-2022/01/21 | 21219 | macros/latex/contrib/beamer/base/art/beamericonbook.eps
-2022/01/21 | 2109 | support/latexindent/documentation/sec-demonstration.tex
-2022/01/21 | 2089 | macros/latex/contrib/beamer/doc/beamerlogo.pdf
-2022/01/21 | 20751 | macros/latex/contrib/beamer/doc/examples/a-conference-talk/beamerexample-conference-talk.tex
-2022/01/21 | 20565 | support/latexindent/LatexIndent/Indent.pm
-2022/01/21 | 204990 | macros/latex/contrib/l3kernel/l3news12.pdf
-2022/01/21 | 2045 | macros/latex/contrib/beamer/doc/licenses/manifest-documentation.txt
-2022/01/21 | 2024 | macros/latex/contrib/beamer/base/themes/outer/beamerouterthemetree.sty
-2022/01/21 | 20134 | macros/latex/contrib/l3kernel/l3luatex.dtx
-2022/01/21 | 19822 | support/latexindent/LatexIndent/Sentence.pm
-2022/01/21 | 19641 | macros/latex/contrib/l3kernel/l3fp-convert.dtx
-2022/01/21 | 19301 | macros/latex/contrib/beamer/doc/examples/a-lecture/beamerexample-lecture-body.tex
-2022/01/21 | 19106 | macros/latex/contrib/beamer/doc/licenses/lppl-1-3c.txt
-2022/01/21 | 1908 | macros/latex/contrib/l3kernel/interface3.tex
-2022/01/21 | 1887 | support/latexindent/documentation/subsec-noAdditionalIndent-indentRules.tex
-2022/01/21 | 1881 | macros/latex/contrib/beamer/base/emulation/beamerseminar.sty
-2022/01/21 | 1879 | support/latexindent/documentation/figure-schematic.tex
-2022/01/21 | 18788 | support/latexindent/defaultSettings.yaml
-2022/01/21 | 1874 | support/latexindent/README
-2022/01/21 | 18534 | macros/latex/contrib/beamer/doc/beamerug-themes.tex
-2022/01/21 | 18531 | macros/latex/contrib/l3kernel/l3fp-round.dtx
-2022/01/21 | 18419 | support/latexindent/documentation/subsec-text-wrap.tex
-2022/01/21 | 18092 | macros/latex/contrib/beamer/doc/licenses/gpl-2.0.txt
-2022/01/21 | 1808 | macros/latex/contrib/beamer/base/beamerbasetwoscreens.sty
-2022/01/21 | 1797 | macros/latex/contrib/beamer/doc/emulation-examples/beamerexample-prosper.tex
-2022/01/21 | 1770 | macros/latex/contrib/beamer/base/themes/color/beamercolorthemeseagull.sty
-2022/01/21 | 1764183 | macros/latex/contrib/l3kernel/interface3.pdf
-2022/01/21 | 17622 | macros/latex/contrib/beamer/base/beamerbaselocalstructure.sty
-2022/01/21 | 1753 | macros/latex/contrib/beamer/base/beamerbaseoptions.sty
-2022/01/21 | 1741 | macros/latex/contrib/beamer/base/emulation/beamerfoils.sty
-2022/01/21 | 17080 | macros/latex/contrib/beamer/base/art/beamericonarticle.20.eps
-2022/01/21 | 170063 | macros/latex/contrib/l3kernel/l3news11.pdf
-2022/01/21 | 1677 | support/latexindent/documentation/sec-conclusions-know-limitations.tex
-2022/01/21 | 1664 | support/latexindent/documentation/logo.tex
-2022/01/21 | 16570 | support/latexindent/documentation/subsubsec-environments-and-their-arguments.tex
-2022/01/21 | 1651 | macros/latex/contrib/beamer/base/themes/color/beamercolorthemedove.sty
-2022/01/21 | 16465 | macros/latex/contrib/beamer/doc/beamerug-interaction.tex
-2022/01/21 | 1634 | macros/latex/contrib/beamer/doc/examples/a-lecture/beamerexample-lecture-pic2.jpg
-2022/01/21 | 163454 | macros/latex/contrib/l3kernel/l3news08.pdf
-2022/01/21 | 1619 | macros/latex/contrib/beamer/base/beamerarticle.sty
-2022/01/21 | 1616 | macros/latex/contrib/beamer/base/themes/color/beamercolorthemecrane.sty
-2022/01/21 | 16066 | support/latexindent/documentation/sec-fine-tuning.tex
-2022/01/21 | 1593 | macros/latex/contrib/beamer/base/beamerbaserequires.sty
-2022/01/21 | 1569 | macros/latex/contrib/beamer/base/themes/color/beamercolorthemebeetle.sty
-2022/01/21 | 1558 | support/latexindent/latexindent-module-installer.pl
-2022/01/21 | 154812 | macros/latex/contrib/l3kernel/l3doc.dtx
-2022/01/21 | 1542 | macros/latex/contrib/beamer/doc/beamerthemeexamplebase.tex
-2022/01/21 | 1540 | macros/latex/contrib/beamer/AUTHORS.md
-2022/01/21 | 151573 | macros/latex/contrib/l3kernel/l3news06.pdf
-2022/01/21 | 151363 | macros/latex/contrib/l3kernel/l3docstrip.pdf
-2022/01/21 | 150676 | macros/latex/contrib/l3kernel/l3news02.pdf
-2022/01/21 | 150279 | macros/latex/contrib/l3kernel/l3news10.pdf
-2022/01/21 | 14913 | macros/latex/contrib/l3kernel/l3news12.tex
-2022/01/21 | 14882 | macros/latex/contrib/l3kernel/l3pdf.dtx
-2022/01/21 | 14877 | macros/latex/contrib/l3kernel/l3bootstrap.dtx
-2022/01/21 | 148702 | macros/latex/contrib/l3kernel/l3news03.pdf
-2022/01/21 | 1483 | support/latexindent/LatexIndent/DoubleBackSlash.pm
-2022/01/21 | 1477 | support/latexindent/documentation/title.tex
-2022/01/21 | 1475 | macros/latex/contrib/beamer/base/themes/color/beamercolorthemespruce.sty
-2022/01/21 | 14512 | macros/latex/contrib/beamer/doc/beamerug-introduction.tex
-2022/01/21 | 144509 | macros/latex/contrib/l3kernel/l3tl.dtx
-2022/01/21 | 1430 | support/latexindent/documentation/subsec-text-wrap-summary.tex
-2022/01/21 | 14030 | support/latexindent/documentation/subsec-commands-and-their-options.tex
-2022/01/21 | 13969 | support/latexindent/LatexIndent/Special.pm
-2022/01/21 | 1388 | macros/latex/contrib/beamer/base/multimedia/multimediasymbols.sty
-2022/01/21 | 1368 | macros/latex/contrib/beamer/base/themes/color/beamercolorthemefly.sty
-2022/01/21 | 13642 | macros/latex/contrib/beamer/base/beamerbasefont.sty
-2022/01/21 | 136306 | macros/latex/contrib/l3kernel/l3file.dtx
-2022/01/21 | 1354 | macros/latex/contrib/beamer/doc/beamercolorthemeexample.tex
-2022/01/21 | 1353 | macros/latex/contrib/beamer/LICENSE.md
-2022/01/21 | 13527 | macros/latex/contrib/beamer/base/beamerbasesection.sty
-2022/01/21 | 13122 | support/latexindent/LatexIndent/FileContents.pm
-2022/01/21 | 1309 | macros/latex/contrib/beamer/base/themes/color/beamercolorthemebeaver.sty
-2022/01/21 | 13099090 | install/macros/latex/contrib/l3kernel.tds.zip
-2022/01/21 | 13080 | macros/latex/contrib/beamer/base/themes/inner/beamerinnerthemedefault.sty
-2022/01/21 | 1306 | macros/latex/contrib/beamer/base/themes/theme/compatibility/beamerthemesidebar.sty
-2022/01/21 | 129039 | macros/latex/contrib/l3kernel/l3basics.dtx
-2022/01/21 | 12845782 | macros/latex/contrib/l3kernel.zip
-2022/01/21 | 128309 | macros/latex/contrib/l3kernel/l3news07.pdf
-2022/01/21 | 12783 | macros/latex/contrib/l3kernel/l3fp-traps.dtx
-2022/01/21 | 12661 | support/latexindent/LatexIndent/Braces.pm
-2022/01/21 | 12589 | macros/latex/contrib/beamer/base/beamerbasecolor.sty
-2022/01/21 | 12536 | macros/latex/contrib/beamer/doc/beamerug-compatibility.tex
-2022/01/21 | 124829 | macros/latex/contrib/l3kernel/l3token.dtx
-2022/01/21 | 12480 | macros/latex/contrib/beamer/doc/emulation-examples/beamerexample-seminar.tex
-2022/01/21 | 1247 | macros/latex/contrib/beamer/base/themes/theme/beamerthemeMarburg.sty
-2022/01/21 | 12465 | macros/latex/contrib/beamer/doc/beamerug-macros.tex
-2022/01/21 | 124510 | macros/latex/contrib/l3kernel/l3keys.dtx
-2022/01/21 | 1244 | macros/latex/contrib/beamer/doc/examples/a-lecture/beamerexample-lecture-pic6.jpg
-2022/01/21 | 1240 | macros/latex/contrib/beamer/base/emulation/beamertexpower.sty
-2022/01/21 | 12310 | macros/latex/contrib/beamer/base/beamer.cls
-2022/01/21 | 1230 | macros/latex/contrib/beamer/base/themes/color/beamercolorthemewolverine.sty
-2022/01/21 | 12302 | support/latexindent/LatexIndent/HiddenChildren.pm
-2022/01/21 | 122710 | macros/latex/contrib/l3kernel/l3news01.pdf
-2022/01/21 | 12222 | macros/latex/contrib/beamer/doc/beamerug-workflow.tex
-2022/01/21 | 12171 | macros/latex/contrib/beamer/base/beamerbaseframecomponents.sty
-2022/01/21 | 11962 | support/latexindent/documentation/subsec-remove-para-line-breaks.tex
-2022/01/21 | 11884 | macros/latex/contrib/l3kernel/l3styleguide.tex
-2022/01/21 | 118192360 | macros/context/latest/cont-tmf.zip
-2022/01/21 | 11781 | macros/latex/contrib/l3kernel/l3fparray.dtx
-2022/01/21 | 114588 | macros/latex/contrib/l3kernel/l3news04.pdf
-2022/01/21 | 1140 | macros/latex/contrib/beamer/base/beamerbasethemes.sty
-2022/01/21 | 113422 | macros/latex/contrib/l3kernel/l3str-convert.dtx
-2022/01/21 | 112487 | macros/latex/contrib/l3kernel/l3news05.pdf
-2022/01/21 | 1111 | macros/latex/contrib/beamer/README.md
-2022/01/21 | 1094 | macros/latex/contrib/beamer/base/themes/color/beamercolorthemeseahorse.sty
-2022/01/21 | 10910 | macros/latex/contrib/beamer/doc/beamerug-notes.tex
-2022/01/21 | 1089386 | support/latexindent/documentation/latexindent.pdf
-2022/01/21 | 10848 | support/latexindent/documentation/sec-indent-config-and-settings.tex
-2022/01/21 | 10802 | support/latexindent/LatexIndent/Heading.pm
-2022/01/21 | 107813 | macros/latex/contrib/l3kernel/l3expan.dtx
-2022/01/21 | 107383 | macros/latex/contrib/l3kernel/l3news09.tex
-2022/01/21 | 1067668 | systems/texlive/tlnet/archive/tkz-euclide.doc.r61668.tar.xz
-2022/01/21 | 1054 | macros/latex/contrib/beamer/base/themes/theme/beamerthemeGoettingen.sty
-2022/01/21 | 10543 | macros/latex/contrib/beamer/base/multimedia/multimedia.sty
-2022/01/21 | 1050 | macros/latex/contrib/beamer/base/themes/color/beamercolorthemedolphin.sty
-2022/01/21 | 105029 | macros/latex/contrib/l3kernel/l3fp-parse.dtx
-2022/01/21 | 10347 | support/latexindent/LatexIndent/Command.pm
-2022/01/21 | 10230 | macros/latex/contrib/beamer/doc/emulation-examples/beamerexample-texpower.tex
-2022/01/21 | 1013 | macros/latex/contrib/beamer/base/themes/color/beamercolorthemewhale.sty
-2022/01/21 | 1012 | macros/latex/contrib/beamer/base/themes/inner/beamerinnerthemerounded.sty
-2022/01/21 | 1008 | macros/latex/contrib/beamer/base/themes/font/beamerfontthemeserif.sty
diff --git a/macros/latex/contrib/bangorcsthesis/README b/macros/latex/contrib/bangorcsthesis/README
index 78f3da354c..fd7a4f3b0e 100644
--- a/macros/latex/contrib/bangorcsthesis/README
+++ b/macros/latex/contrib/bangorcsthesis/README
@@ -1,6 +1,6 @@
Bangor University Computer Science Department Thesis Document Class
-Cameron Gray <c.gray@bangor.ac.uk> November 12, 2021
+Cameron Gray <c.gray@bangor.ac.uk> January 28, 2022
Abstract
diff --git a/macros/latex/contrib/bangorcsthesis/bangorcsthesis.dtx b/macros/latex/contrib/bangorcsthesis/bangorcsthesis.dtx
index c5234e4ed0..f6e8e18259 100644
--- a/macros/latex/contrib/bangorcsthesis/bangorcsthesis.dtx
+++ b/macros/latex/contrib/bangorcsthesis/bangorcsthesis.dtx
@@ -52,10 +52,11 @@
%\changes{v1.5.2}{2017/08/10}{Altered heading handling for the references section.}
%\changes{v1.5.3}{2018/10/05}{Altered School and College names.}
%\changes{v1.5.4}{2021/11/12}{Added more Engineering degree types.}
+%\changes{v1.5.5}{2022/01/28}{Fixed a typo in degree scheme.}
%\pagestyle{fancy}
%\title{Bangor University Computer Science and Electronic Engineering Department\\ Thesis Document Class}
%\author{Cameron Gray \texttt{<c.gray@bangor.ac.uk>}}
-%\date{November 12, 2021}
+%\date{January 28, 2022}
%\maketitle
%
%\begin{abstract}
@@ -266,11 +267,11 @@
% \end{macrocode}
%\fi
% \begin{macrocode}
-\def\version{1.5.4}
+\def\version{1.5.5}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{bangorcsthesis}[2021/11/12 \version C. Gray]
+\ProvidesClass{bangorcsthesis}[2022/01/28 \version C. Gray]
% Originally inspired by Clean Thesis
% - http://cleanthesis.der-ric.de/
@@ -307,7 +308,7 @@
\newcommand{\degree}{Master of Science}
}
\DeclareOption{meng}{
- \newcommand{\degree}{Moster of Engineering}
+ \newcommand{\degree}{Master of Engineering}
}
\DeclareOption{mscres}{
\newcommand{\degree}{Master of Science by Research}
diff --git a/macros/latex/contrib/bangorcsthesis/bangorcsthesis.pdf b/macros/latex/contrib/bangorcsthesis/bangorcsthesis.pdf
index c67e163222..708cc73132 100644
--- a/macros/latex/contrib/bangorcsthesis/bangorcsthesis.pdf
+++ b/macros/latex/contrib/bangorcsthesis/bangorcsthesis.pdf
Binary files differ
diff --git a/macros/latex/contrib/codebox/codebox-doc-en.pdf b/macros/latex/contrib/codebox/codebox-doc-en.pdf
index f8edd671df..119a64183a 100644
--- a/macros/latex/contrib/codebox/codebox-doc-en.pdf
+++ b/macros/latex/contrib/codebox/codebox-doc-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/codebox/codebox-doc-en.tex b/macros/latex/contrib/codebox/codebox-doc-en.tex
index 3ad34985de..7fe079a045 100644
--- a/macros/latex/contrib/codebox/codebox-doc-en.tex
+++ b/macros/latex/contrib/codebox/codebox-doc-en.tex
@@ -14,7 +14,7 @@
\title{\bfseries\pkg{codebox}:programming code box}
\author{Nan Geng\\ \url{nangeng@nwafu.edu.cn}}
-\date{2022/01/04\qquad v1.0.3\thanks{\url{https://github.com/registor/codebox}}
+\date{2022/01/28\qquad v1.0.4\thanks{\url{https://github.com/registor/codebox}}
\thanks{\url{https://gitee.com/nwafu_nan/codebox}}}
\begin{document}
@@ -312,9 +312,9 @@ or command's \oarg{options}.
\subsection{seperation between line number and code}
-\begin{function}[added=2021-12-26,updated=2021-12-26]{linenumsep}
+\begin{function}[added=2021-12-26,updated=2022-1-28]{linenumsep}
\begin{syntax}
- linenumsep = \Arg{float number} \init{3.0}
+ linenumsep = \Arg{float number} \init{1.80}
\end{syntax}
\opt{linenumsep} is used to set the seperation between line number and code,
valid only for \pkg{minted} engine.
diff --git a/macros/latex/contrib/codebox/codebox.dtx b/macros/latex/contrib/codebox/codebox.dtx
index 8365020d9f..c1923d450e 100644
--- a/macros/latex/contrib/codebox/codebox.dtx
+++ b/macros/latex/contrib/codebox/codebox.dtx
@@ -148,7 +148,7 @@ Copyright and Licence
%</internal>
%<package>\NeedsTeXFormat{LaTeX2e}[2020/10/01]
%<package>\RequirePackage{expl3}
-%<+package>\GetIdInfo$Id: codebox.dtx 1.0.3 2022-01-04 08:00:00 +0800 Nan Geng <nangeng@nwafu.edu.cn> $
+%<+package>\GetIdInfo$Id: codebox.dtx 1.0.4 2022-01-28 08:00:00 +0800 Nan Geng <nangeng@nwafu.edu.cn> $
%<package> {Code Box with tcolorbox and minted/listings.}
%<package>\ProvidesExplPackage{\ExplFileName}
%<package> {\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -477,9 +477,9 @@ Copyright and Licence
%
% \subsection{行号间距}
%
-% \begin{function}[added=2021-12-26,updated=2021-12-26]{linenumsep}
+% \begin{function}[added=2021-12-26,updated=2022-1-28]{linenumsep}
% \begin{syntax}
-% linenumsep = \Arg{浮点数} \init{3.0}
+% linenumsep = \Arg{浮点数} \init{1.80}
% \end{syntax}
% \opt{linenumsep} 用于设置代码盒子行号与代码的间距,仅对\textbf{minted}
% 引擎有效,取浮点数,单位是mm。默认值为\textbf{3.0}。
@@ -723,6 +723,8 @@ Copyright and Licence
}%
% \end{macrocode}
%
+% \changes{v1.0.4}{2022/1/28}{修订分页代码盒子无行号底色问题}
+%
% 代码盒子cv样式
%
% \begin{macrocode}
@@ -748,7 +750,19 @@ Copyright and Licence
\begin{tcbclipinterior}
\fill[cvblue] (frame.south~west) rectangle ([xshift=5.0mm,yshift=0mm]frame.north~west);
\end{tcbclipinterior}
- }
+ },
+ underlay~middle = {
+ \begin{tcbclipinterior}
+ \fill[cvblue] (frame.south~west) rectangle
+ ([xshift=5.0mm,yshift=0mm]frame.north~west);
+ \end{tcbclipinterior}
+ },
+ underlay~last = {
+ \begin{tcbclipinterior}
+ \fill[cvblue] (frame.south~west) rectangle
+ ([xshift=5.0mm,yshift=0mm]frame.north~west);
+ \end{tcbclipinterior}
+ },
}
}%
% \end{macrocode}
@@ -787,6 +801,8 @@ Copyright and Licence
% \end{macrocode}
% \end{variable}
%
+% \changes{v1.0.4}{2022/1/28}{修正linenumsep为默认值1.80以避免3位行号溢出边界}
+%
% \subsection{选项处理}
%
% 定义 |codebox| 键值类。
@@ -865,7 +881,7 @@ Copyright and Licence
% 行号与文本之间的距离(单位:mm)
% \begin{macrocode}
linenumsep .fp_set:N = \l_@@_linenumber_sep_fp,
- linenumsep .initial:n = 3.00,
+ linenumsep .initial:n = 1.80,
% \end{macrocode}
% \end{macro}
%
@@ -1021,6 +1037,7 @@ Copyright and Licence
% \end{macro}
%
% \changes{v1.0.1}{2021/12/27}{修订代码盒子前多一个逗号的问题}
+% \changes{v1.0.4}{2022/1/28}{修改用户接口的{group_begin}到开始位置}
%
% \subsection{不计数代码盒子用户接口}
%
@@ -1029,9 +1046,9 @@ Copyright and Licence
% \begin{macrocode}
\NewDocumentEnvironment{ codebox }{O{} m }
{
- \bool_set_false:N \l_@@_comment_bool
\group_begin:
- \IfNoValueF{#1}{ \keys_set:nn { codebox } { #1 } }
+ \bool_set_false:N \l_@@_comment_bool
+ \keys_set:nn { codebox } { #1 }
\@@_code_engine_tcbset:
\@@_comment_tcbset:
\tcbset{lang, title={#2} }%
@@ -1047,9 +1064,9 @@ Copyright and Licence
% \begin{macrocode}
\NewDocumentEnvironment{ codebox* }{O{} m }
{
- \bool_set_false:N \l_@@_comment_bool
\group_begin:
- \IfNoValueF{#1}{ \keys_set:nn { codebox } { #1 } }
+ \bool_set_false:N \l_@@_comment_bool
+ \keys_set:nn { codebox } { #1 }
\@@_code_engine_tcbset:
\@@_comment_tcbset:
\tcbset{lang, title={#2} }%
@@ -1065,15 +1082,14 @@ Copyright and Licence
% \begin{macrocode}
\NewDocumentCommand \codefile { s O{} m m }
{
+ \group_begin:
\IfBooleanTF{#1}
{
\bool_set_true:N \l_@@_comment_bool
}{
\bool_set_false:N \l_@@_comment_bool
}
-
- \group_begin:
- \IfNoValueF{#2}{ \keys_set:nn { codebox } { #2 } }
+ \keys_set:nn { codebox } { #2 }
\@@_code_engine_tcbset:
\@@_comment_tcbset:
\tcbset{
@@ -1106,9 +1122,9 @@ Copyright and Licence
}
\NewDocumentEnvironment{ codeview }{O{} m }
{
- \bool_set_false:N \l_@@_comment_bool
\group_begin:
- \IfNoValueF{#1}{ \keys_set:nn { codebox } { #1 } }
+ \bool_set_false:N \l_@@_comment_bool
+ \keys_set:nn { codebox } { #1 }
\@@_code_engine_tcbset:
\@@_comment_tcbset:
\tl_if_empty:NF \l_@@_label_name_tl
@@ -1142,9 +1158,9 @@ Copyright and Licence
% \begin{macrocode}
\NewDocumentEnvironment{ codeview* }{O{} m }
{
- \bool_set_true:N \l_@@_comment_bool
\group_begin:
- \IfNoValueF{#1}{ \keys_set:nn { codebox } { #1 } }
+ \bool_set_true:N \l_@@_comment_bool
+ \keys_set:nn { codebox } { #1 }
\@@_code_engine_tcbset:
\@@_comment_tcbset:
\tl_if_empty:NF \l_@@_label_name_tl
@@ -1181,15 +1197,14 @@ Copyright and Licence
}
\NewDocumentCommand \cvfile { s O{} m m }
{
+ \group_begin:
\IfBooleanTF{#1}
{
\bool_set_true:N \l_@@_comment_bool
}{
\bool_set_false:N \l_@@_comment_bool
}
-
- \group_begin:
- \IfNoValueF{#2}{ \keys_set:nn { codebox } { #2 } }
+ \keys_set:nn { codebox } { #2 }
\@@_code_engine_tcbset:
\@@_comment_tcbset:
\tl_if_empty:NF \l_@@_label_name_tl
diff --git a/macros/latex/contrib/codebox/codebox.pdf b/macros/latex/contrib/codebox/codebox.pdf
index b82446cb1c..84addcda66 100644
--- a/macros/latex/contrib/codebox/codebox.pdf
+++ b/macros/latex/contrib/codebox/codebox.pdf
Binary files differ
diff --git a/macros/latex/contrib/datax/README.md b/macros/latex/contrib/datax/README.md
index 1471c9a39d..ce8d63cb24 100644
--- a/macros/latex/contrib/datax/README.md
+++ b/macros/latex/contrib/datax/README.md
@@ -1,5 +1,7 @@
# The datax package
-A LaTeX package to insert data from a script in a document. Interacting plugins available at [Github, Datax-package](https://github.com/Datax-package).
+
+A LaTeX package to insert data from a script in a document. Interacting plugins
+available at [Github, Datax-package](https://github.com/Datax-package).
## Example usage
Julia script:
@@ -29,17 +31,19 @@ Julia | [LaTeXDatax.jl](https://github.com/Datax-package/LaTeXDatax.jl) | David
MATLAB | [LaTeXDatax.m](https://github.com/Datax-package/Datax.m) | David Gustavsson
Python | [LaTeXDatax.py](https://github.com/Datax-package/LaTeXDatax.py) | David Gustavsson
-If your language isn't listed above, check [the super-repo](https://github.com/Datax-package).
-Extending it to your language of choice should be fairly simple, just make it so your script can write `\pgfkeyssetvalue{/datax/<tag>}{<value>}` to a file.
-If you end up writing a plugin for a language, or if you want to request one, please make a feature request or send me an e-mail.
+If your language isn't listed above, check [the
+super-repo](https://github.com/Datax-package). Extending it to your language of
+choice should be fairly simple, just make it so your script can write
+`\pgfkeyssetvalue{/datax/<tag>}{<value>}` to a file. If you end up writing a
+plugin for a language, or if you want to request one, please make a feature
+request or send me an e-mail.
## Copyright and license
-Copyright 2020 David Gustavsson (david.e.gustavsson@gmail.com)
+Copyright 2020 − 2022 David Gustavsson (david.e.gustavsson@gmail.com)
-This package may be distributed and/or modified under the
-conditions of the LaTeX Project Public License, either
-version 1.3 of this license or (at your option) any later
-version. The latest version of this license is in:
+This package may be distributed and/or modified under the conditions of the
+LaTeX Project Public License, either version 1.3 of this license or (at your
+option) any later version. The latest version of this license is in:
http://www.latex-project.org/lppl.txt
diff --git a/macros/latex/contrib/datax/datax.dtx b/macros/latex/contrib/datax/datax.dtx
index d1f9e5c996..81b5c7f64c 100644
--- a/macros/latex/contrib/datax/datax.dtx
+++ b/macros/latex/contrib/datax/datax.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2020 by David Gustavsson
+% Copyright (C) 2020-2021 by David Gustavsson
%
% This file may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
@@ -17,7 +17,7 @@
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}[2020/02/02]
%<package>\ProvidesPackage{datax}
-%<package> [2021-09-22 v1.1.2 data import into LaTeX]
+%<package> [2022-01-27 v1.2.0 data import into LaTeX]
%<package>\RequirePackage{pgfkeys}
%<package>\RequirePackage{pgfopts}
%
@@ -60,7 +60,7 @@
%</driver>
% \fi
%
-%\CheckSum{29}
+%\CheckSum{21}
%
% \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
@@ -82,6 +82,7 @@
% \changes{v1.1}{2020/11/17}{Polishing for release}
% \changes{v1.1.1}{2020/11/29}{Renaming the plugins, adding Python support}
% \changes{v1.1.2}{2021-09-22}{Removing excessive spaces}
+% \changes{v1.2.0}{2022-01-27}{Removing package wide siunitx options}
%
% \GetFileInfo{datax.sty}
% \DoNotIndex{}
@@ -181,7 +182,6 @@
% Default data file name: \texttt{data.tex}
% \begin{macrocode}
\pgfkeys{ /packageoptions/dataxfile/.initial=data.tex, }
-\pgfkeys{ /packageoptions/siunitxoptions/.initial={}, }
% \end{macrocode}
% Read any given options into family \texttt{/packageoptions/}. Then introduce
% family \texttt{/datax/} where all the variables will be stored.
@@ -204,8 +204,6 @@
}{}{
\PackageWarning{datax}{Cannot read file `\dataxfile'}
}
-\newif\ifhassiunitx
-\@ifpackageloaded{siunitx}{\hassiunitxtrue}{\hassiunitxfalse}
% \end{macrocode}
% \begin{macro}{\datax}
% Include datum. If the supplied tag is unused, print bold question marks (like
@@ -214,9 +212,9 @@
\newcommand{\datax}[2][]{%
\pgfkeysifdefined{/datax/#2}{%
{%
- \ifhassiunitx%
- \sisetup{\pgfkeysvalueof{/packageoptions/siunitxoptions},#1}%
- \fi%
+ \@ifpackageloaded{siunitx}{%
+ \sisetup{#1}%
+ }{}%
\pgfkeysvalueof{/datax/#2}%
}%
}{%
diff --git a/macros/latex/contrib/datax/datax.pdf b/macros/latex/contrib/datax/datax.pdf
index 0c266b995d..65e79fdba7 100644
--- a/macros/latex/contrib/datax/datax.pdf
+++ b/macros/latex/contrib/datax/datax.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index 36103ea8c1..81156d1337 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -15,7 +15,7 @@
%<*class>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2022/01/25}{1.53}
+\ProvidesExplClass{easybook}{2022/01/28}{1.54}
{Typeset Chinese theses or books}
\bool_set_false:N \l__eb_compile_draft_bool
@@ -305,7 +305,7 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e,etoolbox}
-\ProvidesExplPackage{easybase}{2022/01/25}{1.53}
+\ProvidesExplPackage{easybase}{2022/01/28}{1.54}
{Typeset Chinese theses or books}
\cs_generate_variant:Nn \dim_set:Nn { NV }
@@ -382,12 +382,12 @@
}
\msg_new:nnn { easybase } { package-repeat-load-i }
{
- The~macro~package~#1~has~been~loaded~repeatedly. \\
+ The~macro~package~'#1'~has~been~loaded~repeatedly. \\
Please~pass~the~arguments~by \\
the~\string\PassOptionsToPackage{#2}{#1}\ command.
}
\msg_new:nnn { easybase } { package-repeat-load-ii }
- { The~macro~package~#1~has~been~loaded~repeatedly. }
+ { The~macro~package~'#1'~has~been~loaded~repeatedly. }
\cs_set_eq:NN \eb@usepackage@save \usepackage
\RenewDocumentCommand{\usepackage}{O{}m}
{
@@ -469,14 +469,14 @@
\eb_seq_map_inline:nn
{ style,subfont,spread,bibset,thmset,hdrset,tocset }
{
- \msg_new:nnn { easybase } { abandon-#1 }
+ \msg_new:nnn { easybase } { deprecated-#1 }
{
- ##1~is~an~abandoned~option~of~#1~module. \\
+ The~option~'##1'~of~module~'#1'~is~deprecated~or~non-existent. \\
Please~browse~the~user~manual~for~the~new~options.
}
}
-\cs_new_protected:Npn \eb_msg_abandon_option:n #1
- { \msg_warning:nnV { easybase } { abandon-#1 } \l_keys_key_str }
+\cs_new_protected:Npn \eb_msg_deprecated_option:n #1
+ { \msg_warning:nnV { easybase } { deprecated-#1 } \l_keys_key_str }
\cs_if_exist:NF \chapter
{
\newcounter{chapter}
@@ -498,7 +498,7 @@
}
\msg_new:nnn { easybase } { no-chapter }
{
- Your~document~class~is~in~article~mode. \\
+ Your~document~class~is~in~'article'~mode. \\
The~\string\chapter\ command~will~not~be~used.
}
@@ -522,7 +522,7 @@
}
\msg_new:nnn { easybase } { package-old }
{
- Package~#1~has~been~out~of~date. \\
+ Package~'#1'~has~been~out~of~date. \\
Some~problems~or~errors~may~occur \\
if~you~continue~compiling. \\\\
Please~update~your~macro~package~from~CTAN.
@@ -919,7 +919,7 @@
fntext-num/unknown .code:n = \eb_fnmate_short_label_set:Nn \thefootnote {#1},
fnmate-num .meta:n = { fntext-num = #1,fnmark-num = #1 },
fnmate-num .initial:n = plain,
- unknown .code:n = \eb_msg_abandon_option:n { hdrset }
+ unknown .code:n = \eb_msg_deprecated_option:n { hdrset }
}
\eb_at_end_preamble:n
@@ -1046,7 +1046,7 @@
{
It~is~not~recommended~that~you~use~the \\
hang,~symbol,~marginal,~flushmargin~or~bottom \\
- options~of~the~footmisc~package.
+ options~of~the~'footmisc'~package.
}
\cs_set_protected:Npn \footref #1
@@ -1301,7 +1301,7 @@
hang .initial:n = false,
pagenumwd .code:n = \contentsmargin{#1},
pagenumwd .initial:n = 1.55em,
- unknown .code:n = \eb_msg_abandon_option:n { tocset }
+ unknown .code:n = \eb_msg_deprecated_option:n { tocset }
}
\NewDocumentCommand{\tocrule}{st-O{0.7pc}D(){1.2}mO{}}
{
@@ -1499,7 +1499,7 @@
hyphen-listing = #1,hyphen-equation = #1
},
hyphen-every .initial:n = .,
- unknown .code:n = \eb_msg_abandon_option:n { style }
+ unknown .code:n = \eb_msg_deprecated_option:n { style }
}
\eb_seq_map_inline:nn
{ figure,table,lstlisting,equation }
@@ -1730,7 +1730,7 @@
footnote .tl_set:N = \l__eb_subfont_footnote_tl,
marginpar .tl_set:N = \l__eb_subfont_marginpar_tl,
marginpar .initial:n = \footnotesize,
- unknown .code:n = \eb_msg_abandon_option:n { subfont }
+ unknown .code:n = \eb_msg_deprecated_option:n { subfont }
}
\cs_new_protected:Npn \addtosubfont #1#2
{
@@ -1775,7 +1775,7 @@
line = #1,table = #1,math = #1,
caption-every = #1,footnote = #1
},
- unknown .code:n = \eb_msg_abandon_option:n { spread }
+ unknown .code:n = \eb_msg_deprecated_option:n { spread }
}
\tl_gset:Nn \marginfont { \l__eb_subfont_marginpar_tl }
@@ -1821,10 +1821,9 @@
}
\dim_zero_new:N \mathindent
\skip_set:Nn \parskip { 0pt plus 2pt minus 1pt }
-\skip_set:Nn \intextsep { 14pt plus 2pt minus 2pt }
-\skip_set:Nn \textfloatsep { 16pt plus 2pt minus 4pt }
+\skip_set:Nn \textfloatsep { 12pt plus 2pt minus 4pt }
+\skip_set:Nn \dbltextfloatsep { 12pt plus 2pt minus 4pt }
\skip_set:Nn \multicolsep { 12pt plus 4pt minus 3pt }
-\skip_set:Nn \dbltextfloatsep { 16pt plus 2pt minus 4pt }
\int_gset:Nn \vbadness { 10000 }
\int_gset:Nn \hbadness { 10000 }
\setcounter{topnumber}{4}
@@ -1961,7 +1960,7 @@
\ctex_define:nn { thmset }
{
tcbwrap .code:n = { },
- unknown .code:n = \eb_msg_abandon_option:n { thmset }
+ unknown .code:n = \eb_msg_deprecated_option:n { thmset }
}
\cs_undefine:N \proof
\declaretheoremstyle{fancy}[
@@ -2043,7 +2042,7 @@
datafile .clist_set:N = \l__eb_bib_datafile_clist,
bititle .tl_set:N = \eb@bib@bitoc@title,
bititle .initial:n = Bibliography,
- unknown .code:n = \eb_msg_abandon_option:n { bibset }
+ unknown .code:n = \eb_msg_deprecated_option:n { bibset }
}
\cs_new_protected:Npn \eb_bibtex_natbib_set:
@@ -2344,7 +2343,7 @@
}
%</package>
%<*tcolorbox>
-\ProvidesExplFile{eb-tcolorbox.cfg}{2022/01/25}{1.53}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2022/01/28}{1.54}
{Customization of tcolorbox for easybook}
\cs_set_protected:Npn \addtotcbstyle #1#2
diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf
index ae5595cfa2..bd4402b691 100644
--- a/macros/latex/contrib/easybook/easybook.pdf
+++ b/macros/latex/contrib/easybook/easybook.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex
index 5a46413dc1..f6323022a7 100644
--- a/macros/latex/contrib/easybook/easybook.tex
+++ b/macros/latex/contrib/easybook/easybook.tex
@@ -21,8 +21,8 @@
name = easybook,
color-scheme = blue,
title = EASYBOOK 使用手册,
- version = v1.53,
- date = 2022/01/25,
+ version = v1.54,
+ date = 2022/01/28,
authors = 瞿毅,
info = 排版简体中文学位论文和书籍,
email = q1jx@foxmail.com,
@@ -1252,7 +1252,7 @@
\item 增加定义脚注正文和内容标记格式的命令 \cs{defupfntmark} 和 \cs{defdownfntmark}。
\item 新增文档主目录中双语标题列表的输出排列方式选项 \option{bilist}。
\end{version}
- \begin{version}[v = 1.53,date = 2022/01/25]
+ \begin{version}[v = 1.54,date = 2022/01/28]
\added
\item 新增文类选项 \option{theorem} 用于提供定理功能支持。
\deprecated
diff --git a/macros/latex/contrib/pascaltriangle/pascaltriangle.pdf b/macros/latex/contrib/pascaltriangle/pascaltriangle.pdf
index 961e826e40..bab79fbb92 100644
--- a/macros/latex/contrib/pascaltriangle/pascaltriangle.pdf
+++ b/macros/latex/contrib/pascaltriangle/pascaltriangle.pdf
Binary files differ
diff --git a/macros/latex/contrib/pascaltriangle/pascaltriangle.sty b/macros/latex/contrib/pascaltriangle/pascaltriangle.sty
index 6c4be46ac3..04c928e4c6 100644
--- a/macros/latex/contrib/pascaltriangle/pascaltriangle.sty
+++ b/macros/latex/contrib/pascaltriangle/pascaltriangle.sty
@@ -7,7 +7,7 @@
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
-\ProvidesExplPackage{pascaltriangle}{2022-01-07}{v1.0.0}
+\ProvidesExplPackage{pascaltriangle}{2022-01-28}{v1.0.1}
{Typeset Pascal triangle figure with LaTeX3}
\RequirePackage{xparse}
@@ -388,8 +388,8 @@
%% 绘制Pascal三角形用户接口
\NewDocumentCommand{\pascal}{O{} m}
{
- \IfNoValueF{#1}{ \keys_set:nn { pascal } {#1} }
\group_begin:
+ \keys_set:nn { pascal } {#1}
\__pascal_triangle_draw:n{#2}
\group_end:
}
diff --git a/macros/latex/contrib/pascaltriangle/pascaltriangle.tex b/macros/latex/contrib/pascaltriangle/pascaltriangle.tex
index ff9536f62f..55f07865a5 100644
--- a/macros/latex/contrib/pascaltriangle/pascaltriangle.tex
+++ b/macros/latex/contrib/pascaltriangle/pascaltriangle.tex
@@ -119,7 +119,7 @@
{ \__codedoc_cmd:no {#1} { #2 } }
\ExplSyntaxOff
-\def\vers{\texttt{v1.0.0}
+\def\vers{\texttt{v1.0.1}
\thanks{\url{https://github.com/registor/pascaltriangle}}
\thanks{\url{https://gitee.com/nwafu_nan/pascaltriangle}}
}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md b/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md
index ec1686c578..62f2c92005 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md
+++ b/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md
@@ -5,7 +5,16 @@ first release 0.95a, 2021-02-23 will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
this project uses date-based 'snapshot' version identifiers.
-## [Unreleased]
+## [2022-01-28]
+
+### Changed
+ - adapted the color patch to the changes in (x)color.sty (mathcolor)
+ - documentation uses new doc version (so needs currently latex-dev to compile)
+
+### Fixed
+
+ - xcolor patch failed with color names containing active chars (e.g. from french)
+ - clipping of xform object on the dvips route (issue #25)
## [2022-01-13]
### Changed
diff --git a/macros/latex/contrib/pdfmanagement-testphase/README.md b/macros/latex/contrib/pdfmanagement-testphase/README.md
index e08a4162ff..9336ce7ab4 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/README.md
+++ b/macros/latex/contrib/pdfmanagement-testphase/README.md
@@ -1,6 +1,6 @@
# LaTeX PDF management testphase bundle
-Version: 0.95j, 2022-01-13
+Version: 0.95k, 2022-01-28
This package is used during a test phase to load the new PDF management code
of LaTeX.
diff --git a/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty b/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty
index 9ea89b54e1..b530980baa 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty
+++ b/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty
@@ -12,7 +12,9 @@
%%
%%
%% color.dtx Copyright (C) 1994--1999 David Carlisle
-%% Copyright (C) 2005-2020 David Carlisle, LaTeX3 Project
+%% Copyright (C) 2005-2022
+%% The LaTeX Project and any individual authors listed elsewhere
+%% in this file.
%%
%% This file is part of the Standard LaTeX `Graphics Bundle'.
%% It may be distributed under the terms of the LaTeX Project Public
@@ -22,8 +24,8 @@
%% This file has the LPPL maintenance status "maintained".
%%
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesPackage{color-ltx}[2022-01-13 v0.95j
- Standard LaTeX Color (patched for l3color, part of pdfmanagement-testphase, original version 2021/03/07 v1.2e) (DPC)]
+\ProvidesPackage{color-ltx}[2022-01-28 v0.95k
+ Standard LaTeX Color (patched for l3color, part of pdfmanagement-testphase, original version 2022/01/06 v1.3d) (DPC)]
\edef\Gin@codes{%
\catcode`\noexpand\^^A\the\catcode`\^^A\relax
\catcode`\noexpand\"\the\catcode`\"\relax
@@ -58,7 +60,7 @@
\def\c@lor@namefile{dvipsnam.def}}
\DeclareOption{xdvi}{\ExecuteOptions{dvips,monochrome}}
\DeclareOption{dvipdf}{\def\Gin@driver{dvipdf.def}}
-\DeclareOption{dvipdfm}{\def\Gin@driver{dvipdfm.def}}
+\DeclareOption{dvipdfm}{\def\Gin@driver{dvipdfmx.def}}
\DeclareOption{dvipdfmx}{\def\Gin@driver{dvipdfmx.def}}
\DeclareOption{pdftex}{\def\Gin@driver{pdftex.def}}
\DeclareOption{luatex}{\def\Gin@driver{luatex.def}}
@@ -82,7 +84,7 @@
\let\c@lor@usename\@gobble
\DeclareOption{usenames}{%
\def\c@lor@usename#1{%
- \expandafter\color@named\csname\string\color @#1\endcsname{#1}}}
+ \expandafter\color@named\csname\@backslashchar color@#1\endcsname{#1}}}
\DeclareRobustCommand\color{%
\@ifnextchar[\@undeclaredcolor\@declaredcolor}
\def\@undeclaredcolor[#1]#2{%
@@ -92,10 +94,10 @@
\set@color}%
\ignorespaces}
\def\@declaredcolor#1{%
- \@ifundefined{\string\color @#1}%
+ \@ifundefined{\@backslashchar color@#1}%
{\c@lor@error{`#1'}}%
{\expandafter\let\expandafter\current@color
- \csname\string\color @#1\endcsname
+ \csname\@backslashchar color@#1\endcsname
\set@color}%
\ignorespaces}
\protected\def\textcolor#1#{\@textcolor{#1}}
@@ -107,7 +109,7 @@
\color}
\protected\def\nopagecolor{%
\@ifundefined{no@page@color}{%
- \PackageInfo{color}{\string\nopagecolor\space is not supported}%
+ \PackageInfo{color}{\@backslashchar nopagecolor\space is not supported}%
}{%
\no@page@color
}%
@@ -115,12 +117,12 @@
\protected\def\definecolor#1#2#3{%
\@ifundefined{color@#2}%
{\c@lor@error{model `#2'}}%
- {\@ifundefined{\string\color @#1}{}%
+ {\@ifundefined{\@backslashchar color@#1}{}%
{\PackageInfo{color}{Redefining color #1}}%
\csname color@#2\expandafter\endcsname
- \csname\string\color @#1\endcsname{#3}}%
- \@expl@color@set@@nnn{#1}{#2}{#3}%
- }
+ \csname\@backslashchar color@#1\endcsname{#3}}%
+ \@expl@color@set@@nnn{#1}{#2}{#3}%
+ }
\protected\def\DefineNamedColor#1#2#3#4{%
\@ifundefined{define@color@#1}%
{\c@lor@error{model `#1'}}%
@@ -188,6 +190,7 @@
\dimen@\dp\z@\advance\dimen@\fboxsep\dp\z@\dimen@
{#1{#2\color@block{\wd\z@}{\ht\z@}{\dp\z@}%
\box\z@}}}
+\InputIfFileExists{mathcolor.ltx}{}{}
\def\color@setgroup{\begingroup\set@color}
\let\color@begingroup\begingroup
\def\color@endgroup{\endgraf\endgroup}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx
index cc8ab85ef5..5dcc7d28b2 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx
@@ -27,9 +27,6 @@
%<*driver>
\RequirePackage{pdfmanagement-testphase}
\DocumentMetadata{pdfstandard=A-2b}
-\makeatletter
-\declare@file@substitution{doc.sty}{doc-v3beta.sty}
-\makeatother
\documentclass{l3doc}
\usepackage{tabularx,array,booktabs,hyperxmp}
\hypersetup{pdfauthor=The LaTeX Project,
@@ -86,7 +83,7 @@
% }^^A
% }
%
-% \date{Version 0.95j, released 2022-01-13}
+% \date{Version 0.95k, released 2022-01-28}
%
% \maketitle
% \begin{documentation}
@@ -962,7 +959,7 @@
%<@@=hyp>
% \end{macrocode}
% \begin{macrocode}
-\ProvidesFile{hgeneric-testphase.def}[2022-01-13 v0.95j %
+\ProvidesFile{hgeneric-testphase.def}[2022-01-28 v0.95k %
generic Hyperref driver for the LaTeX PDF management testphase bundle]
\RequirePackage{etoolbox} %why?
diff --git a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf
index 578272d238..4ff66d1f1e 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/hyperxmp-patches-tmp-ltx.sty b/macros/latex/contrib/pdfmanagement-testphase/hyperxmp-patches-tmp-ltx.sty
index a1bc3caddb..c056293ec0 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/hyperxmp-patches-tmp-ltx.sty
+++ b/macros/latex/contrib/pdfmanagement-testphase/hyperxmp-patches-tmp-ltx.sty
@@ -19,7 +19,7 @@
%
% for those people who are interested.
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
-\ProvidesExplPackage{hyperxmp-patches-tmp-ltx}{2022-01-13}{0.95j}
+\ProvidesExplPackage{hyperxmp-patches-tmp-ltx}{2022-01-28}{0.95k}
{Store hyperref metadata in XMP format / temporay patches to test pdfresource management ... UF}
\cs_if_exist:NT \pdfmanagement_add:nnn
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx
index 54f2e089df..84571e8a2b 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx
@@ -45,7 +45,7 @@
% }^^A
% }
%
-% \date{Version 0.95j, released 2022-01-13}
+% \date{Version 0.95k, released 2022-01-28}
%
% \maketitle
%
@@ -56,27 +56,27 @@
% \begin{macrocode}
%<drivers>\ProvidesExplFile
%<*dvipdfmx>
- {l3backend-testphase-dvipdfmx.def}{2022-01-13}{}
+ {l3backend-testphase-dvipdfmx.def}{2022-01-28}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: dvipdfmx}
%</dvipdfmx>
%<*dvips>
- {l3backend-testphase-dvips.def}{2022-01-13}{}
+ {l3backend-testphase-dvips.def}{2022-01-28}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: dvips}
%</dvips>
%<*dvisvgm>
- {l3backend-testphase-dvisvgm.def}{2022-01-13}{}
+ {l3backend-testphase-dvisvgm.def}{2022-01-28}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: dvisvgm}
%</dvisvgm>
%<*luatex>
- {l3backend-testphase-luatex.def}{2022-01-13}{}
+ {l3backend-testphase-luatex.def}{2022-01-28}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: PDF output (LuaTeX)}
%</luatex>
%<*pdftex>
- {l3backend-testphase-pdftex.def}{2022-01-13}{}
+ {l3backend-testphase-pdftex.def}{2022-01-28}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: PDF output (pdfTeX)}
%</pdftex>
%<*xdvipdfmx>
- {l3backend-testphase-xetex.def}{2022-01-13}{}
+ {l3backend-testphase-xetex.def}{2022-01-28}{}
{LaTeX~PDF~management~testphase~bundle~backend~support: XeTeX}
%</xdvipdfmx>
% \end{macrocode}
@@ -1488,8 +1488,15 @@
% (in atfi-dvips), along with some ideas from pdfbase and has been corrected
% with the help of Alexander Grahn.
% Details like clipping and landscape will probably be corrected in the future.
+% We need some temporary variables to store dimensions
% \begin{macrocode}
%<*dvips>
+\tl_new:N \l_@@_backend_xform_tmpwd_tl
+\tl_new:N \l_@@_backend_xform_tmpdp_tl
+\tl_new:N \l_@@_backend_xform_tmpht_tl
+% \end{macrocode}
+%
+% \begin{macrocode}
\cs_new_protected:Npn\@@_backend_xform_new:nnnn #1 #2 #3 #4 % #1 name, #2 attribute, #4 content
{
\int_gincr:N \g_@@_backend_object_int
@@ -1513,31 +1520,51 @@
\tl_const:cx
{ c_@@_backend_xform_dp_ \tl_to_str:n {#1} _tl }
{ \tex_the:D \box_dp:N \l_@@_backend_tmpa_box }
- %mirror the box
- \box_scale:Nnn \l_@@_backend_tmpa_box {1} {-1}
+ %store content dimensions in DPI units (Dots) (code from issue 25)
+ \tl_set:Nx\l_@@_backend_xform_tmpwd_tl
+ {
+ \dim_to_decimal_in_sp:n{ \box_wd:N \l_@@_backend_tmpa_box }~
+ 65536~div~72.27~div~DVImag~mul~Resolution~mul~
+ }
+ \tl_set:Nx\l_@@_backend_xform_tmpht_tl
+ {
+ \dim_to_decimal_in_sp:n{ \box_ht:N \l_@@_backend_tmpa_box }~
+ 65536~div~72.27~div~DVImag~mul~VResolution~mul~
+ }
+ \tl_set:Nx\l_@@_backend_xform_tmpdp_tl
+ {
+ \dim_to_decimal_in_sp:n{ \box_dp:N \l_@@_backend_tmpa_box }~
+ 65536~div~72.27~div~DVImag~mul~VResolution~mul~
+ }
+ % mirror the box
+ %\box_scale:Nnn \l_@@_backend_tmpa_box {1} {-1}
\hbox_set:Nn\l_@@_backend_tmpb_box
{
\__kernel_backend_postscript:x
{
- gsave~currentpoint~translate~
+ gsave~currentpoint~
+ initclip~ % restore default clipping path (page device/whole page)
+ clippath~pathbbox~newpath~pop~pop~
+ \tl_use:N\l_@@_backend_xform_tmpdp_tl~add~translate~
mark~
- /_objdef~{ pdf.obj \int_use:N\g_@@_backend_object_int }\c_space_tl~
- /BBox[
- currentpoint~\dim_to_decimal:n{\box_dp:N \l_@@_backend_tmpa_box}~72.27~div~VResolution~mul~add~
- currentpoint~
- exch~\dim_to_decimal:n{\box_wd:N \l_@@_backend_tmpa_box}~72.27~div~Resolution~mul~add~
- exch~\dim_to_decimal:n{\box_ht:N \l_@@_backend_tmpa_box}~72.27~div~VResolution~mul~sub~
- ]
- \str_if_eq:eeF{#1}{}
- {
- product~(Distiller)~search~{pop~pop~pop~#2}{pop}ifelse~
- }
- /BP~pdfmark~grestore~
+ /_objdef~{ pdf.obj \int_use:N\g_@@_backend_object_int }\c_space_tl~
+ /BBox[
+ 0~
+ \tl_use:N\l_@@_backend_xform_tmpht_tl~
+ \tl_use:N\l_@@_backend_xform_tmpwd_tl~
+ \tl_use:N\l_@@_backend_xform_tmpdp_tl~
+ neg
+ ]
+ \str_if_eq:eeF{#1}{}
+ {
+ product~(Distiller)~search~{pop~pop~pop~#2}{pop}ifelse~
+ }
+ /BP~pdfmark~1~-1~scale~neg~exch~neg~exch~translate
}
\box_use_drop:N\l_@@_backend_tmpa_box
\__kernel_backend_postscript:n
{
- mark ~ /EP~pdfmark
+ mark ~ /EP~pdfmark ~ grestore
}
\str_if_eq:eeF{#1}{}
{
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf
index bd6d7985ee..3123d08864 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx
index c77314ca25..b852e6ea3a 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx
@@ -25,9 +25,6 @@
%<*driver>
\RequirePackage{pdfmanagement-testphase}
\DocumentMetadata{pdfstandard=A-2b}
-\makeatletter
-\declare@file@substitution{doc.sty}{doc-v3beta.sty}
-\makeatother
\documentclass[full]{l3doc}
\usepackage{array,booktabs,hyperxmp}
\hypersetup{pdfauthor=The LaTeX Project,
@@ -52,7 +49,7 @@
% }^^A
% }
%
-% \date{Version 0.95j, released 2022-01-13}
+% \date{Version 0.95k, released 2022-01-28}
%
% \maketitle
% \begin{documentation}
@@ -436,7 +433,7 @@
% \begin{macrocode}
%<@@=pdfannot>
%<*header>
-\ProvidesExplPackage{l3pdfannot}{2022-01-13}{0.95j}
+\ProvidesExplPackage{l3pdfannot}{2022-01-28}{0.95k}
{PDF-annotations}
\RequirePackage{l3pdfdict}
%</header>
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf
index cc44dcca2c..3feab4139a 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx
index 3a63005f37..2a2d80cec9 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx
@@ -25,9 +25,6 @@
%<*driver>
\RequirePackage{pdfmanagement-testphase}
\DocumentMetadata{pdfstandard=A-2b}
-\makeatletter
-\declare@file@substitution{doc.sty}{doc-v3beta.sty}
-\makeatother
\documentclass[full]{l3doc}
\usepackage{array,booktabs,hyperxmp}
\hypersetup{pdfauthor=The LaTeX Project,
@@ -53,7 +50,7 @@
% }^^A
% }
%
-% \date{Version 0.95j, released 2022-01-13}
+% \date{Version 0.95k, released 2022-01-28}
%
% \maketitle
% \begin{documentation}
@@ -212,7 +209,7 @@
% \begin{macrocode}
%<@@=pdfdict>
%<*header>
-\ProvidesExplPackage{l3pdfdict}{2022-01-13}{0.95j}
+\ProvidesExplPackage{l3pdfdict}{2022-01-28}{0.95k}
{Tools for PDF dictionaries (LaTeX PDF management testphase bundle)}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf
index 29b211ec27..56965d2854 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx
index 2de21f001a..0e05a47aa9 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx
@@ -25,9 +25,6 @@
%<*driver>
\RequirePackage{pdfmanagement-testphase}
\DocumentMetadata{}
-\makeatletter
-\declare@file@substitution{doc.sty}{doc-v3beta.sty}
-\makeatother
\documentclass[full]{l3doc}
\usepackage{array,booktabs,siunitx}
\usepackage{l3pdffield-testphase,bearwear}
@@ -53,7 +50,7 @@
% }^^A
% }
%
-% \date{Version 0.95j, released 2022-01-13}
+% \date{Version 0.95k, released 2022-01-28}
%
% \maketitle
% \begin{documentation}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf
index 9e4f0061b1..10bbf6ec75 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx
index eff3d2cd1e..64d6e256c4 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx
@@ -25,9 +25,6 @@
%<*driver>
\RequirePackage{pdfmanagement-testphase}
\DocumentMetadata{}
-\makeatletter
-\declare@file@substitution{doc.sty}{doc-v3beta.sty}
-\makeatother
\documentclass[full]{l3doc}
\usepackage{array,booktabs}
\usepackage{l3pdffield-testphase,bearwear}
@@ -68,7 +65,7 @@
% }^^A
% }
%
-% \date{Version 0.95j, released 2022-01-13}
+% \date{Version 0.95k, released 2022-01-28}
%
% \maketitle
% \begin{documentation}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf
index 70666fc007..74b88c7273 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx
index 7c16fa4982..12318618f4 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx
@@ -25,9 +25,6 @@
%<*driver>
\RequirePackage{pdfmanagement-testphase}
\DocumentMetadata{}
-\makeatletter
-\declare@file@substitution{doc.sty}{doc-v3beta.sty}
-\makeatother
\documentclass[full]{l3doc}
\usepackage{array,booktabs}
\usepackage{l3pdffield-testphase}
@@ -53,7 +50,7 @@
% }^^A
% }
%
-% \date{Version 0.95j, released 2022-01-13}
+% \date{Version 0.95k, released 2022-01-28}
%
% \maketitle
% \begin{documentation}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf
index 72dfa1e3ce..a43c6946d0 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx
index eff2adfdb2..62da08394f 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx
@@ -25,9 +25,6 @@
%<*driver>
\RequirePackage{pdfmanagement-testphase}
\DocumentMetadata{}
-\makeatletter
-\declare@file@substitution{doc.sty}{doc-v3beta.sty}
-\makeatother
\documentclass[full]{l3doc}
\usepackage{array,booktabs,siunitx}
\usepackage{l3pdffield-testphase,bearwear}
@@ -59,7 +56,7 @@
% }^^A
% }
%
-% \date{Version 0.95j, released 2022-01-13}
+% \date{Version 0.95k, released 2022-01-28}
%
% \maketitle
% \begin{documentation}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf
index cf69bffb99..f1d290eaeb 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx
index 9d5515d1f4..784ca7f380 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx
@@ -25,9 +25,6 @@
%<*driver>
\RequirePackage{pdfmanagement-testphase}
\DocumentMetadata{}
-\makeatletter
-\declare@file@substitution{doc.sty}{doc-v3beta.sty}
-\makeatother
\documentclass[full]{l3doc}
\usepackage{array,booktabs}
\usepackage{l3pdffield-testphase,bearwear,tikzlings,tikzducks}
@@ -87,7 +84,7 @@
% }^^A
% }
%
-% \date{Version 0.95j, released 2022-01-13}
+% \date{Version 0.95k, released 2022-01-28}
%
% \maketitle
% \begin{documentation}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf
index 2164a70c1c..5c54bb4ebf 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx
index 4a5f729910..3227454208 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx
@@ -25,9 +25,6 @@
%<*driver>
\RequirePackage{pdfmanagement-testphase}
\DocumentMetadata{}
-\makeatletter
-\declare@file@substitution{doc.sty}{doc-v3beta.sty}
-\makeatother
\documentclass[full]{l3doc}
\usepackage{array,booktabs}
\usepackage{l3pdffield-testphase}
@@ -53,7 +50,7 @@
% }^^A
% }
%
-% \date{Version 0.95j, released 2022-01-13}
+% \date{Version 0.95k, released 2022-01-28}
%
% \maketitle
% \begin{documentation}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf
index 2ce744434d..814cce07d3 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx
index b872c40f26..e72fed2071 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx
@@ -25,9 +25,6 @@
%<*driver>
\RequirePackage{pdfmanagement-testphase}
\DocumentMetadata{}
-\makeatletter
-\declare@file@substitution{doc.sty}{doc-v3beta.sty}
-\makeatother
\documentclass{l3doc}
\usepackage{array,booktabs,caption}
\usepackage{l3pdffield-testphase,tikz}
@@ -73,7 +70,7 @@
% }^^A
% }
%
-% \date{Version 0.95j, released 2022-01-13}
+% \date{Version 0.95k, released 2022-01-28}
%
% \maketitle
% \begin{documentation}
@@ -977,7 +974,7 @@
%<*package>
%<@@=pdffield>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesExplPackage{l3pdffield-testphase}{2022-01-13}{0.95j}%
+\ProvidesExplPackage{l3pdffield-testphase}{2022-01-28}{0.95k}%
{form fields}
% \end{macrocode}
% \subsection{hyperref specific command}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf
index 9bb4331db6..feedecbdf7 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx
index 4da7ef9723..2d09da77f8 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx
@@ -25,9 +25,6 @@
%<*driver>
\RequirePackage{pdfmanagement-testphase}
\DocumentMetadata{pdfstandard=A-2b}
-\makeatletter
-\declare@file@substitution{doc.sty}{doc-v3beta.sty}
-\makeatother
\documentclass[full]{l3doc}
\usepackage{array,booktabs,hyperxmp}
\hypersetup{pdfauthor=The LaTeX Project,pdftitle=l3pdffile (LaTeX PDF management testphase bundle)}
@@ -53,7 +50,7 @@
% }^^A
% }
%
-% \date{Version 0.95j, released 2022-01-13}
+% \date{Version 0.95k, released 2022-01-28}
%
% \maketitle
% \begin{documentation}
@@ -400,7 +397,7 @@
%
% \begin{macrocode}
%<*header>
-\ProvidesExplPackage{l3pdffile}{2022-01-13}{0.95j}
+\ProvidesExplPackage{l3pdffile}{2022-01-28}{0.95k}
{embedding and referencing files in PDF---LaTeX PDF management testphase bundle}
\RequirePackage{l3pdftools} %temporarly!!
%</header>
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf
index 2561e4d118..ea5bdf4647 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx
index f2e494c1fa..4fb6ff4c8c 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx
@@ -25,9 +25,6 @@
%<*driver>
\RequirePackage{pdfmanagement-testphase}
\DocumentMetadata{pdfstandard=A-2b}
-\makeatletter
-\declare@file@substitution{doc.sty}{doc-v3beta.sty}
-\makeatother
\documentclass[full]{l3doc}
\usepackage{tabularx}
\usepackage{array,booktabs,hyperxmp}
@@ -61,7 +58,7 @@
% }^^A
% }
%
-% \date{Version 0.95j, released 2022-01-13}
+% \date{Version 0.95k, released 2022-01-28}
%
% \maketitle
% \begin{documentation}
@@ -622,7 +619,7 @@
%<@@=pdfmanagement>
%<*header>
%
-\ProvidesExplPackage{l3pdfmanagement}{2022-01-13}{0.95j}
+\ProvidesExplPackage{l3pdfmanagement}{2022-01-28}{0.95k}
{Management of core PDF dictionaries (LaTeX PDF management testphase bundle)}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf
index a62a1a0d80..a53b31189b 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx
index f91555dd04..622fd0b41c 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx
@@ -25,9 +25,6 @@
%<*driver>
\RequirePackage{pdfmanagement-testphase}
\DocumentMetadata{pdfstandard=A-2b}
-\makeatletter
-\declare@file@substitution{doc.sty}{doc-v3beta.sty}
-\makeatother
\documentclass[full]{l3doc}
\usepackage{array,booktabs,hyperxmp}
\hypersetup{pdfauthor=The LaTeX Project,pdftitle=l3pdfmeta (LaTeX PDF management testphase bundle)}
@@ -53,7 +50,7 @@
% }^^A
% }
%
-% \date{Version 0.95j, released 2022-01-13}
+% \date{Version 0.95k, released 2022-01-28}
%
% \maketitle
% \begin{documentation}
@@ -345,7 +342,7 @@
% \begin{macrocode}
%<@@=pdfmeta>
%<*header>
-\ProvidesExplPackage{l3pdfmeta}{2022-01-13}{0.95j}
+\ProvidesExplPackage{l3pdfmeta}{2022-01-28}{0.95k}
{PDF-Standards---LaTeX PDF management testphase bundle}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf
index 6bf44b039b..af8813dbab 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx
index 9959583cd3..89afdc4300 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx
@@ -25,9 +25,6 @@
%<*driver>
\RequirePackage{pdfmanagement-testphase}
\DocumentMetadata{pdfstandard=A-2b}
-\makeatletter
-\declare@file@substitution{doc.sty}{doc-v3beta.sty}
-\makeatother
\documentclass[full]{l3doc}
\usepackage{array,booktabs,hyperxmp}
\hypersetup{pdfauthor=The LaTeX Project,pdftitle=l3pdftools (LaTeX PDF management testphase bundle)}
@@ -53,7 +50,7 @@
% }^^A
% }
%
-% \date{Version 0.95j, released 2022-01-13}
+% \date{Version 0.95k, released 2022-01-28}
%
% \maketitle
% \begin{documentation}
@@ -215,7 +212,7 @@
%
% \begin{macrocode}
%<*header>
-\ProvidesExplPackage{l3pdftools}{2022-01-13}{0.95j}
+\ProvidesExplPackage{l3pdftools}{2022-01-28}{0.95k}
{candidate commands for l3pdf---LaTeX PDF management testphase bundle}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf
index df2e659463..618b279d34 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx
index f4a4a6a7f4..228b3ff72d 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx
@@ -25,9 +25,6 @@
%<*driver>
\RequirePackage{pdfmanagement-testphase}
\DocumentMetadata{pdfstandard=A-2b}
-\makeatletter
-\declare@file@substitution{doc.sty}{doc-v3beta.sty}
-\makeatother
\documentclass[full]{l3doc}
\usepackage{array,booktabs,hyperxmp}
\hypersetup{pdfauthor=The LaTeX Project,pdftitle=l3pdfxform (LaTeX PDF management testphase bundle)}
@@ -52,7 +49,7 @@
% }^^A
% }
%
-% \date{Version 0.95j, released 2022-01-13}
+% \date{Version 0.95k, released 2022-01-28}
%
% \maketitle
% \begin{documentation}
@@ -136,7 +133,7 @@
% \begin{macrocode}
%<@@=pdf>
%<*header>
-\ProvidesExplPackage{l3pdfxform}{2022-01-13}{0.95j}
+\ProvidesExplPackage{l3pdfxform}{2022-01-28}{0.95k}
{command to create xforms (beta)---LaTeX PDF management testphase bundle}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf
index 9e341ac965..1491257d68 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx
index 110bbb09b2..8a2ec5136a 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx
@@ -25,9 +25,6 @@
%<*driver>
\RequirePackage{pdfmanagement-testphase}
\DocumentMetadata{pdfstandard=A-2b}
-\makeatletter
-\declare@file@substitution{doc.sty}{doc-v3beta.sty}
-\makeatother
\documentclass[full]{l3doc}
\usepackage{array,booktabs,hyperxmp}
\hypersetup{pdfauthor=The LaTeX Project,pdftitle=ltdocinit (LaTeX PDF management testphase bundle)}
@@ -51,7 +48,7 @@
% }^^A
% }
%
-% \date{Version 0.95j, released 2022-01-13}
+% \date{Version 0.95k, released 2022-01-28}
%
% \maketitle
% \begin{documentation}
@@ -219,7 +216,7 @@
% \begin{macrocode}
%<@@=pdfmanagement>
%<*header>
-\ProvidesExplPackage{ltdocinit}{2022-01-13}{0.95j}
+\ProvidesExplPackage{ltdocinit}{2022-01-28}{0.95k}
{Initialize document metadata}
%</header>
% \end{macrocode}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf
index 0816edae0f..a3ea02b46b 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.pdf b/macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.pdf
index a99709cf13..7224257eec 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdflscape-ltx.sty b/macros/latex/contrib/pdfmanagement-testphase/pdflscape-ltx.sty
index 677e3fe40e..f9e901c52b 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/pdflscape-ltx.sty
+++ b/macros/latex/contrib/pdfmanagement-testphase/pdflscape-ltx.sty
@@ -22,7 +22,7 @@
%% This work consists of the main source file pdflscape-ltx.sty
%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesExplPackage{pdflscape-ltx}{2022-01-13}{0.95j}
+\ProvidesExplPackage{pdflscape-ltx}{2022-01-28}{0.95k}
{Display of landscape pages in PDF - adaption of pdflscape to the PDFmanagement bundle (testphase)}
\DeclareOption*{\PassOptionsToPackage\CurrentOption{graphics}}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx
index 6383bd9922..662d1d52dc 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx
@@ -25,9 +25,6 @@
%<*driver>
\RequirePackage{pdfmanagement-testphase}
\DocumentMetadata{pdfstandard=A-2b}
-\makeatletter
-\declare@file@substitution{doc.sty}{doc-v3beta.sty}
-\makeatother
\documentclass[full]{l3doc}
\usepackage{array,booktabs,hyperxmp}
\hypersetup{pdfauthor=The LaTeX Project,pdftitle=pdfmanagement-firstaid
@@ -51,7 +48,7 @@
% }^^A
% }
%
-% \date{Version 0.95j, released 2022-01-13}
+% \date{Version 0.95k, released 2022-01-28}
%
% \maketitle
% \begin{documentation}
@@ -67,7 +64,7 @@
% |debug={firstaidoff={name1,name2,...},...}|.
% \begin{macrocode}
%<*package>
-\ProvidesExplPackage{pdfmanagement-firstaid}{2022-01-13}{0.95j}
+\ProvidesExplPackage{pdfmanagement-firstaid}{2022-01-28}{0.95k}
{LaTeX PDF management testphase bundle / firstaid-patches}
%<@@=pdfmanagement>
diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf
index b730d9e75e..30e7a7bf45 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx
index 1364b8e83c..3d788e5643 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx
+++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx
@@ -25,9 +25,6 @@
%<*driver>
\RequirePackage{pdfmanagement-testphase}
\DocumentMetadata{pdfstandard=A-2b}
-\makeatletter
-%\declare@file@substitution{doc.sty}{doc-v3beta.sty}
-\makeatother
\documentclass{l3doc}
\usepackage{tabularx,array,booktabs,hyperxmp}
\hypersetup{pdfauthor=The LaTeX Project,pdftitle=LaTeX PDF management testphase bundle}
@@ -51,7 +48,7 @@
% }^^A
% }
%
-% \date{Version 0.95j, released 2022-01-13}
+% \date{Version 0.95k, released 2022-01-28}
%
% \maketitle
% \begin{documentation}
@@ -389,7 +386,7 @@
% \begin{macrocode}
%<@@=pdf>
%<*package>
-\ProvidesExplPackage{pdfmanagement-testphase}{2022-01-13}{0.95j}
+\ProvidesExplPackage{pdfmanagement-testphase}{2022-01-28}{0.95k}
{LaTeX PDF management testphase bundle}
\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
\IfFormatAtLeastTF{2020-10-01}{}{
@@ -417,7 +414,7 @@
% to allow to set it in the document.
% \begin{macrocode}
%<*header>
-\ProvidesExplFile{pdfmanagement-testphase.ltx}{2022-01-13}{0.95j}
+\ProvidesExplFile{pdfmanagement-testphase.ltx}{2022-01-28}{0.95k}
{PDF~management~code~(testphase)}
%</header>
%<*package>
diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf
index 70cf64c5c1..f401c09d25 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf
+++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf
Binary files differ
diff --git a/macros/latex/contrib/pdfmanagement-testphase/transparent-ltx.sty b/macros/latex/contrib/pdfmanagement-testphase/transparent-ltx.sty
index f9987ba443..4b4cc8907e 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/transparent-ltx.sty
+++ b/macros/latex/contrib/pdfmanagement-testphase/transparent-ltx.sty
@@ -3,7 +3,7 @@
%% a replacement for transparent sty from Heiko Oberdiek
%%
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
-\ProvidesExplPackage{transparent-ltx}{2022-01-13}{0.95j}
+\ProvidesExplPackage{transparent-ltx}{2022-01-28}{0.95k}
{Transparency with color stacks (replacement for transparent.sty from Heiko Oberdiek)}%
\RequirePackage{l3opacity}
diff --git a/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty b/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty
index 5ff2ef0997..c131c9a922 100644
--- a/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty
+++ b/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty
@@ -1,6 +1,6 @@
%% LaTeX2e file `xcolor-patches.sty'
%%
-\ProvidesPackage{xcolor-patches-tmp-ltx}[2022-01-13 v0.95j patch xcolor for l3color]
+\ProvidesPackage{xcolor-patches-tmp-ltx}[2022-01-28 v0.95k patch xcolor for l3color]
\@ifundefined{color_set:nn}{\RequirePackage{l3color}}{}
\ExplSyntaxOn
@@ -43,10 +43,13 @@
\cs_generate_variant:Nn \__pdfmanagement_firstaid_xcolor_set:nnnn {nonn}
\cs_set_eq:NN \@expl@xcolor@set@@nonn \__pdfmanagement_firstaid_xcolor_set:nonn
\cs_generate_variant:Nn \color_set:nn {ne}
+\tl_new:N\l__pdfmanagement_firstaid_tmpa_tl
+% the color name should be sanitized to avoid problems with e.g. french making ! active
\cs_new_protected:Npn \@expl@xcolor@set@@ne #1 #2
{
- \exp_args:Nx \__color_if_defined:nT {#2}
- { \color_set:ne {#1}{#2} }
+ \XC@edef\l__pdfmanagement_firstaid_tmpa_tl{#2}
+ \exp_args:NV \__color_if_defined:nT \l__pdfmanagement_firstaid_tmpa_tl
+ { \color_set:ne {#1}{\l__pdfmanagement_firstaid_tmpa_tl} }
}
\ExplSyntaxOff
%\pretocmd{\XC@col@rlet} {\@expl@color@set@@ne{#2}{#4}}{}{\fail}
diff --git a/macros/latex/contrib/proof-at-the-end/README.md b/macros/latex/contrib/proof-at-the-end/README.md
index 0dca926bfc..c111036875 100644
--- a/macros/latex/contrib/proof-at-the-end/README.md
+++ b/macros/latex/contrib/proof-at-the-end/README.md
@@ -1,5 +1,7 @@
# Proof-at-the-end, or how to move proofs in appendix in LaTeX
+WARNING: this package is definitely usable, but may not be as tested and stable as standard packages. Note also that it may change a bit in the future, but we will of course try to avoid as much as possible backward incompatibilities. To ensure your document won't change when the package get updates, it is always safer to copy the `proof-at-the-end.sty` file at the root of your project.
+
## Introduction
This package aims to provide a way to easily move proofs in the appendix. You can:
@@ -34,27 +36,108 @@ pdflatex demo.tex && pdflatex demo.tex
## Quickstart ##
+### Super Quick QuickStart ###
+
+If `proof-at-the-end` it's not installed in your CTAN distribution, copy the [`proof-at-the-end.sty` file](https://github.com/leo-colisson/proof-at-the-end/) in your project. Then, in your project, create new theorem/lemma environments (using any tool you like, like asmthm, ntheorem and thmtools), load the library using `\usepackage[createShortEnv]{proof-at-the-end}` (note that you need the version 2022/01/28 to have `createShortEnv` defined, otherwise you need to use directly `theoremEnd`) and write your theorem using:
+
+```latex
+\begin{thmE}[My title][end, restate]
+ I am a restated theorem whose proof goes in appendix (compile me twice).
+\end{thmE}
+\begin{proofE}
+ And I am a proof.
+\end{proofE}
+```
+The options (here `restate` and `end`) tells what should go in appendix, how to configure the links... Here the proof should go in appendix, and the `restate` options states that the theorem should be restated before the proof.
+
+You can find below a full example to compile which should produce this output (sorry, this is a screenshot, that way I can export it easily in the github page). Just make sure to compile twice to get references.
+
+![Screenshot of the quickstart](screenshot.png)
+
+You can directly copy them (with a more complete demo) in the github page here https://github.com/leo-colisson/proof-at-the-end/.
+
+```latex
+\documentclass{article}
+
+\usepackage{xparse} % Not needed with recent LaTeX
+\usepackage{amsthm}
+
+% Create new theorems, or use ntheorem/thmtools/...
+\newtheorem{thm}{Theorem}[section]
+% Default uses autoref, but you can also use cleveref, see the documentation.
+% Say to autoref that "thm" are Theorems.
+\newcommand{\thmautorefname}{Theorem}
+
+%% Load the library. createShortEnv automatically creates the shortcuts
+%% thmE, theoremE, lemmaE, corrolaryE, proofE. See \newEndThm for more details.
+\usepackage[createShortEnv]{proof-at-the-end}
+
+\begin{document}
+
+\section{Theorems}
+
+\begin{thmE}[My title][end]
+ I am a theorem
+\end{thmE}
+\begin{proofE}
+ And I am a proof.
+\end{proofE}
+
+\section{Proofs}
+\printProofs
+
+\end{document}
+```
+
+
### Install ###
-If your CTAN distribution is recent enough, you have nothing to do. Otherwise if it's not yet in your CTAN distribution, first download the `proof-at-the-end.sty` file and insert it in the root of your project with the following commands on unix (you can also clone this repository if you prefer, or just manually download or copy/paste the files on Windows). It also requires a recent version of xparse, so for simplicity we included the sty file of xparse in this repository as well:
+If your CTAN distribution is recent enough, you have nothing to do (if you are using overleaf, note that you can configure your project to use a more recent TexLive distribution: this packages is included starting from TexLive 2019). Otherwise if it's not yet in your CTAN distribution, first download the `proof-at-the-end.sty` file and insert it in the root of your project with the following commands on unix (you can also clone this repository if you prefer, or just manually download or copy/paste the files on Windows).
-```bash
+``` bash
cd <your project>
repopratend="https://raw.githubusercontent.com/leo-colisson/proof-at-the-end"
wget ${repopratend}/master/proof-at-the-end.sty
-wget ${repopratend}/master/xparse.sty
```
-If you have an old distribution of LaTeX (before 2018 basically, which is the case of Overleaf), you may also need a [more recent expl3](https://tex.stackexchange.com/questions/489646/expl3-and-recent-xparse-on-overleaf-no-expl3-loader-detected/489649?noredirect=1#comment1236409_489649). It is also very easy to install, just download the zip file [http://mirrors.ctan.org/install/macros/latex/contrib/l3kernel.tds.zip](http://mirrors.ctan.org/install/macros/latex/contrib/l3kernel.tds.zip), unzip, and copy the content of the directory `tex/latex/l3kernel/` into your project. On linux it's a matter of two commands in your project:
+
+It also requires a recent version of xparse (not present in TexLive 2018 and before basically), otherwise you will get an error like:
+
+```
+Unknown argument type 'b' replaced by 'm'
+```
+
+While [we used to provide](https://raw.githubusercontent.com/leo-colisson/proof-at-the-end/c2150f4feba4709d47e43c00e5f8eb93ce345cab/xparse.sty) for simplicity a `xparse.sty` file (version `2018-04-12`) in older versions of this repository, we removed it to [avoid license issues and conflicts with recent LaTeX distributions that already include xparse](https://github.com/leo-colisson/proof-at-the-end/issues/6). Nevertheless, if you are using an older distribution, you can also download `xparse` manually [here](http://mirrors.ctan.org/install/macros/latex/contrib/l3packages.tds.zip), unzip it, and copy the `.sty` files contained in `tex/latex/l3packages/xparse/` at the root of your project. On linux, you can do that via:
+
+``` bash
+cd <your project>
+wget http://mirrors.ctan.org/install/macros/latex/contrib/l3packages.tds.zip
+unzip -d . -j l3packages.tds.zip 'tex/latex/l3packages/xparse/*'
+rm -f l3packages.tds.zip xparse.ltx
+```
+
+If you have an old distribution of LaTeX (2017 or before basically), you may also need a [more recent expl3](https://tex.stackexchange.com/questions/489646/expl3-and-recent-xparse-on-overleaf-no-expl3-loader-detected/489649?noredirect=1#comment1236409_489649) or you will get an error like:
+
+```
+Package xparse Error: Support package l3kernel too old.
+```
+
+To install it, download the zip files [http://mirrors.ctan.org/install/macros/latex/contrib/l3kernel.tds.zip](http://mirrors.ctan.org/install/macros/latex/contrib/l3kernel.tds.zip) and [http://mirrors.ctan.org/install/macros/latex/contrib/l3backend.tds.zip](http://mirrors.ctan.org/install/macros/latex/contrib/l3backend.tds.zip) (`l3backend` is [since July 1st, 2019](https://tex.stackexchange.com/questions/499082/file-l3backend-pdfmode-def-not-found-when-loading-expl3) a dependency of l3kernel), unzip, and copy the content of the directories `tex/latex/l3kernel/` (first archive) and `tex/latex/l3backend/` (second archive) into your project. On linux it's a matter of two commands in your project:
```bash
+cd <your project>
wget http://mirrors.ctan.org/install/macros/latex/contrib/l3kernel.tds.zip
unzip -d . -j l3kernel.tds.zip 'tex/latex/l3kernel/*'
rm l3kernel.tds.zip
+wget http://mirrors.ctan.org/install/macros/latex/contrib/l3backend.tds.zip
+unzip -d . -j l3backend.tds.zip 'tex/latex/l3backend/*'
+rm l3backend.tds.zip
```
If you don't want to pollute your main project with all these files, you may be interested to put them in a subfolder and update the environment variable `TEXINPUTS` or, if you use latexmk or overleaf, you can write instead a `latexmkrc` file as explained [here](https://www.overleaf.com/learn/latex/Questions/I_have_a_lot_of_.cls,_.sty,_.bst_files,_and_I_want_to_put_them_in_a_folder_to_keep_my_project_uncluttered._But_my_project_is_not_finding_them_to_compile_correctly).
-That's all!
+If you still have errors, it's likely that your LaTeX distribution is just too old (LaTeX 2016 seems to be too old to install a recent l3exp). So just upgrade to a decent version, and you should not have any troubles anymore.
+
+You can test your install by compiling the `demo.tex` file present in the repository. When it compiles, you are ready to start!
### Use in your project ###
@@ -101,7 +184,18 @@ For example:
\end{proofEnd}
```
-And put in the place where you would like to display the theorem the following code:
+Since `theoremEnd` may be a bit verbose to use, we provide since the version 2022/01/28, an option: if you load the program using `\usepackage[createShortEnv]{proof-at-the-end}`, you will automatically have the shortcut environments `proofE` (to replace `proof`), `thmE` (to replace `thm`), `theoremE` (to replace... ok you got the pattern), `lemmaE` and `corollaryE`. Note that it is your role to define the initial commands `thm`..., but you don't need to define them all, only those that you use. Then, you can use them like:
+
+```latex
+\begin{thmE}[My title][end, restate]
+ I am a restated theorem whose proof goes in appendix (compile me twice).
+\end{thmE}
+\begin{proofE}
+ And I am a proof.
+\end{proofE}
+```
+
+Finally, to display the proofs, just use `\printProofs` where you like:
```latex
\printProofs
@@ -114,6 +208,16 @@ NB: if you want to make sure all the references are linked correctly, make sure
Isn't it simple ?
+
+### A note on `hyperref`
+
+An older version of the package explicitely loaded `hyperref` with no option, and an option clash could occur if the user wanted to add options to `hyperref`. We now push the loading to the very end to avoid that issue, but if you want to load packages *after* `hyperref` (like `cleveref`), it is your job to include `hyperref`, for example by putting at the end of the preambule something like:
+
+```latex
+\usepackage[colorlinks]{hyperref}
+\usepackage{cleveref}
+```
+
## Use cases
### Configuration and how to use and create styles ###
@@ -177,22 +281,16 @@ and for local configuration:
}
```
-Finally, it can be practical to define custom environments to avoid typing always `theoremEnd`:
+Finally, it can be practical to define custom environments to avoid typing always `theoremEnd` using something like that (`thmE` is the shortcut environment to create, and `thm` is the old one):
```latex
-\NewDocumentEnvironment{thmE}{O{}O{}+b}{%
- \begin{theoremEnd}[normal,#2]{thm}[#1]%
- #3%
- \end{theoremEnd}%
-}{}
-% Do not forget the second parameter or you might get Missing \begin{document} error
-\NewDocumentEnvironment{proofE}{O{}+b}{%
- \begin{proofEnd}[#1]%
- #2%
- \end{proofEnd}%
-}{}
-```
-That you could use like that:
+\newEndThm[normal]{thmE}{thm}
+\newEndProof{proofE}
+```
+
+By default, loading the package using the `createShortEnv` option automatically creates the shortcut environments `proofE` (to replace `proof`), `thmE` (to replace `thm`), `theoremE` (to replace... ok you got the pattern), `lemmaE` and `corollaryE`.
+
+Then you can use like that:
```latex
\begin{thmE}[Title]
@@ -352,7 +450,7 @@ Here is the list of fundamental options supported. Most options have a `no` vers
- `text link`: text of the link to the proof, defaults to
`{See \hyperref[proof:prAtEnd\pratendcountercurrent]{proof} on page~\pageref{proof:prAtEnd\pratendcountercurrent}.}`
-- `text proof`: text displayed in place of "Proof" in the appendix. Defaults to `{Proof of \string\autoref{thm:prAtEnd\pratendcountercurrent}}`
+- `text proof`: text displayed in place of "Proof" in the appendix. Defaults to `{Proof of \string\pratendRef{thm:prAtEnd\pratendcountercurrent}}`
- `restate command`: name of a unique macro (without backslash) that will be defined as an alias to restate the theorem wherever you want
- `restated before`: if the theorems has been stated before (with `\theoremProofEndRestateBefore`), then we just need to put the restate command in place of the theorem, and enable this option
- `both`/`no both`: only for `\textInAppendix`, specifies that the text must be present in both the main text and the appendix.
@@ -365,14 +463,14 @@ Here are all the alias/styles (you can create you own as well), they are practic
- `proof at the end`: theorems whose proof need to go in the appendix contrary to `end` it does not make sure that there is a link to the proof. Shorcut for `no proof here, no all end, proof end, no both`.
- `debug`: make sure the proof is written in the main text as well (alias of `proof here, no opt all end`), it is quite practical to use when you write a proof to be able to use synctex features to move between the pdf and the file.
- `no link to theorem`: Remove the link from the proof to the theorem, alias of `text proof={\proofname}`
-- `stared` (or `no number`): when you use the stared version of a theorem you don't have any number, so autoref fails to write a nice link to the theorem. This option changes the text of "Proof", by keeping the link but writting only `Proof`. Equivalent to `text proof={\string\mbox{\string\hyperref[thm:prAtEnd\pratendcountercurrent]{\proofname}}}`
+- `stared` (or `no number`): when you use the stared version of a theorem you don't have any number, so cref fails to write a nice link to the theorem. This option changes the text of "Proof", by keeping the link but writting only `Proof`. Equivalent to `text proof={\string\mbox{\string\hyperref[thm:prAtEnd\pratendcountercurrent]{\proofname}}}`
- `see full proof`: useful when you want to write in the main text only a sketch of proof, this alias writes a link `See full proof on page X.`. Equivalent to `text link={See \hyperref[proof:prAtEnd\pratendcountercurrent]{full proof} on page~\pageref{proof:prAtEnd\pratendcountercurrent}.}`
- `one big link`: instead of two links, one for page, one for proof, put just one link around everything. It can also accept an optional argument which will be the text of the link, like `one big link=Go to the proof`. The default value is `See proof on page~\pageref*{proof:prAtEnd\pratendcountercurrent.}`.
- `one big link translated`: This is like `one big link`, but automatically add the page at the end (and a big link around). Practical to quickly define a translation like `one big link translated=Voir preuve page`. See also `text proof translated`.
-- `text link section`: Put a link to the proof looking like "See proof in section X". Defaults to `text link={See \hyperref[proof:prAtEnd\pratendcountercurrent]{proof} in \autoref{proofsection:prAtEnd\pratendcountercurrent}.}`
-- `text link section full proof`: Put a link to the proof looking like "See full proof in section X". Defaults to `text link={See \hyperref[proof:prAtEnd\pratendcountercurrent]{full proof} in \autoref{proofsection:prAtEnd\pratendcountercurrent}.}`
+- `text link section`: Put a link to the proof looking like "See proof in section X". Defaults to `text link={See \hyperref[proof:prAtEnd\pratendcountercurrent]{proof} in \pratendSectionlikeCref.}`
+- `text link section full proof`: Put a link to the proof looking like "See full proof in section X". Defaults to `text link={See \hyperref[proof:prAtEnd\pratendcountercurrent]{full proof} in \pratendSectionlikeCref.}`
- `default text link`: default text for the link to the proof, equivalent of `text link={See \hyperref[proof:prAtEnd\pratendcountercurrent]{proof} on page~\pageref{proof:prAtEnd\pratendcountercurrent}.}`
-- `default text proof`: default text for the proof in appendix, equivalent of `text proof={Proof of \string\autoref{thm:prAtEnd\pratendcountercurrent}}`
+- `default text proof`: default text for the proof in appendix, equivalent of `text proof={Proof of \string\pratendRef{thm:prAtEnd\pratendcountercurrent}}`
- `text proof translated`: like `default text proof`, but takes one argument and use it instead of `Proof of`. Example: `text proof translated={Preuve du}`
- `bare defaults`: default style that is loaded before anything else that configure by default a link to the proof, put the proof in appendix, use the category `defaultcategory`. It is an alias of `end, link to proof, no restate,category=defaultcategory, default text link,default text proof,restate command=pratenddummymacro`.
- `configuration options`: style that contains the options used to load the package. It is called right after `bare defaults`. Note that you cannot insert macro in the options, overwrite `global custom defaults` instead
@@ -380,6 +478,62 @@ Here are all the alias/styles (you can create you own as well), they are practic
- `local custom defaults`: empty style that you can overwrite to change the "local" defaults, like category
- `all defaults`: all the defaults, equivalent of `bare defaults, configuration options, global custom defaults, local custom defaults`
+## Package options
+
+The package comes with multiple options:
+- The `conf={CONFIGURATION}` option is used to configure the default style. Usage: `\usepackage[conf={normal, text link section}]{proof-at-the-end}`
+- The `disablePatchSection` is useful to stop the library from patching the section-like commands and chapters (by default, we automatically add a `\label` at the end of the section which is used by `text link section` to find the Appendix). If you enable this option, you can manually add the label by using `\pratendAddLabel` after the appendix section (without any argument).
+- `commandRef=NAMECOMMAND`: By default, theorem are referenced to using `\autoref{}`. You can change the value of `NAMECOMMAND` to use another command, like `commandRef=Cref` to use `\Cref{}`. In that case, make sure to load both `hyperref` and `cleveref` (typically at the very end of your preambule) as `cleveref` needs to be loaded after `hyperref`. Internally, the library creates and uses `\pratendRef` instead of `\autoref`.
+- `createShortEnv`: creates (using `newEndThm` and `newEndProof`) the shortcut environments `proofE` (to replace `proof`), `thmE` (to replace `thm`), `theoremE` (to replace... ok you got the pattern), `lemmaE` and `corollaryE`. Note that it is still your job to define the `thm`, `lemma` environments.
+
+## Troubleshooting
+
+Here are some common issues you may have, with explainations to solve them.
+
+### The link after the proof does not mention the section, but something else (an equation, a figure, etc.)
+
+Sometimes, you may see something like `See proof in Equation A` instead of ``See proof in Appendix A`. This issue [was reported before](https://github.com/leo-colisson/proof-at-the-end/issues/2) and should be solved on newer versions (starting from 2022/01/27) by automatically patching sections. If you have this issue, just upgrade (for instance by copying the [`proof-at-the-end.sty` file](https://github.com/leo-colisson/proof-at-the-end) at the root of your project). We proceed by patching the `\chapter`, `\section`, `\subsection`, `subsubsection` and `\paragraph` commands to add `\pratendAddLabel` which will help the package to find the label of the current section. If you prefer the old behavior, you can disable it using the `disablePatchSection` option (more details in the package options).
+
+### I get an error `ERROR: File ended while scanning use of \@xverbatim.` when using verbatim inside a theorem
+
+I turns out that this library needs to use the `+b` option of environments in order to manipulate appropriately the theorem/proof. Unfortunately, it means that it is not possible to use verbatim environments inside. While [this answer](https://tex.stackexchange.com/questions/489435/use-environment-into-new-xparse-environment) suggests that it is impossible to avoid this issue, other people reported that it may be possible to use catcodes to capture the environment body verbatim, before using scantokens to reparse it, or to use [filecontentsdef](https://mirror.ibcp.fr/pub/CTAN/macros/latex/contrib/filecontentsdef/filecontentsdef.pdf) (see for instance [this comment](https://tex.stackexchange.com/questions/631810/create-a-newdocumentenvironment-programmatically?noredirect=1#comment1575605_631810)], ). However, it may be possible that this make syntex unusable, so it may not worth the effort.
+
+In anycase, there exists some workarounds, some of the are for instance give in the [TeX FAQ](https://texfaq.org/FAQ-verbwithin). The simplest solution, if your code is simple/short enough, is to use `\texttt` (you can replace backslash with `\textbackslash` inside etc, and include it in a `verse` if you have multiple lines). If you have a longer text, you may also like `lrbox` to put your content inside a box, for instance like that:
+
+
+```latex
+%% Create the box
+\newsavebox{\myEndBox}
+
+\begin{lrbox}{\myEndBox}
+ \begin{minipage}{1.0\linewidth}
+\begin{verbatim}
+\newEndThm[normal]{thmE}{thm}
+\newEndProof{proofE}{proof}
+\end{verbatim}
+ \end{minipage}
+\end{lrbox}
+
+%% Create a theorem:
+\begin{thmE}
+ Insert the box:
+
+ \begin{center}
+ \usebox{\myEndBox}
+ \end{center}
+\end{thmE}
+```
+
+
+## Changelog
+
+- 2022/01/28:
+ 1. Fix the issue when using sharps in a proof https://github.com/leo-colisson/proof-at-the-end/issues/7.
+ 2. Provide `\newEndThm`, `\newEndProof` and the option `createShortEnv` to quickly create environments.
+- 2022/01/27:
+ 1. Patch chapters/sections/... to better detect the current section and fix [issue 2](https://github.com/leo-colisson/proof-at-the-end/issues/2). This can be disabled using the package option `disablePatchSection`.
+ 2. Add an option `commandRef` to use other ref libraries, like `cleveref` instead of `autoref`.
+ 3. Normal restatable theorem do not need to be restated. Fix [issue 8](https://github.com/leo-colisson/proof-at-the-end/issues/8).
## Contributions ##
diff --git a/macros/latex/contrib/proof-at-the-end/proof-at-the-end.dtx b/macros/latex/contrib/proof-at-the-end/proof-at-the-end.dtx
index 91d02323a1..6bb4aa3265 100644
--- a/macros/latex/contrib/proof-at-the-end/proof-at-the-end.dtx
+++ b/macros/latex/contrib/proof-at-the-end/proof-at-the-end.dtx
@@ -1,12 +1,12 @@
%\iffalse
% proof-at-the-end.dtx generated using makedtx version 1.2 (c) Nicola Talbot
% Command line args:
+% -dir "/home/leo/Documents/Informatique/Programmation/LaTeX/proof-at-the-end/"
% -doc "../doc/proof-at-the-end_doc.tex"
% -author "Léo Colisson"
-% -dir "/tmp/pat/proof-at-the-end/"
% -src "proof-at-the-end\.sty=>proof-at-the-end.sty"
% proof-at-the-end
-% Created on 2019/5/22 12:52
+% Created on 2022/1/28 19:43
%\fi
%\iffalse
%<*package>
@@ -29,28 +29,33 @@
%\fi
% \iffalse
% Doc-Source file to use with LaTeX2e
-% Copyright (C) 2019 Léo Colisson, all rights reserved.
+% Copyright (C) 2022 Léo Colisson, all rights reserved.
% \fi
% \iffalse
%<*driver>
-\PassOptionsToPackage{unicode=true}{hyperref} % options for packages loaded elsewhere
+% Options for packages loaded elsewhere
+\PassOptionsToPackage{unicode}{hyperref}
\PassOptionsToPackage{hyphens}{url}
%
\documentclass[
]{article}
+\title{Proof-at-the-end, or how to move proofs in appendix in LaTeX}
+\author{Léo Colisson}
+\date{}
+
+\usepackage{amsmath,amssymb}
\usepackage{lmodern}
-\usepackage{amssymb,amsmath}
-\usepackage{ifxetex,ifluatex}
-\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
+\usepackage{iftex}
+\ifPDFTeX
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
- \usepackage{textcomp} % provides euro and other symbols
-\else % if luatex or xelatex
+ \usepackage{textcomp} % provide euro and other symbols
+\else % if luatex or xetex
\usepackage{unicode-math}
\defaultfontfeatures{Scale=MatchLowercase}
\defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1}
\fi
-% use upquote if available, for straight quotes in verbatim environments
+% Use upquote if available, for straight quotes in verbatim environments
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
\IfFileExists{microtype.sty}{% use microtype if available
\usepackage[]{microtype}
@@ -72,9 +77,9 @@
\hypersetup{
pdftitle={Proof-at-the-end, or how to move proofs in appendix in LaTeX},
pdfauthor={Léo Colisson},
- pdfborder={0 0 0},
- breaklinks=true}
-\urlstyle{same} % don't use monospace font for urls
+ hidelinks,
+ pdfcreator={LaTeX via pandoc}}
+\urlstyle{same} % disable monospaced font for URLs
\usepackage{color}
\usepackage{fancyvrb}
\newcommand{\VerbBar}{|}
@@ -113,29 +118,26 @@
\newcommand{\VariableTok}[1]{\textcolor[rgb]{0.10,0.09,0.49}{#1}}
\newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
\newcommand{\WarningTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
-\setlength{\emergencystretch}{3em} % prevent overfull lines
+\usepackage{graphicx}
+\makeatletter
+\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi}
+\def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi}
+\makeatother
+% Scale images if necessary, so that they will not overflow the page
+% margins by default, and it is still possible to overwrite the defaults
+% using explicit options in \includegraphics[width, height, ...]{}
+\setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio}
+% Set default figure placement to htbp
+\makeatletter
+\def\fps@figure{htbp}
+\makeatother
+\setlength{\emergencystretch}{3em} % prevent overfull lines
\providecommand{\tightlist}{%
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
\setcounter{secnumdepth}{5}
-% Redefines (sub)paragraphs to behave more like sections
-\ifx\paragraph\undefined\else
- \let\oldparagraph\paragraph
- \renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}
+\ifLuaTeX
+ \usepackage{selnolig} % disable illegal ligatures
\fi
-\ifx\subparagraph\undefined\else
- \let\oldsubparagraph\subparagraph
- \renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}
-\fi
-
-% set default figure placement to htbp
-\makeatletter
-\def\fps@figure{htbp}
-\makeatother
-
-
-\title{Proof-at-the-end, or how to move proofs in appendix in LaTeX}
-\author{Léo Colisson}
-\date{}
\begin{document}
\DocInput{proof-at-the-end.dtx}
@@ -148,6 +150,13 @@
%\setcounter{tocdepth}{3}
%\tableofcontents
%}
+%WARNING: this package is definitely usable, but may not be as tested and
+%stable as standard packages. Note also that it may change a bit in the
+%future, but we will of course try to avoid as much as possible backward
+%incompatibilities. To ensure your document won't change when the package
+%get updates, it is always safer to copy the
+%\texttt{proof-at-the-end.sty} file at the root of your project.
+%
%\hypertarget{introduction}{%
%\section{Introduction}\label{introduction}}
%
@@ -206,50 +215,171 @@
%
%\begin{Shaded}
%\begin{Highlighting}[]
-%\FunctionTok{git}\NormalTok{ clone https://github.com/leo-colisson/proof-at-the-end.git}
-%\ExtensionTok{pdflatex}\NormalTok{ demo.tex }\KeywordTok{&&} \ExtensionTok{pdflatex}\NormalTok{ demo.tex}
+%\FunctionTok{git}\NormalTok{ clone https://github.com/leo{-}colisson/proof{-}at{-}the{-}end.git}
+%\ExtensionTok{pdflatex}\NormalTok{ demo.tex }\KeywordTok{\&\&} \ExtensionTok{pdflatex}\NormalTok{ demo.tex}
%\end{Highlighting}
%\end{Shaded}
%
%\hypertarget{quickstart}{%
%\section{Quickstart}\label{quickstart}}
%
+%\hypertarget{super-quick-quickstart}{%
+%\subsection{Super Quick QuickStart}\label{super-quick-quickstart}}
+%
+%If \texttt{proof-at-the-end} it's not installed in your CTAN
+%distribution, copy the
+%\href{https://github.com/leo-colisson/proof-at-the-end/}{\texttt{proof-at-the-end.sty}
+%file} in your project. Then, in your project, create new theorem/lemma
+%environments (using any tool you like, like asmthm, ntheorem and
+%thmtools), load the library using
+%\texttt{\textbackslash{}usepackage{[}createShortEnv{]}\{proof-at-the-end\}}
+%(note that you need the version 2022/01/28 to have
+%\texttt{createShortEnv} defined, otherwise you need to use directly
+%\texttt{theoremEnd}) and write your theorem using:
+%
+%\begin{Shaded}
+%\begin{Highlighting}[]
+%\KeywordTok{\textbackslash{}begin}\NormalTok{\{}\ExtensionTok{thmE}\NormalTok{\}[My title][end, restate]}
+%\NormalTok{ I am a restated theorem whose proof goes in appendix (compile me twice).}
+%\KeywordTok{\textbackslash{}end}\NormalTok{\{}\ExtensionTok{thmE}\NormalTok{\}}
+%\KeywordTok{\textbackslash{}begin}\NormalTok{\{}\ExtensionTok{proofE}\NormalTok{\}}
+%\NormalTok{ And I am a proof.}
+%\KeywordTok{\textbackslash{}end}\NormalTok{\{}\ExtensionTok{proofE}\NormalTok{\}}
+%\end{Highlighting}
+%\end{Shaded}
+%
+%The options (here \texttt{restate} and \texttt{end}) tells what should
+%go in appendix, how to configure the links\ldots{} Here the proof should
+%go in appendix, and the \texttt{restate} options states that the theorem
+%should be restated before the proof.
+%
+%You can find below a full example to compile which should produce this
+%output (sorry, this is a screenshot, that way I can export it easily in
+%the github page). Just make sure to compile twice to get references.
+%
+%\begin{figure}
+%\centering
+%\includegraphics{screenshot.png}
+%\caption{Screenshot of the quickstart}
+%\end{figure}
+%
+%You can directly copy them (with a more complete demo) in the github
+%page here https://github.com/leo-colisson/proof-at-the-end/.
+%
+%\begin{Shaded}
+%\begin{Highlighting}[]
+%\BuiltInTok{\textbackslash{}documentclass}\NormalTok{\{}\ExtensionTok{article}\NormalTok{\}}
+%
+%\BuiltInTok{\textbackslash{}usepackage}\NormalTok{\{}\ExtensionTok{xparse}\NormalTok{\} }\CommentTok{\% Not needed with recent LaTeX}
+%\BuiltInTok{\textbackslash{}usepackage}\NormalTok{\{}\ExtensionTok{amsthm}\NormalTok{\}}
+%
+%\CommentTok{\% Create new theorems, or use ntheorem/thmtools/...}
+%\FunctionTok{\textbackslash{}newtheorem}\NormalTok{\{thm\}\{Theorem\}[section]}
+%\CommentTok{\% Default uses autoref, but you can also use cleveref, see the documentation.}
+%\CommentTok{\% Say to autoref that "thm" are Theorems.}
+%\FunctionTok{\textbackslash{}newcommand}\NormalTok{\{}\ExtensionTok{\textbackslash{}thmautorefname}\NormalTok{\}\{Theorem\}}
+%
+%\CommentTok{\%\% Load the library. createShortEnv automatically creates the shortcuts}
+%\CommentTok{\%\% thmE, theoremE, lemmaE, corrolaryE, proofE. See \textbackslash{}newEndThm for more details.}
+%\BuiltInTok{\textbackslash{}usepackage}\NormalTok{[createShortEnv]\{}\ExtensionTok{proof{-}at{-}the{-}end}\NormalTok{\}}
+%
+%\KeywordTok{\textbackslash{}begin}\NormalTok{\{}\ExtensionTok{document}\NormalTok{\}}
+%
+%\KeywordTok{\textbackslash{}section}\NormalTok{\{Theorems\}}
+%
+%\KeywordTok{\textbackslash{}begin}\NormalTok{\{}\ExtensionTok{thmE}\NormalTok{\}[My title][end]}
+%\NormalTok{ I am a theorem}
+%\KeywordTok{\textbackslash{}end}\NormalTok{\{}\ExtensionTok{thmE}\NormalTok{\}}
+%\KeywordTok{\textbackslash{}begin}\NormalTok{\{}\ExtensionTok{proofE}\NormalTok{\}}
+%\NormalTok{ And I am a proof.}
+%\KeywordTok{\textbackslash{}end}\NormalTok{\{}\ExtensionTok{proofE}\NormalTok{\}}
+%
+%\KeywordTok{\textbackslash{}section}\NormalTok{\{Proofs\}}
+%\FunctionTok{\textbackslash{}printProofs}
+%
+%\KeywordTok{\textbackslash{}end}\NormalTok{\{}\ExtensionTok{document}\NormalTok{\}}
+%\end{Highlighting}
+%\end{Shaded}
+%
%\hypertarget{install}{%
%\subsection{Install}\label{install}}
%
-%If your CTAN distribution is recent enough, you have nothing to do.
-%Otherwise if it's not yet in your CTAN distribution, first download the
-%\texttt{proof-at-the-end.sty} file and insert it in the root of your
-%project with the following commands on unix (you can also clone this
-%repository if you prefer, or just manually download or copy/paste the
-%files on Windows). It also requires a recent version of xparse, so for
-%simplicity we included the sty file of xparse in this repository as
-%well:
+%If your CTAN distribution is recent enough, you have nothing to do (if
+%you are using overleaf, note that you can configure your project to use
+%a more recent TexLive distribution: this packages is included starting
+%from TexLive 2019). Otherwise if it's not yet in your CTAN distribution,
+%first download the \texttt{proof-at-the-end.sty} file and insert it in
+%the root of your project with the following commands on unix (you can
+%also clone this repository if you prefer, or just manually download or
+%copy/paste the files on Windows).
%
%\begin{Shaded}
%\begin{Highlighting}[]
-%\BuiltInTok{cd} \OperatorTok{<}\NormalTok{your project}\OperatorTok{>}
-%\VariableTok{repopratend=}\StringTok{"https://raw.githubusercontent.com/leo-colisson/proof-at-the-end"}
-%\FunctionTok{wget} \VariableTok{$\{repopratend\}}\NormalTok{/master/proof-at-the-end.sty}
-%\FunctionTok{wget} \VariableTok{$\{repopratend\}}\NormalTok{/master/xparse.sty}
+%\BuiltInTok{cd} \OperatorTok{\textless{}}\NormalTok{your project}\OperatorTok{\textgreater{}}
+%\VariableTok{repopratend}\OperatorTok{=}\StringTok{"https://raw.githubusercontent.com/leo{-}colisson/proof{-}at{-}the{-}end"}
+%\FunctionTok{wget} \VariableTok{$\{repopratend\}}\NormalTok{/master/proof{-}at{-}the{-}end.sty}
%\end{Highlighting}
%\end{Shaded}
%
-%If you have an old distribution of LaTeX (before 2018 basically, which
-%is the case of Overleaf), you may also need a
+%It also requires a recent version of xparse (not present in TexLive 2018
+%and before basically), otherwise you will get an error like:
+%
+%\begin{verbatim}
+%Unknown argument type 'b' replaced by 'm'
+%\end{verbatim}
+%
+%While
+%\href{https://raw.githubusercontent.com/leo-colisson/proof-at-the-end/c2150f4feba4709d47e43c00e5f8eb93ce345cab/xparse.sty}{we
+%used to provide} for simplicity a \texttt{xparse.sty} file (version
+%\texttt{2018-04-12}) in older versions of this repository, we removed it
+%to
+%\href{https://github.com/leo-colisson/proof-at-the-end/issues/6}{avoid
+%license issues and conflicts with recent LaTeX distributions that
+%already include xparse}. Nevertheless, if you are using an older
+%distribution, you can also download \texttt{xparse} manually
+%\href{http://mirrors.ctan.org/install/macros/latex/contrib/l3packages.tds.zip}{here},
+%unzip it, and copy the \texttt{.sty} files contained in
+%\texttt{tex/latex/l3packages/xparse/} at the root of your project. On
+%linux, you can do that via:
+%
+%\begin{Shaded}
+%\begin{Highlighting}[]
+%\BuiltInTok{cd} \OperatorTok{\textless{}}\NormalTok{your project}\OperatorTok{\textgreater{}}
+%\FunctionTok{wget}\NormalTok{ http://mirrors.ctan.org/install/macros/latex/contrib/l3packages.tds.zip}
+%\FunctionTok{unzip} \AttributeTok{{-}d}\NormalTok{ . }\AttributeTok{{-}j}\NormalTok{ l3packages.tds.zip }\StringTok{\textquotesingle{}tex/latex/l3packages/xparse/*\textquotesingle{}}
+%\FunctionTok{rm} \AttributeTok{{-}f}\NormalTok{ l3packages.tds.zip xparse.ltx}
+%\end{Highlighting}
+%\end{Shaded}
+%
+%If you have an old distribution of LaTeX (2017 or before basically), you
+%may also need a
%\href{https://tex.stackexchange.com/questions/489646/expl3-and-recent-xparse-on-overleaf-no-expl3-loader-detected/489649?noredirect=1\#comment1236409_489649}{more
-%recent expl3}. It is also very easy to install, just download the zip
-%file
-%\url{http://mirrors.ctan.org/install/macros/latex/contrib/l3kernel.tds.zip},
-%unzip, and copy the content of the directory
-%\texttt{tex/latex/l3kernel/} into your project. On linux it's a matter
-%of two commands in your project:
+%recent expl3} or you will get an error like:
+%
+%\begin{verbatim}
+%Package xparse Error: Support package l3kernel too old.
+%\end{verbatim}
+%
+%To install it, download the zip files
+%\url{http://mirrors.ctan.org/install/macros/latex/contrib/l3kernel.tds.zip}
+%and
+%\url{http://mirrors.ctan.org/install/macros/latex/contrib/l3backend.tds.zip}
+%(\texttt{l3backend} is
+%\href{https://tex.stackexchange.com/questions/499082/file-l3backend-pdfmode-def-not-found-when-loading-expl3}{since
+%July 1st, 2019} a dependency of l3kernel), unzip, and copy the content
+%of the directories \texttt{tex/latex/l3kernel/} (first archive) and
+%\texttt{tex/latex/l3backend/} (second archive) into your project. On
+%linux it's a matter of two commands in your project:
%
%\begin{Shaded}
%\begin{Highlighting}[]
+%\BuiltInTok{cd} \OperatorTok{\textless{}}\NormalTok{your project}\OperatorTok{\textgreater{}}
%\FunctionTok{wget}\NormalTok{ http://mirrors.ctan.org/install/macros/latex/contrib/l3kernel.tds.zip}
-%\FunctionTok{unzip}\NormalTok{ -d . -j l3kernel.tds.zip }\StringTok{'tex/latex/l3kernel/*'}
+%\FunctionTok{unzip} \AttributeTok{{-}d}\NormalTok{ . }\AttributeTok{{-}j}\NormalTok{ l3kernel.tds.zip }\StringTok{\textquotesingle{}tex/latex/l3kernel/*\textquotesingle{}}
%\FunctionTok{rm}\NormalTok{ l3kernel.tds.zip}
+%\FunctionTok{wget}\NormalTok{ http://mirrors.ctan.org/install/macros/latex/contrib/l3backend.tds.zip}
+%\FunctionTok{unzip} \AttributeTok{{-}d}\NormalTok{ . }\AttributeTok{{-}j}\NormalTok{ l3backend.tds.zip }\StringTok{\textquotesingle{}tex/latex/l3backend/*\textquotesingle{}}
+%\FunctionTok{rm}\NormalTok{ l3backend.tds.zip}
%\end{Highlighting}
%\end{Shaded}
%
@@ -259,7 +389,13 @@
%write instead a \texttt{latexmkrc} file as explained
%\href{https://www.overleaf.com/learn/latex/Questions/I_have_a_lot_of_.cls,_.sty,_.bst_files,_and_I_want_to_put_them_in_a_folder_to_keep_my_project_uncluttered._But_my_project_is_not_finding_them_to_compile_correctly}{here}.
%
-%That's all!
+%If you still have errors, it's likely that your LaTeX distribution is
+%just too old (LaTeX 2016 seems to be too old to install a recent l3exp).
+%So just upgrade to a decent version, and you should not have any
+%troubles anymore.
+%
+%You can test your install by compiling the \texttt{demo.tex} file
+%present in the repository. When it compiles, you are ready to start!
%
%\hypertarget{use-in-your-project}{%
%\subsection{Use in your project}\label{use-in-your-project}}
@@ -268,24 +404,24 @@
%
%\begin{Shaded}
%\begin{Highlighting}[]
-%\BuiltInTok{\textbackslash{}usepackage}\NormalTok{\{}\ExtensionTok{proof-at-the-end}\NormalTok{\}}
+%\BuiltInTok{\textbackslash{}usepackage}\NormalTok{\{}\ExtensionTok{proof{-}at{-}the{-}end}\NormalTok{\}}
%\end{Highlighting}
%\end{Shaded}
%
%Then, you can configure your theorem/lemma/\ldots{} environments as
-%usual, by using any counter you like\ldots{}:
+%usual, by using any counter you like\ldots:
%
%\begin{Shaded}
%\begin{Highlighting}[]
%\BuiltInTok{\textbackslash{}usepackage}\NormalTok{\{}\ExtensionTok{amssymb, amsthm, amsmath}\NormalTok{\}}
-%\CommentTok{% Theorems}
+%\CommentTok{\% Theorems}
%\FunctionTok{\textbackslash{}newtheorem}\NormalTok{\{thm\}\{Theorem\}[section]}
-%\FunctionTok{\textbackslash{}newtheorem}\NormalTok{*\{thm*\}\{Theorem\}}
-%\FunctionTok{\textbackslash{}providecommand}\NormalTok{*}\FunctionTok{\textbackslash{}thmautorefname}\NormalTok{\{Theorem\}}
-%\CommentTok{% Lemmata}
+%\FunctionTok{\textbackslash{}newtheorem*}\NormalTok{\{thm*\}\{Theorem\}}
+%\FunctionTok{\textbackslash{}providecommand*\textbackslash{}thmautorefname}\NormalTok{\{Theorem\}}
+%\CommentTok{\% Lemmata}
%\FunctionTok{\textbackslash{}newtheorem}\NormalTok{\{lemma\}[thm]\{Lemma\}}
-%\FunctionTok{\textbackslash{}newtheorem}\NormalTok{*\{lemma*\}\{Lemma\}}
-%\FunctionTok{\textbackslash{}providecommand}\NormalTok{*}\FunctionTok{\textbackslash{}lemmaautorefname}\NormalTok{\{Lemma\}}
+%\FunctionTok{\textbackslash{}newtheorem*}\NormalTok{\{lemma*\}\{Lemma\}}
+%\FunctionTok{\textbackslash{}providecommand*\textbackslash{}lemmaautorefname}\NormalTok{\{Lemma\}}
%\end{Highlighting}
%\end{Shaded}
%
@@ -297,7 +433,7 @@
%\KeywordTok{\textbackslash{}begin}\NormalTok{\{}\ExtensionTok{theoremEnd}\NormalTok{\}[OPTIONS]\{THEOREM ENVIRONMENT\}[OPTIONAL TITLE]}
%\NormalTok{ YOUR THEOREM, with eventually labels like }\KeywordTok{\textbackslash{}label}\NormalTok{\{}\ExtensionTok{thm:OPTIONAL LABEL}\NormalTok{\}}
%\KeywordTok{\textbackslash{}end}\NormalTok{\{}\ExtensionTok{theoremEnd}\NormalTok{\}}
-%\KeywordTok{\textbackslash{}begin}\NormalTok{\{}\ExtensionTok{proofEnd}\NormalTok{\} }\CommentTok{%% Optional environment}
+%\KeywordTok{\textbackslash{}begin}\NormalTok{\{}\ExtensionTok{proofEnd}\NormalTok{\} }\CommentTok{\%\% Optional environment}
%\NormalTok{ YOUR (OPTIONAL) PROOF}
%\KeywordTok{\textbackslash{}end}\NormalTok{\{}\ExtensionTok{proofEnd}\NormalTok{\}}
%\end{Highlighting}
@@ -317,8 +453,29 @@
%\end{Highlighting}
%\end{Shaded}
%
-%And put in the place where you would like to display the theorem the
-%following code:
+%Since \texttt{theoremEnd} may be a bit verbose to use, we provide since
+%the version 2022/01/28, an option: if you load the program using
+%\texttt{\textbackslash{}usepackage{[}createShortEnv{]}\{proof-at-the-end\}},
+%you will automatically have the shortcut environments \texttt{proofE}
+%(to replace \texttt{proof}), \texttt{thmE} (to replace \texttt{thm}),
+%\texttt{theoremE} (to replace\ldots{} ok you got the pattern),
+%\texttt{lemmaE} and \texttt{corollaryE}. Note that it is your role to
+%define the initial commands \texttt{thm}\ldots, but you don't need to
+%define them all, only those that you use. Then, you can use them like:
+%
+%\begin{Shaded}
+%\begin{Highlighting}[]
+%\KeywordTok{\textbackslash{}begin}\NormalTok{\{}\ExtensionTok{thmE}\NormalTok{\}[My title][end, restate]}
+%\NormalTok{ I am a restated theorem whose proof goes in appendix (compile me twice).}
+%\KeywordTok{\textbackslash{}end}\NormalTok{\{}\ExtensionTok{thmE}\NormalTok{\}}
+%\KeywordTok{\textbackslash{}begin}\NormalTok{\{}\ExtensionTok{proofE}\NormalTok{\}}
+%\NormalTok{ And I am a proof.}
+%\KeywordTok{\textbackslash{}end}\NormalTok{\{}\ExtensionTok{proofE}\NormalTok{\}}
+%\end{Highlighting}
+%\end{Shaded}
+%
+%Finally, to display the proofs, just use
+%\texttt{\textbackslash{}printProofs} where you like:
%
%\begin{Shaded}
%\begin{Highlighting}[]
@@ -335,6 +492,25 @@
%
%Isn't it simple ?
%
+%\hypertarget{a-note-on-hyperref}{%
+%\subsection{\texorpdfstring{A note on
+%\texttt{hyperref}}{A note on hyperref}}\label{a-note-on-hyperref}}
+%
+%An older version of the package explicitely loaded \texttt{hyperref}
+%with no option, and an option clash could occur if the user wanted to
+%add options to \texttt{hyperref}. We now push the loading to the very
+%end to avoid that issue, but if you want to load packages \emph{after}
+%\texttt{hyperref} (like \texttt{cleveref}), it is your job to include
+%\texttt{hyperref}, for example by putting at the end of the preambule
+%something like:
+%
+%\begin{Shaded}
+%\begin{Highlighting}[]
+%\BuiltInTok{\textbackslash{}usepackage}\NormalTok{[colorlinks]\{}\ExtensionTok{hyperref}\NormalTok{\}}
+%\BuiltInTok{\textbackslash{}usepackage}\NormalTok{\{}\ExtensionTok{cleveref}\NormalTok{\}}
+%\end{Highlighting}
+%\end{Shaded}
+%
%\hypertarget{use-cases}{%
%\section{Use cases}\label{use-cases}}
%
@@ -373,7 +549,7 @@
%\NormalTok{ Each theorem can have a custom configuration!}
%\KeywordTok{\textbackslash{}end}\NormalTok{\{}\ExtensionTok{theoremEnd}\NormalTok{\}}
%\KeywordTok{\textbackslash{}begin}\NormalTok{\{}\ExtensionTok{proofEnd}\NormalTok{\}}
-%\NormalTok{ Quite practical, isn't it?}
+%\NormalTok{ Quite practical, isn\textquotesingle{}t it?}
%\KeywordTok{\textbackslash{}end}\NormalTok{\{}\ExtensionTok{proofEnd}\NormalTok{\}}
%\end{Highlighting}
%\end{Shaded}
@@ -396,7 +572,7 @@
%
%\begin{Shaded}
%\begin{Highlighting}[]
-%\BuiltInTok{\textbackslash{}usepackage}\NormalTok{[conf=\{normal, one big link\}]\{}\ExtensionTok{proof-at-the-end}\NormalTok{\}}
+%\BuiltInTok{\textbackslash{}usepackage}\NormalTok{[conf=\{normal, one big link\}]\{}\ExtensionTok{proof{-}at{-}the{-}end}\NormalTok{\}}
%\end{Highlighting}
%\end{Shaded}
%
@@ -411,7 +587,7 @@
%\begin{Shaded}
%\begin{Highlighting}[]
%\FunctionTok{\textbackslash{}pgfkeys}\NormalTok{\{/prAtEnd/global custom defaults/.style=\{}
-%\NormalTok{ one big link=\{Go to proof on page~}\KeywordTok{\textbackslash{}pageref}\ErrorTok{*}\NormalTok{\{}\ExtensionTok{proof:prAtEnd\textbackslash{}pratendcountercurrent}\NormalTok{\}\}}
+%\NormalTok{ one big link=\{Go to proof on page\textasciitilde{}}\FunctionTok{\textbackslash{}pageref*}\NormalTok{\{proof:prAtEnd}\FunctionTok{\textbackslash{}pratendcountercurrent}\NormalTok{\}\}}
%\NormalTok{ \}}
%\NormalTok{\}}
%\end{Highlighting}
@@ -429,25 +605,24 @@
%\end{Shaded}
%
%Finally, it can be practical to define custom environments to avoid
-%typing always \texttt{theoremEnd}:
+%typing always \texttt{theoremEnd} using something like that
+%(\texttt{thmE} is the shortcut environment to create, and \texttt{thm}
+%is the old one):
%
%\begin{Shaded}
%\begin{Highlighting}[]
-%\FunctionTok{\textbackslash{}NewDocumentEnvironment}\NormalTok{\{thmE\}\{O\{\}O\{\}+b\}\{}\CommentTok{%}
-% \KeywordTok{\textbackslash{}begin}\NormalTok{\{}\ExtensionTok{theoremEnd}\NormalTok{\}[normal,#2]\{thm\}[#1]}\CommentTok{%}
-%\NormalTok{ #3}\CommentTok{%}
-% \KeywordTok{\textbackslash{}end}\NormalTok{\{}\ExtensionTok{theoremEnd}\NormalTok{\}}\CommentTok{%}
-%\NormalTok{\}\{\}}
-%\CommentTok{% Do not forget the second parameter or you might get Missing \textbackslash{}begin\{document\} error}
-%\FunctionTok{\textbackslash{}NewDocumentEnvironment}\NormalTok{\{proofE\}\{O\{\}+b\}\{}\CommentTok{%}
-% \KeywordTok{\textbackslash{}begin}\NormalTok{\{}\ExtensionTok{proofEnd}\NormalTok{\}[#1]}\CommentTok{%}
-%\NormalTok{ #2}\CommentTok{%}
-% \KeywordTok{\textbackslash{}end}\NormalTok{\{}\ExtensionTok{proofEnd}\NormalTok{\}}\CommentTok{%}
-%\NormalTok{\}\{\}}
+%\FunctionTok{\textbackslash{}newEndThm}\NormalTok{[normal]\{thmE\}\{thm\}}
+%\FunctionTok{\textbackslash{}newEndProof}\NormalTok{\{proofE\}}
%\end{Highlighting}
%\end{Shaded}
%
-%That you could use like that:
+%By default, loading the package using the \texttt{createShortEnv} option
+%automatically creates the shortcut environments \texttt{proofE} (to
+%replace \texttt{proof}), \texttt{thmE} (to replace \texttt{thm}),
+%\texttt{theoremE} (to replace\ldots{} ok you got the pattern),
+%\texttt{lemmaE} and \texttt{corollaryE}.
+%
+%Then you can use like that:
%
%\begin{Shaded}
%\begin{Highlighting}[]
@@ -676,7 +851,7 @@
%\NormalTok{ Hint: look at the alias options.}
%\KeywordTok{\textbackslash{}end}\NormalTok{\{}\ExtensionTok{proof}\NormalTok{\}}
%\KeywordTok{\textbackslash{}begin}\NormalTok{\{}\ExtensionTok{proofEnd}\NormalTok{\}}
-%\NormalTok{ You just use ``see full proof'' as an option}
+%\NormalTok{ You just use \textasciigrave{}\textasciigrave{}see full proof\textquotesingle{}\textquotesingle{} as an option}
%\KeywordTok{\textbackslash{}end}\NormalTok{\{}\ExtensionTok{proofEnd}\NormalTok{\}}
%\end{Highlighting}
%\end{Shaded}
@@ -715,7 +890,7 @@
%\item
% \texttt{text\ proof}: text displayed in place of ``Proof'' in the
% appendix. Defaults to
-% \texttt{\{Proof\ of\ \textbackslash{}string\textbackslash{}autoref\{thm:prAtEnd\textbackslash{}pratendcountercurrent\}\}}
+% \texttt{\{Proof\ of\ \textbackslash{}string\textbackslash{}pratendRef\{thm:prAtEnd\textbackslash{}pratendcountercurrent\}\}}
%\item
% \texttt{restate\ command}: name of a unique macro (without backslash)
% that will be defined as an alias to restate the theorem wherever you
@@ -762,10 +937,9 @@
% theorem, alias of \texttt{text\ proof=\{\textbackslash{}proofname\}}
%\item
% \texttt{stared} (or \texttt{no\ number}): when you use the stared
-% version of a theorem you don't have any number, so autoref fails to
-% write a nice link to the theorem. This option changes the text of
-% ``Proof'', by keeping the link but writting only \texttt{Proof}.
-% Equivalent to
+% version of a theorem you don't have any number, so cref fails to write
+% a nice link to the theorem. This option changes the text of ``Proof'',
+% by keeping the link but writting only \texttt{Proof}. Equivalent to
% \texttt{text\ proof=\{\textbackslash{}string\textbackslash{}mbox\{\textbackslash{}string\textbackslash{}hyperref{[}thm:prAtEnd\textbackslash{}pratendcountercurrent{]}\{\textbackslash{}proofname\}\}\}}
%\item
% \texttt{see\ full\ proof}: useful when you want to write in the main
@@ -787,11 +961,11 @@
%\item
% \texttt{text\ link\ section}: Put a link to the proof looking like
% ``See proof in section X''. Defaults to
-% \texttt{text\ link=\{See\ \textbackslash{}hyperref{[}proof:prAtEnd\textbackslash{}pratendcountercurrent{]}\{proof\}\ in\ \textbackslash{}autoref\{proofsection:prAtEnd\textbackslash{}pratendcountercurrent\}.\}}
+% \texttt{text\ link=\{See\ \textbackslash{}hyperref{[}proof:prAtEnd\textbackslash{}pratendcountercurrent{]}\{proof\}\ in\ \textbackslash{}pratendSectionlikeCref.\}}
%\item
% \texttt{text\ link\ section\ full\ proof}: Put a link to the proof
% looking like ``See full proof in section X''. Defaults to
-% \texttt{text\ link=\{See\ \textbackslash{}hyperref{[}proof:prAtEnd\textbackslash{}pratendcountercurrent{]}\{full\ proof\}\ in\ \textbackslash{}autoref\{proofsection:prAtEnd\textbackslash{}pratendcountercurrent\}.\}}
+% \texttt{text\ link=\{See\ \textbackslash{}hyperref{[}proof:prAtEnd\textbackslash{}pratendcountercurrent{]}\{full\ proof\}\ in\ \textbackslash{}pratendSectionlikeCref.\}}
%\item
% \texttt{default\ text\ link}: default text for the link to the proof,
% equivalent of
@@ -799,7 +973,7 @@
%\item
% \texttt{default\ text\ proof}: default text for the proof in appendix,
% equivalent of
-% \texttt{text\ proof=\{Proof\ of\ \textbackslash{}string\textbackslash{}autoref\{thm:prAtEnd\textbackslash{}pratendcountercurrent\}\}}
+% \texttt{text\ proof=\{Proof\ of\ \textbackslash{}string\textbackslash{}pratendRef\{thm:prAtEnd\textbackslash{}pratendcountercurrent\}\}}
%\item
% \texttt{text\ proof\ translated}: like \texttt{default\ text\ proof},
% but takes one argument and use it instead of \texttt{Proof\ of}.
@@ -825,6 +999,161 @@
% \texttt{bare\ defaults,\ configuration\ options,\ global\ custom\ defaults,\ local\ custom\ defaults}
%\end{itemize}
%
+%\hypertarget{package-options}{%
+%\section{Package options}\label{package-options}}
+%
+%The package comes with multiple options: - The
+%\texttt{conf=\{CONFIGURATION\}} option is used to configure the default
+%style. Usage:
+%\texttt{\textbackslash{}usepackage{[}conf=\{normal,\ text\ link\ section\}{]}\{proof-at-the-end\}}
+%- The \texttt{disablePatchSection} is useful to stop the library from
+%patching the section-like commands and chapters (by default, we
+%automatically add a \texttt{\textbackslash{}label} at the end of the
+%section which is used by \texttt{text\ link\ section} to find the
+%Appendix). If you enable this option, you can manually add the label by
+%using \texttt{\textbackslash{}pratendAddLabel} after the appendix
+%section (without any argument). - \texttt{commandRef=NAMECOMMAND}: By
+%default, theorem are referenced to using
+%\texttt{\textbackslash{}autoref\{\}}. You can change the value of
+%\texttt{NAMECOMMAND} to use another command, like
+%\texttt{commandRef=Cref} to use \texttt{\textbackslash{}Cref\{\}}. In
+%that case, make sure to load both \texttt{hyperref} and
+%\texttt{cleveref} (typically at the very end of your preambule) as
+%\texttt{cleveref} needs to be loaded after \texttt{hyperref}.
+%Internally, the library creates and uses
+%\texttt{\textbackslash{}pratendRef} instead of
+%\texttt{\textbackslash{}autoref}. - \texttt{createShortEnv}: creates
+%(using \texttt{newEndThm} and \texttt{newEndProof}) the shortcut
+%environments \texttt{proofE} (to replace \texttt{proof}), \texttt{thmE}
+%(to replace \texttt{thm}), \texttt{theoremE} (to replace\ldots{} ok you
+%got the pattern), \texttt{lemmaE} and \texttt{corollaryE}. Note that it
+%is still your job to define the \texttt{thm}, \texttt{lemma}
+%environments.
+%
+%\hypertarget{troubleshooting}{%
+%\section{Troubleshooting}\label{troubleshooting}}
+%
+%Here are some common issues you may have, with explainations to solve
+%them.
+%
+%\hypertarget{the-link-after-the-proof-does-not-mention-the-section-but-something-else-an-equation-a-figure-etc.}{%
+%\subsection{The link after the proof does not mention the section, but
+%something else (an equation, a figure,
+%etc.)}\label{the-link-after-the-proof-does-not-mention-the-section-but-something-else-an-equation-a-figure-etc.}}
+%
+%Sometimes, you may see something like
+%\texttt{See\ proof\ in\ Equation\ A} instead of
+%`\texttt{See\ proof\ in\ Appendix\ A}. This issue
+%\href{https://github.com/leo-colisson/proof-at-the-end/issues/2}{was
+%reported before} and should be solved on newer versions (starting from
+%2022/01/27) by automatically patching sections. If you have this issue,
+%just upgrade (for instance by copying the
+%\href{https://github.com/leo-colisson/proof-at-the-end}{\texttt{proof-at-the-end.sty}
+%file} at the root of your project). We proceed by patching the
+%\texttt{\textbackslash{}chapter}, \texttt{\textbackslash{}section},
+%\texttt{\textbackslash{}subsection}, \texttt{subsubsection} and
+%\texttt{\textbackslash{}paragraph} commands to add
+%\texttt{\textbackslash{}pratendAddLabel} which will help the package to
+%find the label of the current section. If you prefer the old behavior,
+%you can disable it using the \texttt{disablePatchSection} option (more
+%details in the package options).
+%
+%\hypertarget{i-get-an-error-error-file-ended-while-scanning-use-of-xverbatim.-when-using-verbatim-inside-a-theorem}{%
+%\subsection{\texorpdfstring{I get an error
+%\texttt{ERROR:\ File\ ended\ while\ scanning\ use\ of\ \textbackslash{}@xverbatim.}
+%when using verbatim inside a
+%theorem}{I get an error ERROR: File ended while scanning use of \textbackslash@xverbatim. when using verbatim inside a theorem}}\label{i-get-an-error-error-file-ended-while-scanning-use-of-xverbatim.-when-using-verbatim-inside-a-theorem}}
+%
+%I turns out that this library needs to use the \texttt{+b} option of
+%environments in order to manipulate appropriately the theorem/proof.
+%Unfortunately, it means that it is not possible to use verbatim
+%environments inside. While
+%\href{https://tex.stackexchange.com/questions/489435/use-environment-into-new-xparse-environment}{this
+%answer} suggests that it is impossible to avoid this issue, other people
+%reported that it may be possible to use catcodes to capture the
+%environment body verbatim, before using scantokens to reparse it, or to
+%use
+%\href{https://mirror.ibcp.fr/pub/CTAN/macros/latex/contrib/filecontentsdef/filecontentsdef.pdf}{filecontentsdef}
+%(see for instance
+%\href{https://tex.stackexchange.com/questions/631810/create-a-newdocumentenvironment-programmatically?noredirect=1\#comment1575605_631810}{this
+%comment}{]}, ). However, it may be possible that this make syntex
+%unusable, so it may not worth the effort.
+%
+%In anycase, there exists some workarounds, some of the are for instance
+%give in the \href{https://texfaq.org/FAQ-verbwithin}{TeX FAQ}. The
+%simplest solution, if your code is simple/short enough, is to use
+%\texttt{\textbackslash{}texttt} (you can replace backslash with
+%\texttt{\textbackslash{}textbackslash} inside etc, and include it in a
+%\texttt{verse} if you have multiple lines). If you have a longer text,
+%you may also like \texttt{lrbox} to put your content inside a box, for
+%instance like that:
+%
+%\begin{Shaded}
+%\begin{Highlighting}[]
+%\CommentTok{\%\% Create the box}
+%\FunctionTok{\textbackslash{}newsavebox}\NormalTok{\{}\FunctionTok{\textbackslash{}myEndBox}\NormalTok{\}}
+%
+%\KeywordTok{\textbackslash{}begin}\NormalTok{\{}\ExtensionTok{lrbox}\NormalTok{\}\{}\FunctionTok{\textbackslash{}myEndBox}\NormalTok{\}}
+% \KeywordTok{\textbackslash{}begin}\NormalTok{\{}\ExtensionTok{minipage}\NormalTok{\}\{1.0}\FunctionTok{\textbackslash{}linewidth}\NormalTok{\}}
+%\KeywordTok{\textbackslash{}begin}\NormalTok{\{}\ExtensionTok{verbatim}\NormalTok{\}}
+%\VerbatimStringTok{\textbackslash{}newEndThm[normal]\{thmE\}\{thm\}}
+%\VerbatimStringTok{\textbackslash{}newEndProof\{proofE\}\{proof\}}
+%\KeywordTok{\textbackslash{}end}\NormalTok{\{}\ExtensionTok{verbatim}\NormalTok{\}}
+% \KeywordTok{\textbackslash{}end}\NormalTok{\{}\ExtensionTok{minipage}\NormalTok{\}}
+%\KeywordTok{\textbackslash{}end}\NormalTok{\{}\ExtensionTok{lrbox}\NormalTok{\}}
+%
+%\CommentTok{\%\% Create a theorem:}
+%\KeywordTok{\textbackslash{}begin}\NormalTok{\{}\ExtensionTok{thmE}\NormalTok{\}}
+%\NormalTok{ Insert the box:}
+%
+% \KeywordTok{\textbackslash{}begin}\NormalTok{\{}\ExtensionTok{center}\NormalTok{\}}
+% \FunctionTok{\textbackslash{}usebox}\NormalTok{\{}\FunctionTok{\textbackslash{}myEndBox}\NormalTok{\}}
+% \KeywordTok{\textbackslash{}end}\NormalTok{\{}\ExtensionTok{center}\NormalTok{\}}
+%\KeywordTok{\textbackslash{}end}\NormalTok{\{}\ExtensionTok{thmE}\NormalTok{\}}
+%\end{Highlighting}
+%\end{Shaded}
+%
+%\hypertarget{changelog}{%
+%\section{Changelog}\label{changelog}}
+%
+%\begin{itemize}
+%\tightlist
+%\item
+% 2022/01/28:
+%
+% \begin{enumerate}
+% \def\labelenumi{\arabic{enumi}.}
+% \tightlist
+% \item
+% Fix the issue when using sharps in a proof
+% https://github.com/leo-colisson/proof-at-the-end/issues/7.
+% \item
+% Provide \texttt{\textbackslash{}newEndThm},
+% \texttt{\textbackslash{}newEndProof} and the option
+% \texttt{createShortEnv} to quickly create environments.
+% \end{enumerate}
+%\item
+% 2022/01/27:
+%
+% \begin{enumerate}
+% \def\labelenumi{\arabic{enumi}.}
+% \tightlist
+% \item
+% Patch chapters/sections/\ldots{} to better detect the current
+% section and fix
+% \href{https://github.com/leo-colisson/proof-at-the-end/issues/2}{issue
+% 2}. This can be disabled using the package option
+% \texttt{disablePatchSection}.
+% \item
+% Add an option \texttt{commandRef} to use other ref libraries, like
+% \texttt{cleveref} instead of \texttt{autoref}.
+% \item
+% Normal restatable theorem do not need to be restated. Fix
+% \href{https://github.com/leo-colisson/proof-at-the-end/issues/8}{issue
+% 8}.
+% \end{enumerate}
+%\end{itemize}
+%
%\hypertarget{contributions}{%
%\section{Contributions}\label{contributions}}
%
@@ -837,19 +1166,20 @@
%
%\begin{Shaded}
%\begin{Highlighting}[]
-%\ExtensionTok{%%}\NormalTok{ Compile the demo}
+%\ExtensionTok{\%\%}\NormalTok{ Compile the demo}
%\FunctionTok{make}\NormalTok{ demo}
-%\ExtensionTok{%%}\NormalTok{ Clean the project}
+%\ExtensionTok{\%\%}\NormalTok{ Clean the project}
%\FunctionTok{make}\NormalTok{ clean}
-%\ExtensionTok{%%}\NormalTok{ Generate the documentation}
+%\ExtensionTok{\%\%}\NormalTok{ Generate the documentation}
%\FunctionTok{make}\NormalTok{ doc}
-%\ExtensionTok{%%}\NormalTok{ Generate a package for CTAN}
+%\ExtensionTok{\%\%}\NormalTok{ Generate a package for CTAN}
%\FunctionTok{make}\NormalTok{ package}
%\end{Highlighting}
%\end{Shaded}
%
%
%
+%
%\StopEventually{}
%\section{The Code}
%\iffalse
@@ -858,16 +1188,18 @@
% \end{macrocode}
%\fi
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{proof-at-the-end}[2019/05/21 A package to move proofs in appendix]
+\ProvidesPackage{proof-at-the-end}[2022/01/28 A package to move proofs in appendix]
\RequirePackage{etoolbox}
-\RequirePackage{hyperref}
\RequirePackage{thmtools}
\RequirePackage{thm-restate}
\RequirePackage{catchfile}
\RequirePackage{pgfkeys}
\RequirePackage{xparse}
-
+% Load hyperref at the end
+\AtEndPreamble{%
+ \RequirePackage{hyperref}
+}%
\RequirePackage{kvoptions}
%% https://tex.stackexchange.com/questions/109747/put-all-package-options-into-one-command
@@ -876,27 +1208,56 @@
%% \usepackage[conf={normal}]{proof-at-the-end}
\SetupKeyvalOptions{
family=pratendOpt,
- prefix=pratendOpt,
+ prefix=pratendOpt, % "Namespace": Prefix of the commands, conditions....
}
\DeclareStringOption{conf}
\DeclareLocalOptions{conf}% \pratendOptdefconf contains the proof
+\DeclareBoolOption{disablePatchSection} % Use \ifpratendOptdisablePatchSection ... \else ... \fi
+\DeclareStringOption[autoref]{commandRef} % Use commandRef=cref to use cleveref. Defaults to autoref.
+\DeclareBoolOption{createShortEnv} % To create thmE, theoremE, proofE, lemmaE, corrolaryE
\ProcessKeyvalOptions*
% \DeclareOption*{\PackageWarning{proof-at-the-end}{Unknown}}
% \ProcessOptions\relax
+%% https://tex.stackexchange.com/a/13289/116348
\newwrite\appendwrite
+\newcount\pratend@count@makeallother
+
+%%% Loop to make sure all chars are normal letters, including #.
+\newcommand{\makeallother}{%
+ \pratend@count@makeallother0\relax
+ \loop\ifnum\pratend@count@makeallother<255\relax
+ \catcode\pratend@count@makeallother12\relax
+ \advance\pratend@count@makeallother by 1\relax
+ \repeat
+}
+%%% This command allows the user to append things to a file. But the content may contain macros that
+%%% will be evaluated before writing them to the file.
+%%% TODO: Efficiency may be improved by writing to the file only before the printProof.
% The first argument is the file name
% The second argument is the text to write
\NewDocumentCommand\appendtofile{m+m}{%
\begingroup
- \IfFileExists{#1}%
- {\CatchFileDef{\filecontent}{#1}{\catcode`\\=12 \endlinechar=`^^J\catcode\endlinechar=12\relax}}% keep existing end-of-lines
- {\let\filecontent\empty}%
- \immediate\openout\appendwrite=#1\relax
- \immediate\write\appendwrite{\detokenize\expandafter{\filecontent}#2}%
- \immediate\closeout\appendwrite
+ %% Read the content
+ \begingroup%
+ \IfFileExists{#1}{%
+ \newlinechar\endlinechar%
+ \makeallother% Turn all chars into normal letters.
+ \everyeof{\noexpand}%
+ \edef\fileContent{\@@input #1 }%
+ }{%
+ \let\fileContent\empty
+ }%
+ %% Open the file to write in it:
+ \immediate\openout\appendwrite #1\relax%
+ %% Write the text
+ \immediate\write\appendwrite{\fileContent}%
+ \endgroup%
+ \immediate\write\appendwrite{#2}%
+ %% Close the file
+ \immediate\closeout\appendwrite%
\endgroup
}
@@ -1012,19 +1373,19 @@
one big link={#1~\pageref*{proof:prAtEnd\pratendcountercurrent}.}
},
text link section/.style={%
- text link={See \hyperref[proof:prAtEnd\pratendcountercurrent]{proof} in \autoref{proofsection:prAtEnd\pratendcountercurrent}.}
+ text link={See \hyperref[proof:prAtEnd\pratendcountercurrent]{proof} in \pratendSectionlikeCref.}
},
text link section full proof/.style={%
- text link={See \hyperref[proof:prAtEnd\pratendcountercurrent]{full proof} in \autoref{proofsection:prAtEnd\pratendcountercurrent}.}
+ text link={See \hyperref[proof:prAtEnd\pratendcountercurrent]{full proof} in \pratendSectionlikeCref.}
},
default text link/.style={
text link={See \hyperref[proof:prAtEnd\pratendcountercurrent]{proof} on page~\pageref{proof:prAtEnd\pratendcountercurrent}.},
},
text proof translated/.style={
- text proof={#1 \string\autoref{thm:prAtEnd\pratendcountercurrent}},
+ text proof={#1 \string\pratendRef{thm:prAtEnd\pratendcountercurrent}},
},
default text proof/.style={
- text proof={Proof of \string\autoref{thm:prAtEnd\pratendcountercurrent}},
+ text proof={Proof of \string\pratendRef{thm:prAtEnd\pratendcountercurrent}},
},
%%%% Defaults
bare defaults/.style={
@@ -1116,9 +1477,13 @@
\fi%
%% Create a custom alias to restate the theorem
\expandafter\protected@xdef\csname \pratendcustomrestate\endcsname{\noexpand\csname prAtEndRestate\pratendcountercurrent\endcsname}%
- %% Restate the theorem if needed in appendix
- \ifrestatethm
- \appendtofile{\prefixPrAtEndFiles\category.tex}{\string\prAtEndRestate\pratendcountercurrent*}
+ %% Restate the theorem if needed in appendix.
+ %% As explained in https://github.com/leo-colisson/proof-at-the-end/issues/8
+ %% No need to restate of there is no proof at the end.
+ \ifproofend %
+ \ifrestatethm %
+ \appendtofile{\prefixPrAtEndFiles\category.tex}{\string\prAtEndRestate\pratendcountercurrent*}%
+ \fi%
\fi%
\fi%
%% If the theorem is not stated in the main text,
@@ -1129,7 +1494,7 @@
\protected@xdef\pratendcountercurrent{\roman{counterAllProofEnd}}
%% Create a custom alias to restate the theorem
\expandafter\protected@xdef\csname \pratendcustomrestate\endcsname{\noexpand\csname prAtEndRestate\pratendcountercurrent\endcsname}%
- \appendtofile{\prefixPrAtEndFiles\category.tex}{\string\begin{restatable}[#3]{#2}{prAtEndRestate\pratendcountercurrent}\string\label{thm:prAtEnd\pratendcountercurrent}\detokenize{#4}\string\end{restatable}}%
+ \appendtofile{\prefixPrAtEndFiles\category.tex}{\string\begin{restatable}[\detokenize{#3}]{#2}{prAtEndRestate\pratendcountercurrent}\string\label{thm:prAtEnd\pratendcountercurrent}\detokenize{#4}\string\end{restatable}}%
\fi%
}{}
@@ -1155,7 +1520,13 @@
\fi%
%% Write the proof at the end
\ifproofend%
- \appendtofile{\prefixPrAtEndFiles\category.tex}{\string\label{proofsection:prAtEnd\pratendcountercurrent}\string\begin{proof}[\pratendtextproof]\string\phantomsection\string\label{proof:prAtEnd\pratendcountercurrent}\detokenize{#2}\string\end{proof}}%
+ %% The label alone adds some space, see e.g.
+ %% https://tex.stackexchange.com/questions/600118/selectlanguage-in-the-middle-of-text-causes-extra-vertical-space/600142#600142
+ %% and https://tex.stackexchange.com/questions/600577/adding-a-label-between-two-proofs-adds-unwanted-space
+ %% The solution is to use \\Hy@SaveLastskip and \Hy@RestoreLastskip from hyperref
+ %% See also
+ %% https://tex.stackexchange.com/questions/553394/reliably-add-a-label-to-the-current-section-even-if-the-label-is-not-placed-rig/600847#600847
+ \appendtofile{\prefixPrAtEndFiles\category.tex}{\string\makeatletter\string\Hy@SaveLastskip\string\pratendChangeCurrentLabel\string\label{proofsection:prAtEnd\pratendcountercurrent}\string\Hy@RestoreLastskip\string\makeatother\string\begin{proof}[\pratendtextproof]\string\phantomsection\string\label{proof:prAtEnd\pratendcountercurrent}\detokenize{#2}\string\end{proof}}%
\fi%
}{}
@@ -1198,6 +1569,112 @@
% }
% }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Patch sections, chapters...
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% We patch the \section, \subsection and \chapter commands to make sure that
+% the text "See proof in Section XX" points to the appropriate section/subsection.
+% We basically maintain a counter counting how many time we saw a section/subsection/... and use it to label
+% directly the section afterwards.
+\newcounter{pratend@counter@sectionlike}
+%% Command to add after a label like "prAtEnd:sectionlike10". Useful to patch \section, \chapter...
+\NewDocumentCommand\pratendAddLabel{}{%
+ %% First, we get the label
+ %% Cool explaination of expandafter, edef, noexpand:
+ %%% https://www.tug.org/TUGboat/tb09-1/tb20bechtolsheim.pdf
+ \edef\pratend@current@sectionlike@label{prAtEnd:sectionlike\thepratend@counter@sectionlike}%
+ \expandafter\label{\pratend@current@sectionlike@label}%
+ \let\pratend@sectionlike@stored@label\@currentlabel%
+}%
+\NewDocumentCommand\pratendSectionlikeCref{}{%
+ \pratendRef{proofsection:prAtEnd\pratendcountercurrent}%
+}
+\NewDocumentCommand\pratendChangeCurrentLabel{}{
+ \ifdefined\pratend@sectionlike@stored@label%
+ \let\@currentlabel\pratend@sectionlike@stored@label%
+ \fi%
+}
+\ifpratendOptdisablePatchSection
+\else
+ %% Add the above command to \chapter if the command exists
+ \ifdef{\@chapter}{
+ \ifpatchable*{\@chapter}{
+ \apptocmd{\@chapter}{\pratendAddLabel}{}{}%
+ }{\PackageWarning{proof-at-the-end}{Chapters are not patchable.}{}}
+ }{}
+ %% patch sections/subsections/paragraph/...
+ %% https://tex.stackexchange.com/questions/631713/patch-section-command-fails/631717?noredirect=1#comment1575337_631717
+ \ifdef{\@sect}{
+ % \apptocmd{\section}{\pratendAddLabel}{}{}%
+ \ifpatchable*{\@sect}{
+ \apptocmd{\@sect}{\pratendAddLabel}{}{}%
+ }{\PackageWarning{proof-at-the-end}{Sections are not patchable.}{}}
+ }{}
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Allow cref/autoref/...
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Instead of \autoref{proof:blabla} use \pratendRef{proof:blabla}, it allows the ref command to be customized
+%% as an option of the package.
+\NewDocumentCommand\pratendRef{m}{%
+ \csname \pratendOptcommandRef\endcsname{#1}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Create automatically wrapper
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Defines a shortcut to avoid typing the whole theoremEnd environment.
+%% Avoid to manually type \NewDocumentEnvironment...
+%% Usage: \newEndThm[default options]{new environment}{old environment}
+% E.g.: \newEndThm[normal]{thmE}{thm}{}
+\NewDocumentCommand{\newEndThm}{O{}mm}{%
+ % \expandafter\NewDocumentEnvironment{#2}{O{}O{}+b}{%
+ % \begin{theoremEnd}[#1,##2]{#3}[##1]%
+ % ##3%
+ % \end{theoremEnd}%
+ % }{}
+ \NewDocumentEnvironment{#2}{O{}O{}}{%
+ \begin{theoremEnd}[#1,##2]{#3}[##1]%
+ }{\end{theoremEnd}}
+}
+
+% \NewDocumentCommand{\newEndThm}{O{}mm}{%
+% % \expandafter\NewDocumentEnvironment{#2}{O{}O{}+b}{%
+% % \begin{theoremEnd}[#1,##2]{#3}[##1]%
+% % ##3%
+% % \end{theoremEnd}%
+% % }{}
+% \expandafter\NewDocumentEnvironment{#2}{O{}O{}+b}{%
+% \begin{theoremEnd}[#1,##2]{#3}[##1]%
+% ##3
+% \end{theoremEnd}%
+% }{}
+% }
+
+%% Avoid to manually type \NewDocumentEnvironment...
+%% Usage: \newEndProof[default options]{new proof environment}{old proof environment}
+% E.g.: \newEndProof[]{proofE}{proof}
+\NewDocumentCommand{\newEndProof}{O{}m}{%
+ \NewDocumentEnvironment{#2}{O{}+b}{%
+ \begin{proofEnd}[#1,##1]%
+ ##2%
+ \end{proofEnd}%
+ }{}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Create even more automatically wrapper with option "createShortEnv"
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifpratendOptcreateShortEnv
+ %%% We create automatically the environments.
+ \newEndProof{proofE}
+ \newEndThm{thmE}{thm}
+ \newEndThm{lemmaE}{lemmaE}
+ \newEndThm{theoremE}{theorem}
+ \newEndThm{corollaryE}{corollary}
+\fi
\endinput
%\iffalse
diff --git a/macros/latex/contrib/proof-at-the-end/proof-at-the-end.ins b/macros/latex/contrib/proof-at-the-end/proof-at-the-end.ins
index 0daebc328f..35ac253c53 100644
--- a/macros/latex/contrib/proof-at-the-end/proof-at-the-end.ins
+++ b/macros/latex/contrib/proof-at-the-end/proof-at-the-end.ins
@@ -1,10 +1,10 @@
-% proof-at-the-end.ins generated using makedtx version 1.2 2019/5/22 12:52
+% proof-at-the-end.ins generated using makedtx version 1.2 2022/1/28 19:43
\input docstrip
\preamble
proof-at-the-end.dtx
- Copyright 2019 Léo Colisson
+ Copyright 2022 Léo Colisson
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/proof-at-the-end/proof-at-the-end.pdf b/macros/latex/contrib/proof-at-the-end/proof-at-the-end.pdf
index de9dd25e63..63ce2cb59f 100644
--- a/macros/latex/contrib/proof-at-the-end/proof-at-the-end.pdf
+++ b/macros/latex/contrib/proof-at-the-end/proof-at-the-end.pdf
Binary files differ
diff --git a/macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.pdf b/macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.pdf
index ce9b0d89f5..2186bcc823 100644
--- a/macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.pdf
+++ b/macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.pdf
Binary files differ
diff --git a/macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.tex b/macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.tex
index f7e9f33ad9..d4f59616c9 100644
--- a/macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.tex
+++ b/macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.tex
@@ -1,7 +1,9 @@
\documentclass{article}
\usepackage{amssymb, amsthm, amsmath}
-\usepackage{hyperref}
+\usepackage{xparse}
+\usepackage{verbatim}
+
% Load the package (put the proof-at-the-end.sty file in the working directory)
\usepackage{proof-at-the-end} % with default options...
% Or by putting in the 'conf' option the default configuration you want:
@@ -17,7 +19,7 @@
% text link={\hyperref[proof:prAtEnd\pratendcountercurrent]{See proof on page~\pageref*{proof:prAtEnd\pratendcountercurrent}}}
% }
% }
-%%% You can also easily modify the gloabl/locals defaults in other parts of the code using:
+%%% You can also easily modify the global/locals defaults in other parts of the code using:
% \pgfkeys{/prAtEnd/local custom defaults/.style={
% category=greattheorem
% }
@@ -39,14 +41,17 @@
\providecommand*\lemmaautorefname{Lemma}
%% If you want you can define shortcuts:
-\usepackage{xparse}
-% And to define new shortcuts:
-\NewDocumentEnvironment{mynormalthm}{O{}O{}+b}{%
- \begin{theoremEnd}[normal,#2]{thm}[#1]%
- #3%
- \end{theoremEnd}%
-}{}
+% And to define new shortcuts, in order to avoid typing:
+% \NewDocumentEnvironment{thmE}{O{}O{}+b}{%
+% \begin{theoremEnd}[normal,#2]{thm}[#1]%
+% #3%
+% \end{theoremEnd}%
+% }{}
+% you can just type:
+\newEndThm[normal]{thmE}{thm}
+\newEndProof{proofE}
+\usepackage{hyperref}
\begin{document}
\section{Demo of proof-at-the-end}
@@ -94,6 +99,13 @@ And I can refer to my theorems using classic labels, like in \autoref{thm:ilikel
And keep the proof with you!
\end{proofEnd}
+\begin{theoremEnd}[normal,restate]{thm}[I am restatable but normal]
+ See, if you are both normal and restatable, then no need to restate the theorem at the end!
+\end{theoremEnd}
+\begin{proofEnd}
+ I am a proof of a restatable but normal theorem.
+\end{proofEnd}
+
You can also put comments that appear only in the appendix.
\textEnd{See, I am a simple comments with math $\delta = b^2-ac$ and references \autoref{thm:mytheoremattheend}.}
@@ -168,33 +180,67 @@ And of course it is easy to define custom shortcuts, using in prelude:
}{}
\end{verbatim}
-\begin{mynormalthm}[My own environment]
- You can then create your own environment from other styles using
-\end{mynormalthm}
+\newsavebox{\myEndBox}
+
+\begin{lrbox}{\myEndBox}
+ \begin{minipage}{1.0\linewidth}
+\begin{verbatim}
+\newEndThm[normal]{thmE}{thm}
+\newEndProof{proofE}
+\end{verbatim}
+ \end{minipage}
+\end{lrbox}
+
+\newsavebox{\myEndBoxB}
+
+\begin{lrbox}{\myEndBoxB}
+ \begin{minipage}{1.0\linewidth}
+\begin{verbatim}
+\begin{thmE}[Title][optional options]
+ Theorem
+\end{thmE}
+\begin{proofE}
+ Your proof
+\end{proofE}
+\end{verbatim}
+ \end{minipage}
+\end{lrbox}
+
+\begin{thmE}[My own environment][normal]
+ You can then create a wrapper to avoid typing the full theoremEnd environment, and to add custom options by using:
+
+ \begin{center}
+ \usebox{\myEndBox}
+ \end{center}
+
+ \noindent (see that we need to use \texttt{\textbackslash textt} or \texttt{lrbox} to typeset verbatim inside theorem)
+
+ Then, you can simply use:
+\end{thmE}
\begin{proofEnd}
That's quicker :D
\end{proofEnd}
-\begin{mynormalthm}[My own environment][end]
+\begin{thmE}[My own environment][end]
You can use options also with your custom environments.
-\end{mynormalthm}
+\end{thmE}
\begin{proofEnd}
That's quicker with the proof at the end :D
\end{proofEnd}
-\begin{mynormalthm}[][end]
+\begin{thmE}[][end]
And you can remove the title and have options.
-\end{mynormalthm}
-\begin{proofEnd}
+\end{thmE}
+\begin{proofE}
Just leave empty title.
-\end{proofEnd}
+\end{proofE}
-\begin{mynormalthm}[My second own environment][all end]
+\begin{thmE}[My second own environment][all end]
My normal theorem is moved at the end!
-\end{mynormalthm}
-\begin{proofEnd}
+\end{thmE}
+\begin{proofE}
Custom environments are practical no ;)
-\end{proofEnd}
+\end{proofE}
\begin{theoremEnd}[]{thm}[Yes I can have no proof]
Proof is useless. You can do do it. And see, I can include other environments inside me ;)\\
@@ -204,7 +250,6 @@ And of course it is easy to define custom shortcuts, using in prelude:
\end{tabular}
\end{theoremEnd}
-
\begin{theoremEnd}[restate command=mymanualrestate]{thm}[Manual restate]
A theorem can be manually restated
\end{theoremEnd}
diff --git a/macros/latex/contrib/spbmark/spbmark.pdf b/macros/latex/contrib/spbmark/spbmark.pdf
index 0f6853ca4c..956ba69d9e 100644
--- a/macros/latex/contrib/spbmark/spbmark.pdf
+++ b/macros/latex/contrib/spbmark/spbmark.pdf
Binary files differ
diff --git a/macros/latex/contrib/spbmark/spbmark.sty b/macros/latex/contrib/spbmark/spbmark.sty
index 1ab56b6bf3..6b1f60022e 100644
--- a/macros/latex/contrib/spbmark/spbmark.sty
+++ b/macros/latex/contrib/spbmark/spbmark.sty
@@ -9,7 +9,7 @@
% https://creativecommons.org/licenses/by/4.0/legalcode
\NeedsTeXFormat{LaTeX2e}[2018/12/31]
\RequirePackage{xparse,l3keys2e}
-\ProvidesExplPackage{spbmark}{2022/01/25}{1.32}
+\ProvidesExplPackage{spbmark}{2022/01/28}{1.33}
{Customize superscripts and subscripts}
\cs_generate_variant:Nn \box_set_ht:Nn { cv }
@@ -62,6 +62,8 @@
style/#1 .code:n = \keys_set:nn { ctex/style } {#2}
}
}
+\cs_new_protected:Npn \spbshortkv #1#2
+ { \spb_define:n { #1 .meta:n = {#2} } }
\spb_define:n
{
mode .tl_set:N = \l__spb_mode_value_tl,
diff --git a/macros/latex/contrib/spbmark/spbmark.tex b/macros/latex/contrib/spbmark/spbmark.tex
index b68e0bb169..fd16319223 100644
--- a/macros/latex/contrib/spbmark/spbmark.tex
+++ b/macros/latex/contrib/spbmark/spbmark.tex
@@ -6,8 +6,8 @@
{
package = spbmark,
title = the spbmark package,
- version = v1.32,
- date = 2022/01/25,
+ version = v1.33,
+ date = 2022/01/28,
authors = Qu Yi,
info = Customize superscript and subscript,
email = q1jx@foxmail.com,
@@ -19,7 +19,7 @@
color-scheme = blue,
title-format = \huge\bfseries\scshape,
add-frame-options = {innerleftmargin = 2em},
- listings-options = {numbers = none},
+ listings-options = {numbers = none,gobble = 2},
pre-output = {\parindent = 0em}
}
@@ -40,7 +40,7 @@
\section{Macro package options}
\label{sec:macro package options}
-The following macro package options will redefine the scripts commands of the \LaTeX{} kernel. If you do not specify the values of boolean options, they default to \code{true}.
+The following macro package options will redefine the script commands of the \LaTeX{} kernel. If you do not specify the values of boolean options, they default to \code{true}.
\begin{options}
\keybool{text}\Default{false}
\cs{textsuperscript} and \cs{textsubscript} are equivalent to the \cs{super} and \cs{sub} commands.
@@ -54,7 +54,7 @@ The following macro package options will redefine the scripts commands of the \L
The values of \option{text}, \option{math} and \option{foot} three options are \code{true} at the same time.
\begin{example}[code-only]
\usepackage[both]{spbmark}
- \usepackage[text,foot = true]{spbmark}
+ \usepackage[text,foot=true]{spbmark}
\end{example}
\end{options}
@@ -71,8 +71,19 @@ There are currently three commands to set superscript and subscript. Their forma
Defines the style of the superscript or subscript used for the \option{style} option.
\command{spbifmath}[\marg{math code}\marg{text code}]
In some cases, \code{math} or \code{text} output modes require different code for format or move. This command can be used when using the \code{match} option or changing the output mode locally, whitch should be used in the move or format options. It can switch the corresponding code according to different output modes.
+ \command{spbshortkv}[\marg{short opt}\marg{key value}]
+ Converts any existing key-value pair to a shorthand option. The value of key \code{\#1} indicates that the shorthand option needs to be assigned a value.
+ \begin{example}
+ \spbshortkv{x}{sphmove=#1}
+ \defspbstyle{fancy}{sbcmd=\color{blue},mode=math}
+ \spbshortkv{mysb}{style=fancy}
+ A\super[x=2pt]{b} \\
+ A\sub{b}[mysb]
+ \end{example}
\end{commands}
+Since the \cs{super} and \cs{sub} commands enclose the scripts in a horizontal box, the horizontal positions are staggered when using both superscript and subscript, which is different from the simultaneous use of \code{\^{}} and \code{\_} symbols in math mode. In this case, you need to adjust the horizontal offset of the latter command or use the \cs{supersub} command.
+
The options common to \meta{kv list} of the three commands are as follows. They can be used in \meta{key-value list} for the \cs{spbset} command. When the following options are used in the \cs{spbset} command, in addition to \option{style} and \option{mode}, they are set according to the type of the previous most recent command.
\begin{options}
\keyval{vmove}{fixed length}\Default{0pt}
@@ -138,9 +149,9 @@ The following list of keys control the format of superscript and subscript.
\begin{options}
\keyval{spbhmove}{fixed length}\Default{0pt}
Extra vertical move of the superscript and the subscript.
- \kvsplit{spbcmd}{super cmds}{sub cmds}
+ \kvsplit{spbcmd}{super cmds}{sub cmds} \newline
The format commands of superscript and subscript. The first part is in superscript format, and the latter part is in subscript format. They are separated by commas, or only the first part exists.
- \kvsplit{spbcmd+}{super cmds}{sub cmds}
+ \kvsplit{spbcmd+}{super cmds}{sub cmds} \newline
Add code to the previous global superscript and subscript format commands.
\keyval{spbheight}{fixed length}
The distance between the superscript baseline and the previous line.
@@ -155,19 +166,19 @@ The following list of keys control the format of superscript and subscript.
\section{Examples of use}
Here is a list of the three commands, please pay attention to the usage of optional parameters. Note when the horizontal move is negative, the starting point is at the right end of the mark.
\begin{example}
-\defspbstyle{fancy}{cmd=\color{purple}}
-\spbset{spbcmd={\spbifmath{\mathtt}{\ttfamily},\color{blue}}}
-A\super[vmove=0.2ex,hmove=0.2em,cmd=\textcolor{red}]{exam}B \\
-$A\sub[style=fancy,cmd+=\mathsf,mode=math]{exam}B$ \\
-A\supersub[vsep=0.6ex,halign=c]{examsuper}{sub}B \\
-A\super{c}[vmove=5pt,hmove=-5.5pt]B\sub[vmove=5pt,hmove=-5pt]{d}AB
+ \defspbstyle{fancy}{cmd=\color{purple}}
+ \spbset{spbcmd={\spbifmath{\mathtt}{\ttfamily},\color{blue}}}
+ A\super[vmove=0.2ex,hmove=0.2em,cmd=\textcolor{red}]{exam}B \\
+ $A\sub[style=fancy,cmd+=\mathsf,mode=math]{exam}B$ \\
+ A\supersub[vsep=0.6ex,halign=c]{examsuper}{sub}B \\
+ A\super{c}[vmove=5pt,hmove=-5.5pt]B\sub[vmove=5pt,hmove=-5pt]{d}AB
\end{example}
It can also be used with the \pkg*{siunitx} package to output superscript and subscript in the unit:
\begin{example}
-\unit[mode=math]{kg.m/s\super[vmove=-1pt]{2}} \\
-\qty[mode=text]{30}{A\supersub[hmove=1pt,cmd=\color{red}]{b}{c}} \\
-\spbset{sbhmove=2pt}\unit[mode=text]{A\sub{b}}
+ \unit[mode=math]{kg.m/s\super[vmove=-1pt]{2}} \\
+ \qty[mode=text]{30}{A\supersub[hmove=1pt,cmd=\color{red}]{b}{c}} \\
+ \spbset{sbhmove=2pt}\unit[mode=text]{A\sub{b}}
\end{example}
\pkg*{spbmark} also patches the footer markers for standard document class and \cls*{KOMA-Script}. You can format the footer markers by redefining the \cs{fnmarkfont} command. Note that extra horizontal move does not work with footnote markers.
diff --git a/macros/latex/contrib/zref-clever/CHANGELOG.md b/macros/latex/contrib/zref-clever/CHANGELOG.md
index 5a5addd47e..74fdc04b4e 100644
--- a/macros/latex/contrib/zref-clever/CHANGELOG.md
+++ b/macros/latex/contrib/zref-clever/CHANGELOG.md
@@ -1,6 +1,28 @@
# Changelog
-## [Unreleased](https://github.com/gusbrs/zref-clever/compare/v0.1.2-alpha...HEAD)
+## [Unreleased](https://github.com/gusbrs/zref-clever/compare/v0.2.0-alpha...HEAD)
+
+## [v0.2.0-alpha](https://github.com/gusbrs/zref-clever/compare/v0.1.2-alpha...v0.2.0-alpha) (2022-01-28)
+
+### Added
+- The reference block formatting has been generalized to allow for more
+ flexibility in setting the reference structure, with the new option
+ `refbounds`.
+
+### Fixed
+- Fixed handling of type names defined to be empty.
+- Fixed distinction of `lastsep` and `pairsep` in cases where the type-block
+ starts or ends with a range.
+
+### Changed
+- The `namefont` and `reffont` options can now be set also in
+ `\zcRefTypeSetup` and `\zcLanguageSetup`.
+- (Internal) Moved from property lists to individually named macros to store
+ and retrieve options.
+
+### Deprecated
+- Options `preposinlink`, `preref`, and `postref` have been deprecated and
+ replaced by new option `refbounds`.
## [v0.1.2-alpha](https://github.com/gusbrs/zref-clever/compare/v0.1.1-alpha...v0.1.2-alpha) (2022-01-10)
@@ -34,7 +56,7 @@
### Removed
- Dropped the `subappendix` reference type.
-## [v0.1.0-alpha](https://github.com/gusbrs/zref-clever/releases/tag/v0.1.0-alpha) (2021-00-24)
+## [v0.1.0-alpha](https://github.com/gusbrs/zref-clever/releases/tag/v0.1.0-alpha) (2021-11-24)
### Added
- Initial release.
diff --git a/macros/latex/contrib/zref-clever/MANIFEST.md b/macros/latex/contrib/zref-clever/MANIFEST.md
index a52c56a9ee..0c7f6e4af5 100644
--- a/macros/latex/contrib/zref-clever/MANIFEST.md
+++ b/macros/latex/contrib/zref-clever/MANIFEST.md
@@ -65,7 +65,9 @@ the same output. These output files are sometimes shared and sometime specific f
different engines (pdfTeX, XeTeX, LuaTeX, etc.).
* zc-LanguageSetup01.lvt
+* zc-LanguageSetup02.lvt
* zc-RefTypeSetup01.lvt
+* zc-RefTypeSetup02.lvt
* zc-class-article01.lvt
* zc-class-book01.lvt
* zc-class-memoir01.lvt
@@ -83,6 +85,7 @@ different engines (pdfTeX, XeTeX, LuaTeX, etc.).
* zc-compat-memoir01.lvt
* zc-compat-subcaption01.lvt
* zc-compat-subfig01.lvt
+* zc-fallback01.lvt
* zc-howto-amsmath01.lvt
* zc-howto-enumitem01.lvt
* zc-howto-listings01.lvt
@@ -97,8 +100,12 @@ different engines (pdfTeX, XeTeX, LuaTeX, etc.).
* zc-howto-newtheorem04.lvt
* zc-howto-zref-xr01.lvt
* zc-label-options01.lvt
-* zc-langfiles01.lvt
-* zc-langfiles02.lvt
+* zc-langfile-dutch01.lvt
+* zc-langfile-english01.lvt
+* zc-langfile-french01.lvt
+* zc-langfile-german01.lvt
+* zc-langfile-portuguese01.lvt
+* zc-langfile-spanish01.lvt
* zc-languages01.lvt
* zc-opt-check01.lvt
* zc-opt-d01.lvt
@@ -125,16 +132,27 @@ different engines (pdfTeX, XeTeX, LuaTeX, etc.).
* zc-typeset01.lvt
* zc-workaround-breqn01.lvt
* zc-zcref-options01.lvt
+* zc-zcref-options02.lvt
* zc-LanguageSetup01.luatex.tlg
* zc-LanguageSetup01.luatexdev.tlg
* zc-LanguageSetup01.tlg
* zc-LanguageSetup01.xetex.tlg
* zc-LanguageSetup01.xetexdev.tlg
+* zc-LanguageSetup02.luatex.tlg
+* zc-LanguageSetup02.luatexdev.tlg
+* zc-LanguageSetup02.tlg
+* zc-LanguageSetup02.xetex.tlg
+* zc-LanguageSetup02.xetexdev.tlg
* zc-RefTypeSetup01.luatex.tlg
* zc-RefTypeSetup01.luatexdev.tlg
* zc-RefTypeSetup01.tlg
* zc-RefTypeSetup01.xetex.tlg
* zc-RefTypeSetup01.xetexdev.tlg
+* zc-RefTypeSetup02.luatex.tlg
+* zc-RefTypeSetup02.luatexdev.tlg
+* zc-RefTypeSetup02.tlg
+* zc-RefTypeSetup02.xetex.tlg
+* zc-RefTypeSetup02.xetexdev.tlg
* zc-class-article01.luatex.tlg
* zc-class-article01.luatexdev.tlg
* zc-class-article01.tlg
@@ -220,6 +238,11 @@ different engines (pdfTeX, XeTeX, LuaTeX, etc.).
* zc-compat-subfig01.tlg
* zc-compat-subfig01.xetex.tlg
* zc-compat-subfig01.xetexdev.tlg
+* zc-fallback01.luatex.tlg
+* zc-fallback01.luatexdev.tlg
+* zc-fallback01.tlg
+* zc-fallback01.xetex.tlg
+* zc-fallback01.xetexdev.tlg
* zc-howto-amsmath01.luatex.tlg
* zc-howto-amsmath01.luatexdev.tlg
* zc-howto-amsmath01.tlg
@@ -288,12 +311,16 @@ different engines (pdfTeX, XeTeX, LuaTeX, etc.).
* zc-label-options01.luatex.tlg
* zc-label-options01.luatexdev.tlg
* zc-label-options01.tlg
-* zc-langfiles01.tlg
-* zc-langfiles02.luatex.tlg
-* zc-langfiles02.luatexdev.tlg
-* zc-langfiles02.tlg
-* zc-langfiles02.xetex.tlg
-* zc-langfiles02.xetexdev.tlg
+* zc-langfile-dutch01.tlg
+* zc-langfile-english01.tlg
+* zc-langfile-french01.tlg
+* zc-langfile-german01.tlg
+* zc-langfile-portuguese01.luatex.tlg
+* zc-langfile-portuguese01.luatexdev.tlg
+* zc-langfile-portuguese01.tlg
+* zc-langfile-portuguese01.xetex.tlg
+* zc-langfile-portuguese01.xetexdev.tlg
+* zc-langfile-spanish01.tlg
* zc-languages01.tlg
* zc-opt-check01.luatex.tlg
* zc-opt-check01.luatexdev.tlg
@@ -402,6 +429,11 @@ different engines (pdfTeX, XeTeX, LuaTeX, etc.).
* zc-zcref-options01.tlg
* zc-zcref-options01.xetex.tlg
* zc-zcref-options01.xetexdev.tlg
+* zc-zcref-options02.luatex.tlg
+* zc-zcref-options02.luatexdev.tlg
+* zc-zcref-options02.tlg
+* zc-zcref-options02.xetex.tlg
+* zc-zcref-options02.xetexdev.tlg
## TDS manifest
diff --git a/macros/latex/contrib/zref-clever/zref-clever-code.pdf b/macros/latex/contrib/zref-clever/zref-clever-code.pdf
index b955c4c59f..033edad2dc 100644
--- a/macros/latex/contrib/zref-clever/zref-clever-code.pdf
+++ b/macros/latex/contrib/zref-clever/zref-clever-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/zref-clever/zref-clever.dtx b/macros/latex/contrib/zref-clever/zref-clever.dtx
index 3027bcab15..d850476b4c 100644
--- a/macros/latex/contrib/zref-clever/zref-clever.dtx
+++ b/macros/latex/contrib/zref-clever/zref-clever.dtx
@@ -162,7 +162,7 @@
%
% Identify the package.
% \begin{macrocode}
-\ProvidesExplPackage {zref-clever} {2022-01-10} {0.1.2-alpha}
+\ProvidesExplPackage {zref-clever} {2022-01-28} {0.2.0-alpha}
{Clever LaTeX cross-references based on zref}
% \end{macrocode}
%
@@ -398,7 +398,7 @@
{
\bool_if:nTF
{ \prop_if_in_p:Nn \l_@@_counter_resetby_prop {#1} }
- { \prop_item:Nn \l_@@_counter_resetby_prop {#1} }
+ { \prop_item:Nn \l_@@_counter_resetby_prop {#1} }
{
\seq_map_tokens:Nn \l_@@_counter_resetters_seq
{ \@@_counter_reset_by_aux:nn {#1} }
@@ -523,11 +523,6 @@
}
\msg_new:nnn { zref-clever } { key-requires-value }
{ The~'#1'~key~'#2'~requires~a~value~\msg_line_context:. }
-\msg_new:nnn { zref-clever } { key-boolean-or-empty }
- {
- The~key~'#1'~only~accepts~the~values~'true',~'false'~
- or~an~empty~value~\msg_line_context:.
- }
\msg_new:nnn { zref-clever } { language-declared }
{ Language~'#1'~is~already~declared~\msg_line_context:.~Nothing~to~do. }
\msg_new:nnn { zref-clever } { unknown-language-alias }
@@ -544,7 +539,7 @@
}
\msg_new:nnn { zref-clever } { unknown-language-opt }
{
- Language~'#1'~is~unknown~\msg_line_context:.~Using~default.~
+ Language~'#1'~is~unknown~\msg_line_context:.~
See~documentation~for~'\iow_char:N\\zcDeclareLanguage'~and~
'\iow_char:N\\zcDeclareLanguageAlias'.
}
@@ -607,15 +602,6 @@
{ Option~'#1'~is~only~available~after~\iow_char:N\\begin\{document\}. }
\msg_new:nnn { zref-clever } { langfile-loaded }
{ Loaded~'#1'~language~file. }
-\msg_new:nnn { zref-clever } { langfile-not-available }
- { Language~file~for~'#1'~not~available~\msg_line_context:. }
-\msg_new:nnn { zref-clever } { unknown-language-load }
- {
- Language~'#1'~is~unknown~\msg_line_context:.~
- Unable~to~load~language~file.~See~documentation~for~
- '\iow_char:N\\zcDeclareLanguage'~and~
- '\iow_char:N\\zcDeclareLanguageAlias'.
- }
\msg_new:nnn { zref-clever } { zref-property-undefined }
{
Option~'ref=#1'~requested~\msg_line_context:.~
@@ -641,6 +627,12 @@
Unknown~compatibility~module~'#1'~given~to~option~'nocompat'.~
Nothing~to~do.
}
+\msg_new:nnn { zref-clever } { refbounds-must-be-four }
+ {
+ The~value~of~option~'#1'~must~be~a~comma~sepatared~list~
+ of~four~items.~We~received~'#2'~items~\msg_line_context:.~
+ Option~not~set.
+ }
\msg_new:nnn { zref-clever } { missing-zref-check }
{
Option~'check'~requested~\msg_line_context:.~
@@ -652,11 +644,6 @@
{ Reference~property~'#1'~undefined~for~label~'#2'~\msg_line_context:. }
\msg_new:nnn { zref-clever } { missing-name }
{ Reference~format~option~'#1'~undefined~for~type~'#2'~\msg_line_context:. }
-\msg_new:nnn { zref-clever } { missing-string }
- {
- We~couldn't~find~a~value~for~reference~option~'#1'~\msg_line_context:.~
- But~we~should~have:~throw~a~rock~at~the~maintainer.
- }
\msg_new:nnn { zref-clever } { single-element-range }
{ Range~for~type~'#1'~resulted~in~single~element~\msg_line_context:. }
\msg_new:nnn { zref-clever } { compat-package }
@@ -724,21 +711,414 @@
% \end{macro}
%
%
+% \subsection{Option infra}
+%
+% This section provides the functions in which the variables naming scheme of
+% the package options is embodied, and some basic general functions to query
+% these option variables.
+%
+% I had originally implemented the option handling of the package based on
+% property lists, which are definitely very convenient. But as the number of
+% options grew, I started to get concerned about the performance implications.
+% That there was a toll was noticeable, even when we could live with it, of
+% course. Indeed, at the time of writing, the typesetting of a reference
+% queries about 24 different option values, most of them once per type-block,
+% each of these queries can be potentially made in up to 5 option scope
+% levels. Considering the size of the built-in language files is running at
+% the hundreds, the package does have a lot of work to do in querying option
+% values alone, and thus it is best to smooth things in this area as much as
+% possible. This also gives me some peace of mind that the package will scale
+% well in the long term. For some interesting discussion about alternative
+% methods and their performance implications, see
+% \url{https://tex.stackexchange.com/q/147966}. \contributor{Phelype Oleinik}
+% also offered some insight on the matter at
+% \url{https://tex.stackexchange.com/questions/629946/#comment1571118_629946}.
+% The only real downside of this change is that we can no longer list the
+% whole set of options in place at a given moment, which was useful for the
+% purposes of regression testing, since we don't know what the whole set of
+% active options is.
+%
+%
+% \begin{macro}[EXP]{\@@_opt_varname_general:nn}
+% Defines, and leaves in the input stream, the csname of the variable used
+% to store the general \meta{option}. The data type of the variable must be
+% specified (\texttt{tl}, \texttt{seq}, \texttt{bool}, etc.).
+% \begin{syntax}
+% \cs{@@_opt_varname_general:nn} \Arg{option} \Arg{data type}
+% \end{syntax}
+% \begin{macrocode}
+\cs_new:Npn \@@_opt_varname_general:nn #1#2
+ { l_@@_opt_general_ #1 _ #2 }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[EXP]{\@@_opt_varname_type:nnn}
+% Defines, and leaves in the input stream, the csname of the variable used
+% to store the type-specific \meta{option} for \meta{ref type}.
+% \begin{syntax}
+% \cs{@@_opt_varname_type:nnn} \Arg{ref type} \Arg{option} \Arg{data type}
+% \end{syntax}
+% \begin{macrocode}
+\cs_new:Npn \@@_opt_varname_type:nnn #1#2#3
+ { l_@@_opt_type_ #1 _ #2 _ #3 }
+\cs_generate_variant:Nn \@@_opt_varname_type:nnn { enn , een }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[EXP]{\@@_opt_varname_language:nnn}
+% Defines, and leaves in the input stream, the csname of the variable used
+% to store the language \meta{option} for \meta{lang} (for general language
+% options, those set with \cs{zcDeclareLanguage}). The
+% ``\texttt{lang_unknown}'' branch should be guarded against, such as we
+% normally should not get there, but this function \emph{must} return some
+% valid csname. The random part is there so that, in the circumstance this
+% could not be avoided, we (hopefully) don't retrieve the value for an
+% ``unknown language'' inadvertently.
+% \begin{syntax}
+% \cs{@@_opt_varname_language:nnn} \Arg{lang} \Arg{option} \Arg{data type}
+% \end{syntax}
+% \begin{macrocode}
+\cs_new:Npn \@@_opt_varname_language:nnn #1#2#3
+ {
+ \@@_language_if_declared:nTF {#1}
+ {
+ g_@@_opt_language_
+ \tl_use:c { \@@_language_varname:n {#1} }
+ _ #2 _ #3
+ }
+ { g_@@_opt_lang_unknown_ \int_rand:n { 1000000 } _ #3 }
+ }
+\cs_generate_variant:Nn \@@_opt_varname_language:nnn { enn }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[EXP]{\@@_opt_varname_lang_default:nnn}
+% Defines, and leaves in the input stream, the csname of the variable used
+% to store the language-specific default reference format \meta{option} for
+% \meta{lang}.
+% \begin{syntax}
+% \cs{@@_opt_varname_lang_default:nnn} \Arg{lang} \Arg{option} \Arg{data type}
+% \end{syntax}
+% \begin{macrocode}
+\cs_new:Npn \@@_opt_varname_lang_default:nnn #1#2#3
+ {
+ \@@_language_if_declared:nTF {#1}
+ {
+ g_@@_opt_lang_
+ \tl_use:c { \@@_language_varname:n {#1} }
+ _default_ #2 _ #3
+ }
+ { g_@@_opt_lang_unknown_ \int_rand:n { 1000000 } _ #3 }
+ }
+\cs_generate_variant:Nn \@@_opt_varname_lang_default:nnn { enn }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[EXP]{\@@_opt_varname_lang_type:nnnn}
+% Defines, and leaves in the input stream, the csname of the variable used
+% to store the language- and type-specific reference format \meta{option}
+% for \meta{lang} and \meta{ref type}.
+% \begin{syntax}
+% \cs{@@_opt_varname_lang_type:nnnn} \Arg{lang} \Arg{ref type}
+% ~~\Arg{option} \Arg{data type}
+% \end{syntax}
+% \begin{macrocode}
+\cs_new:Npn \@@_opt_varname_lang_type:nnnn #1#2#3#4
+ {
+ \@@_language_if_declared:nTF {#1}
+ {
+ g_@@_opt_lang_
+ \tl_use:c { \@@_language_varname:n {#1} }
+ _type_ #2 _ #3 _ #4
+ }
+ { g_@@_opt_lang_unknown_ \int_rand:n { 1000000 } _ #4 }
+ }
+\cs_generate_variant:Nn
+ \@@_opt_varname_lang_type:nnnn { eenn , eeen }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[EXP]{\@@_opt_varname_fallback:nn}
+% Defines, and leaves in the input stream, the csname of the variable used
+% to store the fallback \meta{option}.
+% \begin{syntax}
+% \cs{@@_opt_varname_fallback:nn} \Arg{option} \Arg{data type}
+% \end{syntax}
+% \begin{macrocode}
+\cs_new:Npn \@@_opt_varname_fallback:nn #1#2
+ { c_@@_opt_fallback_ #1 _ #2 }
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}
+% {
+% \@@_opt_tl_unset:N ,
+% \@@_opt_tl_gunset:N ,
+% }
+% Unset \meta{option tl}. These functions \emph{define} what means to be
+% unset for an option token list, and it must match what the conditional
+% \cs{@@_opt_tl_if_set:N} tests for.
+% \begin{syntax}
+% \cs{@@_opt_tl_unset:N} \Arg{option tl}
+% \cs{@@_opt_tl_gunset:N} \Arg{option tl}
+% \end{syntax}
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_opt_tl_unset:N #1
+ { \tl_set_eq:NN #1 \c_novalue_tl }
+\cs_new_protected:Npn \@@_opt_tl_gunset:N #1
+ { \tl_gset_eq:NN #1 \c_novalue_tl }
+\cs_generate_variant:Nn \@@_opt_tl_unset:N { c }
+\cs_generate_variant:Nn \@@_opt_tl_gunset:N { c }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[EXP,TF]{\@@_opt_tl_if_set:N}
+% \begin{syntax}
+% \cs{@@_opt_tl_if_set:N(TF)} \Arg{option tl} \Arg{true} \Arg{false}
+% \end{syntax}
+% \begin{macrocode}
+\prg_new_conditional:Npnn \@@_opt_tl_if_set:N #1 { F , TF }
+ {
+ \bool_lazy_and:nnTF
+ { \tl_if_exist_p:N #1 }
+ { ! \tl_if_novalue_p:n {#1} }
+ { \prg_return_true: }
+ { \prg_return_false: }
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@@_opt_tl_gset_if_new:Nn}
+% \begin{syntax}
+% \cs{@@_opt_tl_gset_if_new:Nn} \Arg{option tl} \Arg{value}
+% \end{syntax}
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_opt_tl_gset_if_new:Nn #1#2
+ {
+ \@@_opt_tl_if_set:NF #1
+ { \tl_gset:Nn #1 {#2} }
+ }
+\cs_generate_variant:Nn \@@_opt_tl_gset_if_new:Nn { cn }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[TF]{\@@_opt_tl_get:NN}
+% \begin{syntax}
+% \cs{@@_opt_tl_get:NN(TF)} \Arg{option tl to get} \Arg{tl var to set}
+% ~~\Arg{true} \Arg{false}
+% \end{syntax}
+% \begin{macrocode}
+\prg_new_protected_conditional:Npnn \@@_opt_tl_get:NN #1#2 { F }
+ {
+ \@@_opt_tl_if_set:NTF #1
+ {
+ \tl_set_eq:NN #2 #1
+ \prg_return_true:
+ }
+ { \prg_return_false: }
+ }
+\prg_generate_conditional_variant:Nnn
+ \@@_opt_tl_get:NN { cN } { F }
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}
+% {
+% \@@_opt_seq_set_clist_split:Nn ,
+% \@@_opt_seq_gset_clist_split:Nn ,
+% }
+% \begin{syntax}
+% \cs{@@_opt_seq_set_clist_split:Nn} \Arg{option seq} \Arg{value}
+% \cs{@@_opt_seq_gset_clist_split:Nn} \Arg{option seq} \Arg{value}
+% \end{syntax}
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_opt_seq_set_clist_split:Nn #1#2
+ { \seq_set_split:Nnn #1 { , } {#2} }
+\cs_new_protected:Npn \@@_opt_seq_gset_clist_split:Nn #1#2
+ { \seq_gset_split:Nnn #1 { , } {#2} }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}
+% {
+% \@@_opt_seq_unset:N ,
+% \@@_opt_seq_gunset:N ,
+% }
+% Unset \meta{option seq}. These functions \emph{define} what means to be
+% unset for an option sequence, and it must match what the conditional
+% \cs{@@_opt_seq_if_set:N} tests for.
+% \begin{syntax}
+% \cs{@@_opt_seq_unset:N} \Arg{option seq}
+% \cs{@@_opt_seq_gunset:N} \Arg{option seq}
+% \end{syntax}
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_opt_seq_unset:N #1
+ { \cs_set_eq:NN #1 \scan_stop: }
+\cs_new_protected:Npn \@@_opt_seq_gunset:N #1
+ { \cs_gset_eq:NN #1 \scan_stop: }
+\cs_generate_variant:Nn \@@_opt_seq_unset:N { c }
+\cs_generate_variant:Nn \@@_opt_seq_gunset:N { c }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[EXP,TF]{\@@_opt_seq_if_set:N}
+% \begin{syntax}
+% \cs{@@_opt_seq_if_set:N(TF)} \Arg{option seq} \Arg{true} \Arg{false}
+% \end{syntax}
+% \begin{macrocode}
+\prg_new_conditional:Npnn \@@_opt_seq_if_set:N #1 { F , TF }
+ { \seq_if_exist:NTF #1 { \prg_return_true: } { \prg_return_false: } }
+\prg_generate_conditional_variant:Nnn
+ \@@_opt_seq_if_set:N { c } { F , TF }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[TF]{\@@_opt_seq_get:NN}
+% \begin{syntax}
+% \cs{@@_opt_seq_get:NN(TF)} \Arg{option seq to get} \Arg{seq var to set}
+% ~~\Arg{true} \Arg{false}
+% \end{syntax}
+% \begin{macrocode}
+\prg_new_protected_conditional:Npnn \@@_opt_seq_get:NN #1#2 { F }
+ {
+ \@@_opt_seq_if_set:NTF #1
+ {
+ \seq_set_eq:NN #2 #1
+ \prg_return_true:
+ }
+ { \prg_return_false: }
+ }
+\prg_generate_conditional_variant:Nnn
+ \@@_opt_seq_get:NN { cN } { F }
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}
+% {
+% \@@_opt_bool_unset:N ,
+% \@@_opt_bool_gunset:N ,
+% }
+% Unset \meta{option bool}. These functions \emph{define} what means to be
+% unset for an option boolean, and it must match what the conditional
+% \cs{@@_opt_bool_if_set:N} tests for. The particular definition we are
+% employing here has some relevant implications. Setting the boolean
+% variable to \cs{scan_stop:} (aka, \cs{relax}) means we can \emph{never}
+% test the variable without first testing if it is \emph{set}.
+% \cs{@@_opt_bool_if:N} does this conveniently.
+% \begin{syntax}
+% \cs{@@_opt_bool_unset:N} \Arg{option bool}
+% \cs{@@_opt_bool_gunset:N} \Arg{option bool}
+% \end{syntax}
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_opt_bool_unset:N #1
+ { \cs_set_eq:NN #1 \scan_stop: }
+\cs_new_protected:Npn \@@_opt_bool_gunset:N #1
+ { \cs_gset_eq:NN #1 \scan_stop: }
+\cs_generate_variant:Nn \@@_opt_bool_unset:N { c }
+\cs_generate_variant:Nn \@@_opt_bool_gunset:N { c }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[EXP,TF]{\@@_opt_bool_if_set:N}
+% \begin{syntax}
+% \cs{@@_opt_bool_if_set:N(TF)} \Arg{option bool} \Arg{true} \Arg{false}
+% \end{syntax}
+% \begin{macrocode}
+\prg_new_conditional:Npnn \@@_opt_bool_if_set:N #1 { F , TF }
+ { \bool_if_exist:NTF #1 { \prg_return_true: } { \prg_return_false: } }
+\prg_generate_conditional_variant:Nnn
+ \@@_opt_bool_if_set:N { c } { F , TF }
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}[TF]{\@@_opt_bool_get:NN}
+% \begin{syntax}
+% \cs{@@_opt_bool_get:NN(TF)} \Arg{option bool to get} \Arg{bool var to set}
+% ~~\Arg{true} \Arg{false}
+% \end{syntax}
+% \begin{macrocode}
+\prg_new_protected_conditional:Npnn \@@_opt_bool_get:NN #1#2 { F }
+ {
+ \@@_opt_bool_if_set:NTF #1
+ {
+ \bool_set_eq:NN #2 #1
+ \prg_return_true:
+ }
+ { \prg_return_false: }
+ }
+\prg_generate_conditional_variant:Nnn
+ \@@_opt_bool_get:NN { cN } { F }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[EXP,TF]{\@@_opt_bool_if:N}
+% \begin{syntax}
+% \cs{@@_opt_bool_if:N(TF)} \Arg{option bool} \Arg{true} \Arg{false}
+% \end{syntax}
+% \begin{macrocode}
+\prg_new_conditional:Npnn \@@_opt_bool_if:N #1 { T , F , TF }
+ {
+ \@@_opt_bool_if_set:NTF #1
+ { \bool_if:NTF #1 { \prg_return_true: } { \prg_return_false: } }
+ { \prg_return_false: }
+ }
+\prg_generate_conditional_variant:Nnn
+ \@@_opt_bool_if:N { c } { T , F , TF }
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
% \subsection{Reference format}
%
% For a general discussion on the precedence rules for reference format
% options, see Section ``Reference format'' in the User manual. Internally,
-% these precedence rules are handled / enforced in
-% \cs{@@_get_ref_opt_typeset:nN}, \cs{@@_get_ref_opt_font:nN}, and
+% these precedence rules are handled / enforced in \cs{@@_get_rf_opt_tl:nnnN},
+% \cs{@@_get_rf_opt_seq:nnnN}, \cs{@@_get_rf_opt_bool:nnnnN}, and
% \cs{@@_type_name_setup:} which are the basic functions to retrieve proper
-% values for reference format settings. The ``fallback'' settings are stored
-% in \cs{g_@@_fallback_unknown_lang_prop}.
+% values for reference format settings.
+%
+% The fact that we have multiple scopes to set reference format options has
+% some implications for how we handle these options, and for the resulting UI.
+% Since there is a clear precedence rule between the different levels, setting
+% an option at a high priority level shadows everything below it. Hence, it
+% may be relevant to be able to ``unset'' these options too, so as to be able
+% go back to the lower precedence level of the language-specific options at
+% any given point. However, since many of these options are token lists, or
+% clists, for which ``empty'' is a legitimate value, we cannot rely on
+% emptiness to distinguish that particular intention. How to deal with it,
+% depends on the kind of option (its data type, to be precise). For token
+% lists and clists/sequences, we leverage the distinction of an ``empty valued
+% key'' (\texttt{key=} or \texttt{key=\{\}}) from a ``key with no value''
+% (\texttt{key}). This distinction is captured internally by the lower-level
+% key parsing, but must be made explicit in \cs{keys_define:nn} by means of
+% the \texttt{.default:x} property of the key. For the technique, by
+% \contributor{Jonathan P.\ Spratte}, aka `Skillmon', and some discussion
+% about it, including further insights by \contributor{Phelype Oleinik}, see
+% \url{https://tex.stackexchange.com/q/614690} and
+% \url{https://github.com/latex3/latex3/pull/988}. For booleans, the
+% situation is different, since they cannot meaningfully receive an empty
+% value and the ``key with no value'' is a handy and expected shorthand for
+% \texttt{key=true}. Therefore, for reference format option booleans, we use
+% a third value ``\texttt{unset}'' for this purpose. In the language files
+% the ``unsetting'' behavior is less meaningful, since they only change any
+% variable if it is unset to start with, so that unsetting an unset variable
+% would be redundant. However, for UI symmetry also in the language files
+% keys with no value should not be considered ``empty'' and boolean
+% \texttt{unset} values should exist. They are just no-op.
%
%
% \begin{macro}
% {
% \l_@@_setup_type_tl ,
-% \l_@@_base_language_tl ,
+% \l_@@_setup_language_tl ,
% \l_@@_lang_decl_case_tl ,
% \l_@@_lang_declension_seq ,
% \l_@@_lang_gender_seq ,
@@ -746,11 +1126,10 @@
% Store ``current'' type, language, and declension cases in different places
% for type-specific and language-specific options handling, notably in
% \cs{@@_provide_langfile:n}, \cs{zcRefTypeSetup}, and
-% \cs{zcLanguageSetup}. But also for language options retrieval, in
-% \cs{@@_get_lang_opt_type:nnnN} and \cs{@@_get_lang_opt_default:nnN}.
+% \cs{zcLanguageSetup}, but also for language specific options retrieval.
% \begin{macrocode}
\tl_new:N \l_@@_setup_type_tl
-\tl_new:N \l_@@_base_language_tl
+\tl_new:N \l_@@_setup_language_tl
\tl_new:N \l_@@_lang_decl_case_tl
\seq_new:N \l_@@_lang_declension_seq
\seq_new:N \l_@@_lang_gender_seq
@@ -760,20 +1139,22 @@
%
% \begin{macro}
% {
-% \c_@@_ref_options_necessarily_not_type_specific_seq ,
-% \c_@@_ref_options_possibly_type_specific_seq ,
-% \c_@@_ref_options_type_names_seq ,
-% \c_@@_ref_options_font_seq ,
-% \c_@@_ref_options_typesetup_seq ,
-% \c_@@_ref_options_reference_seq ,
+% \c_@@_rf_opts_tl_not_type_specific_seq ,
+% \c_@@_rf_opts_tl_maybe_type_specific_seq ,
+% \c_@@_rf_opts_seq_refbounds_seq ,
+% \c_@@_rf_opts_bool_maybe_type_specific_seq ,
+% \c_@@_rf_opts_tl_type_names_seq ,
+% \c_@@_rf_opts_tl_font_seq ,
+% \c_@@_rf_opts_tl_typesetup_seq ,
+% \c_@@_rf_opts_tl_reference_seq ,
% }
-% Lists of reference format related options in ``categories''. Since
-% these options are set in different scopes, and at different places,
-% storing the actual lists in centralized variables makes the job not only
-% easier later on, but also keeps things consistent.
+% Lists of reference format options in ``categories''. Since these
+% options are set in different scopes, and at different places, storing
+% the actual lists in centralized variables makes the job not only easier
+% later on, but also keeps things consistent.
% \begin{macrocode}
\seq_const_from_clist:Nn
- \c_@@_ref_options_necessarily_not_type_specific_seq
+ \c_@@_rf_opts_tl_not_type_specific_seq
{
tpairsep ,
tlistsep ,
@@ -781,24 +1162,44 @@
notesep ,
}
\seq_const_from_clist:Nn
- \c_@@_ref_options_possibly_type_specific_seq
+ \c_@@_rf_opts_tl_maybe_type_specific_seq
{
namesep ,
pairsep ,
listsep ,
lastsep ,
rangesep ,
- preref ,
- postref ,
+ namefont ,
+ reffont ,
+ }
+\seq_const_from_clist:Nn
+ \c_@@_rf_opts_seq_refbounds_seq
+ {
+ refbounds-first ,
+ refbounds-first-sg ,
+ refbounds-first-pb ,
+ refbounds-first-rb ,
+ refbounds-mid ,
+ refbounds-mid-rb ,
+ refbounds-mid-re ,
+ refbounds-last ,
+ refbounds-last-pe ,
+ refbounds-last-re ,
+ }
+\seq_const_from_clist:Nn
+ \c_@@_rf_opts_bool_maybe_type_specific_seq
+ {
+ cap ,
+ abbrev ,
}
% \end{macrocode}
% Only ``type names'' are ``necessarily type-specific'', which makes them
% somewhat special on the retrieval side of things. In short, they don't have
-% their values queried by \cs{@@_get_ref_opt_typeset:nN}, but by
+% their values queried by \cs{@@_get_rf_opt_tl:nnnN}, but by
% \cs{@@_type_name_setup:}.
% \begin{macrocode}
\seq_const_from_clist:Nn
- \c_@@_ref_options_type_names_seq
+ \c_@@_rf_opts_tl_type_names_seq
{
Name-sg ,
name-sg ,
@@ -810,71 +1211,156 @@
name-pl-ab ,
}
% \end{macrocode}
-% \cs{c_@@_ref_options_font_seq} are technically ``possibly type-specific'',
-% but are not ``language-specific'', so we separate them.
+% And, finally, some combined groups of the above variables, for convenience.
% \begin{macrocode}
-\seq_const_from_clist:Nn
- \c_@@_ref_options_font_seq
+\seq_new:N \c_@@_rf_opts_tl_typesetup_seq
+\seq_gconcat:NNN \c_@@_rf_opts_tl_typesetup_seq
+ \c_@@_rf_opts_tl_maybe_type_specific_seq
+ \c_@@_rf_opts_tl_type_names_seq
+\seq_new:N \c_@@_rf_opts_tl_reference_seq
+\seq_gconcat:NNN \c_@@_rf_opts_tl_reference_seq
+ \c_@@_rf_opts_tl_not_type_specific_seq
+ \c_@@_rf_opts_tl_maybe_type_specific_seq
+% \end{macrocode}
+% \end{macro}
+%
+%
+% We set here also the ``derived'' \texttt{refbounds} options, which are the
+% same for every option scope.
+%
+% \begin{macrocode}
+\clist_map_inline:nn
{
- namefont ,
- reffont ,
+ reference ,
+ typesetup ,
+ langsetup ,
+ langfile ,
+ }
+ {
+ \keys_define:nn { zref-clever/ #1 }
+ {
+ +refbounds-first .meta:n =
+ {
+ refbounds-first = {##1} ,
+ refbounds-first-sg = {##1} ,
+ refbounds-first-pb = {##1} ,
+ refbounds-first-rb = {##1} ,
+ } ,
+ +refbounds-first .default:x = \c_novalue_tl ,
+ +refbounds-mid .meta:n =
+ {
+ refbounds-mid = {##1} ,
+ refbounds-mid-rb = {##1} ,
+ refbounds-mid-re = {##1} ,
+ } ,
+ +refbounds-mid .default:x = \c_novalue_tl ,
+ +refbounds-last .meta:n =
+ {
+ refbounds-last = {##1} ,
+ refbounds-last-pe = {##1} ,
+ refbounds-last-re = {##1} ,
+ } ,
+ +refbounds-last .default:x = \c_novalue_tl ,
+ +refbounds-rb .meta:n =
+ {
+ refbounds-first-rb = {##1} ,
+ refbounds-mid-rb = {##1} ,
+ } ,
+ +refbounds-rb .default:x = \c_novalue_tl ,
+ +refbounds-re .meta:n =
+ {
+ refbounds-mid-re = {##1} ,
+ refbounds-last-re = {##1} ,
+ } ,
+ +refbounds-re .default:x = \c_novalue_tl ,
+ +refbounds .meta:n =
+ {
+ +refbounds-first = {##1} ,
+ +refbounds-mid = {##1} ,
+ +refbounds-last = {##1} ,
+ } ,
+ +refbounds .default:x = \c_novalue_tl ,
+ refbounds .meta:n = { +refbounds = {##1} } ,
+ refbounds .default:x = \c_novalue_tl ,
+ }
}
% \end{macrocode}
-% And, finally, some combined groups of the above variables, for convenience.
+%
+%
+% \subsection{Languages}
+%
+%
+% \begin{macro}[EXP]{\@@_language_varname:n}
+% Defines, and leaves in the input stream, the csname of the variable used
+% to store the \meta{base language} (as the value of this variable) for
+% a \meta{language} declared for \pkg{zref-clever}.
+% \begin{syntax}
+% \cs{@@_language_varname:n} \Arg{language}
+% \end{syntax}
% \begin{macrocode}
-\seq_new:N \c_@@_ref_options_typesetup_seq
-\seq_gconcat:NNN \c_@@_ref_options_typesetup_seq
- \c_@@_ref_options_possibly_type_specific_seq
- \c_@@_ref_options_type_names_seq
-\seq_gconcat:NNN \c_@@_ref_options_typesetup_seq
- \c_@@_ref_options_typesetup_seq
- \c_@@_ref_options_font_seq
-\seq_new:N \c_@@_ref_options_reference_seq
-\seq_gconcat:NNN \c_@@_ref_options_reference_seq
- \c_@@_ref_options_necessarily_not_type_specific_seq
- \c_@@_ref_options_possibly_type_specific_seq
-\seq_gconcat:NNN \c_@@_ref_options_reference_seq
- \c_@@_ref_options_reference_seq
- \c_@@_ref_options_font_seq
+\cs_new:Npn \@@_language_varname:n #1
+ { g_@@_declared_language_ #1 _tl }
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}[EXP]{\zrefclever_language_varname:n}
+% A public version of \cs{@@_language_varname:n} for use in
+% \pkg{zref-vario}.
+% \begin{macrocode}
+\cs_set_eq:NN \zrefclever_language_varname:n
+ \@@_language_varname:n
+% \end{macrocode}
+% \end{macro}
%
+% \begin{macro}[EXP,TF]{\@@_language_if_declared:n}
+% A language is considered to be declared for \pkg{zref-clever} if it passes
+% this conditional, which requires that a variable with
+% \cs{@@_language_varname:n}\texttt{\{\meta{language}\}} exists.
+% \begin{syntax}
+% \cs{@@_language_if_declared:n(TF)} \Arg{language}
+% \end{syntax}
+% \begin{macrocode}
+\prg_new_conditional:Npnn \@@_language_if_declared:n #1 { T , F , TF }
+ {
+ \tl_if_exist:cTF { \@@_language_varname:n {#1} }
+ { \prg_return_true: }
+ { \prg_return_false: }
+ }
+\prg_generate_conditional_variant:Nnn
+ \@@_language_if_declared:n { x } { T , F , TF }
+% \end{macrocode}
+% \end{macro}
%
-% \subsection{Languages}
-%
-% \begin{macro}{\g_@@_languages_prop}
-% Stores the names of known languages and the mapping from ``language name''
-% to ``base language name''. Whether or not a language or alias is known to
-% \pkg{zref-clever} is decided by its presence in this property list. A
-% ``base language'' (loose concept here, meaning just ``the name we gave for
-% the language file in that particular language'') is just like any other
-% one, the only difference is that the ``language name'' happens to be the
-% same as the ``base language name'', in other words, it is an ``alias to
-% itself''.
+% \begin{macro}[EXP,TF]{\zrefclever_language_if_declared:n}
+% A public version of \cs{@@_language_if_declared:n} for use in
+% \pkg{zref-vario}.
% \begin{macrocode}
-\prop_new:N \g_@@_languages_prop
+\prg_set_eq_conditional:NNn \zrefclever_language_if_declared:n
+ \@@_language_if_declared:n { TF }
% \end{macrocode}
% \end{macro}
%
%
% \begin{macro}[int]{\zcDeclareLanguage}
-% Declare a new language for use with \pkg{zref-clever}. \meta{language} is
-% taken to be both the ``language name'' and the ``base language name''.
-% \oarg{options} receive a \texttt{k=v} set of options, with three valid
-% options. The first, \opt{declension}, takes the noun declension cases
-% prefixes for \meta{language} as a comma separated list, whose first
-% element is taken to be the default case. The second, \opt{gender},
-% receives the genders for \meta{language} as comma separated list. The
-% third, \opt{allcaps}, receives no value, and indicates that for
-% \meta{language} all nouns must be capitalized for grammatical reasons, in
-% which case, the \opt{cap} option is disregarded for \meta{language}. If
-% \meta{language} is already known, just warn. This implies a particular
-% restriction regarding \oarg{options}, namely that these options, when
-% defined by the package, cannot be redefined by the user. This is
-% deliberate, otherwise the built-in language files would become much too
-% sensitive to this particular user input, and unnecessarily so.
-% \cs{zcDeclareLanguage} is preamble only.
+% Declare a new language for use with \pkg{zref-clever}. \meta{language} is
+% taken to be both the ``language name'' and the ``base language name''. A
+% ``base language'' (loose concept here, meaning just ``the name we gave for
+% the language file in that particular language'') is just like any other one,
+% the only difference is that the ``language name'' happens to be the same as
+% the ``base language name'', in other words, it is an ``alias to itself''.
+% \oarg{options} receive a \texttt{k=v} set of options, with three valid
+% options. The first, \opt{declension}, takes the noun declension cases
+% prefixes for \meta{language} as a comma separated list, whose first element
+% is taken to be the default case. The second, \opt{gender}, receives the
+% genders for \meta{language} as comma separated list. The third,
+% \opt{allcaps}, is a boolean, and indicates that for \meta{language} all
+% nouns must be capitalized for grammatical reasons, in which case, the
+% \opt{cap} option is disregarded for \meta{language}. If \meta{language} is
+% already known, just warn. This implies a particular restriction regarding
+% \oarg{options}, namely that these options, when defined by the package,
+% cannot be redefined by the user. This is deliberate, otherwise the built-in
+% language files would become much too sensitive to this particular user
+% input, and unnecessarily so. \cs{zcDeclareLanguage} is preamble only.
% \begin{syntax}
% \cs{zcDeclareLanguage} \oarg{options} \marg{language}
% \end{syntax}
@@ -884,13 +1370,13 @@
\group_begin:
\tl_if_empty:nF {#2}
{
- \prop_if_in:NnTF \g_@@_languages_prop {#2}
+ \@@_language_if_declared:nTF {#2}
{ \msg_warning:nnn { zref-clever } { language-declared } {#2} }
{
- \prop_gput:Nnn \g_@@_languages_prop {#2} {#2}
- \prop_new:c { g_@@_lang_ #2 _prop }
- \tl_set:Nn \l_@@_base_language_tl {#2}
- \keys_set:nn { zref-clever / declarelang } {#1}
+ \tl_new:c { \@@_language_varname:n {#2} }
+ \tl_gset:cn { \@@_language_varname:n {#2} } {#2}
+ \tl_set:Nn \l_@@_setup_language_tl {#2}
+ \keys_set:nn { zref-clever/declarelang } {#1}
}
}
\group_end:
@@ -903,7 +1389,7 @@
% \begin{macro}[int]{\zcDeclareLanguageAlias}
% Declare \meta{language alias} to be an alias of \meta{aliased language}
% (or ``base language''). \meta{aliased language} must be already known to
-% \pkg{zref-clever}, as stored in \cs{g_@@_languages_prop}.
+% \pkg{zref-clever}.
% \cs{zcDeclareLanguageAlias} is preamble only.
% \begin{syntax}
% \cs{zcDeclareLanguageAlias} \marg{language alias} \marg{aliased language}
@@ -913,11 +1399,10 @@
{
\tl_if_empty:nF {#1}
{
- \prop_if_in:NnTF \g_@@_languages_prop {#2}
+ \@@_language_if_declared:nTF {#2}
{
- \exp_args:NNnx
- \prop_gput:Nnn \g_@@_languages_prop {#1}
- { \prop_item:Nn \g_@@_languages_prop {#2} }
+ \tl_gset:cx { \@@_language_varname:n {#1} }
+ { \tl_use:c { \@@_language_varname:n {#2} } }
}
{ \msg_warning:nnn { zref-clever } { unknown-language-alias } {#2} }
}
@@ -929,50 +1414,60 @@
%
%
% \begin{macrocode}
-\keys_define:nn { zref-clever / declarelang }
+\keys_define:nn { zref-clever/declarelang }
{
declension .code:n =
{
- \prop_gput:cnn
- { g_@@_lang_ \l_@@_base_language_tl _prop }
- { declension } {#1}
+ \seq_gset_from_clist:cn
+ {
+ \@@_opt_varname_language:enn
+ { \l_@@_setup_language_tl } { declension } { seq }
+ }
+ {#1}
} ,
declension .value_required:n = true ,
gender .code:n =
{
- \prop_gput:cnn
- { g_@@_lang_ \l_@@_base_language_tl _prop }
- { gender } {#1}
+ \seq_gset_from_clist:cn
+ {
+ \@@_opt_varname_language:enn
+ { \l_@@_setup_language_tl } { gender } { seq }
+ }
+ {#1}
} ,
gender .value_required:n = true ,
- allcaps .code:n =
+ allcaps .choices:nn =
+ { true , false }
{
- \prop_gput:cnn
- { g_@@_lang_ \l_@@_base_language_tl _prop }
- { allcaps } { true }
+ \use:c { bool_gset_ \l_keys_choice_tl :c }
+ {
+ \@@_opt_varname_language:enn
+ { \l_@@_setup_language_tl } { allcaps } { bool }
+ }
} ,
- allcaps .value_forbidden:n = true ,
+ allcaps .default:n = true ,
}
% \end{macrocode}
%
%
%
-% \begin{macro}{\@@_process_language_options:}
+% \begin{macro}{\@@_process_language_settings:}
% Auxiliary function for \cs{@@_zcref:nnn}, responsible for processing
-% options from \cs{zcDeclareLanguage}. It is necessary to separate them
-% from the reference options machinery because their behavior is language
-% dependent, but the language itself can also be set as an option
-% (\opt{lang}, value stored in \cs{l_@@_ref_language_tl}). Hence, we must
-% validate these options after the reference options have been set. It is
-% expected to be called right (or soon) after \cs{keys_set:nn} in
-% \cs{@@_zcref:nnn}, where current values for \cs{l_@@_ref_language_tl} and
-% \cs{l_@@_ref_decl_case_tl} are in place.
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_process_language_options:
- {
- \exp_args:NNx \prop_get:NnNTF \g_@@_languages_prop
+% language related settings. It is necessary to separate them from the
+% reference options machinery for two reasons. First, because their
+% behavior is language dependent, but the language itself can also be set as
+% an option (\opt{lang}, value stored in \cs{l_@@_ref_language_tl}).
+% Second, some of its tasks must be done regardless of any option being
+% given (e.g. the default declension case, the \opt{allcaps} option).
+% Hence, we must validate the language settings after the reference options
+% have been set. It is expected to be called right (or soon) after
+% \cs{keys_set:nn} in \cs{@@_zcref:nnn}, where current values for
+% \cs{l_@@_ref_language_tl} and \cs{l_@@_ref_decl_case_tl} are in place.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_process_language_settings:
+ {
+ \@@_language_if_declared:xTF
{ \l_@@_ref_language_tl }
- \l_@@_base_language_tl
{
% \end{macrocode}
% Validate the declension case (\opt{d}) option against the declared cases for
@@ -982,16 +1477,13 @@
% clearing the variable, depending on the language setup. And also issues a
% warning about it.
% \begin{macrocode}
- \exp_args:NNx \seq_set_from_clist:Nn
- \l_@@_lang_declension_seq
+ \@@_opt_seq_get:cNF
{
- \prop_item:cn
- {
- g_@@_lang_
- \l_@@_base_language_tl _prop
- }
- { declension }
+ \@@_opt_varname_language:enn
+ { \l_@@_ref_language_tl } { declension } { seq }
}
+ \l_@@_lang_declension_seq
+ { \seq_clear:N \l_@@_lang_declension_seq }
\seq_if_empty:NTF \l_@@_lang_declension_seq
{
\tl_if_empty:NF \l_@@_ref_decl_case_tl
@@ -1027,16 +1519,13 @@
% reference language. If the user value for the latter does not match the
% genders declared for the former, clear \cs{l_@@_ref_gender_tl} and warn.
% \begin{macrocode}
- \exp_args:NNx \seq_set_from_clist:Nn
- \l_@@_lang_gender_seq
+ \@@_opt_seq_get:cNF
{
- \prop_item:cn
- {
- g_@@_lang_
- \l_@@_base_language_tl _prop
- }
- { gender }
+ \@@_opt_varname_language:enn
+ { \l_@@_ref_language_tl } { gender } { seq }
}
+ \l_@@_lang_gender_seq
+ { \seq_clear:N \l_@@_lang_gender_seq }
\seq_if_empty:NTF \l_@@_lang_gender_seq
{
\tl_if_empty:NF \l_@@_ref_gender_tl
@@ -1064,20 +1553,15 @@
}
}
% \end{macrocode}
-% Ensure the \opt{cap} in \cs{l_@@_ref_options_prop} is set to \texttt{true}
-% when the language was declared with \opt{allcaps} option.
+% Ensure the general \opt{cap} is set to \texttt{true} when the language was
+% declared with \opt{allcaps} option.
% \begin{macrocode}
- \str_if_eq:eeT
+ \@@_opt_bool_if:cT
{
- \prop_item:cn
- {
- g_@@_lang_
- \l_@@_base_language_tl _prop
- }
- { allcaps }
+ \@@_opt_varname_language:enn
+ { \l_@@_ref_language_tl } { allcaps } { bool }
}
- { true }
- { \prop_put:Nnn \l_@@_ref_options_prop { cap } { true } }
+ { \keys_set:nn { zref-clever/reference } { cap = true } }
}
{
% \end{macrocode}
@@ -1154,13 +1638,11 @@
% \cs{@@_provide_langfile:n} is only meant to load the built-in language
% files. For languages declared by the user, or for any settings to a known
% language made with \cs{zcLanguageSetup}, values are populated directly to a
-% variable \cs{g_@@_lang_\meta{language}_prop}. Hence, there is no need to
-% ``load'' anything in this case: definitions and assignments made by the user
-% are performed immediately.
+% corresponding variables. Hence, there is no need to ``load'' anything in
+% this case: definitions and assignments made by the user are performed
+% immediately.
%
%
-% \subsubsection*{Provide}
-%
% \begin{macro}{\g_@@_loaded_langfiles_seq}
% Used to keep track of whether a language file has already been loaded or
% not.
@@ -1169,14 +1651,6 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\l_@@_load_langfile_verbose_bool}
-% Controls whether \cs{@@_provide_langfile:n} fails silently or verbosely
-% in case of unknown languages or not found language files.
-% \begin{macrocode}
-\bool_new:N \l_@@_load_langfile_verbose_bool
-% \end{macrocode}
-% \end{macro}
-%
%
% \begin{macro}{\@@_provide_langfile:n}
% Load language file for known \meta{language} if it is available and if it
@@ -1189,77 +1663,61 @@
{
\group_begin:
\@bsphack
- \prop_get:NnNTF \g_@@_languages_prop {#1}
- \l_@@_base_language_tl
+ \@@_language_if_declared:nT {#1}
{
- \seq_if_in:NVF
+ \seq_if_in:NxF
\g_@@_loaded_langfiles_seq
- \l_@@_base_language_tl
+ { \tl_use:c { \@@_language_varname:n {#1} } }
{
\exp_args:Nx \file_get:nnNTF
- { zref-clever- \l_@@_base_language_tl .lang }
+ {
+ zref-clever-
+ \tl_use:c { \@@_language_varname:n {#1} }
+ .lang
+ }
{ \ExplSyntaxOn }
\l_tmpa_tl
{
+ \tl_set:Nn \l_@@_setup_language_tl {#1}
\tl_clear:N \l_@@_setup_type_tl
- \exp_args:NNx \seq_set_from_clist:Nn
- \l_@@_lang_declension_seq
+ \@@_opt_seq_get:cNF
{
- \prop_item:cn
- {
- g_@@_lang_
- \l_@@_base_language_tl _prop
- }
- { declension }
+ \@@_opt_varname_language:nnn
+ {#1} { declension } { seq }
}
+ \l_@@_lang_declension_seq
+ { \seq_clear:N \l_@@_lang_declension_seq }
\seq_if_empty:NTF \l_@@_lang_declension_seq
{ \tl_clear:N \l_@@_lang_decl_case_tl }
{
\seq_get_left:NN \l_@@_lang_declension_seq
\l_@@_lang_decl_case_tl
}
- \exp_args:NNx \seq_set_from_clist:Nn
- \l_@@_lang_gender_seq
+ \@@_opt_seq_get:cNF
{
- \prop_item:cn
- {
- g_@@_lang_
- \l_@@_base_language_tl _prop
- }
- { gender }
+ \@@_opt_varname_language:nnn
+ {#1} { gender } { seq }
}
- \keys_set:nV { zref-clever / langfile } \l_tmpa_tl
- \seq_gput_right:NV \g_@@_loaded_langfiles_seq
- \l_@@_base_language_tl
- \msg_note:nnx { zref-clever } { langfile-loaded }
- { \l_@@_base_language_tl }
+ \l_@@_lang_gender_seq
+ { \seq_clear:N \l_@@_lang_gender_seq }
+ \keys_set:nV { zref-clever/langfile } \l_tmpa_tl
+ \seq_gput_right:Nx \g_@@_loaded_langfiles_seq
+ { \tl_use:c { \@@_language_varname:n {#1} } }
+ \msg_info:nnx { zref-clever } { langfile-loaded }
+ { \tl_use:c { \@@_language_varname:n {#1} } }
}
{
- \bool_if:NT \l_@@_load_langfile_verbose_bool
- {
- \msg_warning:nnx { zref-clever } { langfile-not-available }
- { \l_@@_base_language_tl }
- }
% \end{macrocode}
% Even if we don't have the actual language file, we register it as
% ``loaded''. At this point, it is a known language, properly declared.
-% There is no point in trying to load it multiple times, because users cannot
-% really provide the language files (well, technically they could, but we are
-% working so they don't need to, and have better ways to do what they want).
-% And if the users had provided some language-specific options themselves, by
-% means of \cs{zcLanguageSetup}, everything would be in place, and they could
-% use the \opt{lang} option multiple times, and the
-% \texttt{langfile-not-available} warning would never go away.
-% \begin{macrocode}
- \seq_gput_right:NV \g_@@_loaded_langfiles_seq
- \l_@@_base_language_tl
+% There is no point in trying to load it multiple times, if it was not found
+% the first time, it won't be the next.
+% \begin{macrocode}
+ \seq_gput_right:Nx \g_@@_loaded_langfiles_seq
+ { \tl_use:c { \@@_language_varname:n {#1} } }
}
}
}
- {
- \bool_if:NT \l_@@_load_langfile_verbose_bool
- { \msg_warning:nnn { zref-clever } { unknown-language-load } {#1} }
- }
\@esphack
\group_end:
}
@@ -1268,60 +1726,6 @@
% \end{macro}
%
%
-% \begin{macro}{\@@_provide_langfile_verbose:n}
-% Does the same as \cs{@@_provide_langfile:n}, but warns if the loading of
-% the language file has failed.
-% \begin{syntax}
-% \cs{@@_provide_langfile_verbose:n} \Arg{language}
-% \end{syntax}
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_provide_langfile_verbose:n #1
- {
- \group_begin:
- \bool_set_true:N \l_@@_load_langfile_verbose_bool
- \@@_provide_langfile:n {#1}
- \group_end:
- }
-\cs_generate_variant:Nn \@@_provide_langfile_verbose:n { x }
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}
-% {
-% \@@_provide_lang_opt_type:nn ,
-% \@@_provide_lang_opt_default:nn ,
-% }
-% A couple of auxiliary functions for the of
-% \texttt{{zref-clever/langfile}} keys set in
-% \cs{@@_provide_langfile:n}. They respectively ``provide'' (i.e. set if
-% it value does not exist, do nothing if it already does) ``type-specific''
-% and ``default'' language options. Both receive \meta{key} and
-% \meta{value} as arguments, but \cs{@@_provide_lang_opt_type:nn}
-% relies on the current value of \cs{l_@@_setup_type_tl}, as set by the
-% \texttt{type} key.
-% \begin{syntax}
-% \cs{@@_provide_lang_opt_type:nn} \Arg{key} \Arg{value}
-% \cs{@@_provide_lang_opt_default:nn} \Arg{key} \Arg{value}
-% \end{syntax}
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_provide_lang_opt_type:nn #1#2
- {
- \exp_args:Nnx \prop_gput_if_new:cnn
- { g_@@_lang_ \l_@@_base_language_tl _prop }
- { type- \l_@@_setup_type_tl - #1 } {#2}
- }
-\cs_generate_variant:Nn \@@_provide_lang_opt_type:nn { nV }
-\cs_new_protected:Npn \@@_provide_lang_opt_default:nn #1#2
- {
- \prop_gput_if_new:cnn
- { g_@@_lang_ \l_@@_base_language_tl _prop }
- { default- #1 } {#2}
- }
-\cs_generate_variant:Nn \@@_provide_lang_opt_default:nn { nV }
-% \end{macrocode}
-% \end{macro}
-%
%
% The set of keys for \texttt{{zref-clever/langfile}}, which is used to
% process the language files in \cs{@@_provide_langfile:n}. The no-op cases
@@ -1330,7 +1734,7 @@
% placed there nevertheless, and can be leveraged in regression tests.
%
% \begin{macrocode}
-\keys_define:nn { zref-clever / langfile }
+\keys_define:nn { zref-clever/langfile }
{
type .code:n =
{
@@ -1344,14 +1748,14 @@
\seq_if_empty:NTF \l_@@_lang_declension_seq
{
\msg_info:nnxx { zref-clever } { language-no-decl-setup }
- { \l_@@_base_language_tl } {#1}
+ { \l_@@_setup_language_tl } {#1}
}
{
\seq_if_in:NnTF \l_@@_lang_declension_seq {#1}
{ \tl_set:Nn \l_@@_lang_decl_case_tl {#1} }
{
\msg_info:nnxx { zref-clever } { unknown-decl-case }
- {#1} { \l_@@_base_language_tl }
+ {#1} { \l_@@_setup_language_tl }
\seq_get_left:NN \l_@@_lang_declension_seq
\l_@@_lang_decl_case_tl
}
@@ -1359,12 +1763,13 @@
} ,
case .value_required:n = true ,
+ gender .default:x = \c_novalue_tl ,
gender .code:n =
{
\seq_if_empty:NTF \l_@@_lang_gender_seq
{
\msg_info:nnxxx { zref-clever } { language-no-gender }
- { \l_@@_base_language_tl } { gender } {#1}
+ { \l_@@_setup_language_tl } { gender } {#1}
}
{
\tl_if_empty:NTF \l_@@_setup_type_tl
@@ -1373,71 +1778,64 @@
{ option-only-type-specific } { gender }
}
{
- \clist_clear:N \l_tmpa_clist
- \clist_map_inline:nn {#1}
+ \tl_if_novalue:nF {#1}
{
- \seq_if_in:NnTF \l_@@_lang_gender_seq {##1}
- { \clist_put_right:Nn \l_tmpa_clist {##1} }
+ \seq_clear:N \l_tmpa_seq
+ \clist_map_inline:nn {#1}
{
- \msg_info:nnxx { zref-clever }
- { gender-not-declared }
- { \l_@@_base_language_tl } {##1}
+ \seq_if_in:NnTF \l_@@_lang_gender_seq {##1}
+ { \seq_put_right:Nn \l_tmpa_seq {##1} }
+ {
+ \msg_info:nnxx { zref-clever }
+ { gender-not-declared }
+ { \l_@@_setup_language_tl } {##1}
+ }
+ }
+ \@@_opt_seq_if_set:cF
+ {
+ \@@_opt_varname_lang_type:eenn
+ { \l_@@_setup_language_tl }
+ { \l_@@_setup_type_tl }
+ { gender }
+ { seq }
+ }
+ {
+ \seq_gset_eq:cN
+ {
+ \@@_opt_varname_lang_type:eenn
+ { \l_@@_setup_language_tl }
+ { \l_@@_setup_type_tl }
+ { gender }
+ { seq }
+ }
+ \l_tmpa_seq
}
- }
- \clist_if_empty:NF \l_tmpa_clist
- {
- \exp_args:Nnx \@@_provide_lang_opt_type:nn
- { gender } { \clist_use:Nn \l_tmpa_clist { , } }
}
}
}
} ,
- gender .value_required:n = true ,
-
- cap .choices:nn =
- { true , false }
- {
- \tl_if_empty:NTF \l_@@_setup_type_tl
- {
- \@@_provide_lang_opt_default:nV
- { cap } \l_keys_choice_tl
- }
- {
- \@@_provide_lang_opt_type:nV
- { cap } \l_keys_choice_tl
- }
- } ,
- cap .default:n = true ,
- nocap .meta:n = { cap = false } ,
- nocap .value_forbidden:n = true ,
-
- abbrev .choices:nn =
- { true , false }
- {
- \tl_if_empty:NTF \l_@@_setup_type_tl
- {
- \@@_provide_lang_opt_default:nV
- { abbrev } \l_keys_choice_tl
- }
- {
- \@@_provide_lang_opt_type:nV
- { abbrev } \l_keys_choice_tl
- }
- } ,
- abbrev .default:n = true ,
- noabbrev .meta:n = { abbrev = false },
- noabbrev .value_forbidden:n = true ,
}
\seq_map_inline:Nn
- \c_@@_ref_options_necessarily_not_type_specific_seq
+ \c_@@_rf_opts_tl_not_type_specific_seq
{
- \keys_define:nn { zref-clever / langfile }
+ \keys_define:nn { zref-clever/langfile }
{
- #1 .value_required:n = true ,
+ #1 .default:x = \c_novalue_tl ,
#1 .code:n =
{
\tl_if_empty:NTF \l_@@_setup_type_tl
- { \@@_provide_lang_opt_default:nn {#1} {##1} }
+ {
+ \tl_if_novalue:nF {##1}
+ {
+ \@@_opt_tl_gset_if_new:cn
+ {
+ \@@_opt_varname_lang_default:enn
+ { \l_@@_setup_language_tl }
+ {#1} { tl }
+ }
+ {##1}
+ }
+ }
{
\msg_info:nnn { zref-clever }
{ option-not-type-specific } {#1}
@@ -1446,25 +1844,48 @@
}
}
\seq_map_inline:Nn
- \c_@@_ref_options_possibly_type_specific_seq
+ \c_@@_rf_opts_tl_maybe_type_specific_seq
{
- \keys_define:nn { zref-clever / langfile }
+ \keys_define:nn { zref-clever/langfile }
{
- #1 .value_required:n = true ,
+ #1 .default:x = \c_novalue_tl ,
#1 .code:n =
{
\tl_if_empty:NTF \l_@@_setup_type_tl
- { \@@_provide_lang_opt_default:nn {#1} {##1} }
- { \@@_provide_lang_opt_type:nn {#1} {##1} }
+ {
+ \tl_if_novalue:nF {##1}
+ {
+ \@@_opt_tl_gset_if_new:cn
+ {
+ \@@_opt_varname_lang_default:enn
+ { \l_@@_setup_language_tl }
+ {#1} { tl }
+ }
+ {##1}
+ }
+ }
+ {
+ \tl_if_novalue:nF {##1}
+ {
+ \@@_opt_tl_gset_if_new:cn
+ {
+ \@@_opt_varname_lang_type:eenn
+ { \l_@@_setup_language_tl }
+ { \l_@@_setup_type_tl }
+ {#1} { tl }
+ }
+ {##1}
+ }
+ }
} ,
}
}
\seq_map_inline:Nn
- \c_@@_ref_options_type_names_seq
+ \c_@@_rf_opts_tl_type_names_seq
{
- \keys_define:nn { zref-clever / langfile }
+ \keys_define:nn { zref-clever/langfile }
{
- #1 .value_required:n = true ,
+ #1 .default:x = \c_novalue_tl ,
#1 .code:n =
{
\tl_if_empty:NTF \l_@@_setup_type_tl
@@ -1474,37 +1895,230 @@
}
{
\tl_if_empty:NTF \l_@@_lang_decl_case_tl
- { \@@_provide_lang_opt_type:nn {#1} {##1} }
{
- \@@_provide_lang_opt_type:nn
- { \l_@@_lang_decl_case_tl - #1 } {##1}
+ \tl_if_novalue:nF {##1}
+ {
+ \@@_opt_tl_gset_if_new:cn
+ {
+ \@@_opt_varname_lang_type:eenn
+ { \l_@@_setup_language_tl }
+ { \l_@@_setup_type_tl }
+ {#1} { tl }
+ }
+ {##1}
+ }
+ }
+ {
+ \tl_if_novalue:nF {##1}
+ {
+ \@@_opt_tl_gset_if_new:cn
+ {
+ \@@_opt_varname_lang_type:eeen
+ { \l_@@_setup_language_tl }
+ { \l_@@_setup_type_tl }
+ { \l_@@_lang_decl_case_tl - #1 } { tl }
+ }
+ {##1}
+ }
+ }
+ }
+ } ,
+ }
+ }
+\seq_map_inline:Nn
+ \c_@@_rf_opts_seq_refbounds_seq
+ {
+ \keys_define:nn { zref-clever/langfile }
+ {
+ #1 .default:x = \c_novalue_tl ,
+ #1 .code:n =
+ {
+ \tl_if_empty:NTF \l_@@_setup_type_tl
+ {
+ \tl_if_novalue:nF {##1}
+ {
+ \@@_opt_seq_if_set:cF
+ {
+ \@@_opt_varname_lang_default:enn
+ { \l_@@_setup_language_tl } {#1} { seq }
+ }
+ {
+ \seq_gclear:N \g_tmpa_seq
+ \@@_opt_seq_gset_clist_split:Nn
+ \g_tmpa_seq {##1}
+ \bool_lazy_or:nnTF
+ { \tl_if_empty_p:n {##1} }
+ {
+ \int_compare_p:nNn
+ { \seq_count:N \g_tmpa_seq } = { 4 }
+ }
+ {
+ \seq_gset_eq:cN
+ {
+ \@@_opt_varname_lang_default:enn
+ { \l_@@_setup_language_tl }
+ {#1} { seq }
+ }
+ \g_tmpa_seq
+ }
+ {
+ \msg_info:nnxx { zref-clever }
+ { refbounds-must-be-four }
+ {#1} { \seq_count:N \g_tmpa_seq }
+ }
+ }
+ }
+ }
+ {
+ \tl_if_novalue:nF {##1}
+ {
+ \@@_opt_seq_if_set:cF
+ {
+ \@@_opt_varname_lang_type:eenn
+ { \l_@@_setup_language_tl }
+ { \l_@@_setup_type_tl } {#1} { seq }
+ }
+ {
+ \seq_gclear:N \g_tmpa_seq
+ \@@_opt_seq_gset_clist_split:Nn
+ \g_tmpa_seq {##1}
+ \bool_lazy_or:nnTF
+ { \tl_if_empty_p:n {##1} }
+ {
+ \int_compare_p:nNn
+ { \seq_count:N \g_tmpa_seq } = { 4 }
+ }
+ {
+ \seq_gset_eq:cN
+ {
+ \@@_opt_varname_lang_type:eenn
+ { \l_@@_setup_language_tl }
+ { \l_@@_setup_type_tl }
+ {#1} { seq }
+ }
+ \g_tmpa_seq
+ }
+ {
+ \msg_info:nnxx { zref-clever }
+ { refbounds-must-be-four }
+ {#1} { \seq_count:N \g_tmpa_seq }
+ }
+ }
}
}
} ,
}
}
+\seq_map_inline:Nn
+ \c_@@_rf_opts_bool_maybe_type_specific_seq
+ {
+ \keys_define:nn { zref-clever/langfile }
+ {
+ #1 .choice: ,
+ #1 / true .code:n =
+ {
+ \tl_if_empty:NTF \l_@@_setup_type_tl
+ {
+ \@@_opt_bool_if_set:cF
+ {
+ \@@_opt_varname_lang_default:enn
+ { \l_@@_setup_language_tl }
+ {#1} { bool }
+ }
+ {
+ \bool_gset_true:c
+ {
+ \@@_opt_varname_lang_default:enn
+ { \l_@@_setup_language_tl }
+ {#1} { bool }
+ }
+ }
+ }
+ {
+ \@@_opt_bool_if_set:cF
+ {
+ \@@_opt_varname_lang_type:eenn
+ { \l_@@_setup_language_tl }
+ { \l_@@_setup_type_tl }
+ {#1} { bool }
+ }
+ {
+ \bool_gset_true:c
+ {
+ \@@_opt_varname_lang_type:eenn
+ { \l_@@_setup_language_tl }
+ { \l_@@_setup_type_tl }
+ {#1} { bool }
+ }
+ }
+ }
+ } ,
+ #1 / false .code:n =
+ {
+ \tl_if_empty:NTF \l_@@_setup_type_tl
+ {
+ \@@_opt_bool_if_set:cF
+ {
+ \@@_opt_varname_lang_default:enn
+ { \l_@@_setup_language_tl }
+ {#1} { bool }
+ }
+ {
+ \bool_gset_false:c
+ {
+ \@@_opt_varname_lang_default:enn
+ { \l_@@_setup_language_tl }
+ {#1} { bool }
+ }
+ }
+ }
+ {
+ \@@_opt_bool_if_set:cF
+ {
+ \@@_opt_varname_lang_type:eenn
+ { \l_@@_setup_language_tl }
+ { \l_@@_setup_type_tl }
+ {#1} { bool }
+ }
+ {
+ \bool_gset_false:c
+ {
+ \@@_opt_varname_lang_type:eenn
+ { \l_@@_setup_language_tl }
+ { \l_@@_setup_type_tl }
+ {#1} { bool }
+ }
+ }
+ }
+ } ,
+ #1 / unset .code:n = { } ,
+ #1 .default:n = true ,
+ no #1 .meta:n = { #1 = false } ,
+ no #1 .value_forbidden:n = true ,
+ }
+ }
% \end{macrocode}
%
%
%
-% \subsubsection*{Fallback}
-%
-% All ``strings'' queried with \cs{@@_get_ref_opt_typeset:nN} -- in practice,
-% those in either \cs{c_@@_ref_options_necessarily_not_type_specific_seq} or
-% \cs{c_@@_ref_options_possibly_type_specific_seq} -- must have their values
-% set for ``fallback'', even if to empty ones, since this is what will be
-% retrieved in the absence of a proper language-specific option, which will be
-% the case if \pkg{babel} or \pkg{polyglossia} is loaded and sets a language
-% which \pkg{zref-clever} does not know. On the other hand, ``type names''
-% are not looked for in ``fallback'', since it is indeed impossible to provide
-% any reasonable value for them for a ``specified but unknown language''.
-% Also ``font'' options -- those in \cs{c_@@_ref_options_font_seq}, and
-% queried with \cs{@@_get_ref_opt_font:nN} -- do not need to be provided here,
-% since the later function sets an empty value if the option is not found.
+% It is convenient for a number of language typesetting options (some basic
+% separators) to have some ``fallback'' value available in case \pkg{babel} or
+% \pkg{polyglossia} is loaded and sets a language which \pkg{zref-clever} does
+% not know. On the other hand, ``type names'' are not looked for in
+% ``fallback'', since it is indeed impossible to provide any reasonable value
+% for them for a ``specified but unknown language''. Other typesetting
+% options, for which it is not a problem being empty, need not be catered for
+% with a fallback value.
%
% \begin{macrocode}
-\prop_new:N \g_@@_fallback_unknown_lang_prop
-\prop_gset_from_keyval:Nn \g_@@_fallback_unknown_lang_prop
+\cs_new_protected:Npn \@@_opt_tl_cset_fallback:nn #1#2
+ {
+ \tl_const:cn
+ { \@@_opt_varname_fallback:nn {#1} { tl } } {#2}
+ }
+\keyval_parse:nnn
+ { }
+ { \@@_opt_tl_cset_fallback:nn }
{
tpairsep = {,~} ,
tlistsep = {,~} ,
@@ -1515,96 +2129,8 @@
listsep = {,~} ,
lastsep = {,~} ,
rangesep = {\textendash} ,
- preref = {} ,
- postref = {} ,
- }
-% \end{macrocode}
-%
-%
-%
-% \subsubsection*{Get language options}
-%
-% \begin{macro}{\@@_get_lang_opt_type:nnnNF}
-% Get type-specific language option of \meta{key} for \meta{type} and
-% \meta{language}, and store it in \meta{tl variable} if found. If not
-% found, leave the \meta{false code} on the stream, in which case the value
-% of \meta{tl variable} should not be relied upon.
-% \begin{syntax}
-% \cs{@@_get_lang_opt_type:nnnNF} \Arg{language} \Arg{type} \Arg{key}
-% ~~\meta{tl variable} \Arg{false code}
-% \end{syntax}
-% \begin{macrocode}
-\prg_new_protected_conditional:Npnn
- \@@_get_lang_opt_type:nnnN #1#2#3#4 { F }
- {
- \prop_get:NnNTF \g_@@_languages_prop {#1}
- \l_@@_base_language_tl
- {
- \prop_get:cnNTF
- { g_@@_lang_ \l_@@_base_language_tl _prop }
- { type- #2 - #3 } #4
- { \prg_return_true: }
- { \prg_return_false: }
- }
- { \prg_return_false: }
}
-\prg_generate_conditional_variant:Nnn
- \@@_get_lang_opt_type:nnnN { xxxN , xxnN } { F }
% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\@@_get_lang_opt_default:nnNF}
-% Get default language option of \meta{key} for \meta{language}, and store
-% it in \meta{tl variable} if found. If not found, leave the \meta{false
-% code} on the stream, in which case the value of \meta{tl variable} should
-% not be relied upon.
-% \begin{syntax}
-% \cs{@@_get_lang_opt_default:nnNF} \Arg{language} \Arg{key}
-% ~~\meta{tl variable} \Arg{false code}
-% \end{syntax}
-% \begin{macrocode}
-\prg_new_protected_conditional:Npnn
- \@@_get_lang_opt_default:nnN #1#2#3 { F }
- {
- \prop_get:NnNTF \g_@@_languages_prop {#1}
- \l_@@_base_language_tl
- {
- \prop_get:cnNTF
- { g_@@_lang_ \l_@@_base_language_tl _prop }
- { default- #2 } #3
- { \prg_return_true: }
- { \prg_return_false: }
- }
- { \prg_return_false: }
- }
-\prg_generate_conditional_variant:Nnn
- \@@_get_lang_opt_default:nnN { xnN } { F }
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\@@_get_fallback_unknown_lang_opt:nNF}
-% Get fallback language option of \meta{key}, and store it in \meta{tl
-% variable} if found. If not found, leave the \meta{false code} on the
-% stream, in which case the value of \meta{tl variable} should not be relied
-% upon.
-% \begin{syntax}
-% \cs{@@_get_fallback_unknown_lang_opt:nNF} \Arg{key}
-% ~~\meta{tl variable} \Arg{false code}
-% \end{syntax}
-% \begin{macrocode}
-% {<key>}<tl var to set>
-\prg_new_protected_conditional:Npnn
- \@@_get_fallback_unknown_lang_opt:nN #1#2 { F }
- {
- \prop_get:NnNTF \g_@@_fallback_unknown_lang_prop
- { #1 } #2
- { \prg_return_true: }
- { \prg_return_false: }
- }
-% \end{macrocode}
-% \end{macro}
%
%
%
@@ -1646,7 +2172,7 @@
%
% \begin{macrocode}
\tl_new:N \l_@@_ref_property_tl
-\keys_define:nn { zref-clever / reference }
+\keys_define:nn { zref-clever/reference }
{
ref .code:n =
{
@@ -1671,7 +2197,7 @@
% \begin{macrocode}
\bool_new:N \l_@@_typeset_ref_bool
\bool_new:N \l_@@_typeset_name_bool
-\keys_define:nn { zref-clever / reference }
+\keys_define:nn { zref-clever/reference }
{
typeset .choice: ,
typeset / both .code:n =
@@ -1705,7 +2231,7 @@
%
% \begin{macrocode}
\bool_new:N \l_@@_typeset_sort_bool
-\keys_define:nn { zref-clever / reference }
+\keys_define:nn { zref-clever/reference }
{
sort .bool_set:N = \l_@@_typeset_sort_bool ,
sort .initial:n = true ,
@@ -1726,7 +2252,7 @@
%
% \begin{macrocode}
\seq_new:N \l_@@_typesort_seq
-\keys_define:nn { zref-clever / reference }
+\keys_define:nn { zref-clever/reference }
{
typesort .code:n =
{
@@ -1748,7 +2274,7 @@
%
% \begin{macrocode}
\bool_new:N \l_@@_typeset_compress_bool
-\keys_define:nn { zref-clever / reference }
+\keys_define:nn { zref-clever/reference }
{
comp .bool_set:N = \l_@@_typeset_compress_bool ,
comp .initial:n = true ,
@@ -1764,7 +2290,7 @@
%
% \begin{macrocode}
\bool_new:N \l_@@_typeset_range_bool
-\keys_define:nn { zref-clever / reference }
+\keys_define:nn { zref-clever/reference }
{
range .bool_set:N = \l_@@_typeset_range_bool ,
range .initial:n = false ,
@@ -1776,30 +2302,14 @@
%
% \subsubsection*{\opt{cap} and \opt{capfirst} options}
%
+% The \opt{cap} option is currently being handled with other reference format
+% option booleans at \cs{c_@@_rf_opts_bool_maybe_type_specific_seq}.
+%
% \begin{macrocode}
-\bool_new:N \l_@@_capitalize_first_bool
-\keys_define:nn { zref-clever / reference }
+\bool_new:N \l_@@_capfirst_bool
+\keys_define:nn { zref-clever/reference }
{
- cap .code:n =
- {
- \tl_if_empty:nTF {#1}
- { \prop_remove:Nn \l_@@_ref_options_prop { cap } }
- {
- \bool_lazy_or:nnTF
- { \str_if_eq_p:nn {#1} { true } }
- { \str_if_eq_p:nn {#1} { false } }
- { \prop_put:Nnn \l_@@_ref_options_prop { cap } {#1} }
- {
- \msg_warning:nnn { zref-clever }
- { key-boolean-or-empty } {#1}
- }
- }
- } ,
- cap .default:n = true ,
- nocap .meta:n = { cap = false } ,
- nocap .value_forbidden:n = true ,
-
- capfirst .bool_set:N = \l_@@_capitalize_first_bool ,
+ capfirst .bool_set:N = \l_@@_capfirst_bool ,
capfirst .initial:n = false ,
capfirst .default:n = true ,
}
@@ -1808,29 +2318,13 @@
%
% \subsubsection*{\opt{abbrev} and \opt{noabbrevfirst} options}
%
+% The \opt{abbrev} option is currently being handled with other reference
+% format option booleans at \cs{c_@@_rf_opts_bool_maybe_type_specific_seq}.
+%
% \begin{macrocode}
\bool_new:N \l_@@_noabbrev_first_bool
-\keys_define:nn { zref-clever / reference }
+\keys_define:nn { zref-clever/reference }
{
- abbrev .code:n =
- {
- \tl_if_empty:nTF {#1}
- { \prop_remove:Nn \l_@@_ref_options_prop { abbrev } }
- {
- \bool_lazy_or:nnTF
- { \str_if_eq_p:nn {#1} { true } }
- { \str_if_eq_p:nn {#1} { false } }
- { \prop_put:Nnn \l_@@_ref_options_prop { abbrev } {#1} }
- {
- \msg_warning:nnn { zref-clever }
- { key-boolean-or-empty } {#1}
- }
- }
- } ,
- abbrev .default:n = true ,
- noabbrev .meta:n = { abbrev = false },
- noabbrev .value_forbidden:n = true ,
-
noabbrevfirst .bool_set:N = \l_@@_noabbrev_first_bool ,
noabbrevfirst .initial:n = false ,
noabbrevfirst .default:n = true ,
@@ -1842,11 +2336,11 @@
% \subsubsection*{\opt{S} option}
%
% \begin{macrocode}
-\keys_define:nn { zref-clever / reference }
+\keys_define:nn { zref-clever/reference }
{
S .meta:n =
- { capfirst = true , noabbrevfirst = true },
- S .value_forbidden:n = true ,
+ { capfirst = {#1} , noabbrevfirst = {#1} },
+ S .default:n = true ,
}
% \end{macrocode}
%
@@ -1854,28 +2348,38 @@
% \subsubsection*{\opt{hyperref} option}
%
% \begin{macrocode}
-\bool_new:N \l_@@_use_hyperref_bool
-\bool_new:N \l_@@_warn_hyperref_bool
-\keys_define:nn { zref-clever / reference }
+\bool_new:N \l_@@_hyperlink_bool
+\bool_new:N \l_@@_hyperref_warn_bool
+\keys_define:nn { zref-clever/reference }
{
hyperref .choice: ,
hyperref / auto .code:n =
{
- \bool_set_true:N \l_@@_use_hyperref_bool
- \bool_set_false:N \l_@@_warn_hyperref_bool
+ \bool_set_true:N \l_@@_hyperlink_bool
+ \bool_set_false:N \l_@@_hyperref_warn_bool
} ,
hyperref / true .code:n =
{
- \bool_set_true:N \l_@@_use_hyperref_bool
- \bool_set_true:N \l_@@_warn_hyperref_bool
+ \bool_set_true:N \l_@@_hyperlink_bool
+ \bool_set_true:N \l_@@_hyperref_warn_bool
} ,
hyperref / false .code:n =
{
- \bool_set_false:N \l_@@_use_hyperref_bool
- \bool_set_false:N \l_@@_warn_hyperref_bool
+ \bool_set_false:N \l_@@_hyperlink_bool
+ \bool_set_false:N \l_@@_hyperref_warn_bool
} ,
hyperref .initial:n = auto ,
- hyperref .default:n = auto
+ hyperref .default:n = true ,
+% \end{macrocode}
+% \opt{nohyperref} is provided mainly as a means to inhibit hyperlinking
+% locally in \pkg{zref-vario}'s commands without the need to be setting
+% \pkg{zref-clever}'s internal variables directly. What limits setting
+% \opt{hyperref} out of the preamble is that enabling hyperlinks requires
+% loading packages. But \opt{nohyperref} can only disable them, so we can use
+% it in the document body too.
+% \begin{macrocode}
+ nohyperref .meta:n = { hyperref = false } ,
+ nohyperref .value_forbidden:n = true ,
}
% \end{macrocode}
%
@@ -1884,18 +2388,20 @@
{
\@@_if_package_loaded:nTF { hyperref }
{
- \bool_if:NT \l_@@_use_hyperref_bool
+ \bool_if:NT \l_@@_hyperlink_bool
{ \RequirePackage { zref-hyperref } }
}
{
- \bool_if:NT \l_@@_warn_hyperref_bool
+ \bool_if:NT \l_@@_hyperref_warn_bool
{ \msg_warning:nn { zref-clever } { missing-hyperref } }
- \bool_set_false:N \l_@@_use_hyperref_bool
+ \bool_set_false:N \l_@@_hyperlink_bool
}
- \keys_define:nn { zref-clever / reference }
+ \keys_define:nn { zref-clever/reference }
{
hyperref .code:n =
- { \msg_warning:nn { zref-clever } { hyperref-preamble-only } }
+ { \msg_warning:nn { zref-clever } { hyperref-preamble-only } } ,
+ nohyperref .code:n =
+ { \bool_set_false:N \l_@@_hyperlink_bool } ,
}
}
% \end{macrocode}
@@ -1906,7 +2412,7 @@
%
% \begin{macrocode}
\str_new:N \l_@@_nameinlink_str
-\keys_define:nn { zref-clever / reference }
+\keys_define:nn { zref-clever/reference }
{
nameinlink .choice: ,
nameinlink / true .code:n =
@@ -1923,15 +2429,17 @@
% \end{macrocode}
%
%
-% \subsubsection*{\opt{preposinlink} option}
+% \subsubsection*{\opt{preposinlink} option (deprecated)}
%
% \begin{macrocode}
-\bool_new:N \l_@@_preposinlink_bool
-\keys_define:nn { zref-clever / reference }
+\keys_define:nn { zref-clever/reference }
{
- preposinlink .bool_set:N = \l_@@_preposinlink_bool ,
- preposinlink .initial:n = false ,
- preposinlink .default:n = true ,
+ preposinlink .code:n =
+ {
+ % NOTE Option deprecated in 2022-01-12 for v0.2.0-alpha.
+ \msg_warning:nnnn { zref-clever }{ option-deprecated }
+ { preposinlink } { refbounds }
+ } ,
}
% \end{macrocode}
%
@@ -1996,22 +2504,18 @@
\tl_set:Nn \l_@@_main_language_tl { english }
}
}
-% \end{macrocode}
-% Provide default value for \cs{l_@@_ref_language_tl} corresponding to option
-% \opt{current}, but do so outside of the \pkg{l3keys} machinery (that is,
-% instead of using \texttt{.initial:n}), so that we are able to distinguish
-% when the user actually gave the option, in which case the language file
-% loading is done verbosely, from when we are setting the default value
-% (here), in which case the language file loading is done silently.
-% \begin{macrocode}
- \tl_set:Nn \l_@@_ref_language_tl
- { \l_@@_current_language_tl }
}
% \end{macrocode}
%
+% \begin{macro}{\l_zrefclever_ref_language_tl}
+% A public version of \cs{l_@@_ref_language_tl} for use in \pkg{zref-vario}.
+% \begin{macrocode}
+\tl_set:Nn \l_zrefclever_ref_language_tl { \l_@@_ref_language_tl }
+% \end{macrocode}
+% \end{macro}
%
% \begin{macrocode}
-\keys_define:nn { zref-clever / reference }
+\keys_define:nn { zref-clever/reference }
{
lang .code:n =
{
@@ -2023,32 +2527,27 @@
{
\tl_set:Nn \l_@@_ref_language_tl
{ \l_@@_current_language_tl }
- \@@_provide_langfile_verbose:x
- { \l_@@_ref_language_tl }
}
{ main }
{
\tl_set:Nn \l_@@_ref_language_tl
{ \l_@@_main_language_tl }
- \@@_provide_langfile_verbose:x
- { \l_@@_ref_language_tl }
}
}
{
- \prop_if_in:NnTF \g_@@_languages_prop {#1}
- { \tl_set:Nn \l_@@_ref_language_tl {#1} }
+ \tl_set:Nn \l_@@_ref_language_tl {#1}
+ \@@_language_if_declared:nF {#1}
{
\msg_warning:nnn { zref-clever }
{ unknown-language-opt } {#1}
- \tl_set:Nn \l_@@_ref_language_tl
- { \l_@@_current_language_tl }
}
- \@@_provide_langfile_verbose:x
- { \l_@@_ref_language_tl }
}
+ \@@_provide_langfile:x
+ { \l_@@_ref_language_tl }
}
} ,
+ lang .initial:n = current ,
lang .value_required:n = true ,
}
% \end{macrocode}
@@ -2060,18 +2559,11 @@
\AddToHook { begindocument }
{
% \end{macrocode}
-% If any \opt{lang} option has been given by the user, the corresponding
-% language is already loaded, otherwise, ensure the default one
-% (\texttt{current}) gets loaded early, but not verbosely.
-% \begin{macrocode}
- \@@_provide_langfile:x { \l_@@_ref_language_tl }
-% \end{macrocode}
% Redefinition of the \texttt{lang} key option for the document body. Also,
-% drop the verbose language file loading in the document body, as it can
-% become intrusive depending on the use case, and does not provide much
-% ``juice'' anyway: in \cs{zcref} missing names warnings will already ensue.
+% drop the language file loading in the document body, it is somewhat
+% redundant, since \cs{@@_zcref:nnn} already ensures it.
% \begin{macrocode}
- \keys_define:nn { zref-clever / reference }
+ \keys_define:nn { zref-clever/reference }
{
lang .code:n =
{
@@ -2081,32 +2573,23 @@
{
\tl_set:Nn \l_@@_ref_language_tl
{ \l_@@_current_language_tl }
- \@@_provide_langfile:x
- { \l_@@_ref_language_tl }
}
{ main }
{
\tl_set:Nn \l_@@_ref_language_tl
{ \l_@@_main_language_tl }
- \@@_provide_langfile:x
- { \l_@@_ref_language_tl }
}
}
{
- \prop_if_in:NnTF \g_@@_languages_prop {#1}
- { \tl_set:Nn \l_@@_ref_language_tl {#1} }
+ \tl_set:Nn \l_@@_ref_language_tl {#1}
+ \@@_language_if_declared:nF {#1}
{
\msg_warning:nnn { zref-clever }
{ unknown-language-opt } {#1}
- \tl_set:Nn \l_@@_ref_language_tl
- { \l_@@_current_language_tl }
}
- \@@_provide_langfile:x
- { \l_@@_ref_language_tl }
}
} ,
- lang .value_required:n = true ,
}
}
}
@@ -2128,18 +2611,18 @@
%
% \begin{macrocode}
\tl_new:N \l_@@_ref_decl_case_tl
-\keys_define:nn { zref-clever / reference }
+\keys_define:nn { zref-clever/reference }
{
d .code:n =
{ \msg_warning:nnn { zref-clever } { option-document-only } { d } } ,
}
\AddToHook { begindocument }
{
- \keys_define:nn { zref-clever / reference }
+ \keys_define:nn { zref-clever/reference }
{
% \end{macrocode}
% We just store the value at this point, which is validated by
-% \cs{@@_process_language_options:} after \cs{keys_set:nn}.
+% \cs{@@_process_language_settings:} after \cs{keys_set:nn}.
% \begin{macrocode}
d .tl_set:N = \l_@@_ref_decl_case_tl ,
d .value_required:n = true ,
@@ -2158,7 +2641,7 @@
\bool_new:N \l_@@_nudge_singular_bool
\bool_new:N \l_@@_nudge_gender_bool
\tl_new:N \l_@@_ref_gender_tl
-\keys_define:nn { zref-clever / reference }
+\keys_define:nn { zref-clever/reference }
{
nudge .choice: ,
nudge / true .code:n =
@@ -2219,11 +2702,11 @@
}
\AddToHook { begindocument }
{
- \keys_define:nn { zref-clever / reference }
+ \keys_define:nn { zref-clever/reference }
{
% \end{macrocode}
% We just store the value at this point, which is validated by
-% \cs{@@_process_language_options:} after \cs{keys_set:nn}.
+% \cs{@@_process_language_settings:} after \cs{keys_set:nn}.
% \begin{macrocode}
g .tl_set:N = \l_@@_ref_gender_tl ,
g .value_required:n = true ,
@@ -2245,7 +2728,7 @@
%
% \begin{macrocode}
\tl_new:N \l_@@_ref_typeset_font_tl
-\keys_define:nn { zref-clever / reference }
+\keys_define:nn { zref-clever/reference }
{ font .tl_set:N = \l_@@_ref_typeset_font_tl }
% \end{macrocode}
%
@@ -2254,14 +2737,14 @@
% \subsubsection*{\opt{titleref} option}
%
% \begin{macrocode}
-\keys_define:nn { zref-clever / reference }
+\keys_define:nn { zref-clever/reference }
{
titleref .code:n = { \RequirePackage { zref-titleref } } ,
titleref .value_forbidden:n = true ,
}
\AddToHook { begindocument }
{
- \keys_define:nn { zref-clever / reference }
+ \keys_define:nn { zref-clever/reference }
{
titleref .code:n =
{ \msg_warning:nn { zref-clever } { titleref-preamble-only } }
@@ -2274,7 +2757,7 @@
%
% \begin{macrocode}
\tl_new:N \l_@@_zcref_note_tl
-\keys_define:nn { zref-clever / reference }
+\keys_define:nn { zref-clever/reference }
{
note .tl_set:N = \l_@@_zcref_note_tl ,
note .value_required:n = true ,
@@ -2289,7 +2772,7 @@
% \begin{macrocode}
\bool_new:N \l_@@_zrefcheck_available_bool
\bool_new:N \l_@@_zcref_with_check_bool
-\keys_define:nn { zref-clever / reference }
+\keys_define:nn { zref-clever/reference }
{
check .code:n = { \RequirePackage { zref-check } } ,
check .value_forbidden:n = true ,
@@ -2299,7 +2782,7 @@
\@@_if_package_loaded:nTF { zref-check }
{
\bool_set_true:N \l_@@_zrefcheck_available_bool
- \keys_define:nn { zref-clever / reference }
+ \keys_define:nn { zref-clever/reference }
{
check .code:n =
{
@@ -2311,7 +2794,7 @@
}
{
\bool_set_false:N \l_@@_zrefcheck_available_bool
- \keys_define:nn { zref-clever / reference }
+ \keys_define:nn { zref-clever/reference }
{
check .value_forbidden:n = false ,
check .code:n =
@@ -2332,7 +2815,7 @@
%
% \begin{macrocode}
\prop_new:N \l_@@_counter_type_prop
-\keys_define:nn { zref-clever / label }
+\keys_define:nn { zref-clever/label }
{
countertype .code:n =
{
@@ -2396,7 +2879,7 @@
%
% \begin{macrocode}
\seq_new:N \l_@@_counter_resetters_seq
-\keys_define:nn { zref-clever / label }
+\keys_define:nn { zref-clever/label }
{
counterresetters .code:n =
{
@@ -2435,7 +2918,7 @@
%
% \begin{macrocode}
\prop_new:N \l_@@_counter_resetby_prop
-\keys_define:nn { zref-clever / label }
+\keys_define:nn { zref-clever/label }
{
counterresetby .code:n =
{
@@ -2476,7 +2959,7 @@
%
% \begin{macrocode}
\tl_new:N \l_@@_current_counter_tl
-\keys_define:nn { zref-clever / label }
+\keys_define:nn { zref-clever/label }
{
currentcounter .tl_set:N = \l_@@_current_counter_tl ,
currentcounter .value_required:n = true ,
@@ -2491,7 +2974,7 @@
% \begin{macrocode}
\bool_new:N \g_@@_nocompat_bool
\seq_new:N \g_@@_nocompat_modules_seq
-\keys_define:nn { zref-clever / reference }
+\keys_define:nn { zref-clever/reference }
{
nocompat .code:n =
{
@@ -2511,7 +2994,7 @@
}
\AddToHook { begindocument }
{
- \keys_define:nn { zref-clever / reference }
+ \keys_define:nn { zref-clever/reference }
{
nocompat .code:n =
{
@@ -2566,53 +3049,121 @@
% This is a set of options related to reference typesetting which receive
% equal treatment and, hence, are handled in batch. Since we are dealing with
% options to be passed to \cs{zcref} or to \cs{zcsetup} or at load time, only
-% ``not necessarily type-specific'' options are pertinent here. However, they
-% \emph{may} either be type-specific or language-specific, and thus must be
-% stored in a property list, \cs{l_@@_ref_options_prop}, in order to be
-% retrieved from the option \emph{name} by \cs{@@_get_ref_opt_typeset:nN} and
-% \cs{@@_get_ref_opt_font:nN} according to context and precedence rules.
+% ``not necessarily type-specific'' options are pertinent here.
%
-% The keys are set so that any value, including an empty one, is added to
-% \cs{l_@@_ref_options_prop}, while a key with \emph{no value} removes the
-% property from the list, so that these options can then fall back to lower
-% precedence levels settings. For discussion about the used technique, see
-% \zcref{sec:zcreftypesetup}.
%
% \begin{macrocode}
-\prop_new:N \l_@@_ref_options_prop
\seq_map_inline:Nn
- \c_@@_ref_options_reference_seq
+ \c_@@_rf_opts_tl_reference_seq
{
- \keys_define:nn { zref-clever / reference }
+ \keys_define:nn { zref-clever/reference }
{
- #1 .default:V = \c_novalue_tl ,
+ #1 .default:x = \c_novalue_tl ,
#1 .code:n =
{
\tl_if_novalue:nTF {##1}
- { \prop_remove:Nn \l_@@_ref_options_prop {#1} }
- { \prop_put:Nnn \l_@@_ref_options_prop {#1} {##1} }
+ {
+ \@@_opt_tl_unset:c
+ { \@@_opt_varname_general:nn {#1} { tl } }
+ }
+ {
+ \tl_set:cn
+ { \@@_opt_varname_general:nn {#1} { tl } }
+ {##1}
+ }
} ,
}
}
-\keys_define:nn { zref-clever / reference }
+\keys_define:nn { zref-clever/reference }
{
refpre .code:n =
{
% NOTE Option deprecated in 2022-01-10 for v0.1.2-alpha.
\msg_warning:nnnn { zref-clever }{ option-deprecated }
- { refpre } { preref }
+ { refpre } { refbounds }
} ,
refpos .code:n =
{
% NOTE Option deprecated in 2022-01-10 for v0.1.2-alpha.
\msg_warning:nnnn { zref-clever }{ option-deprecated }
- { refpos } { postref }
+ { refpos } { refbounds }
+ } ,
+ preref .code:n =
+ {
+ % NOTE Option deprecated in 2022-01-14 for v0.2.0-alpha.
+ \msg_warning:nnnn { zref-clever }{ option-deprecated }
+ { preref } { refbounds }
+ } ,
+ postref .code:n =
+ {
+ % NOTE Option deprecated in 2022-01-14 for v0.2.0-alpha.
+ \msg_warning:nnnn { zref-clever }{ option-deprecated }
+ { postref } { refbounds }
} ,
}
+\seq_map_inline:Nn
+ \c_@@_rf_opts_seq_refbounds_seq
+ {
+ \keys_define:nn { zref-clever/reference }
+ {
+ #1 .default:x = \c_novalue_tl ,
+ #1 .code:n =
+ {
+ \tl_if_novalue:nTF {##1}
+ {
+ \@@_opt_seq_unset:c
+ { \@@_opt_varname_general:nn {#1} { seq } }
+ }
+ {
+ \seq_clear:N \l_tmpa_seq
+ \@@_opt_seq_set_clist_split:Nn
+ \l_tmpa_seq {##1}
+ \bool_lazy_or:nnTF
+ { \tl_if_empty_p:n {##1} }
+ { \int_compare_p:nNn { \seq_count:N \l_tmpa_seq } = { 4 } }
+ {
+ \seq_set_eq:cN
+ { \@@_opt_varname_general:nn {#1} { seq } }
+ \l_tmpa_seq
+ }
+ {
+ \msg_warning:nnxx { zref-clever }
+ { refbounds-must-be-four }
+ {#1} { \seq_count:N \l_tmpa_seq }
+ }
+ }
+ } ,
+ }
+ }
+\seq_map_inline:Nn
+ \c_@@_rf_opts_bool_maybe_type_specific_seq
+ {
+ \keys_define:nn { zref-clever/reference }
+ {
+ #1 .choice: ,
+ #1 / true .code:n =
+ {
+ \bool_set_true:c
+ { \@@_opt_varname_general:nn {#1} { bool } }
+ } ,
+ #1 / false .code:n =
+ {
+ \bool_set_false:c
+ { \@@_opt_varname_general:nn {#1} { bool } }
+ } ,
+ #1 / unset .code:n =
+ {
+ \@@_opt_bool_unset:c
+ { \@@_opt_varname_general:nn {#1} { bool } }
+ } ,
+ #1 .default:n = true ,
+ no #1 .meta:n = { #1 = false } ,
+ no #1 .value_forbidden:n = true ,
+ }
+ }
% \end{macrocode}
%
%
-%
% \subsubsection*{Package options}
%
% The options have been separated in two different groups, so that we can
@@ -2625,10 +3176,10 @@
% \begin{macrocode}
\keys_define:nn { }
{
- zref-clever / zcsetup .inherit:n =
+ zref-clever/zcsetup .inherit:n =
{
- zref-clever / label ,
- zref-clever / reference ,
+ zref-clever/label ,
+ zref-clever/reference ,
}
}
% \end{macrocode}
@@ -2637,7 +3188,7 @@
% Process load-time package options
% (\url{https://tex.stackexchange.com/a/15840}).
% \begin{macrocode}
-\ProcessKeysOptions { zref-clever / zcsetup }
+\ProcessKeysOptions { zref-clever/zcsetup }
% \end{macrocode}
%
%
@@ -2665,7 +3216,7 @@
% \end{syntax}
% \begin{macrocode}
\cs_new_protected:Npn \@@_zcsetup:n #1
- { \keys_set:nn { zref-clever / zcsetup } {#1} }
+ { \keys_set:nn { zref-clever/zcsetup } {#1} }
\cs_generate_variant:Nn \@@_zcsetup:n { x }
% \end{macrocode}
% \end{macro}
@@ -2691,114 +3242,19 @@
% \begin{macrocode}
\NewDocumentCommand \zcRefTypeSetup { m m }
{
- \prop_if_exist:cF { l_@@_type_ #1 _options_prop }
- { \prop_new:c { l_@@_type_ #1 _options_prop } }
\tl_set:Nn \l_@@_setup_type_tl {#1}
- \keys_set:nn { zref-clever / typesetup } {#2}
+ \keys_set:nn { zref-clever/typesetup } {#2}
}
% \end{macrocode}
% \end{macro}
%
%
-% Inside \cs{zcRefTypeSetup} any of the options \emph{can} receive empty
-% values, and those values, if they exist in the property list, will override
-% language-specific options, regardless of their emptiness. In principle, we
-% could live with the situation of, once a setting has been made in
-% \cs{l_@@_type_<type>_options_prop} or in \cs{l_@@_ref_options_prop} it stays
-% there forever, and can only be overridden by a new value at the same
-% precedence level or a higher one. But it would be nice if an user can
-% ``unset'' an option at either of those scopes to go back to the lower
-% precedence level of the language-specific options at any given point. So
-% both in \cs{zcRefTypeSetup} and in setting reference options (see
-% \zcref{sec:reference-options}), we leverage the distinction of an ``empty
-% valued key'' (\texttt{key=} or \texttt{key=\{\}}) from a ``key with no
-% value'' (\texttt{key}). This distinction is captured internally by the
-% lower-level key parsing, but must be made explicit at \cs{keys_set:nn} by
-% means of the \texttt{.default:V} property of the key in \cs{keys_define:nn}.
-% For the technique, by \contributor{Jonathan P.\ Spratte}, aka `Skillmon',
-% and some discussion about it, including further insights by
-% \contributor{Phelype Oleinik}, see
-% \url{https://tex.stackexchange.com/q/614690} and
-% \url{https://github.com/latex3/latex3/pull/988}.
-%
-%
-% \begin{macrocode}
-\keys_define:nn { zref-clever / typesetup }
- {
- cap .code:n =
- {
- \tl_if_empty:nTF {#1}
- {
- \prop_remove:cn
- {
- l_@@_type_
- \l_@@_setup_type_tl _options_prop
- }
- { cap }
- }
- {
- \bool_lazy_or:nnTF
- { \str_if_eq_p:nn {#1} { true } }
- { \str_if_eq_p:nn {#1} { false } }
- {
- \prop_put:cnn
- {
- l_@@_type_
- \l_@@_setup_type_tl _options_prop
- }
- { cap } {#1}
- }
- {
- \msg_warning:nnn { zref-clever }
- { key-boolean-or-empty } {#1}
- }
- }
- } ,
- cap .default:n = true ,
- nocap .meta:n = { cap = false } ,
- nocap .value_forbidden:n = true ,
-
- abbrev .code:n =
- {
- \tl_if_empty:nTF {#1}
- {
- \prop_remove:cn
- {
- l_@@_type_
- \l_@@_setup_type_tl _options_prop
- }
- { abbrev }
- }
- {
- \bool_lazy_or:nnTF
- { \str_if_eq_p:nn {#1} { true } }
- { \str_if_eq_p:nn {#1} { false } }
- {
- \prop_put:cnn
- {
- l_@@_type_
- \l_@@_setup_type_tl _options_prop
- }
- { abbrev } {#1}
- }
- {
- \msg_warning:nnn { zref-clever }
- { key-boolean-or-empty } {#1}
- }
- }
- } ,
- abbrev .default:n = true ,
- noabbrev .meta:n = { abbrev = false },
- noabbrev .value_forbidden:n = true ,
- }
-% \end{macrocode}
-%
%
% \begin{macrocode}
\seq_map_inline:Nn
- \c_@@_ref_options_necessarily_not_type_specific_seq
+ \c_@@_rf_opts_tl_not_type_specific_seq
{
- \keys_define:nn { zref-clever / typesetup }
+ \keys_define:nn { zref-clever/typesetup }
{
#1 .code:n =
{
@@ -2807,57 +3263,141 @@
} ,
}
}
-% \end{macrocode}
-%
-%
-% \begin{macrocode}
\seq_map_inline:Nn
- \c_@@_ref_options_typesetup_seq
+ \c_@@_rf_opts_tl_typesetup_seq
{
- \keys_define:nn { zref-clever / typesetup }
+ \keys_define:nn { zref-clever/typesetup }
{
- #1 .default:V = \c_novalue_tl ,
+ #1 .default:x = \c_novalue_tl ,
#1 .code:n =
{
\tl_if_novalue:nTF {##1}
{
- \prop_remove:cn
+ \@@_opt_tl_unset:c
{
- l_@@_type_
- \l_@@_setup_type_tl _options_prop
+ \@@_opt_varname_type:enn
+ { \l_@@_setup_type_tl } {#1} { tl }
}
- {#1}
}
{
- \prop_put:cnn
+ \tl_set:cn
{
- l_@@_type_
- \l_@@_setup_type_tl _options_prop
+ \@@_opt_varname_type:enn
+ { \l_@@_setup_type_tl } {#1} { tl }
}
- {#1} {##1}
+ {##1}
}
} ,
}
}
-\keys_define:nn { zref-clever / typesetup }
+\keys_define:nn { zref-clever/typesetup }
{
refpre .code:n =
{
% NOTE Option deprecated in 2022-01-10 for v0.1.2-alpha.
\msg_warning:nnnn { zref-clever }{ option-deprecated }
- { refpre } { preref }
+ { refpre } { refbounds }
} ,
refpos .code:n =
{
% NOTE Option deprecated in 2022-01-10 for v0.1.2-alpha.
\msg_warning:nnnn { zref-clever }{ option-deprecated }
- { refpos } { postref }
+ { refpos } { refbounds }
+ } ,
+ preref .code:n =
+ {
+ % NOTE Option deprecated in 2022-01-14 for v0.2.0-alpha.
+ \msg_warning:nnnn { zref-clever }{ option-deprecated }
+ { preref } { refbounds }
+ } ,
+ postref .code:n =
+ {
+ % NOTE Option deprecated in 2022-01-14 for v0.2.0-alpha.
+ \msg_warning:nnnn { zref-clever }{ option-deprecated }
+ { postref } { refbounds }
} ,
}
+\seq_map_inline:Nn
+ \c_@@_rf_opts_seq_refbounds_seq
+ {
+ \keys_define:nn { zref-clever/typesetup }
+ {
+ #1 .default:x = \c_novalue_tl ,
+ #1 .code:n =
+ {
+ \tl_if_novalue:nTF {##1}
+ {
+ \@@_opt_seq_unset:c
+ {
+ \@@_opt_varname_type:enn
+ { \l_@@_setup_type_tl } {#1} { seq }
+ }
+ }
+ {
+ \seq_clear:N \l_tmpa_seq
+ \@@_opt_seq_set_clist_split:Nn
+ \l_tmpa_seq {##1}
+ \bool_lazy_or:nnTF
+ { \tl_if_empty_p:n {##1} }
+ { \int_compare_p:nNn { \seq_count:N \l_tmpa_seq } = { 4 } }
+ {
+ \seq_set_eq:cN
+ {
+ \@@_opt_varname_type:enn
+ { \l_@@_setup_type_tl } {#1} { seq }
+ }
+ \l_tmpa_seq
+ }
+ {
+ \msg_warning:nnxx { zref-clever }
+ { refbounds-must-be-four }
+ {#1} { \seq_count:N \l_tmpa_seq }
+ }
+ }
+ } ,
+ }
+ }
+\seq_map_inline:Nn
+ \c_@@_rf_opts_bool_maybe_type_specific_seq
+ {
+ \keys_define:nn { zref-clever/typesetup }
+ {
+ #1 .choice: ,
+ #1 / true .code:n =
+ {
+ \bool_set_true:c
+ {
+ \@@_opt_varname_type:enn
+ { \l_@@_setup_type_tl }
+ {#1} { bool }
+ }
+ } ,
+ #1 / false .code:n =
+ {
+ \bool_set_false:c
+ {
+ \@@_opt_varname_type:enn
+ { \l_@@_setup_type_tl }
+ {#1} { bool }
+ }
+ } ,
+ #1 / unset .code:n =
+ {
+ \@@_opt_bool_unset:c
+ {
+ \@@_opt_varname_type:enn
+ { \l_@@_setup_type_tl }
+ {#1} { bool }
+ }
+ } ,
+ #1 .default:n = true ,
+ no #1 .meta:n = { #1 = false } ,
+ no #1 .value_forbidden:n = true ,
+ }
+ }
% \end{macrocode}
%
%
-%
% \subsection{\cs{zcLanguageSetup}}
%
% \cs{zcLanguageSetup} is the main user interface for ``language-specific''
@@ -2879,37 +3419,31 @@
\NewDocumentCommand \zcLanguageSetup { m m }
{
\group_begin:
- \prop_get:NnNTF \g_@@_languages_prop {#1}
- \l_@@_base_language_tl
+ \@@_language_if_declared:nTF {#1}
{
\tl_clear:N \l_@@_setup_type_tl
- \exp_args:NNx \seq_set_from_clist:Nn
- \l_@@_lang_declension_seq
+ \tl_set:Nn \l_@@_setup_language_tl {#1}
+ \@@_opt_seq_get:cNF
{
- \prop_item:cn
- {
- g_@@_lang_
- \l_@@_base_language_tl _prop
- }
- { declension }
+ \@@_opt_varname_language:nnn
+ {#1} { declension } { seq }
}
+ \l_@@_lang_declension_seq
+ { \seq_clear:N \l_@@_lang_declension_seq }
\seq_if_empty:NTF \l_@@_lang_declension_seq
{ \tl_clear:N \l_@@_lang_decl_case_tl }
{
\seq_get_left:NN \l_@@_lang_declension_seq
\l_@@_lang_decl_case_tl
}
- \exp_args:NNx \seq_set_from_clist:Nn
- \l_@@_lang_gender_seq
+ \@@_opt_seq_get:cNF
{
- \prop_item:cn
- {
- g_@@_lang_
- \l_@@_base_language_tl _prop
- }
- { gender }
+ \@@_opt_varname_language:nnn
+ {#1} { gender } { seq }
}
- \keys_set:nn { zref-clever / langsetup } {#2}
+ \l_@@_lang_gender_seq
+ { \seq_clear:N \l_@@_lang_gender_seq }
+ \keys_set:nn { zref-clever/langsetup } {#2}
}
{ \msg_warning:nnn { zref-clever } { unknown-language-setup } {#1} }
\group_end:
@@ -2919,44 +3453,12 @@
% \end{macro}
%
%
-% \begin{macro}
-% {
-% \@@_declare_lang_opt_type:nnnn ,
-% \@@_declare_lang_opt_default:nnn ,
-% }
-% A couple of auxiliary functions for the of
-% \texttt{{zref-clever/langsetup}} keys set in \cs{zcLanguageSetup}. They
-% respectively declare (unconditionally set) ``type-specific'' and
-% ``default'' language-specific options.
-% \begin{syntax}
-% \cs{@@_declare_lang_opt_type:nnnn} \Arg{language} \Arg{type}
-% ~~\Arg{key} \Arg{value}
-% \cs{@@_declare_lang_opt_default:nnn} \Arg{language}
-% ~~\Arg{key} \Arg{value}
-% \end{syntax}
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_declare_lang_opt_type:nnnn #1#2#3#4
- {
- \prop_gput:cnn { g_@@_lang_ #1 _prop }
- { type- #2 - #3 } {#4}
- }
-\cs_generate_variant:Nn
- \@@_declare_lang_opt_type:nnnn { VVnn , VVxn , VVnx , VVnV }
-\cs_new_protected:Npn \@@_declare_lang_opt_default:nnn #1#2#3
- {
- \prop_gput:cnn { g_@@_lang_ #1 _prop }
- { default- #2 } {#3}
- }
-\cs_generate_variant:Nn \@@_declare_lang_opt_default:nnn { Vnn , VnV }
-% \end{macrocode}
-% \end{macro}
-%
%
% The set of keys for \texttt{{zref-clever/langsetup}}, which is used to set
% language-specific options in \cs{zcLanguageSetup}.
%
% \begin{macrocode}
-\keys_define:nn { zref-clever / langsetup }
+\keys_define:nn { zref-clever/langsetup }
{
type .code:n =
{
@@ -2970,14 +3472,14 @@
\seq_if_empty:NTF \l_@@_lang_declension_seq
{
\msg_warning:nnxx { zref-clever } { language-no-decl-setup }
- { \l_@@_base_language_tl } {#1}
+ { \l_@@_setup_language_tl } {#1}
}
{
\seq_if_in:NnTF \l_@@_lang_declension_seq {#1}
{ \tl_set:Nn \l_@@_lang_decl_case_tl {#1} }
{
\msg_warning:nnxx { zref-clever } { unknown-decl-case }
- {#1} { \l_@@_base_language_tl }
+ {#1} { \l_@@_setup_language_tl }
\seq_get_left:NN \l_@@_lang_declension_seq
\l_@@_lang_decl_case_tl
}
@@ -2985,12 +3487,13 @@
} ,
case .value_required:n = true ,
+ gender .default:x = \c_novalue_tl ,
gender .code:n =
{
\seq_if_empty:NTF \l_@@_lang_gender_seq
{
\msg_warning:nnxxx { zref-clever } { language-no-gender }
- { \l_@@_base_language_tl } { gender } {#1}
+ { \l_@@_setup_language_tl } { gender } {#1}
}
{
\tl_if_empty:NTF \l_@@_setup_type_tl
@@ -2999,82 +3502,69 @@
{ option-only-type-specific } { gender }
}
{
- \clist_clear:N \l_tmpa_clist
- \clist_map_inline:nn {#1}
+ \tl_if_novalue:nTF {#1}
{
- \seq_if_in:NnTF \l_@@_lang_gender_seq {##1}
- { \clist_put_right:Nn \l_tmpa_clist {##1} }
+ \@@_opt_seq_gunset:c
{
- \msg_warning:nnxx { zref-clever }
- { gender-not-declared }
- { \l_@@_base_language_tl } {##1}
+ \@@_opt_varname_lang_type:eenn
+ { \l_@@_setup_language_tl }
+ { \l_@@_setup_type_tl }
+ { gender }
+ { seq }
}
}
- \clist_if_empty:NF \l_tmpa_clist
{
- \@@_declare_lang_opt_type:VVnx
- \l_@@_base_language_tl
- \l_@@_setup_type_tl
- { gender } { \clist_use:Nn \l_tmpa_clist { , } }
+ \seq_clear:N \l_tmpa_seq
+ \clist_map_inline:nn {#1}
+ {
+ \seq_if_in:NnTF \l_@@_lang_gender_seq {##1}
+ { \seq_put_right:Nn \l_tmpa_seq {##1} }
+ {
+ \msg_warning:nnxx { zref-clever }
+ { gender-not-declared }
+ { \l_@@_setup_language_tl } {##1}
+ }
+ }
+ \seq_gset_eq:cN
+ {
+ \@@_opt_varname_lang_type:eenn
+ { \l_@@_setup_language_tl }
+ { \l_@@_setup_type_tl }
+ { gender }
+ { seq }
+ }
+ \l_tmpa_seq
}
}
}
} ,
- gender .value_required:n = true ,
-
- cap .choices:nn =
- { true , false }
- {
- \tl_if_empty:NTF \l_@@_setup_type_tl
- {
- \@@_declare_lang_opt_default:VnV
- \l_@@_base_language_tl
- { cap } \l_keys_choice_tl
- }
- {
- \@@_declare_lang_opt_type:VVnV
- \l_@@_base_language_tl
- \l_@@_setup_type_tl
- { cap } \l_keys_choice_tl
- }
- } ,
- cap .default:n = true ,
- nocap .meta:n = { cap = false } ,
- nocap .value_forbidden:n = true ,
-
- abbrev .choices:nn =
- { true , false }
- {
- \tl_if_empty:NTF \l_@@_setup_type_tl
- {
- \@@_declare_lang_opt_default:VnV
- \l_@@_base_language_tl
- { abbrev } \l_keys_choice_tl
- }
- {
- \@@_declare_lang_opt_type:VVnV
- \l_@@_base_language_tl
- \l_@@_setup_type_tl
- { abbrev } \l_keys_choice_tl
- }
- } ,
- abbrev .default:n = true ,
- noabbrev .meta:n = { abbrev = false },
- noabbrev .value_forbidden:n = true ,
}
\seq_map_inline:Nn
- \c_@@_ref_options_necessarily_not_type_specific_seq
+ \c_@@_rf_opts_tl_not_type_specific_seq
{
- \keys_define:nn { zref-clever / langsetup }
+ \keys_define:nn { zref-clever/langsetup }
{
- #1 .value_required:n = true ,
+ #1 .default:x = \c_novalue_tl ,
#1 .code:n =
{
\tl_if_empty:NTF \l_@@_setup_type_tl
{
- \@@_declare_lang_opt_default:Vnn
- \l_@@_base_language_tl
- {#1} {##1}
+ \tl_if_novalue:nTF {##1}
+ {
+ \@@_opt_tl_gunset:c
+ {
+ \@@_opt_varname_lang_default:enn
+ { \l_@@_setup_language_tl } {#1} { tl }
+ }
+ }
+ {
+ \tl_gset:cn
+ {
+ \@@_opt_varname_lang_default:enn
+ { \l_@@_setup_language_tl } {#1} { tl }
+ }
+ {##1}
+ }
}
{
\msg_warning:nnn { zref-clever }
@@ -3084,47 +3574,88 @@
}
}
\seq_map_inline:Nn
- \c_@@_ref_options_possibly_type_specific_seq
+ \c_@@_rf_opts_tl_maybe_type_specific_seq
{
- \keys_define:nn { zref-clever / langsetup }
+ \keys_define:nn { zref-clever/langsetup }
{
#1 .value_required:n = true ,
#1 .code:n =
{
\tl_if_empty:NTF \l_@@_setup_type_tl
{
- \@@_declare_lang_opt_default:Vnn
- \l_@@_base_language_tl
- {#1} {##1}
+ \tl_if_novalue:nTF {##1}
+ {
+ \@@_opt_tl_gunset:c
+ {
+ \@@_opt_varname_lang_default:enn
+ { \l_@@_setup_language_tl } {#1} { tl }
+ }
+ }
+ {
+ \tl_gset:cn
+ {
+ \@@_opt_varname_lang_default:enn
+ { \l_@@_setup_language_tl } {#1} { tl }
+ }
+ {##1}
+ }
}
{
- \@@_declare_lang_opt_type:VVnn
- \l_@@_base_language_tl
- \l_@@_setup_type_tl
- {#1} {##1}
+ \tl_if_novalue:nTF {##1}
+ {
+ \@@_opt_tl_gunset:c
+ {
+ \@@_opt_varname_lang_type:eenn
+ { \l_@@_setup_language_tl }
+ { \l_@@_setup_type_tl }
+ {#1} { tl }
+ }
+ }
+ {
+ \tl_gset:cn
+ {
+ \@@_opt_varname_lang_type:eenn
+ { \l_@@_setup_language_tl }
+ { \l_@@_setup_type_tl }
+ {#1} { tl }
+ }
+ {##1}
+ }
}
} ,
}
}
-\keys_define:nn { zref-clever / langsetup }
+\keys_define:nn { zref-clever/langsetup }
{
refpre .code:n =
{
% NOTE Option deprecated in 2022-01-10 for v0.1.2-alpha.
\msg_warning:nnnn { zref-clever }{ option-deprecated }
- { refpre } { preref }
+ { refpre } { refbounds }
} ,
refpos .code:n =
{
% NOTE Option deprecated in 2022-01-10 for v0.1.2-alpha.
\msg_warning:nnnn { zref-clever }{ option-deprecated }
- { refpos } { postref }
+ { refpos } { refbounds }
+ } ,
+ preref .code:n =
+ {
+ % NOTE Option deprecated in 2022-01-14 for v0.2.0-alpha.
+ \msg_warning:nnnn { zref-clever }{ option-deprecated }
+ { preref } { refbounds }
+ } ,
+ postref .code:n =
+ {
+ % NOTE Option deprecated in 2022-01-14 for v0.2.0-alpha.
+ \msg_warning:nnnn { zref-clever }{ option-deprecated }
+ { postref } { refbounds }
} ,
}
\seq_map_inline:Nn
- \c_@@_ref_options_type_names_seq
+ \c_@@_rf_opts_tl_type_names_seq
{
- \keys_define:nn { zref-clever / langsetup }
+ \keys_define:nn { zref-clever/langsetup }
{
#1 .value_required:n = true ,
#1 .code:n =
@@ -3135,27 +3666,205 @@
{ option-only-type-specific } {#1}
}
{
- \tl_if_empty:NTF \l_@@_lang_decl_case_tl
+ \tl_if_novalue:nTF {##1}
{
- \@@_declare_lang_opt_type:VVnn
- \l_@@_base_language_tl
- \l_@@_setup_type_tl
- {#1} {##1}
+ \@@_opt_tl_gunset:c
+ {
+ \@@_opt_varname_lang_type:eenn
+ { \l_@@_setup_language_tl }
+ { \l_@@_setup_type_tl }
+ {#1} { tl }
+ }
}
{
- \@@_declare_lang_opt_type:VVxn
- \l_@@_base_language_tl
- \l_@@_setup_type_tl
- { \l_@@_lang_decl_case_tl - #1 } {##1}
+ \tl_if_empty:NTF \l_@@_lang_decl_case_tl
+ {
+ \tl_gset:cn
+ {
+ \@@_opt_varname_lang_type:eenn
+ { \l_@@_setup_language_tl }
+ { \l_@@_setup_type_tl }
+ {#1} { tl }
+ }
+ {##1}
+ }
+ {
+ \tl_gset:cn
+ {
+ \@@_opt_varname_lang_type:eeen
+ { \l_@@_setup_language_tl }
+ { \l_@@_setup_type_tl }
+ { \l_@@_lang_decl_case_tl - #1 }
+ { tl }
+ }
+ {##1}
+ }
}
}
} ,
}
}
+\seq_map_inline:Nn
+ \c_@@_rf_opts_seq_refbounds_seq
+ {
+ \keys_define:nn { zref-clever/langsetup }
+ {
+ #1 .default:x = \c_novalue_tl ,
+ #1 .code:n =
+ {
+ \tl_if_empty:NTF \l_@@_setup_type_tl
+ {
+ \tl_if_novalue:nTF {##1}
+ {
+ \@@_opt_seq_gunset:c
+ {
+ \@@_opt_varname_lang_default:enn
+ { \l_@@_setup_language_tl }
+ {#1} { seq }
+ }
+ }
+ {
+ \seq_gclear:N \g_tmpa_seq
+ \@@_opt_seq_gset_clist_split:Nn
+ \g_tmpa_seq {##1}
+ \bool_lazy_or:nnTF
+ { \tl_if_empty_p:n {##1} }
+ {
+ \int_compare_p:nNn
+ { \seq_count:N \g_tmpa_seq } = { 4 }
+ }
+ {
+ \seq_gset_eq:cN
+ {
+ \@@_opt_varname_lang_default:enn
+ { \l_@@_setup_language_tl }
+ {#1} { seq }
+ }
+ \g_tmpa_seq
+ }
+ {
+ \msg_warning:nnxx { zref-clever }
+ { refbounds-must-be-four }
+ {#1} { \seq_count:N \g_tmpa_seq }
+ }
+ }
+ }
+ {
+ \tl_if_novalue:nTF {##1}
+ {
+ \@@_opt_seq_gunset:c
+ {
+ \@@_opt_varname_lang_type:eenn
+ { \l_@@_setup_language_tl }
+ { \l_@@_setup_type_tl } {#1} { seq }
+ }
+ }
+ {
+ \seq_gclear:N \g_tmpa_seq
+ \@@_opt_seq_gset_clist_split:Nn
+ \g_tmpa_seq {##1}
+ \bool_lazy_or:nnTF
+ { \tl_if_empty_p:n {##1} }
+ {
+ \int_compare_p:nNn
+ { \seq_count:N \g_tmpa_seq } = { 4 }
+ }
+ {
+ \seq_gset_eq:cN
+ {
+ \@@_opt_varname_lang_type:eenn
+ { \l_@@_setup_language_tl }
+ { \l_@@_setup_type_tl } {#1} { seq }
+ }
+ \g_tmpa_seq
+ }
+ {
+ \msg_warning:nnxx { zref-clever }
+ { refbounds-must-be-four }
+ {#1} { \seq_count:N \g_tmpa_seq }
+ }
+ }
+ }
+ } ,
+ }
+ }
+\seq_map_inline:Nn
+ \c_@@_rf_opts_bool_maybe_type_specific_seq
+ {
+ \keys_define:nn { zref-clever/langsetup }
+ {
+ #1 .choice: ,
+ #1 / true .code:n =
+ {
+ \tl_if_empty:NTF \l_@@_setup_type_tl
+ {
+ \bool_gset_true:c
+ {
+ \@@_opt_varname_lang_default:enn
+ { \l_@@_setup_language_tl }
+ {#1} { bool }
+ }
+ }
+ {
+ \bool_gset_true:c
+ {
+ \@@_opt_varname_lang_type:eenn
+ { \l_@@_setup_language_tl }
+ { \l_@@_setup_type_tl }
+ {#1} { bool }
+ }
+ }
+ } ,
+ #1 / false .code:n =
+ {
+ \tl_if_empty:NTF \l_@@_setup_type_tl
+ {
+ \bool_gset_false:c
+ {
+ \@@_opt_varname_lang_default:enn
+ { \l_@@_setup_language_tl }
+ {#1} { bool }
+ }
+ }
+ {
+ \bool_gset_false:c
+ {
+ \@@_opt_varname_lang_type:eenn
+ { \l_@@_setup_language_tl }
+ { \l_@@_setup_type_tl }
+ {#1} { bool }
+ }
+ }
+ } ,
+ #1 / unset .code:n =
+ {
+ \tl_if_empty:NTF \l_@@_setup_type_tl
+ {
+ \@@_opt_bool_gunset:c
+ {
+ \@@_opt_varname_lang_default:enn
+ { \l_@@_setup_language_tl }
+ {#1} { bool }
+ }
+ }
+ {
+ \@@_opt_bool_gunset:c
+ {
+ \@@_opt_varname_lang_type:eenn
+ { \l_@@_setup_language_tl }
+ { \l_@@_setup_type_tl }
+ {#1} { bool }
+ }
+ }
+ } ,
+ #1 .default:n = true ,
+ no #1 .meta:n = { #1 = false } ,
+ no #1 .value_forbidden:n = true ,
+ }
+ }
% \end{macrocode}
%
%
-%
% \section{User interface}
%
% \subsection{\cs{zcref}}
@@ -3187,7 +3896,7 @@
% \end{macrocode}
% Set options.
% \begin{macrocode}
- \keys_set:nn { zref-clever / reference } {#3}
+ \keys_set:nn { zref-clever/reference } {#3}
% \end{macrocode}
% Store arguments values.
% \begin{macrocode}
@@ -3202,9 +3911,9 @@
% \begin{macrocode}
\@@_provide_langfile:x { \l_@@_ref_language_tl }
% \end{macrocode}
-% Process \cs{zcDeclareLanguage} options.
+% Process language settings.
% \begin{macrocode}
- \@@_process_language_options:
+ \@@_process_language_settings:
% \end{macrocode}
% Integration with \pkg{zref-check}.
% \begin{macrocode}
@@ -3232,7 +3941,10 @@
% \begin{macrocode}
\tl_if_empty:NF \l_@@_zcref_note_tl
{
- \@@_get_ref_opt_typeset:nN { notesep } \l_tmpa_tl
+ \@@_get_rf_opt_tl:nxxN { notesep }
+ { \l_@@_label_type_a_tl }
+ { \l_@@_ref_language_tl }
+ \l_tmpa_tl
\l_tmpa_tl
\l_@@_zcref_note_tl
}
@@ -3280,9 +3992,11 @@
% \begin{macrocode}
\NewDocumentCommand \zcpageref { s O { } m }
{
- \IfBooleanTF {#1}
- { \zcref*[#2, ref = page] {#3} }
- { \zcref [#2, ref = page] {#3} }
+ \group_begin:
+ \IfBooleanT {#1}
+ { \bool_set_false:N \l_@@_hyperlink_bool }
+ \zcref [#2, ref = page] {#3}
+ \group_end:
}
% \end{macrocode}
% \end{macro}
@@ -3370,7 +4084,7 @@
% Store label types sequence.
% \begin{macrocode}
\seq_clear:N \l_@@_label_types_seq
- \tl_if_eq:NnF \l_@@_ref_property_tl { page }
+ \tl_if_eq:NnF \l_@@_ref_propserty_tl { page }
{
\seq_map_function:NN \l_@@_zcref_labels_seq
\@@_label_type_put_new_right:n
@@ -3432,7 +4146,7 @@
\cs_new_protected:Npn \@@_label_type_put_new_right:n #1
{
\@@_extract_default:Nnnn
- \l_@@_label_type_a_tl {#1} { zc@type } { \c_empty_tl }
+ \l_@@_label_type_a_tl {#1} { zc@type } { }
\seq_if_in:NVF \l_@@_label_types_seq
\l_@@_label_type_a_tl
{
@@ -3480,15 +4194,15 @@
\cs_new_protected:Npn \@@_sort_default_same_type:nn #1#2
{
\@@_extract_default:Nnnn \l_@@_label_enclval_a_tl
- {#1} { zc@enclval } { \c_empty_tl }
+ {#1} { zc@enclval } { }
\tl_reverse:N \l_@@_label_enclval_a_tl
\@@_extract_default:Nnnn \l_@@_label_enclval_b_tl
- {#2} { zc@enclval } { \c_empty_tl }
+ {#2} { zc@enclval } { }
\tl_reverse:N \l_@@_label_enclval_b_tl
\@@_extract_default:Nnnn \l_@@_label_extdoc_a_tl
- {#1} { externaldocument } { \c_empty_tl }
+ {#1} { externaldocument } { }
\@@_extract_default:Nnnn \l_@@_label_extdoc_b_tl
- {#2} { externaldocument } { \c_empty_tl }
+ {#2} { externaldocument } { }
\bool_set_false:N \l_@@_sort_decided_bool
@@ -3819,11 +4533,13 @@
% {
% \l_@@_type_count_int ,
% \l_@@_label_count_int ,
+% \l_@@_ref_count_int ,
% }
% Auxiliary variables for \cs{@@_typeset_refs:} main counters.
% \begin{macrocode}
\int_new:N \l_@@_type_count_int
\int_new:N \l_@@_label_count_int
+\int_new:N \l_@@_ref_count_int
% \end{macrocode}
% \end{macro}
%
@@ -3852,17 +4568,19 @@
% {
% \l_@@_type_name_tl ,
% \l_@@_name_in_link_bool ,
+% \l_@@_type_name_missing_bool ,
% \l_@@_name_format_tl ,
% \l_@@_name_format_fallback_tl ,
-% \l_@@_type_name_gender_tl ,
+% \l_@@_type_name_gender_seq ,
% }
% Auxiliary variables for \cs{@@_typeset_refs:} type name handling.
% \begin{macrocode}
\tl_new:N \l_@@_type_name_tl
\bool_new:N \l_@@_name_in_link_bool
+\bool_new:N \l_@@_type_name_missing_bool
\tl_new:N \l_@@_name_format_tl
\tl_new:N \l_@@_name_format_fallback_tl
-\tl_new:N \l_@@_type_name_gender_tl
+\seq_new:N \l_@@_type_name_gender_seq
% \end{macrocode}
% \end{macro}
%
@@ -3894,15 +4612,13 @@
% \l_@@_listsep_tl ,
% \l_@@_lastsep_tl ,
% \l_@@_rangesep_tl ,
-% \l_@@_preref_tl ,
-% \l_@@_postref_tl ,
% \l_@@_namefont_tl ,
% \l_@@_reffont_tl ,
-% \l_@@_capitalize_bool ,
+% \l_@@_cap_bool ,
% \l_@@_abbrev_bool ,
% }
-% Auxiliary variables for \cs{@@_typeset_refs:} separators, pre-/postref and
-% font and other options.
+% Auxiliary variables for \cs{@@_typeset_refs:} separators, and font and
+% other options.
% \begin{macrocode}
\tl_new:N \l_@@_tpairsep_tl
\tl_new:N \l_@@_tlistsep_tl
@@ -3912,15 +4628,45 @@
\tl_new:N \l_@@_listsep_tl
\tl_new:N \l_@@_lastsep_tl
\tl_new:N \l_@@_rangesep_tl
-\tl_new:N \l_@@_preref_tl
-\tl_new:N \l_@@_postref_tl
\tl_new:N \l_@@_namefont_tl
\tl_new:N \l_@@_reffont_tl
-\bool_new:N \l_@@_capitalize_bool
+\bool_new:N \l_@@_cap_bool
\bool_new:N \l_@@_abbrev_bool
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}
+% {
+% \l_@@_refbounds_first_seq ,
+% \l_@@_refbounds_first_sg_seq ,
+% \l_@@_refbounds_first_pb_seq ,
+% \l_@@_refbounds_first_rb_seq ,
+% \l_@@_refbounds_mid_seq ,
+% \l_@@_refbounds_mid_rb_seq ,
+% \l_@@_refbounds_mid_re_seq ,
+% \l_@@_refbounds_last_seq ,
+% \l_@@_refbounds_last_pe_seq ,
+% \l_@@_refbounds_last_re_seq ,
+% \l_@@_type_first_refbounds_seq ,
+% \l_@@_type_first_refbounds_set_bool ,
+% }
+% Auxiliary variables for \cs{@@_typeset_refs:}: advanced reference format
+% options.
+% \begin{macrocode}
+\seq_new:N \l_@@_refbounds_first_seq
+\seq_new:N \l_@@_refbounds_first_sg_seq
+\seq_new:N \l_@@_refbounds_first_pb_seq
+\seq_new:N \l_@@_refbounds_first_rb_seq
+\seq_new:N \l_@@_refbounds_mid_seq
+\seq_new:N \l_@@_refbounds_mid_rb_seq
+\seq_new:N \l_@@_refbounds_mid_re_seq
+\seq_new:N \l_@@_refbounds_last_seq
+\seq_new:N \l_@@_refbounds_last_pe_seq
+\seq_new:N \l_@@_refbounds_last_re_seq
+\seq_new:N \l_@@_type_first_refbounds_seq
+\bool_new:N \l_@@_type_first_refbounds_set_bool
+% \end{macrocode}
+% \end{macro}
%
% \begin{macro}{\l_@@_verbose_testing_bool}
% Internal variable which enables extra log messaging at points of interest
@@ -3948,15 +4694,23 @@
\tl_clear:N \l_@@_range_beg_label_tl
\int_zero:N \l_@@_label_count_int
\int_zero:N \l_@@_type_count_int
+ \int_zero:N \l_@@_ref_count_int
\int_zero:N \l_@@_range_count_int
\int_zero:N \l_@@_range_same_count_int
+ \bool_set_false:N \l_@@_type_first_refbounds_set_bool
% Get type block options (not type-specific).
- \@@_get_ref_opt_typeset:nN { tpairsep }
+ \@@_get_rf_opt_tl:nxxN { tpairsep }
+ { \l_@@_label_type_a_tl }
+ { \l_@@_ref_language_tl }
\l_@@_tpairsep_tl
- \@@_get_ref_opt_typeset:nN { tlistsep }
+ \@@_get_rf_opt_tl:nxxN { tlistsep }
+ { \l_@@_label_type_a_tl }
+ { \l_@@_ref_language_tl }
\l_@@_tlistsep_tl
- \@@_get_ref_opt_typeset:nN { tlastsep }
+ \@@_get_rf_opt_tl:nxxN { tlastsep }
+ { \l_@@_label_type_a_tl }
+ { \l_@@_ref_language_tl }
\l_@@_tlastsep_tl
% Process label stack.
@@ -4039,32 +4793,86 @@
}
}
- % Get type-specific separators, pre-/postref font and other options,
- % once per type.
+ % Get possibly type-specific separators, refbounds, font and other
+ % options, once per type.
\int_compare:nNnT { \l_@@_label_count_int } = { 0 }
{
- \@@_get_ref_opt_typeset:nN { namesep }
+ \@@_get_rf_opt_tl:nxxN { namesep }
+ { \l_@@_label_type_a_tl }
+ { \l_@@_ref_language_tl }
\l_@@_namesep_tl
- \@@_get_ref_opt_typeset:nN { pairsep }
+ \@@_get_rf_opt_tl:nxxN { pairsep }
+ { \l_@@_label_type_a_tl }
+ { \l_@@_ref_language_tl }
\l_@@_pairsep_tl
- \@@_get_ref_opt_typeset:nN { listsep }
+ \@@_get_rf_opt_tl:nxxN { listsep }
+ { \l_@@_label_type_a_tl }
+ { \l_@@_ref_language_tl }
\l_@@_listsep_tl
- \@@_get_ref_opt_typeset:nN { lastsep }
+ \@@_get_rf_opt_tl:nxxN { lastsep }
+ { \l_@@_label_type_a_tl }
+ { \l_@@_ref_language_tl }
\l_@@_lastsep_tl
- \@@_get_ref_opt_typeset:nN { rangesep }
+ \@@_get_rf_opt_tl:nxxN { rangesep }
+ { \l_@@_label_type_a_tl }
+ { \l_@@_ref_language_tl }
\l_@@_rangesep_tl
- \@@_get_ref_opt_typeset:nN { preref }
- \l_@@_preref_tl
- \@@_get_ref_opt_typeset:nN { postref }
- \l_@@_postref_tl
- \@@_get_ref_opt_font:nN { namefont }
+ \@@_get_rf_opt_tl:nxxN { namefont }
+ { \l_@@_label_type_a_tl }
+ { \l_@@_ref_language_tl }
\l_@@_namefont_tl
- \@@_get_ref_opt_font:nN { reffont }
+ \@@_get_rf_opt_tl:nxxN { reffont }
+ { \l_@@_label_type_a_tl }
+ { \l_@@_ref_language_tl }
\l_@@_reffont_tl
- \@@_get_ref_opt_bool:nnN { cap } { false }
- \l_@@_capitalize_bool
- \@@_get_ref_opt_bool:nnN { abbrev } { false }
+ \@@_get_rf_opt_bool:nnxxN { cap } { false }
+ { \l_@@_label_type_a_tl }
+ { \l_@@_ref_language_tl }
+ \l_@@_cap_bool
+ \@@_get_rf_opt_bool:nnxxN { abbrev } { false }
+ { \l_@@_label_type_a_tl }
+ { \l_@@_ref_language_tl }
\l_@@_abbrev_bool
+ \@@_get_rf_opt_seq:nxxN { refbounds-first }
+ { \l_@@_label_type_a_tl }
+ { \l_@@_ref_language_tl }
+ \l_@@_refbounds_first_seq
+ \@@_get_rf_opt_seq:nxxN { refbounds-first-sg }
+ { \l_@@_label_type_a_tl }
+ { \l_@@_ref_language_tl }
+ \l_@@_refbounds_first_sg_seq
+ \@@_get_rf_opt_seq:nxxN { refbounds-first-pb }
+ { \l_@@_label_type_a_tl }
+ { \l_@@_ref_language_tl }
+ \l_@@_refbounds_first_pb_seq
+ \@@_get_rf_opt_seq:nxxN { refbounds-first-rb }
+ { \l_@@_label_type_a_tl }
+ { \l_@@_ref_language_tl }
+ \l_@@_refbounds_first_rb_seq
+ \@@_get_rf_opt_seq:nxxN { refbounds-mid }
+ { \l_@@_label_type_a_tl }
+ { \l_@@_ref_language_tl }
+ \l_@@_refbounds_mid_seq
+ \@@_get_rf_opt_seq:nxxN { refbounds-mid-rb }
+ { \l_@@_label_type_a_tl }
+ { \l_@@_ref_language_tl }
+ \l_@@_refbounds_mid_rb_seq
+ \@@_get_rf_opt_seq:nxxN { refbounds-mid-re }
+ { \l_@@_label_type_a_tl }
+ { \l_@@_ref_language_tl }
+ \l_@@_refbounds_mid_re_seq
+ \@@_get_rf_opt_seq:nxxN { refbounds-last }
+ { \l_@@_label_type_a_tl }
+ { \l_@@_ref_language_tl }
+ \l_@@_refbounds_last_seq
+ \@@_get_rf_opt_seq:nxxN { refbounds-last-pe }
+ { \l_@@_label_type_a_tl }
+ { \l_@@_ref_language_tl }
+ \l_@@_refbounds_last_pe_seq
+ \@@_get_rf_opt_seq:nxxN { refbounds-last-re }
+ { \l_@@_label_type_a_tl }
+ { \l_@@_ref_language_tl }
+ \l_@@_refbounds_last_re_seq
}
% Here we send this to a couple of auxiliary functions.
@@ -4109,19 +4917,31 @@
\l_@@_label_a_tl
\tl_set:NV \l_@@_type_first_label_type_tl
\l_@@_label_type_a_tl
+ \seq_set_eq:NN \l_@@_type_first_refbounds_seq
+ \l_@@_refbounds_first_sg_seq
+ \bool_set_true:N \l_@@_type_first_refbounds_set_bool
}
% The last is the second: we have a pair (if not repeated).
% Test: 'zc-typeset01.lvt': "Last of type: pair"
{ 1 }
{
- \int_compare:nNnF { \l_@@_range_same_count_int } = { 1 }
+ \int_compare:nNnTF { \l_@@_range_same_count_int } = { 1 }
+ {
+ \seq_set_eq:NN \l_@@_type_first_refbounds_seq
+ \l_@@_refbounds_first_sg_seq
+ \bool_set_true:N \l_@@_type_first_refbounds_set_bool
+ }
{
\tl_put_right:Nx \l_@@_typeset_queue_curr_tl
{
\exp_not:V \l_@@_pairsep_tl
- \@@_get_ref:V \l_@@_label_a_tl
+ \@@_get_ref:VN \l_@@_label_a_tl
+ \l_@@_refbounds_last_pe_seq
}
+ \seq_set_eq:NN \l_@@_type_first_refbounds_seq
+ \l_@@_refbounds_first_pb_seq
+ \bool_set_true:N \l_@@_type_first_refbounds_set_bool
}
}
}
@@ -4134,28 +4954,56 @@
% Test: 'zc-typeset01.lvt': "Last of type: not range"
{ 0 }
{
- \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
+ \int_compare:nNnTF { \l_@@_ref_count_int } < { 2 }
{
- \exp_not:V \l_@@_lastsep_tl
- \@@_get_ref:V \l_@@_label_a_tl
+ \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
+ {
+ \exp_not:V \l_@@_pairsep_tl
+ \@@_get_ref:VN \l_@@_label_a_tl
+ \l_@@_refbounds_last_pe_seq
+ }
+ }
+ {
+ \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
+ {
+ \exp_not:V \l_@@_lastsep_tl
+ \@@_get_ref:VN \l_@@_label_a_tl
+ \l_@@_refbounds_last_seq
+ }
}
}
% Last in the range is also the second in it.
% Test: 'zc-typeset01.lvt': "Last of type: pair in sequence"
{ 1 }
{
- \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
+ \int_compare:nNnTF
+ { \l_@@_range_same_count_int } = { 1 }
{
% We know `range_beg_label' is not empty, since this is the
% second element in the range, but the third or more in the
% type list.
- \exp_not:V \l_@@_listsep_tl
- \@@_get_ref:V \l_@@_range_beg_label_tl
- \int_compare:nNnF
- { \l_@@_range_same_count_int } = { 1 }
+ \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
+ {
+ \exp_not:V \l_@@_pairsep_tl
+ \@@_get_ref:VN
+ \l_@@_range_beg_label_tl
+ \l_@@_refbounds_last_pe_seq
+ }
+ \seq_set_eq:NN \l_@@_type_first_refbounds_seq
+ \l_@@_refbounds_first_pb_seq
+ \bool_set_true:N
+ \l_@@_type_first_refbounds_set_bool
+ }
+ {
+ \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
{
+ \exp_not:V \l_@@_listsep_tl
+ \@@_get_ref:VN
+ \l_@@_range_beg_label_tl
+ \l_@@_refbounds_mid_seq
\exp_not:V \l_@@_lastsep_tl
- \@@_get_ref:V \l_@@_label_a_tl
+ \@@_get_ref:VN \l_@@_label_a_tl
+ \l_@@_refbounds_last_seq
}
}
}
@@ -4173,49 +5021,117 @@
{ 0 }
{
% If `range_beg_label' is empty, it means it was also the
- % first of the type, and hence was already handled.
- \tl_if_empty:VF \l_@@_range_beg_label_tl
+ % first of the type, and hence its typesetting was already
+ % handled, and we just have to set refbounds.
+ \tl_if_empty:VTF \l_@@_range_beg_label_tl
{
- \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
+ \seq_set_eq:NN \l_@@_type_first_refbounds_seq
+ \l_@@_refbounds_first_sg_seq
+ \bool_set_true:N
+ \l_@@_type_first_refbounds_set_bool
+ }
+ {
+ \int_compare:nNnTF
+ { \l_@@_ref_count_int } < { 2 }
{
- \exp_not:V \l_@@_lastsep_tl
- \@@_get_ref:V
- \l_@@_range_beg_label_tl
+ \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
+ {
+ \exp_not:V \l_@@_pairsep_tl
+ \@@_get_ref:VN
+ \l_@@_range_beg_label_tl
+ \l_@@_refbounds_last_pe_seq
+ }
+ }
+ {
+ \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
+ {
+ \exp_not:V \l_@@_lastsep_tl
+ \@@_get_ref:VN
+ \l_@@_range_beg_label_tl
+ \l_@@_refbounds_last_seq
+ }
}
}
}
- % A `range', but with no skipped value, treat as list.
+ % A `range', but with no skipped value, treat as pair if range
+ % started with first of type, otherwise as list.
% Test: 'zc-typeset01.lvt': "Last of type: range to pair"
{ 1 }
{
- \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
+ % Ditto.
+ \tl_if_empty:VTF \l_@@_range_beg_label_tl
{
- % Ditto.
- \tl_if_empty:VF \l_@@_range_beg_label_tl
+ \seq_set_eq:NN \l_@@_type_first_refbounds_seq
+ \l_@@_refbounds_first_pb_seq
+ \bool_set_true:N
+ \l_@@_type_first_refbounds_set_bool
+ \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
+ {
+ \exp_not:V \l_@@_pairsep_tl
+ \@@_get_ref:VN \l_@@_label_a_tl
+ \l_@@_refbounds_last_pe_seq
+ }
+ }
+ {
+ \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
{
\exp_not:V \l_@@_listsep_tl
- \@@_get_ref:V
+ \@@_get_ref:VN
\l_@@_range_beg_label_tl
+ \l_@@_refbounds_mid_seq
+ }
+ \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
+ {
+ \exp_not:V \l_@@_lastsep_tl
+ \@@_get_ref:VN \l_@@_label_a_tl
+ \l_@@_refbounds_last_seq
}
- \exp_not:V \l_@@_lastsep_tl
- \@@_get_ref:V \l_@@_label_a_tl
}
}
}
{
% An actual range.
% Test: 'zc-typeset01.lvt': "Last of type: range"
- \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
+ % Ditto.
+ \tl_if_empty:VTF \l_@@_range_beg_label_tl
{
- % Ditto.
- \tl_if_empty:VF \l_@@_range_beg_label_tl
+ \seq_set_eq:NN \l_@@_type_first_refbounds_seq
+ \l_@@_refbounds_first_rb_seq
+ \bool_set_true:N
+ \l_@@_type_first_refbounds_set_bool
+ }
+ {
+ \int_compare:nNnTF
+ { \l_@@_ref_count_int } < { 2 }
{
- \exp_not:V \l_@@_lastsep_tl
- \@@_get_ref:V
- \l_@@_range_beg_label_tl
+ \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
+ {
+ \exp_not:V \l_@@_pairsep_tl
+ \@@_get_ref:VN
+ \l_@@_range_beg_label_tl
+ \l_@@_refbounds_mid_rb_seq
+ }
+ \seq_set_eq:NN
+ \l_@@_type_first_refbounds_seq
+ \l_@@_refbounds_first_pb_seq
+ \bool_set_true:N
+ \l_@@_type_first_refbounds_set_bool
}
+ {
+ \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
+ {
+ \exp_not:V \l_@@_lastsep_tl
+ \@@_get_ref:VN
+ \l_@@_range_beg_label_tl
+ \l_@@_refbounds_mid_rb_seq
+ }
+ }
+ }
+ \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
+ {
\exp_not:V \l_@@_rangesep_tl
- \@@_get_ref:V \l_@@_label_a_tl
+ \@@_get_ref:VN \l_@@_label_a_tl
+ \l_@@_refbounds_last_re_seq
}
}
}
@@ -4247,16 +5163,40 @@
}
% Test: 'zc-typeset01.lvt': "Last of type: option range"
% Test: 'zc-typeset01.lvt': "Last of type: option range to pair"
- \tl_set:Nx \l_@@_typeset_queue_curr_tl
+ \bool_if:NTF \l_@@_next_maybe_range_bool
+ {
+ \tl_set:Nx \l_@@_typeset_queue_curr_tl
+ {
+ \exp_not:V \l_@@_pairsep_tl
+ \@@_get_ref:VN \l_@@_label_a_tl
+ \l_@@_refbounds_last_pe_seq
+ }
+ \seq_set_eq:NN \l_@@_type_first_refbounds_seq
+ \l_@@_refbounds_first_pb_seq
+ \bool_set_true:N \l_@@_type_first_refbounds_set_bool
+ }
{
- \bool_if:NTF \l_@@_next_maybe_range_bool
- { \exp_not:V \l_@@_pairsep_tl }
- { \exp_not:V \l_@@_rangesep_tl }
- \@@_get_ref:V \l_@@_label_a_tl
+ \tl_set:Nx \l_@@_typeset_queue_curr_tl
+ {
+ \exp_not:V \l_@@_rangesep_tl
+ \@@_get_ref:VN \l_@@_label_a_tl
+ \l_@@_refbounds_last_re_seq
+ }
+ \seq_set_eq:NN \l_@@_type_first_refbounds_seq
+ \l_@@_refbounds_first_rb_seq
+ \bool_set_true:N \l_@@_type_first_refbounds_set_bool
}
}
}
+ % If none of the special cases for the first of type refbounds have been
+ % set, do it.
+ \bool_if:NF \l_@@_type_first_refbounds_set_bool
+ {
+ \seq_set_eq:NN \l_@@_type_first_refbounds_seq
+ \l_@@_refbounds_first_seq
+ }
+
% Now that the type block is finished, we can add the name and the first
% ref to the queue. Also, if "typeset" option is not "both", handle it
% here as well.
@@ -4272,7 +5212,10 @@
{
% Test: 'zc-typeset01.lvt': "Last of type: option typeset ref"
\tl_put_left:Nx \l_@@_typeset_queue_curr_tl
- { \@@_get_ref:V \l_@@_type_first_label_tl }
+ {
+ \@@_get_ref:VN \l_@@_type_first_label_tl
+ \l_@@_type_first_refbounds_seq
+ }
}
{
\bool_if:NTF \l_@@_typeset_name_bool
@@ -4372,9 +5315,11 @@
\tl_clear:N \l_@@_type_first_label_type_tl
\tl_clear:N \l_@@_range_beg_label_tl
\int_zero:N \l_@@_label_count_int
+ \int_zero:N \l_@@_ref_count_int
\int_incr:N \l_@@_type_count_int
\int_zero:N \l_@@_range_count_int
\int_zero:N \l_@@_range_same_count_int
+ \bool_set_false:N \l_@@_type_first_refbounds_set_bool
}
}
% \end{macrocode}
@@ -4409,6 +5354,7 @@
\l_@@_label_a_tl
\tl_set:NV \l_@@_type_first_label_type_tl
\l_@@_label_type_a_tl
+ \int_incr:N \l_@@_ref_count_int
% If the next label may be part of a range, we set `range_beg_label'
% to "empty" (we deal with it as the "first", and must do it there, to
@@ -4453,10 +5399,12 @@
% Test: 'zc-typeset01.lvt': "Not last of type: no range"
{ 0 }
{
+ \int_incr:N \l_@@_ref_count_int
\tl_put_right:Nx \l_@@_typeset_queue_curr_tl
{
\exp_not:V \l_@@_listsep_tl
- \@@_get_ref:V \l_@@_label_a_tl
+ \@@_get_ref:VN \l_@@_label_a_tl
+ \l_@@_refbounds_mid_seq
}
}
% Last is second in the range: if `range_same_count' is also
@@ -4466,20 +5414,33 @@
% Test: 'zc-typeset01.lvt': "Not last of type: range pair"
{ 1 }
{
- \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
+ \tl_if_empty:VTF \l_@@_range_beg_label_tl
{
- \tl_if_empty:VF \l_@@_range_beg_label_tl
+ \seq_set_eq:NN \l_@@_type_first_refbounds_seq
+ \l_@@_refbounds_first_seq
+ \bool_set_true:N
+ \l_@@_type_first_refbounds_set_bool
+ }
+ {
+ \int_incr:N \l_@@_ref_count_int
+ \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
{
\exp_not:V \l_@@_listsep_tl
- \@@_get_ref:V
+ \@@_get_ref:VN
\l_@@_range_beg_label_tl
+ \l_@@_refbounds_mid_seq
}
- \int_compare:nNnF
- { \l_@@_range_same_count_int } = { 1 }
+ }
+ \int_compare:nNnF
+ { \l_@@_range_same_count_int } = { 1 }
+ {
+ \int_incr:N \l_@@_ref_count_int
+ \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
{
\exp_not:V \l_@@_listsep_tl
- \@@_get_ref:V
+ \@@_get_ref:VN
\l_@@_label_a_tl
+ \l_@@_refbounds_mid_seq
}
}
}
@@ -4498,44 +5459,85 @@
% Test: 'zc-typeset01.lvt': "Not last of type: range to one"
{ 0 }
{
- \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
+ \tl_if_empty:VTF \l_@@_range_beg_label_tl
{
- \tl_if_empty:VF \l_@@_range_beg_label_tl
+ \seq_set_eq:NN
+ \l_@@_type_first_refbounds_seq
+ \l_@@_refbounds_first_seq
+ \bool_set_true:N
+ \l_@@_type_first_refbounds_set_bool
+ }
+ {
+ \int_incr:N \l_@@_ref_count_int
+ \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
{
\exp_not:V \l_@@_listsep_tl
- \@@_get_ref:V
+ \@@_get_ref:VN
\l_@@_range_beg_label_tl
+ \l_@@_refbounds_mid_seq
}
}
}
% Test: 'zc-typeset01.lvt': "Not last of type: range to pair"
{ 1 }
{
- \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
+ \tl_if_empty:VTF \l_@@_range_beg_label_tl
+ {
+ \seq_set_eq:NN
+ \l_@@_type_first_refbounds_seq
+ \l_@@_refbounds_first_seq
+ \bool_set_true:N
+ \l_@@_type_first_refbounds_set_bool
+ }
{
- \tl_if_empty:VF \l_@@_range_beg_label_tl
+ \int_incr:N \l_@@_ref_count_int
+ \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
{
\exp_not:V \l_@@_listsep_tl
- \@@_get_ref:V
+ \@@_get_ref:VN
\l_@@_range_beg_label_tl
+ \l_@@_refbounds_mid_seq
}
+ }
+ \int_incr:N \l_@@_ref_count_int
+ \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
+ {
\exp_not:V \l_@@_listsep_tl
- \@@_get_ref:V \l_@@_label_a_tl
+ \@@_get_ref:VN \l_@@_label_a_tl
+ \l_@@_refbounds_mid_seq
}
}
}
{
% Test: 'zc-typeset01.lvt': "Not last of type: range"
- \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
+ \tl_if_empty:VTF \l_@@_range_beg_label_tl
{
- \tl_if_empty:VF \l_@@_range_beg_label_tl
+ \seq_set_eq:NN
+ \l_@@_type_first_refbounds_seq
+ \l_@@_refbounds_first_rb_seq
+ \bool_set_true:N
+ \l_@@_type_first_refbounds_set_bool
+ }
+ {
+ \int_incr:N \l_@@_ref_count_int
+ \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
{
\exp_not:V \l_@@_listsep_tl
- \@@_get_ref:V
+ \@@_get_ref:VN
\l_@@_range_beg_label_tl
+ \l_@@_refbounds_mid_rb_seq
}
+ }
+ % For the purposes of the serial comma, and thus for the
+ % distinction of 'lastsep' and 'pairsep', a "range" counts
+ % as one. Since 'range_beg' has already been counted
+ % (here or with the first of type), we refrain from
+ % incrementing 'ref_count_int'.
+ \tl_put_right:Nx \l_@@_typeset_queue_curr_tl
+ {
\exp_not:V \l_@@_rangesep_tl
- \@@_get_ref:V \l_@@_label_a_tl
+ \@@_get_ref:VN \l_@@_label_a_tl
+ \l_@@_refbounds_mid_re_seq
}
}
}
@@ -4554,8 +5556,8 @@
%
% \subsection*{Auxiliary functions}
%
-% \cs{@@_get_ref:n} and \cs{@@_get_ref_first:} are the two functions which
-% actually build the reference blocks for typesetting. \cs{@@_get_ref:n}
+% \cs{@@_get_ref:nN} and \cs{@@_get_ref_first:} are the two functions which
+% actually build the reference blocks for typesetting. \cs{@@_get_ref:nN}
% handles all references but the first of its type, and \cs{@@_get_ref_first:}
% deals with the first reference of a type. Saying they do ``typesetting'' is
% imprecise though, they actually prepare material to be accumulated in
@@ -4566,10 +5568,10 @@
% the queue, we are using a number of variables which are transient to the
% current label, the label properties among them, but not only. Hence, these
% variables \emph{must} be expanded to their current values to be stored in
-% the queue. Indeed, \cs{@@_get_ref:n} and \cs{@@_get_ref_first:} get called,
-% as they must, in the context of \texttt{x} type expansions. But we don't
-% want to expand the values of the variables themselves, so we need to get
-% current values, but stop expansion after that. In particular, reference
+% the queue. Indeed, \cs{@@_get_ref:nN} and \cs{@@_get_ref_first:} get
+% called, as they must, in the context of \texttt{x} type expansions. But we
+% don't want to expand the values of the variables themselves, so we need to
+% get current values, but stop expansion after that. In particular, reference
% options given by the user should reach the stream for its final typesetting
% (when the queue itself gets typeset) \emph{unmodified} (``no manipulation'',
% to use the \texttt{n} signature jargon). We also need to prevent premature
@@ -4594,58 +5596,55 @@
% \end{macro}
%
%
-% \begin{macro}{\@@_get_ref:n}
+% \begin{macro}{\@@_get_ref:nN}
% Handles a complete reference block to be accumulated in the ``queue'',
-% including ``pre'' and ``pos'' elements, and hyperlinking. For use with
-% all labels, except the first of its type, which is done by
-% \cs{@@_get_ref_first:}.
+% including refbounds, and hyperlinking. For use with all labels, except
+% the first of its type, which is done by \cs{@@_get_ref_first:}.
% \begin{syntax}
-% \cs{@@_get_ref:n} \Arg{label}
+% \cs{@@_get_ref:nN} \Arg{label} \Arg{refbounds}
% \end{syntax}
% \begin{macrocode}
-\cs_new:Npn \@@_get_ref:n #1
+\cs_new:Npn \@@_get_ref:nN #1#2
{
\zref@ifrefcontainsprop {#1} { \l_@@_ref_property_tl }
{
\bool_if:nTF
{
- \l_@@_use_hyperref_bool &&
+ \l_@@_hyperlink_bool &&
! \l_@@_link_star_bool
}
{
- \bool_if:NF \l_@@_preposinlink_bool
- { \exp_not:V \l_@@_preref_tl }
+ \exp_not:N \group_begin:
+ \exp_not:V \l_@@_reffont_tl
+ \seq_item:Nn #2 { 1 }
% It's two `@s', but escaped for DocStrip.
\exp_not:N \hyper@@@@link
{ \@@_extract_url_unexp:n {#1} }
{ \@@_extract_unexp:nnn {#1} { anchor } { } }
{
- \bool_if:NT \l_@@_preposinlink_bool
- { \exp_not:V \l_@@_preref_tl }
- \exp_not:N \group_begin:
- \exp_not:V \l_@@_reffont_tl
+ \seq_item:Nn #2 { 2 }
\@@_extract_unexp:nvn {#1}
{ l_@@_ref_property_tl } { }
- \exp_not:N \group_end:
- \bool_if:NT \l_@@_preposinlink_bool
- { \exp_not:V \l_@@_postref_tl }
+ \seq_item:Nn #2 { 3 }
}
- \bool_if:NF \l_@@_preposinlink_bool
- { \exp_not:V \l_@@_postref_tl }
+ \seq_item:Nn #2 { 4 }
+ \exp_not:N \group_end:
}
{
- \exp_not:V \l_@@_preref_tl
\exp_not:N \group_begin:
\exp_not:V \l_@@_reffont_tl
+ \seq_item:Nn #2 { 1 }
+ \seq_item:Nn #2 { 2 }
\@@_extract_unexp:nvn {#1}
{ l_@@_ref_property_tl } { }
+ \seq_item:Nn #2 { 3 }
+ \seq_item:Nn #2 { 4 }
\exp_not:N \group_end:
- \exp_not:V \l_@@_postref_tl
}
}
{ \@@_ref_default: }
}
-\cs_generate_variant:Nn \@@_get_ref:n { V }
+\cs_generate_variant:Nn \@@_get_ref:nN { VN }
% \end{macrocode}
% \end{macro}
%
@@ -4671,6 +5670,7 @@
{ \l_@@_type_first_label_tl }
{ \l_@@_ref_property_tl }
{
+ \exp_not:N \group_begin:
% It's two `@s', but escaped for DocStrip.
\exp_not:N \hyper@@@@link
{
@@ -4687,18 +5687,19 @@
\exp_not:V \l_@@_type_name_tl
\exp_not:N \group_end:
\exp_not:V \l_@@_namesep_tl
- \exp_not:V \l_@@_preref_tl
\exp_not:N \group_begin:
\exp_not:V \l_@@_reffont_tl
+ \seq_item:Nn \l_@@_type_first_refbounds_seq { 1 }
+ \seq_item:Nn \l_@@_type_first_refbounds_seq { 2 }
\@@_extract_unexp:Vvn
\l_@@_type_first_label_tl
{ l_@@_ref_property_tl } { }
+ \seq_item:Nn \l_@@_type_first_refbounds_seq { 3 }
\exp_not:N \group_end:
- \bool_if:NT \l_@@_preposinlink_bool
- { \exp_not:V \l_@@_postref_tl }
}
- \bool_if:NF \l_@@_preposinlink_bool
- { \exp_not:V \l_@@_postref_tl }
+ \exp_not:V \l_@@_reffont_tl
+ \seq_item:Nn \l_@@_type_first_refbounds_seq { 4 }
+ \exp_not:N \group_end:
}
{
\exp_not:N \group_begin:
@@ -4710,7 +5711,7 @@
}
}
{
- \tl_if_empty:NTF \l_@@_type_name_tl
+ \bool_if:nTF \l_@@_type_name_missing_bool
{
\@@_name_default:
\exp_not:V \l_@@_namesep_tl
@@ -4720,7 +5721,8 @@
\exp_not:V \l_@@_namefont_tl
\exp_not:V \l_@@_type_name_tl
\exp_not:N \group_end:
- \exp_not:V \l_@@_namesep_tl
+ \tl_if_empty:NF \l_@@_type_name_tl
+ { \exp_not:V \l_@@_namesep_tl }
}
\zref@ifrefcontainsprop
{ \l_@@_type_first_label_tl }
@@ -4728,12 +5730,14 @@
{
\bool_if:nTF
{
- \l_@@_use_hyperref_bool &&
+ \l_@@_hyperlink_bool &&
! \l_@@_link_star_bool
}
{
- \bool_if:NF \l_@@_preposinlink_bool
- { \exp_not:V \l_@@_preref_tl }
+ \exp_not:N \group_begin:
+ \exp_not:V \l_@@_reffont_tl
+ \seq_item:Nn
+ \l_@@_type_first_refbounds_seq { 1 }
% It's two '@s', but escaped for DocStrip.
\exp_not:N \hyper@@@@link
{
@@ -4745,29 +5749,29 @@
\l_@@_type_first_label_tl { anchor } { }
}
{
- \bool_if:NT \l_@@_preposinlink_bool
- { \exp_not:V \l_@@_preref_tl }
- \exp_not:N \group_begin:
- \exp_not:V \l_@@_reffont_tl
+ \seq_item:Nn
+ \l_@@_type_first_refbounds_seq { 2 }
\@@_extract_unexp:Vvn
\l_@@_type_first_label_tl
{ l_@@_ref_property_tl } { }
- \exp_not:N \group_end:
- \bool_if:NT \l_@@_preposinlink_bool
- { \exp_not:V \l_@@_postref_tl }
+ \seq_item:Nn
+ \l_@@_type_first_refbounds_seq { 3 }
}
- \bool_if:NF \l_@@_preposinlink_bool
- { \exp_not:V \l_@@_postref_tl }
+ \seq_item:Nn
+ \l_@@_type_first_refbounds_seq { 4 }
+ \exp_not:N \group_end:
}
{
- \exp_not:V \l_@@_preref_tl
\exp_not:N \group_begin:
\exp_not:V \l_@@_reffont_tl
+ \seq_item:Nn \l_@@_type_first_refbounds_seq { 1 }
+ \seq_item:Nn \l_@@_type_first_refbounds_seq { 2 }
\@@_extract_unexp:Vvn
\l_@@_type_first_label_tl
{ l_@@_ref_property_tl } { }
+ \seq_item:Nn \l_@@_type_first_refbounds_seq { 3 }
+ \seq_item:Nn \l_@@_type_first_refbounds_seq { 4 }
\exp_not:N \group_end:
- \exp_not:V \l_@@_postref_tl
}
}
{ \@@_ref_default: }
@@ -4794,18 +5798,24 @@
\cs_new_protected:Npn \@@_type_name_setup:
{
\zref@ifrefundefined { \l_@@_type_first_label_tl }
- { \tl_clear:N \l_@@_type_name_tl }
+ {
+ \tl_clear:N \l_@@_type_name_tl
+ \bool_set_true:N \l_@@_type_name_missing_bool
+ }
{
\tl_if_eq:NnTF
\l_@@_type_first_label_type_tl { zc@missingtype }
- { \tl_clear:N \l_@@_type_name_tl }
+ {
+ \tl_clear:N \l_@@_type_name_tl
+ \bool_set_true:N \l_@@_type_name_missing_bool
+ }
{
% Determine whether we should use capitalization, abbreviation,
% and plural.
\bool_lazy_or:nnTF
- { \l_@@_capitalize_bool }
+ { \l_@@_cap_bool }
{
- \l_@@_capitalize_first_bool &&
+ \l_@@_capfirst_bool &&
\int_compare_p:nNn { \l_@@_type_count_int } = { 0 }
}
{ \tl_set:Nn \l_@@_name_format_tl {Name} }
@@ -4860,19 +5870,15 @@
{ \l_@@_nudge_gender_bool }
{ ! \tl_if_empty_p:N \l_@@_ref_gender_tl }
{
- \@@_get_lang_opt_type:xxnNF
- { \l_@@_ref_language_tl }
+ \@@_get_rf_opt_seq:nxxN { gender }
{ \l_@@_type_first_label_type_tl }
- { gender }
- \l_@@_type_name_gender_tl
- { \tl_clear:N \l_@@_type_name_gender_tl }
- \clist_set:NV \l_tmpa_clist
- \l_@@_type_name_gender_tl
- \clist_if_in:NVF
- \l_tmpa_clist
+ { \l_@@_ref_language_tl }
+ \l_@@_type_name_gender_seq
+ \seq_if_in:NVF
+ \l_@@_type_name_gender_seq
\l_@@_ref_gender_tl
{
- \tl_if_empty:NTF \l_@@_type_name_gender_tl
+ \seq_if_empty:NTF \l_@@_type_name_gender_seq
{
\msg_warning:nnxxx { zref-clever }
{ nudge-gender-not-declared-for-type }
@@ -4885,7 +5891,10 @@
{ nudge-gender-mismatch }
{ \l_@@_type_first_label_type_tl }
{ \l_@@_ref_gender_tl }
- { \l_@@_type_name_gender_tl }
+ {
+ \seq_use:Nn
+ \l_@@_type_name_gender_seq { ,~ }
+ }
{ \l_@@_ref_language_tl }
}
}
@@ -4894,12 +5903,13 @@
\tl_if_empty:NTF \l_@@_name_format_fallback_tl
{
- \prop_get:cVNF
+ \@@_opt_tl_get:cNF
{
- l_@@_type_
- \l_@@_type_first_label_type_tl _options_prop
+ \@@_opt_varname_type:een
+ { \l_@@_type_first_label_type_tl }
+ { \l_@@_name_format_tl }
+ { tl }
}
- \l_@@_name_format_tl
\l_@@_type_name_tl
{
\tl_if_empty:NF \l_@@_ref_decl_case_tl
@@ -4908,13 +5918,18 @@
\tl_put_left:NV \l_@@_name_format_tl
\l_@@_ref_decl_case_tl
}
- \@@_get_lang_opt_type:xxxNF
- { \l_@@_ref_language_tl }
- { \l_@@_type_first_label_type_tl }
- { \l_@@_name_format_tl }
+ \@@_opt_tl_get:cNF
+ {
+ \@@_opt_varname_lang_type:eeen
+ { \l_@@_ref_language_tl }
+ { \l_@@_type_first_label_type_tl }
+ { \l_@@_name_format_tl }
+ { tl }
+ }
\l_@@_type_name_tl
{
\tl_clear:N \l_@@_type_name_tl
+ \bool_set_true:N \l_@@_type_name_missing_bool
\msg_warning:nnxx { zref-clever } { missing-name }
{ \l_@@_name_format_tl }
{ \l_@@_type_first_label_type_tl }
@@ -4922,20 +5937,22 @@
}
}
{
- \prop_get:cVNF
+ \@@_opt_tl_get:cNF
{
- l_@@_type_
- \l_@@_type_first_label_type_tl _options_prop
+ \@@_opt_varname_type:een
+ { \l_@@_type_first_label_type_tl }
+ { \l_@@_name_format_tl }
+ { tl }
}
- \l_@@_name_format_tl
\l_@@_type_name_tl
{
- \prop_get:cVNF
+ \@@_opt_tl_get:cNF
{
- l_@@_type_
- \l_@@_type_first_label_type_tl _options_prop
+ \@@_opt_varname_type:een
+ { \l_@@_type_first_label_type_tl }
+ { \l_@@_name_format_fallback_tl }
+ { tl }
}
- \l_@@_name_format_fallback_tl
\l_@@_type_name_tl
{
\tl_if_empty:NF \l_@@_ref_decl_case_tl
@@ -4950,19 +5967,29 @@
\l_@@_name_format_fallback_tl
\l_@@_ref_decl_case_tl
}
- \@@_get_lang_opt_type:xxxNF
- { \l_@@_ref_language_tl }
- { \l_@@_type_first_label_type_tl }
- { \l_@@_name_format_tl }
- \l_@@_type_name_tl
+ \@@_opt_tl_get:cNF
{
- \@@_get_lang_opt_type:xxxNF
+ \@@_opt_varname_lang_type:eeen
{ \l_@@_ref_language_tl }
{ \l_@@_type_first_label_type_tl }
- { \l_@@_name_format_fallback_tl }
+ { \l_@@_name_format_tl }
+ { tl }
+ }
+ \l_@@_type_name_tl
+ {
+ \@@_opt_tl_get:cNF
+ {
+ \@@_opt_varname_lang_type:eeen
+ { \l_@@_ref_language_tl }
+ { \l_@@_type_first_label_type_tl }
+ { \l_@@_name_format_fallback_tl }
+ { tl }
+ }
\l_@@_type_name_tl
{
\tl_clear:N \l_@@_type_name_tl
+ \bool_set_true:N
+ \l_@@_type_name_missing_bool
\msg_warning:nnxx { zref-clever }
{ missing-name }
{ \l_@@_name_format_tl }
@@ -4978,7 +6005,7 @@
% Signal whether the type name is to be included in the hyperlink or not.
\bool_lazy_any:nTF
{
- { ! \l_@@_use_hyperref_bool }
+ { ! \l_@@_hyperlink_bool }
{ \l_@@_link_star_bool }
{ \tl_if_empty_p:N \l_@@_type_name_tl }
{ \str_if_eq_p:Vn \l_@@_nameinlink_str { false } }
@@ -5017,11 +6044,11 @@
\cs_new:Npn \@@_extract_url_unexp:n #1
{
\zref@ifpropundefined { urluse }
- { \@@_extract_unexp:nnn {#1} { url } { \c_empty_tl } }
+ { \@@_extract_unexp:nnn {#1} { url } { } }
{
\zref@ifrefcontainsprop {#1} { urluse }
- { \@@_extract_unexp:nnn {#1} { urluse } { \c_empty_tl } }
- { \@@_extract_unexp:nnn {#1} { url } { \c_empty_tl } }
+ { \@@_extract_unexp:nnn {#1} { urluse } { } }
+ { \@@_extract_unexp:nnn {#1} { url } { } }
}
}
\cs_generate_variant:Nn \@@_extract_url_unexp:n { V }
@@ -5045,9 +6072,9 @@
\cs_new_protected:Npn \@@_labels_in_sequence:nn #1#2
{
\@@_extract_default:Nnnn \l_@@_label_extdoc_a_tl
- {#1} { externaldocument } { \c_empty_tl }
+ {#1} { externaldocument } { }
\@@_extract_default:Nnnn \l_@@_label_extdoc_b_tl
- {#2} { externaldocument } { \c_empty_tl }
+ {#2} { externaldocument } { }
\tl_if_eq:NNT
\l_@@_label_extdoc_a_tl
@@ -5124,187 +6151,142 @@
%
%
% Finally, some functions for retrieving reference options values, according
-% to the relevant precedence rules. They both receive an \meta{option} as
-% argument, and store the retrieved value in an appropriate. Though these are
-% mostly general functions (for a change\dots{}), they are not completely so,
-% they rely on the current state of \cs{l_@@_label_type_a_tl}, as set during
-% the processing of the label stack. This could be easily generalized, of
-% course, but I don't think it is worth it, \cs{l_@@_label_type_a_tl} is
-% indeed what we want in all practical cases. The difference between each of
-% these functions is the kind of option each should be used for.
-% \cs{@@_get_ref_opt_typeset:nN} is meant for the general options, and
-% attempts to find values for them in all precedence levels (four plus
-% ``fallback''). \cs{@@_get_ref_opt_font:nN} is intended for ``font''
-% options, which cannot be ``language-specific'', thus for these we just
-% search general options and type options. \cs{@@_get_ref_opt_bool:nN} is
-% intended for boolean options.
-%
-% \begin{macro}{\@@_get_ref_opt_typeset:nN}
+% to the relevant precedence rules. They receive an \meta{option} as
+% argument, and store the retrieved value in an appropriate \meta{variable}.
+% The difference between each of these functions is the data type of the
+% option each should be used for.
+%
+%
+% \begin{macro}{\@@_get_rf_opt_tl:nnnN}
% \begin{syntax}
-% \cs{@@_get_ref_opt_typeset:nN} \Arg{option} \Arg{tl variable}
+% \cs{@@_get_rf_opt_tl:nnnN} \Arg{option}
+% ~~\Arg{ref type} \Arg{language} \Arg{tl variable}
% \end{syntax}
% \begin{macrocode}
-\cs_new_protected:Npn \@@_get_ref_opt_typeset:nN #1#2
+\cs_new_protected:Npn \@@_get_rf_opt_tl:nnnN #1#2#3#4
{
% First attempt: general options.
- \prop_get:NnNF \l_@@_ref_options_prop {#1} #2
+ \@@_opt_tl_get:cNF
+ { \@@_opt_varname_general:nn {#1} { tl } }
+ #4
{
% If not found, try type specific options.
- \bool_lazy_and:nnTF
- {
- \prop_if_exist_p:c
- {
- l_@@_type_
- \l_@@_label_type_a_tl _options_prop
- }
- }
- {
- \prop_if_in_p:cn
- {
- l_@@_type_
- \l_@@_label_type_a_tl _options_prop
- }
- {#1}
- }
- {
- \prop_get:cnN
- {
- l_@@_type_
- \l_@@_label_type_a_tl _options_prop
- }
- {#1} #2
- }
+ \@@_opt_tl_get:cNF
+ { \@@_opt_varname_type:nnn {#2} {#1} { tl } }
+ #4
{
% If not found, try type- and language-specific.
- \@@_get_lang_opt_type:xxnNF
- { \l_@@_ref_language_tl }
- { \l_@@_label_type_a_tl }
- {#1} #2
+ \@@_opt_tl_get:cNF
+ { \@@_opt_varname_lang_type:nnnn {#3} {#2} {#1} { tl } }
+ #4
{
% If not found, try language-specific default.
- \@@_get_lang_opt_default:xnNF
- { \l_@@_ref_language_tl }
- {#1} #2
+ \@@_opt_tl_get:cNF
+ { \@@_opt_varname_lang_default:nnn {#3} {#1} { tl } }
+ #4
{
% If not found, try fallback.
- \@@_get_fallback_unknown_lang_opt:nNF {#1} #2
- {
- \tl_clear:N #2
- \msg_warning:nnn { zref-clever }
- { missing-string } {#1}
- }
+ \@@_opt_tl_get:cNF
+ { \@@_opt_varname_fallback:nn {#1} { tl } }
+ #4
+ { \tl_clear:N #4 }
}
}
}
}
}
+\cs_generate_variant:Nn \@@_get_rf_opt_tl:nnnN { nxxN }
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\@@_get_ref_opt_font:nN}
+%
+% \begin{macro}{\@@_get_rf_opt_seq:nnnN}
% \begin{syntax}
-% \cs{@@_get_ref_opt_font:nN} \Arg{option} \Arg{tl variable}
+% \cs{@@_get_rf_opt_seq:nnnN} \Arg{option}
+% ~~\Arg{ref type} \Arg{language} \Arg{seq variable}
% \end{syntax}
% \begin{macrocode}
-\cs_new_protected:Npn \@@_get_ref_opt_font:nN #1#2
+\cs_new_protected:Npn \@@_get_rf_opt_seq:nnnN #1#2#3#4
{
% First attempt: general options.
- \prop_get:NnNF \l_@@_ref_options_prop {#1} #2
+ \@@_opt_seq_get:cNF
+ { \@@_opt_varname_general:nn {#1} { seq } }
+ #4
{
% If not found, try type specific options.
- \bool_if:nTF
- {
- \prop_if_exist_p:c
- {
- l_@@_type_
- \l_@@_label_type_a_tl _options_prop
- }
- }
+ \@@_opt_seq_get:cNF
+ { \@@_opt_varname_type:nnn {#2} {#1} { seq } }
+ #4
{
- \prop_get:cnNF
+ % If not found, try type- and language-specific.
+ \@@_opt_seq_get:cNF
+ { \@@_opt_varname_lang_type:nnnn {#3} {#2} {#1} { seq } }
+ #4
{
- l_@@_type_
- \l_@@_label_type_a_tl _options_prop
+ % If not found, try language-specific default.
+ \@@_opt_seq_get:cNF
+ { \@@_opt_varname_lang_default:nnn {#3} {#1} { seq } }
+ #4
+ {
+ % If not found, try fallback.
+ \@@_opt_seq_get:cNF
+ { \@@_opt_varname_fallback:nn {#1} { seq } }
+ #4
+ { \seq_clear:N #4 }
+ }
}
- {#1} #2
- { \tl_clear:N #2 }
}
- { \tl_clear:N #2 }
}
}
+\cs_generate_variant:Nn \@@_get_rf_opt_seq:nnnN { nxxN }
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\@@_get_ref_opt_bool:nnN}
+% \begin{macro}{\@@_get_rf_opt_bool:nnnnN}
% \begin{syntax}
-% \cs{@@_get_ref_opt_bool:nN} \Arg{option}
-% ~~\Arg{default} \Arg{bool variable}
+% \cs{@@_get_rf_opt_bool:nN} \Arg{option} \Arg{default}
+% ~~\Arg{ref type} \Arg{language} \Arg{bool variable}
% \end{syntax}
% \begin{macrocode}
-\cs_new_protected:Npn \@@_get_ref_opt_bool:nnN #1#2#3
+\cs_new_protected:Npn \@@_get_rf_opt_bool:nnnnN #1#2#3#4#5
{
% First attempt: general options.
- \prop_get:NnNF \l_@@_ref_options_prop {#1} \l_tmpa_tl
+ \@@_opt_bool_get:cNF
+ { \@@_opt_varname_general:nn {#1} { bool } }
+ #5
{
% If not found, try type specific options.
- \bool_lazy_and:nnTF
- {
- \prop_if_exist_p:c
- {
- l_@@_type_
- \l_@@_label_type_a_tl _options_prop
- }
- }
- {
- \prop_if_in_p:cn
- {
- l_@@_type_
- \l_@@_label_type_a_tl _options_prop
- }
- {#1}
- }
- {
- \prop_get:cnN
- {
- l_@@_type_
- \l_@@_label_type_a_tl _options_prop
- }
- {#1} \l_tmpa_tl
- }
+ \@@_opt_bool_get:cNF
+ { \@@_opt_varname_type:nnn {#3} {#1} { bool } }
+ #5
{
% If not found, try type- and language-specific.
- \@@_get_lang_opt_type:xxnNF
- { \l_@@_ref_language_tl }
- { \l_@@_label_type_a_tl }
- {#1} \l_tmpa_tl
+ \@@_opt_bool_get:cNF
+ { \@@_opt_varname_lang_type:nnnn {#4} {#3} {#1} { bool } }
+ #5
{
% If not found, try language-specific default.
- \@@_get_lang_opt_default:xnNF
- { \l_@@_ref_language_tl }
- {#1} \l_tmpa_tl
+ \@@_opt_bool_get:cNF
+ { \@@_opt_varname_lang_default:nnn {#4} {#1} { bool } }
+ #5
{
- % If not found, use default argument.
- \bool_lazy_or:nnTF
- { \str_if_eq_p:nn {#2} { true } }
- { \str_if_eq_p:nn {#2} { false } }
- { \tl_set:Nn \l_tmpa_tl {#2} }
- {
- % And, if even that fails, presume false.
- \tl_set:Nn \l_tmpa_tl { false }
- }
+ % If not found, try fallback.
+ \@@_opt_bool_get:cNF
+ { \@@_opt_varname_fallback:nn {#1} { bool } }
+ #5
+ { \use:c { bool_set_ #2 :N } #5 }
}
}
}
}
- % Having retrieved the option value, set the boolean. At this point, we
- % *know* '\l_tmpa_tl' is either 'true' or 'false'.
- \use:c { bool_set_ \l_tmpa_tl :N } #3
}
+\cs_generate_variant:Nn \@@_get_rf_opt_bool:nnnnN { nnxxN }
% \end{macrocode}
% \end{macro}
%
%
+%
% \section{Compatibility}
%
% This section is meant to aggregate any ``special handling'' needed for
@@ -5796,11 +6778,7 @@
% references \cs{textup}.
% \begin{macrocode}
\zcRefTypeSetup { equation }
- {
- reffont = \upshape ,
- preref = {\textup{(}} ,
- postref = {\textup{)}} ,
- }
+ { reffont = \upshape }
\msg_info:nnn { zref-clever } { compat-package } { amsmath }
}
}
@@ -6091,7 +7069,7 @@
%
% \section{Language files}
%
-% Initial values for the English, German, French, Portuguese, and Spanish,
+% Initial values for the English, German, French, Portuguese, and Spanish
% language files have been provided by the author. Translations available for
% document elements' names in other packages have been an useful reference for
% the purpose, namely: \pkg{babel}, \pkg{cleveref}, \pkg{translator}, and
@@ -6232,8 +7210,8 @@ type = equation ,
name-sg-ab = eq. ,
Name-pl-ab = Eqs. ,
name-pl-ab = eqs. ,
- preref = {(} ,
- postref = {)} ,
+ refbounds-first-sg = {,(,),} ,
+ refbounds = {(,,,)} ,
type = theorem ,
Name-sg = Theorem ,
@@ -6586,8 +7564,8 @@ type = equation ,
case = G ,
Name-sg = Gleichung ,
Name-pl = Gleichungen ,
- preref = {(} ,
- postref = {)} ,
+ refbounds-first-sg = {,(,),} ,
+ refbounds = {(,,,)} ,
type = theorem ,
gender = n ,
@@ -6931,8 +7909,8 @@ type = equation ,
name-sg = équation ,
Name-pl = Équations ,
name-pl = équations ,
- preref = {(} ,
- postref = {)} ,
+ refbounds-first-sg = {,(,),} ,
+ refbounds = {(,,,)} ,
type = theorem ,
gender = m ,
@@ -7180,8 +8158,8 @@ type = equation ,
name-sg-ab = eq. ,
Name-pl-ab = Eqs. ,
name-pl-ab = eqs. ,
- preref = {(} ,
- postref = {)} ,
+ refbounds-first-sg = {,(,),} ,
+ refbounds = {(,,,)} ,
type = theorem ,
gender = m ,
@@ -7411,8 +8389,8 @@ type = equation ,
name-sg = ecuación ,
Name-pl = Ecuaciones ,
name-pl = ecuaciones ,
- preref = {(} ,
- postref = {)} ,
+ refbounds-first-sg = {,(,),} ,
+ refbounds = {(,,,)} ,
type = theorem ,
gender = m ,
@@ -7648,8 +8626,8 @@ type = equation ,
name-sg-ab = vgl. ,
Name-pl-ab = Vgl.'s ,
name-pl-ab = vgl.'s ,
- preref = {(} ,
- postref = {)} ,
+ refbounds-first-sg = {,(,),} ,
+ refbounds = {(,,,)} ,
type = theorem ,
gender = f ,
@@ -7657,12 +8635,11 @@ type = theorem ,
name-sg = stelling ,
Name-pl = Stellingen ,
name-pl = stellingen ,
+
% \end{macrocode}
-%
% 2022-01-09, \texttt{niluxv}: An alternative plural is ``lemmata''. That is
% also a correct English plural for lemma, but the English language file
% chooses ``lemmas''. For consistency we therefore choose ``lemma's''.
-%
% \begin{macrocode}
type = lemma ,
gender = n ,
@@ -7726,11 +8703,10 @@ type = algorithm ,
name-sg = algoritme ,
Name-pl = Algoritmes ,
name-pl = algoritmes ,
+
% \end{macrocode}
-%
% 2022-01-09, \texttt{niluxv}: EN-NL Van Dale translates listing as (3)
% ``uitdraai van computerprogramma'', ``listing''.
-%
% \begin{macrocode}
type = listing ,
gender = m ,
diff --git a/macros/latex/contrib/zref-clever/zref-clever.pdf b/macros/latex/contrib/zref-clever/zref-clever.pdf
index 1c64f52147..99292b0570 100644
--- a/macros/latex/contrib/zref-clever/zref-clever.pdf
+++ b/macros/latex/contrib/zref-clever/zref-clever.pdf
Binary files differ
diff --git a/macros/latex/contrib/zref-clever/zref-clever.tex b/macros/latex/contrib/zref-clever/zref-clever.tex
index a4e3ab8638..64d5028f62 100644
--- a/macros/latex/contrib/zref-clever/zref-clever.tex
+++ b/macros/latex/contrib/zref-clever/zref-clever.tex
@@ -591,13 +591,6 @@ the second reference none of them will. The package's default is
\texttt{nameinlink=tsingle}, and the option given without a value is
equivalent to \texttt{nameinlink=true}.
-\DescribeOption{preposinlink} %
-The \opt{preposinlink} option controls whether the \opt{preref} and
-\opt{postref} reference format options (see \zcref{sec:reference-format}) are
-included in the reference hyperlink or not. It is a boolean option. The
-package's default is \texttt{preposinlink=false}, and the option given without
-a value is equivalent to \texttt{preposinlink=true}.
-
\DescribeOption{lang} %
The \opt{lang} option controls the language used by \cs{zcref} when looking
for language-specific reference format options (see
@@ -932,8 +925,7 @@ more detail soon, and lists the scopes in which each is available.
type-specific) & listsep & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
& lastsep & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
& rangesep & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
- & preref & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
- & postref & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
+ & refbounds & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
\addlinespace
Typesetting & Name-sg & & $\bullet$ & $\bullet$ & \\
@@ -946,8 +938,8 @@ more detail soon, and lists the scopes in which each is available.
& name-pl-ab & & $\bullet$ & $\bullet$ & \\
\addlinespace
- Font & namefont & $\bullet$ & $\bullet$ & & \\
- & reffont & $\bullet$ & $\bullet$ & & \\
+ Font & namefont & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
+ & reffont & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
\addlinespace
Other & cap & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
@@ -967,15 +959,28 @@ that which a standard \LaTeX{} \cs{ref} would typeset. A \pkg{zref-clever}
\begin{refformat}
\item \reffmt{ref-block} \(\equiv\)
-\item \reffmt{preref} \reffmt{ref} \reffmt{postref}
+\item \reffmt{preref*}
+ \raisebox{-\baselineskip}{\makebox[0pt]{\^{}}}%
+ \raisebox{-1.2\baselineskip}{\makebox[0pt]{\footnotesize{}hyperlink start}}
+ \reffmt{preref} \reffmt{ref} \reffmt{postref}
+ \raisebox{-\baselineskip}{\makebox[0pt]{\^{}}}%
+ \raisebox{-1.2\baselineskip}{\makebox[0pt]{\footnotesize{}hyperlink end}}
+ \reffmt{postref*}
\end{refformat}
-A \texttt{ref-block} is built for \emph{each} label given as argument to
-\cs{zcref}. When the \meta{labels} argument is comprised of multiple labels,
-each ``reference type group'', or \texttt{type-group} is potentially made from
-the combination of single reference blocks, ``reference block pairs'',
-``reference block lists'', or ``reference block ranges'', where each is
-respectively built as:
+Where the \opt{refbounds} option, which receives as value a comma separated
+list of four items in the form \texttt{\{preref*,preref,postref,postref*\}},
+sets the surrounding elements to \texttt{ref}.\footnote{As usual, if each of
+ the items contains start or end spaces, or commas anywhere, they must be
+ protected by a pair of braces. However, care is taken that empty items
+ don't need such protection. So you can set, for example, something like
+ \texttt{refbounds=\{(,{},{},)\}} to get parentheses around your references,
+ outside the hyperlink.} A \texttt{ref-block} is built for \emph{each} label
+given as argument to \cs{zcref}. When the \meta{labels} argument is comprised
+of multiple labels, each ``reference type group'', or \texttt{type-group} is
+potentially made from the combination of single reference blocks, ``reference
+block pairs'', ``reference block lists'', or ``reference block ranges'', where
+each is respectively built as:
\begin{refformat}
\item \reffmt{type-group} is a combination of:
@@ -1061,8 +1066,7 @@ mentioned above. These ``last resort'' option values are required by
language that \pkg{zref-clever} does not know and has no language file for, it
cannot guess what language that is, and thus has to provide some reasonable
``language agnostic'' default, at least for the options for which this makes
-sense (all the ``typesetting'' options, except for the \texttt{[Nn]ame-}
-ones). Users do not need to have access to this scope, since they know the
+sense. Users do not need to have access to this scope, since they know the
language of their document, or know the values they want for those options,
and can set them as general options, type-specific options, or language
options through the user interface provided for the purpose. But the
@@ -1081,11 +1085,90 @@ pairsep = {,`\textvisiblespace{}'} ,
listsep = {,`\textvisiblespace{}'} ,
lastsep = {,`\textvisiblespace{}'} ,
rangesep = {\textendash} ,
-preref = {} ,
-postref = {} ,
\end{zcexample}
+\subsection{Advanced reference formatting}
+
+The reference format options discussed above and presented in
+\zcref{tab:reference-format} should suffice for most needs. However, if more
+fine-grained control of the reference format is needed, this can be achieved
+through a more detailed specification of \opt{refbounds} for the different
+cases in which they may occur when a reference is processed. The options
+available for this purpose are presented in
+\zcref{tab:advanced-reference-format}.
+
+\begin{table}
+ \centering
+ \DeleteShortVerb \|
+ \begin{tabular}{l>{\ttfamily}lcccc}
+ \toprule
+ & & General & Type & \multicolumn{2}{c}{Language} \\
+ \cmidrule(lr){5-6}
+ & & & & Type & Default \\
+ & & (i) & (ii) & (iii) & (iv) \\
+
+ \midrule
+ Base & refbounds-first & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
+ options & refbounds-first-sg & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
+ & refbounds-first-pb & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
+ & refbounds-first-rb & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
+ & refbounds-mid & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
+ & refbounds-mid-rb & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
+ & refbounds-mid-re & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
+ & refbounds-last & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
+ & refbounds-last-pe & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
+ & refbounds-last-re & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
+
+ \addlinespace
+ Derived & +refbounds-first & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
+ options & +refbounds-mid & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
+ (groups) & +refbounds-last & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
+ & +refbounds-rb & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
+ & +refbounds-re & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
+ & +refbounds & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
+ \bottomrule
+ \end{tabular}
+ \caption{Advanced reference format options and their scopes}
+ \zlabel{tab:advanced-reference-format}
+\end{table}
+
+The ``base'' options are the actually operative ones, while the ``derived''
+options are convenience aliases to set multiple base options in one go. In
+the naming scheme of these options, as is easy to presume, ``\texttt{first}''
+refers to the first reference of a type-block, ``\texttt{mid}'' to the middle
+ones, and ``\texttt{last}'' to the last reference of the type-block. Less
+obviously, but hopefully still mnemonic enough, ``\texttt{sg}'' stands for
+``single'', ``\texttt{pb}'' and ``\texttt{pe}'' for ``pair begin'' and ``pair
+end'', and finally ``\texttt{rb}'' and ``\texttt{re}'' for ``range begin'' and
+``range end''. Each of them which receives as value a comma separated list of
+four items in the form \texttt{\{preref*,preref,postref,postref*\}}, just like
+\opt{refbounds}.
+
+The base options are mutually exclusive, which means, for example, that it is
+not sufficient to set \opt{refbounds-first} to define the behavior of all
+first references of a type block. \opt{refbounds-first} is the value used for
+the first reference when not single, not the beginning of a pair, and not the
+beginning of a range. Setting a group of them is the purpose of the derived
+options. Each of these sets all options under it. Some examples.
+\opt{+refbounds-first} sets \opt{refbounds-first}, \opt{refbounds-first-sg},
+\opt{refbounds-first-pb}, and \opt{refbounds-first-rg}. In turn,
+\opt{+refbounds-first-rb} sets \opt{refbounds-first-rb} and
+\opt{refbounds-first-rb}. And quite conveniently, \opt{+refbounds} sets
+\opt{+refbounds-first}, \opt{+refbounds-mid}, and \opt{+refbounds-last}, it is
+hence sufficient to set it to define the behavior of what is typeset around
+all references for the whole type-block. As you probably guessed by now, the
+\opt{refbounds} option presented in \zcref{tab:reference-format} is an alias
+of \opt{+refbounds}.
+
+Given that base and derived options are actually setting the same group of
+underlying options (the base ones), the order in which they are given is
+relevant: the last one prevails. The idea here is to use first the derived
+options to set some general defaults, and then change one or another base
+option to handle exceptions as needed. Of course, how best to use them
+depends on the case.
+
+
\section{Internationalization}
\zlabel{sec:internationalization}
@@ -1111,7 +1194,7 @@ the \emph{current} or \emph{main} language of the document, as defined by
will note that \zcref{tab:languages-and-aliases} contains only \pkg{babel}
language names.} Users can also set \opt{lang} to a specific language
directly, in which case \pkg{babel} and \pkg{polyglossia} are disregarded.
-\pkg{zref-clever} provides a number of built-in ``language file'', for the
+\pkg{zref-clever} provides a number of built-in ``language files'', for the
languages listed in \zcref{tab:languages-and-aliases}, which also includes the
declared aliases to those languages.
@@ -2190,11 +2273,13 @@ were generously provided by (in chronological order):
% 2021-08-20: https://tex.stackexchange.com/q/611424/105447 (comments)
% 2021-09-06: https://github.com/ho-tex/zref/issues/13
% 2021-10-26: https://github.com/latex3/latex2e/issues/687
+ % 2022-01-12: https://chat.stackexchange.com/transcript/message/60129233#60129233
Phelype Oleinik,
% 2021-08-20: https://tex.stackexchange.com/q/611370 (comments)
% 2021-09-09: https://tex.stackexchange.com/a/614704
% 2021-10-06: https://tex.stackexchange.com/a/617998
% 2021-10-21: https://github.com/latex3/latex2e/pull/699
+ % 2022-01-12: https://tex.stackexchange.com/questions/629946/#comment1571118_629946
Enrico Gregorio,
% 2021-08-20: https://tex.stackexchange.com/a/611385
% 2021-08-20: https://tex.stackexchange.com/q/611370/#comment1529282_611385
@@ -2205,6 +2290,8 @@ were generously provided by (in chronological order):
% 2021-09-09: https://github.com/latex3/latex3/pull/988
David Carlisle,
% 2021-10-10: https://tex.stackexchange.com/questions/618434/#comment1544401_618439
+ % 2022-01-12: https://chat.stackexchange.com/transcript/message/60129096#60129096
+ % and following discussion.
Frank Mittelbach,
% 2021-10-14: https://github.com/latex3/latex2e/issues/687
`\texttt{samcarter}',
diff --git a/macros/optex/README b/macros/optex/README
index ac77358913..bd8d5824e8 100644
--- a/macros/optex/README
+++ b/macros/optex/README
@@ -19,6 +19,10 @@ doc/ ... PDF version of the OpTeX documentation and sources.
History:
+<1.05> Jan. 2022:
+ \_par used internally instead \par if \partokenname is available.
+ Extended format \ref[label]{text} and \pgref[label]{text} introduced.
+ Fixed a few bugs.
<1.04> Aug. 2021:
Color handling reimplemented, LuaTeX's attributes are used now.
Loading Unicode math fonts reimplemented, (s)script size given by font.
diff --git a/macros/optex/base/basic-macros.opm b/macros/optex/base/basic-macros.opm
index 912be5e036..2e8c98d6e3 100644
--- a/macros/optex/base/basic-macros.opm
+++ b/macros/optex/base/basic-macros.opm
@@ -106,7 +106,7 @@
\_cod ------------------------------
\_def\_loggingall{\_tracingcommands=3 \_tracingstats=2 \_tracingpages=1
- \_tracingoutput=1 \_tracinglostchars=1 \_tracingmacros=3
+ \_tracingoutput=1 \_tracingmacros=3 % \_tracinglostchars=2 is already set
\_tracingparagraphs=1 \_tracingrestores=1 \_tracingscantokens=1
\_tracingifs=1 \_tracinggroups=1 \_tracingassigns=1 }
\_def\_tracingall{\_tracingonline=1 \_loggingall}
diff --git a/macros/optex/base/doc.opm b/macros/optex/base/doc.opm
index 34a00dc1e9..cb2b976e7c 100644
--- a/macros/optex/base/doc.opm
+++ b/macros/optex/base/doc.opm
@@ -134,7 +134,7 @@
\_ifx\_printfilename\_relax \_penalty \_ttpenalty \_fi \_vskip-4pt
\_noindent\_rlap{\Yellow \_vrule height8pt depth5pt width\_hsize}%
\_printfilename
- \_indent \_printverblinenum #1\par}
+ \_indent \_printverblinenum #1\_par}
\_def\_printfilename{\_hbox to0pt{%
\_hskip\_hsize\_vbox to0pt{\_vss\_llap{\Brown\docfile}\_kern7.5pt}\_hss}%
diff --git a/macros/optex/base/fnotes.opm b/macros/optex/base/fnotes.opm
index 62912d0400..661d54c33f 100644
--- a/macros/optex/base/fnotes.opm
+++ b/macros/optex/base/fnotes.opm
@@ -129,12 +129,13 @@
The \`\_mnoteD``{<text>}` macro sets the position of the marginal note.
The outer box of marginal note has zero width and zero depth and it is appended
after current line using `\vadjust` primitive or it is inverted to vertical mode
- as a box with `\vskip-\baselineskip` followed.
+ as a box shifted down by `\parskip` and with `\vskip-\baselineskip` followed.
\_cod -----------------------------
\_def\_mnote #1#{\_ifx^#1^\_else \_mnoteC#1\_end \_fi \_mnoteD}
\_def\_mnoteC up#1\_end{\_mnoteskip=#1\_relax} % \mnote up<dimen> {<text>} syntax
-\_long\_def\_mnoteD#1{\_ifvmode {\_mnoteA{#1}}\_nobreak\_vskip-\_baselineskip \_else
+\_long\_def\_mnoteD#1{%
+ \_ifvmode \_vskip\_parskip{\_mnoteA{#1}}\_nobreak\_vskip-\_baselineskip\_vskip-\_parskip \_else
\_lower\_dp\_strutbox\_hbox{}\_vadjust{\_kern-\_dp\_strutbox \_mnoteA{#1}\_kern\_dp\_strutbox}%
\_fi
}
diff --git a/macros/optex/base/fonts-select.opm b/macros/optex/base/fonts-select.opm
index 355a71a191..d8d3982ba6 100644
--- a/macros/optex/base/fonts-select.opm
+++ b/macros/optex/base/fonts-select.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \fontfam {Fonts selection system <2021-07-16>} % preloaded in format
+\_codedecl \fontfam {Fonts selection system <2021-09-24>} % preloaded in format
\_doc -----------------------------
The variant selectors \^`\rm`, \^`\bf`, \^`\it`, \^`\bi`, \^`\tt`
@@ -175,7 +175,7 @@
\_cod -----------------------------
\_def\_famdecl [#1]#2#3#4#5#6#7#8{%
- \_initunifonts \_uniaccents
+ \_initunifonts \_unichars \_uniaccents
\_unless\_ifcsname _f:\_csstring#2:main.fam\_endcsname
\_isfont{#7}\_iffalse
\_opwarning{Family [#1] skipped, font "#7" not found}\_ea\_ea\_ea\_endinput \_else
@@ -1011,6 +1011,7 @@ Luaotfload documentation for more information.
\endinput
+2021-09-24 \_unichars used in \initunifonts
2021-07-16 \initunifonts: optex_hook_into_luaotfload added.
2021-05-23 concept of \_fontfeatures macro re-implemented
2021-05-02 simpler \_resizefont, better concept of doc, moving parts from fonts-resize
diff --git a/macros/optex/base/hyperlinks.opm b/macros/optex/base/hyperlinks.opm
index ef205f3aa2..4c2007cddb 100644
--- a/macros/optex/base/hyperlinks.opm
+++ b/macros/optex/base/hyperlinks.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \ulink {Hyperlinks <2021-05-14>} % preloaded in format
+\_codedecl \ulink {Hyperlinks <2021-08-31>} % preloaded in format
\_doc ----------------------------
\`\dest``[<type>:<spec>]` creates a destination of internal links. The
@@ -27,19 +27,19 @@
\_doc ----------------------------
Each hyperlink is created internally by \`\_xlink``{<type>}{<spec>}{<color>}{<text>}`.
This macro expands to `\_quitvmode{<text>}` by default, i.e.\ no active
- hyperlink is created, only <text> is printed in horizontal mode.
- If \^`\hyperlinks` is used, then `\_xlink` gets meaning of
- \`\_xlinkactive` and hyperlinks are created using `\pdfstartlink`,
+ hyperlink is created, only <text> is printed in horizontal mode (and in a group).
+ If \^`\hyperlinks` is used, then `\_xlink` gets the meaning of
+ \`\_xlinkactive` and hyperlinks are created by the `\pdfstartlink`/%
`\pdfendlink` primitives. The <text> has given <color> only when
- hyperlink is created. But if `\_<type>linkcolor` is defined, it has
- precedence.
+ hyperlink is created. If `\_<type>linkcolor` is defined, it has
+ precedence over <color>.
\nl
The \`\_linkdimens` macro declares the dimensions of link area.
\nl
A specific action can be defined for each link <type> by the macro
`\_<type>action{<spec>}`. \OpTeX/ defines only \`\_urlaction``{<url>}`.
The default link action (when `\_<type>action` is not defined) is
- `goto mame{<type>:<spec>}` (creates an internal link). It is declared in the
+ `goto name{<type>:<spec>}` (an internal link). It is declared in the
\`\_linkactions``{<type>}{<spec>}` macro.
\nl
The `\_pdfstartlink` primitive uses `attr{\_pdfborder{<type>}}`. The
@@ -91,14 +91,15 @@
\_public \ilink \ulink \link ;
\_doc ----------------------------
- \`\hyperlinks``{<ilink_color>}{<ulink_color>}` activates `\dest`, `\xlink`,
- in order they create links.
+ \`\hyperlinks``<ilink color><ulink color>` activates `\dest`, `\xlink`,
+ so that they create links. Not setting colors (`\hyperlinks{}{}`) is also
+ supported.
\_cod ----------------------------
\_def\_hyperlinks#1#2{%
\_let\_dest=\_destactive \_let\_xlink=\_xlinkactive
- \_let\_ilinkcolor=#1%
- \_let\_elinkcolor=#2%
+ \_let\_ilinkcolor=#1\_empty
+ \_let\_elinkcolor=#2\_empty
\_public \dest \xlink ;%
}
\_public \hyperlinks ;
@@ -201,6 +202,7 @@ Another example `\def\_tocborder{1 0 0}` causes red frames in TOC
\_endinput
+2021-08-31 \hyperlinks{}{} allowed, bug fixed
2021-05-14 \_xlink introduced, \link, \ilink, \ulink re-implemented.
2021-05-12 \url: triplet :// instead //, \_urlslashslash removed.
2021-05-11 \url reimplemented, \_urlxskip added.
diff --git a/macros/optex/base/languages.opm b/macros/optex/base/languages.opm
index 19b1813edd..26e0c62628 100644
--- a/macros/optex/base/languages.opm
+++ b/macros/optex/base/languages.opm
@@ -37,7 +37,7 @@
\_langw cs Kapitola Tabulka Obrázek Věc
\_langw de Kapitel Tabelle Abbildung Betreff
\_langw es Capítulo Tabla Figura Sujeto
-\_langw fr Chaptire Tableau Figure Matière
+\_langw fr Chapitre Tableau Figure Matière
\_langw it Capitolo Tabella Fig. Oggetto
\_langw pl Rozdział Tabela Ilustracja Temat
\_langw gr Κεφάλαιο Πίνακας Σχήμα θέμα
diff --git a/macros/optex/base/multicolumns.opm b/macros/optex/base/multicolumns.opm
index 1a32db62b7..f048963043 100644
--- a/macros/optex/base/multicolumns.opm
+++ b/macros/optex/base/multicolumns.opm
@@ -31,7 +31,7 @@
\_advance\_hsize by\_colsep
\_divide\_hsize by\_Ncols \_advance\_hsize by-\_colsep
\_mullines=0
- \_def\par{\_ifhmode\_endgraf\_global\_advance\_mullines by\_prevgraf\_fi}%
+ \_def\_par{\_ifhmode\_endgraf\_global\_advance\_mullines by\_prevgraf\_fi}%
}
\_def\_endmulti{\_vskip-\_prevdepth\_vfil
\_ea\_egroup\_ea\_egroup\_ea\_baselineskip\_the\_baselineskip\_relax
diff --git a/macros/optex/base/optex.ini b/macros/optex/base/optex.ini
index e51a8824df..4ccc482d8f 100644
--- a/macros/optex/base/optex.ini
+++ b/macros/optex/base/optex.ini
@@ -21,7 +21,7 @@
% OpTeX version
-\def\optexversion{1.04 Aug.2021}
+\def\optexversion{1.05 Jan.2022}
\def\fmtname{OpTeX}
\let\fmtversion=\optexversion
diff --git a/macros/optex/base/optex.lua b/macros/optex/base/optex.lua
index 5114ea21e9..19eeb6328b 100644
--- a/macros/optex/base/optex.lua
+++ b/macros/optex/base/optex.lua
@@ -419,12 +419,17 @@ end, "_tracingmacros")
-- inject PDF literals according to attributes.
--
local node_id = node.id
+local node_subtype = node.subtype
local glyph_id = node_id("glyph")
local rule_id = node_id("rule")
local glue_id = node_id("glue")
local hlist_id = node_id("hlist")
local vlist_id = node_id("vlist")
local disc_id = node_id("disc")
+local whatsit_id = node_id("whatsit")
+local pdfliteral_id = node_subtype("pdf_literal")
+local pdfsave_id = node_subtype("pdf_save")
+local pdfrestore_id = node_subtype("pdf_restore")
local token_getmacro = token.get_macro
local direct = node.direct
@@ -517,6 +522,10 @@ local function is_color_needed(head, n, id, subtype) -- returns non-stroke, stro
return true, true
end
return true, false
+ elseif id == whatsit_id and (subtype == pdfliteral_id
+ or subtype == pdfsave_id
+ or subtype == pdfrestore_id) then
+ return true, true
end
return false, false
end
diff --git a/macros/optex/base/others.opm b/macros/optex/base/others.opm
index a6dc2064eb..0c9f4cae6a 100644
--- a/macros/optex/base/others.opm
+++ b/macros/optex/base/others.opm
@@ -80,15 +80,15 @@
usages of `\lipsum` are fully expandable. If you want to have all
printings of `\lipsum` expandable, use dummy `\lipsum[0]` first.
- `\lipsum` adds `\par` after each printed paragraph. If you don't need
- such `\par` here, use \`\lipsumtext``[<number>]`.
- This macro prints only one selected paragraph <number> and does not add `\par`.
+ `\lipsum` adds `\_par` after each printed paragraph. If you don't need
+ such `\_par` here, use \`\lipsumtext``[<number>]`.
+ This macro prints only one selected paragraph <number> and does not add `\_par`.
\_cod ----------------------------
\_def\_lipsumtext[#1]{\_lipsumload\_cs{_lip:#1}}
\_def\_lipsum[#1]{\_lipsumA #1\_empty-\_empty\_end}
\_def\_lipsumA #1-#2\_empty#3\_end{%
- \_fornum #1..\_ifx^#2^#1\_else#2\_fi \_do {\_lipsumtext[##1]\par}}
+ \_fornum #1..\_ifx^#2^#1\_else#2\_fi \_do {\_lipsumtext[##1]\_par}}
\_def\_lipsumload{{%
\_setbox0=\_vbox{\_tmpnum=0 % vertical mode during \input lipsum.ltd.tex
\_def\ProvidesFile##1[##2]{}%
@@ -100,6 +100,78 @@
\_public \lipsum \lipsumtext ;
\_let \lorem=\lipsum
+ \_doc -----------------------------
+ Lua\TeX/ version 1.14 and newer provides `\partokenname` which allows to
+ specify something different than `\par` at empty lines. We set `\_par`
+ (see bellow) in \OpTeX/ version 1.04+ and newer. Some macros were rewritten
+ due to this change. And we copy old versions of these changed macros here
+ in order to allow to use older Lua\TeX/ versions where `\partokenname` is
+ not provided.\nl
+ Note that your macros where a parameter is separated by the empty line
+ must be changed too. Use `\def\macro #1\_par{...}` instead
+ `\def\macro #1\par{...}`.
+ \_cod -----------------------------
+
+\_ifx\_partokenname\_undefined % LuaTeX 1.13 or older:
+
+ \_def\_begmulti #1 {\_par\_bgroup\_wipeepar\_multiskip\_penalty0 \_def\_Ncols{#1}
+ \_setbox6=\_vbox\_bgroup\_bgroup \_let\_setxhsize=\_relax \_penalty-99
+ \_advance\_hsize by\_colsep
+ \_divide\_hsize by\_Ncols \_advance\_hsize by-\_colsep
+ \_mullines=0
+ \_def\par{\_ifhmode\_endgraf\_global\_advance\_mullines by\_prevgraf\_fi}%
+ }
+ \_def\_incaption {\_bgroup
+ \_ifcsname _\_tmpa num\_endcsname \_ea\_incr \_csname _\_tmpa num\_endcsname
+ \_else \_opwarning{Unknown caption /\_tmpa}\_fi
+ \_edef\_thecapnum {\_csname _the\_tmpa num\_endcsname}%
+ \_edef\_thecaptitle{\_mtext{\_tmpa}}%
+ \_ea\_the \_csname _everycaption\_tmpa\_endcsname
+ \_def\_par{\_nbpar\_egroup}\_let\par=\_par
+ \_cs{_printcaption\_tmpa}%
+ }
+ \_def\_boxlines{%
+ \_def\_boxlinesE{\_ifhmode\_egroup\_empty\_fi}%
+ \_def\_nl{\_boxlinesE}%
+ \_bgroup \_lccode`\~=`\^^M\_lowercase{\_egroup\_let~}\_boxlinesE
+ \_everypar{\_setbox0=\_lastbox\_endgraf
+ \_hbox\_bgroup \_catcode`\^^M=13 \_let\par=\_nl \_aftergroup\_boxlinesC}%
+ }
+ \_def\_letter{
+ \_def\_address{\_vtop\_bgroup\_boxlines \_parskip=0pt \_let\par=\_egroup}
+ \_def\_subject{{\_bf \_mtext{subj}: }}
+ \_public \address \subject ;
+ \_typosize[11/14]
+ \_vsize=\_dimexpr \_topskip + 49\_baselineskip \_relax % added 2020-03-28
+ \_parindent=0pt
+ \_parskip=\_medskipamount
+ \_nopagenumbers
+ }
+ \_def\_printverbline#1{\_putttpenalty \_indent \_printverblinenum \_kern\_ttshift #1\par}
+ \_public \begmulti \boxlines \letter ;
+
+\_else % LuaTeX 1.14 or newer:
+
+ \_doc -----------------------------
+ We set `\partokenneame` to `\_par` in order to keep the name `\par` in
+ user name space. I.e. a user can say `\def\par{paragraph}` for example
+ without crash of processing the document. Se section~\ref[prefixed] for
+ more details about the name space concept.\nl
+ Moreover, we set `\partokencontext` to one in order to the `\_par` token
+ is inserted not only at empty lines, but also at the end of `\vbox`, `\vtop` and
+ `\vcenter` if horizontal mode is opened here. This differs from default
+ \TeX/ behavior where horizontal mode is closed in these cases without
+ inserting par token.\nl
+ We set \`\_partokenset` to defined value 1 in order to the macro programmer can
+ easily check these settings in \OpTeX/ format by
+ `\ifx\_partokenset\undefined ... \else ...\fi`.
+ \_cod -----------------------------
+
+ \_partokenname\_par
+ \_partokencontext=1
+ \_let\_partokenset=1
+\_fi
+
\_endcode
2021-08-02 \SetLipsumLanguage added, fix for new lipusm version
diff --git a/macros/optex/base/plain-macros.opm b/macros/optex/base/plain-macros.opm
index b878d96ce8..2f4d2da65c 100644
--- a/macros/optex/base/plain-macros.opm
+++ b/macros/optex/base/plain-macros.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \magstep {Macros from plain TeX <2021-04-09>} % preloaded in format
+\_codedecl \magstep {Macros from plain TeX <2021-09-24>} % preloaded in format
\_doc -----------------------------
The \`\dospecials` works like in plain TeX but does nothing with `_`.
@@ -48,11 +48,11 @@
Plain \TeX/ classical \`\obeylines` and \`\obeyspaces`.
\_cod -----------------------------
-% In \obeylines, we say `\let^^M=\par' instead of `\def^^M{\par}'
-% since this allows, for example, `\let\par=\cr \obeylines \halign{...'
+% In \obeylines, we say `\let^^M=\_par' instead of `\def^^M{\_par}'
+% since this allows, for example, `\let\_par=\cr \obeylines \halign{...'
{\_catcode`\^^M=13 % these lines must end with %
\_gdef\_obeylines{\_catcode`\^^M=13\_let^^M\_par}%
- \_global\_let^^M=\par} % this is in case ^^M appears in a \write
+ \_global\_let^^M=\_par} % this is in case ^^M appears in a \write
\_def\_obeyspaces{\_catcode`\ =13 }
{\_obeyspaces\_global\_let =\_space}
\_public \obeylines \obeyspaces ;
@@ -210,8 +210,7 @@
\_def\_{\_hbox{_}}
\_def\dag{\_errmessage{\_usedirectly †}}
\_def\ddag{\_errmessage{\_usedirectly ‡}}
-%\_def\copyright{\_errmessage{\_usedirectly ©}}
-\_def\copyright{©} % << example, what to do
+\_def\copyright{\_errmessage{\_usedirectly ©}}
%\_def\Orb{\_mathhexbox20D} % obsolete (part of Copyright)
%\_def\P{\_mathhexbox27B} % obsolete
@@ -220,6 +219,21 @@
\_public \mathhexbox ;
\_doc -----------------------------
+ The \`\_unichars` macro is run in \^`\initunifonts`,
+ Unicodes are used instead old plain \TeX/ settings.
+ \_cod -----------------------------
+
+\def\_unichars{% characters with different codes in Unicode:
+ \_chardef\ss=`ß
+ \_chardef\oe=`œ
+ \_chardef\OE=`Œ
+ \_chardef\S=`§
+ \_chardef\dag`†
+ \_chardef\ddag`‡
+ \_chardef\copyright`©
+}
+
+ \_doc -----------------------------
Accents.
The macros \`\ooalign`, \`\d`, \`\b`, \`\c`, \`\dots`,
are defined for backward compatibility.
@@ -344,5 +358,6 @@
\_endcode % -------------------------------------
+2021-09-24 ... \_unichars introduced
2021-04-09 ... \_public\showhyphens, bug fixed
2020-02-14 ... released
diff --git a/macros/optex/base/prefixed.opm b/macros/optex/base/prefixed.opm
index 6dec64c7e5..d15ee4140d 100644
--- a/macros/optex/base/prefixed.opm
+++ b/macros/optex/base/prefixed.opm
@@ -175,12 +175,12 @@ In this documentation: if both variants of a control sequence are declared
the unprefixed variant. The code typically defines the prefixed variant
and then the \^`\public` (or `\_public`) macro is used.
-\secc Namespace of control sequences for users
+\secc[user-ns] Namespace of control sequences for users
-Users can define or declare any control sequence with a name without any `_`.
-This does not make any problem. Only one exception is the reserved control
-sequence `\par`. It is generated by the tokenizer (at empty lines)
-and used as internal in \TeX/.
+Users can (re)define or (re)declare any control sequence with a name without any `_`.
+This does not make any problem in internal \OpTeX/ macros.\fnote
+{The token `\par` is in user name space too from \OpTeX/ 1.04+ and
+Lua\TeX/ 1.14, see also the end of section~\ref[others].}
User can define or declare control sequences with `_` character, for
example `\my_control_sequence`, but with the following exceptions:
diff --git a/macros/optex/base/references.opm b/macros/optex/base/references.opm
index eb884c4f1d..51b1b9591a 100644
--- a/macros/optex/base/references.opm
+++ b/macros/optex/base/references.opm
@@ -24,11 +24,10 @@
\_doc ----------------------------
\`\_Xlabel` `{<label>}{<text>}` saves the <text> to `\_lab:<label>` and saves
- `[pg:<gpageno>]{<pageno>}` to `\_pgref:<label>`.
+ `{<gpageno>}{<pageno>}` to `\_pgref:<label>`.
\_cod ----------------------------
-\_def\_Xlabel#1#2{\_sdef{_lab:#1}{#2}\_sxdef{_pgref:#1}{\_ea\_bracketspg\_currpage}}
-\_def\_bracketspg#1#2{[pg:#1]{#2}}
+\_def\_Xlabel#1#2{\_sdef{_lab:#1}{#2}\_sxdef{_pgref:#1}{\_currpage}}
\_doc ----------------------------
\`\label``[<label>]` saves the declared label to `\_lastlabel` and
@@ -54,31 +53,52 @@
\_public \label \wlabel ;
\_doc ----------------------------
- \`\ref``[<label>]` uses saved `\_lab:<label>` and prints (linked) `<text>`.
+ \`\ref``[<label>]{<given-text>}` prints (linked) `<given-text>`.
+ The missing optional `{<given-text>}` is replaced by `{@}`. The `@` is
+ replaced by `<implicit-text>` from saved `\lab:<label>` using \^`\_reftext` macro.
If the reference is backward then we know `\lab:<label>` without any need
to read REF file. On the other hand, if the reference is forwarded, then we
doesn't know `\_lab:<label>` in the first run of \TeX/ and we print a warning and
do `\_openref`.
\nl
- \`\pgref``[<label>]` uses `{<gpageno>}{<pageno>}` from `\_pgref:<label>` and
- prints (linked) `<pageno>` using `\_ilink` macro.
+ \`\pgref``[<label>]{<given-text>}` prints `<given-text>` where `@` is
+ replaced by <pageno>. Data in the format `{<gpageno>}{<pageno>}`
+ are read from `\_pgref:<label>` by \`\_pgrefB``{<gpageno>}{<pageno>}{<given-text>}`.
+ \nl
+ \`\_lastreflabel` keeps the value of the last label read by \^`\ref` or \^`\pgref`.
+ You can use it for example by definig a macro `\pg` by `\def\pg{\pgref[\_lastreflabel]}`
+ and then you need not repeat the same label in typical situations and you
+ can write for instance: `see section \ref[lab] at page \pg.`
\_cod ----------------------------
-\_def\_ref[#1]{\_isdefined{_lab:#1}%
- \_iftrue \_ilink[ref:#1]{\_csname _lab:#1\_endcsname}%
- \_else ??\_opwarning{label [#1] unknown. Try to TeX me again}%
- \_incr\_unresolvedrefs \_openref
+\_def\_ref[#1]{\_xdef\_lastreflabel{#1}\_isnextchar\_bgroup{\_refA}{\_refA{@}}}
+\_def\_refA #1{\_isdefined{_lab:\_lastreflabel}%
+ \_iftrue \_ilink[ref:\_lastreflabel]{\_reftext{\_csname _lab:\_lastreflabel\_endcsname}{#1}}%
+ \_else \_reftext{??}{#1}\_opwarning{label [\_lastreflabel] unknown. Try to TeX me again}%
+ \_incr\_unresolvedrefs \_openref
\_fi
}
-\_def\_pgref[#1]{\_isdefined{_pgref:#1}%
- \_iftrue \_ea\_ea\_ea\_ilink \_csname _pgref:#1\_endcsname
- \_else ??\_opwarning{pg-label [#1] unknown. Try to TeX me again}%
+\_def\_pgref[#1]{\_xdef\_lastreflabel{#1}\_isnextchar\_bgroup{\_pgrefA}{\_pgrefA{@}}}
+\_def\_pgrefA #1{\_isdefined{_pgref:\_lastreflabel}%
+ \_iftrue \_ea\_ea\_ea\_pgrefB \_csname _pgref:\_lastreflabel\_endcsname{#1}%
+ \_else \_reftext{??}{#1}\_opwarning{pg-label [\_lastreflabel] unknown. Try to TeX me again}%
\_incr\_unresolvedrefs \_openref
\_fi
}
+\_def\_pgrefB #1#2#3{\_ilink[pg:#1]{\_reftext{#2}{#3}}}
+
\_public \ref \pgref ;
\_doc -----------------------------
+ \`\_reftext``{<implicit-text>}{<given-text>}` expands to the <given-text>
+ but the optional `@` in the `<given-text>` is replaced by the `<implicit-text>` first.
+ \_cod -----------------------------
+
+\_def\_reftext #1#2{\_isatin #2@\_iffalse #2\_else\_reftextA{#1}#2\_end \_fi}
+\_def\_reftextA #1#2@#3\_end {#2#1#3}
+\_def\_isatin #1@#2\_iffalse {\_ifx\_end#2\_end}
+
+ \_doc -----------------------------
Default \`\_printlabel` is empty macro (labels are not printed).
The \`\showlabels` redefines it as box with zero dimensions and
with left lapped `[<label>]` in blue 10pt `\tt` font shifted up by 1.7ex.
diff --git a/macros/optex/base/sections.opm b/macros/optex/base/sections.opm
index 39759962bf..25d31cabaa 100644
--- a/macros/optex/base/sections.opm
+++ b/macros/optex/base/sections.opm
@@ -331,7 +331,7 @@
edefines \`\_thecapnum` as `\_the<letter>num` and
defines \`\_thecaptitle` as language-dependent word using \^`\_mtext`,
runs the `\_everycaption<letter>` tokens register.
- The group opened by `\caption` is finalized by first `\par` from
+ The group opened by `\caption` is finalized by first `\_par` from
an empty line or from `\vskip` or from `\endinsert`.
The `\_printcaption<letter>` is called, it starts with
printing of the caption.\nl
@@ -347,7 +347,7 @@
\_edef\_thecapnum {\_csname _the\_tmpa num\_endcsname}%
\_edef\_thecaptitle{\_mtext{\_tmpa}}%
\_ea\_the \_csname _everycaption\_tmpa\_endcsname
- \_def\_par{\_nbpar\_egroup}\_let\par=\_par
+ \_def\_par{\_nbpar\_egroup}%
\_cs{_printcaption\_tmpa}%
}
\_def \_cskip {\_par\_nobreak\_medskip} % space between caption and the object
diff --git a/macros/optex/base/styles.opm b/macros/optex/base/styles.opm
index deb47d6930..1c37339d02 100644
--- a/macros/optex/base/styles.opm
+++ b/macros/optex/base/styles.opm
@@ -18,7 +18,7 @@
\_def\_nl{\_boxlinesE}%
\_bgroup \_lccode`\~=`\^^M\_lowercase{\_egroup\_let~}\_boxlinesE
\_everypar{\_setbox0=\_lastbox\_endgraf
- \_hbox\_bgroup \_catcode`\^^M=13 \_let\par=\_nl \_aftergroup\_boxlinesC}%
+ \_hbox\_bgroup \_catcode`\^^M=13 \_let\_par=\_nl \_aftergroup\_boxlinesC}%
}
\_def\_boxlinesC{\_futurelet\_next\_boxlinesD}
\_def\_boxlinesD{\_ifx\_next\_empty\_else\_ea\_egroup\_fi}
@@ -51,7 +51,7 @@
\_cod -----------------------------
\_def\_letter{
- \_def\_address{\_vtop\_bgroup\_boxlines \_parskip=0pt \_let\par=\_egroup}
+ \_def\_address{\_vtop\_bgroup\_boxlines \_parskip=0pt \_let\_par=\_egroup}
\_def\_subject{{\_bf \_mtext{subj}: }}
\_public \address \subject ;
\_typosize[11/14]
diff --git a/macros/optex/base/unimath-codes.opm b/macros/optex/base/unimath-codes.opm
index d7f0d387ef..ea40116ab8 100644
--- a/macros/optex/base/unimath-codes.opm
+++ b/macros/optex/base/unimath-codes.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \_ncharrmA {Uni math codes <2021-04-25>} % preloaded on demand by \loadmath
+\_codedecl \_ncharrmA {Uni math codes <2022-01-06>} % preloaded on demand by \loadmath
\_doc -----------------------------
The control sequences for `\alpha`, `\beta` etc are redefined here.
@@ -216,6 +216,8 @@
\_Umathcode `* = 2 1 "02217 % equivalent to \ast, like in plain TeX
+\_Umathcode "03A2 = 7 1 "03F4 % \varTheta
+
\_protected\_def \_sqrt {\_Uradical 1 "0221A }
\_protected\_def \_cuberoot {\_Uradical 1 "0221B }
\_protected\_def \_fourthroot {\_Uradical 1 "0221C }
@@ -313,6 +315,8 @@
\_let \drbkarow=\drbkarrow
\_let \hksearow=\hksearrow
\_let \hkswarow=\hkswarrow
+\_let \square=\mdlgwhtsquare
+\_let \blacksquare=\mdlgblksquare
\_let \upalpha=\mupalpha
\_let \upbeta=\mupbeta
@@ -439,6 +443,8 @@ for technical details about Unicode-math.
\_endinput
History:
+2022-01-06 \varTheta corrected
+2021-09-15 \square, \blacksquare defined
2021-04-25 \triangleright: typo fixed
2021-04-20 reading mathclass.opm improved
2021-04-07 \_setnabla introduced, \nabla as uppercase Greek letter
diff --git a/macros/optex/base/verbatim.opm b/macros/optex/base/verbatim.opm
index 08748eb5a6..e3d423691e 100644
--- a/macros/optex/base/verbatim.opm
+++ b/macros/optex/base/verbatim.opm
@@ -176,7 +176,7 @@
\_ifx\_end#2 \_let\_next=\_relax \_else \_def\_next{\_printverb#2}\_fi
\_next
}
-\_def\_printverbline#1{\_putttpenalty \_indent \_printverblinenum \_kern\_ttshift #1\par}
+\_def\_printverbline#1{\_putttpenalty \_indent \_printverblinenum \_kern\_ttshift #1\_par}
\_def\_initverblinenum{\_tenrm \_thefontscale[700]\_ea\_let\_ea\_sevenrm\_the\_font}
\_def\_printverblinenum{\_llap{\_sevenrm \_the\_ttline\_kern.9em}}
\_def\_putttpenalty{\_def\_putttpenalty{\_penalty\_ttpenalty}}
diff --git a/macros/optex/doc/omls.tex b/macros/optex/doc/omls.tex
index 5c21fd5671..a7ac9edd01 100644
--- a/macros/optex/doc/omls.tex
+++ b/macros/optex/doc/omls.tex
@@ -44,7 +44,12 @@
%\ttindent=0pt
\everylist={\advance\ttindent by-1em}
\hyperlinks \Green \Green
-\def\cskip{\par\nobreak}
+\ifx\_partokenset\undefined
+ \def\cskip{\par\nobreak}
+\else
+ \def\cskip{\_par\nobreak}
+\fi
+
\def\begblock{\medskip\hbox\bgroup\vrule\vbox\bgroup\hrule\smallskip
\_fnset\leftskip=\parindent \rightskip=\parindent \medskip\noindent}
\def\endblock{\medskip\hrule\egroup\vrule\egroup}
diff --git a/macros/optex/doc/optex-doc.pdf b/macros/optex/doc/optex-doc.pdf
index 910019b5d9..85260e0fdc 100644
--- a/macros/optex/doc/optex-doc.pdf
+++ b/macros/optex/doc/optex-doc.pdf
Binary files differ
diff --git a/macros/optex/doc/optex-doc.tex b/macros/optex/doc/optex-doc.tex
index f8cb192d86..1c9af23aa9 100644
--- a/macros/optex/doc/optex-doc.tex
+++ b/macros/optex/doc/optex-doc.tex
@@ -21,7 +21,7 @@
\tit Format Based on Plain \TeX/ and OPmac\fnotemark1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\hfill Version 1.04
+\hfill Version 1.05
\centerline{\it Petr Olšák, 2020, 2021}
diff --git a/macros/optex/doc/optex-math.tex b/macros/optex/doc/optex-math.tex
index 5f590d5b25..4c9d5dd01f 100644
--- a/macros/optex/doc/optex-math.tex
+++ b/macros/optex/doc/optex-math.tex
@@ -859,9 +859,12 @@ stretchability in the `\>` space, and more stretchability in the `\;` space.
The registers \x`\thinmuskip`, \x`\medmuskip`, and \x`\thickmuskip` store so-called
\ii mu/values {\em mu values} given by math unit `mu`. It is 1/18 em and this unit depends
on the current font size used in the math formula ($S$ or $SS$ styles use
-smaller font size, the `mu` unit is smaller here). You can use \x`\muskip`
-instead `\hskip` or \x`\mukern` instead `\kern` if you want to use this
-special mu unit. It is allowed only in math mode.
+smaller font size, the `mu` unit is smaller here). You can use \x`\mskip`
+instead `\hskip` or \x`\mkern` instead `\kern` if you want to use this
+special `mu` unit. It is allowed only in math mode.
+
+If \x`\nonscript` precedes `\hskip`, `\mskip`, `\kern`, or `\mkern` then this
+space is applied only in $D$ or $T$ style.
The \x`\quad` and \x`\qquad` spaces have fixed width and they can be used in text
mode too. (\OpTeX/ allows to use `\,` in text mode too).
diff --git a/macros/optex/doc/optex-techdoc.tex b/macros/optex/doc/optex-techdoc.tex
index 4f94e8be70..1748e9f3ea 100644
--- a/macros/optex/doc/optex-techdoc.tex
+++ b/macros/optex/doc/optex-techdoc.tex
@@ -254,7 +254,7 @@ The `\margins` macro is documented in the section~\ref[marg].
\secc[langphrases] Multilingual phrases and quotation marks
\printdoc languages.opm
-\sec Other macros
+\sec[others] Other macros
Miscellaneous macros are here.
\printdoc others.opm
diff --git a/macros/optex/doc/optex-userdoc.tex b/macros/optex/doc/optex-userdoc.tex
index 16fd468c1f..3fefc22657 100644
--- a/macros/optex/doc/optex-userdoc.tex
+++ b/macros/optex/doc/optex-userdoc.tex
@@ -564,7 +564,8 @@ if optional parameter
`[<label>]` is appended to \^`\chap`, \^`\sec`,
\^`\secc`, \^`\caption/t`, \^`\caption/f` or \^`\eqmark`. The alternative syntax is
to use \^`\label[<label>]` before mentioned commands (not necessarily directly
-before). The reference is realized by \^`\ref[<label>]` or \^`\pgref[<label>]`.
+before). The reference is realized by \^`\ref[<label>]` (prints the number
+of the referenced object) or \^`\pgref[<label>]` (prints the page number).
Example:
\begtt
@@ -582,6 +583,13 @@ or write something about the equation~\ref[pythagoras]. Finally there
is an interesting Table~\ref[comp-depend].
\endtt
+The text printed by \^`\ref` or \^`\pgref` can be given explicitly by
+\^`\ref[<label>]{<text>}` or \^`\pgref[<label>]{<text>}`. If the `<text>`
+includes the `@` character, it is replaced by implicitly printed text.
+Example: `see \ref[lab]{section~@}` prints the same as `see section~\ref[lab]`,
+but first case creates larger active area for mouse clicking, when
+\~`\hyperlinks` are declared.
+
If there are forward referenced objects then users have to run \TeX{} twice.
During each pass, the working `*.ref` file (with references data) is created
and this file is used (if it exists) at the beginning of the document.
@@ -663,7 +671,7 @@ If the linked text have to be different than the URL, you can use
`\ulink[http://petr.olsak.net/optex]{\OpTeX/ page}`
outputs to the text
\ulink[http://petr.olsak.net/optex]{\OpTeX/ page}.
-The characters \code{\%}, `\`, `#`, `{`, and `}` must by escaped in
+The characters \code{\%}, `\`, `#`, `{`, and `}` must be escaped in
the <url> parameter.
The PDF format provides {\em outlines} which are notes placed in the special frame of
@@ -1862,7 +1870,6 @@ put it as the first command in your document:
~magscale'[factor] % resize typesetting, line/page breaking unchanged
~margins'/pg format (left, right, top, bottom)unit % margins setting
-
~report' ~letter' ~slides' % style declaration macros
\endtt
@@ -1959,11 +1966,9 @@ control sequences with the same meaning: in prefixed and unprefixed form.
For example `\hbox` is equal to `\_hbox`.
Internal macros of \OpTeX/ have and use only prefixed form. User should use
unprefixed forms, but prefixed forms are accessible too because the `_` is
-set as a letter category code globally (in macro files and users document too). User
+set as a letter category code globally (in macro files and users document too). Users
should re-define unprefixed forms of control sequences without worries that
-something internal will be broken (only the sequence `\par` cannot be
-re-defined without change of internal \TeX/ behavior because it is
-hard-coded in \TeX/, unfortunately).
+something internal will be broken.
\new
The Latin Modern 8bit fonts instead Computer Modern 7bit fonts are
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index c470ef4c93..16a571c18d 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -26,6 +26,9 @@ $mirrors = {
'https://mirrors.tuna.tsinghua.edu.cn/CTAN/' => 1,
'https://mirrors.ustc.edu.cn/CTAN/' => 1,
},
+ 'Hong Kong' => {
+ 'https://mirror-hk.koddos.net/CTAN/' => 1,
+ },
'India' => {
'http://ctan.imsc.res.in/' => 1,
},
@@ -47,7 +50,6 @@ $mirrors = {
},
'Korea' => {
'http://ftp.ktug.org/tex-archive/' => 1,
- 'https://cran.asia/tex/' => 1,
'https://ftp.harukasan.org/CTAN/' => 1,
'https://ftp.kaist.ac.kr/pub/tex-archive/' => 1,
'https://mirror.kakao.com/CTAN/' => 1,
@@ -129,6 +131,9 @@ $mirrors = {
'Hungary' => {
'https://mirror.szerverem.hu/ctan/' => 1,
},
+ 'Italy' => {
+ 'https://ctan.mirror.garr.it/mirrors/ctan/' => 1,
+ },
'Netherlands' => {
'https://ftp.snt.utwente.nl/pub/software/tex/' => 1,
'https://mirror.koddos.net/CTAN/' => 1,
@@ -140,7 +145,6 @@ $mirrors = {
'Poland' => {
'https://ctan.gust.org.pl/tex-archive/' => 1,
'https://repo.skni.umcs.pl/ctan/' => 1,
- 'https://sunsite.icm.edu.pl/pub/CTAN/' => 1,
},
'Portugal' => {
'https://ftp.eq.uc.pt/software/TeX/' => 1,
@@ -182,7 +186,6 @@ $mirrors = {
'https://ctan.math.ca/tex-archive/' => 1,
'https://ctan.mirror.globo.tech/' => 1,
'https://ctan.mirror.rafal.ca/' => 1,
- 'https://mirror.csclub.uwaterloo.ca/CTAN/' => 1,
'https://mirror.its.dal.ca/ctan/' => 1,
'https://muug.ca/mirror/ctan/' => 1,
},
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index 95af6db633..4bee173aff 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/2021
-depend revision/61755
+depend revision/61767
name 00texlive.image
category TLCore
-revision 61749
+revision 61767
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
@@ -4521,7 +4521,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 61743
+revision 61757
shortdesc TeX Live standalone installer package
longdesc This package defines the files to go into the installer
longdesc archives (install-tl-unx.tar.gz, install-tl.zip) built by the
@@ -8725,7 +8725,7 @@ catalogue-version 1.3
name acro
category Package
-revision 61488
+revision 61762
shortdesc Typeset acronyms
relocated 1
longdesc The package enables the author to create acronyms in a simple
@@ -8738,10 +8738,10 @@ longdesc which automatically sorts the list created by \printacronyms.
depend etoolbox
depend l3kernel
depend l3packages
-containersize 43816
-containerchecksum dea8515af961a17704edebdb0ce656ab6d50b8c55c94b4613dd163ecb80abf18af24c1d4d23f08fb90170adb2f67d50781eb123d4e89484bcebd39332a1b6494
-doccontainersize 1239136
-doccontainerchecksum 9f37a3a0b4b9b041d731a49573f1225f9636c16ec25a69bc71d5646472393e8b61f1e386036b68daeddd73d2f0aecb6791ed7b840ee71745dc7cac722ba1e6c7
+containersize 43856
+containerchecksum ea08c14724aa2bef27b7b01d94b73330d0cfcd305abb083f028744fb9519f72a86fc5020fa0c9454253b77a921e31da5e512c31b5cc9b0d26edb1bd64723a2ba
+doccontainersize 1239228
+doccontainerchecksum 222af2ac3e1fca522eae70a20ac6e3d24bcb3ff30e2ea9e20232c331443e8b56da6ba6ce140c9b3451bedc2a38fd04e8c229f0c86c390434b1d93839ae29cff4
docfiles size=370
RELOC/doc/latex/acro/README details="Readme"
RELOC/doc/latex/acro/acro-manual.pdf details="Package documentation"
@@ -8781,7 +8781,7 @@ catalogue-contact-repository https://github.com/cgnieder/acro/
catalogue-ctan /macros/latex/contrib/acro
catalogue-license lppl1.3c
catalogue-topics acronym expl3
-catalogue-version 3.6
+catalogue-version 3.7
name acronym
category Package
@@ -87194,25 +87194,25 @@ catalogue-version 0.6
name datenumber
category Package
-revision 18951
+revision 61761
shortdesc Convert a date into a number and vice versa
relocated 1
longdesc This package provides commands to convert a date into a number
longdesc and vice versa. Additionally there are commands for
longdesc incrementing and decrementing a date. Leap years and the
longdesc Gregorian calendar reform are considered.
-containersize 3328
-containerchecksum f87518683c9820e816f33e535bc8e5d7e31fcda124178593f9635b040151d1f43f6eeb4d69ca974b847c97efcf19fa94f571d5534dfdc8ac0e40d711d26190b3
-doccontainersize 94372
-doccontainerchecksum b9c156b19bd6abbb3f996495dcda633172f8e559add744ebe25bb58070ba06bc233c2dda54c93415da14aecc30d2888241bf9b80c0dc5922b46cd3ee05865701
-docfiles size=42
- RELOC/doc/latex/datenumber/README.txt details="Package README" language="en"
- RELOC/doc/latex/datenumber/doc.pdf details="Package documentation" language="en"
- RELOC/doc/latex/datenumber/doc.tex
- RELOC/doc/latex/datenumber/docgerman.pdf details="Package documentation" language="de"
- RELOC/doc/latex/datenumber/docgerman.tex
-srccontainersize 5664
-srccontainerchecksum ffeea9042501496e815db5c90cf8a99931fe96bb8dbae6e2551994242336892567c140ed352ddf962d1f144844960eaf03187aec6869780a2c3e218446940174
+containersize 3308
+containerchecksum 5c7d23f949684000d0e38855e11e4869433c33f82fc42da0568d4b74fb0e69fe3fbcd5f72516222059ee446938144c18b10552290e24e077f2e624286e729d28
+doccontainersize 307264
+doccontainerchecksum 18f2573f8c02685d20085c31384b75dd1ab5a47a5bb2b9dcda036a7cd1ecec80db175a674c1f148cd51a078721ed88a3c9b7a0915acd7c023c02ea9a16e2a1f2
+docfiles size=105
+ RELOC/doc/latex/datenumber/README.txt details="Package README"
+ RELOC/doc/latex/datenumber/datenumber-english.pdf details="Package documentation (English)"
+ RELOC/doc/latex/datenumber/datenumber-english.tex
+ RELOC/doc/latex/datenumber/datenumber-german.pdf details="Package documentation (German)" language="de"
+ RELOC/doc/latex/datenumber/datenumber-german.tex
+srccontainersize 5704
+srccontainerchecksum 7835857f1c4f3e59918fe9ecc903dc09139191b050b1b0166e4e1fbe4a5d0c95f33b8591f30012ef5d69af324e8a71cf24b39893029519c13e13d8044b191261
srcfiles size=6
RELOC/source/latex/datenumber/datenumber.dtx
RELOC/source/latex/datenumber/datenumber.ins
@@ -87225,9 +87225,9 @@ runfiles size=8
RELOC/tex/latex/datenumber/datenumbergerman.ldf
RELOC/tex/latex/datenumber/datenumberspanish.ldf
catalogue-ctan /macros/latex/contrib/datenumber
-catalogue-license lppl
+catalogue-license lppl1.2
catalogue-topics date-time
-catalogue-version 0.02
+catalogue-version 0.03
name datestamp
category Package
@@ -88805,7 +88805,7 @@ catalogue-version 1.5
name dccpaper
category Package
-revision 60413
+revision 61763
shortdesc Typeset papers for the International Journal of Digital Curation
relocated 1
longdesc The LaTeX class ijdc-v14 produces camera-ready papers and
@@ -88815,17 +88815,17 @@ longdesc legacy class ijdc-v9 is provided for papers and articles
longdesc written for volumes 9-13. The similar idcc class can be used
longdesc for submissions to the International Digital Curation
longdesc Conference, beginning with the 2015 conference.
-containersize 24824
-containerchecksum 7ec4066600126a651170af633f309ffa4f5137879e63335815a33d51cc5a741ee4ba491681b4eadec88f7fd91f54464d29b8a77f892d0f457e17994ecfc71901
-doccontainersize 286236
-doccontainerchecksum ac292f912fa3539ec383f9d4328e06f4125cf65a52668cc29bc8e80c14f963266e210c6aa7f7326c0ed9e5b55ecb16c152af4b9552499b721aa86a2d7f3783c0
+containersize 24808
+containerchecksum 98648e229632afa6503388edbf7418b2f92fb46351bdedf7d678132be91b3740927ce4c17ccb2ddbee6e24cfc0810b415c013cb61aa81db986efb5daef311aed
+doccontainersize 286284
+doccontainerchecksum e9809887d68592513d5d9992add687dc7fe82e7570fcbc46cf582f66152c94d5f9729735f0f5714245421556b470fcf0f6cb0129017fd79df20e96fc0f4548e2
docfiles size=88
RELOC/doc/latex/dccpaper/README.md details="Readme"
RELOC/doc/latex/dccpaper/dccpaper-apacite.bib
RELOC/doc/latex/dccpaper/dccpaper-biblatex.bib
RELOC/doc/latex/dccpaper/dccpaper.pdf details="Package documentation"
-srccontainersize 26548
-srccontainerchecksum ed6f2527e1b11cbca308d644ad68f2df85c915784e1fd8e9531ca606a31ba4342587de36517b092ba79e709f34e3e40546fcd4f99372c7b7d5a86355a9e26116
+srccontainersize 26584
+srccontainerchecksum da0843ea5f46a187b0d454b5a421699865086af684512a2202aded1e50c240e1345130753fff0a779794d5897f32be793006802c59a7aa741a0f53b4ac002f91
srcfiles size=26
RELOC/source/latex/dccpaper/Makefile
RELOC/source/latex/dccpaper/dccpaper.dtx
@@ -88841,7 +88841,7 @@ catalogue-contact-repository https://github.com/DigitalCurationCentre/dccpaper
catalogue-ctan /macros/latex/contrib/dccpaper
catalogue-license lppl1.3c cc-by-4
catalogue-topics journalpub confproc class
-catalogue-version 2.2
+catalogue-version 2.3
name dcpic
category Package
@@ -191915,7 +191915,7 @@ catalogue-version 2.1
name mandi
category Package
-revision 60311
+revision 61764
shortdesc Macros for introductory physics and astronomy
relocated 1
longdesc The package contains commands for students and teachers of
@@ -191923,17 +191923,17 @@ longdesc introductory physics. Commands for physical quantities
longdesc intelligently handle SI units so the user need not do so. There
longdesc are other features that should make LaTeX easy for introductory
longdesc physics students.
-containersize 11264
-containerchecksum 94f561092ee67cfc27354612be8836bab835cc4f3db4cb0c92db859803429ae29f288f584363128a42fc516c9ceafb65f710777c8d0c5384bd157e2baefbdc1c
-doccontainersize 453160
-doccontainerchecksum 8d2bf11a141d9475ca699245df345418c74185dda498098bfd5540349765c8d59cff4739a731d6220a7eb45811a48a9247d10ecb57cdcae3f468f8da557887e1
-docfiles size=117
+containersize 11988
+containerchecksum 9bac7973ac229756b5263ee0e8a8a4381bf64400a1ee58b0abafa6765e1cea6dae0b660243e1dfa87a8072f1caf1851c11c88db81dae1b231ec6def9f965991a
+doccontainersize 483900
+doccontainerchecksum 4debcb2b892563755cd0779db9c1784f7feba4d0e35118cdb00569bc4eaddf23423f1236f0cf28adb1c399e220b5f348ef898b0e7f1c59e031891056b9148fdb
+docfiles size=125
RELOC/doc/latex/mandi/README.md details="Readme"
RELOC/doc/latex/mandi/mandi.pdf details="Package documentation"
RELOC/doc/latex/mandi/vdemo.py
-srccontainersize 28416
-srccontainerchecksum 803989d743ac0ddd66a922bc61787d9228e96276cd2b5533c2517ce1ee05b93a2972da2a3b9529f0df441cbf0db9efc760bdc727f644deeccb68495d56e55a68
-srcfiles size=45
+srccontainersize 30480
+srccontainerchecksum 1cf1912cd6db652bd927378970a1740153906f0c14e92da47a428c564c04f66f3496be8f639fcf3f0f0caab48fff0909ae72dd81085f2bd8a92d5ae08fce07a0
+srcfiles size=48
RELOC/source/latex/mandi/mandi.dtx
RELOC/source/latex/mandi/mandi.ins
RELOC/source/latex/mandi/mandiexp.dtx
@@ -191949,7 +191949,7 @@ catalogue-contact-repository https://github.com/heafnerj/mandi
catalogue-ctan /macros/latex/contrib/mandi
catalogue-license lppl1.3
catalogue-topics physics
-catalogue-version 3.0.0
+catalogue-version 3.1.0
name manfnt
category Package
@@ -272170,7 +272170,7 @@ catalogue-version 1.36
name siunitx
category Package
-revision 61746
+revision 61765
shortdesc A comprehensive (SI) units package
relocated 1
longdesc Typesetting values with units requires care to ensure that the
@@ -272195,17 +272195,17 @@ longdesc The package relies on LaTeX 3 support from the l3kernel and
longdesc l3packages bundles.
depend l3kernel
depend l3packages
-containersize 62664
-containerchecksum 6da894491317584d1976f4a5ddcad837f3d8766ef9e2232e136b7dbc69357f3a7a10438408be09649558a5dea572e2cfea125b2c2da00ce8be2cd24d4fea56de
-doccontainersize 1207128
-doccontainerchecksum 0733bae5538d5ca515d9df3fa283dd6bc75d1702f181805e068c96a734460a7559cca48b710d86b4f0b51d4da99170fefd824db8ad0b690a6148cab5689c8ae3
+containersize 62656
+containerchecksum 5da0cab039e0a706ba67a4363b8dd5178ca8d7352bc2df4f81d80dcfb4de0a8f5274be7d998d9f4dab93a80a0931da47b611265b4165dc9baa1a476e95ebe424
+doccontainersize 1207136
+doccontainerchecksum 26c741b7c3cfa7148eca7cb0b736cee7cfa957f64d6ac7da0715bdd75b576524c22b9b05109ec196d346c787f709115b8b98685ed7856a5f6b70bfcd67bd90c3
docfiles size=323
RELOC/doc/latex/siunitx/CHANGELOG.md
RELOC/doc/latex/siunitx/README.md details="Readme"
RELOC/doc/latex/siunitx/siunitx-code.pdf details="Code documentation"
RELOC/doc/latex/siunitx/siunitx.pdf details="User manual"
-srccontainersize 108344
-srccontainerchecksum 874377b11d16d7b52761b5a83d90510ecbeed0e6ec0c30f5fb7e5bf5c5ffe016cfa546a3734f7abd953134467bd313622363af1ffe543df091d05e57d6f12203
+srccontainersize 108388
+srccontainerchecksum ff76878c613d27f0e0fa494f0d86cde8903681543706f9945c06c9025f9117309e5528a2dc5ef38c09a4a6f909eba973ec818d2736a23fdf947d6992b8363774
srcfiles size=166
RELOC/source/latex/siunitx/siunitx-abbreviation.dtx
RELOC/source/latex/siunitx/siunitx-angle.dtx
@@ -272237,7 +272237,7 @@ catalogue-contact-repository https://github.com/josephwright/siunitx
catalogue-ctan /macros/latex/contrib/siunitx
catalogue-license lppl1.3c
catalogue-topics units scientific-docs expl3
-catalogue-version 3.0.44
+catalogue-version 3.0.45
name skak
category Package
@@ -298920,7 +298920,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 61743
+revision 61757
shortdesc TeX Live infrastructure programs
longdesc Includes install-tl, tl-portable, rungs, etc.; not needed for
longdesc tlmgr to run but still ours. Not included in tlcritical.
@@ -298928,10 +298928,10 @@ depend texlive-scripts.ARCH
depend texlive.infra
execute addMap mathpple.map
postaction shortcut type=menu name="TeX Live command-line" cmd=TEXDIR/tlpkg/installer/tl-cmd.bat
-containersize 108400
-containerchecksum 6e1c147b7cdaba20a16a2af81035c0e15f0d54055a63d62e491d38d346fd67a6c5beda71983717c10642ab420d916fb18cf1c020ccfe3bf44484a38d00c89cf4
-doccontainersize 403020
-doccontainerchecksum 3465a8889f17ffb18652ecd8ee27f5b06acf257c893a4fb3592a08ce7a309978be85094cebd488e17166e21074019af0b710833861831b81b251d3e72388b717
+containersize 108396
+containerchecksum f8f3972788066b9db5ab2d564036c29f95feae5a82af7a0410c9813e173683be5b864e538bd930318318afb0bc54a650c28a6bf8130ca38917a1712df3c08024
+doccontainersize 403116
+doccontainerchecksum ece87d7daddc2cbf7d9c95a9fa400374823ba8805f005cee916ec46cb48289e6485ac38cfb8bd30a0219c809b03be5a88bfb2ce7e81b2304f82d753fc5d2492f
docfiles size=501
doc.html
texmf-dist/doc/man/man1/fmtutil-sys.1
@@ -307447,16 +307447,16 @@ catalogue-version 4.03b
name tkz-fct
category Package
-revision 61747
+revision 61766
shortdesc Tools for drawing graphs of functions
relocated 1
longdesc The tkz-fct package is designed to give math teachers (and
longdesc students) easy access to programming graphs of functions with
longdesc TikZ and gnuplot.
-containersize 4736
-containerchecksum 6cd4b729910b333031c209987305380bc5f9d757755ac48315ee1ff123ce0c471d1f9dd348db22e35468e6a4912442c69391753cb9c693b1cad8c81316377f97
-doccontainersize 745472
-doccontainerchecksum 932132d738de6604b96c9b7e81b2573badde736ac2575c723ede6beb9d9beaa278c8dec02dca81f00d9597b7d9a5f5031acc906c7b3435b91164e1f3b88c3da7
+containersize 4744
+containerchecksum 42fdf304cf2e0a050361bd003d6e4cf9a610cb3cf1ecc7d0c89c4de9ae9ff73a1b5211c2293d225a460e6b02758205cf95d593708dbbdbcca3107e4b05bac1f5
+doccontainersize 745540
+doccontainerchecksum 92687d40d6e6b58b378d6c7f2ff6367ee97a7df19cde0e31ea0745c4adb1b8c892e974eae5188e3c4f19541fa1df98b258315221c79f30c54ee3b57764d9057d
docfiles size=215
RELOC/doc/latex/tkz-fct/README.md details="Readme"
RELOC/doc/latex/tkz-fct/TKZdoc-fct-VDW.tex
@@ -307488,7 +307488,7 @@ catalogue-contact-home http://altermundus.fr
catalogue-ctan /macros/latex/contrib/tkz/tkz-fct
catalogue-license lppl1.3
catalogue-topics graphics graphics-plot pgf-tikz
-catalogue-version 1.5c
+catalogue-version 1.6c
name tkz-graph
category Package
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index 109ce0ea7c..b6a6880a36 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-fd1f7b4fb7f4b680147489e1beb97b76 texlive.tlpdb
+f31625717c6701aa8fde894566aafb5d texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index a851bca4d5..58241f4ad1 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-3292464c87c4c5fa4a5db6825871e6a224898243183807a62779730f87fd5ef2c5d054851827ac82868dcca1274c4c5c55428f36a7c487c2940ba711da483781 texlive.tlpdb
+9297325dac779d31ddd1461372ffc9c6b8aa36ec286d161ff4d2feed9e9de309474152f9b1d93f9c390eafd468d436a7373571dd5039c2ba760f647d7ebd93c6 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index e3dacc154d..9d87b92588 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
@@ -1,10 +1,10 @@
-----BEGIN PGP SIGNATURE-----
-iQEcBAEBCgAGBQJh8e0aAAoJEEzhh34ZQ4xwYUgH/0hBh99B2PoAXosY/gV25tNC
-glZMb2b7X7H9jpWAC+oF2MfFXm9LY8VSd5EGoCUU+ap+c1lZtULP0eodoQiwufLc
-OUnHJf6Omu/w1lZLG9WYLZPJwJsjTe9Eh6k3SToxerms5V5xnk2hJIBZw0Fhnceh
-Gl8aqUQpuTBIlSVTEEKjJa5js/DBlPK8od3HtZzwSAESjXzC/f93uDIQzCf3kCdA
-7F841ypT+le0pPkNkunc1wFB7YC0T3ApLvwVramZG+PA34Hvx1yyC/26FBPEh8Fw
-tmymJ8EKxSIDegK6WZf0aeULSgji4yd6O8XebPtNa2tB3tzA2bg8EbHju+lLhgM=
-=wp2v
+iQEcBAEBCgAGBQJh8z6EAAoJEEzhh34ZQ4xwfaIIAK3UxD2K11dlTCj+lMaQCDDa
+lCp9zJ5IVtfIRMveT25wx6b/Rtt8MNWL2TDdeGcdc1qm1ul4emfO7uBFspvENZxz
+EiEKXfmIvVgbUtATl463h3KgRqxDL69mhe6knLz8DsyUWk63DR1KbTQ2Cq/bcdEK
+R5aD+vrHXB9C8B1qI7WeqzZ/b/zdN5YTQtxgFXvK/KlO+oKmVGNiXiRrfCJAoA+/
+8ij5j8UuTIRS3b72YwkjZY5CMstzomShge1kLowRTwfUD7X98n+neVzl+hcgZyhP
+iOWdm/aojxfLigH7jyucyFt9CBgSfKW33vsr+7ylJCaWvwzbq4kSFCKBOGiIJJ0=
+=sD5c
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index 6dec0dd400..589d6efa84 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/next/files.csv.lzma b/systems/win32/miktex/tm/packages/next/files.csv.lzma
index d0de3fd158..067bc450b9 100644
--- a/systems/win32/miktex/tm/packages/next/files.csv.lzma
+++ b/systems/win32/miktex/tm/packages/next/files.csv.lzma
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/next/pr.ini b/systems/win32/miktex/tm/packages/next/pr.ini
index 699f6aa1ee..4e0f1742ee 100644
--- a/systems/win32/miktex/tm/packages/next/pr.ini
+++ b/systems/win32/miktex/tm/packages/next/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1643318221
+date=1643404679
lastupd=miktex-arctrl-bin-2.9 miktex-arctrl-bin-x64-2.9 miktex-asymptote-bin-2.9 miktex-asymptote-bin-x64-2.9 miktex-autosp-bin-2.9 miktex-autosp-bin-x64-2.9 miktex-axohelp-bin-2.9 miktex-axohelp-bin-x64-2.9 miktex-bibarts-bin-2.9 miktex-bibarts-bin-x64-2.9 miktex-bibtex-bin-2.9 miktex-bibtex-bin-x64-2.9 miktex-bibtex8bit-bin-2.9 miktex-bibtex8bit-bin-x64-2.9 miktex-bzip2-bin-2.9 miktex-bzip2-bin-x64-2.9 miktex-cairo-bin-2.9 miktex-cairo-bin-x64-2.9 miktex-chktex-bin-2.9 miktex-chktex-bin-x64-2.9
-lstdigest=10e9f07fc6e1cc94ebd123f0609712a0
+lstdigest=380553ba7e677f77e45842a6b6713ce9
numpkg=5283
relstate=next
-version=8062
+version=8063
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: o9xAplCGmWAjHc9ONZdFkAoFJwYv9+wnp/AXTvF0GREL8y5t5h/lCP/2rrtuezCPUngJwL5jGmtcKIAy0/ouLCmmtqR+lxOModS76eBu34x+ow+ZN2kqZtyZnowEMgFwSZc0J4piPf0Dr9SdBDQ9mzmAPjuAz6JBHHezRZ86e4XRPhULHbiOGQWHULZFGkdQQZlZ7DDdzan7RNkXNDTyjTaUGf53uh7GOKDvSbrppZwLRucqaqloAEFxs5CFGB27rw+CUfZeHkWm4IIhhMOLKJF2x4MdIe9qJ89JaP0SJ6bcGz9YouSYdE0rk+3NFfiVu32B9fFu6oIfAwhX3RM9Rg==
+;;;; signature/miktex: Kx88JmlgPw4rYpFsZmnuimSLt8Adq9WF5r/yAM3fcO6SjldFbvhZ5r1k6AgTmAJuyLpxz766ChM/8rrxtJ9nKlS5dkBZ8GMKGsIYfXtpa9RuA/J0rNWpNNFTr1oLGuWNfrMiKSLA/guo4QcaEYPv0OjzQE7tuaLJjnZaSjMtqcWeR3DgsywkVlvJRkqm/hZ5+3bGMeTP8dbRnXpyvVuBU4grCyl/OOMkJB8ZXBXnZRLu91FEki/+QHKOOewhs8aS0DNbNJXHoSCwfY1CQNIuooC0LyxM0dx+RWAsq+JyCLK0IdvAqAkTbuAtYIdlWY+ElsUw1eyIyoRon9bCAagybQ==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/systems/win32/miktex/tm/packages/pr.ini b/systems/win32/miktex/tm/packages/pr.ini
index 079eed43f1..26c3c41248 100644
--- a/systems/win32/miktex/tm/packages/pr.ini
+++ b/systems/win32/miktex/tm/packages/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1643317870
+date=1643404322
lastupd=animate animate__doc animate__source apa7 apa7__doc apa7__source asmejour asmejour__doc asmejour__source autopuncitems autopuncitems__doc autopuncitems__source beamer beamer__doc bewerbung bewerbung__doc bewerbung__source bibarts bibarts__doc bibarts__source
-lstdigest=1d295352d74cbf549904c0b678172c5a
+lstdigest=3f14b414557c87d0c9f1e564af09258e
numpkg=5285
relstate=stable
-version=8062
+version=8063
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: FllI2H6o+lN3IZckEvr5q9xTOxctQb69oxsnCwb1wApNr+oNGbexuAHHFeTUclAOdn46Bzekb4/LDE0rkrz8oYYmljFRrR9Yx58JgcMv57bUaBcx8FMwbLFv+DFtvO/PfNW284jpPJvM4bFCGJFKARuJLPNrtt6QJ7BgYZWl3vP52KEP1u+6Ce1ZcSifirz/LBkEqGxOoJxpBe8OSB0o3kdiVyctOpESd7ErEusKUvyhHKrpAFiZ6iD2/j91p6YwYV07qiY8ND2RZW2Iv+7OXKgFjMtq4c4gCG0WG/tEOcrxZzGKFMtE9TWfqZM+2yGNZQ0Fk+Ak0H8bB31cS6vebA==
+;;;; signature/miktex: ucBs8UKLdb+SbcTndJDgcyoJ9DTGpCXfGpKl6BdXAhGVnI3M3EWhX2Tt3AXi/B7YUL6g60GmHJ8zh/xlLSR/s0qtGh1pMse5AvOTDVWSwwM3HbbhWgCK4M0gOILUwTVQKcBfKaO3nOV4ks8fXyqfFq9/MiqQigrXIb4leD1b71ErXN9ahaE9q20YywPkMpcGl+7TYsyUG77qXKXNSQf+07YbPIa5S2TPj6mzO+NtryQwHS7H9bbNlFIxk6Vn9nQuNJMpenfDrOa9KZ1f1hGZ8Q6drCZgyX4/i30qpUFdNaWhGBiXO+gPJ9HvtT9NS73NB/e+zqfEbVz+aYOrXw6SFg==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/timestamp b/timestamp
index 2afbebde43..bda4a45810 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:
-2022-01-28-02-02
+2022-01-29-02-02