diff options
author | Norbert Preining <norbert@preining.info> | 2022-01-29 03:00:41 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2022-01-29 03:00:41 +0000 |
commit | 2df1fd0d0099108f6d3d3e58dce35a3d2e185d4f (patch) | |
tree | f7e5765a88db1ee36ffdbebfbc2ea73336a1fb86 | |
parent | aef84c3078da1ba1bad9754ea0555ac9bc1c0aac (diff) |
CTAN sync 202201290300
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 Binary files differindex 9c01d74f6c..18d196dd1d 100644 --- a/FILES.byname.gz +++ b/FILES.byname.gz 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 Binary files differindex c67e163222..708cc73132 100644 --- a/macros/latex/contrib/bangorcsthesis/bangorcsthesis.pdf +++ b/macros/latex/contrib/bangorcsthesis/bangorcsthesis.pdf diff --git a/macros/latex/contrib/codebox/codebox-doc-en.pdf b/macros/latex/contrib/codebox/codebox-doc-en.pdf Binary files differindex f8edd671df..119a64183a 100644 --- a/macros/latex/contrib/codebox/codebox-doc-en.pdf +++ b/macros/latex/contrib/codebox/codebox-doc-en.pdf 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 Binary files differindex b82446cb1c..84addcda66 100644 --- a/macros/latex/contrib/codebox/codebox.pdf +++ b/macros/latex/contrib/codebox/codebox.pdf 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 Binary files differindex 0c266b995d..65e79fdba7 100644 --- a/macros/latex/contrib/datax/datax.pdf +++ b/macros/latex/contrib/datax/datax.pdf 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 Binary files differindex ae5595cfa2..bd4402b691 100644 --- a/macros/latex/contrib/easybook/easybook.pdf +++ b/macros/latex/contrib/easybook/easybook.pdf 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 Binary files differindex 961e826e40..bab79fbb92 100644 --- a/macros/latex/contrib/pascaltriangle/pascaltriangle.pdf +++ b/macros/latex/contrib/pascaltriangle/pascaltriangle.pdf 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 Binary files differindex 578272d238..4ff66d1f1e 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf 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 Binary files differindex bd6d7985ee..3123d08864 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf 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 Binary files differindex cc44dcca2c..3feab4139a 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf 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 Binary files differindex 29b211ec27..56965d2854 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf 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 Binary files differindex 9e4f0061b1..10bbf6ec75 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf 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 Binary files differindex 70666fc007..74b88c7273 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf 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 Binary files differindex 72dfa1e3ce..a43c6946d0 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf 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 Binary files differindex cf69bffb99..f1d290eaeb 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf 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 Binary files differindex 2164a70c1c..5c54bb4ebf 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf 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 Binary files differindex 2ce744434d..814cce07d3 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf 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 Binary files differindex 9bb4331db6..feedecbdf7 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf 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 Binary files differindex 2561e4d118..ea5bdf4647 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf 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 Binary files differindex a62a1a0d80..a53b31189b 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf 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 Binary files differindex 6bf44b039b..af8813dbab 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf 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 Binary files differindex df2e659463..618b279d34 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf 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 Binary files differindex 9e341ac965..1491257d68 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf 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 Binary files differindex 0816edae0f..a3ea02b46b 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.pdf b/macros/latex/contrib/pdfmanagement-testphase/output-patches-tmp-ltx.pdf Binary files differindex 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 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 Binary files differindex b730d9e75e..30e7a7bf45 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf 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 Binary files differindex 70cf64c5c1..f401c09d25 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 0f6853ca4c..956ba69d9e 100644 --- a/macros/latex/contrib/spbmark/spbmark.pdf +++ b/macros/latex/contrib/spbmark/spbmark.pdf 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 Binary files differindex b955c4c59f..033edad2dc 100644 --- a/macros/latex/contrib/zref-clever/zref-clever-code.pdf +++ b/macros/latex/contrib/zref-clever/zref-clever-code.pdf 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 Binary files differindex 1c64f52147..99292b0570 100644 --- a/macros/latex/contrib/zref-clever/zref-clever.pdf +++ b/macros/latex/contrib/zref-clever/zref-clever.pdf 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 Binary files differindex 910019b5d9..85260e0fdc 100644 --- a/macros/optex/doc/optex-doc.pdf +++ b/macros/optex/doc/optex-doc.pdf 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 Binary files differindex 6dec0dd400..589d6efa84 100644 --- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz diff --git a/systems/win32/miktex/tm/packages/next/files.csv.lzma b/systems/win32/miktex/tm/packages/next/files.csv.lzma Binary files differindex d0de3fd158..067bc450b9 100644 --- a/systems/win32/miktex/tm/packages/next/files.csv.lzma +++ b/systems/win32/miktex/tm/packages/next/files.csv.lzma 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-----
@@ -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 |