diff options
28 files changed, 2945 insertions, 464 deletions
diff --git a/FILES.byname b/FILES.byname index ef39b5074a..2c9ff13dee 100644 --- a/FILES.byname +++ b/FILES.byname @@ -2077,12 +2077,12 @@ 2024/02/20 | 1710 | biblio/citation-style-language/README.md 2024/02/20 | 12878 | biblio/citation-style-language/vancouver.csl 2024/02/20 | 4552203 | biblio/citation-style-language.zip -2024/02/25 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx +2024/02/26 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx 2022/10/08 | 127 | biblio/ctan-bibdata/biblatex-ctan/ctan.cbx -2024/02/25 | 2849851 | biblio/ctan-bibdata/ctan.bib -2024/02/25 | 3708800 | biblio/ctan-bibdata/ctan.pdf +2024/02/26 | 2850306 | biblio/ctan-bibdata/ctan.bib +2024/02/26 | 3708800 | biblio/ctan-bibdata/ctan.pdf 2023/01/16 | 1489 | biblio/ctan-bibdata/README -2024/02/25 | 4117966 | biblio/ctan-bibdata.zip +2024/02/26 | 4118047 | biblio/ctan-bibdata.zip 2023/02/23 | 3126 | biblio/pbibtex/pbibtex-base/cpp.awk 2023/02/23 | 1009 | biblio/pbibtex/pbibtex-base/generate.sh 2023/02/23 | 22362 | biblio/pbibtex/pbibtex-base/jabbrv.bst @@ -5444,7 +5444,7 @@ 1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp 1990/10/02 | 812 | dviware/vutex/vaxvms.ins 1990/10/02 | 127576 | dviware/vutex/vutex.web -2024/02/25 | 193670 | FILES.last07days +2024/02/26 | 114586 | 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 @@ -205856,10 +205856,10 @@ 2023/04/03 | 338388 | info/tex-vpat/texlive-vpat.pdf 2023/04/03 | 33771 | info/tex-vpat/texlive-vpat.tex 2023/04/03 | 179569 | info/tex-vpat.zip -2023/11/28 | 159225 | info/tlmgrbasics/doc/tlmgr.pdf -2023/11/28 | 24132 | info/tlmgrbasics/doc/tlmgr.tex -2023/11/28 | 453 | info/tlmgrbasics/README -2023/11/28 | 163098 | info/tlmgrbasics.zip +2024/02/26 | 160621 | info/tlmgrbasics/doc/tlmgr.pdf +2024/02/26 | 24523 | info/tlmgrbasics/doc/tlmgr.tex +2024/02/26 | 453 | info/tlmgrbasics/README +2024/02/26 | 164419 | info/tlmgrbasics.zip 2021/05/05 | 23941 | info/tlmgr-intro-zh-cn/body/actions.tex 2021/05/05 | 1030 | info/tlmgr-intro-zh-cn/body/examples.tex 2021/05/05 | 3020 | info/tlmgr-intro-zh-cn/body/mirrors.tex @@ -229837,12 +229837,12 @@ 2018/03/27 | 565421 | macros/latex/contrib/cleveref/cleveref.dtx 2017/05/26 | 884 | macros/latex/contrib/cleveref/cleveref.ins 2018/03/27 | 443693 | macros/latex/contrib/cleveref/cleveref.pdf -2024/02/24 | 38194 | macros/latex/contrib/cleveref-forward/cleveref-forward.sty -2024/02/24 | 58724 | macros/latex/contrib/cleveref-forward/demo/cleveref-forward-demo.pdf -2024/02/24 | 15388 | macros/latex/contrib/cleveref-forward/demo/cleveref-forward-demo.tex -2024/02/24 | 19106 | macros/latex/contrib/cleveref-forward/LICENSE -2024/02/24 | 1743 | macros/latex/contrib/cleveref-forward/README.md -2024/02/24 | 75033 | macros/latex/contrib/cleveref-forward.zip +2024/02/26 | 38340 | macros/latex/contrib/cleveref-forward/cleveref-forward.sty +2024/02/26 | 65462 | macros/latex/contrib/cleveref-forward/demo/cleveref-forward-demo.pdf +2024/02/26 | 15481 | macros/latex/contrib/cleveref-forward/demo/cleveref-forward-demo.tex +2024/02/26 | 19106 | macros/latex/contrib/cleveref-forward/LICENSE +2024/02/26 | 2612 | macros/latex/contrib/cleveref-forward/README.md +2024/02/26 | 82082 | macros/latex/contrib/cleveref-forward.zip 2018/03/03 | 2337 | macros/latex/contrib/cleveref/README 2023/04/21 | 1477 | macros/latex/contrib/cleveref-usedon/CHANGES.md 2023/04/21 | 36705 | macros/latex/contrib/cleveref-usedon/cleveref-usedon.dtx @@ -230649,15 +230649,15 @@ 2013/04/03 | 3607 | macros/latex/contrib/crbox/crbox.sty 2013/04/03 | 914 | macros/latex/contrib/crbox/README 2013/04/04 | 30542 | macros/latex/contrib/crbox.zip -2024/02/21 | 80289 | macros/latex/contrib/create-theorem/code/create-theorem-preset-names-plural.tex -2024/02/21 | 79630 | macros/latex/contrib/create-theorem/code/create-theorem-preset-names.tex -2024/02/21 | 48528 | macros/latex/contrib/create-theorem/code/create-theorem.sty -2024/02/21 | 12 | macros/latex/contrib/create-theorem/DEPENDS.txt -2024/02/21 | 88437 | macros/latex/contrib/create-theorem/doc/create-theorem-doc.pdf -2024/02/21 | 38008 | macros/latex/contrib/create-theorem/doc/create-theorem-doc.tex -2024/02/21 | 19106 | macros/latex/contrib/create-theorem/LICENSE -2024/02/21 | 693 | macros/latex/contrib/create-theorem/README.md -2024/02/21 | 123400 | macros/latex/contrib/create-theorem.zip +2024/02/26 | 79578 | macros/latex/contrib/create-theorem/code/create-theorem-preset-names-cleveref.tex +2024/02/26 | 80237 | macros/latex/contrib/create-theorem/code/create-theorem-preset-names-plural-cleveref.tex +2024/02/26 | 48571 | macros/latex/contrib/create-theorem/code/create-theorem.sty +2024/02/26 | 12 | macros/latex/contrib/create-theorem/DEPENDS.txt +2024/02/26 | 92770 | macros/latex/contrib/create-theorem/doc/create-theorem-doc.pdf +2024/02/26 | 38018 | macros/latex/contrib/create-theorem/doc/create-theorem-doc.tex +2024/02/26 | 19106 | macros/latex/contrib/create-theorem/LICENSE +2024/02/26 | 896 | macros/latex/contrib/create-theorem/README.md +2024/02/26 | 127824 | macros/latex/contrib/create-theorem.zip 2023/08/26 | 158107 | macros/latex/contrib/creationboites/doc/CreationBoites-doc.pdf 2023/08/26 | 18801 | macros/latex/contrib/creationboites/doc/CreationBoites-doc.tex 2023/08/25 | 495 | macros/latex/contrib/creationboites/README.md @@ -256160,6 +256160,11 @@ 2019/04/01 | 5464 | macros/latex/contrib/webquiz/scripts/webquiz_util.py 2019/02/15 | 13461 | macros/latex/contrib/webquiz/scripts/webquiz_xml.py 2019/04/01 | 7425702 | macros/latex/contrib/webquiz.zip +2024/02/26 | 575 | macros/latex/contrib/weiqi/README.md +2024/02/26 | 78085 | macros/latex/contrib/weiqi/weiqi.dtx +2024/02/26 | 1259 | macros/latex/contrib/weiqi/weiqi.ins +2024/02/26 | 345824 | macros/latex/contrib/weiqi/weiqi.pdf +2024/02/26 | 350256 | macros/latex/contrib/weiqi.zip 2020/01/13 | 1486 | macros/latex/contrib/widetable/manifest.txt 2020/01/13 | 1315 | macros/latex/contrib/widetable/README.txt 2020/01/13 | 28095 | macros/latex/contrib/widetable/widetable.dtx @@ -305173,6 +305178,8 @@ 2024/02/22 | 5236 | systems/texlive/tlnet/archive/beaulivre.r70050.tar.xz 2023/10/03 | 44866964 | systems/texlive/tlnet/archive/beautybook.doc.r68438.tar.xz 2023/10/03 | 16296 | systems/texlive/tlnet/archive/beautybook.r68438.tar.xz +2024/02/26 | 858720 | systems/texlive/tlnet/archive/beautynote.doc.r70166.tar.xz +2024/02/26 | 5128 | systems/texlive/tlnet/archive/beautynote.r70166.tar.xz 2024/02/23 | 922500 | systems/texlive/tlnet/archive/beebe.r70064.tar.xz 2022/05/08 | 785552 | systems/texlive/tlnet/archive/begingreek.doc.r63255.tar.xz 2022/05/08 | 1808 | systems/texlive/tlnet/archive/begingreek.r63255.tar.xz @@ -306474,7 +306481,7 @@ 2020/03/04 | 408 | systems/texlive/tlnet/archive/collection-langpolish.r54074.tar.xz 2023/05/16 | 400 | systems/texlive/tlnet/archive/collection-langportuguese.r67125.tar.xz 2023/06/09 | 396 | systems/texlive/tlnet/archive/collection-langspanish.r67307.tar.xz -2024/02/25 | 7112 | systems/texlive/tlnet/archive/collection-latexextra.r70140.tar.xz +2024/02/26 | 7116 | systems/texlive/tlnet/archive/collection-latexextra.r70166.tar.xz 2023/12/14 | 704 | systems/texlive/tlnet/archive/collection-latex.r69131.tar.xz 2024/02/15 | 740 | systems/texlive/tlnet/archive/collection-latexrecommended.r69888.tar.xz 2024/01/13 | 1020 | systems/texlive/tlnet/archive/collection-luatex.r69404.tar.xz @@ -306784,8 +306791,8 @@ 2024/02/22 | 15108 | systems/texlive/tlnet/archive/create-theorem.r70050.tar.xz 2023/08/28 | 159092 | systems/texlive/tlnet/archive/creationboites.doc.r68087.tar.xz 2023/08/28 | 2200 | systems/texlive/tlnet/archive/creationboites.r68087.tar.xz -2024/02/25 | 76148 | systems/texlive/tlnet/archive/crefthe.doc.r70139.tar.xz -2024/02/25 | 4424 | systems/texlive/tlnet/archive/crefthe.r70139.tar.xz +2024/02/26 | 81312 | systems/texlive/tlnet/archive/crefthe.doc.r70165.tar.xz +2024/02/26 | 5000 | systems/texlive/tlnet/archive/crefthe.r70165.tar.xz 2022/10/01 | 34252 | systems/texlive/tlnet/archive/crimson.doc.r64559.tar.xz 2022/10/02 | 85180 | systems/texlive/tlnet/archive/crimsonpro.doc.r64565.tar.xz 2022/10/02 | 2549080 | systems/texlive/tlnet/archive/crimsonpro.r64565.tar.xz @@ -307836,9 +307843,9 @@ 2021/07/19 | 313228 | systems/texlive/tlnet/archive/easing.doc.r59975.tar.xz 2021/07/19 | 2220 | systems/texlive/tlnet/archive/easing.r59975.tar.xz 2021/07/19 | 7876 | systems/texlive/tlnet/archive/easing.source.r59975.tar.xz -2024/02/23 | 629168 | systems/texlive/tlnet/archive/easybook.doc.r70073.tar.xz -2024/02/23 | 16828 | systems/texlive/tlnet/archive/easybook.r70073.tar.xz -2024/02/23 | 16720 | systems/texlive/tlnet/archive/easybook.source.r70073.tar.xz +2024/02/26 | 629172 | systems/texlive/tlnet/archive/easybook.doc.r70164.tar.xz +2024/02/26 | 16828 | systems/texlive/tlnet/archive/easybook.r70164.tar.xz +2024/02/26 | 16716 | systems/texlive/tlnet/archive/easybook.source.r70164.tar.xz 2019/02/28 | 4540 | systems/texlive/tlnet/archive/easy.doc.r19440.tar.xz 2023/10/12 | 344 | systems/texlive/tlnet/archive/easydtx.aarch64-linux.r68514.tar.xz 2023/10/12 | 344 | systems/texlive/tlnet/archive/easydtx.amd64-freebsd.r68514.tar.xz @@ -308990,9 +308997,9 @@ 2024/01/02 | 1088 | systems/texlive/tlnet/archive/freealign.r69267.tar.xz 2019/02/28 | 142332 | systems/texlive/tlnet/archive/frege.doc.r27417.tar.xz 2019/02/28 | 4528 | systems/texlive/tlnet/archive/frege.r27417.tar.xz -2024/02/21 | 580400 | systems/texlive/tlnet/archive/frenchmath.doc.r70031.tar.xz -2024/02/21 | 2924 | systems/texlive/tlnet/archive/frenchmath.r70031.tar.xz -2024/02/21 | 15404 | systems/texlive/tlnet/archive/frenchmath.source.r70031.tar.xz +2024/02/26 | 580696 | systems/texlive/tlnet/archive/frenchmath.doc.r70163.tar.xz +2024/02/26 | 2956 | systems/texlive/tlnet/archive/frenchmath.r70163.tar.xz +2024/02/26 | 15456 | systems/texlive/tlnet/archive/frenchmath.source.r70163.tar.xz 2020/10/20 | 191432 | systems/texlive/tlnet/archive/frimurer.doc.r56704.tar.xz 2020/10/20 | 15456 | systems/texlive/tlnet/archive/frimurer.r56704.tar.xz 2020/10/20 | 4184 | systems/texlive/tlnet/archive/frimurer.source.r56704.tar.xz @@ -311851,8 +311858,8 @@ 2019/02/28 | 1092 | systems/texlive/tlnet/archive/mceinleger.r15878.tar.xz 2021/09/13 | 232948 | systems/texlive/tlnet/archive/mcexam.doc.r60481.tar.xz 2021/09/13 | 11396 | systems/texlive/tlnet/archive/mcexam.r60481.tar.xz -2024/01/22 | 1059180 | systems/texlive/tlnet/archive/mcf2graph.doc.r69521.tar.xz -2024/01/22 | 444 | systems/texlive/tlnet/archive/mcf2graph.r69521.tar.xz +2024/02/26 | 1062288 | systems/texlive/tlnet/archive/mcf2graph.doc.r70167.tar.xz +2024/02/26 | 448 | systems/texlive/tlnet/archive/mcf2graph.r70167.tar.xz 2019/02/28 | 138716 | systems/texlive/tlnet/archive/mcite.doc.r18173.tar.xz 2019/02/28 | 391980 | systems/texlive/tlnet/archive/mciteplus.doc.r31648.tar.xz 2019/02/28 | 34344 | systems/texlive/tlnet/archive/mciteplus.r31648.tar.xz @@ -312664,8 +312671,8 @@ 2019/02/28 | 196212 | systems/texlive/tlnet/archive/newspaper.doc.r15878.tar.xz 2019/02/28 | 1924 | systems/texlive/tlnet/archive/newspaper.r15878.tar.xz 2019/02/28 | 6804 | systems/texlive/tlnet/archive/newspaper.source.r15878.tar.xz -2024/02/10 | 969884 | systems/texlive/tlnet/archive/newtx.doc.r69756.tar.xz -2024/02/10 | 6054376 | systems/texlive/tlnet/archive/newtx.r69756.tar.xz +2024/02/26 | 973524 | systems/texlive/tlnet/archive/newtx.doc.r70168.tar.xz +2024/02/26 | 6061396 | systems/texlive/tlnet/archive/newtx.r70168.tar.xz 2024/01/27 | 263284 | systems/texlive/tlnet/archive/newtxsf.doc.r69597.tar.xz 2024/01/27 | 106028 | systems/texlive/tlnet/archive/newtxsf.r69597.tar.xz 2024/01/17 | 194632 | systems/texlive/tlnet/archive/newtxtt.doc.r69451.tar.xz @@ -313923,8 +313930,8 @@ 2024/01/23 | 1336892 | systems/texlive/tlnet/archive/profcollege.r69539.tar.xz 2022/04/27 | 134096 | systems/texlive/tlnet/archive/proflabo.doc.r63147.tar.xz 2022/04/27 | 2748 | systems/texlive/tlnet/archive/proflabo.r63147.tar.xz -2024/02/12 | 3426172 | systems/texlive/tlnet/archive/proflycee.doc.r69804.tar.xz -2024/02/12 | 56408 | systems/texlive/tlnet/archive/proflycee.r69804.tar.xz +2024/02/26 | 1874236 | systems/texlive/tlnet/archive/proflycee.doc.r70162.tar.xz +2024/02/26 | 57952 | systems/texlive/tlnet/archive/proflycee.r70162.tar.xz 2024/01/22 | 297292 | systems/texlive/tlnet/archive/profmaquette.doc.r69526.tar.xz 2024/01/22 | 22356 | systems/texlive/tlnet/archive/profmaquette.r69526.tar.xz 2024/02/09 | 438260 | systems/texlive/tlnet/archive/profsio.doc.r69745.tar.xz @@ -316154,7 +316161,7 @@ 2022/09/13 | 600 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r64356.tar.xz 2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r64356.tar.xz 2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r64356.tar.xz -2024/02/25 | 432792 | systems/texlive/tlnet/archive/texlive-scripts.doc.r70120.tar.xz +2024/02/26 | 432784 | systems/texlive/tlnet/archive/texlive-scripts.doc.r70146.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 @@ -316176,7 +316183,7 @@ 2022/09/13 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r64356.tar.xz 2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r64356.tar.xz 2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r64356.tar.xz -2024/02/25 | 114036 | systems/texlive/tlnet/archive/texlive-scripts.r70120.tar.xz +2024/02/26 | 114040 | systems/texlive/tlnet/archive/texlive-scripts.r70146.tar.xz 2022/09/13 | 580 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r64356.tar.xz 2023/05/14 | 60312 | systems/texlive/tlnet/archive/texlive-scripts.windows.r67095.tar.xz 2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r64356.tar.xz @@ -317049,8 +317056,8 @@ 2019/02/28 | 3948 | systems/texlive/tlnet/archive/uebungsblatt.r15878.tar.xz 2019/02/28 | 4250444 | systems/texlive/tlnet/archive/uestcthesis.doc.r36371.tar.xz 2019/02/28 | 17228 | systems/texlive/tlnet/archive/uestcthesis.r36371.tar.xz -2024/02/22 | 541200 | systems/texlive/tlnet/archive/ufrgscca.doc.r70054.tar.xz -2024/02/22 | 24348 | systems/texlive/tlnet/archive/ufrgscca.r70054.tar.xz +2024/02/26 | 541900 | systems/texlive/tlnet/archive/ufrgscca.doc.r70161.tar.xz +2024/02/26 | 24688 | systems/texlive/tlnet/archive/ufrgscca.r70161.tar.xz 2019/02/28 | 872 | systems/texlive/tlnet/archive/uhc.doc.r16791.tar.xz 2019/02/28 | 3600148 | systems/texlive/tlnet/archive/uhc.r16791.tar.xz 2019/02/28 | 380280 | systems/texlive/tlnet/archive/uhhassignment.doc.r44026.tar.xz @@ -318089,16 +318096,16 @@ 2020/07/18 | 47816 | systems/texlive/tlnet/archive/zztex.doc.r55862.tar.xz 2020/07/18 | 101724 | systems/texlive/tlnet/archive/zztex.r55862.tar.xz 2024/02/05 | 125030 | systems/texlive/tlnet/install-tl -2024/02/25 | 5747979 | systems/texlive/tlnet/install-tl-unx.tar.gz -2024/02/25 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 -2024/02/25 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc +2024/02/26 | 5749205 | systems/texlive/tlnet/install-tl-unx.tar.gz +2024/02/26 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 +2024/02/26 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc 2023/05/13 | 5083 | systems/texlive/tlnet/install-tl-windows.bat -2024/02/25 | 21028604 | systems/texlive/tlnet/install-tl-windows.exe -2024/02/25 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 -2024/02/25 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc -2024/02/25 | 26035567 | systems/texlive/tlnet/install-tl.zip -2024/02/25 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 -2024/02/25 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc +2024/02/26 | 21031346 | systems/texlive/tlnet/install-tl-windows.exe +2024/02/26 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 +2024/02/26 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc +2024/02/26 | 26035580 | systems/texlive/tlnet/install-tl.zip +2024/02/26 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 +2024/02/26 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc 2023/03/19 | 1229 | systems/texlive/tlnet/README.md 2023/03/19 | 0 | systems/texlive/tlnet/TEXLIVE_2023 2024/01/02 | 9011 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg @@ -318108,7 +318115,7 @@ 2024/01/02 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg 2024/01/16 | 50726 | systems/texlive/tlnet/tlpkg/installer/config.guess 2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt -2024/02/25 | 7265 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl +2024/02/26 | 7312 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl 2023/12/13 | 226639 | 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 @@ -318150,12 +318157,12 @@ 2023/02/21 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm 2024/01/31 | 5840 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm 2023/04/08 | 28167 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm -2024/02/25 | 19338291 | systems/texlive/tlnet/tlpkg/texlive.tlpdb -2024/02/25 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +2024/02/26 | 19339962 | systems/texlive/tlnet/tlpkg/texlive.tlpdb +2024/02/26 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 2024/01/31 | 87229 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm -2024/02/25 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 -2024/02/25 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc -2024/02/25 | 2549612 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +2024/02/26 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +2024/02/26 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc +2024/02/26 | 2552252 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz 2023/02/20 | 58928 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm 2023/06/11 | 42749 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm 2023/02/21 | 16138 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm @@ -320862,7 +320869,7 @@ 2024/02/11 | 95286 | systems/texlive/tlnet/tlpkg/translations/fr.po 2024/02/11 | 88795 | systems/texlive/tlnet/tlpkg/translations/it.po 2024/02/11 | 63064 | systems/texlive/tlnet/tlpkg/translations/ja.po -2024/02/25 | 47499 | systems/texlive/tlnet/tlpkg/translations/messages.pot +2024/02/26 | 47499 | systems/texlive/tlnet/tlpkg/translations/messages.pot 2024/02/11 | 59155 | systems/texlive/tlnet/tlpkg/translations/nl.po 2024/02/11 | 68210 | systems/texlive/tlnet/tlpkg/translations/pl.po 2024/02/11 | 83641 | systems/texlive/tlnet/tlpkg/translations/pt_BR.po @@ -329328,7 +329335,7 @@ 2014/07/05 | 611 | systems/win32/yandy/README 2014/07/05 | 1004628 | systems/win32/yandy/yandy-src.tar.xz 2014/07/05 | 1012416 | systems/win32/yandy.zip -2024/02/26 | 186 | timestamp +2024/02/27 | 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 32d39cf151..8f220a3e89 100644 --- a/FILES.byname.gz +++ b/FILES.byname.gz diff --git a/FILES.last07days b/FILES.last07days index 61e1922227..361960d43b 100644 --- a/FILES.last07days +++ b/FILES.last07days @@ -1,3 +1,68 @@ +2024/02/26 | 973524 | systems/texlive/tlnet/archive/newtx.doc.r70168.tar.xz +2024/02/26 | 92770 | macros/latex/contrib/create-theorem/doc/create-theorem-doc.pdf +2024/02/26 | 896 | macros/latex/contrib/create-theorem/README.md +2024/02/26 | 858720 | systems/texlive/tlnet/archive/beautynote.doc.r70166.tar.xz +2024/02/26 | 82082 | macros/latex/contrib/cleveref-forward.zip +2024/02/26 | 81312 | systems/texlive/tlnet/archive/crefthe.doc.r70165.tar.xz +2024/02/26 | 80237 | macros/latex/contrib/create-theorem/code/create-theorem-preset-names-plural-cleveref.tex +2024/02/26 | 79578 | macros/latex/contrib/create-theorem/code/create-theorem-preset-names-cleveref.tex +2024/02/26 | 78085 | macros/latex/contrib/weiqi/weiqi.dtx +2024/02/26 | 7312 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl +2024/02/26 | 7116 | systems/texlive/tlnet/archive/collection-latexextra.r70166.tar.xz +2024/02/26 | 65462 | macros/latex/contrib/cleveref-forward/demo/cleveref-forward-demo.pdf +2024/02/26 | 629172 | systems/texlive/tlnet/archive/easybook.doc.r70164.tar.xz +2024/02/26 | 6061396 | systems/texlive/tlnet/archive/newtx.r70168.tar.xz +2024/02/26 | 580696 | systems/texlive/tlnet/archive/frenchmath.doc.r70163.tar.xz +2024/02/26 | 57952 | systems/texlive/tlnet/archive/proflycee.r70162.tar.xz +2024/02/26 | 575 | macros/latex/contrib/weiqi/README.md +2024/02/26 | 5749205 | systems/texlive/tlnet/install-tl-unx.tar.gz +2024/02/26 | 541900 | systems/texlive/tlnet/archive/ufrgscca.doc.r70161.tar.xz +2024/02/26 | 5128 | systems/texlive/tlnet/archive/beautynote.r70166.tar.xz +2024/02/26 | 5000 | systems/texlive/tlnet/archive/crefthe.r70165.tar.xz +2024/02/26 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +2024/02/26 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc +2024/02/26 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc +2024/02/26 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc +2024/02/26 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc +2024/02/26 | 48571 | macros/latex/contrib/create-theorem/code/create-theorem.sty +2024/02/26 | 47499 | systems/texlive/tlnet/tlpkg/translations/messages.pot +2024/02/26 | 453 | info/tlmgrbasics/README +2024/02/26 | 448 | systems/texlive/tlnet/archive/mcf2graph.r70167.tar.xz +2024/02/26 | 432784 | systems/texlive/tlnet/archive/texlive-scripts.doc.r70146.tar.xz +2024/02/26 | 4118047 | biblio/ctan-bibdata.zip +2024/02/26 | 38340 | macros/latex/contrib/cleveref-forward/cleveref-forward.sty +2024/02/26 | 38018 | macros/latex/contrib/create-theorem/doc/create-theorem-doc.tex +2024/02/26 | 3708800 | biblio/ctan-bibdata/ctan.pdf +2024/02/26 | 350256 | macros/latex/contrib/weiqi.zip +2024/02/26 | 345824 | macros/latex/contrib/weiqi/weiqi.pdf +2024/02/26 | 2956 | systems/texlive/tlnet/archive/frenchmath.r70163.tar.xz +2024/02/26 | 2850306 | biblio/ctan-bibdata/ctan.bib +2024/02/26 | 2612 | macros/latex/contrib/cleveref-forward/README.md +2024/02/26 | 26035580 | systems/texlive/tlnet/install-tl.zip +2024/02/26 | 2552252 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +2024/02/26 | 24688 | systems/texlive/tlnet/archive/ufrgscca.r70161.tar.xz +2024/02/26 | 24523 | info/tlmgrbasics/doc/tlmgr.tex +2024/02/26 | 21031346 | systems/texlive/tlnet/install-tl-windows.exe +2024/02/26 | 19339962 | systems/texlive/tlnet/tlpkg/texlive.tlpdb +2024/02/26 | 19106 | macros/latex/contrib/create-theorem/LICENSE +2024/02/26 | 19106 | macros/latex/contrib/cleveref-forward/LICENSE +2024/02/26 | 1874236 | systems/texlive/tlnet/archive/proflycee.doc.r70162.tar.xz +2024/02/26 | 16828 | systems/texlive/tlnet/archive/easybook.r70164.tar.xz +2024/02/26 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx +2024/02/26 | 16716 | systems/texlive/tlnet/archive/easybook.source.r70164.tar.xz +2024/02/26 | 164419 | info/tlmgrbasics.zip +2024/02/26 | 160621 | info/tlmgrbasics/doc/tlmgr.pdf +2024/02/26 | 15481 | macros/latex/contrib/cleveref-forward/demo/cleveref-forward-demo.tex +2024/02/26 | 15456 | systems/texlive/tlnet/archive/frenchmath.source.r70163.tar.xz +2024/02/26 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 +2024/02/26 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 +2024/02/26 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 +2024/02/26 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +2024/02/26 | 12 | macros/latex/contrib/create-theorem/DEPENDS.txt +2024/02/26 | 127824 | macros/latex/contrib/create-theorem.zip +2024/02/26 | 1259 | macros/latex/contrib/weiqi/weiqi.ins +2024/02/26 | 114040 | systems/texlive/tlnet/archive/texlive-scripts.r70146.tar.xz +2024/02/26 | 1062288 | systems/texlive/tlnet/archive/mcf2graph.doc.r70167.tar.xz 2024/02/25 | 99039 | graphics/mcf2graph/mcf_manual.tex 2024/02/25 | 9677453 | fonts/newtx.zip 2024/02/25 | 9471 | macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty @@ -8,13 +73,10 @@ 2024/02/25 | 8092 | systems/texlive/tlnet/archive/fontsetup.r70135.tar.xz 2024/02/25 | 78284 | macros/latex/contrib/ufrgscca/doc/ufrgscca.tex 2024/02/25 | 77050 | macros/latex/contrib/easybook/easybook.dtx -2024/02/25 | 76148 | systems/texlive/tlnet/archive/crefthe.doc.r70139.tar.xz 2024/02/25 | 750 | macros/latex/contrib/beautynote/README.md 2024/02/25 | 732456 | systems/texlive/tlnet/archive/bithesis.doc.r70136.tar.xz -2024/02/25 | 7265 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl 2024/02/25 | 71860 | macros/latex/contrib/crefthe/crefthe-doc.pdf 2024/02/25 | 713698 | graphics/mcf2graph/mcf_example.pdf -2024/02/25 | 7112 | systems/texlive/tlnet/archive/collection-latexextra.r70140.tar.xz 2024/02/25 | 68212 | systems/texlive/tlnet/archive/cleveref-forward.doc.r70140.tar.xz 2024/02/25 | 648482 | macros/latex/contrib/easybook.zip 2024/02/25 | 604258 | macros/latex/contrib/easybook/easybook.pdf @@ -25,25 +87,14 @@ 2024/02/25 | 5928 | systems/texlive/tlnet/archive/cleveref-forward.r70140.tar.xz 2024/02/25 | 592829 | macros/latex/contrib/ufrgscca.zip 2024/02/25 | 580908 | macros/latex/contrib/frenchmath/frenchmath.pdf -2024/02/25 | 5747979 | systems/texlive/tlnet/install-tl-unx.tar.gz 2024/02/25 | 5241 | macros/latex/contrib/beautynote/beautynote.tex -2024/02/25 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 -2024/02/25 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc -2024/02/25 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc -2024/02/25 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc -2024/02/25 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc 2024/02/25 | 4858 | graphics/mcf2graph/mcf_example.tex 2024/02/25 | 4843 | macros/latex/contrib/crefthe/README.md 2024/02/25 | 47939 | macros/latex/contrib/frenchmath/frenchmath.dtx -2024/02/25 | 47499 | systems/texlive/tlnet/tlpkg/translations/messages.pot 2024/02/25 | 4599 | macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-en.tex 2024/02/25 | 45440 | macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.tex -2024/02/25 | 4424 | systems/texlive/tlnet/archive/crefthe.r70139.tar.xz -2024/02/25 | 432792 | systems/texlive/tlnet/archive/texlive-scripts.doc.r70120.tar.xz 2024/02/25 | 426012 | systems/texlive/tlnet/archive/litetable.doc.r70138.tar.xz 2024/02/25 | 41416 | systems/texlive/tlnet/archive/projlib.doc.r70137.tar.xz -2024/02/25 | 4117966 | biblio/ctan-bibdata.zip -2024/02/25 | 3708800 | biblio/ctan-bibdata/ctan.pdf 2024/02/25 | 3612 | systems/texlive/tlnet/archive/litetable.r70138.tar.xz 2024/02/25 | 3600 | systems/texlive/tlnet/archive/context-squares.r70141.tar.xz 2024/02/25 | 3422 | macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty @@ -52,37 +103,26 @@ 2024/02/25 | 31388 | systems/texlive/tlnet/archive/projlib.source.r70137.tar.xz 2024/02/25 | 31216 | systems/texlive/tlnet/archive/projlib.r70137.tar.xz 2024/02/25 | 29418 | macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty -2024/02/25 | 2849851 | biblio/ctan-bibdata/ctan.bib -2024/02/25 | 26035567 | systems/texlive/tlnet/install-tl.zip 2024/02/25 | 25864 | systems/texlive/tlnet/archive/bithesis.source.r70136.tar.xz 2024/02/25 | 25797 | macros/latex/contrib/crefthe/crefthe.sty -2024/02/25 | 2549612 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz 2024/02/25 | 25347 | macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty 2024/02/25 | 249425 | macros/latex/contrib/proflycee/doc/ProfLycee-docctan.zip 2024/02/25 | 23291 | macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty 2024/02/25 | 22352 | macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty 2024/02/25 | 21101 | graphics/mcf2graph/CHANGELOG -2024/02/25 | 21028604 | systems/texlive/tlnet/install-tl-windows.exe 2024/02/25 | 2064 | macros/latex/contrib/ufrgscca/latex/ufrgscca-base-en.def 2024/02/25 | 20333 | macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty 2024/02/25 | 2000 | systems/texlive/tlnet/archive/context-squares.doc.r70141.tar.xz 2024/02/25 | 1955150 | macros/latex/contrib/proflycee.zip -2024/02/25 | 19338291 | systems/texlive/tlnet/tlpkg/texlive.tlpdb 2024/02/25 | 19263 | macros/latex/contrib/crefthe/crefthe-doc.tex 2024/02/25 | 19229 | macros/latex/contrib/ufrgscca/latex/ufrgscca-terms-ptBR.tex 2024/02/25 | 19196 | systems/texlive/tlnet/archive/bithesis.r70136.tar.xz 2024/02/25 | 19106 | macros/latex/contrib/crefthe/LICENSE 2024/02/25 | 1901 | macros/latex/contrib/ufrgscca/latex/ufrgscca-base-ptBR.def 2024/02/25 | 17611 | macros/latex/contrib/beautynote/beautynote.cls -2024/02/25 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx 2024/02/25 | 1612313 | macros/latex/contrib/beautynote.zip -2024/02/25 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 2024/02/25 | 1539 | graphics/mcf2graph/mcf_exa_soc.mp -2024/02/25 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 -2024/02/25 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 -2024/02/25 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 2024/02/25 | 1179 | graphics/mcf2graph/template_soc.mp -2024/02/25 | 114036 | systems/texlive/tlnet/archive/texlive-scripts.r70120.tar.xz 2024/02/25 | 11041 | macros/latex/contrib/ufrgscca/latex/ufrgscca.cls 2024/02/25 | 109452 | graphics/mcf2graph/main_lib.mcf 2024/02/25 | 1071116 | graphics/mcf2graph.zip @@ -96,7 +136,6 @@ 2024/02/24 | 83404 | systems/texlive/tlnet/archive/dtk.doc.r70117.tar.xz 2024/02/24 | 7740 | systems/texlive/tlnet/archive/minimalist.doc.r70101.tar.xz 2024/02/24 | 759311 | macros/unicodetex/latex/bithesis.zip -2024/02/24 | 75033 | macros/latex/contrib/cleveref-forward.zip 2024/02/24 | 7424 | systems/texlive/tlnet/archive/colorist.doc.r70101.tar.xz 2024/02/24 | 731709 | macros/unicodetex/latex/bithesis/bithesis.pdf 2024/02/24 | 7127 | macros/latex/contrib/litetable/doc/litetable-demo.tex @@ -106,7 +145,6 @@ 2024/02/24 | 6548 | macros/unicodetex/latex/fontsetup/tex/fontsetup.sty 2024/02/24 | 632 | systems/texlive/tlnet/archive/collection-games.r70111.tar.xz 2024/02/24 | 603914 | macros/latex/contrib/litetable.zip -2024/02/24 | 58724 | macros/latex/contrib/cleveref-forward/demo/cleveref-forward-demo.pdf 2024/02/24 | 5846 | macros/latex/contrib/projlib/README.md 2024/02/24 | 57564 | systems/texlive/tlnet/archive/make4ht.r70117.tar.xz 2024/02/24 | 575180 | systems/texlive/tlnet/archive/se2thesis.doc.r70117.tar.xz @@ -118,7 +156,6 @@ 2024/02/24 | 48681 | fonts/newtx/README 2024/02/24 | 452040 | systems/texlive/tlnet/archive/twoxtwogame.doc.r70111.tar.xz 2024/02/24 | 41424 | systems/texlive/tlnet/archive/luaxml.r70117.tar.xz -2024/02/24 | 38194 | macros/latex/contrib/cleveref-forward/cleveref-forward.sty 2024/02/24 | 37933 | macros/latex/contrib/projlib/logo/ProjLib-logo.png 2024/02/24 | 37332 | systems/texlive/tlnet/archive/tagpdf.r70117.tar.xz 2024/02/24 | 371 | macros/unicodetex/latex/fontsetup/README @@ -145,13 +182,10 @@ 2024/02/24 | 19 | macros/latex/contrib/projlib/DEPENDS.txt 2024/02/24 | 1946 | macros/unicodetex/latex/bithesis/README.md 2024/02/24 | 19106 | macros/latex/contrib/projlib/LICENSE -2024/02/24 | 19106 | macros/latex/contrib/cleveref-forward/LICENSE 2024/02/24 | 186184 | systems/texlive/tlnet/archive/make4ht.doc.r70117.tar.xz 2024/02/24 | 18160 | systems/texlive/tlnet/archive/tex4ebook.r70117.tar.xz 2024/02/24 | 177468 | macros/latex/contrib/litetable/doc/litetable-en.pdf -2024/02/24 | 1743 | macros/latex/contrib/cleveref-forward/README.md 2024/02/24 | 16108 | macros/latex/contrib/litetable/doc/litetable-en.tex -2024/02/24 | 15388 | macros/latex/contrib/cleveref-forward/demo/cleveref-forward-demo.tex 2024/02/24 | 14716 | systems/texlive/tlnet/archive/dtk.r70117.tar.xz 2024/02/24 | 141791 | fonts/newtx/tex/newtxmath.sty 2024/02/24 | 14139 | macros/latex/contrib/litetable/doc/litetable-cn.tex @@ -205,7 +239,6 @@ 2024/02/23 | 646 | support/make4ht/extensions/make4ht-ext-common_filters.lua 2024/02/23 | 6456 | support/make4ht/make4ht-lib.lua 2024/02/23 | 62963 | macros/unicodetex/latex/simplivre/demo/simplivre-demo-style-stream.pdf -2024/02/23 | 629168 | systems/texlive/tlnet/archive/easybook.doc.r70073.tar.xz 2024/02/23 | 627 | support/make4ht/domfilters/make4ht-odtimagesize.lua 2024/02/23 | 6239 | macros/context/contrib/context-squares/tex/context/third/squares/t-squares.lmt 2024/02/23 | 6231263 | fonts/simpleicons.zip @@ -371,9 +404,7 @@ 2024/02/23 | 174134 | fonts/simpleicons/doc/bindings.tex 2024/02/23 | 1732 | support/tex4ebook/tex4ebook-exec_mobi.lua 2024/02/23 | 168747 | graphics/pgf/contrib/twoxtwogame/twoxtwogame.sty -2024/02/23 | 16828 | systems/texlive/tlnet/archive/easybook.r70073.tar.xz 2024/02/23 | 16746 | support/tex4ebook/tex4ebook-exec_epub.lua -2024/02/23 | 16720 | systems/texlive/tlnet/archive/easybook.source.r70073.tar.xz 2024/02/23 | 16645 | macros/luatex/latex/gitinfo-lua/doc/gitinfo-lua.tex 2024/02/23 | 1655 | support/make4ht/domfilters/make4ht-fixinlines.lua 2024/02/23 | 1632 | fonts/simpleicons/tex/simpleicons.sty @@ -469,7 +500,6 @@ 2024/02/22 | 557427 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf 2024/02/22 | 5427 | macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty 2024/02/22 | 542196 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf -2024/02/22 | 541200 | systems/texlive/tlnet/archive/ufrgscca.doc.r70054.tar.xz 2024/02/22 | 540930 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf 2024/02/22 | 536366 | macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf 2024/02/22 | 528830 | macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf @@ -520,7 +550,6 @@ 2024/02/22 | 2586486 | systems/doc/metapost.zip 2024/02/22 | 24880 | macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.pdf 2024/02/22 | 24806 | macros/latex/contrib/tagpdf/ex-structure-obsolete.pdf -2024/02/22 | 24348 | systems/texlive/tlnet/archive/ufrgscca.r70054.tar.xz 2024/02/22 | 23335 | macros/latex/contrib/tagpdf/tagpdf.dtx 2024/02/22 | 23311 | macros/latex/contrib/tagpdf/acrobat.png 2024/02/22 | 2280 | macros/latex/contrib/tagpdf/tagpdf-code.tex @@ -590,7 +619,6 @@ 2024/02/21 | 944 | fonts/newtx/tfm/ntx-Bold-lf-ot1.tfm 2024/02/21 | 92773 | macros/latex/contrib/homework/homework-demo-jp.pdf 2024/02/21 | 90105 | macros/latex/contrib/homework/homework-demo-cn.pdf -2024/02/21 | 88437 | macros/latex/contrib/create-theorem/doc/create-theorem-doc.pdf 2024/02/21 | 865460 | systems/texlive/tlnet/archive/l3backend.doc.r70027.tar.xz 2024/02/21 | 8332 | fonts/newtx/tfm/ntx-BoldItalic-osf-sc-ly1.tfm 2024/02/21 | 8332 | fonts/newtx/tfm/ntx-BoldItalic-lf-sc-ly1.tfm @@ -608,12 +636,10 @@ 2024/02/21 | 8048 | fonts/newtx/tfm/ntx-Italic-tosf-scl-ly1.tfm 2024/02/21 | 8048 | fonts/newtx/tfm/ntx-Italic-tlf-sc-ly1.tfm 2024/02/21 | 8048 | fonts/newtx/tfm/ntx-Italic-tlf-scl-ly1.tfm -2024/02/21 | 80289 | macros/latex/contrib/create-theorem/code/create-theorem-preset-names-plural.tex 2024/02/21 | 8024 | fonts/newtx/tfm/ntx-Slanted-lf-sc-ly1.tfm 2024/02/21 | 8012 | fonts/newtx/tfm/ntx-Slanted-osf-sc-ly1.tfm 2024/02/21 | 7984 | fonts/newtx/tfm/ntx-Slanted-tosf-sc-ly1.tfm 2024/02/21 | 7984 | fonts/newtx/tfm/ntx-Slanted-tlf-sc-ly1.tfm -2024/02/21 | 79630 | macros/latex/contrib/create-theorem/code/create-theorem-preset-names.tex 2024/02/21 | 7932 | fonts/newtx/tfm/ntx-BoldSlanted-lf-sc-ly1.tfm 2024/02/21 | 7928 | fonts/newtx/tfm/ntx-BoldSlanted-osf-sc-ly1.tfm 2024/02/21 | 7900 | fonts/newtx/tfm/ntx-BoldSlanted-tosf-sc-ly1.tfm @@ -661,7 +687,6 @@ 2024/02/21 | 7237 | macros/unicodetex/latex/beaulivre/README.md 2024/02/21 | 7224 | fonts/newtx/tfm/ntxth-Italic-tlf-ly1.tfm 2024/02/21 | 7151 | systems/doc/metapost/source-manual/mpman-app-numbersystems.tex -2024/02/21 | 693 | macros/latex/contrib/create-theorem/README.md 2024/02/21 | 66777 | macros/context/contrib/context-handlecsv/tex/context/third/handlecsv/t-handlecsv.lua 2024/02/21 | 66376 | macros/luatex/latex/lua-placeholders/doc/lua-placeholders-example/example.pdf 2024/02/21 | 65964 | systems/texlive/tlnet/archive/langsci.r70028.tar.xz @@ -671,7 +696,6 @@ 2024/02/21 | 619476 | systems/texlive/tlnet/archive/l3kernel.source.r70027.tar.xz 2024/02/21 | 6052 | macros/context/contrib/context-handlecsv/tex/context/third/handlecsv/t-handlecsv-extra.lua 2024/02/21 | 586531 | systems/doc/xetex.zip -2024/02/21 | 580400 | systems/texlive/tlnet/archive/frenchmath.doc.r70031.tar.xz 2024/02/21 | 578 | macros/luatex/latex/lua-placeholders/README.md 2024/02/21 | 553023 | macros/latex/contrib/homework.zip 2024/02/21 | 54480 | macros/latex/contrib/homework/homework-demo-de.pdf @@ -681,7 +705,6 @@ 2024/02/21 | 520 | fonts/newtx/vf/ntx-Bold-lf-ot1.vf 2024/02/21 | 4999 | systems/doc/aleph.zip 2024/02/21 | 49656 | systems/texlive/tlnet/archive/piton.source.r70029.tar.xz -2024/02/21 | 48528 | macros/latex/contrib/create-theorem/code/create-theorem.sty 2024/02/21 | 4828 | fonts/newtx/tfm/ntx-BoldItalic-lf-scl-ot1.tfm 2024/02/21 | 4820 | fonts/newtx/tfm/ntx-BoldItalic-osf-scl-ot1.tfm 2024/02/21 | 4776 | fonts/newtx/tfm/ntx-BoldItalic-tlf-scl-ot1.tfm @@ -707,7 +730,6 @@ 2024/02/21 | 4043 | macros/latex/contrib/homework/homework-demo-de.tex 2024/02/21 | 3968 | systems/texlive/tlnet/archive/mismath.r70030.tar.xz 2024/02/21 | 3928 | macros/latex/contrib/homework/homework-demo-fr.tex -2024/02/21 | 38008 | macros/latex/contrib/create-theorem/doc/create-theorem-doc.tex 2024/02/21 | 3795 | macros/latex/contrib/homework/homework-demo-es.tex 2024/02/21 | 3741 | macros/luatex/latex/lua-placeholders/scripts/lua-placeholders-parser.lua 2024/02/21 | 3644 | systems/texlive/tlnet/archive/colortbl.r70034.tar.xz @@ -781,7 +803,6 @@ 2024/02/21 | 3008 | fonts/newtx/tfm/ntx-Bold-osf-ot1.tfm 2024/02/21 | 2976 | fonts/newtx/tfm/ntx-Bold-tosf-ot1.tfm 2024/02/21 | 2976 | fonts/newtx/tfm/ntx-Bold-tlf-ot1.tfm -2024/02/21 | 2924 | systems/texlive/tlnet/archive/frenchmath.r70031.tar.xz 2024/02/21 | 289 | macros/luatex/latex/lua-placeholders/doc/lua-placeholders-example/example.yaml 2024/02/21 | 2839 | macros/luatex/latex/lua-placeholders/tex/lua-placeholders.sty 2024/02/21 | 2821604 | systems/texlive/tlnet/archive/citation-style-language.r70035.tar.xz @@ -807,7 +828,6 @@ 2024/02/21 | 19106 | macros/unicodetex/latex/lebhart/LICENSE 2024/02/21 | 19106 | macros/unicodetex/latex/beaulivre/LICENSE 2024/02/21 | 19106 | macros/latex/contrib/homework/LICENSE -2024/02/21 | 19106 | macros/latex/contrib/create-theorem/LICENSE 2024/02/21 | 19104 | fonts/newtx/tfm/ntx-Slanted-osf-scl-t1.tfm 2024/02/21 | 19076 | fonts/newtx/tfm/ntx-Slanted-tosf-scl-t1.tfm 2024/02/21 | 19076 | fonts/newtx/tfm/ntx-Slanted-tlf-scl-t1.tfm @@ -823,7 +843,6 @@ 2024/02/21 | 179384 | systems/texlive/tlnet/archive/l3kernel.r70027.tar.xz 2024/02/21 | 17452 | systems/texlive/tlnet/archive/piton.r70029.tar.xz 2024/02/21 | 16236 | systems/texlive/tlnet/archive/l3backend.r70027.tar.xz -2024/02/21 | 15404 | systems/texlive/tlnet/archive/frenchmath.source.r70031.tar.xz 2024/02/21 | 15088 | macros/luatex/latex/lua-placeholders/doc/lua-placeholders-manual.tex 2024/02/21 | 1451811 | macros/latex/contrib/listings/listings-devel.pdf 2024/02/21 | 14331 | macros/unicodetex/latex/beaulivre.zip @@ -836,7 +855,6 @@ 2024/02/21 | 13292 | fonts/newtx/tfm/ntx-BoldItalic-tlf-sc-t1.tfm 2024/02/21 | 13284 | fonts/newtx/tfm/ntx-BoldItalic-tosf-sc-t1.tfm 2024/02/21 | 12 | macros/latex/contrib/homework/DEPENDS.txt -2024/02/21 | 12 | macros/latex/contrib/create-theorem/DEPENDS.txt 2024/02/21 | 12880 | systems/texlive/tlnet/archive/colortbl.source.r70034.tar.xz 2024/02/21 | 12617 | macros/latex/contrib/homework/homework.cls 2024/02/21 | 12604 | fonts/newtx/tfm/ntx-Italic-lf-sc-t1.tfm @@ -855,7 +873,6 @@ 2024/02/21 | 12500 | fonts/newtx/tfm/ntx-BoldSlanted-tlf-sc-t1.tfm 2024/02/21 | 12496 | fonts/newtx/tfm/ntx-Slanted-tosf-sc-t1.tfm 2024/02/21 | 12496 | fonts/newtx/tfm/ntx-Slanted-tlf-sc-t1.tfm -2024/02/21 | 123400 | macros/latex/contrib/create-theorem.zip 2024/02/21 | 12328 | fonts/newtx/tfm/ntx-Bold-lf-sc-t1.tfm 2024/02/21 | 12324 | fonts/newtx/tfm/ntx-Bold-osf-sc-t1.tfm 2024/02/21 | 12316 | fonts/newtx/tfm/ntx-Regular-lf-sc-t1.tfm @@ -1382,146 +1399,3 @@ 2024/02/20 | 100486 | macros/latex/contrib/l3kernel/l3seq.dtx 2024/02/20 | 1002355 | macros/luatex/latex/piton/piton.pdf 2024/02/20 | 10018 | macros/latex/contrib/l3experimental/l3draw-scopes.dtx -2024/02/19 | 945 | macros/luatex/generic/luatexja/tool/table_ivd_aj1.lua -2024/02/19 | 945 | macros/luatex/generic/luatexja/doc/jfm-testf.lua -2024/02/19 | 940323 | macros/latex/contrib/nicematrix/nicematrix.pdf -2024/02/19 | 910508 | macros/latex/contrib/nicematrix/nicematrix-french.pdf -2024/02/19 | 896 | macros/luatex/generic/luatexja/tool/otf-KozMinPr6N-Regular.txt -2024/02/19 | 885 | macros/luatex/generic/luatexja/src/patches/lltjp-stfloats.sty -2024/02/19 | 8695 | macros/luatex/generic/luatexja/src/ltj-otf.lua -2024/02/19 | 8660 | macros/luatex/generic/luatexja/src/ltjltxdoc.dtx -2024/02/19 | 83036 | macros/latex/contrib/pynotebook/doc/pynotebook-examples-pitonpyluatex.pdf -2024/02/19 | 825 | macros/luatex/generic/luatexja/src/patches/lltjp-collcell.sty -2024/02/19 | 8103 | macros/luatex/generic/luatexja/src/jfm-min.lua -2024/02/19 | 7836 | macros/latex/contrib/pynotebook/doc/pynotebook-examples-pitonpyluatex.tex -2024/02/19 | 7790 | macros/luatex/generic/luatexja/tool/jfm-convert.lua -2024/02/19 | 7691 | macros/luatex/generic/luatexja/src/ltj-unicode-ccfix.lua -2024/02/19 | 7546 | macros/luatex/generic/luatexja/src/ltj-math.lua -2024/02/19 | 701120 | macros/luatex/generic/luatexja/doc/luatexja-en.pdf -2024/02/19 | 700116 | systems/texlive/tlnet/archive/sjtutex.doc.r69967.tar.xz -2024/02/19 | 6952 | macros/luatex/generic/luatexja/src/ltj-pretreat.lua -2024/02/19 | 6922 | macros/luatex/generic/luatexja/src/addons/luatexja-otf.sty -2024/02/19 | 69217 | macros/luatex/generic/luatexja/doc/ltjltxdoc.pdf -2024/02/19 | 680 | systems/texlive/tlnet/archive/collection-langjapanese.r69967.tar.xz -2024/02/19 | 66496 | systems/texlive/tlnet/archive/jlreq-deluxe.doc.r69971.tar.xz -2024/02/19 | 6571 | macros/luatex/generic/luatexja/src/ltj-latex.sty -2024/02/19 | 6529 | macros/luatex/generic/luatexja/src/patches/lltjdefs.sty -2024/02/19 | 6289 | macros/luatex/generic/luatexja/src/ltj-base.sty -2024/02/19 | 617 | macros/luatex/generic/luatexja/src/patches/lltjp-array.sty -2024/02/19 | 6135 | macros/luatex/generic/luatexja/src/patches/lltjp-tascmac.sty -2024/02/19 | 6117 | macros/latex/contrib/updatemarks/tex/updatemarks-nums.sty -2024/02/19 | 609209 | macros/latex/contrib/nicematrix/nicematrix-code.dtx -2024/02/19 | 6060 | macros/luatex/generic/luatexja/tool/kyoikukanjiChars.tex -2024/02/19 | 5931 | macros/luatex/generic/luatexja/src/ltj-lotf_aux.lua -2024/02/19 | 5850 | macros/luatex/generic/luatexja/src/patches/lltjp-fontspec.sty -2024/02/19 | 58140 | macros/luatex/generic/luatexja/doc/luatexja-ruby.tex -2024/02/19 | 580 | macros/luatex/generic/luatexja/tool/blocks2defcharrange.rb -2024/02/19 | 55401 | macros/luatex/generic/luatexja/src/ltj-jfmglue.lua -2024/02/19 | 551 | macros/luatex/generic/luatexja/tool/jfm-readable.rb -2024/02/19 | 54427 | macros/luatex/generic/luatexja/src/ltj-jisx0208.lua -2024/02/19 | 541168 | macros/luatex/generic/luatexja/doc/luatexja.dtx -2024/02/19 | 5302 | macros/luatex/generic/luatexja/src/addons/luatexja-adjust.sty -2024/02/19 | 5230 | macros/luatex/generic/luatexja/src/ltj-debug.lua -2024/02/19 | 512752 | macros/latex/contrib/pynotebook.zip -2024/02/19 | 511281 | macros/latex/contrib/updatemarks/doc/updatemarks.pdf -2024/02/19 | 508808 | macros/latex/contrib/updatemarks.zip -2024/02/19 | 506 | macros/latex/contrib/updatemarks/README.md -2024/02/19 | 50152 | macros/luatex/generic/luatexja/src/patches/lltjfont.sty -2024/02/19 | 48961 | macros/luatex/generic/luatexja/src/ltj-jfont.lua -2024/02/19 | 4808 | macros/luatex/generic/luatexja/src/jfm-tmin.lua -2024/02/19 | 460413 | macros/luatex/generic/luatexja/doc/ltjsclasses.pdf -2024/02/19 | 4521 | macros/luatex/generic/luatexja/src/ltj-stack.lua -2024/02/19 | 4480 | macros/luatex/generic/luatexja/src/ltj-plain.sty -2024/02/19 | 4452 | macros/luatex/generic/luatexja/doc/jfm-ujisc33.lua -2024/02/19 | 436049 | macros/latex/contrib/pynotebook/doc/pynotebook-doc.pdf -2024/02/19 | 4308 | macros/luatex/generic/luatexja/src/patches/lltjp-atbegshi.sty -2024/02/19 | 4262 | macros/luatex/generic/luatexja/tool/kyoikukanji.txt -2024/02/19 | 425 | macros/luatex/generic/luatexja/src/patches/lltjp-everyshi.sty -2024/02/19 | 4215 | macros/luatex/generic/luatexja/src/ltj-charrange.lua -2024/02/19 | 4201 | macros/luatex/generic/luatexja/src/ltj-lineskip.lua -2024/02/19 | 4126 | macros/luatex/generic/luatexja/src/patches/lltjp-siunitx.sty -2024/02/19 | 40540 | macros/luatex/generic/luatexja/src/ltj-direction.lua -2024/02/19 | 403681 | macros/luatex/generic/luatexja/doc/ltjclasses.pdf -2024/02/19 | 39284 | systems/texlive/tlnet/archive/sjtutex.source.r69967.tar.xz -2024/02/19 | 391680 | macros/luatex/generic/luatexja/doc/luatexja-ruby.pdf -2024/02/19 | 385 | macros/luatex/generic/luatexja/src/ltjsclasses.ins -2024/02/19 | 3827528 | macros/luatex/generic/luatexja.zip -2024/02/19 | 3756 | macros/luatex/generic/luatexja/src/ltj-compat.lua -2024/02/19 | 3672 | fonts/newtx/tfm/ntxebgbmi.tfm -2024/02/19 | 3650 | macros/luatex/generic/luatexja/src/ltj-inputbuf.lua -2024/02/19 | 3632 | macros/luatex/generic/luatexja/README -2024/02/19 | 3600 | fonts/newtx/tfm/ntxebgmi.tfm -2024/02/19 | 355 | macros/luatex/generic/luatexja/tool/otf-AdobeMingStd-Light.txt -2024/02/19 | 355 | macros/luatex/generic/luatexja/doc/luatexja.ins -2024/02/19 | 3451 | macros/luatex/generic/luatexja/src/luatexja-compat.sty -2024/02/19 | 3371 | macros/luatex/generic/luatexja/src/patches/lltjp-xunicode.sty -2024/02/19 | 33461 | macros/luatex/generic/luatexja/src/addons/luatexja-ajmacros.sty -2024/02/19 | 3313 | macros/luatex/generic/luatexja/tool/ltj-unicode-ccfix_make2.pl -2024/02/19 | 326 | macros/luatex/generic/luatexja/tool/otf-AdobeMyungjoStd-Medium.txt -2024/02/19 | 3238 | macros/luatex/generic/luatexja/doc/jfm-test.lua -2024/02/19 | 32227 | macros/luatex/generic/luatexja/src/ltj-ruby.lua -2024/02/19 | 317 | macros/luatex/generic/luatexja/tool/otf-AdobeSongStd-Light.txt -2024/02/19 | 3100 | macros/luatex/generic/luatexja/tool/table_jisx0208.tex -2024/02/19 | 3004705 | macros/latex/contrib/nicematrix.zip -2024/02/19 | 29891 | macros/luatex/generic/luatexja/src/luatexja-core.sty -2024/02/19 | 29612 | macros/luatex/generic/luatexja/src/addons/luatexja-preset.sty -2024/02/19 | 2724 | fonts/newtx/tfm/ntxebgbmia.tfm -2024/02/19 | 27058 | macros/luatex/generic/luatexja/src/lltjext.sty -2024/02/19 | 2636 | fonts/newtx/tfm/ntxebgmia.tfm -2024/02/19 | 2599 | macros/luatex/generic/luatexja/src/jfm-banjiao.lua -2024/02/19 | 258311 | macros/latex/contrib/nicematrix/nicematrix.tex -2024/02/19 | 2582 | macros/luatex/generic/luatexja/src/jfm-kaiming.lua -2024/02/19 | 2573 | macros/luatex/generic/luatexja/src/jfm-quanjiao.lua -2024/02/19 | 248449 | macros/latex/contrib/nicematrix/nicematrix-french.tex -2024/02/19 | 2374 | macros/luatex/generic/luatexja/src/patches/lltjp-unicode-math.sty -2024/02/19 | 2340 | macros/luatex/generic/luatexja/src/jfm-jis.lua -2024/02/19 | 2325721 | macros/latex/contrib/nicematrix/nicematrix-code.pdf -2024/02/19 | 228608 | systems/texlive/tlnet/archive/randexam.doc.r69965.tar.xz -2024/02/19 | 22793 | macros/luatex/generic/luatexja/src/luatexja.lua -2024/02/19 | 22125 | macros/luatex/generic/luatexja/src/ltj-adjust.lua -2024/02/19 | 2203 | macros/luatex/generic/luatexja/src/jfm-CCT.lua -2024/02/19 | 2193 | macros/luatex/generic/luatexja/src/addons/luatexja-zhfonts.sty -2024/02/19 | 21860 | systems/texlive/tlnet/archive/jlreq-deluxe.r69971.tar.xz -2024/02/19 | 21204 | macros/latex/contrib/updatemarks/tex/updatemarks.sty -2024/02/19 | 2057 | macros/luatex/generic/luatexja/src/patches/lltjp-microtype.sty -2024/02/19 | 200 | macros/luatex/generic/luatexja/src/jfm-prop.lua -2024/02/19 | 1987 | macros/latex/contrib/mismath/mismath.ins -2024/02/19 | 1973 | macros/luatex/generic/luatexja/src/luatexja.sty -2024/02/19 | 196 | macros/luatex/generic/luatexja/src/jfm-propw.lua -2024/02/19 | 196 | macros/luatex/generic/luatexja/src/jfm-propv.lua -2024/02/19 | 192 | macros/luatex/generic/luatexja/src/jfm-mono.lua -2024/02/19 | 19234 | macros/luatex/generic/luatexja/src/patches/lltjp-geometry.sty -2024/02/19 | 189 | macros/luatex/generic/luatexja/src/patches/lltjp-preview.sty -2024/02/19 | 189539 | macros/luatex/generic/luatexja/src/ltjsclasses.dtx -2024/02/19 | 18722 | macros/luatex/generic/luatexja/src/ltj-kinsoku.tex -2024/02/19 | 178115 | macros/luatex/generic/luatexja/src/ltjclasses.dtx -2024/02/19 | 1740 | macros/luatex/generic/luatexja/tool/test_exist_nodelib.tex -2024/02/19 | 166557 | macros/luatex/generic/luatexja/doc/lltjp-geometry.pdf -2024/02/19 | 1637 | macros/luatex/generic/luatexja/src/addons/luatexja-fontspec.sty -2024/02/19 | 1611 | macros/luatex/generic/luatexja/src/patches/lltjp-footmisc.sty -2024/02/19 | 15873 | macros/luatex/generic/luatexja/src/addons/luatexja-fontspec-27c.sty -2024/02/19 | 154928 | macros/luatex/generic/luatexja/src/ltj-ivd_aj1.lua -2024/02/19 | 154316 | systems/texlive/tlnet/archive/sjtutex.r69967.tar.xz -2024/02/19 | 15429 | macros/luatex/generic/luatexja/src/ltj-rmlgbm.lua -2024/02/19 | 1536 | macros/luatex/generic/luatexja/COPYING -2024/02/19 | 15283 | macros/latex/contrib/updatemarks/doc/updatemarks.tex -2024/02/19 | 14914 | macros/luatex/generic/luatexja/src/patches/lltjp-listings.sty -2024/02/19 | 14840 | macros/latex/contrib/pynotebook/doc/pynotebook-doc.tex -2024/02/19 | 1460 | fonts/newtx/tfm/ebgMI.tfm -2024/02/19 | 1432 | fonts/newtx/tfm/ebgBMI.tfm -2024/02/19 | 14050 | macros/latex/contrib/pynotebook/tex/pynotebook.sty -2024/02/19 | 1397 | macros/luatex/generic/luatexja/tool/ivslist.tex -2024/02/19 | 13895 | macros/luatex/generic/luatexja/src/jfm-ujis.lua -2024/02/19 | 13726 | macros/luatex/generic/luatexja/doc/lltjp-geometry.tex -2024/02/19 | 13577 | macros/luatex/generic/luatexja/src/ltj-setwidth.lua -2024/02/19 | 13445 | macros/luatex/generic/luatexja/src/patches/lltjcore.sty -2024/02/19 | 1278 | macros/luatex/generic/luatexja/src/ltjclasses.ins -2024/02/19 | 126 | macros/luatex/generic/luatexja/src/ltjltxdoc.ins -2024/02/19 | 12463 | macros/luatex/generic/luatexja/src/ltj-base.lua -2024/02/19 | 1224 | macros/luatex/generic/luatexja/tool/chars2defcharrange.rb -2024/02/19 | 11724 | systems/texlive/tlnet/archive/randexam.r69965.tar.xz -2024/02/19 | 11506 | macros/luatex/generic/luatexja/src/jfm-ujisv.lua -2024/02/19 | 1143952 | macros/luatex/generic/luatexja/doc/luatexja-ja.pdf -2024/02/19 | 11335 | macros/luatex/generic/luatexja/tool/unicodeBlocks.tex -2024/02/19 | 1130 | macros/luatex/generic/luatexja/tool/function_uax50.lua -2024/02/19 | 10650 | macros/luatex/generic/luatexja/src/addons/luatexja-ruby.sty diff --git a/biblio/ctan-bibdata/ctan.bib b/biblio/ctan-bibdata/ctan.bib index d9880a1634..93fce7b123 100644 --- a/biblio/ctan-bibdata/ctan.bib +++ b/biblio/ctan-bibdata/ctan.bib @@ -1,7 +1,7 @@ %% bib file of all CTAN packages %% (C) Herbert Voß %% -%% created at 25-02-2024, 02:00:04 +%% created at 26-02-2024, 02:00:04 %% %% This file is provided under the terms of the LPPL v1.3 or @@ -6431,6 +6431,17 @@ url = {https://ctan.org/pkg/beautybook}, } +@manual{ctan-beautynote, + title = {The \texttt{beautynote} package}, + subtitle = {A package designed to meet the publication of books and the production of \LaTeX{} templates, with elegant chapter}, + author = {Shilong Lu}, + date = {2024-02-25}, + version = {}, + license = {lppl1.3c}, + mirror = {https://mirror.ctan.org/macros/latex/contrib/beautynote}, + url = {https://ctan.org/pkg/beautynote}, +} + @manual{ctan-beebe-dvi, title = {The \texttt{Beebe-DVI} package}, subtitle = {A modular collection of DVI processors}, @@ -13088,7 +13099,7 @@ title = {The \texttt{cleveref-forward} package}, subtitle = {Forward-referencing functionality for cleveref}, author = {Jinwen XU}, - date = {2024-02-24}, + date = {2024-02-25}, version = {}, license = {lppl1.3c}, mirror = {https://mirror.ctan.org/macros/latex/contrib/cleveref-forward}, @@ -16133,9 +16144,9 @@ @manual{ctan-crefthe, title = {The \texttt{crefthe} package}, - subtitle = {Cross referencing with proper definite articles}, + subtitle = {Cross referencing with proper definite articles and declensions}, author = {Jinwen XU}, - date = {2024-02-24}, + date = {2024-02-25}, version = {}, license = {lppl1.3c}, mirror = {https://mirror.ctan.org/macros/latex/contrib/crefthe}, @@ -20741,8 +20752,8 @@ title = {The \texttt{easybook} package}, subtitle = {Easily typesetting Chinese theses or books}, author = {Qu Yi}, - date = {2024-02-22}, - version = {2024ak}, + date = {2024-02-25}, + version = {2024al}, license = {lppl1.3c}, mirror = {https://mirror.ctan.org/macros/latex/contrib/easybook}, url = {https://ctan.org/pkg/easybook}, @@ -27755,8 +27766,8 @@ title = {The \texttt{frenchmath} package}, subtitle = {Typesetting mathematics according to French rules}, author = {Antoine Missier}, - date = {2024-02-20}, - version = {2.9}, + date = {2024-02-25}, + version = {2.10}, license = {lppl1.3}, mirror = {https://mirror.ctan.org/macros/latex/contrib/frenchmath}, url = {https://ctan.org/pkg/frenchmath}, @@ -44461,8 +44472,8 @@ title = {The \texttt{mcf2graph} package}, subtitle = {Draw chemical structure diagrams with MetaPost}, author = {Akira Yamaji}, - date = {2024-01-21}, - version = {5.11}, + date = {2024-02-25}, + version = {5.12}, license = {mit}, mirror = {https://mirror.ctan.org/graphics/mcf2graph}, url = {https://ctan.org/pkg/mcf2graph}, @@ -48866,8 +48877,8 @@ title = {The \texttt{newtx} package}, subtitle = {Alternative uses of the TX fonts, with improved metrics}, author = {Michael Sharpe}, - date = {2024-02-09}, - version = {1.738}, + date = {2024-02-25}, + version = {1.739}, license = {lppl1.3}, mirror = {https://mirror.ctan.org/fonts/newtx}, url = {https://ctan.org/pkg/newtx}, @@ -55536,8 +55547,8 @@ title = {The \texttt{ProfLycee} package}, subtitle = {A \LaTeX{} package for French maths teachers in high school}, author = {Cédric Pierquet}, - date = {2024-02-11}, - version = {3.02b}, + date = {2024-02-25}, + version = {3.02c}, license = {lppl1.3c}, mirror = {https://mirror.ctan.org/macros/latex/contrib/proflycee}, url = {https://ctan.org/pkg/proflycee}, @@ -73858,8 +73869,8 @@ title = {The \texttt{ufrgscca} package}, subtitle = {A bundle for undergraduate students final work/report (tcc) at UFRGS/EE}, author = {Alceu Frigeri}, - date = {2024-02-21}, - version = {2.4a}, + date = {2024-02-25}, + version = {2.5}, license = {lppl1.3c,gpl}, mirror = {https://mirror.ctan.org/macros/latex/contrib/ufrgscca}, url = {https://ctan.org/pkg/ufrgscca}, diff --git a/info/tlmgrbasics/README b/info/tlmgrbasics/README index 9e2c008822..ca04516e29 100644 --- a/info/tlmgrbasics/README +++ b/info/tlmgrbasics/README @@ -1,5 +1,5 @@ This is the README for the tlmgrbasics package, -version 2023-11-28. +version 2024-02-26. This package provides simplified documentation for tlmgr, the TeX Live Native Manager. It is derived from tlmgr.1, the diff --git a/info/tlmgrbasics/doc/tlmgr.pdf b/info/tlmgrbasics/doc/tlmgr.pdf Binary files differindex 7c6aeec18c..5c6964ddd1 100644 --- a/info/tlmgrbasics/doc/tlmgr.pdf +++ b/info/tlmgrbasics/doc/tlmgr.pdf diff --git a/info/tlmgrbasics/doc/tlmgr.tex b/info/tlmgrbasics/doc/tlmgr.tex index c59cdef6c9..d7646f650e 100644 --- a/info/tlmgrbasics/doc/tlmgr.tex +++ b/info/tlmgrbasics/doc/tlmgr.tex @@ -110,6 +110,7 @@ list of all CTAN mirrors with the status of each is at \url{https://ctan.org/mirrors/mirmon}. Don't forget to add \texttt{.../systems/texlive/tlnet} to the path. +\enlargethispage*{10ex} \item\texttt{tlmgr update -all}\par Makes your local \TeX\ installation correspond to what is in @@ -157,6 +158,10 @@ Searches the "installation medium" (normally the net) data base for the file \te Displays general configuration information for \TeX\,Live, including active configuration files, path settings, and more. +\item\texttt{tlmgr bug} \textsl{what}\par + +Displays available bug-reporting information for \textsl{what} (a package or file name). + \end{description} \clearpage @@ -702,6 +707,17 @@ Displays general configuration information for \TeX\,Live, including active conf \clearpage +\subsection{The {\tt bug} Action} +\label{bug} +\paragraph{Usage} +\begin{list}{}{} +\item\texttt{tlmgr bug} \textsl{what} +\end{list} + +Displays available bug-reporting information for \textsl{what} (a package or file name). + +\clearpage + \clearpage \section{Global Options} \label{GlobalOptions} diff --git a/macros/latex/contrib/cleveref-forward/README.md b/macros/latex/contrib/cleveref-forward/README.md index 4a67b0cdd3..aab25e04a5 100644 --- a/macros/latex/contrib/cleveref-forward/README.md +++ b/macros/latex/contrib/cleveref-forward/README.md @@ -2,24 +2,26 @@ # `cleveref-forward` — Forward-referencing functionality for cleveref -`cleveref-forward` aims at providing the forward-referencing functionality to `cleveref`. +`cleveref-forward` aims at providing the forward-referencing functionality for the package `cleveref`. -This package is derived from the package [`cleveref-usedon`](https://ctan.org/pkg/cleveref-usedon), with several fixes and enhancements. +> This package is derived from the package [`cleveref-usedon`](https://ctan.org/pkg/cleveref-usedon), with several fixes and enhancements. + +> Package dependencies: [`cleveref`](https://ctan.org/pkg/cleveref), [*`crefthe`*](https://ctan.org/pkg/crefthe), [`iflang`](https://ctan.org/pkg/iflang), [`regexpatch`](https://ctan.org/pkg/regexpatch). ## Regarding the usage It might be a good idea to start with the [demo documents](https://github.com/Jinwen-XU/cleveref-forward/tree/main/demo). -> The documentation and examples written by Sven Pistre for the original package [`cleveref-usedon`](https://ctan.org/pkg/cleveref-usedon) are also very inspiring (but be aware that the usage has changed a lot, so some of the code there may no longer work here). +> The [documentation](http://mirrors.ctan.org/macros/latex/contrib/cleveref-usedon/cleveref-usedon.pdf) and [examples](https://github.com/SvenPistre/cleveref-usedon/tree/main/examples) written by Sven Pistre for the original package `cleveref-usedon` are also very inspiring (but be aware that the usage has changed a lot, so some of the code there may no longer work here). ## Known issues / what to do next -- The multilingual support is not yet perfect. -- The code is somewhat messy for now, and the naming of many macros should be made better. -- The support for displayed maths is still not perfect. -- Not all configuration yields nice result, more examples are needed. +- This package currently works for English, French, German, Italian and Spanish — certainly more languages would be added to this list in the future. +- The code is somewhat messy for now, and the naming of many macros could be improved. +- The support for displayed maths is still not perfect: currently, if you choose to print the forward-referencing message outside the math environment, then for `equation`, `multline` and `dmath`, it works nicely (you may need to configure `cleveref` to make it work with `dmath`); but for `align`, `flalign`, `alignat` and `gather`, it would only show the message for the last labeled line. The inside-math mode has no such limitation, but it would require sufficient margin width. +- Not all configuration yields nice result, more appealing examples are needed. -The original package [`cleveref-usedon`](https://ctan.org/pkg/cleveref-usedon) is better in terms of documentation, while the current package is slightly more advanced in terms of code. It is hoped that one day they can be combined into a better version. +The original package [`cleveref-usedon`](https://ctan.org/pkg/cleveref-usedon) is nicer in terms of documentation, while the current package is slightly more advanced in terms of code. It is hoped that one day they can be combined into a better version. ## Acknowledgement diff --git a/macros/latex/contrib/cleveref-forward/cleveref-forward.sty b/macros/latex/contrib/cleveref-forward/cleveref-forward.sty index b40f53fd44..c23612adc0 100644 --- a/macros/latex/contrib/cleveref-forward/cleveref-forward.sty +++ b/macros/latex/contrib/cleveref-forward/cleveref-forward.sty @@ -13,7 +13,7 @@ %% \NeedsTeXFormat{LaTeX2e}[2022-06-01] \ProvidesExplPackage{cleveref-forward} - {2024/02/24} {} + {2024/02/25} {} {Forward-referencing functionality for cleveref} \keys_define:nn { cleveref-forward } @@ -21,28 +21,28 @@ , default .tl_set:N = \l__crfwd_default_package_option_tl , default .initial:n = { } , default .value_required:n = true - , Used-On .meta:n = { default = UsedOn } - , Used~On .meta:n = { default = UsedOn } - , Used On .meta:n = { default = UsedOn } - , used-on .meta:n = { default = UsedOn } - , used~on .meta:n = { default = UsedOn } - , used on .meta:n = { default = UsedOn } - , uo .meta:n = { default = UsedOn } - , Used-By .meta:n = { default = UsedBy } - , Used~By .meta:n = { default = UsedBy } - , Used By .meta:n = { default = UsedBy } - , used-by .meta:n = { default = UsedBy } - , used~by .meta:n = { default = UsedBy } - , used by .meta:n = { default = UsedBy } - , ub .meta:n = { default = UsedBy } - , Used-By-And-On .meta:n = { default = UsedByAndOn } - , Used~By~And~On .meta:n = { default = UsedByAndOn } - , Used By And On .meta:n = { default = UsedByAndOn } - , used-by-and-on .meta:n = { default = UsedByAndOn } - , used~by~and~on .meta:n = { default = UsedByAndOn } - , used by and on .meta:n = { default = UsedByAndOn } - , ubao .meta:n = { default = UsedByAndOn } - , ubo .meta:n = { default = UsedByAndOn } + , Used-On .meta:n = { default = used-on } + , Used~On .meta:n = { default = used-on } + , Used On .meta:n = { default = used-on } + , used-on .meta:n = { default = used-on } + , used~on .meta:n = { default = used-on } + , used on .meta:n = { default = used-on } + , uo .meta:n = { default = used-on } + , Used-By .meta:n = { default = used-by } + , Used~By .meta:n = { default = used-by } + , Used By .meta:n = { default = used-by } + , used-by .meta:n = { default = used-by } + , used~by .meta:n = { default = used-by } + , used by .meta:n = { default = used-by } + , ub .meta:n = { default = used-by } + , Used-By-And-On .meta:n = { default = used-by-and-on } + , Used~By~And~On .meta:n = { default = used-by-and-on } + , Used By And On .meta:n = { default = used-by-and-on } + , used-by-and-on .meta:n = { default = used-by-and-on } + , used~by~and~on .meta:n = { default = used-by-and-on } + , used by and on .meta:n = { default = used-by-and-on } + , ubao .meta:n = { default = used-by-and-on } + , ubo .meta:n = { default = used-by-and-on } , crefthe .bool_set:N = \l__crfwd_crefthe_enabled_bool , crefthe .initial:n = { false } @@ -57,14 +57,16 @@ \RequirePackage { crefthe } } -\newcommand*{\@setcpagerefrange}[3]{% +% Fix for cleveref in order to work with long range of pages +% See https://tex.stackexchange.com/a/620066 +\providecommand*{\@setcpagerefrange}[3]{% \@@setcpagerefrange{#1}{#2}{cref}{#3}} -\newcommand*{\@setCpagerefrange}[3]{% +\providecommand*{\@setCpagerefrange}[3]{% \@@setcpagerefrange{#1}{#2}{Cref}{#3}} -\newcommand*{\@setlabelcpagerefrange}[3]{% +\providecommand*{\@setlabelcpagerefrange}[3]{% \@@setcpagerefrange{#1}{#2}{labelcref}{#3}} -% Temporary fix for cleveref in order to work with xr-hyper +% Fix for cleveref in order to work with xr-hyper % See https://tex.stackexchange.com/a/708445 \def\cref@getref#1#2{% \expandafter\let\expandafter#2\csname r@#1@cref\endcsname% diff --git a/macros/latex/contrib/cleveref-forward/demo/cleveref-forward-demo.pdf b/macros/latex/contrib/cleveref-forward/demo/cleveref-forward-demo.pdf Binary files differindex 1c7bfaedba..96eb808702 100644 --- a/macros/latex/contrib/cleveref-forward/demo/cleveref-forward-demo.pdf +++ b/macros/latex/contrib/cleveref-forward/demo/cleveref-forward-demo.pdf diff --git a/macros/latex/contrib/cleveref-forward/demo/cleveref-forward-demo.tex b/macros/latex/contrib/cleveref-forward/demo/cleveref-forward-demo.tex index 8c3595ce26..fec042a3a6 100644 --- a/macros/latex/contrib/cleveref-forward/demo/cleveref-forward-demo.tex +++ b/macros/latex/contrib/cleveref-forward/demo/cleveref-forward-demo.tex @@ -1,5 +1,5 @@ \documentclass[ - use style = plain, + % use style = plain, title in boldface, % title in sffamily, emphasize theorems, @@ -8,6 +8,8 @@ ]{einfart} \usepackage{ProjLib} +\setmonofont[Scale=.9]{Iosevka} + \usepackage[crefthe]{cleveref-forward} \usepackage{changepage,todonotes,marginnote} @@ -32,7 +34,7 @@ breaklines = true, frame = lines, backgroundcolor = \color{code-background}, - flexiblecolumns = true, + basewidth = .5em, escapeinside = {(*}{*)}, alsoletter = {_,:}, % numbers = left, @@ -81,8 +83,8 @@ \lstnewenvironment{code}{\setstretch{1.05}\LocallyStopLineNumbers}{\ResumeLineNumbers\vspace{-.3\baselineskip}\vspace{-.5\parskip}} \lstnewenvironment{code*}{\setstretch{1.05}\lstset{numbers=left}\LocallyStopLineNumbers}{\ResumeLineNumbers\vspace{-.3\baselineskip}\vspace{-.5\parskip}} -\newcommand{\packageoption}[1]{\texttt{\textcolor{code-option}{#1}}} -\newcommand{\commandoption}[1]{\texttt{\textcolor{code-keys}{#1}}} +\newcommand{\packageoption}[1]{\textcolor{code-option}{\texttt{#1}}} +\newcommand{\commandoption}[1]{\textcolor{code-keys}{\texttt{#1}}} %%================================ %% tip @@ -157,7 +159,7 @@ It can also be used for some other types, such as items in \texttt{enumerate} li \section{Specify a default option} -If you wish to apply the mode \commandoption{used on}, or \commandoption{used by}, or \commandoption{used by and on} to all \lstinline|\cref| (and \lstinline|\labelcref|, etc.), you can use the package option \packageoption{default = }\meta{mode}. Then you don't need to write it everywhere. And if you wish to manually change this \meta{mode} somewhere, you can still specify it as the command option; and if you don't want the message to display for some references, you may also use the option \commandoption{no use} on the corresponding \lstinline|\label| to disable the related messages. +If you wish to apply the mode \commandoption{used on}, or \commandoption{used by}, or \commandoption{used by and on} to all \lstinline|\cref| (and \lstinline|\labelcref|, etc.), you can use the package option \packageoption{default=}\meta{mode}. Then you don't need to write it everywhere. And if you wish to manually change this \meta{mode} somewhere, you can still specify it as the command option; and if you don't want the message to display for some references, you may also use the option \commandoption{no use} on the corresponding \lstinline|\label| to disable the related messages. \section{Customizations} @@ -177,7 +179,7 @@ Here is how you change the appearing text: \SetUsedByAndOnMessageText{Appears in~#1 on~#2.} \bigskip -And here is an example of setting the message style with \textsf{todonotes}: +And here is an example of setting the message style with the package \textsf{todonotes}: \begin{code} \SetForwardReferenceStyle @@ -263,7 +265,7 @@ We use the same example: \bigskip As you might have noticed, \lstinline|\SetForwardReferenceStyleOutsideMath| is for setting the style of those messages that appear outside the equations. -There is also a \lstinline|\SetForwardReferenceStyleInsideMath|, which triggers the message immediately at where you placed the label. This way it is only plausible to put the message inside the margin. For example, you may configure: +There is also a \lstinline|\SetForwardReferenceStyleInsideMath|, which triggers the message immediately at where you placed the label. This way it is only plausible to put the message inside the margin. For example, with the package \textsf{marginnote} loaded, you may configure: \begin{code} \SetForwardReferenceStyle @@ -348,7 +350,7 @@ By the way, here is the default setting for the style: %% You can safely ignore the code between \ExplSyntaxOn and \ExplSyntaxOff %% They are just for resetting the theorem referencing style for the rest of the document \ExplSyntaxOn -\input{create-theorem-preset-names} % simple-name mode is not suitable for French, German, etc. +\input{create-theorem-preset-names-cleveref} % simple-name mode is not suitable for French, German, etc. \exp_args:No \SetTheorem { \c_projlib_theorem_supported_clist, theorem-with-name } % remove the text style in the references { name style = { diff --git a/macros/latex/contrib/create-theorem/README.md b/macros/latex/contrib/create-theorem/README.md index 90ae54948b..8e1c8ca7f7 100644 --- a/macros/latex/contrib/create-theorem/README.md +++ b/macros/latex/contrib/create-theorem/README.md @@ -6,6 +6,8 @@ The package `create-theorem` provides the commands `\NameTheorem`, `\CreateTheor *For more information, please refer to its documentation.* +> Package dependencies: [`amsfonts`](https://ctan.org/pkg/amsfonts), [*`amsthm`*](https://ctan.org/pkg/amsthm), [`crefthe`](https://ctan.org/pkg/crefthe), [*`ntheorem`*](https://ctan.org/pkg/ntheorem). + # License This work is released under the LaTeX Project Public License, v1.3c or later. diff --git a/macros/latex/contrib/create-theorem/code/create-theorem-preset-names.tex b/macros/latex/contrib/create-theorem/code/create-theorem-preset-names-cleveref.tex index 9df9c0e274..e95de7e5d6 100644 --- a/macros/latex/contrib/create-theorem/code/create-theorem-preset-names.tex +++ b/macros/latex/contrib/create-theorem/code/create-theorem-preset-names-cleveref.tex @@ -1,6 +1,4 @@ -%============================= -% --- Preset Names --- -%============================= +% Preset names for use with cleveref \NameTheorem { application } { diff --git a/macros/latex/contrib/create-theorem/code/create-theorem-preset-names-plural.tex b/macros/latex/contrib/create-theorem/code/create-theorem-preset-names-plural-cleveref.tex index 572ab51311..6ed6de4bfc 100644 --- a/macros/latex/contrib/create-theorem/code/create-theorem-preset-names-plural.tex +++ b/macros/latex/contrib/create-theorem/code/create-theorem-preset-names-plural-cleveref.tex @@ -1,6 +1,4 @@ -%============================= -% --- Preset Names --- -%============================= +% Preset names for use with cleveref \NameTheorem { applications } { diff --git a/macros/latex/contrib/create-theorem/code/create-theorem.sty b/macros/latex/contrib/create-theorem/code/create-theorem.sty index 355e7a6211..01851952d4 100644 --- a/macros/latex/contrib/create-theorem/code/create-theorem.sty +++ b/macros/latex/contrib/create-theorem/code/create-theorem.sty @@ -12,7 +12,7 @@ \NeedsTeXFormat{LaTeX2e}[2022-06-01] \ProvidesExplPackage {create-theorem} - {2024/02/20a} {} + {2024/02/25} {} {Initializing theorem-like environments with multilingual support} \keys_define:nn { create-theorem } @@ -1170,11 +1170,11 @@ } } - +% Load predefined namesets \bool_if:NT \l__crthm_presetname_bool { - \input { create-theorem-preset-names } - \input { create-theorem-preset-names-plural } + \input { create-theorem-preset-names-cleveref } + \input { create-theorem-preset-names-plural-cleveref } } \endinput diff --git a/macros/latex/contrib/create-theorem/doc/create-theorem-doc.pdf b/macros/latex/contrib/create-theorem/doc/create-theorem-doc.pdf Binary files differindex b62eea4455..24c22f6b2b 100644 --- a/macros/latex/contrib/create-theorem/doc/create-theorem-doc.pdf +++ b/macros/latex/contrib/create-theorem/doc/create-theorem-doc.pdf diff --git a/macros/latex/contrib/create-theorem/doc/create-theorem-doc.tex b/macros/latex/contrib/create-theorem/doc/create-theorem-doc.tex index 532796dd52..4d816d8802 100644 --- a/macros/latex/contrib/create-theorem/doc/create-theorem-doc.tex +++ b/macros/latex/contrib/create-theorem/doc/create-theorem-doc.tex @@ -3,6 +3,8 @@ \usepackage{ProjLib} +\setmonofont[Scale=.9]{Iosevka} + %%================================ %% For typesetting code %%================================ @@ -24,7 +26,9 @@ breaklines = true, frame = lines, backgroundcolor = \color{code-background}, - flexiblecolumns = true, + % flexiblecolumns = true, + % columns = fixed, + basewidth=.5em, escapeinside = {(*}{*)}, alsoletter = {_,:}, % numbers = left, @@ -72,8 +76,8 @@ \lstnewenvironment{code}{\setstretch{1.05}\LocallyStopLineNumbers}{\ResumeLineNumbers\vspace{-.3\baselineskip}\vspace{-.5\parskip}} \lstnewenvironment{code*}{\setstretch{1.05}\lstset{numbers=left}\LocallyStopLineNumbers}{\ResumeLineNumbers\vspace{-.3\baselineskip}\vspace{-.5\parskip}} -\newcommand{\packageoption}[1]{\texttt{\textcolor{code-option}{#1}}} -\newcommand{\commandoption}[1]{\texttt{\textcolor{code-keys}{#1}}} +\newcommand{\packageoption}[1]{\textcolor{code-option}{\texttt{#1}}} +\newcommand{\commandoption}[1]{\textcolor{code-keys}{\texttt{#1}}} %%================================ %% tip @@ -107,8 +111,8 @@ \begin{document} -\def\PackageVersion{2024/02/20} -\def\PackageSubVersion{a} +\def\PackageVersion{2024/02/25} +\def\PackageSubVersion{} \title{\createtheorempackage{}\\\smallskip\itshape Initializing and configuring theorem-like environments, with multilingual support} \author{Jinwen XU} @@ -480,24 +484,24 @@ This is not exciting at all. Now, let's say we are writing a trilingual note in { (*\commandoption{name}*) = { (*\commandoption{heading}*) = { english = Idea, - french = Idée, - ngerman = Idee, }, + french = Idée, + ngerman = Idee, }, (*\commandoption{crefname}*) = { english = {idea}{ideas}, - french = [l']{idée}[les]{idées}, - ngerman = { {Idee}{Idee} - , Nominativ = [die]{Idee}[die]{Ideen} - , Genitiv = [der]{Idee}[der]{Ideen} - , Dativ = [der]{Idee}[den]{Ideen} - , Akkusativ = [die]{Idee}[die]{Ideen} - } }, + french = [l']{idée}[les]{idées}, + ngerman = { {Idee}{Idee} + , Nominativ = [die]{Idee}[die]{Ideen} + , Genitiv = [der]{Idee}[der]{Ideen} + , Dativ = [der]{Idee}[den]{Ideen} + , Akkusativ = [die]{Idee}[die]{Ideen} + } }, (*\commandoption{Crefname}*) = { english = {Idea}{Ideas}, - french = [L']{idée}[Les]{idées}, - ngerman = { {Idee}{Idee} - , Nominativ = [Die]{Idee}[Die]{Ideen} - , Genitiv = [Der]{Idee}[Der]{Ideen} - , Dativ = [Der]{Idee}[Den]{Ideen} - , Akkusativ = [Die]{Idee}[Die]{Ideen} - } }, + french = [L']{idée}[Les]{idées}, + ngerman = { {Idee}{Idee} + , Nominativ = [Die]{Idee}[Die]{Ideen} + , Genitiv = [Der]{Idee}[Der]{Ideen} + , Dativ = [Der]{Idee}[Den]{Ideen} + , Akkusativ = [Die]{Idee}[Die]{Ideen} + } }, }, (*\commandoption{parent counter}*) = section, } @@ -505,7 +509,7 @@ This is not exciting at all. Now, let's say we are writing a trilingual note in With this, if you use \lstinline|\selectlanguage{french}|, the {\normalfont\texttt{idea}} environment shall be automatically displayed as \textquote{Idée}. And if you \lstinline|\crefthe| it, the definite article and the name would show up properly just as expected. -The same happens for German with \lstinline|\selectlanguage{ngerman}|, and when referencing an {\normalfont\texttt{idea}} environment, you may specify the declension as with \lstinline|\crefthe[|\meta{prep}\lstinline|,variant=Nominativ]{|\meta{label}\lstinline|}|, or simply with shortcut such as \lstinline|\crefthe[|\meta{prep}\lstinline|,nom.]{|\meta{label}\lstinline|}|. +The same happens for German with \lstinline|\selectlanguage{ngerman}|, and when referencing an {\normalfont\texttt{idea}} environment, you may specify the declension as \lstinline|\crefthe[|\meta{prep}\lstinline|,declension=Nominativ]|\lstinline|{|\meta{label}\lstinline|}|, or more simply, with a shortcut such as \lstinline|\crefthe[|\meta{prep}\lstinline|,nom.]{|\meta{label}\lstinline|}|. \begin{tip} For more datailed usage of the referencing command \lstinline|\crefthe|, please refer to the documentation of the package \textsf{crefthe}. @@ -644,20 +648,20 @@ A typical configuration looks like this: \NameTheorems { english } { , (*\commandoption{heading}*) = { - , theorem = Theorem - , proposition = Proposition - ... - } + , theorem = Theorem + , proposition = Proposition + ... + } , (*\commandoption{crefname}*) = { - , theorem = {theorem}{theorems} - , proposition = {proposition}{propositions} - ... - } + , theorem = {theorem}{theorems} + , proposition = {proposition}{propositions} + ... + } , (*\commandoption{Crefname}*) = { - , theorem = {Theorem}{Theorems} - , proposition = {Proposition}{Propositions} - ... - } + , theorem = {Theorem}{Theorems} + , proposition = {Proposition}{Propositions} + ... + } } \end{code} @@ -667,23 +671,23 @@ Here is an example for French: \NameTheorems { french } { , (*\commandoption{heading}*) = { - , theorem = Théorème - , proposition = Proposition - , example = Exemple - ... - } + , theorem = Théorème + , proposition = Proposition + , example = Exemple + ... + } , (*\commandoption{crefname}*) = { - , theorem = [le]{théorème}[les]{théorèmes} - , proposition = [la]{proposition}[les]{propositions} - , example = [l']{exemple}[les]{exemples} - ... - } + , theorem = [le]{théorème}[les]{théorèmes} + , proposition = [la]{proposition}[les]{propositions} + , example = [l']{exemple}[les]{exemples} + ... + } , (*\commandoption{Crefname}*) = { - , theorem = [Le]{théorème}[Les]{théorèmes} - , proposition = [La]{proposition}[Les]{propositions} - , example = [L']{exemple}[Les]{exemples} - ... - } + , theorem = [Le]{théorème}[Les]{théorèmes} + , proposition = [La]{proposition}[Les]{propositions} + , example = [L']{exemple}[Les]{exemples} + ... + } } \end{code} @@ -693,27 +697,27 @@ And an example for German: \NameTheorems { ngerman } { , (*\commandoption{heading}*) = { - , theorem = Satz - ... - } + , theorem = Satz + ... + } , (*\commandoption{crefname}*) = { - , theorem = { {Satz}{Sätze} - , Nominativ = [der]{Satz}[die]{Sätze} - , Genitiv = [des]{Satzes}[der]{Sätze} - , Dativ = [dem]{Satz}[den]{Sätzen} - , Akkusativ = [den]{Satz}[die]{Sätze} - } - ... - } + , theorem = { {Satz}{Sätze} + , Nominativ = [der]{Satz}[die]{Sätze} + , Genitiv = [des]{Satzes}[der]{Sätze} + , Dativ = [dem]{Satz}[den]{Sätzen} + , Akkusativ = [den]{Satz}[die]{Sätze} + } + ... + } , (*\commandoption{Crefname}*) = { - , theorem = { {Satz}{Sätze} - , Nominativ = [Der]{Satz}[Die]{Sätze} - , Genitiv = [Des]{Satzes}[Der]{Sätze} - , Dativ = [Dem]{Satz}[Den]{Sätzen} - , Akkusativ = [Den]{Satz}[Die]{Sätze} - } - ... - } + , theorem = { {Satz}{Sätze} + , Nominativ = [Der]{Satz}[Die]{Sätze} + , Genitiv = [Des]{Satzes}[Der]{Sätze} + , Dativ = [Dem]{Satz}[Den]{Sätzen} + , Akkusativ = [Den]{Satz}[Die]{Sätze} + } + ... + } } \end{code} diff --git a/macros/latex/contrib/weiqi/README.md b/macros/latex/contrib/weiqi/README.md new file mode 100644 index 0000000000..8abfe40af0 --- /dev/null +++ b/macros/latex/contrib/weiqi/README.md @@ -0,0 +1,25 @@ +# Description + +A new package which use LaTeX3 to typeset the weiqi(go). +使用 LaTeX3 创建一个排版围棋棋谱的宏包。 + +# Copyright + +Copyright (C) 2023-2024 By Ms_yam + +It may be distributed and/or modified under the conditions of the +LaTeX Project Public License (LPPL), either version 1.3c of this +license or (at your option) any later version. The latest version +of this license is in the file + + https://www.latex-project.org/lppl.txt + +# generate + +```sh +xetex weiqi.ins +xelatex weiqi.dtx +makeindex -s gind.ist weiqi.idx +xelatex weiqi.dtx +xelatex weiqi.dtx +```
\ No newline at end of file diff --git a/macros/latex/contrib/weiqi/weiqi.dtx b/macros/latex/contrib/weiqi/weiqi.dtx new file mode 100644 index 0000000000..0c7cd40516 --- /dev/null +++ b/macros/latex/contrib/weiqi/weiqi.dtx @@ -0,0 +1,2471 @@ +% \iffalse meta-comment +%% +%% 文件:weiqi.dtx +%% +%% 版权 (C) 2023-2024 By Ms_yam +%% +%% 它可以在 LaTeX 项目公共许可(LPPL)1.3c 及之后的任意版本(随你的意见)下分发或修改。 +%% 这个许可的最新版本在如下文件中: +%% +%% https://www.latex-project.org/lppl.txt +%% +%% 本宏包为作者练习 epxl3 和编写 dtx 文件所编写,里面的接口及方法并不是最优的。 +%% 仅供参考。 +%% +% \fi +% +% \iffalse +%<*driver> +\documentclass[full]{l3doc} + +\usepackage{weiqi} + +% 创建代码示例 +\usepackage{listings} +\ExplSyntaxOn +\makeatletter +\lst@RequireAspects{writefile} +\box_new:N \l__demo_box +\lstnewenvironment{demo}[1][code and example] + { + \use:c { demo_#1: } + } + { \use:c { demo_#1_end: } } +\cs_new:Nn \__demo_common: + { + \setkeys{lst} + { + basicstyle = \ttfamily, + gobble = 2, + language = [LaTeX]{TeX}, + } + } +\cs_new:Nn \__demo_input: + { + \catcode`\^^M = 10\relax + \catcode`\% = 14\relax + \input{\jobname.tmp} + } +\cs_new:Npn \__demo_init:nnn #1#2#3 + { + \cs_set:cn {demo_#1:} { #2 } + \cs_set:cn {demo_#1_end:} { #3 } + } + +\__demo_init:nnn{code and example} + {% + \hbox_set:Nw \l__demo_box + \__demo_common: + \lst@BeginAlsoWriteFile{\jobname.tmp}% + } + {% + \lst@EndWriteFile + \hbox_set_end: + %\begin{center} + \fp_compare:nNnTF + { \box_wd:N \l__demo_box } > { 0.6 * \linewidth } + { + \begin{minipage}{\linewidth} + \box_use:N \l__demo_box + \end{minipage}% + \par + \begin{minipage}{\linewidth} + \__demo_input: + \end{minipage} + } + { + \begin{minipage}{0.40\linewidth} + \__demo_input: + \end{minipage}% + %\hfil + \begin{minipage}{0.54\linewidth} + \box_use:N \l__demo_box + \end{minipage}% + } + %\end{center} + } +\makeatother +\ExplSyntaxOff + +% ^^A 添加中文支持及设置超级链接 +\usepackage[UTF8,hyperref]{ctex} +\hypersetup{ + colorlinks, + linkcolor=blue, + hyperindex, + pdfstartview=FitH, + plainpages=false, + backref, +} + +% ^^A 引用待办包 +\usepackage{todo} + +% ^^A 汉化 l3doc 的部分定义 +\NewDocumentEnvironment { texnote } { }% 不能用 Renew...,原因未知 +{ + \endgraf + \vspace{0.5em}% 3mm => 0.5em + \small\textbf{\TeX{} 黑客笔记:}% \TeX~hackers~note: +} +{ + \vspace{0.5em}% 3mm => 0.5em +} + +\begin{document} + \DocInput{\jobname.dtx} + \todos % ^^A 列出待办事宜 +\end{document} +%</driver> +% \fi +% +% \title{^^A +% \pkg{weiqi}宏包:绘制围棋棋谱^^A +% } +% +% \author{Ms\_yam\thanks +% {^^A +% 本宏包是作者练习 \LaTeX3 和编写 dtx 文件的作品,里面的接口及方法并未优化;但宏包漏洞会尽力修复。 +% }^^A +% \ (\href{mailto:Ms_yam@163.com}{Ms\_yam@163.com})^^A +% } +% \date{\zhdigits*{2024}年\zhnumber{02}月\zhnumber{22}日} +% +% \maketitle +% +% \DoNotIndex{\[,\\,\]} +% \DoNotIndex{\Large, \meta, \noindent, \textbf, \texttt} +% \DoNotIndex{\ExplSyntaxOn, \ExplSyntaxOff, \NeedsTeXFormat, \RequirePackage, \ProvidesExplPackage, \NewDocumentCommand} +% \DoNotIndex{\IfBooleanT, \IfBooleanF, \IfNoValueTF} +% \DoNotIndex{\bool_new:N, \bool_set_eq:NN, \bool_set_false:N, \bool_set_inverse:N, \bool_set_true:N, \bool_to_str:N} +% \DoNotIndex{\bool_gset_eq:NN, \bool_gset_false:N, \bool_gset_true:N} +% \DoNotIndex{\bool_if:nT, \bool_if:NT, \bool_if:nTF, \bool_if:NTF} +% \DoNotIndex{\bool_lazy_all:nT, \bool_lazy_all:nTF, \bool_lazy_and:nnT, \bool_lazy_and:nnTF} +% \DoNotIndex{\bool_lazy_any:nTF, \bool_lazy_or:nnT, \bool_lazy_or:nnF, \bool_lazy_or:nnTF} +% \DoNotIndex{\box_ht:N, \box_wd:N} +% \DoNotIndex{\clist_new:N, \clist_const:Nn, \clist_clear:N, \clist_set:Nn, \clist_set_eq:NN, \clist_set_from_seq:NN, \clist_pop:NN, \clist_use:Nn} +% \DoNotIndex{\clist_gclear:N, \clist_gput_right:Nn, \clist_set_eq:Nc, \clist_gset_eq:NN, \clist_gset_eq:cN} +% \DoNotIndex{\clist_if_empty:NTF, \clist_map_function:NN, \clist_map_inline:Nn} +% \DoNotIndex{\color_fill:n, \color_select:n} +% \DoNotIndex{\cs_new:Nn, \cs_new:Npn, \cs_generate_variant:Nn, \cs_if_free:cT, \cs_if_free:cTF} +% \DoNotIndex{\draw_begin:, \draw_end:, \draw_linewidth:n, \draw_path_circle:nn, \draw_path_lineto:n, \draw_path_moveto:n} +% \DoNotIndex{\draw_box_use:Nn, \draw_path_use_clear:n, \draw_transform_scale:n} +% \DoNotIndex{\fp_new:N, \fp_set_eq:NN, \fp_set:Nn, \fp_add:Nn,\fp_sub:Nn, \fp_compare:nNnT, \fp_compare:nNnTF, \fp_gset:Nn, \fp_use:N} +% \DoNotIndex{\group_begin:, \group_end:} +% \DoNotIndex{\hbox_set:Nn} +% \DoNotIndex{\int_new:N, \int_new:c, \int_const:Nn, \int_set_eq:NN, \int_set_eq:Nc, \int_set:Nn, \int_set:Ne, \int_add:Nn, \int_incr:N, \int_use:N} +% \DoNotIndex{\int_gset:Nn, \int_gset:Ne, \int_gincr:N, \int_gset_eq:NN, \int_gset_eq:Nc, \int_gset_eq:cN} +% \DoNotIndex{\int_max:nn, \int_min:nn, \int_sign:n, \int_abs:n, \int_from_alph:n, \int_from_alph:e, \int_to_alph:n, \int_to_Alph:n} +% \DoNotIndex{\int_case:nn, \int_compare_p:n, \int_compare_p:nNn, \int_compare:nNnT, \int_compare:nNnF, \int_compare:nNnTF} +% \DoNotIndex{\int_if_zero:nF, \int_if_zero:nTF, \int_step_inline:nn, \int_step_inline:nnnn} +% \DoNotIndex{\intarray_new:Nn, \intarray_new:cn, \intarray_gset:Nnn, \intarray_gset:cnn, \intarray_gzero:N, \intarray_item:Nn, \intarray_item:cn} +% \DoNotIndex{\ior_open:Nn, \ior_close:N, \ior_str_map_inline:Nn} +% \DoNotIndex{\prg_set_conditional:Npnn, \prg_return_false:, \prg_return_true:, \prg_generate_conditional_variant:Nnn, \prg_break_point:, \prg_break:} +% \DoNotIndex{\regex_match:nn, \regex_match:nnTF, \regex_match:nVTF, \regex_extract_all:nnN} +% \DoNotIndex{\regex_extract_once:nnN, \regex_extract_once:nVN, \regex_extract_once:nnNTF, \regex_extract_once:nVNTF} +% \DoNotIndex{\seq_new:N, \seq_new:c, \seq_put_right:Nn, \seq_item:Nn, \seq_gclear:N, \seq_gset_item:Nnn, \seq_gset_item:NnV} +% \DoNotIndex{\seq_if_in:NnT, \seq_if_in:NnF, \seq_if_in:NnTF} +% \DoNotIndex{\str_new:N, \str_const:Nn, \str_set:Nn, \str_set:NV, \str_set:Nx, \str_set_eq:NN} +% \DoNotIndex{\str_put_right:Nn, \str_put_right:NV, \str_put_right:Nx} +% \DoNotIndex{\str_gset_eq:NN} +% \DoNotIndex{\str_head:N, \str_item:Nn, \str_range:Nnn, \str_range:nnn, \str_tail:N, \str_lowercase:n} +% \DoNotIndex{\str_if_empty_p:N, \str_if_empty:NTF, \str_if_empty:nTF, \str_if_eq_p:nn, \str_if_eq_p:Vn, \str_if_eq:nnTF} +% \DoNotIndex{\str_case:nn, \str_case_e:nn, \str_compare:eNeT, \str_compare:nNnTF, \str_compare:eNeTF} +% +% \begin{documentation} +% +% \section{\pkg{weiqi} 文档} +% +% 本宏包提供了绘制围棋棋谱功能。本宏包参考(或延用)了 \pkg{igo} 宏包的部分命令, +% 但本宏包的实现完全采用 \pkg{expl3} 方式。 +% +% 本宏包的绘图采用 \pkg{l3draw} 宏包(2024-01-04 版)实现,因前者具有\emph{高度}实验性,因些本 +% 宏包也同样具体\emph{高度}实验性。 +% +% +% \subsection{相关概念}^^A +% +% +% \subsubsection{尺寸} +% +% 本宏包中的 \meta{尺寸} 特指棋盘尺寸(即一个方向包含几路),棋盘大小为 \meta{尺寸} x \meta{尺寸}。 +% 本宏包支持的 \meta{尺寸} 取值为 $2$\~{}$26$,但通常建议使用 $9$、$13$ 和 $19$ 三种尺寸。 +% 其中,$19$x$19$ 为标准棋盘大小(也是默认大小)。 +% +% +% \subsubsection{坐标} +% +% 为方便描述落子位置,本宏包依惯例采用 \meta{坐标} 的概念。 +% 本宏包支持两种形式的 \meta{坐标}:以左下角为起点(常规模式)和左上角为起点($SGF$ 模式)。 +% +% 两种形式的横坐标相同,从左往右依次为 $a$、$b$、\dots。它们的区别在于: +% 前者纵坐标从下往上依次为 $1$、$2$、\dots;而后者的纵坐标从上往下依次为 $a$、$b$、\dots。 +% 前者是为便于人员交互设计,后者是为支持 $sgf$ 棋谱坐标而设计。 +% +% 横坐标与纵坐标组合形成 \meta{坐标},如 |a1|、|dp| 等。 +% 通常需要 \meta{坐标} 的地方,也支持逗号列表形式的 \meta{坐标} 集合,如 “|a2, b2, dp|”。 +% +% \begin{minipage}{0.45\linewidth} +% \newweiqi +% \showweiqi[a1,e4] +% \end{minipage}% +% \begin{minipage}{0.45\linewidth} +% \sgflocmode +% \showweiqi[aa,ed] +% \end{minipage}\\ +% +% +% \subsubsection{虚着} +% +% 围棋有一个比较特殊的规则:它允许一方停一手(也叫虚着),另一方继续下。 +% 为了以统一的方式记录每一手棋,特将虚着的 \meta{坐标} 定义为 |-| 或 |pass|。 +% +% \subsection{基本命令}^^A +% +% +% \begin{function}{\newweiqi} +% \begin{syntax} +% \cs{newweiqi} [\meta{尺寸}] +% \end{syntax} +% 初始化新对局,\meta{尺寸}用于指定棋盘大小(默认为 $19$)。 +% 带星号版本同时更改 \meta{尺寸} 的默认值。 +% \end{function} +% +% +% \begin{function}{\weiqisize} +% \begin{syntax} +% \cs{weiqisize} \Arg{尺寸} +% \end{syntax} +% 修改棋盘大小为 \meta{尺寸}。 +% 带星号版本同时更改 \meta{尺寸} 的默认值。 +% \begin{texnote} +% 修改棋盘尺寸不会检查已有棋子是否越界。 +% 同时还会引发已有的 \meta{坐标}为 $SGF$ 模式的棋子的位置错乱。 +% \end{texnote} +% \end{function} +% +% +% \begin{function}{\weiqiblack, \weiqiwhite} +% \begin{syntax} +% \cs{weiqiblack} [\meta{标签}] \Arg{坐标} +% \end{syntax} +% 向当前对局中添加棋子。 +% 其中,如果 \meta{标签} 为手数,则会自动递增且切换黑白方。 +% 如果 \meta{标签} 为 $0$,则不显示标签但仍切换黑白方。 +% \meta{坐标} 是一组表示棋子位置的逗号分隔列表,每一项表示一手棋; +% 默认以左下角的 \meta{坐标} 为 $a1$;虚着请使用 $-$、|pass| 或留空。 +% \end{function} +% +% +% \begin{function}{\weiqidie} +% \begin{syntax} +% \cs{weiqidie} \Arg{坐标} +% \end{syntax} +% 设置指定位置的棋子为死子。 +% \meta{坐标} 是一组表示棋子位置的逗号分隔列表,每一项表示一个位置。 +% \begin{texnote} +% 死子是之前已经下过的棋子,因为没有气,所以需要从棋盘拿走。 +% 将没有标签的棋子标记为死子是没有意义的。 +% \end{texnote} +% \end{function} +% +% +% \begin{function}{\showweiqi} +% \begin{syntax} +% \cs{showweiqi} [\meta{区间}] +% \end{syntax} +% 绘制对局。如果指定 \meta{区间},则 \meta{区间} 应由两个角点坐标或 |full| 组成,以示指定区间内的信息; +% 如未指定区间,则会自动计算范围,该范围可保证至少包含一个角,其余边至少余一路。 +% 默认情况显示完成后会清除对局,使用星号命令可保留对局。 +% \begin{texnote} +% 自动计算的范围会考虑最小显示大小;如果指定区间,则不受此限制。区间外内容不会显示。 +% \end{texnote} +% \end{function} +% +% \begin{demo} +% \newweiqi +% \weiqiblack[0]{bq,dq,-} +% \weiqiwhite[1]{b2,c2,c3,a2,d2,b1} +% \weiqiwhite[7]{-,b2} +% \weiqidie{b2} +% \showweiqi +% \end{demo}\\ +% +% +% 死子和带标签(通常为手数)虚着会绘制在棋盘下方;不带标签的虚着则不会绘制(因为它没有任意实际意义)。 +% +% \subsection{标签与指示点}^^A +% +% +% \begin{function}{\weiqilabel, \clearlabel} +% \begin{syntax} +% \cs{weiqilabel} [\meta{标签}] \Arg{坐标}\\ +% \cs{clearlabel} +% \end{syntax} +% 向当前对局中添加标签,或清除对局中的所有标签。 +% 其中,如果 \meta{标签} 为手数,则会自动递增。\meta{标签} 默认为 $a$。 +% \meta{坐标} 是一组表示棋子位置的逗号分隔列表,每一项表示一个标签。 +% 带星号版本在添加标签的同时会删除旧的标签。 +% \begin{texnote} +% 如果 \meta{标签} 为 $0$ 或为空(|[]|),则显示实心空白圆。 +% \meta{坐标} 规则与棋子一致,本规则在所有 \meta{坐标} 中生效。 +% \end{texnote} +% \end{function} +% +% +% \begin{function}{\weiqired, \weiqigreen, \weiqiblue, \clearpoint} +% \begin{syntax} +% \cs{weiqired} \Arg{坐标}\\ +% \cs{clearpoint} +% \end{syntax} +% 向当前对局中添加指示点,或清除所有指示点。 +% \meta{坐标} 是一组表示棋子位置的逗号分隔列表,每一项表示一个点。 +% 带星号版本在添加标签的同时会删除旧的指示点(含其它颜色)。 +% \end{function} +% +% +% \begin{demo} +% \newweiqi +% \weiqiblack{a2,-,b1,cq} +% \weiqilabel[1]{c2,dq,-} +% \weiqired{d2,e3,-} +% \weiqigreen{b3} +% \showweiqi[a1,e3] +% \end{demo} +% +% +% \subsection{棋盘设置}^^A +% +% +% \begin{function}{\weiqirotate, \weiqimirror, \weiqiposition} +% \begin{syntax} +% \cs{weiqirotate} [\meta{角度}]\\ +% \cs{weiqimirror} [\meta{镜像轴}]\\ +% \cs{weiqiposition} [\meta{角度}] +% \end{syntax} +% 这三个命令用于设置棋盘的方位(旋转、镜像及指定方向)。 +% 其中,前两个命令是基于已有方位的,最后一个则不考虑当前方位。\\ +% \meta{角度}以度为单位(逆时针方向),如未指定,默认分别为 $90$ 度(旋转)和 $0$ 度(指定方向)。 +% \meta{镜像轴} 应当为 $x$、$y$ 或 $xy$(默认) 三者之一。\\ +% 使用星号命令可使当前棋盘方位为默认方位。 +% \end{function} +% +% +% \begin{function}{\weiqiscale} +% \begin{syntax} +% \cs{weiqiscale} [\meta{比例}] +% \end{syntax} +% 按 \meta{比例} 缩放棋盘。 如未指定,则恢复默认比例。 +% 使用星号命令可使当前缩放比例为默认缩放比例。缩放是基于原有比例的。 +% \end{function} +% +% +% \begin{function}{\weiqiminsize} +% \begin{syntax} +% \cs{weiqiminsize} \meta{宽度} \meta{高度} +% \end{syntax} +% 棋盘最小显示大小(以格子计),使用星号命令可使当前大小为默认值。 +% \end{function} +% +% +% \begin{function}{\nonelocmode, \normallocmode, \sgflocmode} +% \begin{syntax} +% \cs{nonelocmode} +% \end{syntax} +% 将棋盘坐标显示方式设置为:不显示坐标、常规模式坐标和 $SGF$ 模式坐标之一。 +% 其中,默认为常规模式,使用星号命令可使当前设置为默认值。 +% \end{function} +% +% ~\\ +% \begin{demo} +% \newweiqi +% \weiqiblack[1]{a2,b2,c3,-,dr} +% \weiqilabel[A]{dq} +% \weiqirotate[180] +% \weiqiscale[0.8] +% \weiqiminsize{6}{5} +% \sgflocmode +% \showweiqi +% \end{demo} +% +% +% \subsection{棋局复用}^^A +% +% \begin{function}{\saveweiqi, \useweiqi} +% \begin{syntax} +% \cs{saveweiqi} [\meta{序号}] +% \end{syntax} +% 保存/使用对局(只保留对局信息,棋盘方位等信息不保存)。 +% \meta{序号} 是保存的位置序号(自然数,推荐 $0$\~{}$26$)。 +% 星号版使用对局会删除所有棋子标签及标签。 +% \end{function} +% +% +% \begin{function}{\weiqichange} +% \begin{syntax} +% \cs{weiqichange} \Arg{坐标} +% \end{syntax} +% 切换指定位置的棋子的所属方(黑白方)。 +% \meta{坐标} 是一组表示棋子位置的逗号分隔列表,每一项表示一个位置。 +% \end{function} +% +% +% \begin{demo} +% \newweiqi +% \weiqiblack[1]{a2,b2,c3,-,dr} +% \weiqilabel[A]{dq} +% \saveweiqi[1] +% \newweiqi +% \useweiqi*[1] +% \weiqichange{dr} +% \showweiqi +% \end{demo} +% +% +% \begin{function}{\weiqiremove} +% \begin{syntax} +% \cs{weiqiremove} \Arg{坐标} +% \end{syntax} +% 移除指定位置的所有棋子,移除后相当于没有这一手棋。 +% \meta{坐标} 是一组表示棋子位置的逗号分隔列表,每一项表示一个位置。 +% \begin{texnote} +% 这与 \cs{weiqidie} 有本质的区别:\cs{weiqidie} 旨在标记死子(这手棋是真实存在的); +% 而本命令是直接移除这手棋,主要是以复用棋局而设置。 +% \end{texnote} +% \end{function} +% +% +% \begin{demo} +% \newweiqi +% \weiqiblack[0]{bq,dq,-} +% \weiqiwhite[1]{b2,c2,c3,a2,d2,b1} +% \weiqidie{b2} +% \weiqiremove{d2} +% \weiqiwhite[5]{b4} +% \sgflocmode +% \showweiqi +% \end{demo} +% +% +% \begin{function}{\resetnumber} +% \begin{syntax} +% \cs{resetnumber} [\meta{起点}] +% \end{syntax} +% 重置围棋手数,\meta{起点} 所在位置的标签设置为 $1$,之后标签依次递增,之前无标签;默认以第 $1$ 手为起点。 +% \end{function} +% +% +% \begin{demo} +% \useweiqi*[1] +% \resetnumber[2] +% \showweiqi +% \end{demo} +% +% \subsection{sgf 棋谱支持}^^A +% +% +% \begin{function}{\weiqisgf} +% \begin{syntax} +% \cs{weiqisgf} [\meta{标签}] \Arg{文本} +% \end{syntax} +% 使用 |sgf| 棋谱 \Arg{文本} 来指定棋子。如果 \meta{标签} 为手数,则会自动递增。 +% \end{function} +% +% ~\\ +% \begin{demo} +% \newweiqi +% \weiqisgf{;B[cc];W[dd]} +% \weiqisgf[1]{;B[cd];W[dc];B[cb]} +% \showweiqi +% \end{demo} +% +% \begin{function}{\inputsgf} +% \begin{syntax} +% \cs{weiqisgf} [\meta{起点}] \Arg{文件} +% \end{syntax} +% 新建对局并输入指定棋谱。\meta{起点} 所在位置的标签设置为 $1$,之后标签依次递增,之前无标签;默认以第 $1$ 手为起点。 +% \end{function} +% +% +% \subsection{调试支持}^^A +% +% \begin{function}{\weiqidata} +% \begin{syntax} +% \cs{weiqidata} +% \end{syntax} +% 格式化输出内部变量数据。带星号版本会额外输出边界变量信息。 +% \end{function} +% +% \newweiqi +% \weiqiblack[0]{bq,dq,-} +% \weiqiwhite[1]{b2,c2,c3,a2,d2,b1} +% \weiqidie{b2} +% \weiqiremove{d2} +% \weiqiwhite[5]{b4} +% \weiqidata* +% +% \subsection{下一步计划}^^A +% +% 中文标签的支持。 +% +% \end{documentation} +% +% \begin{implementation} +% +% \newpage +% +% \section{\pkg{weiqi}实现} +% +% \subsection{初始化信息} +% +% \begin{macrocode} +%<*package> +%<@@=weiqi> +% \end{macrocode} +% +% 宏包基本信息: +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +\ProvidesExplPackage{weiqi}{2024-02-22}{0.1} + {drawing weiqi using expl3} +% \end{macrocode} +% +% 需要 l3draw 宏包,以支持绘图: +% \begin{macrocode} +\RequirePackage{l3draw}[2024-01-04] +% \end{macrocode} +% +% 开启 expl3 模式: +% \begin{macrocode} +\ExplSyntaxOn +% \end{macrocode} +% +% +% \subsection{声明系统函数的变体} +% +% \begin{macrocode} +\cs_generate_variant:Nn \int_set:Nn { Ne } +\cs_generate_variant:Nn \int_gset:Nn { Ne } +\cs_generate_variant:Nn \int_from_alph:n { e } +\cs_generate_variant:Nn \seq_gset_item:Nnn { NnV } +\cs_generate_variant:Nn \regex_extract_once:nnN { nVN } +\prg_generate_conditional_variant:Nnn \regex_match:nn { nV } { T, F, TF } +\prg_generate_conditional_variant:Nnn \regex_extract_once:nnN { nVN } { T, F, TF } +% \end{macrocode} +% +% \subsection{声明选项} +% +% \begin{macrocode} +% 待实现 +% \end{macrocode} +% +% +% \subsection{定义常量} +% +% \begin{variable}{\c_@@_normal_size_int, \c_@@_mid_size_int, \c_@@_small_size_int, \c_@@_normal_star_clist, +% \c_@@_mid_star_clist, \c_@@_small_star_clist } +% 棋盘尺寸及对应星位坐标: +% \begin{macrocode} +\int_const:Nn \c_@@_normal_size_int { 19 } +\int_const:Nn \c_@@_mid_size_int { 13 } +\int_const:Nn \c_@@_small_size_int { 9 } +\clist_const:Nn \c_@@_normal_star_clist + { d4, j4, p4, d10, j10, p10, d16, j16, p16 } +\clist_const:Nn \c_@@_mid_star_clist + { c3, g3, k3, c7, g7, k7, c11, g11, k11 } +\clist_const:Nn \c_@@_small_star_clist { c3, k3, c7, k7 } +% \end{macrocode} +% \end{variable} +% +% +% \begin{variable}{\c_@@_max_step_int, \c_@@_normal_mode_str, \c_@@_sgf_mode_str } +% 支持的最大步数及坐标显示模式: +% \begin{macrocode} +\int_const:Nn \c_@@_max_step_int { 500 } +\str_const:Nn \c_@@_normal_mode_str { normal } +\str_const:Nn \c_@@_sgf_mode_str { sgf } +% \end{macrocode} +% \end{variable} +% +% +% \subsection{定义变量} +% +% \subsubsection{棋盘信息} +% +% 棋盘信息包含方位($x/y$方向及是否互换三者决定)、比例、最小显示大小(长与宽)及坐标控制(是否显示及坐标模式)。 +% 共有 $8$ 个变量控制,且均具有全局及本地之分。全局变量为默认值,本地为当前对局的设置。 +% +% \begin{variable}{\g_@@_x_direction_int, \g_@@_y_direction_int, \g_@@_swap_xy_bool, +% \g_@@_scale_fp, \g_@@_min_width_int, \g_@@_min_hight_int, \g_@@_show_loc_bool, +% \g_@@_loc_mode_str} +% 全局棋盘信息: +% \begin{macrocode} +\int_new:N \g_@@_x_direction_int +\int_new:N \g_@@_y_direction_int +\bool_new:N \g_@@_swap_xy_bool +\fp_new:N \g_@@_scale_fp +\int_new:N \g_@@_min_width_int +\int_new:N \g_@@_min_hight_int +\bool_new:N \g_@@_show_loc_bool +\str_new:N \g_@@_loc_mode_str +% \end{macrocode} +% \begin{macrocode} +\int_gset:Nn \g_@@_x_direction_int { 1 } +\int_gset:Nn \g_@@_y_direction_int { 1 } +\bool_gset_false:N \g_@@_swap_xy_bool +\fp_gset:Nn \g_@@_scale_fp { 1 } +\int_gset:Nn \g_@@_min_width_int { 3 } +\int_gset:Nn \g_@@_min_hight_int { 2 } +\bool_gset_true:N \g_@@_show_loc_bool +\str_gset_eq:NN \g_@@_loc_mode_str \c_@@_normal_mode_str +% \end{macrocode} +% \end{variable} +% +% \begin{variable}{\l_@@_x_direction_int, \l_@@_y_direction_int, \l_@@_swap_xy_bool, +% \l_@@_scale_fp, \l_@@_min_width_int, \l_@@_min_hight_int, \l_@@_show_loc_bool, +% \l_@@_loc_mode_str} +% 本地棋盘信息: +% \begin{macrocode} +\int_new:N \l_@@_x_direction_int +\int_new:N \l_@@_y_direction_int +\bool_new:N \l_@@_swap_xy_bool +\fp_new:N \l_@@_scale_fp +\int_new:N \l_@@_min_width_int +\int_new:N \l_@@_min_hight_int +\bool_new:N \l_@@_show_loc_bool +\str_new:N \l_@@_loc_mode_str +% \end{macrocode} +% \end{variable} +% +% +% \subsubsection{对局信息} +% +% 对局信息包括棋盘大小、步数、棋子/标签的信息集($x/y$ 坐标,棋手,标签)、死子集(索引)及指示点集(三色)组成。 +% 共 $10$ 个变量,另加一个默认棋盘大小。本小节的变量的取值均为原始方位的取值。 +% +% \begin{variable}{\g_@@_default_size_int} +% 默认对局大小: +% \begin{macrocode} +\int_new:N \g_@@_default_size_int +\int_gset_eq:NN \g_@@_default_size_int \c_@@_normal_size_int +% \end{macrocode} +% \end{variable} +% +% \begin{variable}{\g_@@_size_int, \g_@@_step_count_int, \g_@@_x_intarray, +% \g_@@_y_intarray, \g_@@_player_intarray, \g_@@_label_seq, \g_@@_die_seq} +% 对局内容: +% \begin{macrocode} +\int_new:N \g_@@_size_int +\int_new:N \g_@@_step_count_int +\intarray_new:Nn \g_@@_x_intarray { \c_@@_max_step_int } +\intarray_new:Nn \g_@@_y_intarray { \c_@@_max_step_int } +\intarray_new:Nn \g_@@_player_intarray { \c_@@_max_step_int } +\seq_new:N \g_@@_label_seq +\seq_new:N \g_@@_die_seq +% \end{macrocode} +% \end{variable} +% +% +% \begin{variable}{\g_@@_red_point_clist, \g_@@_green_point_clist,\g_@@_blue_point_clist} +% 对局辅助指示点: +% \begin{macrocode} +\clist_new:N \g_@@_red_point_clist +\clist_new:N \g_@@_green_point_clist +\clist_new:N \g_@@_blue_point_clist +% \end{macrocode} +% \end{variable} +% +% +% \subsubsection{边界信息} +% +% 本小节的变量为绘图过程中使用的边界信息变量。其是坐标是考虑方位信息的,但左右、上下及大小不考虑。 +% +% 棋子区间(不考虑延伸的信息): +% \begin{macrocode} +\int_new:N \l_@@_x_min_int +\int_new:N \l_@@_x_max_int +\int_new:N \l_@@_y_min_int +\int_new:N \l_@@_y_max_int +% \end{macrocode} +% +% 棋盘边界(考虑延伸的信息): +% \begin{macrocode} +\bool_new:N \l_@@_left_bool +\bool_new:N \l_@@_right_bool +\bool_new:N \l_@@_up_bool +\bool_new:N \l_@@_down_bool +\fp_new:N \l_@@_x_min_fp +\fp_new:N \l_@@_x_max_fp +\fp_new:N \l_@@_y_min_fp +\fp_new:N \l_@@_y_max_fp +% \end{macrocode} +% +% \subsubsection{其它变量} +% +% 通用信息变量: +% \begin{macrocode} +\str_new:N \l_@@_label_str +\int_new:N \l_@@_x_int +\int_new:N \l_@@_y_int +\int_new:N \l_@@_player_int +\fp_new:N \l_@@_x_fp +\fp_new:N \l_@@_y_fp +\clist_new:N \l_@@_point_clist +% \end{macrocode} +% +% 其它临时变量: +% \begin{macrocode} +\int_new:N \l_@@_tmp_int +\str_new:N \l_@@_tmp_str +\bool_new:N \l_@@_tmp_bool +\seq_new:N \l_@@_tmp_seq +% \end{macrocode} +% +% +% \subsection{设置棋局的函数} +% +% \subsubsection{对局准备} +% +% 指定围棋大小、初始化对局的其余 $9$ 个变量(清空对局所有对局信息)及棋盘信息的 $8$ 个变量(使用默认值[全局变量])。 +% +% \begin{macro}{\@@_new_game:n} +% 初始化对局信息(|#1| 棋盘大小)。 +% \begin{macrocode} +\cs_new:Npn \@@_new_game:n #1 + { + \int_set_eq:NN \l_@@_x_direction_int \g_@@_x_direction_int + \int_set_eq:NN \l_@@_y_direction_int \g_@@_y_direction_int + \bool_set_eq:NN \l_@@_swap_xy_bool \g_@@_swap_xy_bool + \fp_set_eq:NN \l_@@_scale_fp \g_@@_scale_fp + \int_set_eq:NN \l_@@_min_width_int \g_@@_min_width_int + \int_set_eq:NN \l_@@_min_hight_int \g_@@_min_hight_int + \bool_set_eq:NN \l_@@_show_loc_bool \g_@@_show_loc_bool + \str_set_eq:NN \l_@@_loc_mode_str \g_@@_loc_mode_str +% \end{macrocode} +% \begin{macrocode} + \int_gset:Ne \g_@@_size_int { #1 } + \int_gset:Nn \g_@@_step_count_int { 0 } + \intarray_gzero:N \g_@@_x_intarray + \intarray_gzero:N \g_@@_y_intarray + \intarray_gzero:N \g_@@_player_intarray + \seq_gclear:N \g_@@_label_seq + \seq_gclear:N \g_@@_die_seq +% \end{macrocode} +% \begin{macrocode} + \clist_gclear:N \g_@@_red_point_clist + \clist_gclear:N \g_@@_green_point_clist + \clist_gclear:N \g_@@_blue_point_clist + } +% \end{macrocode} +% \end{macro} +% +% +% \subsubsection{坐标转换函数} +% +% 实现棋子坐标的坐标对形式与字符串形式(虚着使用 |-| )两者之间的转换。 +% +% \begin{macro}{\@@_loc_to_xy:n, \@@_loc_to_xy:V} +% 设置 $x$、$y$ 坐标变量(|#1| 坐标,支持两种模式)。 +% \begin{macrocode} +\cs_new:Npn \@@_loc_to_xy:n #1 + { + \str_set:Nx \l_tmpa_str { \str_lowercase:n { #1 } } + \bool_lazy_any:nTF + { + { \str_if_empty_p:N \l_tmpa_str } + { \str_if_eq_p:Vn { \l_tmpa_str } { - } } + { \str_if_eq_p:Vn { \l_tmpa_str } { pass } } + } + { + \int_set:Nn \l_@@_x_int { 0 } + \int_set:Nn \l_@@_y_int { 0 } + } + { + \int_set:Ne \l_@@_x_int + { \int_from_alph:e { \str_head:N \l_tmpa_str } } + \regex_match:nVTF { [a-z]{2} } { \l_tmpa_str } + { + \int_set:Ne \l_tmpa_int + { \int_from_alph:e { \str_tail:N \l_tmpa_str } } + \int_set:Nn \l_@@_y_int { \g_@@_size_int - \l_tmpa_int + 1 } + } + { + \int_set:Ne \l_@@_y_int + { \str_range:Nnn \l_tmpa_str { 2 } { 5 } } + } + } + } +% \end{macrocode} +% \begin{macrocode} +\cs_generate_variant:Nn \@@_loc_to_xy:n { V } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@@_xy_to_loc:N} +% 将指定变量设置为当前坐标的字符串形式(|#1| 指定的存储变量)。 +% \begin{macrocode} +\cs_new:Npn \@@_xy_to_loc:N #1 + { + \int_compare:nNnTF { \l_@@_x_int } = { 0 } + { \str_set:Nn #1 { - } } + { + \str_set:Nx \l_tmpa_str + { \int_to_alph:n { \l_@@_x_int } } + \str_compare:eNeTF + { \l_@@_loc_mode_str } = { \c_@@_sgf_mode_str } + { + \int_set:Nn \l_tmpa_int + { \g_@@_size_int - \l_@@_y_int + 1 } + \str_set:Nx \l_tmpb_str + { \int_to_alph:n { \l_tmpa_int } } + \str_put_right:NV \l_tmpa_str { \l_tmpb_str } + } + { \str_put_right:NV \l_tmpa_str { \l_@@_y_int } } + \str_set_eq:NN #1 \l_tmpa_str + } + } +% \end{macrocode} +% \end{macro} +% +% +% \subsubsection{添加棋子或纯标签} +% +% 向对局中添加棋子或纯标签,它们使用相同的结构存储。除了所属方不一样外,它们内部添加方式完全相同。 +% 其中,所属方用 $0$ 表示未使用\footnote{新局开始,所属方均初始化为 $0$;移除状态的棋子,也会设置为零(同时坐标也为零)。}, +% $1$ 表示黑方,$2$ 表示白方,$3$ 表示纯标签。 +% +% 棋子可以含标签(如手数或特殊字符等),棋子|+| 纯标签不等于带标签的棋子。 +% 因为前者是两条记录,后者是一条记录,后续处理也不一样。 +% +% \begin{macro}{\@@_add_stone:nnn, \@@_add_stone:nnV, \@@_add_stone:nVV} +% 向对局中添加一步棋(|#1| 黑白方 ;|#2| 坐标;|#3| 标签)。 +% \begin{macrocode} +\cs_new:Npn \@@_add_stone:nnn #1#2#3 + { + \int_gincr:N \g_@@_step_count_int + \intarray_gset:Nnn \g_@@_player_intarray + \g_@@_step_count_int { #1 } +% \end{macrocode} +% \begin{macrocode} + \@@_loc_to_xy:n { #2 } + \intarray_gset:Nnn \g_@@_x_intarray + \g_@@_step_count_int \l_@@_x_int + \intarray_gset:Nnn \g_@@_y_intarray + \g_@@_step_count_int \l_@@_y_int +% \end{macrocode} +% \begin{macrocode} + \str_if_eq:nnTF { #3 } { 0 } + { \seq_put_right:Nn \g_@@_label_seq {} } + { \seq_put_right:Nn \g_@@_label_seq { #3 } } + } +% \end{macrocode} +% \begin{macrocode} +\cs_generate_variant:Nn \@@_add_stone:nnn {nnV, nVV} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@@_add_stones:nnn} +% 批量向对局中添加棋子(|#1| 黑白方 ;|#2| 坐标序列;|#3| 标签)。 +% \begin{macrocode} +\cs_new:Npn \@@_add_stones:nnn #1#2#3 + { + \int_set:Nn \l_@@_player_int { #1 } + \clist_set:Nn \l_@@_position_clsit { #2 } + \bool_set_false:N \l_@@_tmp_bool + \str_if_empty:nTF { #3 } + { \str_set:Nn \l_@@_tmp_str {} } + { + \regex_match:nnTF { [^0-9]+ } { #3 } + { \str_set:Nx \l_@@_tmp_str { #3 } } + { + \bool_set_true:N \l_@@_tmp_bool + \int_set:Nn \l_@@_tmp_int { #3 } + } + } + \clist_map_inline:Nn \l_@@_position_clsit + { + \bool_if:nTF \l_@@_tmp_bool + { + \@@_add_stone:nnV + { \l_@@_player_int } + { ##1 } + { \l_@@_tmp_int } + \int_case:nn { \l_@@_player_int } + { + { 1 } { \int_set:Nn \l_@@_player_int { 2 } } + { 2 } { \int_set:Nn \l_@@_player_int { 1 } } + { 3 } { \int_set:Nn \l_@@_player_int { 3 } } + } + \int_compare:nNnT { \l_@@_tmp_int } > { 0 } + { \int_incr:N \l_@@_tmp_int } + } + { \@@_add_stone:nnV { #1 } { ##1 } { \l_@@_tmp_str } } + } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@@_add_sgf_stones:nn, \@@_add_sgf_stones:VV} +% 批量向对局中添加 sgf 格式棋子(|#1| 带黑白方的坐标序列;|#2| 标签)。 +% \begin{macrocode} +\cs_new:Npn \@@_add_sgf_stones:nn #1#2 + { + \regex_extract_all:nnN { ;[BW]\[[a-z]{2}\] } { #1 } \l_@@_tmp_seq + \clist_set_from_seq:NN \l_@@_point_clist \l_@@_tmp_seq + \bool_set_false:N \l_@@_tmp_bool + \str_if_empty:nTF { #2 } + { \str_set:Nn \l_@@_tmp_str {} } + { + \regex_match:nnTF { [^0-9]+ } { #2 } + { \str_set:Nx \l_@@_tmp_str { #2 } } + { + \bool_set_true:N \l_@@_tmp_bool + \int_set:Nn \l_@@_tmp_int { #2 } + } + } + \clist_map_inline:Nn \l_@@_point_clist + { + \str_set:Nx \l_tmpa_str { \str_item:Nn { ##1 } { 2 } } + \str_set:Nx \l_tmpb_str { \str_range:nnn { ##1 } { 4 } { -2 } } + \str_case_e:nn { \l_tmpa_str } + { + { B } { \int_set:Nn \l_@@_player_int { 1 } } + { W } { \int_set:Nn \l_@@_player_int { 2 } } + } + \bool_if:nTF \l_@@_tmp_bool + { + \@@_add_stone:nVV { \l_@@_player_int } + { \l_tmpb_str } { \l_@@_tmp_int } + \int_compare:nNnT { \l_@@_tmp_int } > { 0 } + { \int_incr:N \l_@@_tmp_int } + } + { + \@@_add_stone:nVV { \l_@@_player_int } + { \l_tmpb_str } { \l_@@_tmp_str } + } + } + } +% \end{macrocode} +% \begin{macrocode} +\cs_generate_variant:Nn \@@_add_sgf_stones:nn { VV } +% \end{macrocode} +% \end{macro} +% +% \subsubsection{修改对局} +% +% 修改对局中的棋子信息(所有方、标签等)、移除棋子 或设置死子等。 +% 其中,移除棋子相当于没有输入这个棋子\footnote{ +% 移除棋子是通过把该手棋全部设置为零来实现;这与虚着不一样,后者仍有所属方。}; +% 而设置死子则用于棋子被吃的情况\footnote{ +% 设置死子是通过将棋加入死子列表中来实现,其坐标信息全部不变。}。 +% +% \begin{macro}{\@@_reset_stone_number:n} +% 重置所有棋子的标签,移除所有棋子标签(不含纯标签)并按手数(以 |#1| 起为第 $1$ 手)设置新标签。 +% \begin{macrocode} +\cs_new:Npn \@@_reset_stone_number:n #1 + { + \int_set:Ne \l_@@_tmp_int { 1 - #1 } + \int_step_inline:nn { \c_@@_max_step_int } + { + \bool_lazy_or:nnF + { + \int_compare_p:nNn + { \intarray_item:Nn \g_@@_player_intarray { ##1 } } = { 0 } + } + { + \int_compare_p:nNn + { \intarray_item:Nn \g_@@_player_intarray { ##1 } } = { 3 } + } + { + \int_incr:N \l_@@_tmp_int + \int_compare:nNnTF { \l_@@_tmp_int } > { 0 } + { \seq_gset_item:NnV \g_@@_label_seq { ##1 } { \l_@@_tmp_int } } + { \seq_gset_item:Nnn \g_@@_label_seq { ##1 } {} } + } + } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@@_change_stone:n} +% 切换指定索引的棋子的黑白方(|#1| 索引)。 +% \begin{macrocode} +\cs_new:Npn \@@_change_stone:n #1 + { + \int_case:nn + { \intarray_item:Nn \g_@@_player_intarray { #1 } } + { + { 1 } { \intarray_gset:Nnn \g_@@_player_intarray { #1 } { 2 } } + { 2 } { \intarray_gset:Nnn \g_@@_player_intarray { #1 } { 1 } } + } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@@_remove_stone:n} +% 删除指定索引的棋子(|#1| 索引)。 +% \begin{macrocode} +\cs_new:Npn \@@_remove_stone:n #1 + { + \intarray_gset:Nnn \g_@@_x_intarray { #1 } { 0 } + \intarray_gset:Nnn \g_@@_y_intarray { #1 } { 0 } + \intarray_gset:Nnn \g_@@_player_intarray { #1 } { 0 } + \seq_gset_item:Nnn \g_@@_label_seq { #1} { } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@@_die_stone:n} +% 设置指定索引的棋子为死子(|#1| 索引)。 +% \begin{macrocode} +\cs_new:Npn \@@_die_stone:n #1 + { + \seq_if_in:NnF \g_@@_die_seq { #1 } + { + \seq_put_right:Nn \g_@@_die_seq { #1 } + \prg_break: + } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@@_modify_stone:N} +% 使用指定函数(|#1|)修改指定位置的棋子(由 $x$, $y$ 坐标指定)。 +% \begin{macrocode} +\cs_new:Npn \@@_modify_stone:N #1 + { + \int_step_inline:nn { \c_@@_max_step_int } + { + \bool_lazy_and:nnT + { + \int_compare_p:n + { \intarray_item:Nn \g_@@_x_intarray { ##1 } = \l_@@_x_int } + } + { + \int_compare_p:n + { \intarray_item:Nn \g_@@_y_intarray { ##1 } = \l_@@_y_int } + } + { #1 { ##1 } } + } + \prg_break_point: + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@@_modify_stones:nN} +% 批量修改当前对局中的棋子(|#1| 坐标序列,|#2| 修改函数)。 +% \begin{macrocode} +\cs_new:Npn \@@_modify_stones:nN #1#2 + { + \clist_set:Nn \l_@@_position_clsit { #1 } + \clist_map_inline:Nn \l_@@_position_clsit + { + \@@_loc_to_xy:n { ##1 } + \int_compare:nNnF { \l_@@_x_int } = { 0 } + { \@@_modify_stone:N { #2 } } + } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@@_clear_labels:} +% 清除所有纯标签。 +% \begin{macrocode} +\cs_new:Nn \@@_clear_labels: + { + \int_step_inline:nn { \c_@@_max_step_int } + { + \int_compare:nNnT + { \intarray_item:Nn \g_@@_player_intarray { ##1 } } = { 3 } + { + \intarray_gset:Nnn \g_@@_x_intarray { ##1 } { 0 } + \intarray_gset:Nnn \g_@@_y_intarray { ##1 } { 0 } + \intarray_gset:Nnn \g_@@_player_intarray { ##1 } { 0 } + \seq_gset_item:Nnn \g_@@_label_seq { ##1 } {} + } + } + } +% \end{macrocode} +% \end{macro} +% +% +% \subsubsection{指示点} +% +% 指示点是棋盘上的特殊圆点,它支持红绿蓝三种颜色。旨在用于在某个特定情况下的特殊指示。 +% 指示点的实现原理与纯标签完全不一样,侧重点也不一样。 +% +% \begin{macro}{\@@_add_points:nn} +% 批量向对局中添加指示点(|#1| 颜色 ;|#2| 坐标序列)。 +% \begin{macrocode} +\cs_new:Npn \@@_add_points:nn #1#2 + { + \str_case:nn { #1 } + { + { red } + { \clist_gput_right:Nn \g_@@_red_point_clist { #2 } } + { green } + { \clist_gput_right:Nn \g_@@_green_point_clist { #2 } } + { blue } + { \clist_gput_right:Nn \g_@@_blue_point_clist { #2 } } + } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@@_clear_points:} +% 清除所有指示点。 +% \begin{macrocode} +\cs_new:Nn \@@_clear_points: + { + \clist_clear:N \g_@@_red_point_clist + \clist_clear:N \g_@@_green_point_clist + \clist_clear:N \g_@@_blue_point_clist + } +% \end{macrocode} +% \end{macro} +% +% +% \subsection{绘制棋局的函数} +% +% \subsubsection{坐标变换} +% +% 由于对局中的坐标以原始方位输入与保存,而显示时需要按指定的方位来显示, +% 因此在显示(绘图)前需要根据棋盘方位信息来进行坐标变换。 +% +% \begin{macro}{\@@_transform_xy:NN} +% 转换坐标(|#1|、|#2| 分别为 $x,y$ 坐标)。 +% \begin{macrocode} +\cs_new:Npn \@@_transform_xy:NN #1#2 + { + \int_set:Ne \l_tmpa_int { #1 * \l_@@_x_direction_int } + \int_set:Ne \l_tmpb_int { #2 * \l_@@_y_direction_int } + \bool_if:NTF \l_@@_swap_xy_bool + { + \int_set_eq:NN #1 \l_tmpb_int + \int_set_eq:NN #2 \l_tmpa_int + } + { + \int_set_eq:NN #1 \l_tmpa_int + \int_set_eq:NN #2 \l_tmpb_int + } + } +% \end{macrocode} +% \end{macro} +% +% +% \subsubsection{边界函数} +% +% 绘制棋局时,需要确认要显示的区域(显示整个棋盘通常不是最优方案), +% 本小节提供一系列函数,用于确认显示边界。 +% +% \begin{macro}{\@@_calc_range:} +% 计算棋子所在区间边界。 +% \begin{macrocode} +\cs_new:Nn \@@_calc_range: + { + \int_set:Nn \l_@@_x_min_int { 99 } + \int_set:Nn \l_@@_y_min_int { 99 } + \int_set:Nn \l_@@_x_max_int { 0 } + \int_set:Nn \l_@@_y_max_int { 0 } +% \end{macrocode} +% 遍历生成自然边界: +% \begin{macrocode} + \int_step_inline:nn {\g_@@_step_count_int} + { + \int_set:Ne \l_@@_x_int + { \intarray_item:Nn \g_@@_x_intarray { ##1 } } + \int_set:Ne \l_@@_y_int + { \intarray_item:Nn \g_@@_y_intarray { ##1 } } + \int_compare:nNnF + { \l_@@_x_int } = { 0 } + { + \int_compare:nNnT + \l_@@_x_min_int > \l_@@_x_int + { \int_set_eq:NN \l_@@_x_min_int \l_@@_x_int } + \int_compare:nNnT + \l_@@_x_max_int < \l_@@_x_int + { \int_set_eq:NN \l_@@_x_max_int \l_@@_x_int } + \int_compare:nNnT + \l_@@_y_min_int > \l_@@_y_int + { \int_set_eq:NN \l_@@_y_min_int \l_@@_y_int } + \int_compare:nNnT + \l_@@_y_max_int < \l_@@_y_int + { \int_set_eq:NN \l_@@_y_max_int \l_@@_y_int } + } + } +% \end{macrocode} +% 无有效棋子的情况下,显示整个棋盘: +% \begin{macrocode} + \int_compare:nNnT + { \l_@@_x_min_int } = { 99 } + { + \int_set:Nn \l_@@_x_min_int { 1 } + \int_set:Nn \l_@@_y_min_int { 1 } + \int_set_eq:NN \l_@@_x_max_int \g_@@_size_int + \int_set_eq:NN \l_@@_y_max_int \g_@@_size_int + } +% \end{macrocode} +% 向外延伸,以保证至少有一个角: +% \begin{macrocode} + \int_set:Ne \l_tmpa_int + { \int_min:nn { \g_@@_size_int } { \l_@@_min_width_int } } + \int_compare:nNnTF + { \g_@@_size_int - \l_@@_x_max_int } > { \l_@@_x_min_int - 1 } + { + \int_set:Nn \l_@@_x_min_int { 1 } + \int_set:Ne \l_@@_x_max_int + { \int_max:nn { \l_@@_x_max_int + 1 } { \l_tmpa_int } } + } + { + \int_set_eq:NN \l_@@_x_max_int \g_@@_size_int + \int_compare:nNnF + { \l_@@_x_min_int } = { 1 } + { + \int_set:Ne \l_@@_x_min_int + { + \int_min:nn + { \l_@@_x_min_int - 1 } + { \g_@@_size_int - \l_tmpa_int + 1 } + } + } + } + \int_set:Ne \l_tmpa_int + { \int_min:nn { \g_@@_size_int } { \l_@@_min_hight_int } } + \int_compare:nNnTF + { \g_@@_size_int - \l_@@_y_max_int } > { \l_@@_y_min_int - 1 } + { + \int_set:Nn \l_@@_y_min_int { 1 } + \int_set:Ne \l_@@_y_max_int + { \int_max:nn { \l_@@_y_max_int + 1 } { \l_tmpa_int } } + } + { + \int_set_eq:NN \l_@@_y_max_int \g_@@_size_int + \int_compare:nNnF + { \l_@@_y_min_int } = { 1 } + { + \int_set:Ne \l_@@_y_min_int + { + \int_min:nn + { \l_@@_y_min_int - 1 } + { \g_@@_size_int - \l_tmpa_int + 1 } + } + } + } +% \end{macrocode} +% 变换坐标: +% \begin{macrocode} + \@@_transform_xy:NN \l_@@_x_min_int \l_@@_y_min_int + \@@_transform_xy:NN \l_@@_x_max_int \l_@@_y_max_int + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@@_set_range:n} +% 指定棋子区间边界(边界外棋子不显示),支持 |full|。 +% \begin{macrocode} +\cs_new:Npn \@@_set_range:n #1 + { + \str_compare:eNeTF + { \str_lowercase:n { #1 } } = { full } + { + \int_set:Nn \l_@@_x_min_int { 1 } + \int_set:Nn \l_@@_y_min_int { 1 } + \int_set_eq:NN \l_@@_x_max_int \g_@@_size_int + \int_set_eq:NN \l_@@_y_max_int \g_@@_size_int + } + { + \clist_set:Nn \l_@@_position_clsit { #1 } + \clist_pop:NN \l_@@_position_clsit \l_tmpa_tl + \@@_loc_to_xy:V { \l_tmpa_tl } + \int_set_eq:NN \l_@@_x_min_int \l_@@_x_int + \int_set_eq:NN \l_@@_y_min_int \l_@@_y_int + \clist_pop:NN \l_@@_position_clsit \l_tmpa_tl + \@@_loc_to_xy:V { \l_tmpa_tl } + \int_set_eq:NN \l_@@_x_max_int \l_@@_x_int + \int_set_eq:NN \l_@@_y_max_int \l_@@_y_int + } +% \end{macrocode} +% 生成标准对角点,变换坐标: +% \begin{macrocode} + \int_compare:nNnT { \l_@@_x_min_int } > { \l_@@_x_max_int } + { + \int_set_eq:NN \l_tmpa_int \l_@@_x_min_int + \int_set_eq:NN \l_@@_x_min_int \l_@@_x_max_int + \int_set_eq:NN \l_@@_x_max_int \l_tmpa_int + } + \int_compare:nNnT { \l_@@_y_min_int } > { \l_@@_y_max_int } + { + \int_set_eq:NN \l_tmpa_int \l_@@_y_min_int + \int_set_eq:NN \l_@@_y_min_int \l_@@_y_max_int + \int_set_eq:NN \l_@@_y_max_int \l_tmpa_int + } + \@@_transform_xy:NN \l_@@_x_min_int \l_@@_y_min_int + \@@_transform_xy:NN \l_@@_x_max_int \l_@@_y_max_int + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@@_calc_board_border:} +% 计算棋盘的显示边界。 +% \begin{macrocode} +\cs_new:Nn \@@_calc_board_border: + { + \int_compare:nNnTF + { \int_abs:n { \l_@@_x_min_int } } = { 1 } + { + \bool_set_true:N \l_@@_left_bool + \fp_set:Nn \l_@@_x_min_fp + { \l_@@_x_min_int } + } + { + \bool_set_false:N \l_@@_left_bool + \fp_set:Nn \l_@@_x_min_fp + { \l_@@_x_min_int - 0.3 * \int_sign:n { \l_@@_x_min_int } } + } + \int_compare:nNnTF + { \int_abs:n { \l_@@_x_max_int } } = { \g_@@_size_int } + { + \bool_set_true:N \l_@@_right_bool + \fp_set:Nn \l_@@_x_max_fp + { \l_@@_x_max_int } + } + { + \bool_set_false:N \l_@@_right_bool + \fp_set:Nn \l_@@_x_max_fp + { \l_@@_x_max_int + 0.3 * \int_sign:n { \l_@@_x_max_int } } + } + \int_compare:nNnTF + { \int_abs:n { \l_@@_y_min_int } } = { 1 } + { + \bool_set_true:N \l_@@_down_bool + \fp_set:Nn \l_@@_y_min_fp + { \l_@@_y_min_int } + } + { + \bool_set_false:N \l_@@_down_bool + \fp_set:Nn \l_@@_y_min_fp + { \l_@@_y_min_int - 0.3 * \int_sign:n { \l_@@_y_min_int } } + } + \int_compare:nNnTF + { \int_abs:n { \l_@@_y_max_int } } = { \g_@@_size_int } + { + \bool_set_true:N \l_@@_up_bool + \fp_set:Nn \l_@@_y_max_fp + { \l_@@_y_max_int } + } + { + \bool_set_false:N \l_@@_up_bool + \fp_set:Nn \l_@@_y_max_fp + { \l_@@_y_max_int + 0.3 * \int_sign:n { \l_@@_y_max_int } } + } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@@_within_range_p:nn, \@@_within_range:nnT} +% 判定点是否在范围内(|#1| $x$坐标;|#2| $y$ 坐标)。 +% 坐标是变换后的坐标。 +% \begin{macrocode} +\prg_set_conditional:Npnn \@@_within_range:nn #1#2 { p, T } + { + \fp_set:Nn \l_tmpa_fp { abs( \l_@@_x_min_fp - #1 ) } + \fp_add:Nn \l_tmpa_fp { abs( \l_@@_x_max_fp - #1 ) } + \fp_sub:Nn \l_tmpa_fp { abs( \l_@@_x_max_fp - \l_@@_x_min_fp ) } + \fp_add:Nn \l_tmpa_fp { abs( \l_@@_y_min_fp - #2 ) } + \fp_add:Nn \l_tmpa_fp { abs( \l_@@_y_max_fp - #2 ) } + \fp_sub:Nn \l_tmpa_fp { abs( \l_@@_y_max_fp - \l_@@_y_min_fp ) } + \fp_compare:nNnTF + { \l_tmpa_fp } < { 0.1 } + { \prg_return_true: } + { \prg_return_false: } + } +% \end{macrocode} +% \end{macro} +% +% +% \subsubsection{绘制函数} +% +% 绘制对局包括绘制棋盘、棋子与纯标签、标记点及死子几个步骤。 +% 其中,棋盘包括网格线、边界线、角、星位及坐标标签。 +% 绘制前需要设置好棋子区间边界\footnote{棋盘边界在绘制棋盘时内部调用,因此不需要额外设置。}。 +% +% +% \begin{macro}{\@@_draw_board_grid:} +% 绘制棋盘的网格线(路径)。 +% \begin{macrocode} +\cs_new:Nn \@@_draw_board_grid: + { + \int_set:Ne \l_@@_tmp_int + { \int_sign:n { \l_@@_x_max_int - \l_@@_x_min_int } } + \int_step_inline:nnnn + { \l_@@_x_min_int } { \l_@@_tmp_int } { \l_@@_x_max_int } + { + \draw_path_moveto:n { ##1 cm, \l_@@_y_min_fp cm } + \draw_path_lineto:n { ##1 cm, \l_@@_y_max_fp cm } + } + \int_set:Ne \l_@@_tmp_int + { \int_sign:n { \l_@@_y_max_int - \l_@@_y_min_int } } + \int_step_inline:nnnn + { \l_@@_y_min_int } { \l_@@_tmp_int } { \l_@@_y_max_int } + { + \draw_path_moveto:n { \l_@@_x_min_fp cm, ##1 cm } + \draw_path_lineto:n { \l_@@_x_max_fp cm, ##1 cm } + } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@@_draw_board_border:} +% 绘制棋盘的边界线(路径)。 +% \begin{macrocode} +\cs_new:Nn \@@_draw_board_border: + { + \bool_if:nT { \l_@@_left_bool } + { + \draw_path_moveto:n { \l_@@_x_min_fp cm, \l_@@_y_min_fp cm } + \draw_path_lineto:n { \l_@@_x_min_fp cm, \l_@@_y_max_fp cm } + } + \bool_if:nT { \l_@@_right_bool } + { + \draw_path_moveto:n { \l_@@_x_max_fp cm, \l_@@_y_min_fp cm } + \draw_path_lineto:n { \l_@@_x_max_fp cm, \l_@@_y_max_fp cm } + } + \bool_if:nT { \l_@@_down_bool } + { + \draw_path_moveto:n { \l_@@_x_min_fp cm, \l_@@_y_min_fp cm } + \draw_path_lineto:n { \l_@@_x_max_fp cm, \l_@@_y_min_fp cm } + } + \bool_if:nT { \l_@@_up_bool } + { + \draw_path_moveto:n { \l_@@_x_min_fp cm, \l_@@_y_max_fp cm } + \draw_path_lineto:n { \l_@@_x_max_fp cm, \l_@@_y_max_fp cm } + } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@@_draw_board_corner:} +% 绘制棋盘的角(路径)。 +% \begin{macrocode} +\cs_new:Nn \@@_draw_board_corner: + { + \bool_if:nT { \l_@@_left_bool && \l_@@_down_bool } + { + \draw_path_moveto:n { \l_@@_x_min_fp cm, \l_@@_y_max_fp cm } + \draw_path_lineto:n { \l_@@_x_min_fp cm, \l_@@_y_min_fp cm } + \draw_path_lineto:n { \l_@@_x_max_fp cm, \l_@@_y_min_fp cm } + } + \bool_if:nT { \l_@@_right_bool && \l_@@_down_bool } + { + \draw_path_moveto:n { \l_@@_x_max_fp cm, \l_@@_y_max_fp cm } + \draw_path_lineto:n { \l_@@_x_max_fp cm, \l_@@_y_min_fp cm } + \draw_path_lineto:n { \l_@@_x_min_fp cm, \l_@@_y_min_fp cm } + } + \bool_if:nT { \l_@@_right_bool && \l_@@_up_bool } + { + \draw_path_moveto:n { \l_@@_x_max_fp cm, \l_@@_y_min_fp cm } + \draw_path_lineto:n { \l_@@_x_max_fp cm, \l_@@_y_max_fp cm } + \draw_path_lineto:n { \l_@@_x_min_fp cm, \l_@@_y_max_fp cm } + } + \bool_if:nT { \l_@@_left_bool && \l_@@_up_bool } + { + \draw_path_moveto:n { \l_@@_x_min_fp cm, \l_@@_y_min_fp cm } + \draw_path_lineto:n { \l_@@_x_min_fp cm, \l_@@_y_max_fp cm } + \draw_path_lineto:n { \l_@@_x_max_fp cm, \l_@@_y_max_fp cm } + } + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@@_draw_point:n} +% 绘制单个点(路径)(|#1| 坐标)。 +% \begin{macrocode} +\cs_new:Npn \@@_draw_point:n #1 + { + \__weiqi_loc_to_xy:n { #1 } + \@@_transform_xy:NN \l_@@_x_int \l_@@_y_int + \@@_within_range:nnT { \l_@@_x_int } { \l_@@_y_int } + { + \draw_path_circle:nn + { \l_@@_x_int cm, \l_@@_y_int cm } { 1mm } + } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@@_draw_board_star:} +% 绘制棋盘的星位(路径)。 +% \begin{macrocode} +\cs_new:Nn \@@_draw_board_star: + { + \clist_clear:N \l_@@_point_clist + \int_case:nn { \g_@@_size_int } + { + { \c_@@_normal_size_int } + { \clist_set_eq:NN \l_@@_point_clist \c_@@_normal_star_clist } + { \c_@@_mid_size_int } + { \clist_set_eq:NN \l_@@_point_clist \c_@@_mid_star_clist } + { \c_@@_small_size_int } + { \clist_set_eq:NN \l_@@_point_clist \c_@@_small_star_clist } + } + \clist_map_function:NN \l_@@_point_clist \@@_draw_point:n + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@@_set_loc_label:nn} +% 设置坐标标签(|#1| 标签方案;|#2| 单轴坐标)。 +% \begin{macrocode} +\cs_new:Npn \@@_set_loc_label:nn #1#2 + { + \str_case_e:nn { #1 } + { + { A } + { \str_set:Nx \l_@@_label_str { \int_to_Alph:n { #2 } } } + { \c_@@_normal_mode_str } + { \str_set:NV \l_@@_label_str { #2 } } + { \c_@@_sgf_mode_str } + { + \int_set:Nn \l_tmpa_int { \g_@@_size_int - #2 + 1 } + \str_set:Nx\l_@@_label_str { \int_to_alph:n { \l_tmpa_int } } + } + } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@@_draw_board_loc:} +% 绘制棋盘的坐标(路径)。 +% \begin{macrocode} +\cs_new:Nn \@@_draw_board_loc: + { + \int_gset:Nn \g_tmpa_int + { \int_sign:n { \l_@@_x_max_int - \l_@@_x_min_int } } + \int_gset:Nn \g_tmpb_int + { \int_sign:n { \l_@@_y_max_int - \l_@@_y_min_int } } + \int_step_inline:nnnn + { \l_@@_x_min_int } { \g_tmpa_int } { \l_@@_x_max_int } + { + \int_set:Ne \l_@@_tmp_int { \int_abs:n { ##1 } } + \bool_if:NTF \l_@@_swap_xy_bool + { \@@_set_loc_label:nn { \l_@@_loc_mode_str } { \l_@@_tmp_int } } + { \@@_set_loc_label:nn { A } { \l_@@_tmp_int } } + \hbox_set:Nn \l_tmpa_box { \l_@@_label_str } + \fp_set:Nn \l_tmpa_fp { 0.2 * \g_tmpb_int } + \fp_set:Nn \l_tmpb_fp { 0.5 * { \box_ht:N \l_tmpa_box } * \g_tmpb_int } + \bool_if:NT \l_@@_up_bool + { + \draw_box_use:Nn \l_tmpa_box + { + ##1 cm - 0.5 * { \box_wd:N \l_tmpa_box }, + (\l_@@_y_max_fp + \l_tmpa_fp ) cm - abs(\l_tmpb_fp) + \l_tmpb_fp + } + } + \bool_if:NT \l_@@_down_bool + { + \draw_box_use:Nn \l_tmpa_box + { + ##1 cm - 0.5 * { \box_wd:N \l_tmpa_box }, + (\l_@@_y_min_fp - \l_tmpa_fp ) cm - abs(\l_tmpb_fp) - \l_tmpb_fp + } + } + } + \int_step_inline:nnnn + { \l_@@_y_min_int } { \g_tmpb_int } { \l_@@_y_max_int } + { + \int_set:Ne \l_@@_tmp_int { \int_abs:n { ##1 } } + \bool_if:NTF \l_@@_swap_xy_bool + { \@@_set_loc_label:nn { A } { \l_@@_tmp_int } } + { \@@_set_loc_label:nn { \l_@@_loc_mode_str } { \l_@@_tmp_int } } + \hbox_set:Nn \l_tmpa_box { \l_@@_label_str } + \fp_set:Nn \l_tmpa_fp { 0.2 * \g_tmpa_int } + \fp_set:Nn \l_tmpb_fp { 0.5 * { \box_wd:N \l_tmpa_box } * \g_tmpa_int } + \bool_if:NT \l_@@_left_bool + { + \draw_box_use:Nn \l_tmpa_box + { + (\l_@@_x_min_fp - \l_tmpa_fp) cm - abs(\l_tmpb_fp) - \l_tmpb_fp, + ##1 cm - 0.5 * { \box_ht:N \l_tmpa_box } + } + } + \bool_if:NT \l_@@_right_bool + { + \draw_box_use:Nn \l_tmpa_box + { + (\l_@@_y_max_fp + \l_tmpa_fp) cm - abs(\l_tmpb_fp) + \l_tmpb_fp, + ##1 cm - 0.5 * { \box_ht:N \l_tmpa_box } + } + } + } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@@_draw_board:} +% 绘制完整的棋盘元素。 +% \begin{macrocode} +\cs_new:Nn \@@_draw_board: + { + \@@_calc_board_border: +% \end{macrocode} +% +% \begin{macrocode} + \draw_linewidth:n { 0.7 } + \color_select:n { black } + \@@_draw_board_grid: + \draw_path_use_clear:n { stroke } +% \end{macrocode} +% +% \begin{macrocode} + \draw_linewidth:n { 2 } + \@@_draw_board_border: + \draw_path_use_clear:n { stroke } + \@@_draw_board_corner: + \draw_path_use_clear:n { stroke } +% \end{macrocode} +% +% \begin{macrocode} + \color_select:n { black } + \@@_draw_board_star: + \draw_path_use_clear:n { draw, fill } +% \end{macrocode} +% +% \begin{macrocode} + \color_select:n { black!50 } + \bool_if:NT \l_@@_show_loc_bool + { \@@_draw_board_loc: } + \draw_path_use_clear:n { stroke } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@@_draw_points:} +% 绘制完整的指示点。 +% \begin{macrocode} +\cs_new:Npn \@@_draw_points: + { + \color_select:n { red } + \clist_map_function:NN \g_@@_red_point_clist \@@_draw_point:n + \draw_path_use_clear:n { draw, fill } + \color_select:n { green } + \clist_map_function:NN \g_@@_green_point_clist \@@_draw_point:n + \draw_path_use_clear:n { draw, fill } + \color_select:n { blue } + \clist_map_function:NN \g_@@_blue_point_clist \@@_draw_point:n + \draw_path_use_clear:n { draw, fill } + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@@_draw_stone:nnnn} +% 绘制一手棋或纯标签(|#1| 黑白方;|#2| $x$坐标;|#3| $y$ 坐标;|#4| 标签)。\\ +% 坐标是变换后的坐标。 +% \begin{macrocode} +\cs_new:Npn \@@_draw_stone:nnnn #1#2#3#4 + { +% \end{macrocode} +% 绘制外围空白,如果是纯标签则不绘制: +% \begin{macrocode} + \int_compare:nNnF { #1 } = { 3 } + { + \color_fill:n { white } + \draw_path_circle:nn { #2cm, #3cm } { 4.4mm } + \draw_path_use_clear:n { fill } + } +% \end{macrocode} +% 绘制棋子(不含标签);如果为纯标签,则绘制空白: +% \begin{macrocode} + \color_select:n { black } + \int_case:nn { #1 } + { + { 1 } { \color_fill:n { black } } + { 2 } { \color_fill:n { white } } + { 3 } { \color_select:n { white } } + } + \draw_path_circle:nn{ #2cm, #3cm } { 4mm } + \draw_path_use_clear:n { draw, fill } +% \end{macrocode} +% 绘制棋子标签: +% \begin{macrocode} + \int_case:nn { #1 } + { + { 1 } { \color_select:n { white } } + { 2 } { \color_select:n { black } } + { 3 } { \color_select:n { blue } } + } + \hbox_set:Nn \l_tmpa_box { \Large \textbf{ #4 } } + \draw_box_use:Nn \l_tmpa_box + { + #2cm - 0.5 * { \box_wd:N \l_tmpa_box }, + #3cm - 0.5 * { \box_ht:N \l_tmpa_box } + } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@@_draw_stones:} +% 绘制完整的常规棋子。 +% \begin{macrocode} +\cs_new:Nn \@@_draw_stones: + { + \draw_linewidth:n { 1 } + \int_step_inline:nn {\g_@@_step_count_int} + { + \int_set:Ne \l_@@_x_int + { \intarray_item:Nn \g_@@_x_intarray { ##1 } } + \int_set:Ne \l_@@_y_int + { \intarray_item:Nn \g_@@_y_intarray { ##1 } } + \int_set:Ne \l_@@_player_int + { \intarray_item:Nn \g_@@_player_intarray { ##1 } } + \str_set:Nx \l_@@_tmp_str + { \seq_item:Nn \g_@@_label_seq { ##1 } } + \seq_if_in:NnT \g_@@_die_seq { ##1 } + { \int_set:Nn \l_@@_x_int { 0 } } + \int_if_zero:nF { \l_@@_x_int } + { + \@@_transform_xy:NN \l_@@_x_int \l_@@_y_int + \@@_within_range:nnT + { \l_@@_x_int } { \l_@@_y_int } + { + \@@_draw_stone:nnnn { \l_@@_player_int } + { \l_@@_x_int } { \l_@@_y_int } { \l_@@_tmp_str } + } + } + } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@@_draw_specific_stone:} +% 绘制指定的一个特殊的棋子(死子、虚着)。 +% \begin{macrocode} +\cs_new:Nn \@@_draw_specific_stone: + { + \color_select:n { black } + \int_case:nn { \l_@@_player_int } + { + { 1 } { \color_fill:n { black } } + { 2 } { \color_fill:n { white } } + } + \draw_path_circle:nn{ \l_@@_x_fp cm, \l_@@_y_fp cm } { 4mm } + \draw_path_use_clear:n { draw, fill } +% \end{macrocode} +% \begin{macrocode} + \int_case:nn { \l_@@_player_int } + { + { 1 } { \color_select:n { white } } + { 2 } { \color_select:n { black } } + } + \@@_xy_to_loc:N \l_tmpa_str + \hbox_set:Nn \l_tmpa_box { \Large \textbf{ \l_@@_tmp_str } } + \hbox_set:Nn \l_tmpb_box { \Large \texttt{ \l_tmpa_str } } + \draw_box_use:Nn \l_tmpa_box + { + \l_@@_x_fp cm - 0.5 * { \box_wd:N \l_tmpa_box }, + \l_@@_y_fp cm - 0.5 * { \box_ht:N \l_tmpa_box } + } + \color_select:n { black } + \draw_box_use:Nn \l_tmpb_box + { + \l_@@_x_fp cm + 6mm, + \l_@@_y_fp cm - 0.5 * { \box_ht:N \l_tmpa_box } + } +% \end{macrocode} +% \begin{macrocode} + \fp_set:Nn \l_tmpa_fp { min(\l_@@_x_min_fp, \l_@@_x_max_fp) } + \fp_set:Nn \l_tmpb_fp { max(\l_@@_x_min_fp, \l_@@_x_max_fp) } + \fp_add:Nn \l_@@_x_fp { 2 } + \fp_compare:nNnT { \l_@@_x_fp } > { \l_tmpb_fp } + { + \fp_set_eq:NN \l_@@_x_fp \l_tmpa_fp + \fp_sub:Nn \l_@@_y_fp { 1 } + } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@@_draw_specific_stones:} +% 绘制完整的特殊棋子(死子、虚着)。 +% \begin{macrocode} +\cs_new:Nn \@@_draw_specific_stones: + { + \draw_linewidth:n { 1 } + \fp_set:Nn \l_@@_x_fp { min(\l_@@_x_min_int, \l_@@_x_max_int) } + \fp_set:Nn \l_@@_y_fp { min(\l_@@_y_min_int, \l_@@_y_max_int) - 1.2} + \int_step_inline:nn {\g_@@_step_count_int} + { + \int_set:Ne \l_@@_x_int + { \intarray_item:Nn \g_@@_x_intarray { ##1 } } + \int_set:Ne \l_@@_y_int + { \intarray_item:Nn \g_@@_y_intarray { ##1 } } + \int_set:Ne \l_@@_player_int + { \intarray_item:Nn \g_@@_player_intarray { ##1 } } + \str_set:Nx \l_@@_tmp_str + { \seq_item:Nn \g_@@_label_seq { ##1 } } +% \end{macrocode} +% \begin{macrocode} + \seq_if_in:NnTF \g_@@_die_seq { ##1 } + { \int_set:Nn \l_tmpa_int { 0 } } + { \int_set_eq:NN \l_tmpa_int \l_@@_x_int } + \str_compare:eNeT { \l_@@_tmp_str } = {} + { \int_set:Nn \l_tmpa_int { 1 } } + \bool_lazy_all:nT + { + { \int_compare_p:nNn { \l_tmpa_int } = { 0 } } + { \int_compare_p:nNn { \l_@@_player_int } > { 0 } } + { \int_compare_p:nNn { \l_@@_player_int } < { 3 } } + } + { \@@_draw_specific_stone: } + } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@@_show:} +% 显示完整对局。 +% \begin{macrocode} +\cs_new:Nn \@@_show: + { + \draw_begin: + \group_begin: + \draw_transform_scale:n { \l_@@_scale_fp } + \@@_draw_board: + \@@_draw_points: + \@@_draw_stones: + \@@_draw_specific_stones: + \group_end: + \draw_end: + } +% \end{macrocode} +% \end{macro} +% +% +% \subsection{定义文档命令} +% +% 本节定义了一些供宏包外使用的文档命令。 +% +% \begin{macro}{\newweiqi} +% 开始新对局。 +% \begin{macrocode} +\NewDocumentCommand \newweiqi { s o } + { + \IfNoValueTF { #2 } + { \@@_new_game:n { \g_@@_default_size_int } } + { + \IfBooleanT { #1 } { \int_gset:Nn \g_@@_default_size_int { #2 } } + \@@_new_game:n { #2 } + } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\weiqisize} +% 更改棋盘大小。 +% \begin{macrocode} +\NewDocumentCommand \weiqisize { s m } + { + \IfBooleanT{ #1 } + { \int_gset:Nn \g_@@_default_size_int { #2 } } + \int_set:Nn \g_@@_size_int { #2 } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\weiqiblack, \weiqiwhite} +% 添加黑/白棋子。星号版本命令无区别。 +% \begin{macrocode} +\NewDocumentCommand \weiqiblack { s o m } + { + \IfNoValueTF { #2 } + { \@@_add_stones:nnn { 1 } { #3 } { } } + { \@@_add_stones:nnn { 1 } { #3 } { #2 } } + } +% \end{macrocode} +% \begin{macrocode} +\NewDocumentCommand \weiqiwhite { s o m } + { + \IfNoValueTF { #2 } + { \@@_add_stones:nnn { 2 } { #3 } { } } + { \@@_add_stones:nnn { 2 } { #3 } { #2 } } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\weiqisgf} +% 使用 sgf 文本添加黑/白棋子。星号版本命令无区别。 +% \begin{macrocode} +\NewDocumentCommand \weiqisgf { s o m } + { + \IfNoValueTF { #2 } + { \@@_add_sgf_stones:nn { #3 } { } } + { \@@_add_sgf_stones:nn { #3 } { #2 } } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\inputsgf} +% 读取 sgf 棋谱。星号版本命令无区别。 +% \begin{macrocode} +\NewDocumentCommand \inputsgf { s o m } + { + \ior_open:Nn \g_tmpa_ior { #3 } + \str_set:Nn \l_@@_tmp_str {} + \ior_str_map_inline:Nn \g_tmpa_ior + { + \str_put_right:Nx \l_@@_tmp_str { ##1 } + } + \ior_close:N \g_tmpa_ior +% \end{macrocode} +% \begin{macrocode} + \regex_extract_once:nVNTF { ;GM\[1\] } { \l_@@_tmp_str } \l_tmpa_seq + { + \regex_extract_once:nVNTF { SZ\[[0-9]+\] } { \l_@@_tmp_str } \l_tmpa_seq + { + \str_set:Nx \l_tmpa_str { \seq_item:Nn \l_tmpa_seq { 1 } } + \str_set:Nx \l_tmpa_str { \str_range:Nnn \l_tmpa_str { 4 } { -2 } } + \int_set:Ne \l_tmpa_int { \l_tmpa_str } + \newweiqi [ \l_tmpa_int ] + \regex_extract_once:nVN { HA\[[0-9]+\] } { \l_@@_tmp_str } \l_tmpa_seq + \str_set:Nx \l_tmpa_str { \seq_item:Nn \l_tmpa_seq { 1 } } + \str_set:Nx \l_tmpa_str {\str_range:Nnn \l_tmpa_str { 4 } { -2 } } + \int_set:Ne \l_tmpa_int { \l_tmpa_str } + \IfNoValueTF { #2 } + { \int_add:Nn \l_tmpa_int { 1 } } + { \int_add:Nn \l_tmpa_int { #2 } } + \@@_add_sgf_stones:VV { \l_@@_tmp_str } { \l_tmpa_int } + } + { 解析棋盘大小失败 } + } + { 不支持的棋谱 } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\resetnumber} +% 重新修改棋子手数。星号版本命令无区别。 +% \begin{macrocode} +\NewDocumentCommand \resetnumber { s o } + { + \IfNoValueTF { #2 } + { \@@_reset_stone_number:n { 1 } } + { \@@_reset_stone_number:n { #2 } } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\weiqilabel, \clearlabel} +% 添加/删除标签。 +% \begin{macrocode} +\NewDocumentCommand \weiqilabel { s o m } + { + \IfBooleanT{ #1 } { \@@_clear_labels: } + \IfNoValueTF { #2 } + { \@@_add_stones:nnn { 3 } { #3 } { a } } + { \@@_add_stones:nnn { 3 } { #3 } { #2 } } + } +% \end{macrocode} +% +% \begin{macrocode} +\NewDocumentCommand \clearlabel { } + { \@@_clear_labels: } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\weiqired, \weiqigreen, \weiqiblue, \clearpoint} +% 添加红绿蓝点。 +% \begin{macrocode} +\NewDocumentCommand \weiqired { s m } + { + \IfBooleanT{ #1 } { \@@_clear_points: } + \@@_add_points:nn { red } { #2 } + } +% \end{macrocode} +% +% \begin{macrocode} +\NewDocumentCommand \weiqigreen { s m } + { + \IfBooleanT{ #1 } { \@@_clear_points: } + \@@_add_points:nn { green } { #2 } + } +% \end{macrocode} +% +% \begin{macrocode} +\NewDocumentCommand \weiqiblue { s m } + { + \IfBooleanT{ #1 } { \@@_clear_points: } + \@@_add_points:nn { blue } { #2 } + } +% \end{macrocode} +% +% \begin{macrocode} +\NewDocumentCommand \clearpoint { } + { \@@_clear_points: } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\weiqidie} +% 标记死子。 +% \begin{macrocode} +\NewDocumentCommand \weiqidie { s m } + { + \@@_modify_stones:nN { #2 } \@@_die_stone:n + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\weiqiremove} +% 移除棋子。 +% \begin{macrocode} +\NewDocumentCommand \weiqiremove { s m } + { + \@@_modify_stones:nN { #2 } \@@_remove_stone:n + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\weiqichange} +% 切换棋子黑白方。 +% \begin{macrocode} +\NewDocumentCommand \weiqichange { s m } + { + \@@_modify_stones:nN { #2 } \@@_change_stone:n + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\showweiqi} +% 显示棋盘。 +% \begin{macrocode} +\NewDocumentCommand \showweiqi { s o } + { + \IfNoValueTF { #2 } + { \@@_calc_range: } + { \@@_set_range:n { #2 } } + \@@_show: + \IfBooleanF { #1 } { \newweiqi } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\nonelocmode, \normallocmode, \sgflocmode} +% 设置围棋坐标显示模式。 +% \begin{macrocode} +\NewDocumentCommand \nonelocmode { s } + { + \bool_set_false:N \l_@@_show_loc_bool + \IfBooleanT { #1 } { \bool_gset_false:N \g_@@_show_loc_bool } + } +% \end{macrocode} +% +% \begin{macrocode} +\NewDocumentCommand \normallocmode { s } + { + \bool_set_true:N \l_@@_show_loc_bool + \str_set_eq:NN \l_@@_loc_mode_str \c_@@_normal_mode_str + \IfBooleanT { #1 } + { + \bool_gset_true:N \g_@@_show_loc_bool + \str_gset_eq:NN \g_@@_loc_mode_str \c_@@_normal_mode_str + } + } +% \end{macrocode} +% +% \begin{macrocode} +\NewDocumentCommand \sgflocmode { s } + { + \bool_set_true:N \l_@@_show_loc_bool + \str_set_eq:NN \l_@@_loc_mode_str \c_@@_sgf_mode_str + \IfBooleanT { #1 } + { + \bool_gset_true:N \g_@@_show_loc_bool + \str_gset_eq:NN \g_@@_loc_mode_str \c_@@_sgf_mode_str + } + } +% \end{macrocode} +% \end{macro} +% + +% +% \begin{macro}{\weiqirotate, \weiqimirror, \weiqiposition} +% 旋转棋盘、镜像棋盘或指定棋盘方位。 +% \begin{macrocode} +\NewDocumentCommand \weiqirotate { s o } + { + \IfNoValueTF { #2 } + { \int_set:Nn \l_tmpa_int { 90 } } + { \int_set:Ne \l_tmpa_int { #2 } } + \int_compare:nNnT { \l_tmpa_int } < { 0 } + { \int_add:Nn \l_tmpa_int { 360 } } + \int_case:nn { \l_tmpa_int } + { + { 90 } + { + \bool_set_inverse:N \l_@@_swap_xy_bool + \int_set:Ne \l_tmpb_int { \l_@@_x_direction_int } + \int_set:Ne \l_@@_x_direction_int { \l_@@_y_direction_int } + \int_set:Ne \l_@@_y_direction_int { 0 - \l_tmpb_int } + } + { 180 } + { + \int_set:Ne \l_@@_x_direction_int { 0 - \l_@@_x_direction_int } + \int_set:Ne \l_@@_y_direction_int { 0 - \l_@@_y_direction_int } + } + { 270 } + { + \bool_set_inverse:N \l_@@_swap_xy_bool + \int_set:Ne \l_tmpb_int { \l_@@_x_direction_int } + \int_set:Ne \l_@@_x_direction_int { 0 - \l_@@_y_direction_int } + \int_set:Ne \l_@@_y_direction_int { \l_tmpb_int } + } + } + \IfBooleanT{ #1 } + { + \bool_gset_eq:NN \g_@@_swap_xy_bool \l_@@_swap_xy_bool + \int_gset_eq:NN \g_@@_x_direction_int \l_@@_x_direction_int + \int_gset_eq:NN \g_@@_y_direction_int \l_@@_y_direction_int + } + } +% \end{macrocode} +% \begin{macrocode} +\NewDocumentCommand \weiqimirror { s o } + { + \IfNoValueTF { #2 } + { \str_set:Nn \l_tmpa_str { xy } } + { \str_set:Nx \l_tmpa_str { #2 } } + \str_case_e:nn { \l_tmpa_str } + { + { x } + { + \int_set:Ne \l_@@_x_direction_int { 0 - \l_@@_x_direction_int } + } + { y } + { + \int_set:Ne \l_@@_y_direction_int { 0 - \l_@@_y_direction_int } + } + { xy } + { + \int_set:Ne \l_@@_x_direction_int { 0 - \l_@@_x_direction_int } + \int_set:Ne \l_@@_y_direction_int { 0 - \l_@@_y_direction_int } + } + + } + \IfBooleanT{ #1 } + { + \bool_set_eq:NN \g_@@_swap_xy_bool \l_@@_swap_xy_bool + \int_set_eq:NN \g_@@_x_direction_int \l_@@_x_direction_int + \int_set_eq:NN \g_@@_y_direction_int \l_@@_y_direction_int + } + } +% \end{macrocode} +% \begin{macrocode} +\NewDocumentCommand \weiqiposition { s o } + { + \IfNoValueTF { #2 } + { \int_set:Nn \l_tmpa_int { 0 } } + { \int_set:Ne \l_tmpa_int { #2 } } + \int_compare:nNnT { \l_tmpa_int } < { 0 } + { \int_add:Nn \l_tmpa_int { 360 } } + \int_case:nn { \l_tmpa_int } + { + { 0 } + { + \bool_set_false:N \l_@@_swap_xy_bool + \int_set:Nn \l_@@_x_direction_int { 1 } + \int_set:Nn \l_@@_y_direction_int { 1 } + } + { 90 } + { + \bool_set_true:N \l_@@_swap_xy_bool + \int_set:Nn \l_@@_x_direction_int { 1 } + \int_set:Nn \l_@@_y_direction_int { -1 } + } + { 180 } + { + \bool_set_false:N \l_@@_swap_xy_bool + \int_set:Nn \l_@@_x_direction_int { -1 } + \int_set:Nn \l_@@_y_direction_int { -1 } + } + { 270 } + { + \bool_set_true:N \l_@@_swap_xy_bool + \int_set:Nn \l_@@_x_direction_int { -1 } + \int_set:Nn \l_@@_y_direction_int { 1 } + } + } + \IfBooleanT{ #1 } + { + \bool_gset_eq:NN \g_@@_swap_xy_bool \l_@@_swap_xy_bool + \int_gset_eq:NN \g_@@_x_direction_int \l_@@_x_direction_int + \int_gset_eq:NN \g_@@_y_direction_int \l_@@_y_direction_int + } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\weiqiscale} +% 缩放棋盘。 +% \begin{macrocode} +\NewDocumentCommand \weiqiscale { s o } + { + \IfNoValueTF { #2 } + { \fp_set:Nn \l_@@_scale_fp { 1.0 } } + { \fp_set:Nn \l_@@_scale_fp { #2 * \l_@@_scale_fp } } + \IfBooleanT{ #1 } + { \fp_set_eq:NN \g_@@_scale_fp \l_@@_scale_fp } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\weiqiminsize} +% 最小显示尺寸。 +% \begin{macrocode} +\NewDocumentCommand \weiqiminsize { s m m } + { + \int_set:Nn \l_@@_min_width_int { #2 } + \int_set:Nn \l_@@_min_hight_int { #3 } + \IfBooleanT{ #1 } + { + \int_gset:Nn \g_@@_min_width_int { #2 } + \int_gset:Nn \g_@@_min_hight_int { #3 } + } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\saveweiqi} +% 保存对局。 +% \begin{macrocode} +\NewDocumentCommand \saveweiqi { s o } + { + \IfNoValueTF { #2 } + { \str_set:Nx \l_tmpa_str { Default } } + { \str_set:Nx \l_tmpa_str { \int_to_alph:n { #2 } } } + \cs_if_free:cT { g_@@_size_int_\l_tmpa_str } + { + \int_new:c { g_@@_size_int_\l_tmpa_str } + \int_new:c { g_@@_step_count_int_\l_tmpa_str } + \intarray_new:cn { g_@@_x_intarray_\l_tmpa_str } + { \c_@@_max_step_int } + \intarray_new:cn { g_@@_y_intarray_\l_tmpa_str } + { \c_@@_max_step_int } + \intarray_new:cn { g_@@_player_intarray_\l_tmpa_str } + { \c_@@_max_step_int } + \seq_new:c { g_@@_label_seq_\l_tmpa_str } + \seq_new:c { g_@@_die_seq_\l_tmpa_str } + } + \int_gset_eq:cN { g_@@_size_int_\l_tmpa_str } \g_@@_size_int + \int_gset_eq:cN + { g_@@_step_count_int_\l_tmpa_str } \g_@@_step_count_int + \int_step_inline:nn { \c_@@_max_step_int } + { + \intarray_gset:cnn { g_@@_x_intarray_\l_tmpa_str } { ##1 } + { \intarray_item:Nn \g_@@_x_intarray { ##1 } } + \intarray_gset:cnn { g_@@_y_intarray_\l_tmpa_str } { ##1 } + { \intarray_item:Nn \g_@@_y_intarray { ##1 } } + \intarray_gset:cnn { g_@@_player_intarray_\l_tmpa_str } { ##1 } + { \intarray_item:Nn \g_@@_player_intarray { ##1 } } + } + \clist_gset_eq:cN { g_@@_label_seq_\l_tmpa_str } \g_@@_label_seq + \clist_gset_eq:cN { g_@@_die_seq_\l_tmpa_str } \g_@@_die_seq + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\useweiqi} +% 使用对局。 +% \begin{macrocode} +\NewDocumentCommand \useweiqi { s o } + { + \IfNoValueTF { #2 } + { \str_set:Nx \l_tmpa_str { Default } } + { \str_set:Nx \l_tmpa_str { \int_to_alph:n { #2 } } } + \cs_if_free:cTF { g_@@_size_int_\l_tmpa_str } + { \@@_new_game:n { \g_@@_default_size_int } } + { + \int_set_eq:Nc \l_tmpa_int { g_@@_size_int_\l_tmpa_str } + \@@_new_game:n { \l_tmpa_int } + \int_gset_eq:Nc \g_@@_step_count_int + { g_@@_step_count_int_\l_tmpa_str } + \int_step_inline:nn { \c_@@_max_step_int } + { + \intarray_gset:Nnn \g_@@_x_intarray { ##1 } + { \intarray_item:cn { g_@@_x_intarray_\l_tmpa_str } { ##1 } } + \intarray_gset:Nnn \g_@@_y_intarray { ##1 } + { \intarray_item:cn { g_@@_y_intarray_\l_tmpa_str } { ##1 } } + \intarray_gset:Nnn \g_@@_player_intarray { ##1 } + { + \intarray_item:cn + { g_@@_player_intarray_\l_tmpa_str } { ##1 } + } + } + \clist_set_eq:Nc \g_@@_label_seq { g_@@_label_seq_\l_tmpa_str } + \clist_set_eq:Nc \g_@@_die_seq { g_@@_die_seq_\l_tmpa_str } + } + \IfBooleanT{ #1 } + { + \@@_clear_labels: + \int_step_inline:nn { \g_@@_step_count_int } + { + \seq_gset_item:Nnn \g_@@_label_seq { ##1 } {} + } + } + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\weiqidata} +% 查询内部数据。 +% \begin{macrocode} +\NewDocumentCommand \weiqidata { s } + { + \noindent 棋盘大小:\int_use:N \g_@@_size_int~ + (默认:\int_use:N \g_@@_default_size_int)\\ + 当前对局步数:\int_use:N \g_@@_step_count_int~(含纯标签及移除棋子)\\ + \int_compare:nNnT { \g_@@_step_count_int } > { 0 } + { 序号:($x$,~$y$),所属方,标签,备注\\ } + \int_step_inline:nn {\g_@@_step_count_int} + { + \int_set:Ne \l_@@_x_int + { \intarray_item:Nn \g_@@_x_intarray { ##1 } } + \int_set:Ne \l_@@_y_int + { \intarray_item:Nn \g_@@_y_intarray { ##1 } } + \int_set:Ne \l_@@_player_int + { \intarray_item:Nn \g_@@_player_intarray { ##1 } } + \str_set:Nx \l_@@_tmp_str + { \seq_item:Nn \g_@@_label_seq { ##1 } } + ##1: + (\int_use:N \l_@@_x_int,~\int_use:N \l_@@_y_int), + \int_case:nn { \l_@@_player_int } + { + { 1 } { B } + { 2 } { W } + { 3 } { L } + { 0 } { - } + }, + \str_if_empty:NTF \l_@@_tmp_str + { \meta{空} } + { \l_@@_tmp_str }, + \int_compare:nNnTF + { \l_@@_player_int } = { 0 } + { \meta{无效} } + { + \seq_if_in:NnT \g_@@_die_seq { ##1 } + { \meta{死子} } + { + \int_compare:nNnT + { \l_@@_x_int } = { 0 } + { \meta{虚着} } + } + }\\ + } + 红色指示点: + \clist_if_empty:NTF \g_@@_red_point_clist + { \meta{空} } + { \clist_use:Nn \g_@@_red_point_clist {,~} }\\ + 绿色指示点: + \clist_if_empty:NTF \g_@@_green_point_clist + { \meta{空} } + { \clist_use:Nn \g_@@_green_point_clist {,~} }\\ + 蓝色指示点: + \clist_if_empty:NTF \g_@@_blue_point_clist + { \meta{空} } + { \clist_use:Nn \g_@@_blue_point_clist {,~} }\\ + 方位信息: + \int_use:N \l_@@_x_direction_int,~ + \int_use:N \l_@@_x_direction_int,~ + \bool_to_str:N \l_@@_swap_xy_bool;~ + (全局: + \int_use:N \g_@@_x_direction_int,~ + \int_use:N \g_@@_x_direction_int,~ + \bool_to_str:N \g_@@_swap_xy_bool + )\\ + 缩放比例:\fp_use:N \l_@@_scale_fp~ + (全局:\fp_use:N \g_@@_scale_fp)\\ + 坐标刻度:\l_@@_loc_mode_str,~\bool_to_str:N \l_@@_show_loc_bool + (全局:\g_@@_loc_mode_str,~\bool_to_str:N \g_@@_show_loc_bool)\\ + 最小显示尺寸: + \int_use:N \l_@@_min_width_int,~ + \int_use:N \l_@@_min_hight_int~ + (全局: + \int_use:N \g_@@_min_width_int,~ + \int_use:N \g_@@_min_hight_int + )\\ + \IfBooleanT{ #1 } + { + 棋子区间: + (\int_use:N \l_@@_x_min_int,~\int_use:N \l_@@_y_max_int), + (\int_use:N \l_@@_x_max_int,~\int_use:N \l_@@_y_min_int)\\ + 棋盘边界: + (\fp_use:N \l_@@_x_min_fp,~\fp_use:N \l_@@_x_max_fp), + (\fp_use:N \l_@@_y_min_fp,~\fp_use:N \l_@@_y_max_fp)\\ + 是否边路: + \bool_to_str:N \l_@@_up_bool, + \bool_to_str:N \l_@@_down_bool, + \bool_to_str:N \l_@@_left_bool, + \bool_to_str:N \l_@@_right_bool(上下左右)\\ + } + } +% \end{macrocode} +% \end{macro} +% +% +% \subsection{扫尾} +% +% 初始新对局 +% \begin{macrocode} +\newweiqi +% \end{macrocode} +% +% 关闭 expl3 模式 +% \begin{macrocode} +\ExplSyntaxOff +% \end{macrocode} +% +% \begin{macrocode} +%</package> +% \end{macrocode} +% +% \end{implementation} +% +% \PrintIndex diff --git a/macros/latex/contrib/weiqi/weiqi.ins b/macros/latex/contrib/weiqi/weiqi.ins new file mode 100644 index 0000000000..bb7a63b39a --- /dev/null +++ b/macros/latex/contrib/weiqi/weiqi.ins @@ -0,0 +1,36 @@ +%% +%% 版本(C) 2023-2024 by Ms_yam +%% +%% 它可以在LaTeX 项目公共许可(LPPL)1.3c 及之后的任意版本( +%% 随你的意见)下分发或修改。这个许可的最新版本在如下文件中: +%% +%% http://www.latex-project.org/lppl.txt +%% +%% 版本1.3c 及之后的版本是LaTeX 2008 及之后的版本的组成。 +%% + +\input docstrip.tex + +\keepsilent + +\preamble + +\endpreamble + +\generate{\file{weiqi.sty}{\from{weiqi.dtx}{package}}} + +\obeyspaces + +\Msg{************************************************************} +\Msg{* *} +\Msg{* 请将下列文件移动到 TeX 搜索路径以完成安装: *} +\Msg{* *} +\Msg{* weiqi.sty *} +\Msg{* *} +\Msg{* 使用 XeLaTeX 运行 weiqi.dtx 文件以生成用户文档。 *} +\Msg{* *} +\Msg{* 祝您使用TeX 愉快! *} +\Msg{* *} +\Msg{************************************************************} + +\endbatchfile
\ No newline at end of file diff --git a/macros/latex/contrib/weiqi/weiqi.pdf b/macros/latex/contrib/weiqi/weiqi.pdf Binary files differnew file mode 100644 index 0000000000..ed48eb673a --- /dev/null +++ b/macros/latex/contrib/weiqi/weiqi.pdf diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl index 036715afb3..3e2a96e44c 100644 --- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl +++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl @@ -187,6 +187,7 @@ $mirrors = { 'https://ctan.math.illinois.edu/' => 1, 'https://ctan.math.utah.edu/ctan/tex-archive/' => 1, 'https://ctan.math.washington.edu/tex-archive/' => 1, + 'https://ctan.mirrors.hoobly.com/' => 1, 'https://mirror.las.iastate.edu/tex-archive/' => 1, 'https://mirror.math.princeton.edu/pub/CTAN/' => 1, 'https://mirror.mwt.me/ctan/' => 1, diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb index 3be904ae50..92c110f9dd 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/2023 -depend revision/70144 +depend revision/70170 name 00texlive.image category TLCore -revision 70141 +revision 70166 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 @@ -728,6 +728,7 @@ runfiles size=14451 tlpkg/tlpsrc/bearwear.tlpsrc tlpkg/tlpsrc/beaulivre.tlpsrc tlpkg/tlpsrc/beautybook.tlpsrc + tlpkg/tlpsrc/beautynote.tlpsrc tlpkg/tlpsrc/beebe.tlpsrc tlpkg/tlpsrc/begingreek.tlpsrc tlpkg/tlpsrc/begriff.tlpsrc @@ -4856,7 +4857,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd name 00texlive.installer category TLCore -revision 70120 +revision 70146 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 @@ -35592,6 +35593,36 @@ catalogue-ctan /macros/latex/contrib/beautybook catalogue-license lppl1.3c catalogue-topics book-pub class doc-templ expl3 +name beautynote +category Package +revision 70166 +shortdesc A package designed to meet the publication of books and the production of LaTeX templates, with elegant chapter +relocated 1 +longdesc The package is a specially designed to meet the publication of +longdesc books and the production of LaTeX templates, with elegant +longdesc chapter styles and unique page styles. +containersize 5128 +containerchecksum 637e51a355d5f89c2e0241140780b221fabbb4685830c1ce9ccb5cb185c53f1cc4c3ffafe737df25445ef885958c1b5f6ba96a4a3de1169de7f2cf28095eea43 +doccontainersize 858720 +doccontainerchecksum 36e71d750df5b5e5d8d05251a4be60214c09027a10c77551ff6261464729004fe0e3be586687af23db115b7cb4c99086dbe9278da0b8d6292b57005019628fc3 +docfiles size=405 + RELOC/doc/latex/beautynote/README.md details="Readme" + RELOC/doc/latex/beautynote/beautynote.pdf details="Package documentation" + RELOC/doc/latex/beautynote/beautynote.tex + RELOC/doc/latex/beautynote/figures/fibonacci.jpg + RELOC/doc/latex/beautynote/figures/titlepage.png +runfiles size=5 + RELOC/tex/latex/beautynote/beautynote.cls +catalogue-contact-announce https://github.com/BeautyLaTeX/beautynote/releases +catalogue-contact-bugs https://github.com/BeautyLaTeX/beautynote/issues +catalogue-contact-development https://github.com/BeautyLaTeX +catalogue-contact-home https://github.com/BeautyLaTeX/beautynote +catalogue-contact-repository https://github.com/BeautyLaTeX/beautynote +catalogue-contact-support https://github.com/BeautyLaTeX/beautynote/issues +catalogue-ctan /macros/latex/contrib/beautynote +catalogue-license lppl1.3c +catalogue-topics book-pub class doc-templ expl3 + name beebe category Package revision 70064 @@ -71825,7 +71856,7 @@ containerchecksum 889eae40b82f31c7c4b3a17740399c763dabec7986fcb39261b252afff69a0 name collection-latexextra category Collection -revision 70140 +revision 70166 shortdesc LaTeX additional packages relocated 1 longdesc A very large collection of add-on packages for LaTeX. @@ -71934,6 +71965,7 @@ depend beamerthemenord depend bearwear depend beaulivre depend beautybook +depend beautynote depend beton depend bewerbung depend bez123 @@ -73363,8 +73395,8 @@ depend zref-clever depend zref-vario depend zwgetfdate depend zwpagelayout -containersize 7112 -containerchecksum 64c7796f2f5fbe2444ea5129f804d9aa43c518cd22a69f1553de89a1fbef20452a64a226c563ebd8dc8eb6358da69d8cdb82f7552860570ed57412c8935e9000 +containersize 7116 +containerchecksum 1c400089a28336f821c3addcb5489074e112d2a4f54de7b4b48d1d76bdca2b41f3225ab182d88024321986a608b8b5da375aaa8ed0030f1e794e5ee16886fa58 name collection-latexrecommended category Collection @@ -86063,8 +86095,8 @@ catalogue-version 0.1.0 name crefthe category Package -revision 70139 -shortdesc Cross referencing with proper definite articles +revision 70165 +shortdesc Cross referencing with proper definite articles and declensions relocated 1 longdesc By default, when using cleveref's \cref to reference longdesc theorem-like environments, the names do not contain definite @@ -86073,16 +86105,16 @@ longdesc Spanish, etc. this results in incorrect grammar. For this longdesc purpose, the current package offers \crefthe, which handles the longdesc definite articles properly (especially for the article longdesc contractions in many European languages). -containersize 4424 -containerchecksum b90551ca30d40706a70dbf15a02c823f97213d570e97f74a3dbd4d64b26bcfd86d8a66737f396acd981cfce0e76dd11c84f55823263cccee452eae4339770ab6 -doccontainersize 76148 -doccontainerchecksum 169575f2dd8c117a51820a0f7690f348d84d942e6fc622d7098987541ef226128cc64ea85c906790cd28153f1116e9598c013379982a90faefcdf4b8a63a6ba2 -docfiles size=29 +containersize 5000 +containerchecksum e3d8ee83d5c8eeb35885ac852e64df8c3e0950855b1860fd1013358626aa5968e02175e0873dadeff69eafcf14dc85bddfbe78fccbe9c784748c5e09b599a27a +doccontainersize 81312 +doccontainerchecksum 35d45eb3ad323dc4699ee103a7efedbfb4fac371632d82e5e449a49e89ff6ee25ba9b7d86ee2ebe76c5094dbc24c0813d2a89328d28414b04ba2d20c513cdf3e +docfiles size=30 RELOC/doc/latex/crefthe/LICENSE RELOC/doc/latex/crefthe/README.md details="Readme" RELOC/doc/latex/crefthe/crefthe-doc.pdf details="Package documentation" RELOC/doc/latex/crefthe/crefthe-doc.tex -runfiles size=6 +runfiles size=7 RELOC/tex/latex/crefthe/crefthe.sty catalogue-alias ccref catalogue-contact-repository https://github.com/Jinwen-XU/crefthe @@ -105875,7 +105907,7 @@ catalogue-topics notes editorial name easybook category Package -revision 70073 +revision 70164 shortdesc Easily typesetting Chinese theses or books relocated 1 longdesc easybook is a pure academic template created based on the @@ -105887,15 +105919,15 @@ longdesc easily customize the thesis template. Its basic macro package longdesc easybase can also be used with CTeX and standard document longdesc classes. containersize 16828 -containerchecksum a54be3ac3a15cfe7db546208809236844eabc42af9c1edeb57c22870d4c8f7a9cacad19222ebf71d3751b686dd0187a9d1995c504acb2d9ffacf00a80484801d -doccontainersize 629168 -doccontainerchecksum 7fe947007aa99cafe37e3f89003a0a96827923dbaaf13223ad1af15c05c49a6cc63c5c93886068696ba0f6761b5169571b36de3983e411d50cdca12de533b999 +containerchecksum 6fe9775133d35f9292df60a732169abf04a4e1d5ad24dfceabb2c042628ec67a3b8982d04f968e9d104d7e28481e0430e89b8871243898d176a3109cb46ed9de +doccontainersize 629172 +doccontainerchecksum 4888a21019ffecacbe5a783df20459d03eba4a831d6b474c635d175296042305d54bd6db047361474845380026795e3b80eae53ebb9808d074202cdc8a89e740 docfiles size=172 RELOC/doc/latex/easybook/README.md details="Readme" RELOC/doc/latex/easybook/easybook.pdf details="Package documentation" language="zh" RELOC/doc/latex/easybook/easybook.tex -srccontainersize 16720 -srccontainerchecksum 28ea8e589887f52e9a3afda516fca12ee9b547b15d5cd2013ab8b45f1f90045972efd4e791c39e927357af1b440b49a4742c5767ea349bdea6ebdf0fc9778c5f +srccontainersize 16716 +srccontainerchecksum e3e2ae2d871903515eb088f34da8ae0073c282d6a1d641829ba32c75afd2f371f356c9c6868f5d617073542342193cc6084f0600db681311aa3680c123cd8c12 srcfiles size=20 RELOC/source/latex/easybook/easybook.dtx RELOC/source/latex/easybook/easybook.ins @@ -105908,7 +105940,7 @@ catalogue-contact-repository https://gitee.com/texno3/easybook catalogue-ctan /macros/latex/contrib/easybook catalogue-license lppl1.3c catalogue-topics book-pub dissertation class doc-templ chinese expl3 -catalogue-version 2024ak +catalogue-version 2024al name easydtx category Package @@ -133494,7 +133526,7 @@ catalogue-version 1.3 name frenchmath category Package -revision 70031 +revision 70163 shortdesc Typesetting mathematics according to French rules relocated 1 longdesc The package provides: capital letters in roman (upright shape) @@ -133505,15 +133537,15 @@ longdesc useful macros and aliases for symbols used in France: \infeg, longdesc \supeg, \paral, ... several macros for writing french operator longdesc names like pgcd, ppcm, Card, rg, Vect, ... optionally lowercase longdesc Greek letters in upright shape, -containersize 2924 -containerchecksum b7f6bde368c066f5d15f3026458f3f6a44e9af61639d631a42901d4b5013898cf51c2e4e1e02681302dab0deff306541043d491d27ebf73e14208370af06c13b -doccontainersize 580400 -doccontainerchecksum 46ad2bd606bb341f77dbe1e2d7ff1308072c84a14143373df9c855739093cf32c0ce6fd90bdbb47bdfcac6f763fb579b6b0ee4b9a737e4da6f95d5e5b01b3aa7 +containersize 2956 +containerchecksum dc8bfa123818c5e3ae96194158cccee72c29bae0b59dac01014750d1907039eed6ef3f24f08a32f08f15320c28e03bac3a9f052010e4609108bb5b4a4ff97397 +doccontainersize 580696 +doccontainerchecksum 1a1146f868e4d68014b080462cfce94f0f8362d23ccd42fe2a16fc526834850939aa10bc60dc65e5a66c35d40632f7c7b1fc607548b966424ebcda59104264bf docfiles size=143 RELOC/doc/latex/frenchmath/README.md details="Readme" RELOC/doc/latex/frenchmath/frenchmath.pdf details="Package documentation" language="fr" -srccontainersize 15404 -srccontainerchecksum 8fb20e63f734d4f36935a5fb322984a3dd177476f7270ec9b2e1fd121e6bba62a82055e748eefc4f345a14035005cecb10be2f864fb43247264aa89c83731dbe +srccontainersize 15456 +srccontainerchecksum 9a3c55e4d175635953917751c57b9f762a20046f1967c47a022703249a0fdedae4264810b16bc4188d6b19ec3836835e2d911c78fa7769bc1701b906b8898f65 srcfiles size=13 RELOC/source/latex/frenchmath/frenchmath.dtx RELOC/source/latex/frenchmath/frenchmath.ins @@ -133522,7 +133554,7 @@ runfiles size=3 catalogue-ctan /macros/latex/contrib/frenchmath catalogue-license lppl1.3 catalogue-topics maths french -catalogue-version 2.9 +catalogue-version 2.10 name frimurer category Package @@ -211093,17 +211125,17 @@ catalogue-version 0.5 name mcf2graph category Package -revision 69521 +revision 70167 shortdesc Draw chemical structure diagrams with MetaPost relocated 1 longdesc The Molecular Coding Format (MCF) is a linear notation for longdesc describing chemical structure diagrams. This package converts longdesc MCF to graphic files using MetaPost. -containersize 444 -containerchecksum 460e7c862fa7452277bbc5582daaac5510bb3968d1fe6f0ccf024094b2414f638bdcba91025c1030459a9c29488798f234f65f6a3c60914204b1a66884ac9c91 -doccontainersize 1059180 -doccontainerchecksum 7526fe021ef88481201697d66a1dd2d6eebc5eaa93055589b7c300548fed7cb4e42ccf7198eca811e46dd93d163042a18b736a4088e1443c0fed5a316aaebc18 -docfiles size=340 +containersize 448 +containerchecksum 4e243f8410b3ff8688365ff1fc90da5c81adc1a3ea426d2ba92c18a1378f76e5f00bf2f7aa97c39387caec9b1803fe0603632d1197f31fcad4a860dc3b93b579 +doccontainersize 1062288 +doccontainerchecksum ddc7500877bf459121a7ffe242618efdabe2e201da58f9038fe863451456a013816d66b807df74735a6bd1701cb72341bce771489e186b21c404d623d58b8205 +docfiles size=342 RELOC/doc/metapost/mcf2graph/CHANGELOG RELOC/doc/metapost/mcf2graph/README details="Readme" RELOC/doc/metapost/mcf2graph/main_lib.mcf @@ -211119,7 +211151,7 @@ docfiles size=340 catalogue-ctan /graphics/mcf2graph catalogue-license mit catalogue-topics graphics graphics-mpost chemistry -catalogue-version 5.11 +catalogue-version 5.12 name mcite category Package @@ -232937,7 +232969,7 @@ catalogue-version 1.0 name newtx category Package -revision 69756 +revision 70168 shortdesc Alternative uses of the TX fonts, with improved metrics relocated 1 longdesc The bundle splits txfonts.sty (from the TX fonts distribution) @@ -232952,10 +232984,10 @@ longdesc garamondx package, thus offering a garamond-alike longdesc text-with-maths combination. depend kastrup execute addMap newtx.map -containersize 6054376 -containerchecksum f9dc7850bdac974ce905beaf163f19b433e692da4b9372b20d703715bcbe762761dfa5e07de60895101cf69841e5f25b7f0a3c790ffbd7e988f9252919dae2ec -doccontainersize 969884 -doccontainerchecksum 1122d8624e203e3e0b7c2aed618fa62eac1ed9603795c59abef2e365ba73496a58f373851cc52bd4025304e18bfd8ad7f6b6beb0a5807918ad99a01f603a45dd +containersize 6061396 +containerchecksum 4c01f60d603bc7a5311630c1a1e5e0ccde3f5a895f3d4464e29f964cfce0d876d9e2faa3aafd536e6c97fca78dd294402ed40526afc49398c1fed1519a082565 +doccontainersize 973524 +doccontainerchecksum c3fc4f8548a2e5509242188b6d8c1267bee97a2024cc292977c12bd68196614a2cdd905e74ba0cc20c5a3d788f9b5802762490de4c80964e9aa0af8a3723f114 docfiles size=317 RELOC/doc/fonts/newtx/MANIFEST-newtx.txt RELOC/doc/fonts/newtx/README details="Readme" @@ -232971,7 +233003,7 @@ docfiles size=317 RELOC/doc/fonts/newtx/sample-ntx-crop.pdf RELOC/doc/fonts/newtx/sample-ptmx-crop.pdf RELOC/doc/fonts/newtx/sample-tx-crop.pdf -runfiles size=4470 +runfiles size=4478 RELOC/fonts/afm/public/newtx/LibertineI-5nu.afm RELOC/fonts/afm/public/newtx/LibertineMathBMI.afm RELOC/fonts/afm/public/newtx/LibertineMathBMI5.afm @@ -234045,7 +234077,7 @@ catalogue-also minion2newtx catalogue-ctan /fonts/newtx catalogue-license lppl1.3 catalogue-topics font font-body font-maths font-serif font-proportional font-type1 font-otf font-supp font-t1enc -catalogue-version 1.738 +catalogue-version 1.739 name newtxsf category Package @@ -267016,7 +267048,7 @@ catalogue-version 1.0 name proflycee category Package -revision 69804 +revision 70162 shortdesc A LaTeX package for French maths teachers in high school relocated 1 longdesc This package provides some commands to help French mathematics @@ -267025,11 +267057,11 @@ longdesc create splines with "derivative control"; longdesc \CalculFormelParametres and \CalculFormelLigne in order to longdesc create an xcas-windows-like; \CodePythonLstFichier to create longdesc code presentation and code execution with pythontex. -containersize 56408 -containerchecksum 906687fa7dd2ce8ced4111d5d8a2f0158c3e914c98a83019716e08c003aed937ac42722857484be17ed9181977db28edc9dab2671ee7d7295cb333ce4abf588f -doccontainersize 3426172 -doccontainerchecksum a992bf87c170b4f0a4cc6915e4e6906510fb01f64888eeccf48decec99cf2df7ff77121d0e7879893eac36462bf1f3b945b9b7dd2c1ed9b480b3aac249411c11 -docfiles size=858 +containersize 57952 +containerchecksum 8df3da11d08daa1d135187d44b48f5f50afccf94af5a5ca1ccc692b4259be058350c608c48d28a06fe2d41e0a47db1b561c46822c1fc1b5dc20937b9bcfa7972 +doccontainersize 1874236 +doccontainerchecksum 80ec0371ff9c570227a60523d86ffc4cbe51bdb1b8cdffc900ffd8e8a44de4ef86a7d0fd99209fe8edc22357236ec95beeb620c38b01ec29e0823ed9117c96cb +docfiles size=479 RELOC/doc/latex/proflycee/ProfLycee-doc.pdf details="Package documentation" language="fr" RELOC/doc/latex/proflycee/ProfLycee-doc.tex RELOC/doc/latex/proflycee/ProfLycee-docctan.zip @@ -267038,7 +267070,7 @@ docfiles size=858 RELOC/doc/latex/proflycee/ProfLycee-exemples-pythontex.pdf details="Examples using python" language="fr" RELOC/doc/latex/proflycee/ProfLycee-exemples-pythontex.tex RELOC/doc/latex/proflycee/README.md details="Readme" -runfiles size=104 +runfiles size=106 RELOC/tex/latex/proflycee/ProfLycee.sty RELOC/tex/latex/proflycee/proflycee-tools-aleatoire.tex RELOC/tex/latex/proflycee/proflycee-tools-analyse.tex @@ -267062,7 +267094,7 @@ catalogue-contact-repository https://github.com/cpierquet/ProfLycee catalogue-ctan /macros/latex/contrib/proflycee catalogue-license lppl1.3c catalogue-topics maths french teaching expl3 pgf-tikz -catalogue-version 3.02b +catalogue-version 3.02c name profmaquette category Package @@ -324812,7 +324844,7 @@ docfiles size=376 name texlive-scripts category TLCore -revision 70120 +revision 70146 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. @@ -324820,10 +324852,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 114036 -containerchecksum e41a840a0382cfd0ff145197b371e64104874370093c0b9d8b885d19c5677346046fae439cccfba1bb0a193d0f236262255075154cf07200c11d8380fe5c0582 -doccontainersize 432792 -doccontainerchecksum fddb70ef3bcafdd1fc0723c516f9f7d34d324df1c4a58802d32d4dd85a91dde8c31e1e706343764add11d0d1128fa3a4b919013d3635463b113cc0ac777304de +containersize 114040 +containerchecksum c02bc62eb4f80ac6e03ca2ee7d134cc027435ff6441ea1c44201c1404c2920b6fcd370e12270377d538f4459801ac07c8c3683663cb378d284aa8b64a18fce89 +doccontainersize 432784 +doccontainerchecksum 36265735ad37db2450124f4a3865fb327af07f4100e6656b984c297eccee9c310ceb482f299c344221d176aed6d842467877283cf1fd9d0253a97087ef7fbf97 docfiles size=565 doc.html texmf-dist/doc/man/man1/fmtutil-sys.1 @@ -345608,7 +345640,7 @@ catalogue-version 1.1.0 name ufrgscca category Package -revision 70054 +revision 70161 shortdesc A bundle for undergraduate students final work/report (tcc) at UFRGS/EE relocated 1 longdesc This bundle is aimed at producing undergraduate students' final @@ -345617,11 +345649,11 @@ longdesc University of Rio Grande do Sul), closely following ABNT rules longdesc (Brazilian Association for Technical Norms). It is composed of longdesc a main class, ufrgscca, and a set of auxiliary packages, some longdesc of which can be used independently. -containersize 24348 -containerchecksum 6fab22136e0fa47fb1353a888007b72fb64d2aed8785eb09c740ff7f25528279ff5bc3893bcc2aa73bcf35a533995f1080b9468397d1b992df0df4cd3137eefc -doccontainersize 541200 -doccontainerchecksum 3b5f5bd1ce6d82d3e16dd949f685201f5ae7f5de475b102af3ad211d38943233698e1b9075971772c7bd4f9bcfb1256739f22e9d8e1631fdfbb40bc307bc6291 -docfiles size=188 +containersize 24688 +containerchecksum 6d4def8f25459db141f8930be2603ba7202c976bcc50e0f15488c52540bbf74405bb9ea235073849f27fb6b21dc1913ef95321b01b09ceadeef2cf7fc002ccb4 +doccontainersize 541900 +doccontainerchecksum 99f4c8b4d0bb5b78f100a5273e605a56d52e3699b110db9eca79879eaee3dc94809d1958359b8540ad4dcd8a5522dd365ac45f1867d97fef438e06e2e2625c0b +docfiles size=189 RELOC/doc/latex/ufrgscca/README.md details="Readme" RELOC/doc/latex/ufrgscca/ufrgscca-cover-ptBR.tex RELOC/doc/latex/ufrgscca/ufrgscca-forms.tex @@ -345629,7 +345661,7 @@ docfiles size=188 RELOC/doc/latex/ufrgscca/ufrgscca-terms-ptBR.tex RELOC/doc/latex/ufrgscca/ufrgscca.pdf details="Package documentation" RELOC/doc/latex/ufrgscca/ufrgscca.tex -runfiles size=43 +runfiles size=44 RELOC/tex/latex/ufrgscca/ufrgscca-abnt.sty RELOC/tex/latex/ufrgscca/ufrgscca-base-en.def RELOC/tex/latex/ufrgscca/ufrgscca-base-ptBR.def @@ -345646,7 +345678,7 @@ catalogue-contact-repository https://github.com/alceu-frigeri/ufrgscca catalogue-ctan /macros/latex/contrib/ufrgscca catalogue-license lppl1.3c gpl catalogue-topics dissertation portuguese-br std-conform expl3 -catalogue-version 2.4a +catalogue-version 2.5 name uhc category Package diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 index 1b883cfa01..bc7a56dad2 100644 --- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 @@ -1 +1 @@ -00c1256b396d21e0cf32cd5e6f28fe49 texlive.tlpdb +e9fb1149b52530a64f3a36fea65dba9c texlive.tlpdb diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 index 197f4b11f0..ff644e3aae 100644 --- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 @@ -1 +1 @@ -4d67ceb639a087d583d7ba77c252316f8f4384dd7197c1a934427da11c27e11b870764ea1229734adaafeb9336d39b8729de23b210a5570700300224fbf4b657 texlive.tlpdb +cd6efecda6738781a48d7407daa1e0835f17d8904e900643d4376c3265f4b99ebb6851447247dbcd971dbd4c89f8df778319f3eeaf4e6738d00793771efb399b texlive.tlpdb diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc index a262e87540..1d48c8f4db 100644 --- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc +++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc @@ -1,11 +1,11 @@ -----BEGIN PGP SIGNATURE----- -iQEzBAEBCgAdFiEE2PL4YFeoV+QqiBBqTOGHfhlDjHAFAmXaqA0ACgkQTOGHfhlD -jHDhIAgAmw/qOO1w5LFezBAtnPNp1qW/sXmnWAWGO7HgHzTQQH0aI9L5EmoJ2YcB -PLRqaZ29ebyFB26iVFcpQ8HLe2EsiLe3BYzdfTiJXJCHbGgvbLta1164tGyNjJPs -P/UloKsrfQPc60x9uMG5ZKb3RU/AINMUKLM5ciyOOGElx7EsPWYSEGg7nYkiepox -y7PZsRpZf5sS+RRa2jdGCKXl6AXx0wNdCwA3SxF0uqKMzWwpAZa/qbyNA0vcgssv -PsHMNw7mYtN7IJgIwk66UYAjK4EVw5mBS+p0sGRXwD97VND5WgolsYgh6ieYZSig -akiHUBWB9wj1ThCKbO1yYzI58hDXfA== -=CcT9 +iQEzBAEBCgAdFiEE2PL4YFeoV+QqiBBqTOGHfhlDjHAFAmXb9uEACgkQTOGHfhlD +jHA5Egf+Ll4owB+aj9U0QJPWx6PdydfIC0lixSOjHORE1PLkyo4LX+hRFWSJDy4U +MYUZokQIYtPFJrDlqrtg4K2Btt3Mx3lfvuCKaagWSJXxZf6KWVAM6HSdyjWYcuR5 +6cYW0adWBMAgFdmlpfncZi/F0KAvqGKDDKkzd4sQmgHq5dQ9ZtkgSTdiXWA2dc3V +rtFLqFouJkEcYG/qTc9Odo7xMlLvCE8AeZ7CMG9cXaDsuPqK4EUmlzOe2/uOuNtz +9BywYaBl+RxPnG4nyR4pY4p1i7bo4oOibODcMZM4M177QGxgKXzC/6iupBiJKoIK +xYKATEhOA/La6mIxXfUv21Y9tk4ZpQ== +=7qKz -----END PGP SIGNATURE----- diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz Binary files differindex 4a03963951..682cfb7fea 100644 --- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz @@ -2,4 +2,4 @@ # The source CTAN of this site's material: dante.ctan.org # The year-month-day-hour-minute of this site's material: -2024-02-26-02-02 +2024-02-27-02-02 |