diff options
author | Norbert Preining <norbert@preining.info> | 2024-02-04 03:00:55 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2024-02-04 03:00:55 +0000 |
commit | 16f68bbec3cca735a695904227872abc2ace1f90 (patch) | |
tree | bcabe1bea02359da24036bb8e3a9741751516a84 | |
parent | 8d5a9f6bbecb297f513b9ed16e574db1c1310228 (diff) |
CTAN sync 202402040300
84 files changed, 3237 insertions, 1870 deletions
diff --git a/FILES.byname b/FILES.byname index bd49a26df9..6430237c56 100644 --- a/FILES.byname +++ b/FILES.byname @@ -2077,12 +2077,12 @@ 2023/10/05 | 1710 | biblio/citation-style-language/README.md 2023/10/05 | 12878 | biblio/citation-style-language/vancouver.csl 2023/10/05 | 4531754 | biblio/citation-style-language.zip -2024/02/02 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx +2024/02/03 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx 2022/10/08 | 127 | biblio/ctan-bibdata/biblatex-ctan/ctan.cbx -2024/02/02 | 2843688 | biblio/ctan-bibdata/ctan.bib -2024/02/02 | 3708800 | biblio/ctan-bibdata/ctan.pdf +2024/02/03 | 2843689 | biblio/ctan-bibdata/ctan.bib +2024/02/03 | 3708800 | biblio/ctan-bibdata/ctan.pdf 2023/01/16 | 1489 | biblio/ctan-bibdata/README -2024/02/02 | 4116473 | biblio/ctan-bibdata.zip +2024/02/03 | 4116502 | 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/02 | 105696 | FILES.last07days +2024/02/03 | 101288 | 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 @@ -116404,16 +116404,16 @@ 2011/03/27 | 1200 | fonts/phonetic/README 1994/01/29 | 1641 | fonts/phonetic/symchar.mf 2020/09/26 | 96864 | fonts/phonetic.zip -2008/12/07 | 54679 | fonts/pigpen/doc/pigpendoc.pdf -2008/12/08 | 2481 | fonts/pigpen/doc/pigpendoc.tex -2008/12/07 | 107 | fonts/pigpen/map/pigpen.map +2024/02/03 | 125628 | fonts/pigpen/doc/pigpendoc.pdf +2024/02/03 | 2478 | fonts/pigpen/doc/pigpendoc.tex +2024/02/03 | 145 | fonts/pigpen/map/pigpen.map 2008/12/07 | 7712 | fonts/pigpen/mfinput/pigpen.mf -2008/12/07 | 492 | fonts/pigpen/README -2008/12/07 | 987 | fonts/pigpen/texinput/pigpen.sty -2008/12/07 | 785 | fonts/pigpen/texinput/pigpen.tex +2024/02/03 | 599 | fonts/pigpen/README.md +2008/12/06 | 943 | fonts/pigpen/texinput/pigpen.sty +2008/12/06 | 745 | fonts/pigpen/texinput/pigpen.tex 2008/12/07 | 252 | fonts/pigpen/tfm/pigpen.tfm 2008/12/07 | 9251 | fonts/pigpen/type1/pigpen.pfa -2008/12/08 | 106530 | fonts/pigpen.zip +2024/02/03 | 132083 | fonts/pigpen.zip 2022/09/15 | 4411 | fonts/playfair/doc/OFL.txt 2020/07/31 | 56448 | fonts/playfair/doc/Playfair_Display_A4_specimen.pdf 2020/08/01 | 199966 | fonts/playfair/doc/playfair-samples.pdf @@ -206887,7 +206887,7 @@ 2012/04/13 | 261959 | install/macros/latex/contrib/usebib.tds.zip 2014/05/10 | 440916 | install/macros/latex/contrib/verse.tds.zip 2012/04/18 | 16307 | install/macros/latex/contrib/vpe.tds.zip -2023/03/29 | 3148397 | install/macros/latex/contrib/wargame.tds.zip +2024/02/03 | 3190703 | install/macros/latex/contrib/wargame.tds.zip 2020/05/01 | 936344 | install/macros/latex/contrib/xcjk2uni.tds.zip 2016/08/05 | 475695 | install/macros/latex/contrib/xcolor-solarized.tds.zip 2009/02/05 | 111968 | install/macros/latex/contrib/xfor.tds.zip @@ -233864,11 +233864,11 @@ 2020/05/17 | 623 | macros/latex/contrib/exercises/README.md 2020/05/17 | 372129 | macros/latex/contrib/exercises.zip 2014/10/21 | 333079 | macros/latex/contrib/exercise.zip -2023/12/30 | 108574 | macros/latex/contrib/exesheet/exesheet.dtx -2023/08/03 | 2048 | macros/latex/contrib/exesheet/exesheet.ins -2023/12/30 | 330415 | macros/latex/contrib/exesheet/exesheet.pdf -2023/09/03 | 1026 | macros/latex/contrib/exesheet/README.md -2023/12/30 | 289275 | macros/latex/contrib/exesheet.zip +2024/02/03 | 109823 | macros/latex/contrib/exesheet/exesheet.dtx +2024/02/02 | 2048 | macros/latex/contrib/exesheet/exesheet.ins +2024/02/03 | 334627 | macros/latex/contrib/exesheet/exesheet.pdf +2024/02/03 | 1344 | macros/latex/contrib/exesheet/README.md +2024/02/03 | 293084 | macros/latex/contrib/exesheet.zip 2020/02/24 | 228739 | macros/latex/contrib/exframe/exframe.dtx 2020/01/03 | 1533 | macros/latex/contrib/exframe/exframe.ins 2020/02/24 | 409753 | macros/latex/contrib/exframe/exframe.pdf @@ -238052,12 +238052,12 @@ 2022/03/03 | 12695 | macros/latex/contrib/hvpygmentex/latex/hvpygmentex.sty 2022/03/03 | 702 | macros/latex/contrib/hvpygmentex/README.md 2022/03/04 | 26024 | macros/latex/contrib/hvpygmentex.zip -2024/02/02 | 415 | macros/latex/contrib/hvqrurl/Changes -2024/02/02 | 113856 | macros/latex/contrib/hvqrurl/doc/hvqrurl.pdf -2024/02/02 | 7561 | macros/latex/contrib/hvqrurl/doc/hvqrurl.tex -2024/02/02 | 2026 | macros/latex/contrib/hvqrurl/latex/hvqrurl.sty -2024/02/02 | 351 | macros/latex/contrib/hvqrurl/README -2024/02/02 | 115432 | macros/latex/contrib/hvqrurl.zip +2024/02/03 | 472 | macros/latex/contrib/hvqrurl/Changes +2024/02/03 | 115679 | macros/latex/contrib/hvqrurl/doc/hvqrurl.pdf +2024/02/03 | 7801 | macros/latex/contrib/hvqrurl/doc/hvqrurl.tex +2024/02/03 | 2224 | macros/latex/contrib/hvqrurl/latex/hvqrurl.sty +2024/02/03 | 351 | macros/latex/contrib/hvqrurl/README +2024/02/03 | 117559 | macros/latex/contrib/hvqrurl.zip 2022/11/11 | 6743391 | macros/latex/contrib/hwemoji/hwemoji-assets.pdf 2022/11/11 | 6067793 | macros/latex/contrib/hwemoji/hwemoji.pdf 2022/11/11 | 964927 | macros/latex/contrib/hwemoji/hwemoji.sty @@ -247334,15 +247334,15 @@ 2003/07/02 | 9461 | macros/latex/contrib/progress/progress.tex 2003/07/02 | 413 | macros/latex/contrib/progress/README 2006/05/20 | 88703 | macros/latex/contrib/progress.zip -2023/11/04 | 19 | macros/latex/contrib/projlib/DEPENDS.txt -2023/11/04 | 19106 | macros/latex/contrib/projlib/LICENSE -2023/11/04 | 1308 | macros/latex/contrib/projlib/logo/ProjLib-logo.pdf -2023/11/04 | 37933 | macros/latex/contrib/projlib/logo/ProjLib-logo.png -2023/11/04 | 126 | macros/latex/contrib/projlib/logo/ProjLib-logo.tex -2023/11/04 | 224159 | macros/latex/contrib/projlib/ProjLib.dtx -2023/11/04 | 3379 | macros/latex/contrib/projlib/ProjLib.ins -2023/11/04 | 5800 | macros/latex/contrib/projlib/README.md -2023/11/05 | 75722 | macros/latex/contrib/projlib.zip +2024/02/03 | 19 | macros/latex/contrib/projlib/DEPENDS.txt +2024/02/03 | 19106 | macros/latex/contrib/projlib/LICENSE +2024/02/03 | 1308 | macros/latex/contrib/projlib/logo/ProjLib-logo.pdf +2024/02/03 | 37933 | macros/latex/contrib/projlib/logo/ProjLib-logo.png +2024/02/03 | 126 | macros/latex/contrib/projlib/logo/ProjLib-logo.tex +2024/02/03 | 224219 | macros/latex/contrib/projlib/ProjLib.dtx +2024/02/03 | 3379 | macros/latex/contrib/projlib/ProjLib.ins +2024/02/03 | 5792 | macros/latex/contrib/projlib/README.md +2024/02/03 | 75764 | macros/latex/contrib/projlib.zip 2024/01/26 | 133745 | macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.pdf 2024/01/26 | 11561 | macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.tex 2024/01/26 | 86278 | macros/latex/contrib/proof-at-the-end/proof-at-the-end.dtx @@ -247989,19 +247989,19 @@ 2007/05/16 | 179602 | macros/latex/contrib/randbild/randbild.pdf 2007/05/16 | 4038 | macros/latex/contrib/randbild/README 2007/05/16 | 80648 | macros/latex/contrib/randbild.zip -2024/01/28 | 49496 | macros/latex/contrib/randexam/randexam-a-answer.pdf -2024/01/28 | 10524 | macros/latex/contrib/randexam/randexam-a-answer.tex -2024/01/28 | 41288 | macros/latex/contrib/randexam/randexam-a-blank.pdf +2024/02/03 | 49588 | macros/latex/contrib/randexam/randexam-a-answer.pdf +2024/02/02 | 10522 | macros/latex/contrib/randexam/randexam-a-answer.tex +2024/02/03 | 41374 | macros/latex/contrib/randexam/randexam-a-blank.pdf 2024/01/27 | 156 | macros/latex/contrib/randexam/randexam-a-blank.tex -2024/01/28 | 49469 | macros/latex/contrib/randexam/randexam-b-answer.pdf -2024/01/27 | 171 | macros/latex/contrib/randexam/randexam-b-answer.tex -2024/01/28 | 41229 | macros/latex/contrib/randexam/randexam-b-blank.pdf +2024/02/03 | 49570 | macros/latex/contrib/randexam/randexam-b-answer.pdf +2024/01/30 | 171 | macros/latex/contrib/randexam/randexam-b-answer.tex +2024/02/03 | 41309 | macros/latex/contrib/randexam/randexam-b-blank.pdf 2024/01/27 | 156 | macros/latex/contrib/randexam/randexam-b-blank.tex -2024/01/28 | 37500 | macros/latex/contrib/randexam/randexam.cls -2024/01/28 | 50412 | macros/latex/contrib/randexam/randexam.pdf -2024/01/28 | 19403 | macros/latex/contrib/randexam/randexam.tex +2024/02/02 | 45387 | macros/latex/contrib/randexam/randexam.cls +2024/02/03 | 52431 | macros/latex/contrib/randexam/randexam.pdf +2024/02/02 | 21736 | macros/latex/contrib/randexam/randexam.tex 2024/01/27 | 140 | macros/latex/contrib/randexam/README -2024/01/28 | 241058 | macros/latex/contrib/randexam.zip +2024/02/03 | 245809 | macros/latex/contrib/randexam.zip 2018/12/28 | 15719 | macros/latex/contrib/randomwalk/randomwalk.dtx 2018/12/28 | 409 | macros/latex/contrib/randomwalk/randomwalk.ins 2018/12/28 | 478962 | macros/latex/contrib/randomwalk/randomwalk.pdf @@ -251841,55 +251841,55 @@ 2016/02/03 | 1428 | macros/latex/contrib/tagpair/tagpair.sty 2016/09/23 | 3615 | macros/latex/contrib/tagpair/tagpair.tex 2016/09/23 | 71796 | macros/latex/contrib/tagpair.zip -2024/01/26 | 23311 | macros/latex/contrib/tagpdf/acrobat.png -2024/01/26 | 22526 | macros/latex/contrib/tagpdf/ex-AF-file.pdf -2024/01/26 | 1160 | macros/latex/contrib/tagpdf/ex-AF-file.tex -2024/01/26 | 17742 | macros/latex/contrib/tagpdf/ex-alt-actualtext-luatex.pdf -2024/01/26 | 34295 | macros/latex/contrib/tagpdf/ex-alt-actualtext.pdf -2024/01/26 | 4102 | macros/latex/contrib/tagpdf/ex-alt-actualtext.tex -2024/01/26 | 6626 | macros/latex/contrib/tagpdf/ex-attribute-luatex.pdf -2024/01/26 | 19014 | macros/latex/contrib/tagpdf/ex-attribute.pdf -2024/01/26 | 1325 | macros/latex/contrib/tagpdf/ex-attribute.tex -2024/01/26 | 7854 | macros/latex/contrib/tagpdf/ex-formula-problem-luatex.pdf -2024/01/26 | 20066 | macros/latex/contrib/tagpdf/ex-formula-problem.pdf -2024/01/26 | 950 | macros/latex/contrib/tagpdf/ex-formula-problem.tex -2024/01/26 | 31552 | macros/latex/contrib/tagpdf/ex-list.pdf -2024/01/26 | 1063 | macros/latex/contrib/tagpdf/ex-list.tex -2024/01/26 | 24880 | macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.pdf -2024/01/26 | 2115 | macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.tex -2024/01/26 | 18461 | macros/latex/contrib/tagpdf/ex-patch-sectioning-koma-luatex.pdf -2024/01/26 | 19236 | macros/latex/contrib/tagpdf/ex-softhyphen.pdf -2024/01/26 | 827 | macros/latex/contrib/tagpdf/ex-softhyphen.tex -2024/01/26 | 16524 | macros/latex/contrib/tagpdf/ex-spaceglyph-listings.pdf -2024/01/26 | 700 | macros/latex/contrib/tagpdf/ex-spaceglyph-listings.tex -2024/01/26 | 24806 | macros/latex/contrib/tagpdf/ex-structure-obsolete.pdf -2024/01/26 | 1445 | macros/latex/contrib/tagpdf/ex-structure-obsolete.tex -2024/01/26 | 19592 | macros/latex/contrib/tagpdf/ex-tagpdf-template.pdf -2024/01/26 | 698 | macros/latex/contrib/tagpdf/ex-tagpdf-template.tex -2024/01/26 | 8281 | macros/latex/contrib/tagpdf/global-ex.png -2024/01/26 | 2022 | macros/latex/contrib/tagpdf/link-figure-input.tex -2024/01/26 | 141163 | macros/latex/contrib/tagpdf/pac3.PNG -2024/01/26 | 1194 | macros/latex/contrib/tagpdf/README.md -2024/01/26 | 44422 | macros/latex/contrib/tagpdf/tagpdf-backend.dtx -2024/01/26 | 1730 | macros/latex/contrib/tagpdf/tagpdf.bib -2024/01/26 | 34815 | macros/latex/contrib/tagpdf/tagpdf-checks.dtx -2024/01/26 | 1662036 | macros/latex/contrib/tagpdf/tagpdf-code.pdf -2024/01/26 | 2280 | macros/latex/contrib/tagpdf/tagpdf-code.tex -2024/01/26 | 37498 | macros/latex/contrib/tagpdf/tagpdf-data.dtx -2024/01/26 | 5427 | macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty -2024/01/26 | 22002 | macros/latex/contrib/tagpdf/tagpdf.dtx -2024/01/26 | 3959 | macros/latex/contrib/tagpdf/tagpdf.ins -2024/01/26 | 28595 | macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx -2024/01/26 | 16348 | macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx -2024/01/26 | 15940 | macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx -2024/01/26 | 1095221 | macros/latex/contrib/tagpdf/tagpdf.pdf -2024/01/26 | 45666 | macros/latex/contrib/tagpdf/tagpdf-roles.dtx -2024/01/26 | 5106 | macros/latex/contrib/tagpdf/tagpdf-space.dtx -2024/01/26 | 72398 | macros/latex/contrib/tagpdf/tagpdf-struct.dtx -2024/01/26 | 126349 | macros/latex/contrib/tagpdf/tagpdf.tex -2024/01/26 | 17038 | macros/latex/contrib/tagpdf/tagpdf-tree.dtx -2024/01/26 | 40013 | macros/latex/contrib/tagpdf/tagpdf-user.dtx -2024/01/26 | 2416184 | macros/latex/contrib/tagpdf.zip +2024/02/02 | 23311 | macros/latex/contrib/tagpdf/acrobat.png +2024/02/02 | 22527 | macros/latex/contrib/tagpdf/ex-AF-file.pdf +2024/02/02 | 1160 | macros/latex/contrib/tagpdf/ex-AF-file.tex +2024/02/02 | 17742 | macros/latex/contrib/tagpdf/ex-alt-actualtext-luatex.pdf +2024/02/02 | 34295 | macros/latex/contrib/tagpdf/ex-alt-actualtext.pdf +2024/02/02 | 4102 | macros/latex/contrib/tagpdf/ex-alt-actualtext.tex +2024/02/02 | 6626 | macros/latex/contrib/tagpdf/ex-attribute-luatex.pdf +2024/02/02 | 19014 | macros/latex/contrib/tagpdf/ex-attribute.pdf +2024/02/02 | 1325 | macros/latex/contrib/tagpdf/ex-attribute.tex +2024/02/02 | 7854 | macros/latex/contrib/tagpdf/ex-formula-problem-luatex.pdf +2024/02/02 | 20066 | macros/latex/contrib/tagpdf/ex-formula-problem.pdf +2024/02/02 | 950 | macros/latex/contrib/tagpdf/ex-formula-problem.tex +2024/02/02 | 31552 | macros/latex/contrib/tagpdf/ex-list.pdf +2024/02/02 | 1063 | macros/latex/contrib/tagpdf/ex-list.tex +2024/02/02 | 24880 | macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.pdf +2024/02/02 | 2115 | macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.tex +2024/02/02 | 18461 | macros/latex/contrib/tagpdf/ex-patch-sectioning-koma-luatex.pdf +2024/02/02 | 19236 | macros/latex/contrib/tagpdf/ex-softhyphen.pdf +2024/02/02 | 827 | macros/latex/contrib/tagpdf/ex-softhyphen.tex +2024/02/02 | 16524 | macros/latex/contrib/tagpdf/ex-spaceglyph-listings.pdf +2024/02/02 | 700 | macros/latex/contrib/tagpdf/ex-spaceglyph-listings.tex +2024/02/02 | 24806 | macros/latex/contrib/tagpdf/ex-structure-obsolete.pdf +2024/02/02 | 1445 | macros/latex/contrib/tagpdf/ex-structure-obsolete.tex +2024/02/02 | 19589 | macros/latex/contrib/tagpdf/ex-tagpdf-template.pdf +2024/02/02 | 698 | macros/latex/contrib/tagpdf/ex-tagpdf-template.tex +2024/02/02 | 8281 | macros/latex/contrib/tagpdf/global-ex.png +2024/02/02 | 2022 | macros/latex/contrib/tagpdf/link-figure-input.tex +2024/02/02 | 141163 | macros/latex/contrib/tagpdf/pac3.PNG +2024/02/02 | 1194 | macros/latex/contrib/tagpdf/README.md +2024/02/02 | 44422 | macros/latex/contrib/tagpdf/tagpdf-backend.dtx +2024/02/02 | 1730 | macros/latex/contrib/tagpdf/tagpdf.bib +2024/02/02 | 34815 | macros/latex/contrib/tagpdf/tagpdf-checks.dtx +2024/02/02 | 1673023 | macros/latex/contrib/tagpdf/tagpdf-code.pdf +2024/02/02 | 2280 | macros/latex/contrib/tagpdf/tagpdf-code.tex +2024/02/02 | 37498 | macros/latex/contrib/tagpdf/tagpdf-data.dtx +2024/02/02 | 5427 | macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty +2024/02/02 | 22002 | macros/latex/contrib/tagpdf/tagpdf.dtx +2024/02/02 | 3959 | macros/latex/contrib/tagpdf/tagpdf.ins +2024/02/02 | 28595 | macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx +2024/02/02 | 16348 | macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx +2024/02/02 | 15940 | macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx +2024/02/02 | 1103561 | macros/latex/contrib/tagpdf/tagpdf.pdf +2024/02/02 | 45666 | macros/latex/contrib/tagpdf/tagpdf-roles.dtx +2024/02/02 | 5106 | macros/latex/contrib/tagpdf/tagpdf-space.dtx +2024/02/02 | 72398 | macros/latex/contrib/tagpdf/tagpdf-struct.dtx +2024/02/02 | 126349 | macros/latex/contrib/tagpdf/tagpdf.tex +2024/02/02 | 17038 | macros/latex/contrib/tagpdf/tagpdf-tree.dtx +2024/02/02 | 42254 | macros/latex/contrib/tagpdf/tagpdf-user.dtx +2024/02/03 | 2433464 | macros/latex/contrib/tagpdf.zip 2007/08/04 | 1263 | macros/latex/contrib/talk/example.tex 2007/08/04 | 465 | macros/latex/contrib/talk/Makefile 2007/08/04 | 2162 | macros/latex/contrib/talk/README @@ -255827,91 +255827,91 @@ 2006/04/21 | 15221 | macros/latex/contrib/wallpaper/wallpapermanual.pdf 2006/04/21 | 6919 | macros/latex/contrib/wallpaper/wallpaper.sty 2006/04/21 | 1278934 | macros/latex/contrib/wallpaper.zip -2023/03/29 | 432819 | macros/latex/contrib/wargame/doc/compat.pdf -2023/03/29 | 184525 | macros/latex/contrib/wargame/doc/symbols.pdf -2023/03/29 | 16376 | macros/latex/contrib/wargame/doc/tutorial/export.tex -2023/03/29 | 588181 | macros/latex/contrib/wargame/doc/tutorial/game.pdf -2023/03/29 | 66427 | macros/latex/contrib/wargame/doc/tutorial/game.sty -2023/03/29 | 5775 | macros/latex/contrib/wargame/doc/tutorial/game.tex -2023/03/29 | 1091 | macros/latex/contrib/wargame/doc/tutorial/Makefile -2023/03/29 | 755 | macros/latex/contrib/wargame/doc/tutorial/patch.py -2023/03/29 | 1256 | macros/latex/contrib/wargame/doc/tutorial/README.md -2023/03/29 | 1444437 | macros/latex/contrib/wargame/doc/wargame.pdf -2023/03/29 | 11263 | macros/latex/contrib/wargame/README.md -2023/03/29 | 1929 | macros/latex/contrib/wargame/source/chit/battle.dtx -2023/03/29 | 1342 | macros/latex/contrib/wargame/source/chit/core.dtx -2023/03/29 | 9268 | macros/latex/contrib/wargame/source/chit/dice.dtx -2023/03/29 | 3568 | macros/latex/contrib/wargame/source/chit/elements.dtx -2023/03/29 | 2527 | macros/latex/contrib/wargame/source/chit/misc.dtx -2023/03/29 | 1225 | macros/latex/contrib/wargame/source/chit/modifiers.dtx -2023/03/29 | 5370 | macros/latex/contrib/wargame/source/chit/oob.dtx -2023/03/29 | 23273 | macros/latex/contrib/wargame/source/chit/shape.dtx -2023/03/29 | 1323 | macros/latex/contrib/wargame/source/chit/stack.dtx -2023/03/29 | 4738 | macros/latex/contrib/wargame/source/chit/table.dtx -2023/03/29 | 10066 | macros/latex/contrib/wargame/source/hex/board.dtx -2023/03/29 | 12119 | macros/latex/contrib/wargame/source/hex/coord.dtx -2023/03/29 | 2335 | macros/latex/contrib/wargame/source/hex/core.dtx -2023/03/29 | 2284 | macros/latex/contrib/wargame/source/hex/extra.dtx -2023/03/29 | 4514 | macros/latex/contrib/wargame/source/hex/labels.dtx -2023/03/29 | 11431 | macros/latex/contrib/wargame/source/hex/paths.dtx -2023/03/29 | 4906 | macros/latex/contrib/wargame/source/hex/ridges.dtx -2023/03/29 | 15000 | macros/latex/contrib/wargame/source/hex/shape.dtx -2023/03/29 | 15564 | macros/latex/contrib/wargame/source/hex/split.dtx -2023/03/29 | 37519 | macros/latex/contrib/wargame/source/hex/terrain/beach.dtx -2023/03/29 | 119380 | macros/latex/contrib/wargame/source/hex/terrain/city.dtx -2023/03/29 | 8470 | macros/latex/contrib/wargame/source/hex/terrain.dtx -2023/03/29 | 39670 | macros/latex/contrib/wargame/source/hex/terrain/light_woods.dtx -2023/03/29 | 618 | macros/latex/contrib/wargame/source/hex/terrain/mountain.dtx -2023/03/29 | 37420 | macros/latex/contrib/wargame/source/hex/terrain/mountains.dtx -2023/03/29 | 62019 | macros/latex/contrib/wargame/source/hex/terrain/rough.dtx -2023/03/29 | 9929 | macros/latex/contrib/wargame/source/hex/terrain/swamp.dtx -2023/03/29 | 24989 | macros/latex/contrib/wargame/source/hex/terrain/town.dtx -2023/03/29 | 642 | macros/latex/contrib/wargame/source/hex/terrain/tree.dtx -2023/03/29 | 8374 | macros/latex/contrib/wargame/source/hex/terrain/village.dtx -2023/03/29 | 46781 | macros/latex/contrib/wargame/source/hex/terrain/woods.dtx -2023/03/29 | 462 | macros/latex/contrib/wargame/source/hex/tile.dtx -2023/03/29 | 2502 | macros/latex/contrib/wargame/source/hex/towns.dtx -2023/03/29 | 8906 | macros/latex/contrib/wargame/source/Makefile -2023/03/29 | 1359 | macros/latex/contrib/wargame/source/natoapp6c/compat/activity.dtx -2023/03/29 | 3209 | macros/latex/contrib/wargame/source/natoapp6c/compat/air.dtx -2023/03/29 | 4715 | macros/latex/contrib/wargame/source/natoapp6c/compat/equipment.dtx -2023/03/29 | 1653 | macros/latex/contrib/wargame/source/natoapp6c/compat/installation.dtx -2023/03/29 | 11120 | macros/latex/contrib/wargame/source/natoapp6c/compat/land.dtx -2023/03/29 | 413 | macros/latex/contrib/wargame/source/natoapp6c/compat/missile.dtx -2023/03/29 | 742 | macros/latex/contrib/wargame/source/natoapp6c/compat/seamine.dtx -2023/03/29 | 5228 | macros/latex/contrib/wargame/source/natoapp6c/compat/seasurface.dtx -2023/03/29 | 2274 | macros/latex/contrib/wargame/source/natoapp6c/compat/space.dtx -2023/03/29 | 2888 | macros/latex/contrib/wargame/source/natoapp6c/compat/subsurface.dtx -2023/03/29 | 6573 | macros/latex/contrib/wargame/source/natoapp6c/core.dtx -2023/03/29 | 2846 | macros/latex/contrib/wargame/source/natoapp6c/echelon.dtx -2023/03/29 | 2267 | macros/latex/contrib/wargame/source/natoapp6c/frames/base.dtx -2023/03/29 | 15911 | macros/latex/contrib/wargame/source/natoapp6c/frames/friendly.dtx -2023/03/29 | 15937 | macros/latex/contrib/wargame/source/natoapp6c/frames/hostile.dtx -2023/03/29 | 15175 | macros/latex/contrib/wargame/source/natoapp6c/frames/neutral.dtx -2023/03/29 | 18195 | macros/latex/contrib/wargame/source/natoapp6c/frames/unknown.dtx -2023/03/29 | 4491 | macros/latex/contrib/wargame/source/natoapp6c/list.dtx -2023/03/29 | 21092 | macros/latex/contrib/wargame/source/natoapp6c/shape.dtx -2023/03/29 | 89859 | macros/latex/contrib/wargame/source/natoapp6c/symbols.dtx -2023/03/29 | 1807 | macros/latex/contrib/wargame/source/natoapp6c/text.dtx -2023/03/29 | 1911 | macros/latex/contrib/wargame/source/natoapp6c/util.dtx -2023/03/29 | 3210 | macros/latex/contrib/wargame/source/natoapp6c/weaponry.dtx -2023/03/29 | 932 | macros/latex/contrib/wargame/source/package.dtx -2023/03/29 | 2009 | macros/latex/contrib/wargame/source/tests/chits.dtx -2023/03/29 | 1944 | macros/latex/contrib/wargame/source/tests/map.dtx -2023/03/29 | 4405 | macros/latex/contrib/wargame/source/tests/test.tex -2023/03/29 | 6425 | macros/latex/contrib/wargame/source/util/bb.dtx -2023/03/29 | 5787 | macros/latex/contrib/wargame/source/util/compound.dtx -2023/03/29 | 512 | macros/latex/contrib/wargame/source/util/core.dtx -2023/03/29 | 27197 | macros/latex/contrib/wargame/source/util/export.dtx -2023/03/29 | 3121 | macros/latex/contrib/wargame/source/util/icons.dtx -2023/03/29 | 4467 | macros/latex/contrib/wargame/source/util/misc.dtx -2023/03/29 | 499 | macros/latex/contrib/wargame/source/util/randomid.dtx -2023/03/29 | 441253 | macros/latex/contrib/wargame/source/utils/wgexport.py -2023/03/29 | 10305 | macros/latex/contrib/wargame/source/utils/wgsvg2tikz.py -2023/03/29 | 5249 | macros/latex/contrib/wargame/source/util/tikz.dtx -2023/03/29 | 94846 | macros/latex/contrib/wargame/source/wargame.dtx -2023/03/29 | 7527 | macros/latex/contrib/wargame/source/wargame.ins -2023/03/29 | 2846109 | macros/latex/contrib/wargame.zip +2024/02/03 | 435053 | macros/latex/contrib/wargame/doc/compat.pdf +2024/02/03 | 186882 | macros/latex/contrib/wargame/doc/symbols.pdf +2024/02/03 | 16547 | macros/latex/contrib/wargame/doc/tutorial/export.tex +2024/02/03 | 590545 | macros/latex/contrib/wargame/doc/tutorial/game.pdf +2024/02/03 | 66427 | macros/latex/contrib/wargame/doc/tutorial/game.sty +2024/02/03 | 5775 | macros/latex/contrib/wargame/doc/tutorial/game.tex +2024/02/03 | 1091 | macros/latex/contrib/wargame/doc/tutorial/Makefile +2024/02/03 | 755 | macros/latex/contrib/wargame/doc/tutorial/patch.py +2024/02/03 | 1256 | macros/latex/contrib/wargame/doc/tutorial/README.md +2024/02/03 | 1469771 | macros/latex/contrib/wargame/doc/wargame.pdf +2024/02/03 | 11263 | macros/latex/contrib/wargame/README.md +2024/02/03 | 1931 | macros/latex/contrib/wargame/source/chit/battle.dtx +2024/02/03 | 1342 | macros/latex/contrib/wargame/source/chit/core.dtx +2024/02/03 | 9268 | macros/latex/contrib/wargame/source/chit/dice.dtx +2024/02/03 | 3568 | macros/latex/contrib/wargame/source/chit/elements.dtx +2024/02/03 | 3993 | macros/latex/contrib/wargame/source/chit/misc.dtx +2024/02/03 | 1231 | macros/latex/contrib/wargame/source/chit/modifiers.dtx +2024/02/03 | 11274 | macros/latex/contrib/wargame/source/chit/oob.dtx +2024/02/03 | 23507 | macros/latex/contrib/wargame/source/chit/shape.dtx +2024/02/03 | 1323 | macros/latex/contrib/wargame/source/chit/stack.dtx +2024/02/03 | 6791 | macros/latex/contrib/wargame/source/chit/table.dtx +2024/02/03 | 10066 | macros/latex/contrib/wargame/source/hex/board.dtx +2024/02/03 | 12119 | macros/latex/contrib/wargame/source/hex/coord.dtx +2024/02/03 | 2335 | macros/latex/contrib/wargame/source/hex/core.dtx +2024/02/03 | 2284 | macros/latex/contrib/wargame/source/hex/extra.dtx +2024/02/03 | 4514 | macros/latex/contrib/wargame/source/hex/labels.dtx +2024/02/03 | 11431 | macros/latex/contrib/wargame/source/hex/paths.dtx +2024/02/03 | 4959 | macros/latex/contrib/wargame/source/hex/ridges.dtx +2024/02/03 | 15000 | macros/latex/contrib/wargame/source/hex/shape.dtx +2024/02/03 | 15564 | macros/latex/contrib/wargame/source/hex/split.dtx +2024/02/03 | 37519 | macros/latex/contrib/wargame/source/hex/terrain/beach.dtx +2024/02/03 | 119380 | macros/latex/contrib/wargame/source/hex/terrain/city.dtx +2024/02/03 | 9125 | macros/latex/contrib/wargame/source/hex/terrain.dtx +2024/02/03 | 39670 | macros/latex/contrib/wargame/source/hex/terrain/light_woods.dtx +2024/02/03 | 618 | macros/latex/contrib/wargame/source/hex/terrain/mountain.dtx +2024/02/03 | 37420 | macros/latex/contrib/wargame/source/hex/terrain/mountains.dtx +2024/02/03 | 62019 | macros/latex/contrib/wargame/source/hex/terrain/rough.dtx +2024/02/03 | 9929 | macros/latex/contrib/wargame/source/hex/terrain/swamp.dtx +2024/02/03 | 24989 | macros/latex/contrib/wargame/source/hex/terrain/town.dtx +2024/02/03 | 642 | macros/latex/contrib/wargame/source/hex/terrain/tree.dtx +2024/02/03 | 8374 | macros/latex/contrib/wargame/source/hex/terrain/village.dtx +2024/02/03 | 46781 | macros/latex/contrib/wargame/source/hex/terrain/woods.dtx +2024/02/03 | 462 | macros/latex/contrib/wargame/source/hex/tile.dtx +2024/02/03 | 2502 | macros/latex/contrib/wargame/source/hex/towns.dtx +2024/02/03 | 8906 | macros/latex/contrib/wargame/source/Makefile +2024/02/03 | 1359 | macros/latex/contrib/wargame/source/natoapp6c/compat/activity.dtx +2024/02/03 | 3209 | macros/latex/contrib/wargame/source/natoapp6c/compat/air.dtx +2024/02/03 | 4715 | macros/latex/contrib/wargame/source/natoapp6c/compat/equipment.dtx +2024/02/03 | 1653 | macros/latex/contrib/wargame/source/natoapp6c/compat/installation.dtx +2024/02/03 | 11120 | macros/latex/contrib/wargame/source/natoapp6c/compat/land.dtx +2024/02/03 | 413 | macros/latex/contrib/wargame/source/natoapp6c/compat/missile.dtx +2024/02/03 | 742 | macros/latex/contrib/wargame/source/natoapp6c/compat/seamine.dtx +2024/02/03 | 5228 | macros/latex/contrib/wargame/source/natoapp6c/compat/seasurface.dtx +2024/02/03 | 2274 | macros/latex/contrib/wargame/source/natoapp6c/compat/space.dtx +2024/02/03 | 2888 | macros/latex/contrib/wargame/source/natoapp6c/compat/subsurface.dtx +2024/02/03 | 6573 | macros/latex/contrib/wargame/source/natoapp6c/core.dtx +2024/02/03 | 2846 | macros/latex/contrib/wargame/source/natoapp6c/echelon.dtx +2024/02/03 | 2267 | macros/latex/contrib/wargame/source/natoapp6c/frames/base.dtx +2024/02/03 | 15911 | macros/latex/contrib/wargame/source/natoapp6c/frames/friendly.dtx +2024/02/03 | 15937 | macros/latex/contrib/wargame/source/natoapp6c/frames/hostile.dtx +2024/02/03 | 15175 | macros/latex/contrib/wargame/source/natoapp6c/frames/neutral.dtx +2024/02/03 | 18195 | macros/latex/contrib/wargame/source/natoapp6c/frames/unknown.dtx +2024/02/03 | 4491 | macros/latex/contrib/wargame/source/natoapp6c/list.dtx +2024/02/03 | 21092 | macros/latex/contrib/wargame/source/natoapp6c/shape.dtx +2024/02/03 | 89859 | macros/latex/contrib/wargame/source/natoapp6c/symbols.dtx +2024/02/03 | 1807 | macros/latex/contrib/wargame/source/natoapp6c/text.dtx +2024/02/03 | 1911 | macros/latex/contrib/wargame/source/natoapp6c/util.dtx +2024/02/03 | 3210 | macros/latex/contrib/wargame/source/natoapp6c/weaponry.dtx +2024/02/03 | 932 | macros/latex/contrib/wargame/source/package.dtx +2024/02/03 | 2108 | macros/latex/contrib/wargame/source/tests/chits.dtx +2024/02/03 | 1944 | macros/latex/contrib/wargame/source/tests/map.dtx +2024/02/03 | 4549 | macros/latex/contrib/wargame/source/tests/test.tex +2024/02/03 | 6425 | macros/latex/contrib/wargame/source/util/bb.dtx +2024/02/03 | 5787 | macros/latex/contrib/wargame/source/util/compound.dtx +2024/02/03 | 512 | macros/latex/contrib/wargame/source/util/core.dtx +2024/02/03 | 31114 | macros/latex/contrib/wargame/source/util/export.dtx +2024/02/03 | 3121 | macros/latex/contrib/wargame/source/util/icons.dtx +2024/02/03 | 4467 | macros/latex/contrib/wargame/source/util/misc.dtx +2024/02/03 | 499 | macros/latex/contrib/wargame/source/util/randomid.dtx +2024/02/03 | 465865 | macros/latex/contrib/wargame/source/utils/wgexport.py +2024/02/03 | 10305 | macros/latex/contrib/wargame/source/utils/wgsvg2tikz.py +2024/02/03 | 5428 | macros/latex/contrib/wargame/source/util/tikz.dtx +2024/02/03 | 94846 | macros/latex/contrib/wargame/source/wargame.dtx +2024/02/03 | 7527 | macros/latex/contrib/wargame/source/wargame.ins +2024/02/03 | 2877080 | macros/latex/contrib/wargame.zip 2023/03/18 | 2585 | macros/latex/contrib/warning/README 2023/03/18 | 288383 | macros/latex/contrib/warning/warning-doc.pdf 2023/03/18 | 3008 | macros/latex/contrib/warning/warning-doc.tex @@ -307185,9 +307185,9 @@ 2019/02/28 | 3156 | systems/texlive/tlnet/archive/docmute.source.r25741.tar.xz 2019/02/28 | 1508 | systems/texlive/tlnet/archive/doc-pictex.doc.r24927.tar.xz 2019/02/28 | 468 | systems/texlive/tlnet/archive/doc-pictex.r24927.tar.xz -2024/01/14 | 338200 | systems/texlive/tlnet/archive/docshots.doc.r69410.tar.xz -2024/01/14 | 2788 | systems/texlive/tlnet/archive/docshots.r69410.tar.xz -2024/01/14 | 7248 | systems/texlive/tlnet/archive/docshots.source.r69410.tar.xz +2024/02/03 | 338416 | systems/texlive/tlnet/archive/docshots.doc.r69676.tar.xz +2024/02/03 | 2804 | systems/texlive/tlnet/archive/docshots.r69676.tar.xz +2024/02/03 | 7264 | systems/texlive/tlnet/archive/docshots.source.r69676.tar.xz 2024/01/15 | 269064 | systems/texlive/tlnet/archive/docsurvey.doc.r69417.tar.xz 2024/01/15 | 544 | systems/texlive/tlnet/archive/docsurvey.r69417.tar.xz 2019/02/28 | 603152 | systems/texlive/tlnet/archive/doctools.doc.r34474.tar.xz @@ -309529,8 +309529,8 @@ 2024/01/25 | 2796 | systems/texlive/tlnet/archive/hvlogos.r69581.tar.xz 2022/03/05 | 22308 | systems/texlive/tlnet/archive/hvpygmentex.doc.r62405.tar.xz 2022/03/05 | 3576 | systems/texlive/tlnet/archive/hvpygmentex.r62405.tar.xz -2024/01/29 | 113684 | systems/texlive/tlnet/archive/hvqrurl.doc.r69621.tar.xz -2024/01/29 | 1348 | systems/texlive/tlnet/archive/hvqrurl.r69621.tar.xz +2024/02/03 | 113960 | systems/texlive/tlnet/archive/hvqrurl.doc.r69677.tar.xz +2024/02/03 | 1352 | systems/texlive/tlnet/archive/hvqrurl.r69677.tar.xz 2022/11/13 | 4360084 | systems/texlive/tlnet/archive/hwemoji.doc.r65001.tar.xz 2022/11/13 | 4274656 | systems/texlive/tlnet/archive/hwemoji.r65001.tar.xz 2020/01/29 | 375200 | systems/texlive/tlnet/archive/hycolor.doc.r53584.tar.xz @@ -310881,8 +310881,8 @@ 2019/02/28 | 6188 | systems/texlive/tlnet/archive/listofsymbols.source.r16134.tar.xz 2023/12/14 | 917692 | systems/texlive/tlnet/archive/litesolution.doc.r69115.tar.xz 2023/12/14 | 6068 | systems/texlive/tlnet/archive/litesolution.r69115.tar.xz -2024/02/01 | 280936 | systems/texlive/tlnet/archive/litetable.doc.r69647.tar.xz -2024/02/01 | 3392 | systems/texlive/tlnet/archive/litetable.r69647.tar.xz +2024/02/03 | 379532 | systems/texlive/tlnet/archive/litetable.doc.r69678.tar.xz +2024/02/03 | 3564 | systems/texlive/tlnet/archive/litetable.r69678.tar.xz 2023/03/08 | 56116 | systems/texlive/tlnet/archive/lithuanian.doc.r66461.tar.xz 2023/03/08 | 64828 | systems/texlive/tlnet/archive/lithuanian.r66461.tar.xz 2019/02/28 | 115684 | systems/texlive/tlnet/archive/liturg.doc.r15878.tar.xz @@ -312087,9 +312087,9 @@ 2019/02/28 | 114952 | systems/texlive/tlnet/archive/moreverb.doc.r22126.tar.xz 2019/02/28 | 2324 | systems/texlive/tlnet/archive/moreverb.r22126.tar.xz 2019/02/28 | 7080 | systems/texlive/tlnet/archive/moreverb.source.r22126.tar.xz -2024/01/06 | 1254088 | systems/texlive/tlnet/archive/morewrites.doc.r69306.tar.xz -2024/01/06 | 5800 | systems/texlive/tlnet/archive/morewrites.r69306.tar.xz -2024/01/06 | 20612 | systems/texlive/tlnet/archive/morewrites.source.r69306.tar.xz +2024/02/03 | 1254560 | systems/texlive/tlnet/archive/morewrites.doc.r69679.tar.xz +2024/02/03 | 5852 | systems/texlive/tlnet/archive/morewrites.r69679.tar.xz +2024/02/03 | 20660 | systems/texlive/tlnet/archive/morewrites.source.r69679.tar.xz 2019/02/28 | 95032 | systems/texlive/tlnet/archive/morisawa.doc.r46946.tar.xz 2019/02/28 | 8564 | systems/texlive/tlnet/archive/morisawa.r46946.tar.xz 2019/02/28 | 3452 | systems/texlive/tlnet/archive/morisawa.source.r46946.tar.xz @@ -313973,8 +313973,8 @@ 2023/04/19 | 21972 | systems/texlive/tlnet/archive/pstricks-add.r66887.tar.xz 2019/02/28 | 1133128 | systems/texlive/tlnet/archive/pstricks_calcnotes.doc.r34363.tar.xz 2019/02/28 | 512 | systems/texlive/tlnet/archive/pstricks_calcnotes.r34363.tar.xz -2023/11/10 | 7657460 | systems/texlive/tlnet/archive/pstricks.doc.r68767.tar.xz -2023/11/10 | 88036 | systems/texlive/tlnet/archive/pstricks.r68767.tar.xz +2024/02/03 | 7531396 | systems/texlive/tlnet/archive/pstricks.doc.r69674.tar.xz +2024/02/03 | 88080 | systems/texlive/tlnet/archive/pstricks.r69674.tar.xz 2019/02/28 | 123272 | systems/texlive/tlnet/archive/pstring.doc.r42857.tar.xz 2019/02/28 | 7384 | systems/texlive/tlnet/archive/pstring.r42857.tar.xz 2019/02/28 | 85380 | systems/texlive/tlnet/archive/pst-rputover.doc.r44724.tar.xz @@ -313990,8 +313990,8 @@ 2019/02/28 | 244888 | systems/texlive/tlnet/archive/pst-slpe.doc.r24391.tar.xz 2019/02/28 | 3176 | systems/texlive/tlnet/archive/pst-slpe.r24391.tar.xz 2019/02/28 | 12612 | systems/texlive/tlnet/archive/pst-slpe.source.r24391.tar.xz -2024/01/30 | 454548 | systems/texlive/tlnet/archive/pst-solarsystem.doc.r69627.tar.xz -2024/01/30 | 5156 | systems/texlive/tlnet/archive/pst-solarsystem.r69627.tar.xz +2024/02/03 | 466476 | systems/texlive/tlnet/archive/pst-solarsystem.doc.r69675.tar.xz +2024/02/03 | 5172 | systems/texlive/tlnet/archive/pst-solarsystem.r69675.tar.xz 2023/11/10 | 5751600 | systems/texlive/tlnet/archive/pst-solides3d.doc.r68786.tar.xz 2023/11/10 | 55756 | systems/texlive/tlnet/archive/pst-solides3d.r68786.tar.xz 2019/02/28 | 84524 | systems/texlive/tlnet/archive/pst-soroban.doc.r15878.tar.xz @@ -314366,9 +314366,9 @@ 2019/02/28 | 643176 | systems/texlive/tlnet/archive/refman.doc.r15878.tar.xz 2019/02/28 | 9348 | systems/texlive/tlnet/archive/refman.r15878.tar.xz 2019/02/28 | 28680 | systems/texlive/tlnet/archive/refman.source.r15878.tar.xz -2024/02/01 | 736692 | systems/texlive/tlnet/archive/refstyle.doc.r69648.tar.xz -2024/02/01 | 6136 | systems/texlive/tlnet/archive/refstyle.r69648.tar.xz -2024/02/01 | 21792 | systems/texlive/tlnet/archive/refstyle.source.r69648.tar.xz +2024/02/03 | 735800 | systems/texlive/tlnet/archive/refstyle.doc.r69680.tar.xz +2024/02/03 | 6108 | systems/texlive/tlnet/archive/refstyle.r69680.tar.xz +2024/02/03 | 21784 | systems/texlive/tlnet/archive/refstyle.source.r69680.tar.xz 2019/02/28 | 197208 | systems/texlive/tlnet/archive/regcount.doc.r19979.tar.xz 2019/02/28 | 1684 | systems/texlive/tlnet/archive/regcount.r19979.tar.xz 2019/02/28 | 3792 | systems/texlive/tlnet/archive/regcount.source.r19979.tar.xz @@ -314921,8 +314921,8 @@ 2019/02/28 | 292656 | systems/texlive/tlnet/archive/simplecv.doc.r35537.tar.xz 2019/02/28 | 2112 | systems/texlive/tlnet/archive/simplecv.r35537.tar.xz 2019/02/28 | 5844 | systems/texlive/tlnet/archive/simplecv.source.r35537.tar.xz -2024/01/27 | 2459888 | systems/texlive/tlnet/archive/simpleicons.doc.r69598.tar.xz -2024/01/27 | 3364016 | systems/texlive/tlnet/archive/simpleicons.r69598.tar.xz +2024/02/03 | 2465532 | systems/texlive/tlnet/archive/simpleicons.doc.r69673.tar.xz +2024/02/03 | 3372044 | systems/texlive/tlnet/archive/simpleicons.r69673.tar.xz 2019/02/28 | 224844 | systems/texlive/tlnet/archive/simpleinvoice.doc.r45673.tar.xz 2019/02/28 | 2420 | systems/texlive/tlnet/archive/simpleinvoice.r45673.tar.xz 2023/10/03 | 142696 | systems/texlive/tlnet/archive/simplekv.doc.r68439.tar.xz @@ -315742,13 +315742,13 @@ 2019/02/28 | 344 | systems/texlive/tlnet/archive/texdoc.amd64-freebsd.r47948.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/texdoc.amd64-netbsd.r47948.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/texdoc.armhf-linux.r47948.tar.xz -2023/02/28 | 140932 | systems/texlive/tlnet/archive/texdoc.doc.r66227.tar.xz +2024/02/03 | 140724 | systems/texlive/tlnet/archive/texdoc.doc.r69672.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/texdoc.i386-freebsd.r47948.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/texdoc.i386-linux.r47948.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/texdoc.i386-netbsd.r47948.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/texdoc.i386-solaris.r47948.tar.xz 2023/02/27 | 43528 | systems/texlive/tlnet/archive/tex.doc.r66186.tar.xz -2023/02/28 | 29668 | systems/texlive/tlnet/archive/texdoc.r66227.tar.xz +2024/02/03 | 29860 | systems/texlive/tlnet/archive/texdoc.r69672.tar.xz 2019/02/28 | 344 | systems/texlive/tlnet/archive/texdoctk.aarch64-linux.r46208.tar.xz 2019/02/28 | 344 | systems/texlive/tlnet/archive/texdoctk.amd64-freebsd.r29785.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/texdoctk.amd64-netbsd.r30191.tar.xz @@ -315891,7 +315891,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/02 | 431832 | systems/texlive/tlnet/archive/texlive-scripts.doc.r69655.tar.xz +2024/02/03 | 432056 | systems/texlive/tlnet/archive/texlive-scripts.doc.r69669.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 @@ -315913,7 +315913,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/02 | 114060 | systems/texlive/tlnet/archive/texlive-scripts.r69655.tar.xz +2024/02/03 | 114064 | systems/texlive/tlnet/archive/texlive-scripts.r69669.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 @@ -316847,8 +316847,8 @@ 2019/05/24 | 2984 | systems/texlive/tlnet/archive/unam-thesis.r51207.tar.xz 2023/10/28 | 5010296 | systems/texlive/tlnet/archive/unamth-template.doc.r68681.tar.xz 2023/10/28 | 480 | systems/texlive/tlnet/archive/unamth-template.r68681.tar.xz -2024/01/06 | 650028 | systems/texlive/tlnet/archive/unbtex.doc.r69307.tar.xz -2024/01/06 | 19092 | systems/texlive/tlnet/archive/unbtex.r69307.tar.xz +2024/02/03 | 648772 | systems/texlive/tlnet/archive/unbtex.doc.r69681.tar.xz +2024/02/03 | 9488 | systems/texlive/tlnet/archive/unbtex.r69681.tar.xz 2024/01/28 | 150644 | systems/texlive/tlnet/archive/undar-digitacion.doc.r69613.tar.xz 2024/01/28 | 6824 | systems/texlive/tlnet/archive/undar-digitacion.r69613.tar.xz 2024/01/28 | 8092 | systems/texlive/tlnet/archive/undar-digitacion.source.r69613.tar.xz @@ -317819,16 +317819,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/01/27 | 125030 | systems/texlive/tlnet/install-tl -2024/02/02 | 5749861 | systems/texlive/tlnet/install-tl-unx.tar.gz -2024/02/02 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 -2024/02/02 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc +2024/02/03 | 5748675 | systems/texlive/tlnet/install-tl-unx.tar.gz +2024/02/03 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 +2024/02/03 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc 2023/05/13 | 5083 | systems/texlive/tlnet/install-tl-windows.bat -2024/02/02 | 21031765 | systems/texlive/tlnet/install-tl-windows.exe -2024/02/02 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 -2024/02/02 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc -2024/02/02 | 26035475 | systems/texlive/tlnet/install-tl.zip -2024/02/02 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 -2024/02/02 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc +2024/02/03 | 21031770 | systems/texlive/tlnet/install-tl-windows.exe +2024/02/03 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 +2024/02/03 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc +2024/02/03 | 26035475 | systems/texlive/tlnet/install-tl.zip +2024/02/03 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 +2024/02/03 | 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 @@ -317880,12 +317880,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/02 | 19313156 | systems/texlive/tlnet/tlpkg/texlive.tlpdb -2024/02/02 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +2024/02/03 | 19313509 | systems/texlive/tlnet/tlpkg/texlive.tlpdb +2024/02/03 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 2024/01/31 | 87229 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm -2024/02/02 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 -2024/02/02 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc -2024/02/02 | 2544616 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +2024/02/03 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +2024/02/03 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc +2024/02/03 | 2544880 | 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 @@ -329016,7 +329016,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/03 | 186 | timestamp +2024/02/04 | 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 d441df5f41..4bd57020b7 100644 --- a/FILES.byname.gz +++ b/FILES.byname.gz diff --git a/FILES.last07days b/FILES.last07days index f28e46ea66..92bdf69441 100644 --- a/FILES.last07days +++ b/FILES.last07days @@ -1,61 +1,227 @@ +2024/02/03 | 9929 | macros/latex/contrib/wargame/source/hex/terrain/swamp.dtx +2024/02/03 | 9488 | systems/texlive/tlnet/archive/unbtex.r69681.tar.xz +2024/02/03 | 94846 | macros/latex/contrib/wargame/source/wargame.dtx +2024/02/03 | 932 | macros/latex/contrib/wargame/source/package.dtx +2024/02/03 | 9268 | macros/latex/contrib/wargame/source/chit/dice.dtx +2024/02/03 | 9125 | macros/latex/contrib/wargame/source/hex/terrain.dtx +2024/02/03 | 89859 | macros/latex/contrib/wargame/source/natoapp6c/symbols.dtx +2024/02/03 | 8906 | macros/latex/contrib/wargame/source/Makefile +2024/02/03 | 88080 | systems/texlive/tlnet/archive/pstricks.r69674.tar.xz +2024/02/03 | 8374 | macros/latex/contrib/wargame/source/hex/terrain/village.dtx +2024/02/03 | 7801 | macros/latex/contrib/hvqrurl/doc/hvqrurl.tex +2024/02/03 | 75764 | macros/latex/contrib/projlib.zip +2024/02/03 | 755 | macros/latex/contrib/wargame/doc/tutorial/patch.py +2024/02/03 | 7531396 | systems/texlive/tlnet/archive/pstricks.doc.r69674.tar.xz +2024/02/03 | 7527 | macros/latex/contrib/wargame/source/wargame.ins +2024/02/03 | 742 | macros/latex/contrib/wargame/source/natoapp6c/compat/seamine.dtx +2024/02/03 | 735800 | systems/texlive/tlnet/archive/refstyle.doc.r69680.tar.xz +2024/02/03 | 7264 | systems/texlive/tlnet/archive/docshots.source.r69676.tar.xz +2024/02/03 | 6791 | macros/latex/contrib/wargame/source/chit/table.dtx +2024/02/03 | 66427 | macros/latex/contrib/wargame/doc/tutorial/game.sty +2024/02/03 | 6573 | macros/latex/contrib/wargame/source/natoapp6c/core.dtx +2024/02/03 | 648772 | systems/texlive/tlnet/archive/unbtex.doc.r69681.tar.xz +2024/02/03 | 642 | macros/latex/contrib/wargame/source/hex/terrain/tree.dtx +2024/02/03 | 6425 | macros/latex/contrib/wargame/source/util/bb.dtx +2024/02/03 | 62019 | macros/latex/contrib/wargame/source/hex/terrain/rough.dtx +2024/02/03 | 618 | macros/latex/contrib/wargame/source/hex/terrain/mountain.dtx +2024/02/03 | 6108 | systems/texlive/tlnet/archive/refstyle.r69680.tar.xz +2024/02/03 | 599 | fonts/pigpen/README.md +2024/02/03 | 590545 | macros/latex/contrib/wargame/doc/tutorial/game.pdf +2024/02/03 | 5852 | systems/texlive/tlnet/archive/morewrites.r69679.tar.xz +2024/02/03 | 5792 | macros/latex/contrib/projlib/README.md +2024/02/03 | 5787 | macros/latex/contrib/wargame/source/util/compound.dtx +2024/02/03 | 5775 | macros/latex/contrib/wargame/doc/tutorial/game.tex +2024/02/03 | 5748675 | systems/texlive/tlnet/install-tl-unx.tar.gz +2024/02/03 | 5428 | macros/latex/contrib/wargame/source/util/tikz.dtx +2024/02/03 | 52431 | macros/latex/contrib/randexam/randexam.pdf +2024/02/03 | 5228 | macros/latex/contrib/wargame/source/natoapp6c/compat/seasurface.dtx +2024/02/03 | 5172 | systems/texlive/tlnet/archive/pst-solarsystem.r69675.tar.xz +2024/02/03 | 512 | macros/latex/contrib/wargame/source/util/core.dtx +2024/02/03 | 499 | macros/latex/contrib/wargame/source/util/randomid.dtx +2024/02/03 | 4959 | macros/latex/contrib/wargame/source/hex/ridges.dtx +2024/02/03 | 49588 | macros/latex/contrib/randexam/randexam-a-answer.pdf +2024/02/03 | 49570 | macros/latex/contrib/randexam/randexam-b-answer.pdf +2024/02/03 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +2024/02/03 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc +2024/02/03 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc +2024/02/03 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc +2024/02/03 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc +2024/02/03 | 472 | macros/latex/contrib/hvqrurl/Changes +2024/02/03 | 4715 | macros/latex/contrib/wargame/source/natoapp6c/compat/equipment.dtx +2024/02/03 | 46781 | macros/latex/contrib/wargame/source/hex/terrain/woods.dtx +2024/02/03 | 466476 | systems/texlive/tlnet/archive/pst-solarsystem.doc.r69675.tar.xz +2024/02/03 | 465865 | macros/latex/contrib/wargame/source/utils/wgexport.py +2024/02/03 | 462 | macros/latex/contrib/wargame/source/hex/tile.dtx +2024/02/03 | 4549 | macros/latex/contrib/wargame/source/tests/test.tex +2024/02/03 | 4514 | macros/latex/contrib/wargame/source/hex/labels.dtx +2024/02/03 | 4491 | macros/latex/contrib/wargame/source/natoapp6c/list.dtx +2024/02/03 | 4467 | macros/latex/contrib/wargame/source/util/misc.dtx +2024/02/03 | 435053 | macros/latex/contrib/wargame/doc/compat.pdf +2024/02/03 | 432056 | systems/texlive/tlnet/archive/texlive-scripts.doc.r69669.tar.xz +2024/02/03 | 413 | macros/latex/contrib/wargame/source/natoapp6c/compat/missile.dtx +2024/02/03 | 41374 | macros/latex/contrib/randexam/randexam-a-blank.pdf +2024/02/03 | 41309 | macros/latex/contrib/randexam/randexam-b-blank.pdf +2024/02/03 | 4116502 | biblio/ctan-bibdata.zip +2024/02/03 | 3993 | macros/latex/contrib/wargame/source/chit/misc.dtx +2024/02/03 | 39670 | macros/latex/contrib/wargame/source/hex/terrain/light_woods.dtx +2024/02/03 | 379532 | systems/texlive/tlnet/archive/litetable.doc.r69678.tar.xz +2024/02/03 | 37933 | macros/latex/contrib/projlib/logo/ProjLib-logo.png +2024/02/03 | 37519 | macros/latex/contrib/wargame/source/hex/terrain/beach.dtx +2024/02/03 | 37420 | macros/latex/contrib/wargame/source/hex/terrain/mountains.dtx +2024/02/03 | 3708800 | biblio/ctan-bibdata/ctan.pdf +2024/02/03 | 3568 | macros/latex/contrib/wargame/source/chit/elements.dtx +2024/02/03 | 3564 | systems/texlive/tlnet/archive/litetable.r69678.tar.xz +2024/02/03 | 351 | macros/latex/contrib/hvqrurl/README +2024/02/03 | 338416 | systems/texlive/tlnet/archive/docshots.doc.r69676.tar.xz +2024/02/03 | 3379 | macros/latex/contrib/projlib/ProjLib.ins +2024/02/03 | 3372044 | systems/texlive/tlnet/archive/simpleicons.r69673.tar.xz +2024/02/03 | 334627 | macros/latex/contrib/exesheet/exesheet.pdf +2024/02/03 | 3210 | macros/latex/contrib/wargame/source/natoapp6c/weaponry.dtx +2024/02/03 | 3209 | macros/latex/contrib/wargame/source/natoapp6c/compat/air.dtx +2024/02/03 | 3190703 | install/macros/latex/contrib/wargame.tds.zip +2024/02/03 | 3121 | macros/latex/contrib/wargame/source/util/icons.dtx +2024/02/03 | 31114 | macros/latex/contrib/wargame/source/util/export.dtx +2024/02/03 | 29860 | systems/texlive/tlnet/archive/texdoc.r69672.tar.xz +2024/02/03 | 293084 | macros/latex/contrib/exesheet.zip +2024/02/03 | 2888 | macros/latex/contrib/wargame/source/natoapp6c/compat/subsurface.dtx +2024/02/03 | 2877080 | macros/latex/contrib/wargame.zip +2024/02/03 | 2846 | macros/latex/contrib/wargame/source/natoapp6c/echelon.dtx +2024/02/03 | 2843689 | biblio/ctan-bibdata/ctan.bib +2024/02/03 | 2804 | systems/texlive/tlnet/archive/docshots.r69676.tar.xz +2024/02/03 | 26035475 | systems/texlive/tlnet/install-tl.zip +2024/02/03 | 2544880 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +2024/02/03 | 2502 | macros/latex/contrib/wargame/source/hex/towns.dtx +2024/02/03 | 24989 | macros/latex/contrib/wargame/source/hex/terrain/town.dtx +2024/02/03 | 2478 | fonts/pigpen/doc/pigpendoc.tex +2024/02/03 | 2465532 | systems/texlive/tlnet/archive/simpleicons.doc.r69673.tar.xz +2024/02/03 | 245809 | macros/latex/contrib/randexam.zip +2024/02/03 | 2433464 | macros/latex/contrib/tagpdf.zip +2024/02/03 | 23507 | macros/latex/contrib/wargame/source/chit/shape.dtx +2024/02/03 | 2335 | macros/latex/contrib/wargame/source/hex/core.dtx +2024/02/03 | 2284 | macros/latex/contrib/wargame/source/hex/extra.dtx +2024/02/03 | 2274 | macros/latex/contrib/wargame/source/natoapp6c/compat/space.dtx +2024/02/03 | 2267 | macros/latex/contrib/wargame/source/natoapp6c/frames/base.dtx +2024/02/03 | 224219 | macros/latex/contrib/projlib/ProjLib.dtx +2024/02/03 | 2224 | macros/latex/contrib/hvqrurl/latex/hvqrurl.sty +2024/02/03 | 21784 | systems/texlive/tlnet/archive/refstyle.source.r69680.tar.xz +2024/02/03 | 21092 | macros/latex/contrib/wargame/source/natoapp6c/shape.dtx +2024/02/03 | 2108 | macros/latex/contrib/wargame/source/tests/chits.dtx +2024/02/03 | 21031770 | systems/texlive/tlnet/install-tl-windows.exe +2024/02/03 | 20660 | systems/texlive/tlnet/archive/morewrites.source.r69679.tar.xz +2024/02/03 | 19 | macros/latex/contrib/projlib/DEPENDS.txt +2024/02/03 | 1944 | macros/latex/contrib/wargame/source/tests/map.dtx +2024/02/03 | 1931 | macros/latex/contrib/wargame/source/chit/battle.dtx +2024/02/03 | 19313509 | systems/texlive/tlnet/tlpkg/texlive.tlpdb +2024/02/03 | 1911 | macros/latex/contrib/wargame/source/natoapp6c/util.dtx +2024/02/03 | 19106 | macros/latex/contrib/projlib/LICENSE +2024/02/03 | 186882 | macros/latex/contrib/wargame/doc/symbols.pdf +2024/02/03 | 18195 | macros/latex/contrib/wargame/source/natoapp6c/frames/unknown.dtx +2024/02/03 | 1807 | macros/latex/contrib/wargame/source/natoapp6c/text.dtx +2024/02/03 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx +2024/02/03 | 16547 | macros/latex/contrib/wargame/doc/tutorial/export.tex +2024/02/03 | 1653 | macros/latex/contrib/wargame/source/natoapp6c/compat/installation.dtx +2024/02/03 | 15937 | macros/latex/contrib/wargame/source/natoapp6c/frames/hostile.dtx +2024/02/03 | 15911 | macros/latex/contrib/wargame/source/natoapp6c/frames/friendly.dtx +2024/02/03 | 15564 | macros/latex/contrib/wargame/source/hex/split.dtx +2024/02/03 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 +2024/02/03 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 +2024/02/03 | 15175 | macros/latex/contrib/wargame/source/natoapp6c/frames/neutral.dtx +2024/02/03 | 15000 | macros/latex/contrib/wargame/source/hex/shape.dtx +2024/02/03 | 1469771 | macros/latex/contrib/wargame/doc/wargame.pdf +2024/02/03 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 +2024/02/03 | 145 | fonts/pigpen/map/pigpen.map +2024/02/03 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +2024/02/03 | 140724 | systems/texlive/tlnet/archive/texdoc.doc.r69672.tar.xz +2024/02/03 | 1359 | macros/latex/contrib/wargame/source/natoapp6c/compat/activity.dtx +2024/02/03 | 1352 | systems/texlive/tlnet/archive/hvqrurl.r69677.tar.xz +2024/02/03 | 1344 | macros/latex/contrib/exesheet/README.md +2024/02/03 | 1342 | macros/latex/contrib/wargame/source/chit/core.dtx +2024/02/03 | 1323 | macros/latex/contrib/wargame/source/chit/stack.dtx +2024/02/03 | 132083 | fonts/pigpen.zip +2024/02/03 | 1308 | macros/latex/contrib/projlib/logo/ProjLib-logo.pdf +2024/02/03 | 126 | macros/latex/contrib/projlib/logo/ProjLib-logo.tex +2024/02/03 | 1256 | macros/latex/contrib/wargame/doc/tutorial/README.md +2024/02/03 | 125628 | fonts/pigpen/doc/pigpendoc.pdf +2024/02/03 | 1254560 | systems/texlive/tlnet/archive/morewrites.doc.r69679.tar.xz +2024/02/03 | 1231 | macros/latex/contrib/wargame/source/chit/modifiers.dtx +2024/02/03 | 12119 | macros/latex/contrib/wargame/source/hex/coord.dtx +2024/02/03 | 119380 | macros/latex/contrib/wargame/source/hex/terrain/city.dtx +2024/02/03 | 117559 | macros/latex/contrib/hvqrurl.zip +2024/02/03 | 115679 | macros/latex/contrib/hvqrurl/doc/hvqrurl.pdf +2024/02/03 | 11431 | macros/latex/contrib/wargame/source/hex/paths.dtx +2024/02/03 | 114064 | systems/texlive/tlnet/archive/texlive-scripts.r69669.tar.xz +2024/02/03 | 113960 | systems/texlive/tlnet/archive/hvqrurl.doc.r69677.tar.xz +2024/02/03 | 11274 | macros/latex/contrib/wargame/source/chit/oob.dtx +2024/02/03 | 11263 | macros/latex/contrib/wargame/README.md +2024/02/03 | 11120 | macros/latex/contrib/wargame/source/natoapp6c/compat/land.dtx +2024/02/03 | 109823 | macros/latex/contrib/exesheet/exesheet.dtx +2024/02/03 | 1091 | macros/latex/contrib/wargame/doc/tutorial/Makefile +2024/02/03 | 10305 | macros/latex/contrib/wargame/source/utils/wgsvg2tikz.py +2024/02/03 | 10066 | macros/latex/contrib/wargame/source/hex/board.dtx 2024/02/02 | 98554 | graphics/pstricks/base/doc/pst-news24.pdf 2024/02/02 | 9660964 | systems/texlive/tlnet/archive/ysabeau.r69663.tar.xz 2024/02/02 | 9563 | support/texdoc/NEWS +2024/02/02 | 950 | macros/latex/contrib/tagpdf/ex-formula-problem.tex 2024/02/02 | 950 | macros/latex/contrib/morewrites/morewrites.ins 2024/02/02 | 9458015 | systems/texlive/tlnet/update-tlmgr-r69666.sh 2024/02/02 | 90384 | systems/texlive/tlnet/archive/leftindex.doc.r69660.tar.xz 2024/02/02 | 89528 | support/texdoc/doc/texdoc.pdf 2024/02/02 | 892 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsonetwo.tfm 2024/02/02 | 84867548 | systems/texlive/tlnet/archive/context.doc.r69665.tar.xz +2024/02/02 | 8281 | macros/latex/contrib/tagpdf/global-ex.png +2024/02/02 | 827 | macros/latex/contrib/tagpdf/ex-softhyphen.tex 2024/02/02 | 8275472 | systems/texlive/tlnet/archive/context.r69665.tar.xz 2024/02/02 | 8163 | graphics/pstricks/base/latex/pstricks.sty 2024/02/02 | 8105595 | graphics/pstricks/base.zip +2024/02/02 | 7854 | macros/latex/contrib/tagpdf/ex-formula-problem-luatex.pdf 2024/02/02 | 7844 | support/texdoc/script/texdoclib-util.tlu 2024/02/02 | 771748 | systems/texlive/tlnet/archive/ysabeau.doc.r69663.tar.xz -2024/02/02 | 7561 | macros/latex/contrib/hvqrurl/doc/hvqrurl.tex 2024/02/02 | 749644 | macros/latex/contrib/morewrites/morewrites.pdf +2024/02/02 | 72398 | macros/latex/contrib/tagpdf/tagpdf-struct.dtx +2024/02/02 | 700 | macros/latex/contrib/tagpdf/ex-spaceglyph-listings.tex +2024/02/02 | 698 | macros/latex/contrib/tagpdf/ex-tagpdf-template.tex 2024/02/02 | 69163 | macros/latex/contrib/litetable/doc/litetable-demo2.pdf 2024/02/02 | 6726 | support/texdoc/doc/texdoc-doc.cls +2024/02/02 | 6626 | macros/latex/contrib/tagpdf/ex-attribute-luatex.pdf 2024/02/02 | 6365 | support/texdoc/script/texdoclib-cli.tlu 2024/02/02 | 635299 | macros/latex/contrib/morewrites/primargs.pdf 2024/02/02 | 6147261 | fonts/simpleicons.zip 2024/02/02 | 608972 | macros/latex/contrib/litetable.zip 2024/02/02 | 591 | macros/latex/contrib/morewrites/README.md 2024/02/02 | 58592 | systems/texlive/tlnet/archive/europecv.r69661.tar.xz -2024/02/02 | 5749861 | systems/texlive/tlnet/install-tl-unx.tar.gz 2024/02/02 | 572384 | systems/texlive/tlnet/archive/kotex-oblivoir.doc.r69662.tar.xz 2024/02/02 | 546561 | graphics/pstricks/contrib/pst-solarsystem/doc/pst-solarsystem-doc.pdf +2024/02/02 | 5427 | macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty 2024/02/02 | 541624 | systems/texlive/tlnet/archive/latexmk.doc.r69657.tar.xz 2024/02/02 | 517 | graphics/pstricks/contrib/pst-solarsystem/latex/pst-solarsystem.sty 2024/02/02 | 51694 | macros/latex/contrib/morewrites/morewrites.dtx +2024/02/02 | 5106 | macros/latex/contrib/tagpdf/tagpdf-space.dtx 2024/02/02 | 505129 | graphics/pstricks/contrib/pst-solarsystem.zip 2024/02/02 | 499 | systems/win32/miktex/source/miktex-24.1.tar.xz.asc -2024/02/02 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 2024/02/02 | 488 | systems/texlive/tlnet/update-tlmgr-r69666.sh.sha512.asc 2024/02/02 | 488 | systems/texlive/tlnet/update-tlmgr-r69666.exe.sha512.asc -2024/02/02 | 488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc -2024/02/02 | 488 | systems/texlive/tlnet/install-tl.zip.sha512.asc -2024/02/02 | 488 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc -2024/02/02 | 488 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc 2024/02/02 | 4818 | graphics/pstricks/base/README 2024/02/02 | 4693 | graphics/pstricks/base/Changes 2024/02/02 | 4677007 | systems/texlive/tlnet/update-tlmgr-r69666.exe +2024/02/02 | 45666 | macros/latex/contrib/tagpdf/tagpdf-roles.dtx 2024/02/02 | 45427 | macros/latex/contrib/litetable/doc/litetable-demo1.pdf +2024/02/02 | 45387 | macros/latex/contrib/randexam/randexam.cls 2024/02/02 | 4471 | graphics/pstricks/base/doc/pst-news24.tex 2024/02/02 | 44572 | systems/texlive/tlnet/archive/kotex-oblivoir.r69662.tar.xz +2024/02/02 | 44422 | macros/latex/contrib/tagpdf/tagpdf-backend.dtx 2024/02/02 | 434 | graphics/pstricks/contrib/pst-solarsystem/Changes -2024/02/02 | 431832 | systems/texlive/tlnet/archive/texlive-scripts.doc.r69655.tar.xz -2024/02/02 | 415 | macros/latex/contrib/hvqrurl/Changes +2024/02/02 | 42254 | macros/latex/contrib/tagpdf/tagpdf-user.dtx 2024/02/02 | 4151568 | systems/texlive/tlnet/archive/novel.doc.r69658.tar.xz -2024/02/02 | 4116473 | biblio/ctan-bibdata.zip +2024/02/02 | 4102 | macros/latex/contrib/tagpdf/ex-alt-actualtext.tex 2024/02/02 | 404200 | systems/texlive/tlnet/archive/schooldocs.doc.r69659.tar.xz +2024/02/02 | 3959 | macros/latex/contrib/tagpdf/tagpdf.ins 2024/02/02 | 3905 | support/texdoc/doc/texdoc.1 2024/02/02 | 3884 | fonts/simpleicons/enc/simpleiconsfive.enc 2024/02/02 | 3871 | support/texdoc/README.md 2024/02/02 | 3861 | fonts/simpleicons/enc/simpleiconsone.enc +2024/02/02 | 37498 | macros/latex/contrib/tagpdf/tagpdf-data.dtx 2024/02/02 | 3732 | fonts/simpleicons/enc/simpleiconseight.enc 2024/02/02 | 3708 | fonts/simpleicons/enc/simpleiconsthree.enc -2024/02/02 | 3708800 | biblio/ctan-bibdata/ctan.pdf 2024/02/02 | 3675 | fonts/simpleicons/enc/simpleiconsseven.enc 2024/02/02 | 3672 | fonts/simpleicons/enc/simpleiconsonezero.enc 2024/02/02 | 36424 | support/texdoc/doc/texdoc.tex @@ -64,22 +230,24 @@ 2024/02/02 | 361796 | systems/texlive/tlnet/archive/texlive.infra.r69666.tar.xz 2024/02/02 | 3566 | fonts/simpleicons/enc/simpleiconsfour.enc 2024/02/02 | 3561 | fonts/simpleicons/enc/simpleiconsnine.enc -2024/02/02 | 351 | macros/latex/contrib/hvqrurl/README 2024/02/02 | 35147 | support/texdoc/COPYING +2024/02/02 | 34815 | macros/latex/contrib/tagpdf/tagpdf-checks.dtx 2024/02/02 | 3466 | fonts/simpleicons/enc/simpleiconssix.enc 2024/02/02 | 3465 | graphics/pstricks/contrib/pst-solarsystem/doc/pst-solarsystem-doc.tex 2024/02/02 | 346146 | macros/latex/contrib/docshots.zip +2024/02/02 | 34295 | macros/latex/contrib/tagpdf/ex-alt-actualtext.pdf 2024/02/02 | 342675 | macros/latex/contrib/docshots/docshots.pdf 2024/02/02 | 34154 | macros/latex/contrib/morewrites/primargs.dtx 2024/02/02 | 3352 | macros/latex/contrib/litetable/doc/litetable-demo2.tex 2024/02/02 | 3203 | support/texdoc/script/texdoclib-alias.tlu 2024/02/02 | 3188 | macros/latex/contrib/litetable/doc/litetable-demo1.tex +2024/02/02 | 31552 | macros/latex/contrib/tagpdf/ex-list.pdf 2024/02/02 | 3060 | systems/texlive/tlnet/archive/schooldocs.r69659.tar.xz 2024/02/02 | 3059 | fonts/simpleicons/enc/simpleiconsonetwo.enc 2024/02/02 | 294196 | macros/latex/contrib/litetable/doc/litetable-cn.pdf 2024/02/02 | 29411352 | systems/win32/miktex/source/miktex-24.1.tar.xz 2024/02/02 | 287634 | fonts/simpleicons/tex/simpleiconsglyphs-pdftex.tex -2024/02/02 | 2843688 | biblio/ctan-bibdata/ctan.bib +2024/02/02 | 28595 | macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx 2024/02/02 | 281358 | fonts/simpleicons/tex/simpleiconsglyphs-xeluatex.tex 2024/02/02 | 274 | fonts/simpleicons/tex/usimpleiconsonezero.fd 2024/02/02 | 270 | macros/latex/contrib/docshots/DEPENDS.txt @@ -89,44 +257,60 @@ 2024/02/02 | 264 | fonts/simpleicons/tex/usimpleiconsseven.fd 2024/02/02 | 264 | fonts/simpleicons/tex/usimpleiconseight.fd 2024/02/02 | 2634 | macros/latex/contrib/docshots/docshots.ins -2024/02/02 | 26035475 | systems/texlive/tlnet/install-tl.zip 2024/02/02 | 259 | fonts/simpleicons/tex/usimpleiconsnine.fd 2024/02/02 | 259 | fonts/simpleicons/tex/usimpleiconsfour.fd 2024/02/02 | 259 | fonts/simpleicons/tex/usimpleiconsfive.fd 2024/02/02 | 254 | fonts/simpleicons/tex/usimpleiconstwo.fd 2024/02/02 | 254 | fonts/simpleicons/tex/usimpleiconssix.fd 2024/02/02 | 254 | fonts/simpleicons/tex/usimpleiconsone.fd -2024/02/02 | 2544616 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +2024/02/02 | 24880 | macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.pdf +2024/02/02 | 24806 | macros/latex/contrib/tagpdf/ex-structure-obsolete.pdf 2024/02/02 | 24629 | support/texdoc/script/texdoclib-search.tlu 2024/02/02 | 2454480 | fonts/simpleicons/doc/simpleicons.pdf 2024/02/02 | 2368928 | fonts/simpleicons/opentype/SimpleIcons.otf +2024/02/02 | 23311 | macros/latex/contrib/tagpdf/acrobat.png 2024/02/02 | 22838 | macros/latex/contrib/docshots/docshots.dtx +2024/02/02 | 2280 | macros/latex/contrib/tagpdf/tagpdf-code.tex +2024/02/02 | 22527 | macros/latex/contrib/tagpdf/ex-AF-file.pdf +2024/02/02 | 22002 | macros/latex/contrib/tagpdf/tagpdf.dtx 2024/02/02 | 2192050 | fonts/simpleicons/type1/SimpleIcons.pfb +2024/02/02 | 21736 | macros/latex/contrib/randexam/randexam.tex 2024/02/02 | 21717 | support/texdoc/script/texdoclib-config.tlu -2024/02/02 | 21031765 | systems/texlive/tlnet/install-tl-windows.exe +2024/02/02 | 2115 | macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.tex +2024/02/02 | 2048 | macros/latex/contrib/exesheet/exesheet.ins 2024/02/02 | 203908 | systems/texlive/tlnet/archive/texlive.infra.doc.r69666.tar.xz -2024/02/02 | 2026 | macros/latex/contrib/hvqrurl/latex/hvqrurl.sty +2024/02/02 | 2022 | macros/latex/contrib/tagpdf/link-figure-input.tex 2024/02/02 | 2020 | systems/texlive/tlnet/archive/collection-fontsextra.r69663.tar.xz -2024/02/02 | 19313156 | systems/texlive/tlnet/tlpkg/texlive.tlpdb +2024/02/02 | 20066 | macros/latex/contrib/tagpdf/ex-formula-problem.pdf +2024/02/02 | 19589 | macros/latex/contrib/tagpdf/ex-tagpdf-template.pdf +2024/02/02 | 19236 | macros/latex/contrib/tagpdf/ex-softhyphen.pdf +2024/02/02 | 19014 | macros/latex/contrib/tagpdf/ex-attribute.pdf +2024/02/02 | 18461 | macros/latex/contrib/tagpdf/ex-patch-sectioning-koma-luatex.pdf 2024/02/02 | 1812 | fonts/simpleicons/doc/simpleicons.tex 2024/02/02 | 180356 | macros/latex/contrib/litetable/doc/litetable-en.pdf +2024/02/02 | 17742 | macros/latex/contrib/tagpdf/ex-alt-actualtext-luatex.pdf 2024/02/02 | 17409 | support/texdoc/texdoc.cnf +2024/02/02 | 1730 | macros/latex/contrib/tagpdf/tagpdf.bib 2024/02/02 | 171449 | fonts/simpleicons/doc/bindings.tex -2024/02/02 | 1678 | biblio/ctan-bibdata/biblatex-ctan/ctan.bbx +2024/02/02 | 17038 | macros/latex/contrib/tagpdf/tagpdf-tree.dtx +2024/02/02 | 1673023 | macros/latex/contrib/tagpdf/tagpdf-code.pdf +2024/02/02 | 16524 | macros/latex/contrib/tagpdf/ex-spaceglyph-listings.pdf +2024/02/02 | 16348 | macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx 2024/02/02 | 1632 | fonts/simpleicons/tex/simpleicons.sty 2024/02/02 | 161127 | support/texdoc.zip +2024/02/02 | 15940 | macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx 2024/02/02 | 154 | systems/texlive/tlnet/update-tlmgr-r69666.exe.sha512 2024/02/02 | 153 | systems/texlive/tlnet/update-tlmgr-r69666.sh.sha512 -2024/02/02 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 -2024/02/02 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 2024/02/02 | 1496 | systems/texlive/tlnet/archive/leftindex.r69660.tar.xz -2024/02/02 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 -2024/02/02 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +2024/02/02 | 1445 | macros/latex/contrib/tagpdf/ex-structure-obsolete.tex 2024/02/02 | 1419 | macros/latex/contrib/docshots/README.md +2024/02/02 | 141163 | macros/latex/contrib/tagpdf/pac3.PNG 2024/02/02 | 1382 | support/texdoc/script/texdoc.tlu 2024/02/02 | 1362899 | macros/latex/contrib/morewrites.zip 2024/02/02 | 1353 | fonts/simpleicons/map/simpleicons.map +2024/02/02 | 1325 | macros/latex/contrib/tagpdf/ex-attribute.tex 2024/02/02 | 1320 | support/texdoc/script/texdoclib.tlu +2024/02/02 | 126349 | macros/latex/contrib/tagpdf/tagpdf.tex 2024/02/02 | 125903 | graphics/pstricks/base/generic/pstricks.tex 2024/02/02 | 1236 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsnine.tfm 2024/02/02 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconstwo.tfm @@ -140,18 +324,20 @@ 2024/02/02 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsfive.tfm 2024/02/02 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconseight.tfm 2024/02/02 | 1207 | fonts/simpleicons/README.md +2024/02/02 | 1194 | macros/latex/contrib/tagpdf/README.md 2024/02/02 | 11884 | macros/latex/contrib/litetable/tex/litetable.cls 2024/02/02 | 117280 | systems/texlive/tlnet/archive/latexmk.r69657.tar.xz 2024/02/02 | 116428 | systems/texlive/tlnet/archive/novel.r69658.tar.xz 2024/02/02 | 11629 | support/texdoc/script/texdoclib-view.tlu +2024/02/02 | 1160 | macros/latex/contrib/tagpdf/ex-AF-file.tex 2024/02/02 | 11568 | macros/latex/contrib/litetable/doc/litetable-en.tex -2024/02/02 | 115432 | macros/latex/contrib/hvqrurl.zip -2024/02/02 | 114060 | systems/texlive/tlnet/archive/texlive-scripts.r69655.tar.xz 2024/02/02 | 11388 | systems/texlive/tlnet/archive/schooldocs.source.r69659.tar.xz -2024/02/02 | 113856 | macros/latex/contrib/hvqrurl/doc/hvqrurl.pdf 2024/02/02 | 11336 | graphics/pstricks/contrib/pst-solarsystem/tex/pst-solarsystem.tex +2024/02/02 | 1103561 | macros/latex/contrib/tagpdf/tagpdf.pdf 2024/02/02 | 10863 | support/texdoc/script/texdoclib-score.tlu 2024/02/02 | 1083 | macros/latex/contrib/docshots/LICENSE.txt +2024/02/02 | 1063 | macros/latex/contrib/tagpdf/ex-list.tex +2024/02/02 | 10522 | macros/latex/contrib/randexam/randexam-a-answer.tex 2024/02/02 | 10441 | support/texdoc/script/texdoclib-const.tlu 2024/02/02 | 1020072 | systems/texlive/tlnet/archive/europecv.doc.r69661.tar.xz 2024/02/02 | 10135 | macros/latex/contrib/litetable/doc/litetable-cn.tex @@ -168,7 +354,6 @@ 2024/02/01 | 786056 | macros/latex/contrib/refstyle.zip 2024/02/01 | 765 | macros/latex/contrib/europecv/examples/bulgarian-koi8-r.tex 2024/02/01 | 7459 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl -2024/02/01 | 736692 | systems/texlive/tlnet/archive/refstyle.doc.r69648.tar.xz 2024/02/01 | 72856 | systems/texlive/tlnet/archive/xgreek.doc.r69652.tar.xz 2024/02/01 | 7191 | macros/latex/contrib/unbtex/unbtex-example/referencias.bib 2024/02/01 | 709586 | language/korean/kotex-oblivoir.zip @@ -180,7 +365,6 @@ 2024/02/01 | 6593 | macros/latex/contrib/europecv/templates/europecv_photo.jpg 2024/02/01 | 622548 | systems/texlive/tlnet/archive/easybook.doc.r69650.tar.xz 2024/02/01 | 618378 | macros/latex/contrib/europecv/europecv.pdf -2024/02/01 | 6136 | systems/texlive/tlnet/archive/refstyle.r69648.tar.xz 2024/02/01 | 60485 | macros/latex/contrib/europecv/europecv.tex 2024/02/01 | 60466 | macros/latex/contrib/unbtex/unbtexcite/unbtex-alf-en.bst 2024/02/01 | 60311 | macros/latex/contrib/unbtex/unbtex-example/figuras/coresunb.pdf @@ -214,12 +398,10 @@ 2024/02/01 | 373 | macros/latex/contrib/unbtex/unbtex-example/codigos/controle.m 2024/02/01 | 35428 | macros/latex/contrib/europecv/templates/cv_template_en.pdf 2024/02/01 | 3438 | macros/latex/contrib/europecv/ecvgr.def -2024/02/01 | 3392 | systems/texlive/tlnet/archive/litetable.r69647.tar.xz 2024/02/01 | 33717 | macros/latex/contrib/unbtex/unbtex.cls 2024/02/01 | 3356 | macros/latex/contrib/europecv/examples/EuropeFlagCMYK-eps-converted-to.pdf 2024/02/01 | 3220 | macros/latex/contrib/unbtex/unbtex-example/apendice-a.tex 2024/02/01 | 303096 | macros/latex/contrib/refstyle/refconfig.pdf -2024/02/01 | 280936 | systems/texlive/tlnet/archive/litetable.doc.r69647.tar.xz 2024/02/01 | 2690 | macros/latex/contrib/europecv/examples/europass-cv.tex 2024/02/01 | 26706 | macros/latex/contrib/europecv/europecv.cls 2024/02/01 | 26568306 | fonts/ysabeau.zip @@ -237,7 +419,6 @@ 2024/02/01 | 2194 | macros/latex/contrib/europecv/ecvsk.def 2024/02/01 | 21898 | macros/latex/contrib/unbtex/unbtex-example/figuras/circuito.pdf 2024/02/01 | 2182 | macros/latex/contrib/europecv/ecvcs.def -2024/02/01 | 21792 | systems/texlive/tlnet/archive/refstyle.source.r69648.tar.xz 2024/02/01 | 2176 | macros/latex/contrib/europecv/ecves.def 2024/02/01 | 2173 | macros/latex/contrib/europecv/ecvsv.def 2024/02/01 | 2166 | macros/latex/contrib/europecv/ecvfi.def @@ -428,7 +609,6 @@ 2024/01/30 | 52553 | support/bib2gls/examples/sample-hierarchical.pdf 2024/01/30 | 5245 | macros/latex/contrib/achemso/achemso-demo.bib 2024/01/30 | 52450 | support/bib2gls/bib2gls-en.xml -2024/01/30 | 5156 | systems/texlive/tlnet/archive/pst-solarsystem.r69627.tar.xz 2024/01/30 | 51552 | support/bib2gls/examples/sample-authors.pdf 2024/01/30 | 51296 | support/splint/tex/yymisc.sty 2024/01/30 | 5071 | support/splint/tex/yystype.sty @@ -447,7 +627,6 @@ 2024/01/30 | 464 | macros/latex/contrib/achemso/LICENSE.md 2024/01/30 | 46395 | support/splint/examples/ld/ldgram.w 2024/01/30 | 4593 | support/splint/INSTALL -2024/01/30 | 454548 | systems/texlive/tlnet/archive/pst-solarsystem.doc.r69627.tar.xz 2024/01/30 | 451004 | fonts/kpfonts-otf/fonts/KpMath-Light.otf 2024/01/30 | 44643 | support/bib2gls/examples/sample-units3.pdf 2024/01/30 | 4446 | support/bib2gls/examples/people.bib @@ -564,6 +743,7 @@ 2024/01/30 | 176787 | fonts/kpfonts-otf/doc/Kpfonts-OTF-Doc-English.pdf 2024/01/30 | 1740 | support/bib2gls/examples/sample-units3.tex 2024/01/30 | 1734 | support/bib2gls/examples/sample-media.tex +2024/01/30 | 171 | macros/latex/contrib/randexam/randexam-b-answer.tex 2024/01/30 | 1719 | support/splint/tex/btokenset.sty 2024/01/30 | 1717 | support/splint/examples/ld/ldtexlex.sty 2024/01/30 | 17108 | support/splint/tex/fonts/idssbx7.vpl @@ -684,10 +864,8 @@ 2024/01/29 | 15670 | macros/latex/contrib/mhchem/hpstatement.sty 2024/01/29 | 151648 | systems/texlive/tlnet/archive/texlive-msg-translations.r69618.tar.xz 2024/01/29 | 1421999 | language/japanese/BX/bxjscls.zip -2024/01/29 | 1348 | systems/texlive/tlnet/archive/hvqrurl.r69621.tar.xz 2024/01/29 | 133877 | macros/latex/contrib/mhchem/mhchem.sty 2024/01/29 | 1184230 | support/TeX4ht/source/tex4ht-4ht.tex -2024/01/29 | 113684 | systems/texlive/tlnet/archive/hvqrurl.doc.r69621.tar.xz 2024/01/29 | 100832 | macros/latex/contrib/mhchem/hpstatement.inc/hpstatement-ro.inc.sty 2024/01/29 | 100186 | macros/latex/contrib/mhchem/hpstatement.inc/hpstatement-el.inc.sty 2024/01/28 | 954023 | systems/win32/miktex/tm/packages/tocdata__doc.tar.lzma @@ -779,13 +957,10 @@ 2024/01/28 | 5249 | systems/win32/miktex/tm/packages/metalogox.tar.lzma 2024/01/28 | 522101 | biblio/bibtex/bibtex-x.zip 2024/01/28 | 508 | systems/texlive/tlnet/archive/collection-music.r69613.tar.xz -2024/01/28 | 50412 | macros/latex/contrib/randexam/randexam.pdf 2024/01/28 | 5006 | systems/win32/miktex/tm/packages/medmath.tar.lzma 2024/01/28 | 499646 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma 2024/01/28 | 49701 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma 2024/01/28 | 4953 | systems/win32/miktex/tm/packages/antique-spanish-units__source.tar.lzma -2024/01/28 | 49496 | macros/latex/contrib/randexam/randexam-a-answer.pdf -2024/01/28 | 49469 | macros/latex/contrib/randexam/randexam-b-answer.pdf 2024/01/28 | 4861878 | systems/win32/miktex/tm/packages/acmart__doc.tar.lzma 2024/01/28 | 48282 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma 2024/01/28 | 47389 | systems/texlive/tlnet/tlpkg/translations/messages.pot @@ -812,8 +987,6 @@ 2024/01/28 | 4237 | systems/win32/miktex/tm/packages/moloch.tar.lzma 2024/01/28 | 42061 | systems/win32/miktex/tm/packages/nicematrix.tar.lzma 2024/01/28 | 419004 | systems/win32/miktex/tm/packages/hyperref__source.tar.lzma -2024/01/28 | 41288 | macros/latex/contrib/randexam/randexam-a-blank.pdf -2024/01/28 | 41229 | macros/latex/contrib/randexam/randexam-b-blank.pdf 2024/01/28 | 40547 | systems/win32/miktex/tm/packages/easybook__source.tar.lzma 2024/01/28 | 4041 | systems/win32/miktex/tm/packages/babel-scottish__source.tar.lzma 2024/01/28 | 40382 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma @@ -822,7 +995,6 @@ 2024/01/28 | 395726 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma 2024/01/28 | 39384 | systems/win32/miktex/tm/packages/memoize__source.tar.lzma 2024/01/28 | 37617 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma -2024/01/28 | 37500 | macros/latex/contrib/randexam/randexam.cls 2024/01/28 | 37213 | systems/win32/miktex/tm/packages/mcf2graph__source.tar.lzma 2024/01/28 | 36987 | systems/win32/miktex/tm/packages/tagpdf.tar.lzma 2024/01/28 | 36836 | systems/texlive/tlnet/archive/tagpdf.r69612.tar.xz @@ -843,8 +1015,6 @@ 2024/01/28 | 330113 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma 2024/01/28 | 32864 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma 2024/01/28 | 324672 | systems/win32/miktex/tm/packages/pdfpages__doc.tar.lzma -2024/01/28 | 32227521 | info/symbols/comprehensive/symbols-letter.pdf -2024/01/28 | 32147517 | info/symbols/comprehensive/symbols-a4.pdf 2024/01/28 | 32088 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma 2024/01/28 | 31565 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma 2024/01/28 | 3130947 | systems/win32/miktex/tm/packages/memoir__doc.tar.lzma @@ -878,7 +1048,6 @@ 2024/01/28 | 245475 | systems/win32/miktex/tm/packages/proflycee__source.tar.lzma 2024/01/28 | 242154 | systems/win32/miktex/tm/packages/tagpdf__source.tar.lzma 2024/01/28 | 24165 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma -2024/01/28 | 241058 | macros/latex/contrib/randexam.zip 2024/01/28 | 23952 | systems/win32/miktex/tm/packages/proof-at-the-end__source.tar.lzma 2024/01/28 | 239141 | systems/win32/miktex/tm/packages/bclogo.tar.lzma 2024/01/28 | 23294 | systems/win32/miktex/tm/packages/miktex-misc.tar.lzma @@ -909,7 +1078,6 @@ 2024/01/28 | 1975 | systems/win32/miktex/tm/packages/beamerthemeconcrete__source.tar.lzma 2024/01/28 | 19553 | systems/win32/miktex/tm/packages/attachfile2__source.tar.lzma 2024/01/28 | 19429 | systems/win32/miktex/tm/packages/dtxtut__source.tar.lzma -2024/01/28 | 19403 | macros/latex/contrib/randexam/randexam.tex 2024/01/28 | 1919 | systems/win32/miktex/tm/packages/medmath__source.tar.lzma 2024/01/28 | 1828 | systems/texlive/tlnet/archive/babel-scottish.r69610.tar.xz 2024/01/28 | 182761 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma @@ -965,7 +1133,6 @@ 2024/01/28 | 106552 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma 2024/01/28 | 106242 | systems/win32/miktex/tm/packages/newtxsf.tar.lzma 2024/01/28 | 105710 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma -2024/01/28 | 10524 | macros/latex/contrib/randexam/randexam-a-answer.tex 2024/01/28 | 104470 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma 2024/01/28 | 104252 | systems/texlive/tlnet/tlpkg/translations/sr.po 2024/01/28 | 104114 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma @@ -974,352 +1141,3 @@ 2024/01/28 | 10213 | systems/win32/miktex/tm/packages/metalogox__source.tar.lzma 2024/01/28 | 1004190 | systems/win32/miktex/tm/packages/scrabble__doc.tar.lzma 2024/01/28 | 1003851 | systems/win32/miktex/tm/packages/mcf2graph__doc.tar.lzma -2024/01/27 | 988 | support/texlab/crates/references/src/label.rs -2024/01/27 | 987 | support/texlab/crates/commands/src/change_env.rs -2024/01/27 | 9844 | systems/texlive/tlnet/archive/metalogox.source.r69601.tar.xz -2024/01/27 | 967 | support/texlab/crates/completion/src/util.rs -2024/01/27 | 9404814 | systems/win32/miktex/tm/packages/miktex-qt6-bin-x64.tar.lzma -2024/01/27 | 927 | support/texlab/crates/texlab/src/features/symbols.rs -2024/01/27 | 9194 | support/texlab/crates/symbols/src/workspace/tests.rs -2024/01/27 | 9070 | support/texlab/crates/symbols/src/document/tex.rs -2024/01/27 | 901 | support/texlab/crates/highlights/src/tests.rs -2024/01/27 | 8990 | macros/latex/contrib/proflycee/tex/ProfLycee.sty -2024/01/27 | 8955 | support/texlab/crates/bibtex-utils/src/field/text.rs -2024/01/27 | 89179 | systems/win32/miktex/tm/packages/miktex-png-bin-x64-2.9.tar.lzma -2024/01/27 | 8888 | macros/latex/contrib/regulatory/tex/fc-dutch.def -2024/01/27 | 8847 | support/texlab/crates/texlab/src/server/options.rs -2024/01/27 | 8840 | systems/win32/miktex/tm/packages/miktex-md5-bin-x64-2.9.tar.lzma -2024/01/27 | 880 | support/texlab/crates/definition/src/citation.rs -2024/01/27 | 875 | support/texlab/crates/citeproc/src/lib.rs -2024/01/27 | 850 | support/texlab/crates/hover/src/label.rs -2024/01/27 | 848 | support/texlab/crates/rename/src/label.rs -2024/01/27 | 84360 | systems/win32/miktex/tm/packages/miktex-freeglut-bin-x64-2.9.tar.lzma -2024/01/27 | 834732 | systems/win32/miktex/tm/packages/miktex-pdftex-bin-x64-2.9.tar.lzma -2024/01/27 | 82942 | systems/win32/miktex/tm/packages/miktex-fonts-bin-x64-2.9.tar.lzma -2024/01/27 | 827 | support/texlab/crates/inlay-hints/src/lib.rs -2024/01/27 | 820 | support/texlab/crates/distro/src/texlive.rs -2024/01/27 | 82041 | systems/win32/miktex/tm/packages/miktex-lzma-bin-x64-2.9.tar.lzma -2024/01/27 | 806 | support/texlab/crates/highlights/src/label.rs -2024/01/27 | 804 | support/texlab/crates/texlab/src/features/formatting/bibtex_internal.rs -2024/01/27 | 79582 | systems/win32/miktex/tm/packages/miktex-bibtex-bin-x64-2.9.tar.lzma -2024/01/27 | 79035 | systems/win32/miktex/tm/packages/miktex-fmt-bin-x64-2.9.tar.lzma -2024/01/27 | 780213 | systems/win32/miktex/tm/packages/miktex-harfbuzz-bin-x64-2.9.tar.lzma -2024/01/27 | 77648 | systems/win32/miktex/tm/packages/miktex-web-bin-x64-2.9.tar.lzma -2024/01/27 | 760 | support/texlab/crates/texlab/src/features/rename.rs -2024/01/27 | 7581234 | support/texlab.zip -2024/01/27 | 75544 | systems/win32/miktex/tm/packages/miktex-ps2pk-bin-x64-2.9.tar.lzma -2024/01/27 | 74165 | systems/win32/miktex/tm/packages/miktex-tex4ht-bin-x64-2.9.tar.lzma -2024/01/27 | 73463 | systems/win32/miktex/tm/packages/miktex-graphite2-bin-x64-2.9.tar.lzma -2024/01/27 | 7344 | systems/texlive/tlnet/archive/proof-at-the-end.r69602.tar.xz -2024/01/27 | 725 | support/texlab/crates/hover/src/package.rs -2024/01/27 | 712416 | systems/win32/miktex/tm/packages/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma -2024/01/27 | 710 | support/texlab/crates/distro/src/kpsewhich.rs -2024/01/27 | 7092 | support/texlab/crates/hover/src/tests.rs -2024/01/27 | 70843 | systems/win32/miktex/tm/packages/miktex-texify-bin-x64-2.9.tar.lzma -2024/01/27 | 699 | support/texlab/crates/completion/src/providers.rs -2024/01/27 | 6970534 | support/texlab/crates/completion-data/data/completion.json.gz -2024/01/27 | 6963 | support/texlab/crates/syntax/src/bibtex/cst.rs -2024/01/27 | 694 | support/texlab/crates/syntax/src/bibtex.rs -2024/01/27 | 691 | support/texlab/crates/completion/Cargo.toml -2024/01/27 | 69116 | systems/texlive/tlnet/archive/memoir.r69600.tar.xz -2024/01/27 | 689 | support/texlab/crates/syntax/src/latex.rs -2024/01/27 | 6870 | support/texlab/crates/bibfmt/src/lib.rs -2024/01/27 | 6858 | macros/latex/contrib/babel-contrib/scottish/scottish.dtx -2024/01/27 | 68114 | systems/win32/miktex/tm/packages/miktex-bibarts-bin-x64-2.9.tar.lzma -2024/01/27 | 6723 | support/texlab/crates/texlab/src/util/from_proto.rs -2024/01/27 | 669 | support/texlab/crates/links/src/include.rs -2024/01/27 | 6528 | support/texlab/crates/line-index/src/lib.rs -2024/01/27 | 65111 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin-x64.tar.lzma -2024/01/27 | 64793 | systems/win32/miktex/tm/packages/miktex-ttf2pk2-bin-x64-2.9.tar.lzma -2024/01/27 | 6364 | systems/texlive/tlnet/archive/babel-norsk.source.r69603.tar.xz -2024/01/27 | 631 | support/texlab/crates/diagnostics/Cargo.toml -2024/01/27 | 623161 | macros/latex/contrib/regulatory.zip -2024/01/27 | 6210 | support/texlab/crates/base-db/src/document.rs -2024/01/27 | 619 | support/texlab/texlab.1 -2024/01/27 | 619586 | systems/win32/miktex/tm/packages/miktex-log4cxx-bin-x64-2.9.tar.lzma -2024/01/27 | 61847 | systems/win32/miktex/tm/packages/miktex-psutils-bin-x64-2.9.tar.lzma -2024/01/27 | 617 | support/texlab/crates/hover/src/field_type.rs -2024/01/27 | 616 | support/texlab/crates/syntax/src/bibtex/kind.rs -2024/01/27 | 613 | support/texlab/crates/highlights/src/lib.rs -2024/01/27 | 60 | support/texlab/crates/bibtex-utils/src/field.rs -2024/01/27 | 609839 | systems/win32/miktex/tm/packages/miktex-libressl-bin-x64-2.9.tar.lzma -2024/01/27 | 609777 | systems/win32/miktex/tm/packages/miktex-yap-bin-x64-2.9.tar.lzma -2024/01/27 | 60916 | systems/win32/miktex/tm/packages/miktex-cjkutils-bin-x64-2.9.tar.lzma -2024/01/27 | 59661 | systems/win32/miktex/tm/packages/miktex-xml2pmx-bin-x64.tar.lzma -2024/01/27 | 5942 | support/texlab/crates/base-db/src/graph.rs -2024/01/27 | 5900 | support/texlab/crates/base-db/src/util/label.rs -2024/01/27 | 58408 | support/texlab/crates/base-db/src/data.rs -2024/01/27 | 5805 | support/texlab/crates/diagnostics/src/tests.rs -2024/01/27 | 57538 | systems/win32/miktex/tm/packages/miktex-mpmcli-bin-x64-2.9.tar.lzma -2024/01/27 | 566 | support/texlab/crates/texlab/src/features/folding.rs -2024/01/27 | 5657 | support/texlab/crates/symbols/src/workspace/sort.rs -2024/01/27 | 560 | support/texlab/crates/base-db/src/lib.rs -2024/01/27 | 559 | support/texlab/crates/commands/Cargo.toml -2024/01/27 | 555 | support/texlab/crates/base-db/Cargo.toml -2024/01/27 | 5553 | support/texlab/crates/base-db/src/util/queries.rs -2024/01/27 | 55343 | systems/win32/miktex/tm/packages/miktex-synctex-bin-x64-2.9.tar.lzma -2024/01/27 | 5533 | support/texlab/crates/completion/src/lib.rs -2024/01/27 | 54784 | systems/win32/miktex/tm/packages/miktex-dvicopy-bin-x64-2.9.tar.lzma -2024/01/27 | 541 | support/texlab/crates/hover/src/entry_type.rs -2024/01/27 | 5416 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex -2024/01/27 | 5386 | support/texlab/crates/parser/src/latex/lexer/commands.rs -2024/01/27 | 5385 | support/texlab/crates/parser/src/build_log.rs -2024/01/27 | 533 | support/texlab/crates/texlab/src/features/definition.rs -2024/01/27 | 5283 | support/texlab/crates/test-utils/src/fixture.rs -2024/01/27 | 52748 | systems/win32/miktex/tm/packages/miktex-m-tx-bin-x64-2.9.tar.lzma -2024/01/27 | 52599 | macros/latex/contrib/regulatory/doc/example2-nl.pdf -2024/01/27 | 52555 | macros/latex/contrib/regulatory/doc/example2-en.pdf -2024/01/27 | 505 | support/texlab/crates/texlab/src/features/highlight.rs -2024/01/27 | 5056 | systems/texlive/tlnet/archive/metalogox.r69601.tar.xz -2024/01/27 | 504 | support/texlab/crates/syntax/src/lib.rs -2024/01/27 | 503992 | systems/win32/miktex/tm/packages/miktex-ptex-bin-x64.tar.lzma -2024/01/27 | 499 | support/texlab/crates/symbols/Cargo.toml -2024/01/27 | 49966 | systems/win32/miktex/tm/packages/miktex-expat-bin-x64-2.9.tar.lzma -2024/01/27 | 492 | support/texlab/crates/bibtex-utils/Cargo.toml -2024/01/27 | 49003 | systems/win32/miktex/tm/packages/miktex-mtprint-bin-x64-2.9.tar.lzma -2024/01/27 | 488 | support/texlab/crates/citeproc/Cargo.toml -2024/01/27 | 483 | support/texlab/crates/hover/Cargo.toml -2024/01/27 | 48200 | systems/win32/miktex/tm/packages/miktex-dvipng-bin-x64-2.9.tar.lzma -2024/01/27 | 4746 | support/texlab/crates/completion/src/providers/include.rs -2024/01/27 | 473821 | systems/win32/miktex/tm/packages/miktex-doc.tar.lzma -2024/01/27 | 4730 | support/texlab/crates/citeproc/src/entry.rs -2024/01/27 | 467 | support/texlab/crates/texlab/src/features/link.rs -2024/01/27 | 464992 | systems/texlive/tlnet/archive/proof-at-the-end.doc.r69602.tar.xz -2024/01/27 | 46166 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma -2024/01/27 | 460 | support/texlab/crates/texlab/src/features/inlay_hint.rs -2024/01/27 | 45704 | systems/win32/miktex/tm/packages/miktex-mthelp-bin-x64-2.9.tar.lzma -2024/01/27 | 45437 | macros/latex/contrib/proflycee/tex/proflycee-tools-arithm.tex -2024/01/27 | 45143 | systems/win32/miktex/tm/packages/miktex-upmendex-bin-x64.tar.lzma -2024/01/27 | 44921 | systems/win32/miktex/tm/packages/miktex-gsf2pk-bin-x64-2.9.tar.lzma -2024/01/27 | 445 | support/texlab/crates/base-db/src/util/regex_filter.rs -2024/01/27 | 444 | support/texlab/crates/texlab/benches/bench_main.rs -2024/01/27 | 44475 | macros/latex/contrib/regulatory/doc/regulatory.tex -2024/01/27 | 44454 | support/texlab/crates/parser/src/build_log/tests.rs -2024/01/27 | 44178 | support/texlab/crates/completion/src/tests.rs -2024/01/27 | 44119 | support/texlab/Cargo.lock -2024/01/27 | 4387 | support/texlab/crates/base-db/src/config.rs -2024/01/27 | 43854 | systems/win32/miktex/tm/packages/miktex-patgen-bin-x64.tar.lzma -2024/01/27 | 4297 | support/texlab/crates/completion/src/providers/environment.rs -2024/01/27 | 4254 | support/texlab/crates/completion/src/providers/command.rs -2024/01/27 | 4250 | macros/latex/contrib/babel-contrib/scottish/scottish.ins -2024/01/27 | 4156 | systems/texlive/tlnet/archive/scrabble.r69599.tar.xz -2024/01/27 | 41169 | systems/win32/miktex/tm/packages/miktex-chktex-bin-x64-2.9.tar.lzma -2024/01/27 | 409 | support/texlab/crates/texlab/src/features/reference.rs -2024/01/27 | 408 | macros/latex/contrib/babel-contrib/scottish/README.md -2024/01/27 | 39988 | support/texlab/crates/texlab/src/server.rs -2024/01/27 | 398928 | systems/texlive/tlnet/archive/metalogox.doc.r69601.tar.xz -2024/01/27 | 395146 | systems/win32/miktex/tm/packages/miktex-cairo-bin-x64-2.9.tar.lzma -2024/01/27 | 3944 | systems/texlive/tlnet/archive/babel-samin.source.r69604.tar.xz -2024/01/27 | 3901 | support/texlab/crates/commands/src/fwd_search.rs -2024/01/27 | 389 | support/texlab/crates/commands/src/lib.rs -2024/01/27 | 3838 | support/texlab/crates/commands/src/build.rs -2024/01/27 | 3828 | support/texlab/README.md -2024/01/27 | 38243 | systems/win32/miktex/source/CHANGELOG.md -2024/01/27 | 3801 | support/texlab/crates/diagnostics/src/chktex.rs -2024/01/27 | 380190 | support/texlab/images/demo.gif -2024/01/27 | 378 | support/texlab/crates/definition/Cargo.toml -2024/01/27 | 37684 | systems/win32/miktex/tm/packages/miktex-posix-bin-x64-2.9.tar.lzma -2024/01/27 | 375 | support/texlab/crates/parser/Cargo.toml -2024/01/27 | 37577 | systems/win32/miktex/tm/packages/miktex-axohelp-bin-x64-2.9.tar.lzma -2024/01/27 | 37350 | systems/win32/miktex/tm/packages/miktex-arctrl-bin-x64-2.9.tar.lzma -2024/01/27 | 3636 | support/texlab/crates/diagnostics/src/grammar/tex.rs -2024/01/27 | 356 | support/texlab/crates/completion-data/Cargo.toml -2024/01/27 | 356081 | systems/win32/miktex/tm/packages/miktex-xetex-bin-x64-2.9.tar.lzma -2024/01/27 | 355 | support/texlab/crates/folding/Cargo.toml -2024/01/27 | 35482 | systems/win32/miktex/tm/packages/miktex-mspack-bin-x64-2.9.tar.lzma -2024/01/27 | 353 | support/texlab/crates/rename/Cargo.toml -2024/01/27 | 3531 | support/texlab/crates/inlay-hints/src/tests.rs -2024/01/27 | 352 | support/texlab/crates/bibfmt/Cargo.toml -2024/01/27 | 35149 | support/texlab/LICENSE -2024/01/27 | 3501 | support/texlab/crates/completion/src/providers/label.rs -2024/01/27 | 348 | support/texlab/crates/inlay-hints/Cargo.toml -2024/01/27 | 34893 | support/texlab/crates/parser/src/latex.rs -2024/01/27 | 3486 | support/texlab/crates/bibfmt/src/tests.rs -2024/01/27 | 347 | support/texlab/Cargo.toml -2024/01/27 | 34596 | systems/win32/miktex/tm/packages/miktex-makeindex-bin-x64-2.9.tar.lzma -2024/01/27 | 34447 | macros/latex/contrib/proflycee/tex/proflycee-tools-complexes.tex -2024/01/27 | 34107 | systems/win32/miktex/tm/packages/miktex-uriparser-bin-x64-2.9.tar.lzma -2024/01/27 | 33914 | support/texlab/CHANGELOG.md -2024/01/27 | 336 | support/texlab/crates/references/Cargo.toml -2024/01/27 | 3364016 | systems/texlive/tlnet/archive/simpleicons.r69598.tar.xz -2024/01/27 | 33635 | systems/win32/miktex/tm/packages/miktex-lacheck-bin-x64-2.9.tar.lzma -2024/01/27 | 334 | support/texlab/crates/texlab/src/features/hover.rs -2024/01/27 | 334484 | systems/win32/miktex/tm/packages/miktex-dvipdfmx-bin-x64-2.9.tar.lzma -2024/01/27 | 330 | support/texlab/crates/test-utils/Cargo.toml -2024/01/27 | 3301 | support/texlab/crates/completion/src/providers/tikz_library.rs -2024/01/27 | 326 | support/texlab/crates/highlights/Cargo.toml -2024/01/27 | 3265 | support/texlab/crates/completion-data/src/lib.rs -2024/01/27 | 3225 | support/texlab/crates/folding/src/lib.rs -2024/01/27 | 3223 | support/texlab/crates/texlab/src/client.rs -2024/01/27 | 31973 | systems/win32/miktex/tm/packages/miktex-autosp-bin-x64-2.9.tar.lzma -2024/01/27 | 31330 | systems/win32/miktex/tm/packages/miktex-bzip2-bin-x64-2.9.tar.lzma -2024/01/27 | 3127948 | systems/texlive/tlnet/archive/memoir.doc.r69600.tar.xz -2024/01/27 | 3093 | support/texlab/crates/commands/src/find_envs.rs -2024/01/27 | 3086 | support/texlab/crates/parser/src/config.rs -2024/01/27 | 3056 | support/texlab/crates/parser/src/latex/lexer/types.rs -2024/01/27 | 305357 | systems/win32/miktex/tm/packages/miktex-freetype2-bin-x64-2.9.tar.lzma -2024/01/27 | 303 | support/texlab/crates/links/Cargo.toml -2024/01/27 | 3018 | support/texlab/crates/references/src/tests.rs -2024/01/27 | 29970 | systems/win32/miktex/tm/packages/miktex-findtexmf-bin-x64-2.9.tar.lzma -2024/01/27 | 293316 | systems/win32/miktex/tm/packages/miktex-mo-bin-x64-2.9.tar.lzma -2024/01/27 | 2899139 | systems/win32/miktex/tm/packages/miktex-texworks-bin-x64-2.9.tar.lzma -2024/01/27 | 288890 | systems/win32/miktex/tm/packages/miktex-metapost-bin-x64-2.9.tar.lzma -2024/01/27 | 2768 | support/texlab/crates/diagnostics/src/manager.rs -2024/01/27 | 275433 | systems/win32/miktex/tm/packages/miktex-console-bin-x64-2.9.tar.lzma -2024/01/27 | 27187 | systems/win32/miktex/tm/packages/miktex-teckit-bin-x64-2.9.tar.lzma -2024/01/27 | 26 | support/texlab/crates/diagnostics/src/grammar.rs -2024/01/27 | 26801 | systems/win32/miktex/tm/packages/miktex-devnag-bin-x64-2.9.tar.lzma -2024/01/27 | 2665 | support/texlab/crates/bibtex-utils/src/field/date.rs -2024/01/27 | 2652 | support/texlab/crates/diagnostics/src/grammar/bib.rs -2024/01/27 | 264 | support/texlab/crates/links/src/lib.rs -2024/01/27 | 26470 | support/texlab/texlab.pdf -2024/01/27 | 263284 | systems/texlive/tlnet/archive/newtxsf.doc.r69597.tar.xz -2024/01/27 | 2612 | support/texlab/crates/completion/src/providers/glossary.rs -2024/01/27 | 2610 | support/texlab/crates/symbols/src/types.rs -2024/01/27 | 2609 | support/texlab/crates/texlab/src/server/extensions.rs -2024/01/27 | 2601 | support/texlab/crates/definition/src/tests.rs -2024/01/27 | 2586 | support/texlab/texlab.tex -2024/01/27 | 25756 | macros/latex/contrib/regulatory/doc/example1-en.pdf -2024/01/27 | 256704 | systems/win32/miktex/tm/packages/miktex-hitex-bin-x64.tar.lzma -2024/01/27 | 25600 | macros/latex/contrib/regulatory/doc/example1-nl.pdf -2024/01/27 | 2543 | support/texlab/crates/distro/src/lib.rs -2024/01/27 | 25417 | systems/win32/miktex/tm/packages/miktex-fribidixetex-bin-x64-2.9.tar.lzma -2024/01/27 | 2504 | systems/texlive/tlnet/archive/babel-norsk.r69603.tar.xz -2024/01/27 | 2493 | support/texlab/crates/completion/src/providers/argument.rs -2024/01/27 | 2481 | support/texlab/crates/completion/src/providers/import.rs -2024/01/27 | 2467 | support/texlab/crates/distro/src/miktex.rs -2024/01/27 | 2459888 | systems/texlive/tlnet/archive/simpleicons.doc.r69598.tar.xz -2024/01/27 | 245831 | systems/win32/miktex/tm/packages/miktex-pmx-bin-x64-2.9.tar.lzma -2024/01/27 | 24173 | systems/win32/miktex/tm/packages/miktex-popt-bin-x64-2.9.tar.lzma -2024/01/27 | 2411 | support/texlab/crates/texlab/src/server/dispatch.rs -2024/01/27 | 240116 | systems/win32/miktex/tm/packages/miktex-curl-bin-x64-2.9.tar.lzma -2024/01/27 | 238556 | systems/win32/miktex/tm/packages/miktex-metafont-bin-x64-2.9.tar.lzma -2024/01/27 | 2371 | support/texlab/crates/base-db/src/semantics/bib.rs -2024/01/27 | 2370 | support/texlab/crates/diagnostics/src/labels.rs -2024/01/27 | 2369 | support/texlab/crates/completion/src/providers/field.rs -2024/01/27 | 2364 | support/texlab/crates/diagnostics/src/types.rs -2024/01/27 | 233 | support/texlab/crates/line-index/Cargo.toml -2024/01/27 | 2320 | support/texlab/crates/completion/src/util/patterns.rs -2024/01/27 | 228133 | macros/latex/contrib/regulatory/doc/regulatory-nl.pdf -2024/01/27 | 227 | support/texlab/crates/syntax/Cargo.toml -2024/01/27 | 227 | support/texlab/crates/distro/Cargo.toml -2024/01/27 | 2276 | support/texlab/crates/completion/src/providers/citations.rs -2024/01/27 | 227678 | macros/latex/contrib/regulatory/doc/regulatory-en.pdf -2024/01/27 | 22762 | biblio/bibtex/bibtex-x/ChangeLog -2024/01/27 | 2267 | support/texlab/crates/diagnostics/src/citations.rs -2024/01/27 | 2265 | support/texlab/crates/texlab/src/util/lsp_enums.rs -2024/01/27 | 22204 | support/texlab/crates/citeproc/src/driver.rs -2024/01/27 | 22200 | macros/latex/contrib/regulatory/tex/regulatory.sty -2024/01/27 | 220970 | systems/win32/miktex/tm/packages/miktex-omegaware-bin-x64-2.9.tar.lzma -2024/01/27 | 2196 | support/texlab/crates/diagnostics/src/build_log.rs -2024/01/27 | 216500 | systems/texlive/tlnet/archive/memoir.source.r69600.tar.xz -2024/01/27 | 2107 | support/texlab/crates/completion/src/providers/color.rs -2024/01/27 | 210249 | systems/win32/miktex/tm/packages/miktex-hunspell-bin-x64-2.9.tar.lzma -2024/01/27 | 20872 | systems/texlive/tlnet/archive/proof-at-the-end.source.r69602.tar.xz -2024/01/27 | 20761 | systems/win32/miktex/tm/packages/miktex-tex2xindy-bin-x64-2.9.tar.lzma -2024/01/27 | 2074 | support/texlab/crates/bibtex-utils/src/field/author.rs -2024/01/27 | 20749 | systems/win32/miktex/tm/packages/miktex-kpathsea-bin-x64-2.9.tar.lzma -2024/01/27 | 2065 | support/texlab/crates/texlab/src/features/formatting/latexindent.rs -2024/01/27 | 204944 | systems/win32/miktex/tm/packages/miktex-pixman-bin-x64-2.9.tar.lzma -2024/01/27 | 2040 | support/texlab/crates/parser/src/latex/lexer.rs -2024/01/27 | 202 | support/texlab/crates/parser/src/lib.rs -2024/01/27 | 2029330 | systems/win32/miktex/tm/packages/miktex-luatex-bin-x64-2.9.tar.lzma -2024/01/27 | 197 | support/texlab/crates/texlab/src/features.rs -2024/01/27 | 1974 | support/texlab/crates/symbols/src/document/bib.rs -2024/01/27 | 1917 | support/texlab/crates/distro/src/file_name_db.rs -2024/01/27 | 1900 | systems/texlive/tlnet/archive/babel-samin.r69604.tar.xz -2024/01/27 | 1898 | support/texlab/crates/texlab/Cargo.toml -2024/01/27 | 182345 | systems/win32/miktex/tm/packages/miktex-mpfr-bin-x64-2.9.tar.lzma -2024/01/27 | 181 | support/texlab/CONTRIBUTING.md -2024/01/27 | 18115 | support/texlab/crates/texlab/src/util/to_proto.rs -2024/01/27 | 18098 | support/texlab/crates/syntax/src/latex/cst.rs -2024/01/27 | 17 | support/texlab/crates/test-utils/src/lib.rs -2024/01/27 | 1798 | support/texlab/crates/inlay-hints/src/label.rs -2024/01/27 | 1780 | support/texlab/crates/parser/src/latexmkrc.rs -2024/01/27 | 176 | support/texlab/crates/base-db/src/util.rs -2024/01/27 | 1760 | support/texlab/crates/citeproc/src/output.rs -2024/01/27 | 175 | support/texlab/crates/symbols/src/lib.rs -2024/01/27 | 175743 | systems/win32/miktex/tm/packages/miktex-tex-bin-x64-2.9.tar.lzma -2024/01/27 | 1740 | support/texlab/crates/commands/src/clean.rs -2024/01/27 | 1732 | support/texlab/crates/texlab/src/util/line_index_ext.rs -2024/01/27 | 1727 | support/texlab/crates/texlab/src/main.rs -2024/01/27 | 171 | macros/latex/contrib/randexam/randexam-b-answer.tex -2024/01/27 | 1713 | support/texlab/crates/texlab/src/util/client_flags.rs -2024/01/27 | 1708 | support/texlab/crates/syntax/src/latex/kind.rs -2024/01/27 | 1698 | support/texlab/crates/folding/src/tests.rs -2024/01/27 | 1669 | biblio/bibtex/bibtex-x/tests/bibtexu-iscjk.test -2024/01/27 | 165 | support/texlab/crates/diagnostics/src/lib.rs -2024/01/27 | 1644536 | systems/win32/miktex/tm/packages/poppler.tar.lzma -2024/01/27 | 1626 | support/texlab/crates/bibtex-utils/src/field/number.rs -2024/01/27 | 160407 | systems/win32/miktex/tm/packages/miktex-fontconfig-bin-x64-2.9.tar.lzma -2024/01/27 | 15 | support/texlab/crates/bibtex-utils/src/lib.rs -2024/01/27 | 1590 | support/texlab/crates/commands/src/dep_graph.rs -2024/01/27 | 158845 | support/texlab/crates/parser/src/bibtex/tests.rs -2024/01/27 | 1587974 | systems/win32/miktex/tm/packages/miktex-poppler-bin-x64-2.9.tar.lzma -2024/01/27 | 1583 | support/texlab/crates/commands/src/placeholders.rs -2024/01/27 | 156 | macros/latex/contrib/randexam/randexam-b-blank.tex -2024/01/27 | 156 | macros/latex/contrib/randexam/randexam-a-blank.tex -2024/01/27 | 15622 | support/texlab/crates/citeproc/src/tests.rs -2024/01/27 | 1558821 | systems/win32/miktex/tm/packages/miktex-runtime-bin-x64-2.9.tar.lzma -2024/01/27 | 1553 | support/texlab/crates/completion/src/providers/color_model.rs -2024/01/27 | 1546 | support/texlab/crates/symbols/src/document.rs -2024/01/27 | 1535 | support/texlab/crates/texlab/src/util.rs -2024/01/27 | 152000 | systems/texlive/tlnet/archive/babel-norsk.doc.r69603.tar.xz -2024/01/27 | 1510 | support/texlab/crates/rename/src/entry.rs -2024/01/27 | 1508923 | macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf -2024/01/27 | 1498 | support/texlab/crates/references/src/entry.rs -2024/01/27 | 14873 | support/texlab/crates/texlab/src/features/completion.rs -2024/01/27 | 14553 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma -2024/01/27 | 144785672 | systems/win32/miktex/setup/windows-x64/basic-miktex-24.1-x64.exe -2024/01/27 | 1440564 | systems/win32/miktex/tm/packages/miktex-dvisvgm-bin-x64-2.9.tar.lzma -2024/01/27 | 14338 | support/texlab/crates/symbols/src/document/tests.rs -2024/01/27 | 142996 | systems/win32/miktex/tm/packages/miktex-mktex-bin-x64-2.9.tar.lzma -2024/01/27 | 1412 | support/texlab/crates/texlab/src/server/progress.rs -2024/01/27 | 140 | macros/latex/contrib/randexam/README -2024/01/27 | 138639 | systems/win32/miktex/tm/packages/miktex-dvips-bin-x64-2.9.tar.lzma -2024/01/27 | 1384 | support/texlab/crates/definition/src/command.rs -2024/01/27 | 1382 | support/texlab/crates/completion/src/util/builder.rs -2024/01/27 | 134292 | systems/texlive/tlnet/archive/babel-samin.doc.r69604.tar.xz -2024/01/27 | 1329 | support/texlab/crates/references/src/string_def.rs -2024/01/27 | 1321 | support/texlab/crates/symbols/src/workspace.rs -2024/01/27 | 128 | support/texlab/crates/syntax/src/latexmkrc.rs -2024/01/27 | 1287 | support/texlab/crates/distro/src/language.rs -2024/01/27 | 125296 | macros/latex/contrib/babel-contrib/scottish.zip -2024/01/27 | 125030 | systems/texlive/tlnet/install-tl -2024/01/27 | 1247 | support/texlab/crates/rename/src/tests.rs -2024/01/27 | 1244 | support/texlab/crates/hover/src/citation.rs -2024/01/27 | 124268 | macros/latex/contrib/babel-contrib/scottish/scottish.pdf -2024/01/27 | 1240 | support/texlab/crates/rename/src/command.rs -2024/01/27 | 122 | support/texlab/crates/texlab/src/lib.rs -2024/01/27 | 118345 | systems/win32/miktex/tm/packages/miktex-gregorio-bin-x64-2.9.tar.lzma -2024/01/27 | 1180000 | systems/win32/miktex/tm/packages/miktex-asymptote-bin-x64-2.9.tar.lzma -2024/01/27 | 1175 | support/texlab/crates/definition/src/label.rs -2024/01/27 | 1170 | support/texlab/crates/base-db/src/semantics/auxiliary.rs -2024/01/27 | 1146 | support/texlab/crates/links/src/tests.rs -2024/01/27 | 11450 | support/texlab/crates/base-db/src/semantics/tex.rs -2024/01/27 | 114316 | systems/win32/miktex/tm/packages/miktex-texware-bin-x64-2.9.tar.lzma -2024/01/27 | 1139 | support/texlab/crates/references/src/lib.rs -2024/01/27 | 1125 | support/texlab/crates/definition/src/lib.rs -2024/01/27 | 1119 | support/texlab/crates/texlab/src/features/formatting.rs -2024/01/27 | 1118 | support/texlab/crates/completion/src/providers/entry_type.rs -2024/01/27 | 11137 | support/texlab/crates/base-db/src/workspace.rs -2024/01/27 | 1112 | support/texlab/crates/base-db/src/semantics.rs -2024/01/27 | 11103 | support/texlab/crates/parser/src/bibtex.rs -2024/01/27 | 110304 | systems/win32/miktex/tm/packages/miktex-jpeg-bin-x64-2.9.tar.lzma -2024/01/27 | 110203 | systems/win32/miktex/tm/packages/miktex-mfware-bin-x64-2.9.tar.lzma -2024/01/27 | 108608 | systems/win32/miktex/tm/packages/miktex-cweb-bin-x64-2.9.tar.lzma -2024/01/27 | 1078 | support/texlab/crates/definition/src/include.rs -2024/01/27 | 1077 | support/texlab/crates/definition/src/string_ref.rs -2024/01/27 | 1077 | macros/latex/contrib/regulatory/doc/example1.tex -2024/01/27 | 1064 | support/texlab/crates/hover/src/string_ref.rs -2024/01/27 | 106028 | systems/texlive/tlnet/archive/newtxsf.r69597.tar.xz -2024/01/27 | 1057 | support/texlab/crates/hover/src/lib.rs -2024/01/27 | 105711 | systems/win32/miktex/tm/packages/miktex-gd-bin-x64-2.9.tar.lzma -2024/01/27 | 105598 | systems/win32/miktex/tm/packages/miktex-epstopdf-bin-x64-2.9.tar.lzma -2024/01/27 | 1046 | support/texlab/crates/rename/src/lib.rs -2024/01/27 | 104258 | systems/win32/miktex/tm/packages/miktex-bibtex8bit-bin-x64-2.9.tar.lzma -2024/01/27 | 103594 | systems/win32/miktex/tm/packages/miktex-lua53-bin-x64-2.9.tar.lzma -2024/01/27 | 1033 | support/texlab/crates/completion/benches/bench_main.rs -2024/01/27 | 1025 | support/texlab/crates/completion/src/util/matchers.rs -2024/01/27 | 1009196 | systems/texlive/tlnet/archive/scrabble.doc.r69599.tar.xz -2024/01/27 | 100434 | support/texlab/crates/parser/src/latex/tests.rs diff --git a/biblio/ctan-bibdata/ctan.bib b/biblio/ctan-bibdata/ctan.bib index fc69d825ab..dbb19d25eb 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 02-02-2024, 02:00:03 +%% created at 03-02-2024, 02:00:03 %% %% This file is provided under the terms of the LPPL v1.3 or @@ -19160,8 +19160,8 @@ title = {The \texttt{docshots} package}, subtitle = {TeX samples next to their PDF snapshots}, author = {Yegor Bugayenko}, - date = {2024-01-13}, - version = {0.4.2}, + date = {2024-02-02}, + version = {0.4.3}, license = {mit}, mirror = {https://mirror.ctan.org/macros/latex/contrib/docshots}, url = {https://ctan.org/pkg/docshots}, @@ -32782,8 +32782,8 @@ title = {The \texttt{hvqrurl} package}, subtitle = {Insert a QR code in the margin}, author = {Herbert Voß}, - date = {2024-01-28}, - version = {0.05}, + date = {2024-02-02}, + version = {0.05a}, license = {lppl1.3}, mirror = {https://mirror.ctan.org/macros/latex/contrib/hvqrurl}, url = {https://ctan.org/pkg/hvqrurl}, @@ -40284,8 +40284,8 @@ title = {The \texttt{LiteTable} package}, subtitle = {Class schedules with colorful course blocks}, author = {Mingyu Xia}, - date = {2024-01-31}, - version = {2.2a}, + date = {2024-02-02}, + version = {2.3a}, license = {lppl1.3c}, mirror = {https://mirror.ctan.org/macros/latex/contrib/litetable}, url = {https://ctan.org/pkg/litetable}, @@ -46880,7 +46880,7 @@ title = {The \texttt{morewrites} package}, subtitle = {Always room for a new write stream}, author = {Bruno Le Floch}, - date = {2024-01-05}, + date = {2024-02-02}, version = {}, license = {lppl1.3c}, mirror = {https://mirror.ctan.org/macros/latex/contrib/morewrites}, @@ -57227,8 +57227,8 @@ title = {The \texttt{pst-solarsystem} package}, subtitle = {Plot the solar system for a specific date}, author = {Manuel Luque and Herbert Voß}, - date = {2024-01-29}, - version = {0.14}, + date = {2024-02-02}, + version = {0.15}, license = {lppl}, mirror = {https://mirror.ctan.org/graphics/pstricks/contrib/pst-solarsystem}, url = {https://ctan.org/pkg/pst-solarsystem}, @@ -57582,8 +57582,8 @@ title = {The \texttt{pstricks-base} package}, subtitle = {PostScript macros for \TeX{}}, author = {Herbert Voß and Denis Girou and Timothy Van Zandt}, - date = {2023-11-06}, - version = {3.19b}, + date = {2024-02-02}, + version = {3.19c}, license = {lppl1.3}, mirror = {https://mirror.ctan.org/graphics/pstricks/base}, url = {https://ctan.org/pkg/pstricks-base}, @@ -63391,8 +63391,8 @@ title = {The \texttt{simpleicons} package}, subtitle = {Simple Icons for \LaTeX{}}, author = {Inesh Bose}, - date = {2024-01-26}, - version = {11.2.0}, + date = {2024-02-02}, + version = {11.3.0}, license = {cc-by-1}, mirror = {https://mirror.ctan.org/fonts/simpleicons}, url = {https://ctan.org/pkg/simpleicons}, @@ -68552,8 +68552,8 @@ title = {The \texttt{texdoc} package}, subtitle = {Documentation access for \TeX{} Live}, author = {Takuto Asakura and Thomas Esser and Manuel Pégourié-Gonnard and {The TeX Live Team}}, - date = {2023-02-27}, - version = {4.0.1}, + date = {2024-02-02}, + version = {4.0.2}, license = {gpl}, mirror = {https://mirror.ctan.org/support/texdoc}, url = {https://ctan.org/pkg/texdoc}, @@ -79260,7 +79260,7 @@ title = {The \texttt{Ysabeau} package}, subtitle = {Ysabeau fonts with \LaTeX{} support for traditional \TeX{} engines}, author = {Noel Merino Hernández}, - date = {2024-02-01}, + date = {2024-02-02}, version = {1.1}, license = {ofl,pd,other-free}, mirror = {https://mirror.ctan.org/fonts/ysabeau}, diff --git a/fonts/pigpen/README b/fonts/pigpen/README.md index c7a466c045..ab86a943fa 100644 --- a/fonts/pigpen/README +++ b/fonts/pigpen/README.md @@ -7,4 +7,11 @@ it is still used by schoolchildren. The pigpen cipher package provides the font and the necessary wrappers (style file, etc.) in order to write Pigpen ciphers. +License: LPPL 1.3c https://www.latex-project.org/lppl.txt + Oliver Corff, December 2008 + +Map file updated, David Carlisle 2024-02-03 + + + diff --git a/fonts/pigpen/doc/pigpendoc.pdf b/fonts/pigpen/doc/pigpendoc.pdf Binary files differindex faa2ffa4e2..6631013848 100644 --- a/fonts/pigpen/doc/pigpendoc.pdf +++ b/fonts/pigpen/doc/pigpendoc.pdf diff --git a/fonts/pigpen/doc/pigpendoc.tex b/fonts/pigpen/doc/pigpendoc.tex index 4da7d93ffa..cf334bd2d3 100644 --- a/fonts/pigpen/doc/pigpendoc.tex +++ b/fonts/pigpen/doc/pigpendoc.tex @@ -7,9 +7,9 @@ \newcommand\exc{\end{minipage}\kern -3cm \smallskip\end{flushleft}} \title{{\pigpenfont PIG PEN FOR TEX}\\[0.5cm] - The Pigpen Cipher for \TeX\ 0.2} + The Pigpen Cipher for \TeX\ 0.3} \author{Oliver Corff} -\date{December 07, 2008} +\date{February, 2024} \begin{document} \maketitle diff --git a/fonts/pigpen/map/pigpen.map b/fonts/pigpen/map/pigpen.map index 4d4d4c9ecd..9378d37869 100644 --- a/fonts/pigpen/map/pigpen.map +++ b/fonts/pigpen/map/pigpen.map @@ -4,5 +4,6 @@ % Part of the Pigpen package. % % Oliver Corff, 2008 +% Updated to use < David Carlisle 2024 % -pigpen <<pigpen.pfa +pigpen <pigpen.pfa diff --git a/fonts/pigpen/pigpendoc.pdf b/fonts/pigpen/pigpendoc.pdf deleted file mode 120000 index 6be73814b4..0000000000 --- a/fonts/pigpen/pigpendoc.pdf +++ /dev/null @@ -1 +0,0 @@ -doc/pigpendoc.pdf
\ No newline at end of file diff --git a/fonts/pigpen/texinput/pigpen.sty b/fonts/pigpen/texinput/pigpen.sty index 3df45916a8..be07cbc8b3 100644 --- a/fonts/pigpen/texinput/pigpen.sty +++ b/fonts/pigpen/texinput/pigpen.sty @@ -1,44 +1,44 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% File: clock.sty
-% Date: December 07, 2008
-% Author: Oliver Corff
-% (c) 2008 Ulaanbaatar, Macau, Berlin
-%
-% A package for providing the Pigpen
-% cipher to TeX- and LaTeX-users.
-%
-% Usage: \usepackage{pigpen}
-%
-% No options.
-%
-% NB: This package requires LaTeX2e!
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% Identification
-%
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{pigpen}[2008/12/07 v0.1 PigPen]
-%
-%
-% Preliminary declarations
-%
-\DeclareFontFamily{U}{pigpen}{}
-\DeclareFontShape{U}{pigpen}{m}{n}{%
- <-> pigpen}{}
-\DeclareFontSubstitution{U}{pigpen}{m}{n}
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% Loading the clock command structure
-%
-\def\LaTeXpigpen{}
-\input pigpen.tex
-\newcommand{\pigpenfont}{\usefont{U}{pigpen}{m}{n}\selectfont}
-%
-%
-% No options with this package.
-%
-% No More declarations
-%
-% End of file `clock.sty'.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% File: clock.sty +% Date: December 07, 2008 +% Author: Oliver Corff +% (c) 2008 Ulaanbaatar, Macau, Berlin +% +% A package for providing the Pigpen +% cipher to TeX- and LaTeX-users. +% +% Usage: \usepackage{pigpen} +% +% No options. +% +% NB: This package requires LaTeX2e! +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Identification +% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{pigpen}[2008/12/07 v0.1 PigPen] +% +% +% Preliminary declarations +% +\DeclareFontFamily{U}{pigpen}{} +\DeclareFontShape{U}{pigpen}{m}{n}{% + <-> pigpen}{} +\DeclareFontSubstitution{U}{pigpen}{m}{n} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Loading the clock command structure +% +\def\LaTeXpigpen{} +\input pigpen.tex +\newcommand{\pigpenfont}{\usefont{U}{pigpen}{m}{n}\selectfont} +% +% +% No options with this package. +% +% No More declarations +% +% End of file `clock.sty'. diff --git a/fonts/pigpen/texinput/pigpen.tex b/fonts/pigpen/texinput/pigpen.tex index 527cd4c71c..3083de0b62 100644 --- a/fonts/pigpen/texinput/pigpen.tex +++ b/fonts/pigpen/texinput/pigpen.tex @@ -1,40 +1,40 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% File: pigpen.tex
-% Date: December 07, 2008
-% Author: Oliver Corff
-% (c) 2008 Ulaanbaatar, Macau, Berlin
-%
-% A package for providing the Pigpen
-% cipher to TeX- and LaTeX-users.
-%
-% Usage: \input pigpen
-%
-% No options.
-%
-% NB: This file does not require LaTeX2e!
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% Size definitions
-%
-\ifx\LaTeXpigpen\undefined
- \font\mypigpenfont pigpen
- %
- \def\pigpenfont{\let\pigpenfont\mypigpenfont}
-\fi
-
-\ifx\TeXpigpen\undefined
- \def\TeXpigpen{}
- \catcode`@ 11
-\else
- \endinput
-\fi
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-%
-% Some Housekeeping...
-%
-\ifx\LaTeXpigpen\undefined
- \catcode`@ 12
-\fi
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% File: pigpen.tex +% Date: December 07, 2008 +% Author: Oliver Corff +% (c) 2008 Ulaanbaatar, Macau, Berlin +% +% A package for providing the Pigpen +% cipher to TeX- and LaTeX-users. +% +% Usage: \input pigpen +% +% No options. +% +% NB: This file does not require LaTeX2e! +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Size definitions +% +\ifx\LaTeXpigpen\undefined + \font\mypigpenfont pigpen + % + \def\pigpenfont{\let\pigpenfont\mypigpenfont} +\fi + +\ifx\TeXpigpen\undefined + \def\TeXpigpen{} + \catcode`@ 11 +\else + \endinput +\fi +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% +% Some Housekeeping... +% +\ifx\LaTeXpigpen\undefined + \catcode`@ 12 +\fi diff --git a/macros/latex/contrib/exesheet/README.md b/macros/latex/contrib/exesheet/README.md index 6ce9032857..1c56562c44 100644 --- a/macros/latex/contrib/exesheet/README.md +++ b/macros/latex/contrib/exesheet/README.md @@ -3,14 +3,19 @@ ## Presentation -The exesheet package is designed for typesetting exercise or exam sheets. -Additionally, the exesheet class loads the schooldocs package. - -This package offers the following features: +The exesheet package is designed for typesetting exercise or exam sheets. +The primary advantage of exesheet is its ability to display +a detailed scoring guide and correction instructions as needed. +This feature is especially beneficial for grading papers with multiple graders. + +Additionally, the exesheet class loads the schooldocs package +which manages the page layout, the main title, headers and footers. + +The exesheet package offers the following features: - macros for organizing exercises and subparts, - specific settings for enumeration lists, -- environments for questions and answers, with conditional display, -- macros to display a marking scheme with detailed comments in the margins. +- environments for questions and answers, which can be displayed or hidden, +- macros for detailed comments and grading instructions in the margins which can be displayed or hidden. ## Installation diff --git a/macros/latex/contrib/exesheet/exesheet.dtx b/macros/latex/contrib/exesheet/exesheet.dtx index efc56a4cf9..02a8f5e68c 100644 --- a/macros/latex/contrib/exesheet/exesheet.dtx +++ b/macros/latex/contrib/exesheet/exesheet.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2020-2023 by Antoine Missier <antoine.missier@ac-toulouse.fr> +% Copyright (C) 2020-2024 by Antoine Missier <antoine.missier@ac-toulouse.fr> % ---------------------------------------------------------------------- % % This file may be distributed and/or modified under the @@ -23,7 +23,7 @@ %<class>\ProvidesClass{exesheet} %<package>\ProvidesPackage{exesheet} %<*class|package> -[2023/12/30 v2.5 .dtx Typesetting exercise or exam sheets] +[2024/02/03 v2.6 .dtx Typesetting exercise or exam sheets] %</class|package> %<*driver> \documentclass{ltxdoc} @@ -45,6 +45,7 @@ \usepackage{pstricks} \usepackage{array} \usepackage{spacingtricks} +\usepackage{pifont} % \psset{unit=1cm} \geometry{textwidth=355pt,vmarginratio=1:1,hmarginratio=3:2} @@ -84,7 +85,7 @@ %</driver> % \fi % -% \CheckSum{1183} +% \CheckSum{1192} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z @@ -173,6 +174,10 @@ % - comparison with other packages % - modifying introduction} % +% \changes{v2.6}{2024/02/03}{ +% - error message when using colsenum or colsitem without loading multicol +% - changes in the comparison with other packages} +% % \GetFileInfo{exesheet.dtx} % % \maketitle @@ -182,7 +187,8 @@ % \section{Introduction} % % The \textsf{exesheet} \emph{package} is designed for typesetting exercise or exam sheets. -% Additionally, the \textsf{exesheet} \emph{class} loads the \textsf{schooldocs} package. +% Additionally, the \textsf{exesheet} \emph{class} loads the +% \textsf{schooldocs} package~\cite{SCHOOL}. % The latter makes adjustments to margins and titles, and defines various layout styles % with specific headers and footers suitable for exercise sheets, among other uses. % Refer to the documentation of the \textsf{schooldocs} package for more details. @@ -256,9 +262,6 @@ % Calculate $1+1$. % % \bigskip -% ^^A Various settings can be modified by refining the following commands. -% -% ^^A \medskip % \DescribeMacro{\exercisename} % The term ``\exercisename'' is automatically translated into various languages % \footnote{Currently, translation is integrated into the package @@ -314,7 +317,6 @@ % To begin, prepare your cup of tea. % \subpart % Now you are ready to proceed with the current exercise. -% \bigskip % % \pagebreak % The following macros allow customization in the same manner as for |\exercise|. @@ -589,8 +591,8 @@ % The mandatory parameter is the number of columns, % and the optional parameter will be passed to the underlying \texttt{enumerate} environment, % allowing you to change the numbering type (\eg a, A, etc.), among other possibilities. -% To use this environment, you need to load the -% \textsf{multicol} package in the preamble. +% \emph{To use this environment, you need to load the +% \textsf{multicol} package in the preamble.} % Here's an example with |\begin{colsenum}{3}|: % % \exercise @@ -643,9 +645,10 @@ % \texttt{tablitem}. It follows the same syntax as \texttt{colsenum}: % |\begin{colsitem}|\oarg{opt}\marg{cols}. The optional parameter, % passed to the underlying \texttt{itemize} environment, -% permits the modification of the item label (bullet by default). +% allow to change the item label (bullet by default). % Furthermore, just like \texttt{colsenum*}, the \texttt{colsitem*} environment % produces column alignment from the bottom. +% \emph{The \textsf{multicol} package is also required and must be loaded in the preamble.} % % \section{Questions and solutions} % @@ -710,7 +713,8 @@ % \textsf{exframe} by Niklas Beisert, % \textsf{exam} by Philip Hirschhorn, % \textsf{answers} by Mike Piff and Joseph Wright, -% \textsf{probsoln} by Nicola Talbot, and more. +% \textsf{probsoln} by Nicola Talbot, +% \textsf{eqexam} by D. P. Story\ldots % They are briefly presented in section \ref{comparison}. % \end{enumerate} % \end{answers} @@ -798,8 +802,8 @@ % Some teachers are accustomed to providing their students with documents % where questions are typeset, leaving blank spaces instead of answers. % This layout allows students to fill in their responses on the paper. -% To achieve this, thanks to a suggestion from Maxime Chupin, -% we offer the |\answerspace|\marg{height} macro, +% Thanks to a suggestion from Maxime Chupin, +% we achieve this with the |\answerspace|\marg{height} macro, % in which the parameter \meta{height} is a valid length, % \eg |\answerspace{3cm}|. % @@ -1184,7 +1188,7 @@ % answerspace & true, \textbf{false} & \ref{answerspace}\\ % display & \textbf{none}, pts, notes & \ref{pts}, \ref{margin} \\ % marginpos & \textbf{left} (inner), right (\textbf{outer}) & \ref{pts}, \ref{margin} \\ -% marginwidth & standard, \textbf{expand}, unset & \ref{margin} \\ +% marginwidth & standard, \textbf{expand}, unset & \ref{margin} \\ % noteragged & \textbf{left}, right, center, justify, twoside & \ref{margin} \\ % checkpts & true, \textbf{false} & \ref{scale} \\ % correct & true, \textbf{false}, conditional & \hyperlink{correct}{see below} \\ @@ -1225,11 +1229,10 @@ % % Prior to version 2.0, we used specialized commands to configure % output and display options. -% Thanks to a suggestion from Maxime Chupin and Denis Bitouzé, -% we have now implemented \emph{key=value} options. -% Although the latter is more user-friendly, +% We have now implemented \emph{key=value} options. +% Although the latter are more user-friendly, % one may prefer the old commands, so they are still supported, -% but will trigger a warning message. They are presented below. +% but will trigger a warning message. These commands are presented below. % % However, the previous options \texttt{nosetlist} and \texttt{notoc} % are no longer supported. @@ -1243,12 +1246,12 @@ % The commands |\displaypts| and |\displaypoints| % are equivalent to setting \texttt{display=pts}. % -% \medskip +% \bigskip % \DescribeMacro{\displaynotes}\DescribeMacro{\displaynotesright} % |\displaynotes| means \texttt{display=notes}, % and |\displaynotesright| corresponds to % \texttt{display=notes,marginpos=right}. -% These two commands have an optional argument |\displanotes|\marg{ragged} +% These two commands have an optional argument |\displaynotes|\marg{ragged} % where \meta{ragged} is an alignment command to work inside margin notes. % By default it is |\RaggedLeft| with |\displaynotes| and |RaggedRight| % \footnote{These commands come from the \textsf{ragged2e} package @@ -1258,19 +1261,19 @@ % \subsection{Comparison with other packages}\label{comparison} % % In this section, we will provide an overview of the functionalities (as of today \today) -% of various packages or classes found in the 'Exercise' or 'Exam' sections +% of various packages or classes found in the `Exercise' or `Exam' sections % of the CTAN archives % (Comprehensive \TeX\ Archive Network). % Considering the substantial number of packages in these sections, % some omissions may have been unintentionally made. % Those excluded are those with documentation not in English % or primarily dedicated to producing multiple-choice questions -% or random question generation. Are also excluded those with non-free license. -% We have focused here on typesetting functionalities and not on managing exercise databases -% as there are specialized packages or external softwares for that. +% or random question generation. +% We have focused here on typesetting functionalities and not on managing exercise +% databases as there are specialized packages or external softwares for that. % % The following table is not a result of tests but presents a summary of information -% obtained from the documentation of these packages. +% collected from the documentation of these packages. % % \begin{multicols}{2} % \begin{flushleft} @@ -1279,42 +1282,44 @@ % \item \textsf{exercises}, Roger Jud~\cite{EXES} % \item \textsf{xsim}, Clemens Niederberger~\cite{XSIM} % \item \textsf{exframe}, Niklas Beisert~\cite{EXFR} -% \item \textsf{exam}, Philip Hirschhorn~\cite{EXAM}. +% \item \textsf{exam}, Philip Hirschhorn~\cite{EXAM} % \item \textsf{answers}, Mike Piff and Joseph Wright~\cite{ANSW} % \item \textsf{probsoln}, Nicola L.C.\@ Talbot~\cite{PROB} % \item \textsf{exsol}, Walter Daems~\cite{EXSO} % \item \textsf{exercisepoints}, Henning Kerstan~\cite{EXEP} % \item \textsf{worksheet}, Benjamin Zöllner~\cite{WORK} -% \item \textsf{exam-n}, Norman Gray, CTAN~\cite{EXAN} +% \item \textsf{exam-n}, Norman Gray~\cite{EXAN} % \item \textsf{eqexam}, D. P. Story~\cite{EQEX} % \item \textsf{cesenaexam}, Alex Pacini~\cite{CESE} +% \item \textsf{esami}, Grazia Messineo, Salvatore Vassallo~\cite{ESAMI} +% \item \textsf{randexam}, Jianrui Lyu~\cite{RAND} % \item \textsf{hideanswer}, Yukoh Kusakabe~\cite{HIDE} -% \item \textsf{mathexam}, Jan Hlavacek~\cite{MATH} +% ^^A\item \textsf{mathexam}, Jan Hlavacek~\cite{MATH} % \item \textsf{exesheet}, Antoine Missier % \end{enumerate} % \end{flushleft} % \end{multicols} % -% \newcommand\X{\textsf{X}} +% \newcommand\X{\ding{56}} % \setlength{\extrarowheight}{2pt} -% \noindent\begin{tabular}{|@{\hspace{2pt}}l@{\hspace{4pt}}|% -% *{16}{@{\hspace{2pt}}c@{\hspace{2pt}}|}} +% \noindent\begin{tabular}{@{\hspace{1.8pt}}l@{\hspace{2pt}}|% +% *{17}{@{\hspace{1.8pt}}c@{\hspace{1.8pt}}|}} % \hline -% Functionality &A&B&C&D&E&F&G&H&I&J&K&L&M&N&O&P \\ +% Functionality &A&B&C&D&E&F&G&H&I&J&K&L&M&N&O&P&Q \\ % \hline -% optional text for exercise titles &\X&&\X&\X&\X&&&&\X&&&&&&&\X \\ -% subparts of exercises &\X&&&\X&\X&&&&&&\X&&\X&&&\X \\ -% annex title &&&&&&&&&&&&&&&&\X \\ -% exercise titles in TOC of PDF files &\X&&&&&&&&&&&&&&&\X \\ -% short labels for exercises &\X&&&&&&&&&&&&&&&\X \\ -% hiding questions or answers* &\X&*&\X&\X&\X&*&\X&\X&&&*&\X&&*&&\X \\ -% different placements for answers &\X&&\X&&&&&&&&&\X&&&&\X \\ -% changing answers placement in output &\X&&\X&\X&&\X&&&&&&\X&&&& \\ -% blank spacing in place of answers &&&&&\X&&&&&&&\X&&&\X&\X \\ -% marking scheme commands &&\X&\X&\X&\X&&&&\X&\X&\X&\X&&&&\X \\ -% various positions of points &&&&&\X&&&&&&&\X&&&&\X \\ -% marking scheme calculation/checking &&\X&\X&\X&\X&&&&\X&&&&&&&\X \\ -% detailed notes for scoring guide &&&&&&&&&&&&&&&&\X \\ +% Optional text for exercise titles &\X&&\X&\X&\X&&&&\X&&&&\X&&&&\X \\ +% Subparts of exercises &\X&&&\X&\X&&&&\X&&\X&\X&\X&\X&\X&&\X \\ +% Annex title or appendix &&&&&&&&&&&&&&&\X&&\X \\ +% Exercise titles in TOC of PDF files &\X&&&&&&&&&&&&&&&&\X \\ +% Short labels for exercises &\X&&\X&\X&&&&&&&&&&&&&\X \\ +% Hiding questions or answers* &\X&*&\X&\X&*&\X&\X&\X&&&*&\X&&\X&*&*&\X \\ +% Different placements for answers &\X&&&&&&&&&&\X&\X&&&&&\X \\ +% Change answers placement in output &\X&&&\X&&\X&&\X&&&&\X&&&&& \\ +% Blank spacing in place of answers &&\X&\X&&\X&&&&&&&\X&&\X&\X&&\X \\ +% Marking scheme commands &&\X&\X&\X&\X&&&&\X&\X&\X&\X&&\X&\X&&\X \\ +% Various positions of points &&&&\X&\X&&&&&&&\X&&\X&&&\X \\ +% Marking scheme calculation/checking &&\X&\X&\X&\X&&&&\X&&\X&\X&&&\X&&\X \\ +% Detailed notes for scoring guide &&&&&&&&&&&&&&&&&\X \\ % \hline % \end{tabular} % \medskip @@ -1802,11 +1807,20 @@ \end{tablitem}} % \end{macrocode} -% \DescribeEnv{colsenum} +% \DescribeEnv{colsenum}\DescribeEnv{colsenum*} +% For items aligned by columns, we provide the \texttt{colsemnum} and \texttt{colsenum*} +% environments. The \textsf{multicol} package is required and an error message +% is produced if it has not been loaded. +% |\multicolsep| is the amount of space that should be added above or below the +% environment. % \begin{macrocode} -\newenvironment{colsenum}[2][]{% +\newenvironment{colsenum*}[2][]{% + \ifexesheet@multicol \else + \PackageError{exesheet}{The environments colsenum and colsenum* + \MessageBreak need the multicol package}{ + Add \string\usepackage{multicol}\space in the preamble.} + \fi \setlength{\multicolsep}{2ex} - \raggedcolumns % default is \flushcolumns \begin{multicols}{#2} % #2 = number of columns \begin{enumerate}[#1] % #1 = options of enumerate }{ @@ -1814,41 +1828,36 @@ \end{multicols} } -% \end{macrocode} -% \DescribeEnv{colsenum*} -% \begin{macrocode} -\newenvironment{colsenum*}[2][]{% - \setlength{\multicolsep}{2ex} - \begin{multicols}{#2} % #2 = number of columns - \begin{enumerate}[#1] % #1 = options of enumerate +\newenvironment{colsenum}[2][]{% + \raggedcolumns % default is \flushcolumns + \begin{colsenum*}[#1]{#2} }{ - \end{enumerate} - \end{multicols} + \end{colsenum*} } % \end{macrocode} -% \DescribeEnv{colsitem} +% \DescribeEnv{colsitem}\DescribeEnv{colsitem*} +% The corresponding environments for itemize lists. % \begin{macrocode} -\newenvironment{colsitem}[2][]{% +\newenvironment{colsitem*}[2][]{% + \ifexesheet@multicol \else + \PackageError{exesheet}{The environments colsitem and colsitem* + \MessageBreak need the multicol package}{ + Add \string\usepackage{multicol}\space in the preamble.} + \fi \setlength{\multicolsep}{2ex} - \raggedcolumns - \begin{multicols}{#2} - \begin{itemize}[#1] + \begin{multicols}{#2} % #2 = number of columns + \begin{itemize}[#1] % #1 = options of itemize }{ \end{itemize} \end{multicols} } -% \end{macrocode} -% \DescribeEnv{colsitem*} -% \begin{macrocode} -\newenvironment{colsitem*}[2][]{% - \setlength{\multicolsep}{2ex} - \begin{multicols}{#2} - \begin{itemize}[#1] +\newenvironment{colsitem}[2][]{% + \raggedcolumns % default is \flushcolumns + \begin{colsitem*}[#1]{#2} }{ - \end{itemize} - \end{multicols} + \end{colsitem*} } % \end{macrocode} @@ -2024,8 +2033,8 @@ % \end{macrocode} % % \begin{macro}{\answerspace} -% The |\answerspace| macro was suggested by Maxime Chupin -% to allow students space for writing their answers on the provided paper. +% The |\answerspace| macro leaves blank space to allow students for writing +% their answers on the provided paper following a suggestion by Maxime Chupin. % \begin{macrocode} \newcommand\answerspace[1]{ \ifexesheet@answerspace \par\vspace{#1} \fi} @@ -2563,11 +2572,13 @@ % \end{macrocode} % \end{macro} % -% \begin{thebibliography}{24} +% \begin{thebibliography}{27} % % \begin{raggedright} +% \bibitem{SCHOOL} \emph{The \textsf{schooldocs} package}, Antoine Missier, +% CTAN, v1.4 2023/12/28. % \bibitem{GEOM} \emph{The \textsf{geometry} package}, % Hideo Umeki, CTAN, v5.9 2020/01/02. -% \bibitem{ENUM} \emph{Customizing lists with teh \textsf{enumitem} package}, +% \bibitem{ENUM} \emph{Customizing lists with the \textsf{enumitem} package}, % Javier Bezos, CTAN, v3.9 2019/06/20. % \bibitem{TASK} \emph{\textsf{tasks} -- lists with columns filled horizontally}, % Clemens Niederberger. CTAN, v1.4a, 2022/01/08. @@ -2591,7 +2602,7 @@ % the official successor of the \textsf{exsheets} package}, Clemens Niederberger, % CTAN, v0.21 2022/02/12. % \bibitem{EXFR} \emph{The \textsf{exframe} package}, Niklas Beisert, -% CTAN, v3.4 202/02/24. +% CTAN, v3.4 2020/02/24. % \bibitem{EXAM} \emph{Using the \textsf{exam} document class}, Philip Hirschhorn, % CTAN, v2.704 2023/07/09. % \bibitem{ANSW} \emph{\textsf{answers} Production of solution sheets in \LaTeXe}, @@ -2608,6 +2619,10 @@ % D. P. Story, CTAN, 5.2 2021/02/26. % \bibitem{CESE} \emph{\textsf{cesenaexam} — class file to typeset exams}, Alex Pacini, % CTAN, v2.0 2017/08/03. +% \bibitem{ESAMI} \emph{Package \textsf{esami}}, Grazia Messineo, Salvatore Vassallo, +% CTAN, v2.8 2023/07/21. +% \bibitem{RAND} \emph{Teh \textsf{randexam} class for \LaTeX}, Jianrui Lyu, +% CTAN, 2024D, 2024/02/03. % \bibitem{HIDE} \emph{The \textsf{hideanswer} package: generate documents with % and without answers by toggling a switch}, Yukoh Kusakabe, CTAN, v1.1 2022/07/09. % \bibitem{MATH} \emph{The \textsf{mathexam} Package}, Jan Hlavacek, CTAN, v1.00 2007/07/30. diff --git a/macros/latex/contrib/exesheet/exesheet.ins b/macros/latex/contrib/exesheet/exesheet.ins index 4784c5b955..d1fc87865f 100644 --- a/macros/latex/contrib/exesheet/exesheet.ins +++ b/macros/latex/contrib/exesheet/exesheet.ins @@ -1,5 +1,5 @@ %% -%% Copyright (C) 2020-2023 by Antoine Missier <antoine.missier@ac-toulouse.fr> +%% Copyright (C) 2020-2024 by Antoine Missier <antoine.missier@ac-toulouse.fr> %% %% This file may be distributed and/or modified under the conditions of %% the LaTeX Project Public License, either version 1.3 of this license @@ -21,7 +21,7 @@ This is a generated file. -Copyright (C) 2020-2023 by Antoine Missier <antoine.missier@ac-toulouse.fr> +Copyright (C) 2020-2024 by Antoine Missier <antoine.missier@ac-toulouse.fr> This file may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 of this license diff --git a/macros/latex/contrib/exesheet/exesheet.pdf b/macros/latex/contrib/exesheet/exesheet.pdf Binary files differindex be92d96cc5..b18f1858e7 100644 --- a/macros/latex/contrib/exesheet/exesheet.pdf +++ b/macros/latex/contrib/exesheet/exesheet.pdf diff --git a/macros/latex/contrib/hvqrurl/Changes b/macros/latex/contrib/hvqrurl/Changes index a14d35f255..e7b6ca476c 100644 --- a/macros/latex/contrib/hvqrurl/Changes +++ b/macros/latex/contrib/hvqrurl/Changes @@ -1,4 +1,5 @@ hvqrurl.sty: +0.06 2024-02-03 - fix for introduced bug with linktext 0.05a 2024-02-02 - modified documentation 0.05 2024-01-28 - added optional argument for alternative link text 0.04 2024-01-18 - fix for wrong text diff --git a/macros/latex/contrib/hvqrurl/doc/hvqrurl.pdf b/macros/latex/contrib/hvqrurl/doc/hvqrurl.pdf Binary files differindex 0ea564f2d7..b5103b9d16 100644 --- a/macros/latex/contrib/hvqrurl/doc/hvqrurl.pdf +++ b/macros/latex/contrib/hvqrurl/doc/hvqrurl.pdf diff --git a/macros/latex/contrib/hvqrurl/doc/hvqrurl.tex b/macros/latex/contrib/hvqrurl/doc/hvqrurl.tex index 5b0e10dc06..79c2c395ea 100644 --- a/macros/latex/contrib/hvqrurl/doc/hvqrurl.tex +++ b/macros/latex/contrib/hvqrurl/doc/hvqrurl.tex @@ -1,4 +1,4 @@ -%% $Id: hvqrurl.tex 867 2024-02-02 09:03:16Z herbert $ +%% $Id: hvqrurl.tex 870 2024-02-03 20:38:44Z herbert $ \listfiles \errorcontextlines=100 \documentclass[twoside=on,usegeometry]{scrartcl} @@ -82,6 +82,8 @@ QR codes not as a link when using \LPack{hyperref}: \subsection{No link with \LPack{hyperref}} +This needs package hyperref, which is loaded by default. With the optional argument +\Lkeyword{nohyperref} you can prevent the loading of this package. \begin{lstlisting} With qrlink=nolink the QR code is no link: \hvqrurl[qrlink=nolink]{https://mirror.ctan.org/pkg/hvqrurl}. @@ -89,7 +91,11 @@ The default setting is qrlink=link. \end{lstlisting} With \Lkeyset{qrlink=nolink} the QR code is no link: \hvqrurl[qrlink=nolink]{https://mirror.ctan.org/pkg/hvqrurl}. The default setting is \Lkeyset{qrlink=link}. Without using \LPack{hyperref} this optional argument -has no meaning. +has no meaning. The optional argument \Lkeyword{linktext} is also only valid, if hyperref is aktive. + + + + \subsection{Color of the QR code} Without using \LPack{hyperref} the default color is \Lkeyval{black}. It can be changed by diff --git a/macros/latex/contrib/hvqrurl/latex/hvqrurl.sty b/macros/latex/contrib/hvqrurl/latex/hvqrurl.sty index 9786732d94..36f90a2638 100644 --- a/macros/latex/contrib/hvqrurl/latex/hvqrurl.sty +++ b/macros/latex/contrib/hvqrurl/latex/hvqrurl.sty @@ -1,4 +1,4 @@ -%% $Id: hvqrurl.sty 867 2024-02-02 09:03:16Z herbert $ +%% $Id: hvqrurl.sty 870 2024-02-03 20:38:44Z herbert $ %% %% This file is distributed under the terms of the LaTeX Project Public %% License from CTAN archives in directory macros/latex/base/lppl.txt. @@ -7,7 +7,7 @@ % Copyright 2019,21,23,24 Herbert Voss hvoss@tug.org %% \ProvidesPackage{hvqrurl}[% - 2024/02/02 v.0.05a (Herbert Voss) Supports qr images into the margin (hv)] + 2024/02/03 v.0.06 (Herbert Voss) Supports qr images into the margin (hv)] % \NeedsTeXFormat{LaTeX2e} \RequirePackage{url} @@ -16,6 +16,12 @@ \RequirePackage{qrcode} \RequirePackage{xkeyval} +\newif\if@no@hyperref \@no@hyperreffalse +\DeclareOption{nohyperref}{\@no@hyperreftrue} +\ProcessOptions + +\if@no@hyperref\else\RequirePackage{hyperref}\fi + \newlength\qr@url@qrheight \newlength\qr@url@qradjust @@ -36,19 +42,22 @@ \def\hvqr@url*{\hvqr@@url} + \newcommand*\hvqr@@url[2][]{% \begingroup \providecommand*\qr@blank{0}% \ifx\relax#1\relax \else\hvqrset{#1}\fi + % Set options for package qrcode \expandafter\qrset\expandafter{\qr@url@qrlink,height=\qr@url@qrheight,level=\qr@url@qrlevel}% \ifhv@qrreverse\reversemarginpar\fi \if@tempswa - \ifx\relax\qr@url@linktext\relax % alternative link text?? + \ifx\@empty\qr@url@linktext % alternative link text \edef\hv@foo{\detokenize\expandafter{#2}}% + \url{\hv@foo}% \else \edef\hv@foo{\detokenize\expandafter{\qr@url@linktext}}% + \href{#2}{\hv@foo}% \fi - \expandafter\url\expandafter{\hv@foo}% \fi \edef\reserved@a{\noexpand\marginnote{\noexpand\color{qr@url@qrcolor}\noexpand\qrcode{% \detokenize\expandafter{#2}}}[\qr@url@qradjust]}% diff --git a/macros/latex/contrib/projlib/ProjLib.dtx b/macros/latex/contrib/projlib/ProjLib.dtx index fcac850e84..1172d3e4ad 100644 --- a/macros/latex/contrib/projlib/ProjLib.dtx +++ b/macros/latex/contrib/projlib/ProjLib.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2021-2023 by Jinwen XU +% Copyright (C) 2021-2024 by Jinwen XU % ------------------------------------ % % This file may be distributed and/or modified under the conditions of the LaTeX @@ -19,85 +19,85 @@ %<*ProjLib> \ProvidesExplPackage {ProjLib} - {2023/11/05} {} + {2024/02/03} {} {Collective interface of the ProjLib toolkit} %</ProjLib> % %<*projlib-author> \ProvidesExplPackage {projlib-author} - {2023/11/05} {} + {2024/02/03} {} {Enhanced author information block} %</projlib-author> % %<*projlib-datetime> \ProvidesExplPackage {projlib-datetime} - {2023/11/05} {} + {2024/02/03} {} {Convert numeric date-time string to natural language} %</projlib-datetime> % %<*projlib-draft> \ProvidesExplPackage {projlib-draft} - {2023/11/05} {} + {2024/02/03} {} {Useful commands during draft stage} %</projlib-draft> % %<*projlib-font> \ProvidesExplPackage {projlib-font} - {2023/11/05} {} + {2024/02/03} {} {Font selection and configuration} %</projlib-font> % %<*projlib-language> \ProvidesExplPackage {projlib-language} - {2023/11/05} {} + {2024/02/03} {} {Multi-language configuration} %</projlib-language> % %<*projlib-logo> \ProvidesExplPackage {projlib-logo} - {2023/11/05} {} + {2024/02/03} {} {The ProjLib logo} %</projlib-logo> % %<*projlib-math> \ProvidesExplPackage {projlib-math} - {2023/11/05} {} + {2024/02/03} {} {Efficient math setup} %</projlib-math> % %<*projlib-paper> \ProvidesExplPackage {projlib-paper} - {2023/11/05} {} + {2024/02/03} {} {Configuration of the paper style} %</projlib-paper> % %<*projlib-text> \ProvidesExplPackage {projlib-text} - {2023/11/05} {} + {2024/02/03} {} {Text-related commands} %</projlib-text> % %<*projlib-theorem> \ProvidesExplPackage {projlib-theorem} - {2023/11/05} {} + {2024/02/03} {} {Configuration of theorem-like environments} %</projlib-theorem> % %<*projlib-titlepage> \ProvidesExplPackage {projlib-titlepage} - {2023/11/05} {} - {Commands for rendering the title page} + {2024/02/03} {} + {Interface for title page rendering} %</projlib-titlepage> %<*ProjLib> @@ -5521,9 +5521,12 @@ \tl_set_eq:NN \thepage \l_projlib_titlepage_license_page_name_tl \thispagestyle{empty} \null\vfill - \begin{flushleft} + % \begin{flushleft} + \group_begin: + \noindent \tl_use:N \l_projlib_titlepage_info_tl - \end{flushleft} + \group_end: + % \end{flushleft} \group_begin: \tl_use:N \l_projlib_titlepage_license_tl \group_end: @@ -5532,38 +5535,37 @@ \pagenumbering{roman} } + \cs_new_protected:Nn \projlib_titlepage_render_with_style_default: { \begin{tikzpicture}[overlay,remember~picture] - \fill [color=titlepage-main] ($(current~page.south~west)$) rectangle ($(current~page.north~east)+(0,-.3\paperheight)$); - \fill [color=titlepage-back] ($(current~page.south~west)$) rectangle ($(current~page.north~west)+(.125\paperwidth,-.3\paperheight)$); - \fill [color=titlepage-main] ($(current~page.north~west)$) rectangle ($(current~page.north~west)+(.125\paperwidth,-.3\paperheight)$); - \fill [color=titlepage-back] ($(current~page.north~east)$) rectangle ($(current~page.north~west)+(.125\paperwidth,-.3\paperheight)$); + % \fill[color=white] ($(current~page.south~west)$) rectangle ($(current~page.north~east)$); \node[text~width=.3\paperwidth, text~height=.2\paperheight, align=flush~left] - at ($(current~page.north~west)+(.333\paperwidth,-.17\paperheight)$) + at ($(current~page.north~west)+(.32\paperwidth,-.1\paperheight)$) { \projlib_titlepage_show_logo:n { \scalebox { 2 } { \ProjLib } } }; \node[text~width=.8\paperwidth, text~height=.5\paperheight, align=flush~left] - at ($(current~page.north~west)+(.583\paperwidth,-.28\paperheight)$) + at ($(current~page.north~west)+(.57\paperwidth,-.15\paperheight)$) { - \color{titlepage-back} \sffamily \fontsize{24pt}{36pt}\selectfont - \textsc{ \l_projlib_titlepage_title_tl }\\[1.5em] + \textsc{ \textbf{ \l_projlib_titlepage_title_tl } }\\[1.5em] \fontsize{18pt}{27pt}\selectfont \l_projlib_titlepage_subtitle_tl }; - \node[text~width=.5\paperwidth, text~height=.4\paperheight, align=flush~left] - at ($(current~page.south)+(.135\paperwidth,.35\paperheight)$) + % \node[text~width=.5\paperwidth, text~height=.4\paperheight, align=flush~left] + % at ($(current~page.south)+(.135\paperwidth,.35\paperheight)$) + \node[text~width=.8\paperwidth, text~height=.4\paperheight, align=flush~left] + at ($(current~page.south~west)+(.57\paperwidth,.45\paperheight)$) { - \color{titlepage-back} - \begin{flushright} + % \color{.!50} + % \begin{flushright} \fontsize{16pt}{24pt}\selectfont \textsc{ \l_projlib_titlepage_author_tl }\\[1em] \fontsize{12pt}{18pt}\selectfont \l_projlib_titlepage_date_tl - \end{flushright} + % \end{flushright} }; \end{tikzpicture} } @@ -5634,36 +5636,38 @@ \end{tikzpicture} } -\cs_new_protected:Nn \projlib_titlepage_render_with_style_minimalist: +\cs_new_protected:Nn \projlib_titlepage_render_with_style_fancy: { \begin{tikzpicture}[overlay,remember~picture] - % \fill[color=white] ($(current~page.south~west)$) rectangle ($(current~page.north~east)$); + \fill [color=titlepage-main] ($(current~page.south~west)$) rectangle ($(current~page.north~east)+(0,-.3\paperheight)$); + \fill [color=titlepage-back] ($(current~page.south~west)$) rectangle ($(current~page.north~west)+(.125\paperwidth,-.3\paperheight)$); + \fill [color=titlepage-main] ($(current~page.north~west)$) rectangle ($(current~page.north~west)+(.125\paperwidth,-.3\paperheight)$); + \fill [color=titlepage-back] ($(current~page.north~east)$) rectangle ($(current~page.north~west)+(.125\paperwidth,-.3\paperheight)$); \node[text~width=.3\paperwidth, text~height=.2\paperheight, align=flush~left] - at ($(current~page.north~west)+(.32\paperwidth,-.2\paperheight)$) + at ($(current~page.north~west)+(.333\paperwidth,-.17\paperheight)$) { \projlib_titlepage_show_logo:n { \scalebox { 2 } { \ProjLib } } }; \node[text~width=.8\paperwidth, text~height=.5\paperheight, align=flush~left] - at ($(current~page.north~west)+(.57\paperwidth,-.22\paperheight)$) + at ($(current~page.north~west)+(.583\paperwidth,-.28\paperheight)$) { + \color{titlepage-back} \sffamily \fontsize{24pt}{36pt}\selectfont \textsc{ \l_projlib_titlepage_title_tl }\\[1.5em] \fontsize{18pt}{27pt}\selectfont \l_projlib_titlepage_subtitle_tl }; - % \node[text~width=.5\paperwidth, text~height=.4\paperheight, align=flush~left] - % at ($(current~page.south)+(.135\paperwidth,.35\paperheight)$) - \node[text~width=.8\paperwidth, text~height=.4\paperheight, align=flush~left] - at ($(current~page.south~west)+(.57\paperwidth,.45\paperheight)$) + \node[text~width=.5\paperwidth, text~height=.4\paperheight, align=flush~left] + at ($(current~page.south)+(.135\paperwidth,.35\paperheight)$) { - \color{.!50} - % \begin{flushright} + \color{titlepage-back} + \begin{flushright} \fontsize{16pt}{24pt}\selectfont \textsc{ \l_projlib_titlepage_author_tl }\\[1em] \fontsize{12pt}{18pt}\selectfont \l_projlib_titlepage_date_tl - % \end{flushright} + \end{flushright} }; \end{tikzpicture} } diff --git a/macros/latex/contrib/projlib/ProjLib.ins b/macros/latex/contrib/projlib/ProjLib.ins index 19afe26f96..67c129761e 100644 --- a/macros/latex/contrib/projlib/ProjLib.ins +++ b/macros/latex/contrib/projlib/ProjLib.ins @@ -1,5 +1,5 @@ %% -%% Copyright (C) 2021-2023 by Jinwen XU +%% Copyright (C) 2021-2024 by Jinwen XU %% %% This file may be distributed and/or modified under the conditions of %% the LaTeX Project Public License, either version 1.3c of this license @@ -20,7 +20,7 @@ \ds@heading% This is file... generated with the docstrip utility. \MetaPrefix% -Copyright (C) 2021-2023 by Jinwen XU +Copyright (C) 2021-2024 by Jinwen XU This is part of the ProjLib Toolkit. }% diff --git a/macros/latex/contrib/projlib/README.md b/macros/latex/contrib/projlib/README.md index b9b4816d75..f7f7c70dbe 100644 --- a/macros/latex/contrib/projlib/README.md +++ b/macros/latex/contrib/projlib/README.md @@ -1,11 +1,11 @@ -<!-- Copyright (C) 2021-2023 by Jinwen XU --> +<!-- Copyright (C) 2021-2024 by Jinwen XU --> <!-- ![image](https://github.com/Jinwen-XU/ProjLib/raw/main/logo/ProjLib-logo.png) --> <div align=center><img height="150" src="https://github.com/Jinwen-XU/ProjLib/raw/main/logo/ProjLib-logo.png"/></div> # The `ProjLib` Toolkit -> **This bundle is dated 2023/11/05.** +> **This bundle is dated 2024/02/03.** > **New documentations are still being written. For now, only the core code is included in TeX Live 2023 (old documentations have been removed from the distribution).** @@ -63,8 +63,8 @@ The modules include: - Supporting the modes `simple name` and `complex name` for the referencing names. - `\SwitchTheoremNumbering` and `\DisableTheoremNumbering` for manipulating the numbering. - Preset environments include: `application`, `assertion`, `assumption`, `axiom`, `claim`, `conclusion`, `conjecture`, `construction`, `convention`, `corollary`, `definition`, `definition-proposition`, `definition-theorem`, `example`, `exercise`, `fact`, `hypothesis`, `lemma`, `notation`, `observation`, `postulate`, `problem`, `property`, `proposition`, `question`, `recall`, `remark`, `theorem`, and the corresponding unnumbered version with an asterisk `*` in the name. -1. module `titlepage` - *Commands for rendering the title page* - - Currently support four title page styles: `default`, `academic`, `minimalist` and `simple`. +1. module `titlepage` - *Interface for title page rendering* + - Currently support four title page styles: `default`, `academic`, `simple` and `fancy`. > Since the module `theorem` uses `cleveref`, it should be loaded after `varioref` and `hyperref` (same for the main package `ProjLib`). diff --git a/macros/latex/contrib/randexam/randexam-a-answer.pdf b/macros/latex/contrib/randexam/randexam-a-answer.pdf Binary files differindex d7d570e9b2..6c62155246 100644 --- a/macros/latex/contrib/randexam/randexam-a-answer.pdf +++ b/macros/latex/contrib/randexam/randexam-a-answer.pdf diff --git a/macros/latex/contrib/randexam/randexam-a-answer.tex b/macros/latex/contrib/randexam/randexam-a-answer.tex index fdfec30618..bd1cbc9f70 100644 --- a/macros/latex/contrib/randexam/randexam-a-answer.tex +++ b/macros/latex/contrib/randexam/randexam-a-answer.tex @@ -1,8 +1,8 @@ % -*- coding: utf-8 -*- % !TEX program = xelatex -\documentclass[12pt,most]{randexam} +\documentclass[12pt,math=all]{randexam} -%\answerfalse % hide answers +%\boolfalse{exam@answer} % hide answers \SetExamOption{ seed = 19061116, % random seed @@ -10,7 +10,7 @@ \begin{document} -\examtitle{name=Math 1906 Final Exam,date=2018-06-28,version=A} % make exam title +\examtitle{name=Math 1906 Final Exam,date=\today,version=A} % make exam title \gradetable[total=4] @@ -309,7 +309,7 @@ Text text $H_0:\mu=3140$ text text ($\alpha = 0.01$). \exampart{Work out math proofs.}{2 questions; 16 points in total.} -\DeclareExamTranslation{current}{solution-Solution=Proof} % rename "Solution" as "Proof" +\SetExamTranslation{solution-Solution=Proof} % rename "Solution" as "Proof" \begin{question}[points=9] The first question $\{x_n\}$ text $x_1=\sqrt2$, $x_{n+1}=\sqrt{2+x_n}$. diff --git a/macros/latex/contrib/randexam/randexam-a-blank.pdf b/macros/latex/contrib/randexam/randexam-a-blank.pdf Binary files differindex 1a85a26f4c..dcc54e2939 100644 --- a/macros/latex/contrib/randexam/randexam-a-blank.pdf +++ b/macros/latex/contrib/randexam/randexam-a-blank.pdf diff --git a/macros/latex/contrib/randexam/randexam-b-answer.pdf b/macros/latex/contrib/randexam/randexam-b-answer.pdf Binary files differindex 349d3a80d9..c6be0a3b3d 100644 --- a/macros/latex/contrib/randexam/randexam-b-answer.pdf +++ b/macros/latex/contrib/randexam/randexam-b-answer.pdf diff --git a/macros/latex/contrib/randexam/randexam-b-blank.pdf b/macros/latex/contrib/randexam/randexam-b-blank.pdf Binary files differindex 5ee6962d09..17ea5a41ab 100644 --- a/macros/latex/contrib/randexam/randexam-b-blank.pdf +++ b/macros/latex/contrib/randexam/randexam-b-blank.pdf diff --git a/macros/latex/contrib/randexam/randexam.cls b/macros/latex/contrib/randexam/randexam.cls index d103dfe558..105d3de168 100644 --- a/macros/latex/contrib/randexam/randexam.cls +++ b/macros/latex/contrib/randexam/randexam.cls @@ -1,50 +1,81 @@ % -*- coding: utf-8 -*- % ---------------------------------------------------------------------------- % Author: Jianrui Lyu <tolvjr@163.com> +% Package: https://ctan.org/pkg/randexam % License: The LaTeX Project Public License 1.3c % ---------------------------------------------------------------------------- \NeedsTeXFormat{LaTeX2e} -\ProvidesClass{randexam}[2024-01-28 v2024C Make an exam paper and its randomized variants] +\ProvidesClass{randexam}[2024-02-03 v2024D Make an exam paper and its randomized variants] %% Old LaTeX release could not recognize date format like 2022-11-01 %\@ifl@t@r\fmtversion{2022-11-01}{}{ \@ifl@t@r\fmtversion{2022/11/01}{}{ \ClassError{randexam}{% Your current TeX distribution is quite old.\MessageBreak - We need CTeX 3.0+ or MiKTeX 2023+ or TeXLive 2023+% + We need TeXLive 2023+ or MiKTeX 2023+ or CTeX 3.0+% }{Please update your TeX distribution first.} } +%% --------------------------------------------------------------------------- +%% Start ignoring spaces in the code +%% --------------------------------------------------------------------------- + \RequirePackage{functional} \IgnoreSpacesOn +%% --------------------------------------------------------------------------- +%% Declare class options +%% --------------------------------------------------------------------------- + \RequirePackage{etoolbox} -\newbool{plain} \boolfalse{plain} % use plain page style -\newbool{twoinone} \boolfalse{twoinone} % use A3 paper -\newbool{oneside} \boolfalse{oneside} % use single sided exam paper -\newbool{resetnumber} \booltrue{resetnumber} % reset numbers in new exam groups -\newbool{random} \boolfalse{random} % shuffle questions -\newbool{answer} \booltrue{answer} % show answers -\newbool{amsfonts} \boolfalse{amsfonts} % use ams fonts -\newbool{freealign} \boolfalse{freealign} % load freealign package -\newbool{medmath} \boolfalse{medmath} % use medium-size formulas -\newbool{evaluator} \boolfalse{evaluator} % add evaluator line in the grade table - -\DeclareKeys{ - plain .if = plain, - a3paper .if = twoinone, - a3input .code = \booltrue{twoinone}\booltrue{plain}, - oneside .if = oneside, - random .if = random, - noanswer .ifnot = answer, - amsfonts .if = amsfonts, - freealign .if = freealign, - medmath .if = medmath, - evaluator .if = evaluator, - many .code = \booltrue{freealign}, - most .code = \booltrue{freealign}\booltrue{medmath} +\newbool{exam@plain} \boolfalse{exam@plain} % use plain page style +\newbool{exam@twoinone} \boolfalse{exam@twoinone} % use A3 paper +\newbool{exam@oneside} \boolfalse{exam@oneside} % use single sided exam paper +\newbool{exam@resetnumber}\booltrue{exam@resetnumber} % reset numbers in new exam parts +\newbool{exam@random} \boolfalse{exam@random} % shuffle questions +\newbool{exam@answer} \booltrue{exam@answer} % show answers +\newbool{exam@evaluator} \boolfalse{exam@evaluator} % add evaluator line in the grade table +\newbool{exam@mathdesign} \booltrue{exam@mathdesign} % use mathdesign fonts +\newbool{exam@freealign} \boolfalse{exam@freealign} % load freealign package +\newbool{exam@medmath} \boolfalse{exam@medmath} % use medium-size formulas +\newbool{exam@moremath} \boolfalse{exam@moremath} % define more math commands + +\DeclareKeys[randexam]{ + plain .if = exam@plain + ,a3paper .if = exam@twoinone + ,a3input .code = \booltrue{exam@twoinone}\booltrue{exam@plain} + ,oneside .if = exam@oneside + ,random .if = exam@random + ,noanswer .ifnot = exam@answer + ,evaluator .if = exam@evaluator + ,mathdesign .if = exam@mathdesign + ,freealign .if = exam@freealign + ,medmath .if = exam@medmath + ,moremath .if = exam@moremath + ,math .choice: + ,math .default:n = many + ,math/many .code = \booltrue{exam@mathdesign}\booltrue{exam@freealign} + ,math/most .code = \booltrue{exam@mathdesign}\booltrue{exam@freealign} + \booltrue{exam@medmath} + ,math/all .code = \booltrue{exam@mathdesign}\booltrue{exam@freealign} + \booltrue{exam@medmath}\booltrue{exam@moremath} +} + +%% Support for Chinese language +\newbool{exam@ctex} \boolfalse{exam@ctex} % load ctex package +\newbool{exam@solidot} \boolfalse{exam@solidot} % use full-width solid periods +\newbool{exam@sourcehan}\boolfalse{exam@sourcehan} % use source han font +\DeclareKeys[randexam]{ + ctex .if = exam@ctex + ,solidot .if = exam@solidot + ,sourcehan .if = exam@sourcehan + ,chinese .choice: + ,chinese .default:n = many + ,chinese/many .code = \booltrue{exam@ctex} + ,chinese/most .code = \booltrue{exam@ctex}\booltrue{exam@solidot} + ,chinese/all .code = \booltrue{exam@ctex}\booltrue{exam@solidot}\booltrue{exam@sourcehan} } \DeclareUnknownKeyHandler{\PassOptionsToClass{\CurrentOption}{article}} @@ -53,11 +84,11 @@ \LoadClass{article} -\iftwoinone +\ifbool{exam@twoinone}{ \RequirePackage[a3paper,landscape,twocolumn,columnsep=60mm,left=30mm,right=30mm,top=25mm,bottom=25mm]{geometry} -\else +}{ \RequirePackage[a4paper,left=30mm,right=30mm,top=25mm,bottom=25mm]{geometry} -\fi +} \RequirePackage{amsmath} \RequirePackage{array} @@ -70,18 +101,26 @@ \RequirePackage{tabularx} \RequirePackage{xcolor} -\ifplain - \allowdisplaybreaks[4] -\fi +\ifbool{exam@plain}{\allowdisplaybreaks[4]}{} -\ifamsfonts - \RequirePackage{amssymb} -\else +\ifbool{exam@twoinone}{ + \RequirePackage{pdfpages} + % When pdfpages package is newer enough, putting \includepdf at the beginning + % of document body will cause an error about an undefined command; + % see https://tex.stackexchange.com/questions/352007/ieeetran-and-pdfpages + % Also since LaTeX release 2018-04-01 \@ifundefined won't turn an undefined command + % into \relax; see https://www.latex-project.org/news/latex2e-news/ltnews28.pdf + \@ifundefined{@setmarks}{\let\@setmarks\relax}{} +}{} + +\ifbool{exam@mathdesign}{ \RequirePackage[utopia]{mathdesign} % charter, utopia \renewcommand\bfdefault{bx} \let\oldoiint\oiint\renewcommand{\oiint}{\oldoiint\nolimits} \DeclareTextCommandDefault{\nobreakspace}{\leavevmode\nobreak\ } -\fi +}{ + \RequirePackage{amssymb} +} \newcolumntype{Y}{>{\centering\arraybackslash}X} \newcolumntype{n}[1]{>{\centering\arraybackslash}m{#1}} @@ -101,13 +140,11 @@ %% Otherwise, we may enable the template by using \SelectExamTemplate command \NewDocumentCommand\DeclareExamTemplate{mm+m}{ \tlSet{\expName{l@rdxm@template@#1@#2@tl}}{#3} - \ignorespaces } %% #1: exam element; #2: template name \NewDocumentCommand\SelectExamTemplate{mm}{ \tlSetEq{\expName{l@rdxm@template@#1@default@tl}}{\expName{l@rdxm@template@#1@#2@tl}} - \ignorespaces } %% #1: exam element; #2: template name. @@ -122,7 +159,7 @@ \tlSet\l@rdxm@current@language@tl{english} -\DeclareUnknownKeyHandler[randexam-translation]{ +\DeclareUnknownKeyHandler[randexam/translation]{ \tlSet{\expName{l@rdxm@translate@\l@rdxm@declare@language@tl @#1@tl}}{#2} } @@ -133,14 +170,18 @@ }{ \tlSet\l@rdxm@declare@language@tl{#1} } - \SetKeys[randexam-translation]{#2} - \ignorespaces + \SetKeys[randexam/translation]{#2} +} + +%% #1: a keyval list with keyword = transaltion format +\NewDocumentCommand\SetExamTranslation{m}{ + \tlSetEq\l@rdxm@declare@language@tl\l@rdxm@current@language@tl + \SetKeys[randexam/translation]{#1} } %% #1: language name \NewDocumentCommand\SelectExamTranslation{m}{ \tlSet\l@rdxm@current@language@tl{#1} - \ignorespaces } %% #1: keyword name. @@ -149,6 +190,17 @@ \UseName{l@rdxm@translate@\l@rdxm@current@language@tl @#1@tl} } +%% #1: keyword translation; #2: keyword number. +%% The \relax prevents functional package from treating the result as a function +\NewDocumentCommand\MakeExamNameNumber{mm}{ + \clistSet\lTmpaClist{\expWhole{#1}} + \intCompareTF{\clistVarCount\lTmpaClist}>{1}{ + \prgReturn{\relax\clistVarItem\lTmpaClist{1}#2\clistVarItem\lTmpaClist{2}} + }{ + \prgReturn{#1~#2} + } +} + \DeclareExamTranslation{english}{ answertable-Answer = Answer ,answertable-Number = Number @@ -174,21 +226,54 @@ \SelectExamTranslation{english} %% --------------------------------------------------------------------------- -%% Keyvalue commands for exam options +%% Keyvalue commands for exam elements %% --------------------------------------------------------------------------- -%% #1 module name; #2: key name; #3: its value -\NewDocumentCommand\DeclareExamValue{mm+m}{ +%% #1 element name; #2: key definitions +\NewDocumentCommand\DeclareExamValue{m+m}{ + \DeclareKeys[randexam/#1]{#2} +} + +%% #1 element name; #2: key name; #3: its value +\NewDocumentCommand\rdxm@set@one@value{mm+m}{ \tlSet{\expName{l@rdxm@value@#1@#2@tl}}{#3} - \ignorespaces } -%% #1: module name; #2: key name. +\newrobustcmd\rdxm@declare@key@handler[1]{ + \DeclareUnknownKeyHandler[randexam/#1]{\rdxm@set@one@value{#1}{##1}{##2}} +} + +%% #1 element name; #2: key-value list +\NewDocumentCommand\SetExamValue{m+m}{ + \rdxm@declare@key@handler{#1} + \SetKeys[randexam/#1]{#2} +} + +%% #1: element name; #2: key name. %% In an expandable command, we should use \UseName but not \expName. +%% When the key is undefined, the expanded result of \UseName is \relax, +%% and we could test this case with \tlIfExist function. \NewExpandableDocumentCommand\UseExamValue{mm}{ \UseName{l@rdxm@value@#1@#2@tl} } +%% In fact, \ifdef/ifcsname is a wrapper for \ifdefined/\ifcsname in eTeX; +%% they will not turn an undefined macro into \relax +\NewExpandableDocumentCommand\IfExamValueExistT{mm+m}{ + \ifcsdef{l@rdxm@value@#1@#2@tl}{#3}{} +} +\NewExpandableDocumentCommand\IfExamValueExistF{mm+m}{ + \ifcsdef{l@rdxm@value@#1@#2@tl}{}{#3} +} +\NewExpandableDocumentCommand\IfExamValueExistTF{mm+m+m}{ + \ifcsdef{l@rdxm@value@#1@#2@tl}{#3}{#4} +} + +%% #1 element name +\NewDocumentCommand\TheExamCounter{m}{ + \UseExamValue{#1}{number}{#1} +} + %% --------------------------------------------------------------------------- %% Command for exam title: \examtitle %% --------------------------------------------------------------------------- @@ -197,23 +282,14 @@ \newcommand{\underbox}[2]{\kern0pt\underline{\makebox[#1]{#2}}\kern0pt\relax} \newcommand{\underparbox}[2]{\kern0pt\underline{\parbox[b]{#1}{#2}}\kern0pt\relax} -\newcommand{\ischeck}[1]{\ifnum#1>0\,$\checkmark$\,\else\quad\fi} -\newcommand{\isquad}[1]{\ifnum#1=0\,$\checkmark$\,\else\quad\fi} - -\DeclareKeys[randexam-title]{ - name .code = \DeclareExamValue{examtitle}{name}{#1} - ,date .code = \DeclareExamValue{examtitle}{date}{#1} - ,version .code = \DeclareExamValue{examtitle}{version}{#1} -} - -\NewDocumentCommand\SetExamTitle{+m}{\SetKeys[randexam-title]{#1}} +\rdxm@declare@key@handler{examtitle} -\SetExamTitle{name=Math~1906,date=\today,version=A} +\SetExamValue{examtitle}{name=Math~1906,date=\today,version=A} \DeclareExamTemplate{examtitle}{normal}{ \begingroup \Large\noindent - \ifbool{answer}{ + \ifbool{exam@answer}{ \textcolor{red!80!black}{ \UseExamValue{examtitle}{name}\hfill\UseExamTranslation{examtitle-Solutions} } @@ -225,14 +301,14 @@ \SelectExamTemplate{examtitle}{normal} \NewDocumentCommand\examtitle{+m}{ - \SetExamTitle{#1} + \SetExamValue{examtitle}{#1} \thispagestyle{plain} - \ifbool{random}{ + \ifbool{exam@random}{ \tlIfEqT{\expWhole{\UseExamValue{examtitle}{version}}}{A}{ - \DeclareExamValue{examtitle}{version}{B} + \SetExamValue{examtitle}{version=B} } \tlIfEqT{\expWhole{\UseExamValue{examtitle}{version}}}{C}{ - \DeclareExamValue{examtitle}{version}{D} + \SetExamValue{examtitle}{version=D} } }{} \UseExamTemplate{examtitle}{default} @@ -244,17 +320,13 @@ %% total: total number of parts in current exam; %% strut: strut height in the score row. -\DeclareKeys[randexam-gradetable]{ - total .code = \DeclareExamValue{gradetable}{total}{#1} - ,total .initial:n = 6 - ,strut .code = \DeclareExamValue{gradetable}{strut}{#1} - ,strut .initial:n = 2.5em -} +\rdxm@declare@key@handler{gradetable} +\SetKeys[randexam/gradetable]{total=6,strut=2.5em} \newcounter{@exam@grade@cnt} \newrobustcmd\rdxm@part@number[1]{ \setcounter{@exam@grade@cnt}{#1} - \exam@part@number{@exam@grade@cnt} + \UseExamValue{exampart}{number}{@exam@grade@cnt} } %% #1: the tl variable; #2: the first cell; #3: the last cell @@ -288,7 +360,7 @@ {} {\UseExamValue{gradetable}{total}} \rdxm@gobble@one - \ifbool{evaluator}{ + \ifbool{exam@evaluator}{ \rdxm@table@make@row \l@rdxm@gradetable@evaluator@tl {\textbf{\UseExamTranslation{gradetable-Evaluator}} @@ -302,7 +374,7 @@ \hline \l@rdxm@gradetable@part@tl \\ \hline \l@rdxm@gradetable@score@tl \\ \hline - \ifbool{evaluator}{\l@rdxm@gradetable@evaluator@tl \\ \hline}{} + \ifbool{exam@evaluator}{\l@rdxm@gradetable@evaluator@tl \\ \hline}{} \end{tabularx} } \SelectExamTemplate{gradetable}{normal} @@ -310,7 +382,7 @@ \NewDocumentCommand\gradetable{O{}}{ \par\vspace{1em} \begingroup - \SetKeys[randexam-gradetable]{#1} + \SetKeys[randexam/gradetable]{#1} \UseExamTemplate{gradetable}{default} \endgroup } @@ -322,7 +394,7 @@ \newcommand{\rdxm@columnbox}[1]{\makebox[\columnwidth]{#1}} \newcommand{\rdxm@headleft}{\UseExamValue{examtitle}{name}} \newcommand{\rdxm@headright}{ - \ifbool{answer}{ + \ifbool{exam@answer}{ \UseExamTranslation{headfoot-Solutions} }{ \UseExamTranslation{headfoot-Name}:\hspace{12em} @@ -331,46 +403,44 @@ \newcommand{\rdxm@headtext}{\rdxm@headleft\hfill\rdxm@headright} \newcommand{\rdxm@footleft}{\UseExamValue{examtitle}{date}} \newcommand{\rdxm@footcenter}{ - \UseExamTranslation{headfoot-Page}~\thepage\space - \UseExamTranslation{headfoot-of}~\zpageref{LastPage} + \MakeExamNameNumber{\UseExamTranslation{headfoot-Page}}{\thepage} + \space + \MakeExamNameNumber{\UseExamTranslation{headfoot-of}}{\zpageref{LastPage}} } \newcommand{\rdxm@footright}{ - \UseExamTranslation{headfoot-Version}~\UseExamValue{examtitle}{version} + \MakeExamNameNumber{\UseExamTranslation{headfoot-Version}} + {\UseExamValue{examtitle}{version}} } \newcommand{\rdxm@foottext}{\rdxm@footleft\hfill\rdxm@footcenter\hfill\rdxm@footright} % fancy page style \fancyhf{} % clear head and foot -\iftwoinone - \renewcommand{\headrulewidth}{0pt}% +\ifbool{exam@twoinone}{ + \renewcommand{\headrulewidth}{0pt} \lhead{\small\underline{\rdxm@columnbox{\rdxm@headtext}\strut}} \rhead{\small\underline{\rdxm@columnbox{\rdxm@headtext}\strut}} \lfoot{\small\rdxm@columnbox{\rdxm@foottext}} \rfoot{\small\rdxm@columnbox{\stepcounter{page}\rdxm@foottext}} -\else +}{ \lhead{\small\rdxm@headleft} \rhead{\small\rdxm@headright} \cfoot{\small\rdxm@foottext} -\fi +} % plain page style \fancypagestyle{plain}{ - \renewcommand{\headrulewidth}{0pt}% + \renewcommand{\headrulewidth}{0pt} \fancyhf{} - \iftwoinone + \ifbool{exam@twoinone}{ \rhead{\small\underline{\rdxm@columnbox{\rdxm@headtext\strut}}} \lfoot{\small\rdxm@columnbox{\rdxm@foottext}} \rfoot{\small\rdxm@columnbox{\stepcounter{page}\rdxm@foottext}} - \else + }{ \cfoot{\small\rdxm@foottext} - \fi + } } -\ifplain - \pagestyle{plain} -\else - \pagestyle{fancy} -\fi +\ifbool{exam@plain}{\pagestyle{plain}}{\pagestyle{fancy}} %% --------------------------------------------------------------------------- %% Class option for shuffling questions: random @@ -384,17 +454,18 @@ seed .initial:n = 19061116 } -\ifrandom +\ifbool{exam@random}{ \RequirePackage{pgf} \RequirePackage{pgffor} - \newcommand*\exam@set@seed{% - %% 当\pgfmathrandomçš„å‚数为3çš„å€æ•°æ—¶ï¼Œå¯¹ç›¸é‚»ç§å生æˆçš„多个éšæœºæ•°åˆ†å¸ƒä¸å‡åŒ€ - %\pgfmathsetseed{\numexpr\rdxm@random@seed+\value{rdxm@part}-1\relax}% - %% å› æ¤æˆ‘们改用下é¢çš„方法,用éšæœºæ•°ç§å生æˆä¸‹ä¸€ä¸ªéšæœºæ•°ç§å - \pgfmathsetseed{\rdxm@random@seed}% - \pgfmathrandominteger\rdxm@random@seed{1}{2147483647}% + \newcommand*\exam@set@seed{ + %% When the argument of \pgfmathrandom is a multiple of three, + %% the random numbers generated by nearby seeds are not uniformly distributed + %\pgfmathsetseed{\numexpr\rdxm@random@seed+\value{exampart}-1\relax} + %% Therefore we take this approach: generating next random seed with current seed + \pgfmathsetseed{\rdxm@random@seed} + \pgfmathrandominteger\rdxm@random@seed{1}{2147483647} } -\fi +}{} %% --------------------------------------------------------------------------- %% Command for exam groups: \exampart @@ -403,20 +474,26 @@ %% Environment for solutions: solution %% --------------------------------------------------------------------------- -%% You need to put .code before .initial:n -\DeclareKeys[randexam-exampart]{% - partnumber .code = \let\exam@part@number#1, - partnumber .initial:n = \Roman, -} +\newcounter{exampart} +\renewcommand\theexampart{\Roman{exampart}} + +\rdxm@declare@key@handler{exampart} +\SetExamValue{exampart}{number=\Roman} + +%% No displaying question number when there is only one question in the part +\newbool{exam@onlyonequestion}\boolfalse{exam@onlyonequestion} -\newif\ifonlyonequestion \onlyonequestionfalse % æ¤éƒ¨åˆ†ä»…有一é“题时ä¸æ˜¾ç¤ºé¢˜ç›®ç¼–å· \xdef\allquestions{} \xdef\lastquestion{} -\newcounter{question} % 当å‰é¢˜åž‹çš„å°é¢˜ç¼–å· -\newcounter{questionreal} % 实际显示的å°é¢˜ç¼–å·ï¼Œåœ¨å„题型å°é¢˜ç»Ÿä¸€ç¼–å·æ—¶ä½¿ç”¨ -\newcounter{totalquestions} % 之å‰å„题型å°é¢˜æ€»æ•°ï¼Œåœ¨å„题型å°é¢˜ç»Ÿä¸€ç¼–å·æ—¶ä½¿ç”¨ -\newcounter{choice} % åŽé¢é€‰æ‹©é¢˜çš„ abcd 环境è¦ç”¨åˆ° +%% question: problem number within current part +%% questionreal: problem number for display, used when exam@resetnumber=false +%% totalquestions: total number of problems in previous parts, used when exam@resetnumber=false +\newcounter{question} +\newcounter{questionreal} +\newcounter{totalquestions} + +\newcounter{choice} % used in abcd environment \newcommand{\hangtext}{} \newlength{\hanglength} \colorlet{part~number}{black} @@ -426,83 +503,83 @@ \newcounter{rdxm@shuffle@temp@cnt} \newcounter{rdxm@list@temp@cnt} -\newcommand\rdxm@list@print[1]{% - \par\renewcommand*{\do}[1]{(##1)}% +\newcommand\rdxm@list@print[1]{ + \par\renewcommand*{\do}[1]{(##1)} \dolistloop#1% } -\newcommand\rdxm@list@remove[2]{% +\newcommand\rdxm@list@remove[2]{ %\rdxm@list@print\rdxm@shuffle@list - \setcounter{rdxm@list@temp@cnt}{0}% - \global\let\rdxm@tmpa@list=#1% + \setcounter{rdxm@list@temp@cnt}{0} + \global\let\rdxm@tmpa@list=#1 \gdef#1{}% - \par\renewcommand*{\do}[1]{% - \stepcounter{rdxm@list@temp@cnt}% - \ifnumequal{\value{rdxm@list@temp@cnt}}{#2}{% - \def\rdxm@list@item{##1}% - %[##1]% + \par\renewcommand*{\do}[1]{ + \stepcounter{rdxm@list@temp@cnt} + \ifnumequal{\value{rdxm@list@temp@cnt}}{#2}{ + \def\rdxm@list@item{##1} + %[##1] }{ - \listxadd#1{##1}% + \listxadd#1{##1} }% }% \dolistloop\rdxm@tmpa@list } -\newcommand\rdxm@shuffle@questions{% +\newcommand\rdxm@shuffle@questions{ \exam@set@seed - \ifnumgreater{\value{question}}{2}{% - \gdef\rdxm@shuffle@list{}% - \foreach \i in {1,...,\value{question}} {\listxadd\rdxm@shuffle@list{\i}}% - %% 首尾两个å°é¢˜çš„ä½ç½®æ€»è¦æ”¹å˜ - \pgfmathrandom{2,\value{question}}% - \rdxm@list@remove\rdxm@shuffle@list{\pgfmathresult}% - \global\csletcs{rdxm@question@b@1}{rdxm@question@a@\rdxm@list@item}% + \ifnumgreater{\value{question}}{2}{ + \gdef\rdxm@shuffle@list{} + \foreach \i in {1,...,\value{question}} {\listxadd\rdxm@shuffle@list{\i}} + %% always change the postions of the first and the last questions + \pgfmathrandom{2,\value{question}} + \rdxm@list@remove\rdxm@shuffle@list{\pgfmathresult} + \global\csletcs{rdxm@question@b@1}{rdxm@question@a@\rdxm@list@item} \ifnumequal{\rdxm@list@item}{\value{question}}{ - \pgfmathrandom{\numexpr\value{question}-1\relax}% - \rdxm@list@remove\rdxm@shuffle@list{\pgfmathresult}% - \global\csletcs{rdxm@question@b@\the\value{question}}{rdxm@question@a@\rdxm@list@item}% - }{% - \pgfmathrandom{\numexpr\value{question}-2\relax}% - \rdxm@list@remove\rdxm@shuffle@list{\pgfmathresult}% - \global\csletcs{rdxm@question@b@\the\value{question}}{rdxm@question@a@\rdxm@list@item}% - }% - %% 其他å°é¢˜çš„ä½ç½®æ²¡æœ‰ä»»ä½•é™åˆ¶ - \setcounter{rdxm@shuffle@temp@cnt}{1}% - \whileboolexpr{% - test{\ifnumless{\value{rdxm@shuffle@temp@cnt}}{\numexpr\value{question}-1\relax}}% - }{% - \stepcounter{rdxm@shuffle@temp@cnt}% - \pgfmathrandom{\numexpr\value{question}-\value{rdxm@shuffle@temp@cnt}\relax}% - \rdxm@list@remove\rdxm@shuffle@list{\pgfmathresult}% - \global\csletcs{rdxm@question@b@\the\value{rdxm@shuffle@temp@cnt}}{% + \pgfmathrandom{\numexpr\value{question}-1\relax} + \rdxm@list@remove\rdxm@shuffle@list{\pgfmathresult} + \global\csletcs{rdxm@question@b@\the\value{question}}{rdxm@question@a@\rdxm@list@item} + }{ + \pgfmathrandom{\numexpr\value{question}-2\relax} + \rdxm@list@remove\rdxm@shuffle@list{\pgfmathresult} + \global\csletcs{rdxm@question@b@\the\value{question}}{rdxm@question@a@\rdxm@list@item} + } + %% no restrition for questions in the middle + \setcounter{rdxm@shuffle@temp@cnt}{1} + \whileboolexpr{ + test{\ifnumless{\value{rdxm@shuffle@temp@cnt}}{\numexpr\value{question}-1\relax}} + }{ + \stepcounter{rdxm@shuffle@temp@cnt} + \pgfmathrandom{\numexpr\value{question}-\value{rdxm@shuffle@temp@cnt}\relax} + \rdxm@list@remove\rdxm@shuffle@list{\pgfmathresult} + \global\csletcs{rdxm@question@b@\the\value{rdxm@shuffle@temp@cnt}}{ rdxm@question@a@\rdxm@list@item - }% - }% - }{% - \ifnumequal{\value{question}}{2}{% - \global\csletcs{rdxm@question@b@1}{rdxm@question@a@2}% - \global\csletcs{rdxm@question@b@2}{rdxm@question@a@1}% - }{}% - }% + } + } + }{ + \ifnumequal{\value{question}}{2}{ + \global\csletcs{rdxm@question@b@1}{rdxm@question@a@2} + \global\csletcs{rdxm@question@b@2}{rdxm@question@a@1} + }{} + } } -\newcommand{\printquestions}{% - \ifrandom +\newcommand{\printquestions}{ + \ifbool{exam@random}{ \rdxm@appto@questions \rdxm@shuffle@questions - \setcounter{question}{0}% + \setcounter{question}{0} \allquestions - \fi - \xdef\allquestions{}% - \xdef\lastquestion{}% + }{} + \xdef\allquestions{} + \xdef\lastquestion{} } -\newcounter{rdxm@part} - \DeclareExamTemplate{exampart}{normal}{ \noindent \textbf{ - \textcolor{part~number}{\UseExamTranslation{exampart-Part}~\Roman{rdxm@part}} + \textcolor{part~number}{ + \MakeExamNameNumber{\UseExamTranslation{exampart-Part}}{\TheExamCounter{exampart}} + } :~\UseExamValue{exampart}{type} } \space(\UseExamValue{exampart}{points}) @@ -513,21 +590,21 @@ \printquestions \setcounter{totalquestions}{\value{totalquestions}+\value{question}} \setcounter{question}{0} - \stepcounter{rdxm@part} + \stepcounter{exampart} \vspace{1em} \begingroup - \DeclareExamValue{exampart}{type}{#1} - \DeclareExamValue{exampart}{points}{#2} + \SetExamValue{exampart}{type=#1,points=#2} \UseExamTemplate{exampart}{default} \endgroup \par\nopagebreak \if\relax\detokenize{#1}\relax % #1 is empty - \onlyonequestiontrue + \booltrue{exam@onlyonequestion} \else - \onlyonequestionfalse - \vspace{1em}% + \boolfalse{exam@onlyonequestion} + \vspace{1em} \fi - %å…¶ä¸è®¾å®šäº†\@nobreaktrue,ä¿è¯åœ¨åˆ—表å‰ä¹Ÿä¸åˆ†é¡µï¼Œè¯¦æƒ…è§ source2e + % \@afterheading sets \@nobreaktrue, which will prevent page breaks before lists; + % see source2e \@afterheading } @@ -542,7 +619,7 @@ \NewDocumentCommand\examdata{+m}{ \printquestions\rdxm@stop@random - \DeclareExamValue{examdata}{caption}{#1} + \SetExamValue{examdata}{caption=#1} \UseExamTemplate{examdata}{default} } @@ -550,12 +627,7 @@ \newcommand\ignorepars{\@ifnextchar\par{\expandafter\ignorepars\@gobble}{}} -% local definition, valid only in current question -\DeclareKeys[randexam-question]{ - points .store = \l@rdxm@question@points - ,level .store = \l@rdxm@question@level - ,year .store = \l@rdxm@question@year -} +\rdxm@declare@key@handler{question} \newcommand\pointorpoints[1]{ \ifnumgreater{#1}{1}{ @@ -565,26 +637,28 @@ } } -\newcommand{\questionpointstext}[1]{ (#1 \pointorpoints{#1}) } +\newcommand{\questionpointstext}[1]{ (#1~\pointorpoints{#1}) } \newcommand\rdxm@hook@exec@other@keys{} \newrobustcmd\execute@question@keys{ \rdxm@hook@exec@other@keys - \ifdefvoid{\l@rdxm@question@points}{}{\questionpointstext{\l@rdxm@question@points}} + \IfExamValueExistT{question}{points}{ + \questionpointstext{\UseExamValue{question}{points}} + } } \DeclareExamTemplate{questionbegin}{normal}{ - \ifresetnumber - \ifonlyonequestion - \renewcommand{\hangtext}{\qquad}% - \else + \ifbool{exam@resetnumber}{ + \ifbool{exam@onlyonequestion}{ + \renewcommand{\hangtext}{\qquad} + }{ \renewcommand{\hangtext}{\textbf{\textsf{\textcolor{question~number}{\arabic{question}}.}}\;\,} - \fi - \else - \setcounter{questionreal}{\value{totalquestions}+\value{question}}% + } + }{ + \setcounter{questionreal}{\value{totalquestions}+\value{question}} \renewcommand{\hangtext}{\textbf{\textsf{\textcolor{question~number}{\arabic{questionreal}}.}}\;\,} - \fi + } \settowidth{\hanglength}{\hangtext} \description[leftmargin=\hanglength,labelwidth=0pt,labelsep=0pt,topsep=0pt,parsep=0pt] \item[\hangtext]\execute@question@keys @@ -597,7 +671,7 @@ \NewDocumentEnvironment{questionreal}{O{}}{ \stepcounter{question} \setcounter{choice}{0} - \SetKeys[randexam-question]{#1} + \SetKeys[randexam/question]{#1} \UseExamTemplate{questionbegin}{default} }{ \UseExamTemplate{questionend}{default} @@ -628,30 +702,30 @@ \let \oldmedskip = \medskip \let \oldbigskip = \bigskip -\ifrandom - \newcommand\rdxm@appto@questions{% - \xappto\allquestions{\expandonce\lastquestion}% - }% - \NewEnviron{question}{% - \stepcounter{question}% +\ifbool{exam@random}{ + \newcommand\rdxm@appto@questions{ + \xappto\allquestions{\expandonce\lastquestion} + } + \NewEnviron{question}{ + \stepcounter{question} \rdxm@appto@questions - \csxdef{rdxm@question@a@\the\value{question}}{% - \unexpanded{\begin{questionreal}}% - \unexpanded\expandafter{\BODY}% - \unexpanded{\end{questionreal}}% - }% - \csxdef{rdxm@question@b@\the\value{question}}{% - \expandonce{\csname rdxm@question@a@\the\value{question}\endcsname}% - }% - \xdef\lastquestion{% - \expandonce{\csname rdxm@question@b@\the\value{question}\endcsname}% - }% + \csxdef{rdxm@question@a@\the\value{question}}{ + \unexpanded{\begin{questionreal}} + \unexpanded\expandafter{\BODY} + \unexpanded{\end{questionreal}} + } + \csxdef{rdxm@question@b@\the\value{question}}{ + \expandonce{\csname rdxm@question@a@\the\value{question}\endcsname} + } + \xdef\lastquestion{ + \expandonce{\csname rdxm@question@b@\the\value{question}\endcsname} + } } - \NewEnviron{solution}{% - \csxappto{rdxm@question@a@\the\value{question}}{% - \unexpanded{\begin{solutionreal}}% - \expandonce{\BODY}% - \unexpanded{\end{solutionreal}}% + \NewEnviron{solution}{ + \csxappto{rdxm@question@a@\the\value{question}}{ + \unexpanded{\begin{solutionreal}} + \expandonce{\BODY} + \unexpanded{\end{solutionreal}} }% } \renewcommand{\newpage}{\gappto\lastquestion{\oldnewpage}} @@ -659,54 +733,47 @@ \renewcommand{\smallskip}{\csgappto{rdxm@question@a@\the\value{question}}{\oldsmallskip}} \renewcommand{\medskip}{\csgappto{rdxm@question@a@\the\value{question}}{\oldmedskip}} \renewcommand{\bigskip}{\csgappto{rdxm@question@a@\the\value{question}}{\oldbigskip}} -\else +}{ \newenvironment{question}[1][]{\questionreal[#1]}{\endquestionreal} %\newenvironment{solution}{\solutionreal}{\endsolutionreal} \NewEnviron{solution}{\begin{solutionreal}\BODY\end{solutionreal}} -\fi +} -\newcommand{\rdxm@stop@random}{% - \ifrandom - \renewenvironment{question}{\questionreal}{\endquestionreal}% - \renewenvironment{solution}{\solutionreal}{\endsolutionreal}% +\newcommand{\rdxm@stop@random}{ + \ifbool{exam@random}{ + \renewenvironment{question}{\questionreal}{\endquestionreal} + \renewenvironment{solution}{\solutionreal}{\endsolutionreal} \let \newpage = \oldnewpage \let \vfill = \oldvfill \let \smallskip = \oldsmallskip \let \medskip = \oldmedskip \let \bigskip = \oldbigskip - \fi + }{} } \def\CommentCutFile{\jobname.cut} -\AtBeginDocument{% - \ifanswer\else - \excludecomment{solution} - \fi +\AtBeginDocument{ + \ifbool{exam@answer}{}{\excludecomment{solution}} } %% --------------------------------------------------------------------------- %% Command for answer tables: \answertable %% --------------------------------------------------------------------------- -%% property .store is the same as .tl_set:N in ltkeys. -%% you need to put .code before .initial:n. %% total: total number of questions in current exam part; %% column: number of questions in each answer row; %% strut: strut height in each answer rows; %% notice: notice text before the answer table. -\DeclareKeys[randexam-answertable]{ - total .code = \DeclareExamValue{answertable}{total}{#1} - ,column .code = \DeclareExamValue{answertable}{column}{#1} - ,strut .code = \DeclareExamValue{answertable}{strut}{#1} - ,strut .initial:n = 1em - ,notice .code = \DeclareExamValue{answertable}{notice}{#1} - ,notice .initial:n = {Notice:~you~MUST~write~the~answers~in~the~following~tables.} +\rdxm@declare@key@handler{answertable} +\SetKeys[randexam/answertable]{ + strut = 1em + ,notice = {Notice:~you~MUST~write~the~answers~in~the~following~tables.} } -\gdef\answer@lines@temp{}% -\newcommand{\answer@lines@add}[1]{% - \xdef\answer@lines@temp{\answer@lines@temp#1}% +\gdef\answer@lines@temp{} +\newcommand{\answer@lines@add}[1]{ + \xdef\answer@lines@temp{\answer@lines@temp#1} } \newrobustcmd\answer@number@hided[1]{\UseExamTranslation{answertable-Number}} @@ -719,38 +786,39 @@ \newcounter{answer@total} %% #1: strut; #2: total; #3: column. -\newcommand{\answer@lines}[3]{% - \setcounter{answer@row}{(#2-1)/#3+1}% 除法å‘下å–整,改为å‘上å–æ•´ +\newcommand{\answer@lines}[3]{ + % change rounding down to rounding up in the division + \setcounter{answer@row}{(#2-1)/#3+1} \begingroup - \let\hline=\relax \let\\=\relax % ç¦æ¢å±•å¼€ - \gdef\answer@lines@temp{}% - \setcounter{answer@total}{1}% + \let\hline=\relax \let\\=\relax % forbid expansions + \gdef\answer@lines@temp{} + \setcounter{answer@total}{1} \whileboolexpr{ test{\ifnumgreater{\value{answer@row}}{0}} - }{% - \addtocounter{answer@row}{-1}% - \answer@lines@add{\answer@number@hided}% - \setcounter{answer@col}{1}% - \unlessboolexpr{% - test{\ifnumgreater{\value{answer@col}}{#3}}% - }{% - \answer@lines@add{&}% - \ifnumgreater{\value{answer@total}}{#2}{}{% - \answer@lines@add{\arabic{answer@total}}% - }% - \stepcounter{answer@col}% - \stepcounter{answer@total}% - }% - \answer@lines@add{\\ \hline \answer@cell@strut{#1}}% - \setcounter{answer@col}{1}% + }{ + \addtocounter{answer@row}{-1} + \answer@lines@add{\answer@number@hided} + \setcounter{answer@col}{1} \unlessboolexpr{ test{\ifnumgreater{\value{answer@col}}{#3}} - }{% - \answer@lines@add{&}% - \stepcounter{answer@col}% - }% - \answer@lines@add{\\ \hline}% - }% + }{ + \answer@lines@add{&} + \ifnumgreater{\value{answer@total}}{#2}{}{ + \answer@lines@add{\arabic{answer@total}} + } + \stepcounter{answer@col} + \stepcounter{answer@total} + } + \answer@lines@add{\\ \hline \answer@cell@strut{#1}} + \setcounter{answer@col}{1} + \unlessboolexpr{ + test{\ifnumgreater{\value{answer@col}}{#3}} + }{ + \answer@lines@add{&} + \stepcounter{answer@col} + } + \answer@lines@add{\\ \hline} + } \endgroup \answer@lines@temp } @@ -767,7 +835,7 @@ \NewDocumentCommand\answertable{O{}}{ \begingroup - \SetKeys[randexam-answertable]{#1} + \SetKeys[randexam/answertable]{#1} \UseExamTemplate{answertable}{default} \endgroup \par\vspace{0.8em} @@ -780,7 +848,7 @@ %% Command for multiple-choice questions: \pickin and \pickout %% --------------------------------------------------------------------------- -\newcommand{\answer}[1]{\ifanswer#1\else\phantom{#1}\fi} +\newcommand{\answer}[1]{\ifbool{exam@answer}{#1}{\phantom{#1}}} \newcommand*{\cdotfill}{\leavevmode\xleaders\hbox to 0.5em{\hss$\cdot$\hss}\hfill\kern0pt\relax} @@ -798,18 +866,19 @@ \newcommand*{\fillout}[1]{\allowbreak\hbox{}\nobreak\ulinefill{#1}\underline{\color{blue}\answer{#1}}\ulinefill{#1}} \newcommand*{\fillin}[1]{\underline{\hspace{1em}\color{blue}\minwidthbox{2em}{\answer{#1}}\hspace{1em}}} -\newcommand*\pickoutreal[1]{% - \unskip\nobreak\cdotfill(\makebox[1.5em]{\color{blue}\answer{#1}})% +\newcommand*\pickoutreal[1]{ + \unskip\nobreak\cdotfill(\makebox[1.5em]{\color{blue}\answer{#1}}) } -\newcommand*\pickinreal[1]{% +\newcommand*\pickinreal[1]{ \unskip\nobreak - \hspace{0.3em}(\makebox[1.5em]{\color{blue}\answer{#1}})\hspace{0.3em}% + \hspace{0.3em}(\makebox[1.5em]{\color{blue}\answer{#1}})\hspace{0.3em} \ignorespaces } -%% 选择题四个选项打乱顺åºï¼Œç”¨ä¸‰ç§æ–¹æ³•å³å¯ä¿è¯ç”案ä¸åŒ +%% We choose three ways for shuffling four choices in a multiple-choice question %% 1:ABCD -> CDABï¼› 2:ABCD -> BADC; 3: ABCD -> DCBA -%% å³åœ¨ä¸¤è¡ŒæŽ’列时仅用到上下交æ¢ä»¥åŠå·¦å³äº¤æ¢ï¼Œè¿™æ ·å¯ä»¥ä¿æŒä¸¤è¡Œé•¿åº¦ä¸å˜ +%% In other word, we only exchange choices in the same row or column, +%% so as to make the lengths of choice lines unchanged \csdef{rdxm@shuffle@1@A}{C} \csdef{rdxm@shuffle@2@A}{B} \csdef{rdxm@shuffle@3@A}{D} \csdef{rdxm@shuffle@1@B}{D} \csdef{rdxm@shuffle@2@B}{A} \csdef{rdxm@shuffle@3@B}{C} @@ -819,33 +888,33 @@ \def\@rdxm@choice@random{0} \newcommand\rdxm@shuffle@abcd[1]{\csuse{rdxm@shuffle@\@rdxm@choice@random @#1}} -\newcommand*\pickout[1]{% - \ifbool{random}{% +\newcommand*\pickout[1]{ + \ifbool{exam@random}{ \exam@set@seed - \pgfmathrandominteger\@rdxm@choice@random{1}{3}% + \pgfmathrandominteger\@rdxm@choice@random{1}{3} %\@rdxm@choice@random - \pickoutreal{\rdxm@shuffle@abcd{#1}}% - }{% - \pickoutreal{#1}% - }% + \pickoutreal{\rdxm@shuffle@abcd{#1}} + }{ + \pickoutreal{#1} + } } -\newcommand*\pickoutfixed[1]{% - \pickoutreal{#1}% - \randomfalse +\newcommand*\pickoutfixed[1]{ + \pickoutreal{#1} + \boolfalse{exam@random} } -\newcommand*\pickin[1]{% - \ifbool{random}{% +\newcommand*\pickin[1]{ + \ifbool{exam@random}{ \exam@set@seed - \pgfmathrandominteger\@rdxm@choice@random{1}{3}% + \pgfmathrandominteger\@rdxm@choice@random{1}{3} %\@rdxm@choice@random - \pickinreal{\rdxm@shuffle@abcd{#1}}% - }{% - \pickinreal{#1}% - }% + \pickinreal{\rdxm@shuffle@abcd{#1}} + }{ + \pickinreal{#1} + } } -\newcommand*\pickinfixed[1]{% - \pickinreal{#1}% - \randomfalse +\newcommand*\pickinfixed[1]{ + \pickinreal{#1} + \boolfalse{exam@random} } %% --------------------------------------------------------------------------- @@ -856,17 +925,17 @@ \newlength{\rdxm@item@len} \newlength{\rdxm@label@len} -\newcommand\rdxm@item@temp{% - \unskip\cr\stepcounter{choice}(\Alph{choice})\ % +\newcommand\rdxm@item@temp{ + \unskip\cr\stepcounter{choice}(\Alph{choice})\ } -\newcommand\rdxm@item@box{% +\newcommand\rdxm@item@box{ \hfill\egroup\hfill\hbox to \rdxm@item@len\bgroup \stepcounter{choice}(\Alph{choice})\ \ignorespaces } -\newcommand\rdxm@item@par{% - \stepcounter{choice}% - \def\rdxm@label@text{(\Alph{choice})\ }% - \settowidth{\rdxm@label@len}{\rdxm@label@text}% +\newcommand\rdxm@item@par{ + \stepcounter{choice} + \def\rdxm@label@text{(\Alph{choice})\ } + \settowidth{\rdxm@label@len}{\rdxm@label@text} \par \parshape 2 \hanglength \linewidth \dimexpr\hanglength + \rdxm@label@len\relax \dimexpr\linewidth - \rdxm@label@len\relax @@ -875,87 +944,87 @@ \NewEnviron{abcdreal}{ \unskip - \setlength{\parindent}{0pt}% - \setlength{\parskip}{0pt}% - \setcounter{choice}{0}% + \setlength{\parindent}{0pt} + \setlength{\parskip}{0pt} + \setcounter{choice}{0} \let\item=\rdxm@item@temp - \settowidth{\rdxm@item@len}{\vbox{\halign{##\hfil\cr\BODY\crcr}}}% - \setcounter{choice}{0}% + \settowidth{\rdxm@item@len}{\vbox{\halign{##\hfil\cr\BODY\crcr}}} + \setcounter{choice}{0} \ifdim\rdxm@item@len>0.486\linewidth - \setlength{\rdxm@item@len}{\linewidth}% + \setlength{\rdxm@item@len}{\linewidth} \let\item=\rdxm@item@par \BODY\par \else \ifdim\rdxm@item@len>.243\linewidth - \setlength{\rdxm@item@len}{0.5\linewidth}% + \setlength{\rdxm@item@len}{0.5\linewidth} \else - \setlength{\rdxm@item@len}{0.25\linewidth}% + \setlength{\rdxm@item@len}{0.25\linewidth} \fi \let\item=\rdxm@item@box \par\bgroup\BODY\hfill\egroup\par \fi } -\newcommand\rdxm@item@one@line{% +\newcommand\rdxm@item@one@line{ \unskip \ifnumequal{\value{choice}}{0}{}{\hfill} - \stepcounter{choice}(\Alph{choice})\ % + \stepcounter{choice}(\Alph{choice})\ } -\newcommand\rdxm@item@two@line{% +\newcommand\rdxm@item@two@line{ \unskip - \ifnumodd{\value{choice}}{&}{\unskip\cr}% - \stepcounter{choice}(\Alph{choice})\ % + \ifnumodd{\value{choice}}{&}{\unskip\cr} + \stepcounter{choice}(\Alph{choice})\ } \NewEnviron{abcd*real}{ \unskip - \setlength{\parindent}{0pt}% - \setlength{\parskip}{0pt}% - \setcounter{choice}{0}% + \setlength{\parindent}{0pt} + \setlength{\parskip}{0pt} + \setcounter{choice}{0} \let\item=\rdxm@item@one@line - \settowidth{\rdxm@item@len}{\BODY}% + \settowidth{\rdxm@item@len}{\BODY} \ifdim\rdxm@item@len<0.95\linewidth - \setcounter{choice}{0}% + \setcounter{choice}{0} \par\bgroup\BODY\hfill\hfill\par\egroup\par \else - \setcounter{choice}{0}% + \setcounter{choice}{0} \let\item=\rdxm@item@two@line - \settowidth{\rdxm@item@len}{\vbox{\halign{##&##\hfil\cr\BODY\crcr}}}% + \settowidth{\rdxm@item@len}{\vbox{\halign{##&##\hfil\cr\BODY\crcr}}} \ifdim\rdxm@item@len<0.975\linewidth - \setcounter{choice}{0}% + \setcounter{choice}{0} \par\bgroup\nointerlineskip - \vbox{\halign to\linewidth{##\hfil\tabskip=0pt plus 1fil&##\hfil\cr\BODY\crcr}}% + \vbox{\halign to\linewidth{##\hfil\tabskip=0pt plus 1fil&##\hfil\cr\BODY\crcr}} \egroup\par \else - \setcounter{choice}{0}% + \setcounter{choice}{0} \let\item=\rdxm@item@par \par\bgroup\BODY\hfill\egroup\par \fi \fi } -\ifbool{random}{% +\ifbool{exam@random}{ \csdef{rdxm@swap@items@1}#1#2#3#4{\item#3\item#4\item#1\item#2} \csdef{rdxm@swap@items@2}#1#2#3#4{\item#2\item#1\item#4\item#3} \csdef{rdxm@swap@items@3}#1#2#3#4{\item#4\item#3\item#2\item#1} - \long\def\rdxm@swap@items#1\item#2\item#3\item#4\item#5\@rdxm@stop@mark{% - #1\csuse{rdxm@swap@items@\@rdxm@choice@random}{#2}{#3}{#4}{#5}% + \long\def\rdxm@swap@items#1\item#2\item#3\item#4\item#5\@rdxm@stop@mark{ + #1\csuse{rdxm@swap@items@\@rdxm@choice@random}{#2}{#3}{#4}{#5} } }{} -\NewDocumentEnvironment{abcd}{+b}{% - \ifbool{random}{% - \begin{abcdreal}\rdxm@swap@items#1\@rdxm@stop@mark\end{abcdreal}% - }{% - \begin{abcdreal}#1\end{abcdreal}% - }% +\NewDocumentEnvironment{abcd}{+b}{ + \ifbool{exam@random}{ + \begin{abcdreal}\rdxm@swap@items#1\@rdxm@stop@mark\end{abcdreal} + }{ + \begin{abcdreal}#1\end{abcdreal} + } }{} -\NewDocumentEnvironment{abcd*}{+b}{% - \ifbool{random}{% - \begin{abcd*real}\rdxm@swap@items#1\@rdxm@stop@mark\end{abcd*real}% - }{% - \begin{abcd*real}#1\end{abcd*real}% - }% +\NewDocumentEnvironment{abcd*}{+b}{ + \ifbool{exam@random}{ + \begin{abcd*real}\rdxm@swap@items#1\@rdxm@stop@mark\end{abcd*real} + }{ + \begin{abcd*real}#1\end{abcd*real} + } }{} %% --------------------------------------------------------------------------- @@ -971,8 +1040,8 @@ %% Use freealign package to align math formulas in different lines %% --------------------------------------------------------------------------- -\AtBeginDocument{% - \ifbool{freealign}{\RequirePackage{freealign}}{}% +\AtBeginDocument{ + \ifbool{exam@freealign}{\RequirePackage{freealign}}{} } %% --------------------------------------------------------------------------- @@ -982,31 +1051,31 @@ \PassOptionsToPackage{tbtags}{amsmath} \RequirePackage{amsmath} -\newcommand{\solutionpointstext}[1]{% - \textcolor{red}{#1\kern0.15em\pointorpoints{#1}}% +\newcommand{\solutionpointstext}[1]{ + \textcolor{red}{#1\kern0.15em\pointorpoints{#1}} } -\newcommand{\pointstext}[1]{% - \mbox{}\nobreak\hfill$\cdots\cdots$\solutionpointstext{#1}% +\newcommand{\pointstext}[1]{ + \mbox{}\nobreak\hfill$\cdots\cdots$\solutionpointstext{#1} \par\noindent\ignorespaces } \newcommand{\pointseqno}[1]{\eqno{\cdots\cdots\text{\solutionpointstext{#1}}}} \newcommand{\pointstag}[1]{\tag*{$\cdots\cdots$\solutionpointstext{#1}}} -\newrobustcmd{\points}[1]{% - \ifbool{mmode}{% - \ifdefstrequal{\tag}{\dft@tag}{\pointseqno{#1}}{\pointstag{#1}}% - }{% - \pointstext{#1}% - }% +\newrobustcmd{\points}[1]{ + \ifbool{mmode}{ + \ifdefstrequal{\tag}{\dft@tag}{\pointseqno{#1}}{\pointstag{#1}} + }{ + \pointstext{#1} + } } %% --------------------------------------------------------------------------- %% Use medium-size fractions and operators in both inline and displayed formulas %% --------------------------------------------------------------------------- -\AtBeginDocument{% - \ifbool{medmath}{\RequirePackage{medmath}}{}% +\AtBeginDocument{ + \ifbool{exam@medmath}{\RequirePackage{medmath}}{} } %% --------------------------------------------------------------------------- @@ -1022,150 +1091,268 @@ \setlength\arraycolsep{4pt} -\RequirePackage{diagbox} -%% ä¿®æ£ \diagbox 在 array 环境ä¸ä½¿ç”¨çš„问题 -\newrobustcmd{\diagboxtwo}[3][]{% - \ifbool{mmode}{% - \hbox{\let\tabcolsep=\arraycolsep\diagbox[#1]{$#2$}{$#3$}}% - }{% - \diagbox[#1]{#2}{#3}% +\newrobustcmd\rdxm@moremath@diagbox{ + \RequirePackage{diagbox} + %% Fix problem in using \diagbox in array environment + \newrobustcmd{\diagboxtwo}[3][]{ + \ifbool{mmode}{ + \hbox{\let\tabcolsep=\arraycolsep\diagbox[##1]{$##2$}{$##3$}} + }{ + \diagbox[##1]{##2}{##3} + } + } + \newrobustcmd{\diagboxthree}[4][]{ + \ifbool{mmode}{ + \hbox{\let\tabcolsep=\arraycolsep\diagbox[##1]{$##2$}{$##3$}{$##4$}} + }{ + \diagbox[##1]{##2}{##3}{##4} + } } } -\newrobustcmd{\diagboxthree}[4][]{% - \ifbool{mmode}{% - \hbox{\let\tabcolsep=\arraycolsep\diagbox[#1]{$#2$}{$#3$}{$#4$}}% - }{% - \diagbox[#1]{#2}{#3}{#4}% + +\newrobustcmd\rdxm@moremath@limits{ + \AtBeginDocument{ + \let\rdxm@saved@lim=\lim \def\lim{\rdxm@saved@lim\limits} + \let\rdxm@saved@sum=\sum \def\sum{\rdxm@saved@sum\limits} + \let\rdxm@saved@prod=\prod \def\prod{\rdxm@saved@prod\limits} } } -\RequirePackage{mathtools} % \mathllap 命令,pmatrix* çŽ¯å¢ƒç‰ -\RequirePackage{extarrows} - -\AtBeginDocument{% - \let\rdxm@saved@lim=\lim \def\lim{\rdxm@saved@lim\limits}% - \let\rdxm@saved@sum=\sum \def\sum{\rdxm@saved@sum\limits}% - \let\rdxm@saved@prod=\prod \def\prod{\rdxm@saved@prod\limits}% -} - -\newcommand{\e}{\mathrm{e}} -\newcommand{\R}{\mathbb{R}} - -\DeclareMathOperator{\arccot}{arccot} -\DeclareMathOperator{\Corr}{\rho} -\DeclareMathOperator{\Cov}{Cov} -\DeclareMathOperator{\diag}{diag} -\DeclareMathOperator{\grad}{grad} -\DeclareMathOperator{\Prj}{Prj} -\DeclareMathOperator{\tr}{tr} -\DeclareMathOperator{\Var}{Var} - -\DeclareMathOperator{\diver}{div} -\let\division=\div -\let\div=\diver - -\newcommand{\diff}{\mathop{}\!\mathrm{d}} -\newcommand{\dx}{\diff x} -\newcommand{\dy}{\diff y} -\def\dz{\diff z} % ä¸ç¡®å®šå‘½ä»¤æ˜¯å¦å·²ç»å®šä¹‰ -\newcommand{\du}{\diff u} -\newcommand{\dv}{\diff v} -\newcommand{\dr}{\diff r} -\newcommand{\ds}{\diff s} -\newcommand{\dt}{\diff t} -\newcommand{\dS}{\diff S} -% 有些å®åŒ…比如 hyperref 会修改 \d 的定义,所以放在 document 开始处 -% 利用 etoolbox å°† \d 定义为å¥å£®å‘½ä»¤ï¼Œä»¥é¿å…在 align ç‰çŽ¯å¢ƒä¸é”™è¯¯åœ°å±•å¼€ -\AtBeginDocument{% - \let\oldd=\d - \renewrobustcmd{\d}{\ifbool{mmode}{\diff}{\oldd}}% -} - -\let\pd=\partial -\newcommand{\pdf}{\pd f} -\newcommand{\pdg}{\pd g} -\newcommand{\pdh}{\pd h} -\newcommand{\pdl}{\pd l} -\newcommand{\pdn}{\pd n} -\newcommand{\pdu}{\pd u} -\newcommand{\pdv}{\pd v} -\newcommand{\pdx}{\pd x} -\newcommand{\pdy}{\pd y} -\newcommand{\pdz}{\pd z} -\newcommand{\pdF}{\pd F} -\newcommand{\pdL}{\pd L} -\newcommand{\pdP}{\pd P} -\newcommand{\pdQ}{\pd Q} -\newcommand{\pdR}{\pd R} - -% from mathabx package -\DeclareFontFamily{U}{mathx}{\hyphenchar\font45} -\DeclareFontShape{U}{mathx}{m}{n}{<-> mathx10}{} -\DeclareSymbolFont{mathx}{U}{mathx}{m}{n} -\DeclareMathAccent{\widebar}{0}{mathx}{"73} - -\newcommand{\va}{\vec{a}} -\newcommand{\vb}{\vec{b}} -\newcommand{\vc}{\vec{c}} -\newcommand{\vd}{\vec{d}} -\newcommand{\ve}{\vec{e}} -\newcommand{\vi}{\vec{i}} -\newcommand{\vj}{\vec{j}} -\newcommand{\vk}{\vec{k}} -\newcommand{\vn}{\vec{n}} -\newcommand{\vs}{\vec{s}} -\newcommand{\vv}{\vec{v}} - -\let\ov=\overrightarrow - -\let\le=\leqslant -\let\ge=\geqslant - -\let\lb=\{ -\let\rb=\} - -\def\T{\mathrm{T}\kern-.5pt} - -% 分数线长一点的分数,\wfrac[2pt]{x}{y} 表示左å³åŠ 2pt -% å’Œå‰é¢çš„ medmath ä¸€æ ·ï¼Œå°†ä»£ç 放在 \AtBeginDocument 里 -\AtBeginDocument{% - \newrobustcmd{\wfrac}[3][2pt]{% - \frac{\hspace{#1}#2\hspace{#1}}{\hspace{#1}#3\hspace{#1}}% - }% - \newrobustcmd{\wdfrac}[3][2pt]{% - \dfrac{\hspace{#1}#2\hspace{#1}}{\hspace{#1}#3\hspace{#1}}% - }% - \newrobustcmd{\wtfrac}[3][2pt]{% - \tfrac{\hspace{#1}#2\hspace{#1}}{\hspace{#1}#3\hspace{#1}}% - }% +\newrobustcmd\rdxm@moremath@differential{ + \newcommand{\diff}{\mathop{}\!\mathrm{d}} + \newcommand{\dx}{\diff x} + \newcommand{\dy}{\diff y} + \def\dz{\diff z} % not sure whether it has been defined + \newcommand{\du}{\diff u} + \newcommand{\dv}{\diff v} + \newcommand{\dr}{\diff r} + \newcommand{\ds}{\diff s} + \newcommand{\dt}{\diff t} + \newcommand{\dS}{\diff S} + %% Some packages such as hyperref will modify the definition of \d, + %% so we put the code in \AtBeginDocument. + %% Also we define \d as a protected command, so as to avoid wrong expansions of + %% it at the beginning of math arrays such as align from amsmath package. + \AtBeginDocument{ + \let\oldd=\d + \renewrobustcmd{\d}{\ifbool{mmode}{\diff}{\oldd}} + } + \let\pd=\partial + \newcommand{\pdf}{\pd f} + \newcommand{\pdg}{\pd g} + \newcommand{\pdh}{\pd h} + \newcommand{\pdl}{\pd l} + \newcommand{\pdn}{\pd n} + \newcommand{\pdu}{\pd u} + \newcommand{\pdv}{\pd v} + \newcommand{\pdx}{\pd x} + \newcommand{\pdy}{\pd y} + \newcommand{\pdz}{\pd z} + \newcommand{\pdF}{\pd F} + \newcommand{\pdL}{\pd L} + \newcommand{\pdP}{\pd P} + \newcommand{\pdQ}{\pd Q} + \newcommand{\pdR}{\pd R} +} + +\newrobustcmd\rdxm@moremath@widebar{ + %% from mathabx package + \DeclareFontFamily{U}{mathx}{\hyphenchar\font45} + \DeclareFontShape{U}{mathx}{m}{n}{<-> mathx10}{} + \DeclareSymbolFont{mathx}{U}{mathx}{m}{n} + \DeclareMathAccent{\widebar}{0}{mathx}{"73} +} + +\newrobustcmd\rdxm@moremath@vector{ + \newcommand{\va}{\vec{a}} + \newcommand{\vb}{\vec{b}} + \newcommand{\vc}{\vec{c}} + \newcommand{\vd}{\vec{d}} + \newcommand{\ve}{\vec{e}} + \newcommand{\vi}{\vec{i}} + \newcommand{\vj}{\vec{j}} + \newcommand{\vk}{\vec{k}} + \newcommand{\vn}{\vec{n}} + \newcommand{\vs}{\vec{s}} + \newcommand{\vv}{\vec{v}} +} + +\newrobustcmd\rdxm@moremath@widefrac{ + %% Longer fraction rules, \wfrac[2pt]{x}{y} will add 2pt to the left and right + \AtBeginDocument{ + \newrobustcmd{\wfrac}[3][2pt]{ + \frac{\hspace{##1}##2\hspace{##1}}{\hspace{##1}##3\hspace{##1}} + } + \newrobustcmd{\wdfrac}[3][2pt]{ + \dfrac{\hspace{##1}##2\hspace{##1}}{\hspace{##1}##3\hspace{##1}} + } + \newrobustcmd{\wtfrac}[3][2pt]{ + \tfrac{\hspace{##1}##2\hspace{##1}}{\hspace{##1}##3\hspace{##1}} + } + } } -% 使用 stix font ä¸çš„ white arrows -\AtBeginDocument{\@ifpackageloaded{fontspec}{% +\newrobustcmd\rdxm@moremath@whitearrow{ + %% 使用 stix font ä¸çš„ white arrows + \AtBeginDocument{\@ifpackageloaded{fontspec}{ %\IfFileExists{STIX-Regular.otf}{% 在 TeXLive ä¸æ— 效 - \IfFileExists{stix.sty}{% - \newfontfamily{\@rdxm@stix}{STIX} % stix v1.1 - }{% - \newfontfamily{\@rdxm@stix}{STIXGeneral} % stix v1.0 + \IfFileExists{stix.sty}{ + \newfontfamily{\@rdxm@stix}{STIX} % stix v1.1 + }{ + \newfontfamily{\@rdxm@stix}{STIXGeneral} % stix v1.0 } - \newrobustcmd\leftwhitearrow{% - \mathrel{\text{\normalfont\@rdxm@stix\symbol{"21E6}}}% + \newrobustcmd\leftwhitearrow{ + \mathrel{\text{\normalfont\@rdxm@stix\symbol{"21E6}}} } - \newrobustcmd\upwhitearrow{% - \mathrel{\text{\normalfont\@rdxm@stix\symbol{"21E7}}}% + \newrobustcmd\upwhitearrow{ + \mathrel{\text{\normalfont\@rdxm@stix\symbol{"21E7}}} } - \newrobustcmd\rightwhitearrow{% - \mathrel{\text{\normalfont\@rdxm@stix\symbol{"21E8}}}% + \newrobustcmd\rightwhitearrow{ + \mathrel{\text{\normalfont\@rdxm@stix\symbol{"21E8}}} } - \newrobustcmd\downwhitearrow{% - \mathrel{\text{\normalfont\@rdxm@stix\symbol{"21E9}}}% + \newrobustcmd\downwhitearrow{ + \mathrel{\text{\normalfont\@rdxm@stix\symbol{"21E9}}} } -}{% + }{ \let \leftwhitearrow = \Leftarrow \let \rightwhitearrow = \Rightarrow \let \upwhitearrow = \Uparrow \let \downwhitearrow = \Downarrow -}} + }} +} + +\newrobustcmd\rdxm@moremath@miscellaneous{ + \RequirePackage{mathtools} % for \mathllap command,pmatrix* environment + \RequirePackage{extarrows} + \newcommand{\e}{\mathrm{e}} + \newcommand{\R}{\mathbb{R}} + \DeclareMathOperator{\arccot}{arccot} + \DeclareMathOperator{\Corr}{\rho} + \DeclareMathOperator{\Cov}{Cov} + \DeclareMathOperator{\diag}{diag} + \DeclareMathOperator{\grad}{grad} + \DeclareMathOperator{\Prj}{Prj} + \DeclareMathOperator{\tr}{tr} + \DeclareMathOperator{\Var}{Var} + \DeclareMathOperator{\diver}{div} + \let\division=\div + \let\div=\diver + \let\ov=\overrightarrow + \let\le=\leqslant + \let\ge=\geqslant + \let\lb=\{ + \let\rb=\} + \def\T{\mathrm{T}\kern-.5pt} +} + +\ifbool{exam@moremath}{ + \rdxm@moremath@diagbox + \rdxm@moremath@limits + \rdxm@moremath@differential + \rdxm@moremath@widebar + \rdxm@moremath@vector + \rdxm@moremath@widefrac + \rdxm@moremath@whitearrow + \rdxm@moremath@miscellaneous +}{} + +%% --------------------------------------------------------------------------- +%% Load local user config file +%% --------------------------------------------------------------------------- + +\InputIfFileExists{randexam.cfg}{}{} + +%% --------------------------------------------------------------------------- +%% Support for Chinese Language +%% --------------------------------------------------------------------------- + +\newrobustcmd\rdxm@chinese@ctex{ + %% å››å· å°å››å· äº”å· å°äº”å· + %% 14bp 12bp 10.5bp 9bp + %% 实际上,在旧版本 ctex ä¸åªèƒ½ç”¨ cs4size å’Œ c5size 选项 + %% 而新版本 ctex ä¸ï¼Œå¯ä»¥åˆ©ç”¨ zihao 选项指定å„ç§ä¸æ–‡å—å· + \PassOptionsToPackage{CJKnumber}{xeCJK} + \RequirePackage[cs4size,UTF8,noindent,heading]{ctex} + \ifbool{exam@plain}{\pagestyle{plain}}{\pagestyle{fancy}} + %% 在旧版本 xeCJK ä¸ï¼Œå¿…须用 CJKnumber 选项载入 CJKnumb 包,åŽé¢æ‰è½½å…¥ä¼šæŠ¥é”™ + %% 但在新版本 xeCJK ä¸ CJKnumber 选项已ç»è¢«åºŸå¼ƒï¼Œéœ€è¦åœ¨åŽé¢è‡ªè¡Œè½½å…¥å®ƒ + %% 在 xeCJK ä¸å·²ç»ç¦æ¢è½½å…¥ CJK,但是在新版本 ctex å®åŒ…ä¸å´å¤±æ•ˆäº† + %% 我们å‡è£… CJK å·²ç»è½½å…¥ï¼Œå†è½½å…¥ CJKnumb,é¿å…出现 \CJKglue é‡å¤å®šä¹‰çš„问题 + %% 注æ„用 PDFLaTeX 编译时需è¦ç”¨åˆ° CJK,所以åªåœ¨æœªå®šä¹‰æ—¶æ‰ä½œä¿®æ”¹ + \ifdefined\CJKglue + \@namedef{ver@CJK.sty}{} + %\@namedef{opt@CJK.sty}{} + \fi + \RequirePackage{CJKnumb} + %% 新版本 xeCJK å·²ç»åºŸå¼ƒå¹¶ç¦ç”¨ CJKfntef,改用 xeCJKfntef å–代,我们需è¦è½½å…¥åŽè€… + %% 注æ„è¦ä¿è¯èƒ½åœ¨è¾ƒæ—§çš„ TeX 系统ä¸ç¼–译,我们åªèƒ½ç”¨ \ifXeTeX 而ä¸èƒ½ç”¨ \ifxetex + %% å› ä¸ºæ—§ç‰ˆæœ¬ iftex å®åŒ…åªæœ‰ \ifXeTeX 命令,而 ifxetex å®åŒ…æ‰æœ‰ \ifxetex 命令 + %% 在 2019 å¹´ 10 月,LaTeX å¼€å‘团队接管了 iftex å®åŒ…,新版本åŒæ—¶æ供这两个命令 + \RequirePackage{CJKfntef} + \RequirePackage{iftex} + \ifXeTeX\@ifpackagelater{xeCJK}{2020/02/10}{\RequirePackage{xeCJKfntef}}{}\fi + \ifbool{XeTeX}{ + % https://en.wikipedia.org/wiki/Number_Forms + % â… ã€â…¡ã€â…¢ã€â…£ã€â…¤ã€â…¥ã€â…¦ã€â…§ã€â…¨ã€â…©ã€â…ªã€â…« + \xeCJKsetcharclass{"2150}{"218F}{1} % 斜线分数,全角罗马数å—ç‰ + % https://en.wikipedia.org/wiki/Enclosed_Alphanumerics + \xeCJKsetcharclass{"2460}{"24FF}{1} % 带圈数å—å—æ¯ï¼Œæ‹¬å·æ•°å—å—æ¯ï¼Œå¸¦ç‚¹æ•°å—ç‰ + }{} +} +\ifbool{exam@ctex}{\rdxm@chinese@ctex}{} + +\newrobustcmd\rdxm@chinese@sourcehan{ + \setCJKmainfont[BoldFont=Source~Han~Sans~SC]{Source~Han~Serif~SC} + \setCJKsansfont{Source~Han~Sans~SC} + %% 用ä¸æ–‡å—体åæ—¶ LuaTeX 找ä¸åˆ°è¯¥å—体,XeTeX æ£å¸¸ + %\setCJKmainfont[BoldFont=æ€æºé»‘体]{æ€æºå®‹ä½“} + %\setCJKsansfont{æ€æºé»‘体} +} +\AtBeginDocument{ + \ifbool{exam@sourcehan}{ + \ifbool{XeTeX}{\rdxm@chinese@sourcehan}{ + \ifbool{LuaTeX}{\rdxm@chinese@sourcehan}{} + } + }{} +} + +%% 这里ä¸èƒ½ç”¨ \ifboolï¼Œå› ä¸ºæ¶‰åŠåˆ° catcode çš„æ”¹å˜ +\ifexam@solidot + \ifXeTeX + \catcode`。=\active\def。{.} + \else\ifLuaTeX + \catcode`。=\active\def。{.} + \fi + \fi +\fi + +%% Chinese translations of keywords +\DeclareExamTranslation{chinese}{ + answertable-Answer = ç”案 + ,answertable-Number = å°é¢˜ + ,examdata-Appendix = 附录 + ,exampart-Part = {第,部分} + ,examtitle-Name = 姓å + ,examtitle-Solutions = 试å·è§£ç” + ,gradetable-Evaluator = 评阅人 + ,gradetable-Part = 部分 + ,gradetable-Score = 得分 + ,gradetable-Total = 总分 + ,headfoot-Name = 姓å + ,headfoot-of = {å…±,页} + ,headfoot-Page = {第,页} + ,headfoot-Solutions = 试å·è§£ç” + ,headfoot-Version = {\relax,å·} + ,points-point = 分 + ,points-points = 分 + ,question-Question = 题 + ,solution-Solution = 解 +} +\ifbool{exam@ctex}{\SelectExamTranslation{chinese}}{} + +%% --------------------------------------------------------------------------- +%% Stop ignoring spaces in the code +%% --------------------------------------------------------------------------- \IgnoreSpacesOff diff --git a/macros/latex/contrib/randexam/randexam.pdf b/macros/latex/contrib/randexam/randexam.pdf Binary files differindex 2faabec1c8..307234cc1c 100644 --- a/macros/latex/contrib/randexam/randexam.pdf +++ b/macros/latex/contrib/randexam/randexam.pdf diff --git a/macros/latex/contrib/randexam/randexam.tex b/macros/latex/contrib/randexam/randexam.tex index feb1af2e14..382375dc11 100644 --- a/macros/latex/contrib/randexam/randexam.tex +++ b/macros/latex/contrib/randexam/randexam.tex @@ -1,9 +1,9 @@ % -*- coding: utf-8 -*- -\documentclass[12pt,plain,most]{randexam} +\documentclass[12pt,plain,math=most]{randexam} \geometry{b5paper,margin=2cm} -\newcommand*{\myversion}{2024C} +\newcommand*{\myversion}{2024D} \newcommand*{\mydate}{\the\year-\mylpad\month-\mylpad\day} \newcommand*{\mylpad}[1]{\ifnum#1<10 0\the#1\else\the#1\fi} @@ -28,6 +28,7 @@ \renewcommand{\arraystretch}{1.3} \usepackage{tabularx} +\usepackage{booktabs} \newcommand{\fillbox}[1]{\ulinefill{#1}\underline{#1}\ulinefill{#1}} @@ -361,7 +362,7 @@ The meanings of keys in the \verb!\gradetable! command are: \subsection{Answer tables} Before true-or-false, fill-in-the-blank, or multiple-choice questions, -you may use \mycmd{\answertable} to generate an blank answer table: +you may use \mycmd{\answertable} to generate a blank answer table: \begin{code} \answertable[total=6,column=3,strut=3em] @@ -427,9 +428,19 @@ you could modify the translation of \mykey{solution-Solution} keyword The following example changes it from "Solution" to "Proof": \begin{code} -\DeclareExamTranslation{current}{solution-Solution=Proof} +\SetExamTranslation{solution-Solution=Proof} +\begin{solution} + This is the proof. +\end{solution} \end{code} +\begingroup +\SetExamTranslation{solution-Solution=Proof} +\begin{solution} + This is the proof. +\end{solution} +\endgroup + \subsection{Points command} Inside \myenv{solution} environment, you could use \mycmd{\points} to give points for each step. @@ -452,7 +463,7 @@ And the point text will be printed at the right edge of the line. \subsection{Alignment commands} -With class option \myopt{many}, \mypkg{randexam} will load \mypkg{freealign} package. +With class option \myopt{freealign}, \mypkg{randexam} loads \mypkg{freealign} package, and \mypkg{freealign} package provides several commands for aligning math formulas in different lines. Here is the first example: @@ -491,10 +502,37 @@ you need two compilations to get correct results. \section{Class options} +All options provided by \mypkg{randexam} class are listed in the following table: + +\begin{tabularx}{\linewidth}{@{}lX@{}} +\toprule + \myopt{noanswer} & hide all answers in the exam paper \\ + \myopt{random} & shuffle questions in each part \\ + \myopt{seed} & the random seed used by \myopt{random} option \\ +\midrule + \myopt{plain} & set page style \myval{plain} \\ + \myopt{a3paper} & typeset a two-column paper of A3 size \\ + \myopt{a3input} & input a paper of A4 size and change it to A3 size \\ +\midrule + \myopt{mathdesign} & use \mypkg{mathdesign} utopia font \\ + \myopt{freealign} & load \mypkg{freealign} package \\ + \myopt{medmath} & load \mypkg{medmath} package \\ + \myopt{moremath} & define more math commands \\ + \myopt{math=many} & $\Leftrightarrow$ \myopt{mathdesign,freealign} \\ + \myopt{math=most} & $\Leftrightarrow$ \myopt{mathdesign,freealign,medmath} \\ + \myopt{math=all} & $\Leftrightarrow$ \myopt{mathdesign,freealign,medmath,moremath} \\ +\midrule + \myopt{chinese} & select Chinese language and load \mypkg{ctex} package \\ +\bottomrule +\end{tabularx} + +Some of the options could also be modified with \mycmd{\SetExamOption}: +\myopt{noanswer}, \myopt{random}, and \myopt{seed}. + \subsection{Blank exam papers} Assume \myfile{exam-a-answer.tex} is an exam paper with answers. -You can easily get an blank exam paper with answers removed, +You can easily get a blank exam paper with answers removed, by creating an \myfile{exam-a-blank.tex} file with the following lines: \begin{code} @@ -508,7 +546,7 @@ The answers will be hidden in the compiled exam paper. \subsection{Randomized variants}\label{opt:random} Assume \myfile{exam-a-answer.tex} is an exam paper. -You can get an randomized variant with all questions in the same part shuffled, +You could get a randomized variant with all questions in the same part shuffled, by creating an \myfile{exam-b-answer.tex} file with the following lines: \begin{code} @@ -553,7 +591,7 @@ even if you have only the PDF file. \subsection{Translations of keywords}\label{subsect:translation} With \mycmd{\DeclareExamTranslation} you can define the translaitons of the keywords -in an \mypkg{randexam} paper. At this time only English keywords are defined: +in a \mypkg{randexam} paper. \begin{code} \DeclareExamTranslation{english}{ @@ -579,7 +617,9 @@ in an \mypkg{randexam} paper. At this time only English keywords are defined: } \end{code} -You could translate them for another language and enable them with \mycmd{\SelectExamTranslation} command: +At this time only English and Chinese keywords are defined. +You could translate them for another language and enable them +with \mycmd{\SelectExamTranslation} command: \begin{code} \DeclareExamTranslation{somelang}{ @@ -613,21 +653,53 @@ This command is useful in defining new templates for the exam (see Subsection \r \subsection{Saving and reading key values} -With \mycmd{\DeclareExamValue} and \mycmd{\UseExamValue} you could save and read +With \mycmd{\SetExamValue} and \mycmd{\UseExamValue} you could save and read the value of a key, respectively. \begin{code} -\DeclareExamValue{somemodule}{somekey}{SomeValue} +\SetExamValue{somemodule}{somekey=SomeValue} \UseExamValue{somemodule}{somekey} \end{code} \hrule -\DeclareExamValue{somemodule}{somekey}{SomeValue} +\SetExamValue{somemodule}{somekey=SomeValue} \UseExamValue{somemodule}{somekey} \vspace{0.5em} \hrule \vspace{0.5em} -These two commands are useful in defining new templates +The \mypkg{randexam} class also provides commands \mycmd{\IfExamValueExistT}, +\mycmd{\IfExamValueExistF}, and \mycmd{\IfExamValueExistTF}, +with which you can do conditional typesetting. + +\begin{code} +\IfExamValueExistTF{somemodule}{somekey}{True}{False} +\end{code} +\hrule +\IfExamValueExistTF{somemodule}{somekey}{True}{False} +\vspace{0.5em} +\hrule +\vspace{0.5em} + +Furthermore, you may change typeset command of some counter with \mycmd{\SetExamValue} +and the counter is typeset with \mycmd{\TheExamCounter} command when needed. + +\setcounter{exampart}{4} +\begin{code} +\SetExamValue{exampart}{number=\Roman} +\SetExamValue{question}{number=\arabic} +Part \TheExamCounter{exampart}, +Question \TheExamCounter{question} +\end{code} +\hrule +\SetExamValue{exampart}{number=\Roman} +\SetExamValue{question}{number=\arabic} +Part \TheExamCounter{exampart}, +Question \TheExamCounter{question} +\vspace{0.5em} +\hrule +\vspace{0.5em} + +These commands are useful in defining new templates for the exam (see Subsection \ref{subsect:template}). \subsection{Templates of elements}\label{subsect:template} @@ -657,10 +729,10 @@ you can write the following code in document preamble: Then the \mycmd{\examtitle} command in document body will produce different result: \begin{code} -\examtitle{name=Final Exam in My School,date=2024-01-01} +\examtitle{name=Final Exam in My School,date=\today} \end{code} \vspace{-1em} -\examtitle{name=Final Exam in My School,date=2024-01-01} +\examtitle{name=Final Exam in My School,date=\today} Normally \mycmd{\examtitle} will call \mycmd{\UseExamTemplate{examtitle}{default}}. diff --git a/macros/latex/contrib/tagpdf/README.md b/macros/latex/contrib/tagpdf/README.md index b64c5a23fa..96a566d03f 100644 --- a/macros/latex/contrib/tagpdf/README.md +++ b/macros/latex/contrib/tagpdf/README.md @@ -1,6 +1,6 @@ #tagpdf — A package to create tagged pdf -Packageversion: 0.98t -Packagedate: 2024/01/26 +Packageversion: 0.98u +Packagedate: 2024/02/02 Author: Ulrike Fischer, LaTeX Project Team ## License diff --git a/macros/latex/contrib/tagpdf/ex-AF-file.pdf b/macros/latex/contrib/tagpdf/ex-AF-file.pdf index 8837751559..facd2a1003 100644 --- a/macros/latex/contrib/tagpdf/ex-AF-file.pdf +++ b/macros/latex/contrib/tagpdf/ex-AF-file.pdf @@ -1,11 +1,11 @@ %PDF-2.0 %ÌÕÁÔÅØÐÄÆ 24 0 obj -<< /Subtype /application#2Fx-tex/Type /EmbeddedFile /Params<</ModDate (D:20240126205826+01'00') /Size 151 /CheckSum (885A66112CFA800687C687B2EED39FAC) >> /Length 151 >> +<< /Subtype /application#2Fx-tex/Type /EmbeddedFile /Params<</ModDate (D:20240202223648+01'00') /Size 151 /CheckSum (4DDBEE0D3BD25827365AF72681239698) >> /Length 151 >> stream %% LaTeX2e file `example-input-file.tex' %% generated by the `filecontents' environment -%% from source `ex-AF-file' on 2024/01/26. +%% from source `ex-AF-file' on 2024/02/02. %% Additional info! @@ -15,7 +15,7 @@ endobj << /Type /Filespec /AFRelationship /Unspecified /F <FEFF006500780061006D0070006C0065002D0069006E007000750074002D00660069006C0065002E007400650078> /UF <FEFF006500780061006D0070006C0065002D0069006E007000750074002D00660069006C0065002E007400650078> /EF<</F 24 0 R/UF 24 0 R>> >> endobj 27 0 obj -<< /Subtype /text#2Fplain/Type /EmbeddedFile /Params<</ModDate (D:20240126) >> /Length 19 >> +<< /Subtype /text#2Fplain/Type /EmbeddedFile /Params<</ModDate (D:20240202) >> /Length 19 >> stream Bär with teh shirt endstream @@ -24,7 +24,7 @@ endobj << /Type /Filespec /AFRelationship /Supplement /F <FEFF007400610067002D0041004600660069006C00650031002E007400780074> /UF <FEFF007400610067002D0041004600660069006C00650031002E007400780074> /EF<</F 27 0 R/UF 27 0 R>> >> endobj 30 0 obj -<< /Subtype /text#2Fplain/Type /EmbeddedFile /Params<</ModDate (D:20240126) >> /Length 4 >> +<< /Subtype /text#2Fplain/Type /EmbeddedFile /Params<</ModDate (D:20240202) >> /Length 4 >> stream Duck endstream @@ -242,17 +242,17 @@ stream </dc:language> <dc:date> <rdf:Seq> - <rdf:li>2024-01-26T20:58:41+01:00</rdf:li> + <rdf:li>2024-02-02T22:37:03+01:00</rdf:li> </rdf:Seq> </dc:date> <dc:format>application/pdf</dc:format> <dc:source>ex-AF-file.tex</dc:source> <xmp:CreatorTool>LaTeX</xmp:CreatorTool> - <xmp:CreateDate>2024-01-26T20:58:41+01:00</xmp:CreateDate> - <xmp:ModifyDate>2024-01-26T20:58:41+01:00</xmp:ModifyDate> - <xmp:MetadataDate>2024-01-26T20:58:41+01:00</xmp:MetadataDate> + <xmp:CreateDate>2024-02-02T22:37:03+01:00</xmp:CreateDate> + <xmp:ModifyDate>2024-02-02T22:37:03+01:00</xmp:ModifyDate> + <xmp:MetadataDate>2024-02-02T22:37:03+01:00</xmp:MetadataDate> <xmpMM:DocumentID>uuid:38d5a844-2217-4081-87cc-b2129dc357a6</xmpMM:DocumentID> - <xmpMM:InstanceID>uuid:cb6cb011-153d-4b72-827d-6e20f4822861</xmpMM:InstanceID> + <xmpMM:InstanceID>uuid:35738719-0a61-4db5-8394-388b6fc161c2</xmpMM:InstanceID> <prism:complianceProfile>three</prism:complianceProfile> <prism:pageCount>1</prism:pageCount> </rdf:Description> @@ -353,7 +353,7 @@ endobj << /Type /Namespace /NS (https://www.latex-project.org/ns/inline/2022) /RoleMapNS 20 0 R >> endobj 21 0 obj -<< /Type /Namespace /NS (data:,D665C3A0-56E-F551-A3B2-53B32DA0C704) >> +<< /Type /Namespace /NS (data:,80B08CC2-52D3-4573-44F2-3D24ADA50C43) >> endobj 8 0 obj [ 9 0 R 11 0 R 13 0 R 15 0 R 17 0 R 19 0 R 21 0 R ] @@ -455,7 +455,7 @@ endobj << /Type /Catalog /Pages 38 0 R /MarkInfo 39 0 R/Lang (de-DE)/Metadata 33 0 R/StructTreeRoot 5 0 R >> endobj 48 0 obj -<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20240126205841+01'00')/ModDate (D:20240126205841+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> +<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20240202223703+01'00')/ModDate (D:20240202223703+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> endobj xref 0 49 @@ -464,10 +464,10 @@ xref 0000000003 00000 f 0000000004 00000 f 0000000010 00000 f -0000016877 00000 n +0000016878 00000 n 0000013795 00000 n 0000014006 00000 n -0000016300 00000 n +0000016301 00000 n 0000014616 00000 n 0000000012 00000 f 0000014684 00000 n @@ -482,34 +482,34 @@ xref 0000015902 00000 n 0000016212 00000 n 0000000000 00000 f -0000016368 00000 n +0000016369 00000 n 0000000020 00000 n 0000000382 00000 n -0000016481 00000 n +0000016482 00000 n 0000000673 00000 n 0000000828 00000 n -0000016613 00000 n +0000016614 00000 n 0000001062 00000 n 0000001202 00000 n -0000016745 00000 n +0000016746 00000 n 0000001436 00000 n 0000013649 00000 n 0000013514 00000 n 0000012908 00000 n -0000020630 00000 n -0000020984 00000 n +0000020631 00000 n +0000020985 00000 n 0000013759 00000 n 0000013852 00000 n 0000013969 00000 n -0000016997 00000 n -0000019446 00000 n -0000017183 00000 n -0000019667 00000 n -0000020784 00000 n -0000021046 00000 n -0000021164 00000 n +0000016998 00000 n +0000019447 00000 n +0000017184 00000 n +0000019668 00000 n +0000020785 00000 n +0000021047 00000 n +0000021165 00000 n trailer -<< /Size 49 /Root 47 0 R /Info 48 0 R /ID [ <6706A7F57FA2E57B6F29C1F4593BA810> <6706A7F57FA2E57B6F29C1F4593BA810> ] >> +<< /Size 49 /Root 47 0 R /Info 48 0 R /ID [ <6F6CBA95E6A18A300BD05105D2CD9FCD> <6F6CBA95E6A18A300BD05105D2CD9FCD> ] >> startxref -21387 +21388 %%EOF diff --git a/macros/latex/contrib/tagpdf/ex-alt-actualtext.pdf b/macros/latex/contrib/tagpdf/ex-alt-actualtext.pdf Binary files differindex d2277fd590..5eedeb7ad7 100644 --- a/macros/latex/contrib/tagpdf/ex-alt-actualtext.pdf +++ b/macros/latex/contrib/tagpdf/ex-alt-actualtext.pdf diff --git a/macros/latex/contrib/tagpdf/ex-attribute.pdf b/macros/latex/contrib/tagpdf/ex-attribute.pdf index 406dff191a..10b045a81f 100644 --- a/macros/latex/contrib/tagpdf/ex-attribute.pdf +++ b/macros/latex/contrib/tagpdf/ex-attribute.pdf @@ -216,17 +216,17 @@ stream </dc:language> <dc:date> <rdf:Seq> - <rdf:li>2024-01-26T20:59:27+01:00</rdf:li> + <rdf:li>2024-02-02T22:37:47+01:00</rdf:li> </rdf:Seq> </dc:date> <dc:format>application/pdf</dc:format> <dc:source>ex-attribute.tex</dc:source> <xmp:CreatorTool>LaTeX</xmp:CreatorTool> - <xmp:CreateDate>2024-01-26T20:59:27+01:00</xmp:CreateDate> - <xmp:ModifyDate>2024-01-26T20:59:27+01:00</xmp:ModifyDate> - <xmp:MetadataDate>2024-01-26T20:59:27+01:00</xmp:MetadataDate> + <xmp:CreateDate>2024-02-02T22:37:47+01:00</xmp:CreateDate> + <xmp:ModifyDate>2024-02-02T22:37:47+01:00</xmp:ModifyDate> + <xmp:MetadataDate>2024-02-02T22:37:47+01:00</xmp:MetadataDate> <xmpMM:DocumentID>uuid:7a9cf910-1c19-429a-8f24-339c62d8a57f</xmpMM:DocumentID> - <xmpMM:InstanceID>uuid:12b1f461-45c8-435e-80aa-5198be5aa29c</xmpMM:InstanceID> + <xmpMM:InstanceID>uuid:c0469dea-fd9d-4931-8af5-216a0c68dd97</xmpMM:InstanceID> <prism:complianceProfile>three</prism:complianceProfile> <prism:pageCount>1</prism:pageCount> </rdf:Description> @@ -449,7 +449,7 @@ endobj << /Type /Catalog /Pages 26 0 R /MarkInfo 27 0 R/Lang (de_DE)/Metadata 21 0 R/StructTreeRoot 5 0 R >> endobj 38 0 obj -<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/Title (Title)/CreationDate (D:20240126205927+01'00')/ModDate (D:20240126205927+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> +<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/Title (Title)/CreationDate (D:20240202223747+01'00')/ModDate (D:20240202223747+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> endobj xref 0 39 @@ -493,7 +493,7 @@ xref 0000017720 00000 n 0000017838 00000 n trailer -<< /Size 39 /Root 37 0 R /Info 38 0 R /ID [ <D01DA1D59B8D51A0CC8554A95BED561F> <D01DA1D59B8D51A0CC8554A95BED561F> ] >> +<< /Size 39 /Root 37 0 R /Info 38 0 R /ID [ <8C22E391CF2CF1A629F3902F8E80CCA6> <8C22E391CF2CF1A629F3902F8E80CCA6> ] >> startxref 18075 %%EOF diff --git a/macros/latex/contrib/tagpdf/ex-formula-problem.pdf b/macros/latex/contrib/tagpdf/ex-formula-problem.pdf index 0643e84ff8..cea631691f 100644 --- a/macros/latex/contrib/tagpdf/ex-formula-problem.pdf +++ b/macros/latex/contrib/tagpdf/ex-formula-problem.pdf @@ -239,17 +239,17 @@ stream </dc:language> <dc:date> <rdf:Seq> - <rdf:li>2024-01-26T20:59:50+01:00</rdf:li> + <rdf:li>2024-02-02T22:38:11+01:00</rdf:li> </rdf:Seq> </dc:date> <dc:format>application/pdf</dc:format> <dc:source>ex-formula-problem.tex</dc:source> <xmp:CreatorTool>LaTeX</xmp:CreatorTool> - <xmp:CreateDate>2024-01-26T20:59:50+01:00</xmp:CreateDate> - <xmp:ModifyDate>2024-01-26T20:59:50+01:00</xmp:ModifyDate> - <xmp:MetadataDate>2024-01-26T20:59:50+01:00</xmp:MetadataDate> + <xmp:CreateDate>2024-02-02T22:38:11+01:00</xmp:CreateDate> + <xmp:ModifyDate>2024-02-02T22:38:11+01:00</xmp:ModifyDate> + <xmp:MetadataDate>2024-02-02T22:38:11+01:00</xmp:MetadataDate> <xmpMM:DocumentID>uuid:8eb2ce1d-b2ec-440a-8bc2-73733eb3eeb0</xmpMM:DocumentID> - <xmpMM:InstanceID>uuid:8970d22a-9e9e-4862-8221-c3ee6d0d9161</xmpMM:InstanceID> + <xmpMM:InstanceID>uuid:3fe0c564-0449-48d0-8aff-fb9f5180667e</xmpMM:InstanceID> <prism:complianceProfile>three</prism:complianceProfile> <prism:pageCount>2</prism:pageCount> </rdf:Description> @@ -425,7 +425,7 @@ endobj << /Type /Catalog /Pages 16 0 R /MarkInfo 23 0 R/Lang (de-DE)/Metadata 19 0 R/StructTreeRoot 5 0 R >> endobj 33 0 obj -<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20240126205950+01'00')/ModDate (D:20240126205950+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> +<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20240202223811+01'00')/ModDate (D:20240202223811+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> endobj xref 0 34 @@ -464,7 +464,7 @@ xref 0000018886 00000 n 0000019004 00000 n trailer -<< /Size 34 /Root 32 0 R /Info 33 0 R /ID [ <32DDD7A2A657D8573D42BD4BCB00A9DA> <32DDD7A2A657D8573D42BD4BCB00A9DA> ] >> +<< /Size 34 /Root 32 0 R /Info 33 0 R /ID [ <63C41E7BFC8B747AC184EC4B36B85829> <63C41E7BFC8B747AC184EC4B36B85829> ] >> startxref 19227 %%EOF diff --git a/macros/latex/contrib/tagpdf/ex-list.pdf b/macros/latex/contrib/tagpdf/ex-list.pdf index ca3ab0e31a..c1fededd62 100644 --- a/macros/latex/contrib/tagpdf/ex-list.pdf +++ b/macros/latex/contrib/tagpdf/ex-list.pdf @@ -210,17 +210,17 @@ stream </dc:language> <dc:date> <rdf:Seq> - <rdf:li>2024-01-26T21:00:13+01:00</rdf:li> + <rdf:li>2024-02-02T22:38:38+01:00</rdf:li> </rdf:Seq> </dc:date> <dc:format>application/pdf</dc:format> <dc:source>ex-list.tex</dc:source> <xmp:CreatorTool>LaTeX</xmp:CreatorTool> - <xmp:CreateDate>2024-01-26T21:00:13+01:00</xmp:CreateDate> - <xmp:ModifyDate>2024-01-26T21:00:13+01:00</xmp:ModifyDate> - <xmp:MetadataDate>2024-01-26T21:00:13+01:00</xmp:MetadataDate> + <xmp:CreateDate>2024-02-02T22:38:38+01:00</xmp:CreateDate> + <xmp:ModifyDate>2024-02-02T22:38:38+01:00</xmp:ModifyDate> + <xmp:MetadataDate>2024-02-02T22:38:38+01:00</xmp:MetadataDate> <xmpMM:DocumentID>uuid:4c749825-1de7-414c-879f-29e4d0bef66e</xmpMM:DocumentID> - <xmpMM:InstanceID>uuid:90b2a6de-94c7-4075-807e-0b97e2163383</xmpMM:InstanceID> + <xmpMM:InstanceID>uuid:5c417fb7-2a48-492e-8eee-ce0a6be433ad</xmpMM:InstanceID> <prism:complianceProfile>three</prism:complianceProfile> <prism:pageCount>1</prism:pageCount> </rdf:Description> @@ -653,7 +653,7 @@ endobj << /Type /Catalog /Pages 54 0 R /MarkInfo 55 0 R/Lang (en-US)/Metadata 48 0 R/StructTreeRoot 5 0 R >> endobj 72 0 obj -<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20240126210013+01'00')/ModDate (D:20240126210013+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> +<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20240202223838+01'00')/ModDate (D:20240202223838+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> endobj xref 0 73 @@ -731,7 +731,7 @@ xref 0000029592 00000 n 0000029710 00000 n trailer -<< /Size 73 /Root 71 0 R /Info 72 0 R /ID [ <ED45731963D5B29C201FA1DF9FDBFFF2> <ED45731963D5B29C201FA1DF9FDBFFF2> ] >> +<< /Size 73 /Root 71 0 R /Info 72 0 R /ID [ <2EE8B5792D28A5F75A1DF4D2AA3E2581> <2EE8B5792D28A5F75A1DF4D2AA3E2581> ] >> startxref 29933 %%EOF diff --git a/macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.pdf b/macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.pdf index b751a6d102..2379e8ca20 100644 --- a/macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.pdf +++ b/macros/latex/contrib/tagpdf/ex-mc-manual-para-split-obsolete.pdf @@ -243,17 +243,17 @@ stream </dc:language> <dc:date> <rdf:Seq> - <rdf:li>2024-01-26T21:00:34+01:00</rdf:li> + <rdf:li>2024-02-02T22:38:58+01:00</rdf:li> </rdf:Seq> </dc:date> <dc:format>application/pdf</dc:format> <dc:source>ex-mc-manual-para-split-obsolete.tex</dc:source> <xmp:CreatorTool>LaTeX</xmp:CreatorTool> - <xmp:CreateDate>2024-01-26T21:00:34+01:00</xmp:CreateDate> - <xmp:ModifyDate>2024-01-26T21:00:34+01:00</xmp:ModifyDate> - <xmp:MetadataDate>2024-01-26T21:00:34+01:00</xmp:MetadataDate> + <xmp:CreateDate>2024-02-02T22:38:58+01:00</xmp:CreateDate> + <xmp:ModifyDate>2024-02-02T22:38:58+01:00</xmp:ModifyDate> + <xmp:MetadataDate>2024-02-02T22:38:58+01:00</xmp:MetadataDate> <xmpMM:DocumentID>uuid:c33d64b4-96ec-4e48-8f27-0b3edc831547</xmpMM:DocumentID> - <xmpMM:InstanceID>uuid:e3b2c8ed-e8fb-46b6-849f-75fd38b47579</xmpMM:InstanceID> + <xmpMM:InstanceID>uuid:e15069c5-de84-46d1-81d0-284e5e7b5202</xmpMM:InstanceID> <prism:complianceProfile>three</prism:complianceProfile> <prism:pageCount>2</prism:pageCount> </rdf:Description> @@ -413,7 +413,7 @@ endobj << /Type /Catalog /Pages 14 0 R /Lang (en-US)/Metadata 15 0 R >> endobj 25 0 obj -<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20240126210034+01'00')/ModDate (D:20240126210034+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> +<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20240202223858+01'00')/ModDate (D:20240202223858+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> endobj xref 0 26 @@ -444,7 +444,7 @@ xref 0000023897 00000 n 0000023978 00000 n trailer -<< /Size 26 /Root 24 0 R /Info 25 0 R /ID [ <A530C63EDAA9942CF5746BD16B16A90B> <A530C63EDAA9942CF5746BD16B16A90B> ] >> +<< /Size 26 /Root 24 0 R /Info 25 0 R /ID [ <F6E1F6F130362A92FE9BA815EF8209F6> <F6E1F6F130362A92FE9BA815EF8209F6> ] >> startxref 24201 %%EOF diff --git a/macros/latex/contrib/tagpdf/ex-softhyphen.pdf b/macros/latex/contrib/tagpdf/ex-softhyphen.pdf index 95b1b31c08..31c494f059 100644 --- a/macros/latex/contrib/tagpdf/ex-softhyphen.pdf +++ b/macros/latex/contrib/tagpdf/ex-softhyphen.pdf @@ -210,17 +210,17 @@ stream </dc:language> <dc:date> <rdf:Seq> - <rdf:li>2024-01-26T21:00:53+01:00</rdf:li> + <rdf:li>2024-02-02T22:39:19+01:00</rdf:li> </rdf:Seq> </dc:date> <dc:format>application/pdf</dc:format> <dc:source>ex-softhyphen.tex</dc:source> <xmp:CreatorTool>LaTeX</xmp:CreatorTool> - <xmp:CreateDate>2024-01-26T21:00:53+01:00</xmp:CreateDate> - <xmp:ModifyDate>2024-01-26T21:00:53+01:00</xmp:ModifyDate> - <xmp:MetadataDate>2024-01-26T21:00:53+01:00</xmp:MetadataDate> + <xmp:CreateDate>2024-02-02T22:39:19+01:00</xmp:CreateDate> + <xmp:ModifyDate>2024-02-02T22:39:19+01:00</xmp:ModifyDate> + <xmp:MetadataDate>2024-02-02T22:39:19+01:00</xmp:MetadataDate> <xmpMM:DocumentID>uuid:aa82e685-4098-469d-861c-3c45dfc700c7</xmpMM:DocumentID> - <xmpMM:InstanceID>uuid:8e3f9973-ca76-4bb0-885c-c462a238d3e9</xmpMM:InstanceID> + <xmpMM:InstanceID>uuid:ff06d09b-d1ff-4746-88cb-913348b6bed3</xmpMM:InstanceID> <prism:complianceProfile>three</prism:complianceProfile> <prism:pageCount>1</prism:pageCount> </rdf:Description> @@ -393,7 +393,7 @@ endobj << /Type /Catalog /Pages 19 0 R /MarkInfo 20 0 R/Lang (en-US)/Metadata 14 0 R/StructTreeRoot 5 0 R >> endobj 30 0 obj -<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20240126210053+01'00')/ModDate (D:20240126210053+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> +<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20240202223919+01'00')/ModDate (D:20240202223919+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> endobj xref 0 31 @@ -429,7 +429,7 @@ xref 0000018116 00000 n 0000018234 00000 n trailer -<< /Size 31 /Root 29 0 R /Info 30 0 R /ID [ <5861020C59C64EDB711834443873AFAC> <5861020C59C64EDB711834443873AFAC> ] >> +<< /Size 31 /Root 29 0 R /Info 30 0 R /ID [ <0E4E2750E80EA2B652B1FB8967503A62> <0E4E2750E80EA2B652B1FB8967503A62> ] >> startxref 18457 %%EOF diff --git a/macros/latex/contrib/tagpdf/ex-spaceglyph-listings.pdf b/macros/latex/contrib/tagpdf/ex-spaceglyph-listings.pdf index 360b5fd2cf..1e31c89cfd 100644 --- a/macros/latex/contrib/tagpdf/ex-spaceglyph-listings.pdf +++ b/macros/latex/contrib/tagpdf/ex-spaceglyph-listings.pdf @@ -210,17 +210,17 @@ stream </dc:language> <dc:date> <rdf:Seq> - <rdf:li>2024-01-26T21:01:12+01:00</rdf:li> + <rdf:li>2024-02-02T22:39:39+01:00</rdf:li> </rdf:Seq> </dc:date> <dc:format>application/pdf</dc:format> <dc:source>ex-spaceglyph-listings.tex</dc:source> <xmp:CreatorTool>LaTeX</xmp:CreatorTool> - <xmp:CreateDate>2024-01-26T21:01:12+01:00</xmp:CreateDate> - <xmp:ModifyDate>2024-01-26T21:01:12+01:00</xmp:ModifyDate> - <xmp:MetadataDate>2024-01-26T21:01:12+01:00</xmp:MetadataDate> + <xmp:CreateDate>2024-02-02T22:39:39+01:00</xmp:CreateDate> + <xmp:ModifyDate>2024-02-02T22:39:39+01:00</xmp:ModifyDate> + <xmp:MetadataDate>2024-02-02T22:39:39+01:00</xmp:MetadataDate> <xmpMM:DocumentID>uuid:acdc2435-bf29-4e54-8d09-1c9b6dc32038</xmpMM:DocumentID> - <xmpMM:InstanceID>uuid:2da7c0a8-0aad-46d2-8e28-b7f2a1930d27</xmpMM:InstanceID> + <xmpMM:InstanceID>uuid:106cffe6-9e83-4343-875e-bf36e39202e9</xmpMM:InstanceID> <prism:complianceProfile>three</prism:complianceProfile> <prism:pageCount>1</prism:pageCount> </rdf:Description> @@ -354,7 +354,7 @@ endobj << /Type /Catalog /Pages 15 0 R /MarkInfo 16 0 R/Lang (en-US)/Metadata 10 0 R/StructTreeRoot 5 0 R >> endobj 26 0 obj -<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20240126210112+01'00')/ModDate (D:20240126210112+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> +<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20240202223939+01'00')/ModDate (D:20240202223939+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> endobj xref 0 27 @@ -386,7 +386,7 @@ xref 0000015484 00000 n 0000015602 00000 n trailer -<< /Size 27 /Root 25 0 R /Info 26 0 R /ID [ <4D137DF5E094011AB5CF6EF03BFCCE2C> <4D137DF5E094011AB5CF6EF03BFCCE2C> ] >> +<< /Size 27 /Root 25 0 R /Info 26 0 R /ID [ <0FFF207E4920BBD2110B159C2D9324F6> <0FFF207E4920BBD2110B159C2D9324F6> ] >> startxref 15825 %%EOF diff --git a/macros/latex/contrib/tagpdf/ex-structure-obsolete.pdf b/macros/latex/contrib/tagpdf/ex-structure-obsolete.pdf index 7ba830979b..d74c03578f 100644 --- a/macros/latex/contrib/tagpdf/ex-structure-obsolete.pdf +++ b/macros/latex/contrib/tagpdf/ex-structure-obsolete.pdf @@ -210,17 +210,17 @@ stream </dc:language> <dc:date> <rdf:Seq> - <rdf:li>2024-01-26T21:01:31+01:00</rdf:li> + <rdf:li>2024-02-02T22:39:59+01:00</rdf:li> </rdf:Seq> </dc:date> <dc:format>application/pdf</dc:format> <dc:source>ex-structure-obsolete.tex</dc:source> <xmp:CreatorTool>LaTeX</xmp:CreatorTool> - <xmp:CreateDate>2024-01-26T21:01:31+01:00</xmp:CreateDate> - <xmp:ModifyDate>2024-01-26T21:01:31+01:00</xmp:ModifyDate> - <xmp:MetadataDate>2024-01-26T21:01:31+01:00</xmp:MetadataDate> + <xmp:CreateDate>2024-02-02T22:39:59+01:00</xmp:CreateDate> + <xmp:ModifyDate>2024-02-02T22:39:59+01:00</xmp:ModifyDate> + <xmp:MetadataDate>2024-02-02T22:39:59+01:00</xmp:MetadataDate> <xmpMM:DocumentID>uuid:bf5e4a2b-cfa9-4fc5-878c-8f9d2ee95445</xmpMM:DocumentID> - <xmpMM:InstanceID>uuid:58915d1b-721c-4e2f-8b60-999570652301</xmpMM:InstanceID> + <xmpMM:InstanceID>uuid:10235932-5d34-48f2-81ce-e522f266d343</xmpMM:InstanceID> <prism:complianceProfile>three</prism:complianceProfile> <prism:pageCount>1</prism:pageCount> </rdf:Description> @@ -526,7 +526,7 @@ endobj << /Type /Catalog /Pages 26 0 R /MarkInfo 27 0 R/Lang (en-US)/Metadata 20 0 R/StructTreeRoot 5 0 R >> endobj 43 0 obj -<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20240126210131+01'00')/ModDate (D:20240126210131+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> +<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20240202223959+01'00')/ModDate (D:20240202223959+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> endobj xref 0 44 @@ -575,7 +575,7 @@ xref 0000023426 00000 n 0000023544 00000 n trailer -<< /Size 44 /Root 42 0 R /Info 43 0 R /ID [ <7E9B742ACCDBAEA64E0D4254DB9A148F> <7E9B742ACCDBAEA64E0D4254DB9A148F> ] >> +<< /Size 44 /Root 42 0 R /Info 43 0 R /ID [ <1E58A57ED576731A14E6B7847804E1C7> <1E58A57ED576731A14E6B7847804E1C7> ] >> startxref 23767 %%EOF diff --git a/macros/latex/contrib/tagpdf/ex-tagpdf-template.pdf b/macros/latex/contrib/tagpdf/ex-tagpdf-template.pdf index 476a154f58..6dc444340a 100644 --- a/macros/latex/contrib/tagpdf/ex-tagpdf-template.pdf +++ b/macros/latex/contrib/tagpdf/ex-tagpdf-template.pdf @@ -210,17 +210,17 @@ stream </dc:language> <dc:date> <rdf:Seq> - <rdf:li>2024-01-26T21:01:51+01:00</rdf:li> + <rdf:li>2024-02-02T22:40:21+01:00</rdf:li> </rdf:Seq> </dc:date> <dc:format>application/pdf</dc:format> <dc:source>ex-tagpdf-template.tex</dc:source> <xmp:CreatorTool>LaTeX</xmp:CreatorTool> - <xmp:CreateDate>2024-01-26T21:01:51+01:00</xmp:CreateDate> - <xmp:ModifyDate>2024-01-26T21:01:51+01:00</xmp:ModifyDate> - <xmp:MetadataDate>2024-01-26T21:01:51+01:00</xmp:MetadataDate> + <xmp:CreateDate>2024-02-02T22:40:21+01:00</xmp:CreateDate> + <xmp:ModifyDate>2024-02-02T22:40:21+01:00</xmp:ModifyDate> + <xmp:MetadataDate>2024-02-02T22:40:21+01:00</xmp:MetadataDate> <xmpMM:DocumentID>uuid:f320abfc-f6ab-4d12-8719-d176f4d947cf</xmpMM:DocumentID> - <xmpMM:InstanceID>uuid:a21419d2-023c-4512-8135-0ae4ab36b4bd</xmpMM:InstanceID> + <xmpMM:InstanceID>uuid:e9c2bc0c-c443-48b5-8ced-b99f15ae41a0</xmpMM:InstanceID> <prism:complianceProfile>three</prism:complianceProfile> <prism:pageCount>1</prism:pageCount> </rdf:Description> @@ -312,7 +312,7 @@ endobj << /Type /Namespace /NS (https://www.latex-project.org/ns/inline/2022) /RoleMapNS 20 0 R >> endobj 21 0 obj -<< /Type /Namespace /NS (data:,B029B424-4166-87C8-F620-397B784D410C) >> +<< /Type /Namespace /NS (data:,D77936FE-8-5FAE-4338-D9DD76B7C691) >> endobj 8 0 obj [ 9 0 R 11 0 R 13 0 R 15 0 R 17 0 R 19 0 R 21 0 R ] @@ -404,7 +404,7 @@ endobj << /Type /Catalog /Pages 33 0 R /MarkInfo 34 0 R/Lang (en-US)/Metadata 28 0 R/StructTreeRoot 5 0 R >> endobj 44 0 obj -<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20240126210151+01'00')/ModDate (D:20240126210151+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> +<< /Producer (luahbtex-1.17.0)/Creator (LaTeX)/CreationDate (D:20240202224021+01'00')/ModDate (D:20240202224021+01'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)) >> endobj xref 0 45 @@ -413,10 +413,10 @@ xref 0000000003 00000 f 0000000004 00000 f 0000000010 00000 f -0000015155 00000 n +0000015152 00000 n 0000012015 00000 n 0000012225 00000 n -0000014583 00000 n +0000014580 00000 n 0000012898 00000 n 0000000012 00000 f 0000012966 00000 n @@ -431,30 +431,30 @@ xref 0000014184 00000 n 0000014494 00000 n 0000000000 00000 f -0000014651 00000 n -0000014748 00000 n -0000014835 00000 n -0000014922 00000 n -0000015021 00000 n +0000014648 00000 n +0000014745 00000 n +0000014832 00000 n +0000014919 00000 n +0000015018 00000 n 0000000020 00000 n 0000011869 00000 n 0000011734 00000 n 0000011500 00000 n -0000017776 00000 n -0000018130 00000 n +0000017773 00000 n +0000018127 00000 n 0000011979 00000 n 0000012056 00000 n 0000012188 00000 n 0000012835 00000 n -0000015292 00000 n -0000016733 00000 n -0000015379 00000 n -0000016954 00000 n -0000017930 00000 n -0000018192 00000 n -0000018310 00000 n +0000015289 00000 n +0000016730 00000 n +0000015376 00000 n +0000016951 00000 n +0000017927 00000 n +0000018189 00000 n +0000018307 00000 n trailer -<< /Size 45 /Root 43 0 R /Info 44 0 R /ID [ <CD8B7B610F3E857FEE2BD3930A7259D2> <CD8B7B610F3E857FEE2BD3930A7259D2> ] >> +<< /Size 45 /Root 43 0 R /Info 44 0 R /ID [ <D7B7DCEE81905F9857C73FAFC3C9ADC9> <D7B7DCEE81905F9857C73FAFC3C9ADC9> ] >> startxref -18533 +18530 %%EOF diff --git a/macros/latex/contrib/tagpdf/tagpdf-backend.dtx b/macros/latex/contrib/tagpdf/tagpdf-backend.dtx index 809fb896fc..811da15758 100644 --- a/macros/latex/contrib/tagpdf/tagpdf-backend.dtx +++ b/macros/latex/contrib/tagpdf/tagpdf-backend.dtx @@ -47,13 +47,13 @@ % }^^A % } % -% \date{Version 0.98t, released 2024-01-26} +% \date{Version 0.98u, released 2024-02-02} % \maketitle % \begin{implementation} % \begin{macrocode} %<@@=tag> %<*luatex> -\ProvidesExplFile {tagpdf-luatex.def} {2024-01-26} {0.98t} +\ProvidesExplFile {tagpdf-luatex.def} {2024-02-02} {0.98u} {tagpdf~driver~for~luatex} % \end{macrocode} % \section{Loading the lua} @@ -158,8 +158,8 @@ local ProvidesLuaModule = { name = "tagpdf", - version = "0.98t", --TAGVERSION - date = "2024-01-26", --TAGDATE + version = "0.98u", --TAGVERSION + date = "2024-02-02", --TAGDATE description = "tagpdf lua code", license = "The LATEX Project Public License 1.3c" } diff --git a/macros/latex/contrib/tagpdf/tagpdf-checks.dtx b/macros/latex/contrib/tagpdf/tagpdf-checks.dtx index 5205df1cf6..83586fb20c 100644 --- a/macros/latex/contrib/tagpdf/tagpdf-checks.dtx +++ b/macros/latex/contrib/tagpdf/tagpdf-checks.dtx @@ -48,7 +48,7 @@ % }^^A % } % -% \date{Version 0.98t, released 2024-01-26} +% \date{Version 0.98u, released 2024-02-02} % \maketitle % \begin{documentation} % \section{Commands} @@ -327,7 +327,7 @@ % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-checks-code} {2024-01-26} {0.98t} +\ProvidesExplPackage {tagpdf-checks-code} {2024-02-02} {0.98u} {part of tagpdf - code related to checks, conditionals, debugging and messages} %</header> % \end{macrocode} diff --git a/macros/latex/contrib/tagpdf/tagpdf-code.pdf b/macros/latex/contrib/tagpdf/tagpdf-code.pdf Binary files differindex 67914b3a80..6cb075911a 100644 --- a/macros/latex/contrib/tagpdf/tagpdf-code.pdf +++ b/macros/latex/contrib/tagpdf/tagpdf-code.pdf diff --git a/macros/latex/contrib/tagpdf/tagpdf-data.dtx b/macros/latex/contrib/tagpdf/tagpdf-data.dtx index e9f0d14790..6405215297 100644 --- a/macros/latex/contrib/tagpdf/tagpdf-data.dtx +++ b/macros/latex/contrib/tagpdf/tagpdf-data.dtx @@ -47,7 +47,7 @@ % }^^A % } % -% \date{Version 0.98t, released 2024-01-26} +% \date{Version 0.98u, released 2024-02-02} % \maketitle % \begin{documentation} % This files contains a various data files which are read in @@ -60,7 +60,7 @@ % It lists the new tag, the rolemap and the namespace of the rolemap. % \begin{macrocode} %<*ns-latex> -%% \ProvidesExplFile {tagpdf-ns-latex.def} {2024-01-26} {0.98t} +%% \ProvidesExplFile {tagpdf-ns-latex.def} {2024-02-02} {0.98u} %% {latex} {https://www.latex-project.org/ns/dflt/2022}{} title, Title, pdf2, part, Title, pdf2, @@ -92,7 +92,7 @@ text, P, pdf2, % It is bound to change % \begin{macrocode} %<*ns-latex-book> -%% \ProvidesExplFile {tagpdf-ns-latex-book.def} {2024-01-26} {0.98t} +%% \ProvidesExplFile {tagpdf-ns-latex-book.def} {2024-02-02} {0.98u} %% {latex-book} {https://www.latex-project.org/ns/book/2022}{} chapter, H1,pdf2, section, H2,pdf2, @@ -108,7 +108,7 @@ subparagraph, H6,pdf2, % loaded. % \begin{macrocode} %<*ns-latex-inline> -%% \ProvidesExplFile {tagpdf-ns-latex-inline.def} {2024-01-26} {0.98t} +%% \ProvidesExplFile {tagpdf-ns-latex-inline.def} {2024-02-02} {0.98u} %% {latex-inline} {https://www.latex-project.org/ns/inline/2022}{} chapter, Span, pdf2, section, Span, pdf2, @@ -122,7 +122,7 @@ P, Span, pdf2, % \section{The pdf namespace data} % \begin{macrocode} %<*ns-pdf> -%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2024-01-26} {0.98t} +%% \ProvidesExplFile {tagpdf-ns-pdf.def} {2024-02-02} {0.98u} %% {pdf} {http://iso.org/pdf/ssn}{} StructTreeRoot,StructTreeRoot,pdf,D, Document,Document,pdf,D, @@ -190,7 +190,7 @@ Strong,Span,pdf,I, % \section{The pdf 2.0 namespace data} % \begin{macrocode} %<*ns-pdf2> -%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2024-01-26} {0.98t} +%% \ProvidesExplFile {tagpdf-ns-pdf2.def} {2024-02-02} {0.98u} %% {pdf2} {http://iso.org/pdf2/ssn}{} StructTreeRoot,StructTreeRoot,pdf2,D, Document,Document,pdf2,D, @@ -247,7 +247,7 @@ Strong,Strong,pdf2,I, % \section{The mathml namespace data} % \begin{macrocode} %<*ns-mathml> -%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2024-01-26} {0.98t} +%% \ProvidesExplFile {tagpdf-ns-mathml.def} {2024-02-02} {0.98u} % {mathml}{http://www.w3.org/1998/Math/MathML}{} abs,abs,mathml, and,and,mathml, @@ -482,7 +482,7 @@ xor,xor,mathml, % This will perhaps change in future. % \begin{macrocode} %<*parent-child> -%% \ProvidesExplFile {tagpdf-parent-child.csv} {2024-01-26} {0.98t} +%% \ProvidesExplFile {tagpdf-parent-child.csv} {2024-02-02} {0.98u} ,,,StructTreeRoot,Document,Art,Part,Div,Sect,BlockQuote,NonStruct,TOC,TOCI,Index,Private,Quote,Note,Reference,BibEntry,P,Hn,H,Lbl,Code,Span,Link,Annot,Form,Ruby,RB,RT,RP,Warichu,WT,WP,L,LI,LBody,Table,TR,TH,TD,THead,TBody,TFoot,Caption,Figure,Formula,MC Document,both,document level,1,0..n,∅,‡,‡,∅,0..n,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅ Art,1.7,grouping,∅,0..n,∅,‡,‡,0..n,0..n,‡,∅,∅,∅,0..n,∅,0..n,∅,∅,∅,0..1,0..1,∅,∅,∅,0..n,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅,∅,0..n,0..n,∅,∅,∅,0..n,0..n,∅,∅ @@ -537,7 +537,7 @@ MC,both,---,∅,∅,∅,∅,∅,∅,0..n,‡,∅,∅,∅,0..n,0..n,0..n,0..n,0.. % This will perhaps change in future. % \begin{macrocode} %<*parent-child-2> -%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2024-01-26} {0.98t} +%% \ProvidesExplFile {tagpdf-parent-child-2.csv} {2024-02-02} {0.98u} ,,,StructTreeRoot,Document,DocumentFragment,Art,Part,Div,Sect,Aside,BlockQuote,NonStruct,TOC,TOCI,Index,Private,Title,Sub,Quote,Note,Reference,BibEntry,P,Hn,H,Lbl,Code,Em,Strong,Span,Link,Annot,Form,Ruby,RB,RT,RP,Warichu,WT,WP,FENote,L,LI,LBody,Table,TR,TH,TD,THead,TBody,TFoot,Caption,Figure,Formula,math,mathml,Artifact,MC Document,both,document level,1,0..n,0..n,∅,‡,‡,∅,0..n,0..n,‡,∅,∅,∅,0..n,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,0..n,∅ DocumentFragment,2.0,document level,∅,0..n,0..n,0..n,‡,‡,0..n,0..n,0..n,‡,∅,∅,∅,0..n,∅,∅,∅,∅*,∅,∅,∅,∅,∅,∅,∅*,∅,∅,∅,∅*,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅,∅*,∅,∅,∅,∅,0..n,∅ diff --git a/macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx b/macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx index 3764e92d11..04f5501657 100644 --- a/macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx +++ b/macros/latex/contrib/tagpdf/tagpdf-mc-generic.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.98t, released 2024-01-26} +% \date{Version 0.98u, released 2024-02-02} % \maketitle % \begin{documentation} % \end{documentation} @@ -55,11 +55,11 @@ % \begin{macrocode} %<@@=tag> %<*generic> -\ProvidesExplPackage {tagpdf-mc-code-generic} {2024-01-26} {0.98t} +\ProvidesExplPackage {tagpdf-mc-code-generic} {2024-02-02} {0.98u} {part of tagpdf - code related to marking chunks - generic mode} %</generic> %<*debug> -\ProvidesExplPackage {tagpdf-debug-generic} {2024-01-26} {0.98t} +\ProvidesExplPackage {tagpdf-debug-generic} {2024-02-02} {0.98u} {part of tagpdf - debugging code related to marking chunks - generic mode} %</debug> % \end{macrocode} diff --git a/macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx b/macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx index 20dd45ecc2..8f9678e55a 100644 --- a/macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx +++ b/macros/latex/contrib/tagpdf/tagpdf-mc-luacode.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.98t, released 2024-01-26} +% \date{Version 0.98u, released 2024-02-02} % \maketitle % \begin{implementation} % The code is splitted into three parts: code shared by all engines, @@ -86,11 +86,11 @@ % \begin{macrocode} %<@@=tag> %<*luamode> -\ProvidesExplPackage {tagpdf-mc-code-lua} {2024-01-26} {0.98t} +\ProvidesExplPackage {tagpdf-mc-code-lua} {2024-02-02} {0.98u} {tagpdf - mc code only for the luamode } %</luamode> %<*debug> -\ProvidesExplPackage {tagpdf-debug-lua} {2024-01-26} {0.98t} +\ProvidesExplPackage {tagpdf-debug-lua} {2024-02-02} {0.98u} {part of tagpdf - debugging code related to marking chunks - lua mode} %</debug> % \end{macrocode} diff --git a/macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx b/macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx index db7c727770..8799df3d4c 100644 --- a/macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx +++ b/macros/latex/contrib/tagpdf/tagpdf-mc-shared.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.98t, released 2024-01-26} +% \date{Version 0.98u, released 2024-02-02} % \maketitle % \begin{documentation} % \section{Public Commands} @@ -181,7 +181,7 @@ % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-mc-code-shared} {2024-01-26} {0.98t} +\ProvidesExplPackage {tagpdf-mc-code-shared} {2024-02-02} {0.98u} {part of tagpdf - code related to marking chunks - code shared by generic and luamode } %</header> diff --git a/macros/latex/contrib/tagpdf/tagpdf-roles.dtx b/macros/latex/contrib/tagpdf/tagpdf-roles.dtx index 682c4e387a..98750fa461 100644 --- a/macros/latex/contrib/tagpdf/tagpdf-roles.dtx +++ b/macros/latex/contrib/tagpdf/tagpdf-roles.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.98t, released 2024-01-26} +% \date{Version 0.98u, released 2024-02-02} % \maketitle % \begin{documentation} % \begin{function} @@ -98,7 +98,7 @@ % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-roles-code} {2024-01-26} {0.98t} +\ProvidesExplPackage {tagpdf-roles-code} {2024-02-02} {0.98u} {part of tagpdf - code related to roles and structure names} %</header> % \end{macrocode} diff --git a/macros/latex/contrib/tagpdf/tagpdf-space.dtx b/macros/latex/contrib/tagpdf/tagpdf-space.dtx index feff45c173..3e3b3de7e6 100644 --- a/macros/latex/contrib/tagpdf/tagpdf-space.dtx +++ b/macros/latex/contrib/tagpdf/tagpdf-space.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.98t, released 2024-01-26} +% \date{Version 0.98u, released 2024-02-02} % \maketitle % \begin{documentation} % \begin{function}{interwordspace (setup-key)} @@ -64,7 +64,7 @@ % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-space-code} {2024-01-26} {0.98t} +\ProvidesExplPackage {tagpdf-space-code} {2024-02-02} {0.98u} {part of tagpdf - code related to real space chars} %</header> % \end{macrocode} diff --git a/macros/latex/contrib/tagpdf/tagpdf-struct.dtx b/macros/latex/contrib/tagpdf/tagpdf-struct.dtx index bcc9083ae2..8f0dd1e717 100644 --- a/macros/latex/contrib/tagpdf/tagpdf-struct.dtx +++ b/macros/latex/contrib/tagpdf/tagpdf-struct.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.98t, released 2024-01-26} +% \date{Version 0.98u, released 2024-02-02} % \maketitle % \begin{documentation} % \section{Public Commands} @@ -285,7 +285,7 @@ % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-struct-code} {2024-01-26} {0.98t} +\ProvidesExplPackage {tagpdf-struct-code} {2024-02-02} {0.98u} {part of tagpdf - code related to storing structure} %</header> % \end{macrocode} @@ -1905,7 +1905,7 @@ % \section{Attributes and attribute classes} % \begin{macrocode} %<*header> -\ProvidesExplPackage {tagpdf-attr-code} {2024-01-26} {0.98t} +\ProvidesExplPackage {tagpdf-attr-code} {2024-02-02} {0.98u} {part of tagpdf - code related to attributes and attribute classes} %</header> % \end{macrocode} diff --git a/macros/latex/contrib/tagpdf/tagpdf-tree.dtx b/macros/latex/contrib/tagpdf/tagpdf-tree.dtx index 362f3ecf7e..d9ed68f31f 100644 --- a/macros/latex/contrib/tagpdf/tagpdf-tree.dtx +++ b/macros/latex/contrib/tagpdf/tagpdf-tree.dtx @@ -47,13 +47,13 @@ % }^^A % } % -% \date{Version 0.98t, released 2024-01-26} +% \date{Version 0.98u, released 2024-02-02} % \maketitle % \begin{implementation} % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-tree-code} {2024-01-26} {0.98t} +\ProvidesExplPackage {tagpdf-tree-code} {2024-02-02} {0.98u} {part of tagpdf - code related to writing trees and dictionaries to the pdf} %</header> % \end{macrocode} diff --git a/macros/latex/contrib/tagpdf/tagpdf-user.dtx b/macros/latex/contrib/tagpdf/tagpdf-user.dtx index ebdc8cece2..aea543ba40 100644 --- a/macros/latex/contrib/tagpdf/tagpdf-user.dtx +++ b/macros/latex/contrib/tagpdf/tagpdf-user.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Version 0.98t, released 2024-01-26} +% \date{Version 0.98u, released 2024-02-02} % \maketitle % \begin{documentation} % \section{Setup commands} @@ -303,7 +303,7 @@ % \begin{macrocode} %<@@=tag> %<*header> -\ProvidesExplPackage {tagpdf-user} {2024-01-26} {0.98t} +\ProvidesExplPackage {tagpdf-user} {2024-02-02} {0.98u} {tagpdf - user commands} %</header> % \end{macrocode} @@ -736,6 +736,7 @@ % \g_@@_para_end_int, % \g_@@_para_main_begin_int, % \g_@@_para_main_end_int, +% \g_@@_para_main_struct_tl, % \l_@@_para_tag_default_tl, % \l_@@_para_tag_tl, % \l_@@_para_main_tag_tl, @@ -752,6 +753,10 @@ \int_new:N \g_@@_para_end_int \int_new:N \g_@@_para_main_begin_int \int_new:N \g_@@_para_main_end_int +% \end{macrocode} +% this will hold the structure number of the current text-unit. +% \begin{macrocode} +\tl_new:N \g_@@_para_main_struct_tl \tl_new:N \l_@@_para_tag_default_tl \tl_set:Nn \l_@@_para_tag_default_tl { text } \tl_new:N \l_@@_para_tag_tl @@ -795,7 +800,6 @@ } % \end{macrocode} % \end{macro} - % \begin{macro}{\@@_start_para_ints:,\@@_stop_para_ints:} % \begin{macrocode} \cs_new_protected:Npn \@@_start_para_ints: @@ -827,21 +831,31 @@ % \end{macrocode} % \end{macro} % +% We want to be able to inspect the current para main structure, so +% we need a command to store its structure number +% \begin{macro}{\@@_para_main_store_struct:} +% \begin{macrocode} +\cs_new:Npn \@@_para_main_store_struct: + { + \tl_gset:Ne \g_@@_para_main_struct_tl {\int_use:N \c@g_@@_struct_abs_int } + } +% \end{macrocode} +% \end{macro} % TEMPORARLY FIX (2023-11-17). Until latex-lab is updated we must adapt a sec command: % \begin{macrocode} \AddToHook{package/latex-lab-testphase-sec/after} { \cs_set_protected:Npn \@kernel@tag@hangfrom #1 { - \tagstructbegin{tag=\l__tag_para_tag_tl} - \__tag_gincr_para_begin_int: + \tagstructbegin{tag=\l_@@_para_tag_tl} + \@@_gincr_para_begin_int: \tagstructbegin{tag=Lbl} \setbox\@tempboxa \hbox { \bool_lazy_and:nnT {\tag_if_active_p:} - {\g__tag_mode_lua_bool} + {\g_@@_mode_lua_bool} {\tagmcbegin{tag=Lbl}} {#1} } @@ -852,7 +866,7 @@ } } % \end{macrocode} -% and two adaptions from the block module: +% and one temporary adaptions for the block module: % \begin{macrocode} \AddToHook{package/latex-lab-testphase-block/after} { @@ -860,49 +874,6 @@ { \tl_set:Nn \l_@@_para_attr_class_tl { \l_tag_para_attr_class_tl } } - \cs_set_protected:Npn \__block_start_para_structure:n #1 { - \__block_debug_typeout:n - { @endpe = \legacy_if:nTF { @endpe }{true}{false} - \on@line } - \legacy_if:nF { @endpe } - { - \bool_if:NF \l__tag_para_flattened_bool - { - \@@_gincr_para_main_begin_int: - \tag_struct_begin:n - { - tag=\l_@@_para_main_tag_tl, - attribute-class=\l_@@_para_main_attr_class_tl, - } - } - } - \@@_gincr_para_begin_int: - \__block_debug_typeout:n{increment~ P \on@line } - \tag_struct_begin:n - { - tag=\l__tag_para_tag_tl - ,attribute-class=\l_@@_para_attr_class_tl - } - \__tag_check_para_begin_show:nn {green}{#1} - \tag_mc_begin:n {} - } - \RemoveFromHook{para/end}[latex-lab-testphase-block] - \AddToHook{para/end}[latex-lab-testphase-block] - { - \bool_if:NT \l__tag_para_bool - { - \__tag_gincr_para_end_int: - \__block_debug_typeout:n{increment~ /P \on@line } - \tag_mc_end: - \__tag_check_para_end_show:nn {red}{} - \tag_struct_end: - \bool_if:NF \l__tag_para_flattened_bool - { - \__tag_gincr_para_main_end_int: - \tag_struct_end: - } - } - } } % \end{macrocode} @@ -934,7 +905,7 @@ } % \end{macrocode} % \end{macro} -% This fills the para hooks with the needed code. +% Helper command for debugging: % \begin{macrocode} \cs_new_protected:Npn \@@_check_para_begin_show:nn #1 #2 %#1 color, #2 prefix @@ -957,30 +928,82 @@ \tag_mc_end: } } - -\AddToHook{para/begin} - { +% \end{macrocode} +% +% The para/begin and para/end code. +% We have two variants here: a simpler one, which must be used +% if the block code is not used (and so probably will disappear +% at some time) and a more sophisticated one that must +% be used if the block code is used. +% It is possible that we will need more variants, so +% we setup a socket so that the code can be easily switched. +% \begin{macrocode} +\socket_new:nn {tagsupport/para/begin}{0} +\socket_new:nn {tagsupport/para/end}{0} + +\socket_new_plug:nnn{tagsupport/para/begin}{plain} + { \bool_if:NT \l_@@_para_bool { \bool_if:NF \l_@@_para_flattened_bool + { + \@@_gincr_para_main_begin_int: + \tag_struct_begin:n + { + tag=\l_@@_para_main_tag_tl, + } + \@@_para_main_store_struct: + } + \@@_gincr_para_begin_int: + \tag_struct_begin:n {tag=\l_@@_para_tag_tl} + \@@_check_para_begin_show:nn {green}{} + \tag_mc_begin:n {} + } + } +\socket_new_plug:nnn{tagsupport/para/begin}{block} + { + \bool_if:NT \l_@@_para_bool + { + \legacy_if:nF { @inlabel } { - \@@_gincr_para_main_begin_int: - \tag_struct_begin:n - { - tag=\l_@@_para_main_tag_tl, + \@@_check_typeout_v:n + {==>~ @endpe = \legacy_if:nTF { @endpe }{true}{false} \on@line } + \legacy_if:nF { @endpe } + { + \bool_if:NF \l_@@_para_flattened_bool + { + \@@_gincr_para_main_begin_int: + \tag_struct_begin:n + { + tag=\l_@@_para_main_tag_tl, + attribute-class=\l_@@_para_main_attr_class_tl, + } + \@@_para_main_store_struct: + } } - } - \@@_gincr_para_begin_int: - \tag_struct_begin:n {tag=\l_@@_para_tag_tl} - \@@_check_para_begin_show:nn {green}{} - \tag_mc_begin:n {} - } - } -\AddToHook{para/end} + \@@_gincr_para_begin_int: + \@@_check_typeout_v:n {==>~increment~ P \on@line } + \tag_struct_begin:n + { + tag=\l_@@_para_tag_tl + ,attribute-class=\l_@@_para_attr_class_tl + } + \@@_check_para_begin_show:nn {green}{\PARALABEL} + \tag_mc_begin:n {} + } + } + } +% \end{macrocode} +% there was no real difference between the original and +% in the block variant, only a debug message. We therefore +% define only a plain variant. +% \begin{macrocode} +\socket_new_plug:nnn{tagsupport/para/end}{plain} { \bool_if:NT \l_@@_para_bool { \@@_gincr_para_end_int: + \@@_check_typeout_v:n {==>~increment~ /P \on@line } \tag_mc_end: \@@_check_para_end_show:nn {red}{} \tag_struct_end: @@ -989,9 +1012,43 @@ \@@_gincr_para_main_end_int: \tag_struct_end: } - } + } } % \end{macrocode} +% By default we assign the plain plug: +% \begin{macrocode} +\socket_assign_plug:nn { tagsupport/para/begin}{plain} +\socket_assign_plug:nn { tagsupport/para/end}{plain} +% \end{macrocode} +% And use the sockets in the hooks. Once tagging sockets exist, this +% can be adapted. +% \begin{macrocode} +\AddToHook{para/begin}{ \socket_use:n { tagsupport/para/begin } + } +\AddToHook{para/end} { \socket_use:n { tagsupport/para/end } } +% \end{macrocode} +% +% If the block code is loaded we must ensure that it doesn't overwrite +% the hook again. And we must reassign the para/begin plug. +% This can go once the block code no longer tries to adapt the hooks. +% \begin{macrocode} +\AddToHook{package/latex-lab-testphase-block/after} + { + \RemoveFromHook{para/begin}[tagpdf] + \RemoveFromHook{para/end}[latex-lab-testphase-block] + \AddToHook{para/begin}[tagpdf] + { + \socket_use:n { tagsupport/para/begin } + } + \AddToHook{para/end}[tagpdf] + { + \socket_use:n { tagsupport/para/end } + } + \socket_assign_plug:nn { tagsupport/para/begin}{block} + } + +% \end{macrocode} +% % We check the para count at the end. If tagging is not active it is not a error, % but we issue a warning as it perhaps indicates that the testphase code didn't guard % everything correctly. diff --git a/macros/latex/contrib/tagpdf/tagpdf.dtx b/macros/latex/contrib/tagpdf/tagpdf.dtx index 71585725aa..d1ccff926c 100644 --- a/macros/latex/contrib/tagpdf/tagpdf.dtx +++ b/macros/latex/contrib/tagpdf/tagpdf.dtx @@ -84,7 +84,7 @@ % \begin{macrocode} %<@@=tag> %<*package> -\ProvidesExplPackage {tagpdf} {2024-01-26} {0.98t} +\ProvidesExplPackage {tagpdf} {2024-02-02} {0.98u} { A package to experiment with pdf tagging } \bool_if:nF @@ -110,7 +110,7 @@ % \end{macrocode} %<*debug> % \begin{macrocode} -\ProvidesExplPackage {tagpdf-debug} {2024-01-26} {0.98t} +\ProvidesExplPackage {tagpdf-debug} {2024-02-02} {0.98u} { debug code for tagpdf } \@ifpackageloaded{tagpdf}{}{\PackageWarning{tagpdf-debug}{tagpdf~not~loaded,~quitting}\endinput} % \end{macrocode} @@ -133,7 +133,7 @@ % we define a base package with dummy functions % \begin{macrocode} %<*base> -\ProvidesExplPackage {tagpdf-base} {2024-01-26} {0.98t} +\ProvidesExplPackage {tagpdf-base} {2024-02-02} {0.98u} {part of tagpdf - provide base, no-op versions of the user commands } %</base> % \end{macrocode} diff --git a/macros/latex/contrib/tagpdf/tagpdf.pdf b/macros/latex/contrib/tagpdf/tagpdf.pdf Binary files differindex 61f0c3e3c3..92d19dd6ff 100644 --- a/macros/latex/contrib/tagpdf/tagpdf.pdf +++ b/macros/latex/contrib/tagpdf/tagpdf.pdf diff --git a/macros/latex/contrib/tagpdf/tagpdf.tex b/macros/latex/contrib/tagpdf/tagpdf.tex index 2d9ab2ef1b..0b94e9406f 100644 --- a/macros/latex/contrib/tagpdf/tagpdf.tex +++ b/macros/latex/contrib/tagpdf/tagpdf.tex @@ -16,8 +16,8 @@ } \DebugBlocksOff \makeatletter -\def\UlrikeFischer@package@version{0.98t} -\def\UlrikeFischer@package@date{2024-01-26} +\def\UlrikeFischer@package@version{0.98u} +\def\UlrikeFischer@package@date{2024-02-02} \makeatother \documentclass[bibliography=totoc,a4paper]{article} diff --git a/macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty b/macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty index 90418591a0..bc74eb1bc9 100644 --- a/macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty +++ b/macros/latex/contrib/tagpdf/tagpdfdocu-patches.sty @@ -1,5 +1,5 @@ %\RequirePackage[enable-debug]{expl3}[2018/06/14] -\ProvidesExplPackage {tagpdfdocu-patches} {2024-01-26} {0.98t} +\ProvidesExplPackage {tagpdfdocu-patches} {2024-02-02} {0.98u} {patches/commands for the tagpdf documentation} \RequirePackage{etoolbox,xpatch} diff --git a/macros/latex/contrib/wargame/README.md b/macros/latex/contrib/wargame/README.md index 3de32ab4d0..70eb286498 100644 --- a/macros/latex/contrib/wargame/README.md +++ b/macros/latex/contrib/wargame/README.md @@ -1,6 +1,6 @@ # A package to make Hex'n'Counter wargames in LaTeX -## Version 0.5 +## Version 0.6 This package can help make classic [Hex'n'Counter wargames](https://en.wikipedia.org/wiki/Wargame) using LaTeX. The diff --git a/macros/latex/contrib/wargame/doc/compat.pdf b/macros/latex/contrib/wargame/doc/compat.pdf Binary files differindex 2ba344d4ab..8f70ab6b2e 100644 --- a/macros/latex/contrib/wargame/doc/compat.pdf +++ b/macros/latex/contrib/wargame/doc/compat.pdf diff --git a/macros/latex/contrib/wargame/doc/symbols.pdf b/macros/latex/contrib/wargame/doc/symbols.pdf Binary files differindex cd8f0d3ddc..9722803067 100644 --- a/macros/latex/contrib/wargame/doc/symbols.pdf +++ b/macros/latex/contrib/wargame/doc/symbols.pdf diff --git a/macros/latex/contrib/wargame/doc/tutorial/export.tex b/macros/latex/contrib/wargame/doc/tutorial/export.tex index 6d6722d9ac..390b8785ae 100644 --- a/macros/latex/contrib/wargame/doc/tutorial/export.tex +++ b/macros/latex/contrib/wargame/doc/tutorial/export.tex @@ -77,9 +77,9 @@ % counter. % % \begin{macrocode} -\doublechitimages[A]{\alla} -\doublechitimages[B]{\allb} -\doublechitimages[Markers]{{game turn chit}} +\doublechitimages[A][chit drop shadows]{\alla} +\doublechitimages[B][chit drop shadows]{\allb} +\doublechitimages[Markers][chit drop shadows]{{game turn chit}} % \end{macrocode} % % Again, the macros we made for the counters comes in handy. Note @@ -96,7 +96,9 @@ % can.}. % % \begin{macrocode} -\battlemarkers{12} +\tikzset{} +\battlemarkers[marker drop shadows]{12} +\tikzset{every battle marker/.style={}} % \end{macrocode} % % Furthermore, we can add ``odds'' and battle result markers. Odds @@ -108,14 +110,14 @@ % in the markers. % % \begin{macrocode} -\oddsmarkers{% +\oddsmarkers[marker drop shadows]{% 1:3/red!25!white,% 1:2/red!15!white,% 1:1/orange!15!white,% 2:1/white,% 3:1/green!15!white,% 4:1/green!25!white} -\resultmarkers{ +\resultmarkers[marker drop shadows]{ AE/red!50!white, AR/red!25!white, EX/white, diff --git a/macros/latex/contrib/wargame/doc/tutorial/game.pdf b/macros/latex/contrib/wargame/doc/tutorial/game.pdf Binary files differindex f4e8a22e2a..63ea8b0733 100644 --- a/macros/latex/contrib/wargame/doc/tutorial/game.pdf +++ b/macros/latex/contrib/wargame/doc/tutorial/game.pdf diff --git a/macros/latex/contrib/wargame/doc/wargame.pdf b/macros/latex/contrib/wargame/doc/wargame.pdf Binary files differindex 01a58c597b..9b608b4144 100644 --- a/macros/latex/contrib/wargame/doc/wargame.pdf +++ b/macros/latex/contrib/wargame/doc/wargame.pdf diff --git a/macros/latex/contrib/wargame/source/Makefile b/macros/latex/contrib/wargame/source/Makefile index e11c477bf7..8320c42419 100644 --- a/macros/latex/contrib/wargame/source/Makefile +++ b/macros/latex/contrib/wargame/source/Makefile @@ -2,7 +2,7 @@ # # NAME := wargame -VERSION := 0.5 +VERSION := 0.6 LATEX_FLAGS := -interaction=nonstopmode \ -file-line-error \ --synctex=15 \ diff --git a/macros/latex/contrib/wargame/source/chit/battle.dtx b/macros/latex/contrib/wargame/source/chit/battle.dtx index 5057d620a5..381f4e4aba 100644 --- a/macros/latex/contrib/wargame/source/chit/battle.dtx +++ b/macros/latex/contrib/wargame/source/chit/battle.dtx @@ -41,7 +41,7 @@ minimum size=8mm, draw=black, fill=#2, - every odds marker/.try] at (.2,-.2) {#1}; + every odds marker/.try] at (.16,-.16) {#1}; } }, odds marker/.style args={#1,#2}{ diff --git a/macros/latex/contrib/wargame/source/chit/misc.dtx b/macros/latex/contrib/wargame/source/chit/misc.dtx index a5b9a79b24..e5d4b4b708 100644 --- a/macros/latex/contrib/wargame/source/chit/misc.dtx +++ b/macros/latex/contrib/wargame/source/chit/misc.dtx @@ -4,6 +4,58 @@ % \fi % \subsubsection{Some utilities} % +% This style allows us to add a fading drop-shadow to chits. +% +% \begin{macrocode} +\usetikzlibrary{shadows.blur} +\newif\ifwg@chit@drop\wg@chit@dropfalse +\tikzset{ + chit has drop/.is if=wg@chit@drop, + chit has drop/.default=true, + chit has drop/.initial=false, + /tikz/render blur shadow/.add code={% + \chit@dbg{2}{Number of blur steps: \pgfbs@steps}% + \ifnum\pgfbs@steps=0\else + \chit@dbg{2}{Making shadow blur}% + }{\fi}} +\tikzset{% + chit drop/.code={% + %% \message{^^J Args `#1'}% + \pgfkeysalso{% + chit has drop=true, + /tikz/blur shadow={shadow blur steps=5, + shadow opacity=25, + shadow xshift=.05cm, + shadow yshift=-.05cm, + shadow blur radius=.05cm, + #1}}% + \ifnum\pgfbs@steps=0% + \gdef\wg@drop@margin{0pt}% + \else% + \ifwg@chit@drop% + \pgfmathparse{ + \pgfbs@radius+ + veclen( + \pgfkeysvalueof{/tikz/shadow xshift}, + \pgfkeysvalueof{/tikz/shadow yshift})} + \xdef\wg@drop@margin{\pgfmathresult pt}% + \else% + \gdef\wg@drop@margin{0pt}% + \fi + %% \message{^^J Drop margin is `\wg@drop@margin' + %% `\pgfbs@radius' + %% `\pgfkeysvalueof{/tikz/shadow xshift}', + %% `\pgfkeysvalueof{/tikz/shadow yshift}'}% + \fi% + },% + chit drop/.default=,% + no chit drop/.code={% + \pgfkeysalso{ + /tikz/blur shadow={shadow blur steps=0}} + \gdef\wg@drop@margin{0pt}% + } +}% +% \end{macrocode} % % Game turn marker % diff --git a/macros/latex/contrib/wargame/source/chit/modifiers.dtx b/macros/latex/contrib/wargame/source/chit/modifiers.dtx index b42ee5790f..f2f47ee3a8 100644 --- a/macros/latex/contrib/wargame/source/chit/modifiers.dtx +++ b/macros/latex/contrib/wargame/source/chit/modifiers.dtx @@ -14,7 +14,7 @@ code={% \path[fill=white,opacity=#1,pic actions] (-.6,-.6) rectangle(.6,.6);}}, pics/chit/eliminate/.style={ - code={% + code={% \path[fill=red,opacity=#1,pic actions] (-.6,-.6) rectangle(.6,.6);}}, pics/chit/shade/.default=0.5, pics/chit/eliminate/.default=0.25, diff --git a/macros/latex/contrib/wargame/source/chit/oob.dtx b/macros/latex/contrib/wargame/source/chit/oob.dtx index d640dadebf..9e5f0c4f93 100644 --- a/macros/latex/contrib/wargame/source/chit/oob.dtx +++ b/macros/latex/contrib/wargame/source/chit/oob.dtx @@ -37,8 +37,9 @@ \def\chit@oob@rowupdate(#1,#2)#3#4{% \chit@dbg{2}{ Row update c=`#1',r=`#2',s=`#3',e=`#4'} %\pgfmathparse{ifthenelse(#1>0,#2-#3,#2)}% - \pgfmathparse{#2-#3)}% + \pgfmathparse{#2-#3-#4}% \xdef#2{\pgfmathresult}% + \xdef#1{0}%\pgfmathresult}% %\xdef#1{0} \chit@dbg{2}{ \space\space-> update `\string#2'=#2} } @@ -71,6 +72,7 @@ % \begin{macrocode} \newif\ifwg@oob@inv\wg@oob@invfalse \def\chit@oob@spacer{hspace} +\def\chit@oob@vspacer{vspace} \def\wg@star@oob{\wg@oob@invtrue\wg@oob} \def\wg@nostar@oob{\wg@oob@invfalse\wg@oob} \def\oob{% @@ -91,6 +93,8 @@ % \begin{macrocode} \def\wg@oob#1#2#3#4{ \def\r{0} + \pgfmathparse{#3*(#2-1)}% + \edef\a{\pgfmathresult} \chit@dbg{2}{OOB: `#1'} \foreach[count=\ti from 0] \t/\y in #1{ \xdef\o{\r} @@ -109,20 +113,28 @@ \ifx\m\@empty\def\m{1}\fi \ifx\u\m\def\m{1}\fi \foreach \n in {1,...,\m}{% - \chit@dbg{2}{OOB Chit is `\u'}% + \chit@dbg{2}{OOB Chit is `\u' `\chit@oob@spacer'}% \ifx\u\chit@oob@spacer% \chit@dbg{3}{Chit `\u' is spacer `\chit@oob@spacer'} \pgfmathparse{\c+#4}% \xdef\c{\pgfmathresult}% - \else - \ifnum\chitdbglvl>2% - \node[minimum width=#3cm,minimum height=#3cm, - draw,transform shape] at (\c,\r) {}; + \else% + \ifx\u\chit@oob@vspacer% + \chit@dbg{3}{Chit `\u' is vspacer `\chit@oob@vspacer'} + \pgfmathparse{ifthenelse(abs(\c)<0.0001,0,#3)} + \xdef\ll{\pgfmathresult} + \chit@dbg{2}{\string\ll=`\ll'} + \chit@oob@rowupdate(\c,\r){\ll}{#4} + \else + \ifnum\chitdbglvl>2% + \node[minimum width=#3cm,minimum height=#3cm, + draw,transform shape] at (\c,\r) {}; + \fi + \ifx\u\chit@blank\else% + \chit[\u=\ti,zone oob point={\u}{\c}{\r}](\c,\r);% + \fi% + \chit@oob@cellupdate(\c,\r){#2}{#3}{\y} \fi - \ifx\u\chit@blank\else% - \chit[\u=\ti,zone oob point={\u}{\c}{\r}](\c,\r);% - \fi% - \chit@oob@cellupdate(\c,\r){#2}{#3}{\y} \fi } \fi @@ -153,7 +165,7 @@ % \chit@dbg{2}{ \space Breaking loop \rr\space > \y}% % \breakforeach% %\else% - \chit@oob@rowupdate(\c,\r){#3}{#4} + \chit@oob@rowupdate(\c,\r){#3}{0}% Extra spacing? %\fi } \fi @@ -166,6 +178,169 @@ \@ifnextchar;{\@gobble}{}} % \end{macrocode} % +% Horizontal flow OOB +% +% \begin{macrocode} +\def\wg@star@hoob{\wg@oob@invtrue\wg@hoob} +\def\wg@nostar@hoob{\wg@oob@invfalse\wg@hoob} +\def\hoob{% + \@ifstar{\wg@star@hoob% + }{\wg@nostar@hoob% + }% +} +% \end{macrocode} +% +% The inner macro of \cs{hoob}. The arguments are +% \begin{enumerate} +% \item The list of lists of chits styles +% \item The maximum number of columns +% \item The width of each cell +% \item Additional row spacing between turns +% \end{enumerate} +% +% \begin{macrocode} +\def\wg@hoob#1#2#3#4{ + \def\r{0} + \def\c{0} + \pgfmathparse{#3*(#2-1)}% + \edef\a{\pgfmathresult} + \chit@dbg{2}{OOB: `#1'} + \foreach[count=\ti from 0] \t/\y in #1{ + \xdef\o{\r} + % \def\c{0} + \ifx\t\y\def\y{0}\fi + \chit@dbg{2}{Turn \ti\space(\r,\t,y=\y):'} + \ifx\t\empty\else + % Count how many are left for this turn + \chit@dbg{2}{At start of turn \t\space\string\c=\c} + \def\l{\c}% + \let\ig\empty + \foreach \u/\m in \t{ + \ifx\ig\empty + \ifx\u\empty\else + \ifx\u\m\def\m{1}\fi + \ifx\u\chit@oob@spacer% + \pgfmathparse{\l+\m*#4}\xdef\l{\pgfmathresult} + \chit@dbg{2}{Got \m\space hspace (#4) -> \l} + \else + \ifx\u\chit@oob@vspace% + \xdef\ig{1} + \chit@dbg{2}{Got vspace -> \l (\ig)} + \else + \pgfmathparse{\l+\m*#3} + \xdef\l{\pgfmathresult} + \chit@dbg{2}{Got \m\space units -> \l} + \fi + \fi + \fi + \fi} + % Check if there's enough room + \chit@dbg{2}{To fill the rest of turn needs `\l' compared to + `\a' (#3*(#2-1))} + \pgfmathparse{ifthenelse(abs(\l)>=#3*(#2-1),0,1}% + \xdef\l{\pgfmathresult}% + \chit@dbg{2}{Break or not `\l'} + \ifnum\l=0\chit@oob@turnupdate(\c,\r){#3}{#4}\fi + \fi + \ifwg@oob@inv% + \pic[transform shape] at (\c+.5*#3,\r) {chit/oob turn=\ti};% was dx=0.5 + \else + \pic[transform shape] at (\c+-.5*#3,\r) {chit/oob turn=\ti};% was dx=-0.5 + \fi% + %\chit@oob@cellupdate(\c,\r){#2}{#3}{\y} + \ifx\t\empty\else% + \def\lv{0} + \foreach \u/\m in \t{ + %% \chit@dbg{2}{ `\u'=`\m'} + \ifx\u\empty\else + \ifx\m\@empty\def\m{1}\fi + \ifx\u\m\def\m{1}\fi + \foreach \n in {1,...,\m}{% + \chit@dbg{2}{OOB Chit is `\u' `\chit@oob@spacer'}% + \ifx\u\chit@oob@spacer% + \chit@dbg{3}{Chit `\u' is spacer `\chit@oob@spacer'} + \pgfmathparse{\c+#4}% + \xdef\c{\pgfmathresult}% + \else% + \ifx\u\chit@oob@vspacer% + \chit@dbg{3}{Chit `\u' is vspacer `\chit@oob@vspacer'} + \pgfmathparse{ifthenelse(abs(\c)<0.0001,0,#3)} + \xdef\ll{\pgfmathresult} + \chit@dbg{2}{\string\ll=`\ll'} + \chit@oob@rowupdate(\c,\r){\ll}{#4} + \xdef\lv{1} + \else + \ifnum\chitdbglvl>2% + \node[minimum width=#3cm,minimum height=#3cm, + draw,transform shape] at (\c,\r) {}; + \fi + \ifx\u\chit@blank\else% + \chit[\u=\ti,zone oob point={\u}{\c}{\r}](\c,\r);% + \fi% + \chit@oob@cellupdate(\c,\r){#2}{#3}{\y} + \fi + \fi + } + \fi + } + \fi + \chit@dbg{2}{ End of chits in turn + \ti\space(c=`\c',r=`\r',o='\o',y='\y')} + % --- Not relevant, I think + % IF no units where given, then we force \c to be non-zero so that + % \chit@oob@turnupdate increments the row + % \ifx\t\@empty + % \def\c{#3} + % \chit@dbg{2}{ Turn is empty, set c=`\c'} + % \fi + % --- + %\ifnum\y<0% No explicit number of rows given + % \def\c{#3} + % \chit@dbg{2}{ No explicit number of rows given, set c=`\c'} + %\fi + % In case the user gave and explicit number of rows, add the rows + % that are missing. \y is initially set to the number of + % requested rows, and then decremented every time we go down one + % row. So if the number of rows we did so far is N, and the + % requested number of rows is M, then the loop below adds M-N + % rows. + \ifnum\y>0% + \chit@dbg{2}{ Looping rows from 2 to \y, break when row > \y}% + \foreach \rr in {2,...,\y}{ + %\ifnum\rr>\y% A little funny, but \y can be negative! + % \chit@dbg{2}{ \space Breaking loop \rr\space > \y}% + % \breakforeach% + %\else% + \chit@oob@rowupdate(\c,\r){#3}{0}% Extra spacing? + %\fi + } + \fi + % --- Not relevant I think + % This will zero \c. However, if on entry |\c|>0, then we also + % increment the row + % \chit@oob@turnupdate(\c,\r){#3}{#4} + % --- + % Horizontal spacer + + %\pgfmathparse{ifthenelse(abs(\c)>=\a,1,0)}\xdef\l{\pgfmathresult} + \pgfmathparse{\c+1.5*#4}% + \xdef\c{\pgfmathresult}% + \ifnum\lv=1% + \pgfmathparse{\r-#4} + \chit@oob@rowupdate(\c,\r){0}{#4} + \else + \chit@oob@cellupdate(\c,\r){#2}{#3}{\y} + \ifnum\y<0 + \chit@oob@turnupdate(\c,\r){#3}{#4} + \else + \fi + \fi + % \xdef\y{0} + \chit@dbg{2}{End of turn \ti\space(c=`\c',r=`\r',o='\o',y='\y')} + } + \chit@dbg{3}{End of OOB (c=`\c',r=`\r',y=`\y')} + \@ifnextchar;{\@gobble}{}} +% \end{macrocode} % \iffalse % </chit> % -------------------------------------------------------------------- diff --git a/macros/latex/contrib/wargame/source/chit/shape.dtx b/macros/latex/contrib/wargame/source/chit/shape.dtx index 8a3d70fbd0..f68ea25a44 100644 --- a/macros/latex/contrib/wargame/source/chit/shape.dtx +++ b/macros/latex/contrib/wargame/source/chit/shape.dtx @@ -92,7 +92,7 @@ chit/symbol/.style={scale=.4,transform shape}, chit/parts/.style={shape=rectangle,transform shape}, chit/factors/.style={chit/parts,anchor=south}, - chit/left/.style={chit/parts,anchor=south,rotate=90}, + chit/left/.style={chit/parts,anchor=base,rotate=90},%Anchor was south chit/right/.style={chit/parts,anchor=north,rotate=90}, chit/upper left/.style={chit/parts,anchor=north west}, chit/upper right/.style={chit/parts,anchor=north east}, @@ -141,7 +141,8 @@ % \begin{macrocode} \tikzset{% chit/.code={% - \pgfkeys{/tikz/transform shape,/tikz/shape=chit} + \chit@dbg{2}{chit arguments are `#1'}% + \pgfkeys{/tikz/transform shape,/tikz/shape=chit}% \pgfkeys{/chit/.cd,#1}}} % \end{macrocode} % \end{TikzKey} @@ -657,7 +658,11 @@ % % The work horse. This simply makes a \cs{node} with the shape % \texttt{chit}. Note, we allow for a trailing semi-colon -% (\texttt{;}) to have a similar feel to other \TikZ{} macros. +% (\texttt{;}) to have a similar feel to other \TikZ{} macros. +% +% The macro will execute the style \texttt{/tikz/every chit} if +% defined. Note that this will be executed \emph{before} the usual +% \texttt{every chip node} style. % % \begin{macrocode} \def\chit@@@#1#2(#3){% @@ -667,7 +672,7 @@ ^^J Name: `#3'} \let\name\pgfutil@empty% \chit@dbg{1}{=== Before chit node}% - \node[chit={every chit/.try,id=#3,#1}] (tmp) at (#2) {}; + \node[chit={/tikz/every chit/.try,id=#3,#1}] (tmp) at (#2) {}; \chit@dbg{2}{=== After chit node}% \ifx|#3|\relax% \else% diff --git a/macros/latex/contrib/wargame/source/chit/table.dtx b/macros/latex/contrib/wargame/source/chit/table.dtx index 7094e436ed..f99236119e 100644 --- a/macros/latex/contrib/wargame/source/chit/table.dtx +++ b/macros/latex/contrib/wargame/source/chit/table.dtx @@ -7,7 +7,9 @@ % \begin{macrocode} \tikzset{ chit/cell background/.style={fill=black}, + %chit/cell background flipped/.style={fill=black}, blank chit/.style={/chit/frame={draw=none,fill=none}}, + chit/grid lines/.style={dashed}, } % \end{macrocode} % @@ -20,6 +22,10 @@ \def\chit@cellbg(#1,#2)#3{% \draw[chit/cell background](#1-#3/2,#2-#3/2) rectangle++(#3,#3); } +\def\chit@celldblbg(#1,#2)#3{% + \draw[chit/cell background,chit/cell background flipped/.try]% + (#1-#3/2,#2-#3/2) rectangle++(#3,#3); +} % \end{macrocode} % % \begin{Macro}{\ifchits@reset} @@ -83,6 +89,27 @@ \@ifnextchar;{\@gobble}{}} % \end{macrocode} % \end{Macro} +% \begin{Macro}{\chitgrid} +% \begin{enumerate} +% \item columns +% \item rows +% \item cell-size +% \end{enumerate} +% +% \begin{macrocode} +\def\chitgrid#1#2#3{% + \pgfmathparse{#3/2}\edef\rmin{\pgfmathresult}% + \pgfmathparse{#2*#3-#3/2}\edef\rmax{\pgfmathresult}% + %\draw[red](-#3/2,\rmin)rectangle(#3*#1-#3/2,-\rmax); + \foreach \cc in {0,...,#1}{ + \draw[chit/grid lines] (\cc*#3-#3/2,3*#3/4)--(\cc*#3-#3/2,-\rmax-#3/4);} + %\chit@dbg{0}{Drawing horizontal lines from `\rmin, `-\rmin', ..., `-\rmax'} + \foreach \rr in {\rmin,-\rmin,...,-\rmax}{ + %\chit@dbg{0}{Horizontal line at `\rr'} + \draw[chit/grid lines] (-3*#3/4,\rr)--(#1*#3-#3/4,\rr);} +} +% \end{macrocode} +% \end{Macro} % % \begin{Macro}{\doublechits, % \@doublechits, @@ -154,7 +181,7 @@ \chit@cellbg(\c,\r){#3} \chit[\u=\ti](\c,\r) \chit@dbl@flip(\c,\r){#3} - \chit@cellbg(\mc,\r){#3} + \chit@celldblbg(\mc,\r){#3} \chit[\u\space flipped=\ti,zone turn=\t,zone mult=\n](\mc,\r) \chit@dbl@cellupdate(\c,\r){#2}{#3} \fi @@ -166,10 +193,39 @@ \draw[dashed](0,-3*#3/4)--(0,\r-#3/4);% \draw[dashed,<-] (#3/5,-2*#3/3)--(#3/2,-2*#3/3) node[transform shape,anchor=west]{Back};% \draw[dashed,<-] (-#3/5,-2*#3/3)--(-#3/2,-2*#3/3) node[transform shape,anchor=east]{Front};% + % \foreach \cc in {0,...,#2}{ + % \draw[dashed] (\cc*#3,-3*#3/4)--(\cc*#3,\r-#3/4); + % \draw[dashed] (-\cc*#3,-3*#3/4)--(-\cc*#3,\r-#3/4);} + % \pgfmathparse{#3/2}\edef\rmin{\pgfmathresult}% + % \chit@dbg{0}{Drawing horizontal lines from `-\rmin, `\rmin', ..., `\r'} + % \foreach \rr in {-\rmin,\rmin,...,\r}{ + % \chit@dbg{0}{Horizontal line at `\rr'} + % \draw[dashed] (-#2*#3-#3/4,\rr)--(#2*#3+#3/4,\rr);} \@ifnextchar;{\@gobble}{}} % \end{macrocode} % \end{Macro} % +% \begin{Macro}{\doublechitgrid} +% \begin{enumerate} +% \item columns +% \item rows +% \item cell-size +% \end{enumerate} +% +% \begin{macrocode} +\def\doublechitgrid#1#2#3{% + \pgfmathparse{#3/2}\edef\rmin{\pgfmathresult}% + \pgfmathparse{#2*#3-#3/2}\edef\rmax{\pgfmathresult}% + \foreach \cc in {0,...,#1}{ + \draw[chit/grid lines] (\cc*#3,-3*#3/4)--(\cc*#3,\rmax+#3/4); + \draw[chit/grid lines] (-\cc*#3,-3*#3/4)--(-\cc*#3,\rmax+#3/4);} + %\chit@dbg{0}{Drawing horizontal lines from `-\rmin, `\rmin', ..., `\rmax'} + \foreach \rr in {-\rmin,\rmin,...,\rmax}{ + %\chit@dbg{0}{Horizontal line at `\rr'} + \draw[chit/grid lines] (-#1*#3-#3/4,\rr)--(#1*#3+#3/4,\rr);} +} +% \end{macrocode} +% \end{Macro} % \iffalse % </chit> % -------------------------------------------------------------------- diff --git a/macros/latex/contrib/wargame/source/hex/labels.dtx b/macros/latex/contrib/wargame/source/hex/labels.dtx index 7767dcc661..f622bf6cda 100644 --- a/macros/latex/contrib/wargame/source/hex/labels.dtx +++ b/macros/latex/contrib/wargame/source/hex/labels.dtx @@ -132,7 +132,7 @@ % % \begin{macrocode} \def\hex@do@label{% - \hex@dbg{1}{Hex label: `\meaning\hex@label'}% + \hex@dbg{3}{Hex label: `\meaning\hex@label'}% \edef\hex@l@tmp{[% /hex/label/.cd,% rotate=0,% diff --git a/macros/latex/contrib/wargame/source/hex/ridges.dtx b/macros/latex/contrib/wargame/source/hex/ridges.dtx index 24552e36e2..658f55888b 100644 --- a/macros/latex/contrib/wargame/source/hex/ridges.dtx +++ b/macros/latex/contrib/wargame/source/hex/ridges.dtx @@ -157,11 +157,12 @@ \xdef\hex@r@p{\hex@r@p ($(300:\hex@r@r)+(-120:\hex@r@t/2)$)} \fi \ifhex@r@ne - \xdef\hex@r@p{\hex@r@p --cycle} + %\xdef\hex@r@p{\hex@r@p --cycle} + \xdef\hex@r@p{\hex@r@p -- (0:\hex@r@r)} \else \xdef\hex@r@p{\hex@r@p --(.5:\hex@r@r)} \fi - \hex@dbg{4}{Ridge along se: `\hex@r@p'} + \hex@dbg{4}{Ridge along south east: `\hex@r@p'} \fi \hex@dbg{3}{ Ridges path: \hex@r@p} % \draw[red] \hex@r@p; diff --git a/macros/latex/contrib/wargame/source/hex/terrain.dtx b/macros/latex/contrib/wargame/source/hex/terrain.dtx index 4c486adf77..9d15a555ec 100644 --- a/macros/latex/contrib/wargame/source/hex/terrain.dtx +++ b/macros/latex/contrib/wargame/source/hex/terrain.dtx @@ -37,6 +37,7 @@ % select the common terrains. % % \begin{macrocode} +\newif\if@hex@t@rot\@hex@t@rotfalse% \tikzset{% /hex/terrain/.search also={/tikz},% /hex/terrain/.cd,% @@ -44,6 +45,7 @@ image/.store in=\hex@t@image,% code/.store in=\hex@t@code,% clip/.store in=\hex@t@clip,% + random rotation/.is if=@hex@t@rot, pic/.default=, image/.default=, code/.default=, @@ -137,8 +139,23 @@ \@ifundefined{hex@t@code}{\let\hex@t@code\empty}{} % \end{macrocode} % +% Possible make rotation. We define a scope and rotate within that. +% +% \begin{macrocode} + \def\hex@t@angle{0}% + \if@hex@t@rot% + \pgfmathrandominteger{\hex@t@angle}{0}{5} + \pgfmathparse{int(60*\hex@t@angle)}\edef\hex@t@angle{\pgfmathresult}% + \fi% + \hex@dbg{5}{Will rotate terrain by `\hex@t@angle'}% +% \end{macrocode} +% +% If we have specified code for the terrain, then execute that. +% % \begin{macrocode} - \ifx\hex@t@code\empty\else\hex@t@code\fi% + \scope[rotate=\hex@t@angle]% + \ifx\hex@t@code\empty\else\hex@t@code\fi% + \endscope% End rotate code % \end{macrocode} % First we check if we have not got terrain images, but terrain % pictures. If we have that, we process these in turn. Note, the @@ -154,7 +171,9 @@ \hex@dbg{5}{Terrain pictures}% \pgfpointorigin\wg@tmpa=\pgf@x\wg@tmpb=\pgf@y% \foreach \i in \hex@t@pic{% - \wg@pic@all{\i}{}{\the\wg@tmpa,\the\wg@tmpb}{}}% + \wg@pic@all{\i}{}{\the\wg@tmpa,\the\wg@tmpb}{% + rotate=\hex@t@angle, + transform shape}}% \fi% We have pictures. % \end{macrocode} % @@ -172,6 +191,7 @@ \expandafter\wg@node{% \includegraphics[width=2cm]{\i}}\@endwg@node % {}{\wg@tmpa,\wg@tmpb}{% + rotate=\hex@t@angle,% shape=rectangle,% anchor=center,% transform shape,% diff --git a/macros/latex/contrib/wargame/source/tests/chits.dtx b/macros/latex/contrib/wargame/source/tests/chits.dtx index 7dcf26c50d..966e3b4a9f 100644 --- a/macros/latex/contrib/wargame/source/tests/chits.dtx +++ b/macros/latex/contrib/wargame/source/tests/chits.dtx @@ -6,7 +6,11 @@ % Some chits for testing stuff % % \begin{macrocode} -\def\firstchit{ +\makeatletter +\def\firstchit{% + \@ifnextchar[{\@firstchit}{\@firstchit[]}%] +}% +\def\@firstchit[#1]{ % \chitdbglvl=5 % \natoappdbglvl=5 \chit[symbol={ @@ -17,13 +21,14 @@ left={text=A}, frame={fill=yellow!50!black}, ultra thick, - command=land}, + command=land, + }, left={chit/identifier={1}}, right={chit/identifier={2}}, factors={chit/2 factors={4,8}}, frame={draw=black}, - color=white,text=yellow,fill={blue}]} -\makeatletter + color=white,text=yellow,fill={blue}, + #1]} \def\secondchit{% \@ifnextchar({\second@chit}{\second@chit(0,0)}%) } @@ -34,6 +39,7 @@ command=air](0,-.15)}, left={[{red,font=\noexpand\sffamily}]chit/identifier={Fighter}}, right={chit/identifier={USAF}}, + fill=white, factors={chit/1 factor=3}}] at (#1){};} \def\thirdchit{ \chit[symbol={[echelon=battalion, diff --git a/macros/latex/contrib/wargame/source/tests/test.tex b/macros/latex/contrib/wargame/source/tests/test.tex index 5833d679f2..49062b70f0 100644 --- a/macros/latex/contrib/wargame/source/tests/test.tex +++ b/macros/latex/contrib/wargame/source/tests/test.tex @@ -2,6 +2,7 @@ \usepackage{wargame} \usetikzlibrary{decorations.markings} +\usetikzlibrary{shadows.blur} \title{A test of \textsf{wargame}} \author{} \date{} @@ -28,7 +29,7 @@ \section{Some chits} -\begin{tikzpicture} +\begin{tikzpicture}[every chit node/.style={blur shadow={shadow blur steps=5}}] \fill[red!50] (1,-1) rectangle (3,1); \firstchit(0,0)% %\secondchit(2,0)% @@ -45,18 +46,20 @@ \end{tikzpicture} \section{Chits on a board} -\begin{tikzpicture} +\begin{tikzpicture}[every chit/.style={chit drop}] + \chitdbglvl=5 \begin{scope}[every hex/.style={/hex/label=auto},transform shape] \boardframe[0.5](c=0,r=0)(c=3,r=3) \boardclip(c=0,r=0)(c=3,r=3){fill=white} \testmap{} - \firstchit(hex cs:c=2,r=1) - \secondchit(hex cs:c=3,r=0) + \firstchit[no chit drop](hex cs:c=2,r=2) + %\secondchit(hex cs:c=3,r=0) \thirdchit(hex cs:c=0,r=3) \stackchits(hex cs:c=0,r=1)(.3,.3){ \noexpand\firstchit, - \noexpand\secondchit/\noexpand\chit[{full=chit/eliminate}]} + \noexpand\secondchit%/\noexpand\eliminatechit + } \begin{scope}[m/.style={hex/long move=green}] \path[m] (hex cs:c=3,r=0) -- (hex cs:c=3,r=1)--(hex cs:c=3,r=2); diff --git a/macros/latex/contrib/wargame/source/util/export.dtx b/macros/latex/contrib/wargame/source/util/export.dtx index fde067dfe8..09f74c0513 100644 --- a/macros/latex/contrib/wargame/source/util/export.dtx +++ b/macros/latex/contrib/wargame/source/util/export.dtx @@ -72,6 +72,7 @@ % % Preceed all images (\textsf{tikzpicture}) with this command % +% % First argument is the name of the image. This can be anything. % Note that for counters, if the name ends in \texttt{flipped} then it % is considered the backside of a counter. @@ -140,13 +141,32 @@ % % Make separate images for each counter (single sided). % +% First optional argument is the group to put the chits into. +% Second optional argument is options to give to each Tikz picture +% environment. Third, mandatory, argument is the list of chit +% identifiers to render. +% % \begin{macrocode} -\newcommand\chitimages[2][]{% +\def\wg@add@drop@margin{% + \@ifundefined{wg@drop@margin}{}{ + \dimen0=\wg@drop@margin + % \ifwg@chit@drop + \ifdim\dimen0>0pt% + \path ($(current bounding box.north east)+(45:\wg@drop@margin)$) + -- ($(current bounding box.south west)+(225:\wg@drop@margin)$); + \fi}} +\def\chitimages{% + \@ifnextchar[{\@chitimages}{\chitimages[]}%] +}% +\def\@chitimages[#1]{% + \@ifnextchar[{\@@chitimages[#1]}{\@@chitimages[#1][]}%] +}% +\def\@@chitimages[#1][#2]#3{% \begingroup% \let\chit@report\do@chit@report% \let\natoapp@report\do@natoapp@report% - \chit@dbg{2}{chits to make images of `#2'}% - \foreach[count=\ti from 0] \t/\x in #2{% + \chit@dbg{2}{chits to make images of `#3'}% + \foreach[count=\ti from 0] \t/\x in #3{% \chit@dbg{2}{^^JRow: `\t' (`\x')} \ifx\t\empty\else% Ignore empty rows \chit@dbg{5}{^^JSubcategory: `\x' (default `#1')} @@ -156,14 +176,17 @@ \ifx\u\empty\else% Ignore empty cells \ifx\u\chit@blank\else% \chit@dbg{2}{Next chit `\u' with possible multiplicity `\m'}% - \ifx\m\@empty\def\m{1}\fi% If not multiplicity defined + \ifx\m\@empty\def\m{1}\fi% If no multiplicity defined \ifx\u\m\def\m{1}\fi% If the same as unit \chit@dbg{2}{Next chit `\u' multiplicity `\m'}% %% We only make one copy of the chit, since we can duplicate %% it in VASSAL \info*{\u}{counter}{\x} - \begin{tikzpicture} + \nopagecolor% + \gdef\wg@drop@margin{0pt}% + \begin{tikzpicture}[chit has drop=false,#2] \chit[\u=\ti]% + \wg@add@drop@margin% \end{tikzpicture} \end@info% %% \foreach \n in {1,...,\m}{% Make a number of copies @@ -189,14 +212,25 @@ % % Make separate images for each counter (double sided). The back-side % counters must be defined by append `\texttt{ flipped}' the front -% face name +% face name. +% +% First optional argument is the group to put the chits into. +% Second optional argument is options to give to each Tikz picture +% environment. Third, mandatory, argument is the list of chit +% identifiers to render. % % \begin{macrocode} -\newcommand\doublechitimages[2][]{% +\def\doublechitimages{% + \@ifnextchar[{\@doublechitimages}{\doublechitimages[]}%] +}% +\def\@doublechitimages[#1]{% + \@ifnextchar[{\@@doublechitimages[#1]}{\@@doublechitimages[#1][]}%] +}% +\def\@@doublechitimages[#1][#2]#3{% \begingroup% \let\chit@report\do@chit@report% \let\natoapp@report\do@natoapp@report% - \foreach[count=\ti from 0] \t/\x in #2{% + \foreach[count=\ti from 0] \t/\x in #3{% \ifx\t\empty\else% Ignore empty rows \chit@dbg{5}{^^JSubcategory: `\x' (default `#1')} % Take sub-category or default @@ -213,13 +247,18 @@ %% We only make one copy of the chit, since we can duplicate %% it in VASSAL \info*{\u}{counter}{\x}% - \begin{tikzpicture}% + \nopagecolor% + \gdef\wg@drop@margin{0pt}% + \begin{tikzpicture}[chit has drop=false,#2]% \chit[\u=\ti]% + \wg@add@drop@margin% \end{tikzpicture}% \end@info% \info*{\s}{counter}{\x}% - \begin{tikzpicture}% + \nopagecolor% + \begin{tikzpicture}[chit has drop=false,#2]% \chit[\s=\ti]% + \wg@add@drop@margin% \end{tikzpicture}% \end@info% %% \foreach \n in {1,...,\m}{% Make a number of copies @@ -414,7 +453,7 @@ \def\hex@col{0}% \def\hex@row{0}% \node[hex,inner sep=0,outer sep=0]{% - \message{^^JHex label: `\meaning\hex@label'}% + %\message{^^JHex label: `\meaning\hex@label'}% \global\let\mk@label\hex@label}}}% % \end{macrocode} % @@ -427,7 +466,7 @@ \edef\mk@i{\mk@i\space} %% Everything is made into centimeters \mk@w{ \mk@i "units": "cm",} - \hex@dbg{0}{Label: `\meaning\mk@label'} + \hex@dbg{3}{Label: `\meaning\mk@label'} \@ifundefined{mk@label}{}{\mk@w{ \mk@i "labels": "\mk@label",}} %% Write out coordinate options as "coords" object \mk@w{ \mk@i"coords": \@lbchar}% @@ -577,7 +616,7 @@ % optional is the group to add the markers to. % % \begin{macrocode} -\def\wg@gennumberm@rkers#1#2#3{ +\def\wg@gennumberm@rkers#1#2#3#4{ \message{^^JNumbered markers: Type=`#1' Max=`#2' Category=`#3'} \def\markers{} \def\keys{} @@ -585,24 +624,37 @@ \xdef\keys{/tikz/#1 \i/.style={/tikz/#1=\i},\keys} \xdef\markers{\markers,#1 \i}} {% - \nopagecolor\pgfkeysalsofrom{\keys}\chitimages[#3]{\markers}}}% + \nopagecolor\pgfkeysalsofrom{\keys}\chitimages[#3][#4]{\markers}}}% \tikzset{ wg hidden unit/.pic={}, wg hidden unit/.style={ chit={ + no chit drop, frame={draw=none,fill=none}, full=wg hidden unit}}} -\DeclareRobustCommand\battlemarkers[2][BattleMarkers]{% - \wg@gennumberm@rkers{battle marker}{#2}{#1}% +% +% First optional argument are extra styles +% Second is category +% Third is number of markers +% +\def\battlemarkers{% + \@ifnextchar[{\@battlemarkers}{\battlemarkers[]}%] +}% +\def\@battlemarkers[#1]{% + \@ifnextchar[{\@@battlemarkers[#1]}{\battlemarkers[#1][BattleMarkers]}%] +}% +\def\@@battlemarkers[#1][#2]#3{% + \wg@gennumberm@rkers{battle marker}{#3}{#2}{#1}% \message{^^JMake a hidden unit and add to Markers category} {% \nopagecolor% \chitimages[Markers]{{wg hidden unit}}% % \info{battle-marker-icon}{icon}{}% - \tikz[scale=.7,transform shape]{\pic{battle marker=0};}% + \tikz[scale=.7,transform shape,auto icon more/.try]{% + \pic{battle marker=0};}% \info{clear-battles-icon}{icon}{} - \tikz[scale=.4,transform shape]{% + \tikz[scale=.4,transform shape,auto icon more/.try]{% \pic{eliminate icon}; \pic[scale=.7,transform shape] at (-.3,0) {battle marker=0};}% }% @@ -613,21 +665,40 @@ % Optional is the group to add the markers to. % % \begin{macrocode} -\def\wg@gencolorm@rkers#1#2#3{% +\def\wg@gencolorm@rkers#1#2#3#4{% \def\markers{} \def\keys{} - \foreach \o/\f in {#2}{% + \foreach \o/\f/\n [count=\i] in {#2}{% + \ifx\n\f\def\n{\o}\fi% \ifx\o\f\def\f{white}\fi% - \message{^^JOdds marker `#1 \o' w/fill `\f'}% - \xdef\keys{/tikz/#1 \o/.style={/tikz/#1={\o,\f}},\keys} - \xdef\markers{\markers,#1 \o}} - {\nopagecolor\pgfkeysalsofrom{\keys}\chitimages[#3]{\markers}}}% -\DeclareRobustCommand\oddsmarkers[2][OddsMarkers]{% - \wg@gencolorm@rkers{odds marker}{#2}{#1}% + \message{^^JColour no \i marker `#1 \n' w/fill `\f' text `\o'}% + \protected@xdef\keys{/tikz/#1 \n/.style={/tikz/#1={\o,\f}},\keys} + \xdef\markers{\markers,#1 \n} + }% + {% + \nopagecolor% + \pgfkeysalsofrom{\keys}% + \chitimages[#3][#4]{\markers}% + }% +}% +% +% First optional argument are extra styles +% Second is category +% Third is marker list +% +\def\oddsmarkers{% + \@ifnextchar[{\@oddsmarkers}{\oddsmarkers[]}%] +}% +\def\@oddsmarkers[#1]{% + \@ifnextchar[{\@@oddsmarkers[#1]}{\oddsmarkers[#1][OddsMarkers]}%] +}% +\def\@@oddsmarkers[#1][#2]#3{% + \wg@gencolorm@rkers{odds marker}{#3}{#2}{#1}% \info{odds-battles-icon}{icon}{} - \tikz[scale=.5,transform shape]{\pic{odds marker={?:?,white}}} + \tikz[scale=.5,transform shape,auto icon more/.try]{% + \pic{odds marker={?:?,white}}} \info{resolve-battles-icon}{icon}{} - \tikz[scale=.3,transform shape]{% + \tikz[scale=.3,transform shape,auto icon more/.try]{% \pic{dice}; \pic[scale=1.2,transform shape] at (-.2,-.2) {battle marker=0};}% } @@ -636,40 +707,51 @@ % Make results markers. Mandatory argument is a list of results and % fill colours. Optional is the group to add the markers to. % +% +% First optional argument are extra styles +% Second is category +% Third is marker list +% % \begin{macrocode} -\DeclareRobustCommand\resultmarkers[2][ResultMarkers]{% - \wg@gencolorm@rkers{result marker}{#2}{#1}} +\def\resultmarkers{% + \@ifnextchar[{\@resultmarkers}{\resultmarkers[]}%] +}% +\def\@resultmarkers[#1]{% + \@ifnextchar[{\@@resultmarkers[#1]}{\resultmarkers[#1][ResultMarkers]}%] +}% +\def\@@resultmarkers[#1][#2]#3{% + \wg@gencolorm@rkers{result marker}{#3}{#2}{#1}}% % \end{macrocode} % % Common icons used by many modules % % \begin{macrocode} -\DeclareRobustCommand\commonicons[2]{% +\DeclareRobustCommand\commonicons[3][]{% \begingroup% \nopagecolor% - \tikzset{icon/.style={scale=.4,transform shape}}% + \tikzset{auto icon/.style={scale=.4,transform shape,#1}}% % \info{pool-icon}{icon}{} - \tikz[icon]{\pic{pool icon};} + \tikz[auto icon,auto icon more/.try]{\pic{pool icon};} % \info{oob-icon}{icon}{}% - \tikz[icon]{\pic{oob icon={#1}{#2}};}% + \tikz[auto icon,auto icon more/.try]{\pic{oob icon={#2}{#3}};}% % \info{flip-icon}{icon}{}% - \tikz[icon]{\pic{flip icon};}% + \tikz[auto icon,auto icon more/.try]{\pic{flip icon};}% % \info{eliminate-icon}{icon}{}% - \tikz[icon]{\pic{eliminate icon};}% + \tikz[auto icon,auto icon more/.try]{\pic{eliminate icon};}% % \info{restore-icon}{icon}{}% - \tikz[icon]{\pic{restore icon};}% + \tikz[auto icon,auto icon more/.try]{\pic{restore icon};}% % \info{dice-icon}{icon}{}% - \tikz[icon,scale=.9]{\pic{dice};}% + \tikz[auto icon,scale=.9,auto icon more/.try]{\pic{dice};}% % \info{unit-icon}{icon}{}% - \tikz[icon,scale=.7]{% - \chit[fill=#1, + \tikz[auto icon,scale=.7,auto icon more/.try]{% + \chit[fill=#2, symbol={[ scale line widths, line width=1pt, @@ -677,7 +759,29 @@ command=land, main=infantry, scale=1.3](0,-.15)}]}% - \endgroup% + % + \info{layer-icon}{icon}{}% + \begin{tikzpicture}[scale=.25] + \foreach \i in {-1,0,1}{ + \scoped[shift={(0,\i*.15)}]{ + \draw[black,fill=white] (-.5,0) + --(0,.3)--(.5,0)--(0,-.3)--cycle; + } + } + \end{tikzpicture}% + % + \info{los-icon}{icon}{} + \begin{tikzpicture}[scale=.25] + \draw[scale line widths,line width=2pt,fill=white](-.5,0) + to[out=70,in=110] (.5,0) + to[out=-110,in=-70] cycle; + \begin{scope}[even odd rule] + \clip circle(.2); + \fill circle(.2) (125:.18) circle(.1); + \end{scope} + \end{tikzpicture}% + % + \endgroup% } % \end{macrocode} % @@ -708,9 +812,11 @@ \foreach \v/\p in {#5}{% \info{#3-\v}{die-roll}{#3} \tikz[#1]{ - \node[shape=#4,transform shape,draw=none,fill=black,opacity=.5] - at (.05,-.03){}; - \node[shape=#4,#2,transform shape]{\p};}}} + %\node[shape=#4,transform shape,draw=none,fill=black,opacity=.5] + %at (.05,-.03){}; + \node[shape=#4,#2,transform shape, + chit drop + ]{\p};\wg@add@drop@margin{}}}} % \end{macrocode} % % \subsubsection{Hooks into chits, etc.} @@ -809,6 +915,28 @@ \mk@w{ \mk@i\space "end": 0} \mk@w{ \mk@i \@rbchar} } +\tikzset{ + chit drop margin/.store in=\wg@drop@margin, + chit drop shadows/.code={ + \pgfkeysalso{% + /tikz/every chit node/.prefix style={chit drop={#1}}, + /tikz/chit has drop=true} + }, + chit drop shadows/.default=, + marker drop shadows/.code={ + \pgfkeysalso{% + /tikz/every battle marker/.prefix style={chit drop={#1}}, + /tikz/every odds marker/.prefix style={chit drop={#1}}, + /tikz/every result marker/.prefix style={chit drop={#1}}, + /tikz/auto icon more/.prefix style={no chit drop}}}, + marker drop shadows/.default={ + chit has drop=false, + shadow xshift=0.04cm, + shadow yshift=-0.04cm, + shadow blur radius=0.04cm} +} + + % \end{macrocode} % % diff --git a/macros/latex/contrib/wargame/source/util/tikz.dtx b/macros/latex/contrib/wargame/source/util/tikz.dtx index fa31a7b58c..2f6dbefc17 100644 --- a/macros/latex/contrib/wargame/source/util/tikz.dtx +++ b/macros/latex/contrib/wargame/source/util/tikz.dtx @@ -86,12 +86,17 @@ % Save pgf rounded corners macro % \let\wg@pgfsetcornersarced\pgfsetcornersarced \def\wg@setcornersarched#1{% - \ifx|#1|\else% - \edef\pgf@corner@arc{{#1}{#1}}% - \pgf@arccornerstrue% - \ifdim#1=0pt% - \pgf@arccornersfalse% - \fi\fi} + \def\arg{#1}% + \let\isarched\relax% Cannot set \ifpgf@arccorners directly inside + % other \if + \ifx\arg\@empty\else% + \edef\pgf@corner@arc{{#1}{#1}}% + \let\isarched\pgf@arccornerstrue% + \ifdim#1=0pt% + \let\isarched\pgf@arccornersfalse% + \fi% + \fi% + \isarched} \newdimen\wg@lw@scaled\wg@lw@scaled=1pt \def\wg@getscale{% \pgfgettransformentries{% diff --git a/macros/latex/contrib/wargame/source/utils/wgexport.py b/macros/latex/contrib/wargame/source/utils/wgexport.py index a09a7e4257..d573b63d36 100755 --- a/macros/latex/contrib/wargame/source/utils/wgexport.py +++ b/macros/latex/contrib/wargame/source/utils/wgexport.py @@ -208,6 +208,8 @@ CTRL_SHIFT = CTRL+SHIFT ALT_SHIFT = ALT+SHIFT NONE = '\ue004' NONE_MOD = 0 + +# -------------------------------------------------------------------- def key(let,mod=CTRL): '''Encode a key sequence @@ -220,6 +222,8 @@ def key(let,mod=CTRL): Modifier mask ''' return f'{ord(let)},{mod}' + +# -------------------------------------------------------------------- # def hexcolor(s): if isinstance(s,str): @@ -241,6 +245,7 @@ def hexcolor(s): return rgb(int(r*256),int(g*256),int(b*256)) +# -------------------------------------------------------------------- # Colour encoding def rgb(r,g,b): '''Encode RGB colour @@ -261,6 +266,7 @@ def rgb(r,g,b): ''' return ','.join([str(r),str(g),str(b)]) +# -------------------------------------------------------------------- def rgba(r,g,b,a): '''Encode RGBA colour @@ -282,6 +288,7 @@ def rgba(r,g,b,a): ''' return ','.join([str(r),str(g),str(b),str(a)]) +# -------------------------------------------------------------------- def dumpTree(node,ind=''): '''Dump the tree of nodes @@ -296,6 +303,12 @@ def dumpTree(node,ind=''): for c in node.childNodes: dumpTree(c,ind+' ') +# -------------------------------------------------------------------- +def registerElement(cls): + + Element.known_tags[cls.TAG] = cls + + # # EOF # @@ -310,6 +323,8 @@ class Element: MAP = MODULE + 'map.' PICKER = MAP + 'boardPicker.' BOARD = PICKER + 'board.' + known_tags = {} + def __init__(self,parent,tag,node=None,**kwargs): '''Create a new element @@ -429,9 +444,14 @@ class Element: return {c[key] : c for c in cand} return cand - def getParent(self,cls,checkTag=True): + def getParent(self,cls=None,checkTag=True): if self._node.parentNode is None: return None + if cls is None: + cls = self.getTagClass(self._node.parentNode.tagName) + checkTag = False + if cls is None: + return None if checkTag and self._node.parentNode.tagName != cls.TAG: return None return cls(self,node=self._node.parentNode) @@ -440,6 +460,10 @@ class Element: '''Searches back until we find the parent with the right class, or none ''' + try: + iter(cls) + except: + cls = [cls] t = {c.TAG: c for c in cls} p = self._node.parentNode while p is not None: @@ -447,6 +471,11 @@ class Element: if c is not None: return c(self,node=p) p = p.parentNode return None + + def getTagClass(self,tag): + '''Get class corresponding to the tag''' + if tag not in self.known_tags: return None; + return self.known_tags[tag] # ---------------------------------------------------------------- # Adders @@ -518,7 +547,83 @@ class DummyElement(Element): ''' super(DummyElement,self).__init__(parent,'Dummy',node=node) +# -------------------------------------------------------------------- +class ToolbarElement(Element): + def __init__(self, + parent, + tag, + node = None, + name = '', # Toolbar element name + tooltip = '', # Tool tip + text = '', # Button text + icon = '', # Button icon, + hotkey = '', # Named key or key stroke + canDisable = False, + propertyGate = '', + disabledIcon = '', + **kwargs): + '''Base class for toolbar elements. + Parameters + ---------- + parent : Element + Parent element if any + tag : str + Element tag + node : XMLNode + Possible node - when reading back + name : str + Name of element (user reminder). If not set, and tooltip is set, + set to tooltip + toolttip : str + Tool tip when hovering. If not set, and name is set, then + use name as tooltip. + text : str + Text of button + icon : str + Image path for button image + hotkey : str + Named key or key-sequence + canDisable : bool + If true, then the element can be disabled + propertyGate : str + Name of a global property. When this property is `true`, + then this element is _disabled_. Note that this _must_ be + the name of a property - it cannot be a BeanShell + expression. + disabledIcon : str + Path to image to use when the element is disabled. + kwargs : dict + Other attributes to set on the element + ''' + if name == '' and tooltip != '': name = tooltip + if name != '' and tooltip == '': tooltip = name + + # Build arguments for super class + args = { + 'node': node, + 'name': name, + 'icon': icon, + 'tooltip': tooltip, + 'hotkey': hotkey, + 'canDisable': canDisable, + 'propertyGate': propertyGate, + 'disabledIcon': disabledIcon } + bt = kwargs.pop('buttonText',None) + # If the element expects buttonText attribute, then do not set + # the text attribute - some elements interpret that as a + # legacy name attribute, + if bt is not None: + args['buttonText'] = bt + else: + args['text'] = text + args.update(kwargs) + + super(ToolbarElement,self).__init__(parent, + tag, + **args) + # print('Attributes\n','\n'.join([f'- {k}="{v}"' for k,v in self._node.attributes.items()])) + # # EOF # @@ -526,26 +631,28 @@ class DummyElement(Element): # From globalkey.py # -------------------------------------------------------------------- -class GlobalKey(Element): +class GlobalKey(ToolbarElement): SELECTED = 'MAP|false|MAP|||||0|0||true|Selected|true|EQUALS' def __init__(self, parent, tag, node = None, name = '', + icon = '', + tooltip = '', buttonHotkey = '', - hotkey = '', buttonText = '', canDisable = False, + propertyGate = '', + disabledIcon = '', + # Local + hotkey = '', deckCount = '-1', filter = '', - propertyGate = '', reportFormat = '', reportSingle = False, singleMap = True, - target = SELECTED, - tooltip = '', - icon = ''): + target = SELECTED): ''' Parameters ---------- @@ -569,28 +676,26 @@ class GlobalKey(Element): Default targets are selected units ''' - nme = (name if len(name) > 0 else - tooltip if len(tooltip) > 0 else '') - tip = (tooltip if len(tooltip) > 0 else - name if len(name) > 0 else '') + super(GlobalKey,self).\ __init__(parent, tag, node = node, - name = nme, + name = name, + icon = icon, + tooltip = tooltip, buttonHotkey = buttonHotkey, # This hot key - hotkey = hotkey, # Target hot key buttonText = buttonText, canDisable = canDisable, + propertyGate = propertyGate, + disabledIcon = disabledIcon, + hotkey = hotkey, # Target hot key deckCount = deckCount, filter = filter, - propertyGate = propertyGate, reportFormat = reportFormat, reportSingle = reportSingle, singleMap = singleMap, - target = target, - tooltip = tip, - icon = icon) + target = target) # # EOF # @@ -600,7 +705,7 @@ class GlobalKey(Element): # -------------------------------------------------------------------- class GameElementService: def getGame(self): - return self.getParent(Game) + return self.getParentOfClass(Game) # -------------------------------------------------------------------- class GameElement(Element,GameElementService): @@ -608,23 +713,34 @@ class GameElement(Element,GameElementService): super(GameElement,self).__init__(game,tag,node=node,**kwargs) # -------------------------------------------------------------------- -class Notes(GameElement): +class Notes(ToolbarElement,GameElementService): TAG = Element.MODULE+'NotesWindow' def __init__(self,elem,node=None, - name = 'Notes', - buttonText = '', - hotkey = key('N',ALT), - icon = '/images/notes.gif', - tooltip = 'Show notes window'): - super(Notes,self).__init__(elem,self.TAG,node=node, - name = name, - buttonText = buttonText, - hotkey = hotkey, - icon = icon, - tooltip = tooltip) + name = 'Notes', # Toolbar element name + tooltip = 'Show notes window', # Tool tip + text = '', # Button text + icon = '/images/notes.gif', # Button icon, + hotkey = key('N',ALT), # Named key or key stroke + canDisable = False, + propertyGate = '', + disabledIcon = '', + description = ''): + super(Notes,self).__init__(elem,self.TAG, + node = node, + name = name, + tooltip = tooltip, + text = text, + icon = icon, + hotkey = hotkey, + canDisable = canDisable, + propertyGate = propertyGate, + disabledIcon = disabledIcon, + description = description) def encode(self): return ['NOTES\t\\','PNOTES'] +registerElement(Notes) + # -------------------------------------------------------------------- class PredefinedSetup(GameElement): TAG = Element.MODULE+'PredefinedSetup' @@ -673,6 +789,7 @@ class PredefinedSetup(GameElement): +registerElement(PredefinedSetup) # -------------------------------------------------------------------- class GlobalTranslatableMessages(GameElement): @@ -690,11 +807,15 @@ class GlobalTranslatableMessages(GameElement): super(GlobalTranslatableMessages,self).\ __init__(elem,self.TAG,node=node) +registerElement(GlobalTranslatableMessages) + # -------------------------------------------------------------------- class Language(GameElement): TAG = 'VASSAL.i18n.Language' def __init__(self,elem,node=None,**kwargs): super(Languate,self).__init__(sele,self.TAG,node=none,**kwargs) + +registerElement(Language) # -------------------------------------------------------------------- class Chatter(GameElement): @@ -712,6 +833,8 @@ class Chatter(GameElement): Attributes ''' super(Chatter,self).__init__(elem,self.TAG,node=node,**kwargs) + +registerElement(Chatter) # -------------------------------------------------------------------- class KeyNamer(GameElement): @@ -730,6 +853,8 @@ class KeyNamer(GameElement): ''' super(KeyNamer,self).__init__(elem,self.TAG,node=node,**kwargs) +registerElement(KeyNamer) + # -------------------------------------------------------------------- # <VASSAL.build.module.GlobalOptions @@ -883,6 +1008,7 @@ class GlobalOptions(GameElement): return retd +registerElement(GlobalOptions) # -------------------------------------------------------------------- class Option(Element): @@ -894,6 +1020,8 @@ class Option(Element): def getGlobalOptions(self): return self.getParent(GlobalOptions) +registerElement(Option) + # -------------------------------------------------------------------- class Preference(Element): PREFS = 'VASSAL.preferences.' @@ -947,6 +1075,9 @@ class IntPreference(Preference): default = str(default), desc = desc, tab = tab) + +registerElement(IntPreference) + # -------------------------------------------------------------------- class FloatPreference(Preference): TAG = Preference.PREFS+'DoublePreference' @@ -964,6 +1095,9 @@ class FloatPreference(Preference): default = str(default), desc = desc, tab = tab) + +registerElement(FloatPreference) + # -------------------------------------------------------------------- class BoolPreference(Preference): TAG = Preference.PREFS+'BooleanPreference' @@ -982,6 +1116,9 @@ class BoolPreference(Preference): else 'false'), desc = desc, tab = tab) + +registerElement(BoolPreference) + # -------------------------------------------------------------------- class StrPreference(Preference): TAG = Preference.PREFS+'StringPreference' @@ -999,6 +1136,9 @@ class StrPreference(Preference): default = default, desc = desc, tab = tab) + +registerElement(StrPreference) + # -------------------------------------------------------------------- class TextPreference(Preference): TAG = Preference.PREFS+'TextPreference' @@ -1017,6 +1157,9 @@ class TextPreference(Preference): .replace('\n',' ')), desc = desc, tab = tab) + +registerElement(TextPreference) + # -------------------------------------------------------------------- class EnumPreference(Preference): TAG = Preference.PREFS+'EnumPreference' @@ -1042,39 +1185,42 @@ class EnumPreference(Preference): tab = tab, list = sl) + +registerElement(EnumPreference) + # -------------------------------------------------------------------- # CurrentMap == "Board" -class Inventory(GameElement): +class Inventory(ToolbarElement,GameElementService): TAG = Element.MODULE+'Inventory' def __init__(self,doc,node=None, - canDisable = False, - centerOnPiece = True, - disabledIcon = '', - drawPieces = True, - foldersOnly = False, - forwardKeystroke = True, - groupBy = '', - hotkey = key('I',ALT), - icon = '/images/inventory.gif', - include = '{}', - launchFunction = 'functionHide', - leafFormat = '$PieceName$', - name = '', - nonLeafFormat = '$PropertyValue$', - pieceZoom = '0.33', - pieceZoom2 = '0.5', - pieceZoom3 = '0.6', - propertyGate = '', - refreshHotkey = key('I',ALT_SHIFT), - showMenu = True, - sides = '', - sortFormat = '$PieceName$', - sortPieces = True, - sorting = 'alpha', - text = '', - tooltip = 'Show inventory of all pieces', - zoomOn = False): + name = '', + icon = '/images/inventory.gif', + text = '', + tooltip = 'Show inventory of all pieces', + hotkey = key('I',ALT), + canDisable = False, + propertyGate = '', + disabledIcon = '', + centerOnPiece = True, + drawPieces = True, + foldersOnly = False, + forwardKeystroke = True, + groupBy = '', + include = '{}', + launchFunction = 'functionHide', + leafFormat = '$PieceName$', + nonLeafFormat = '$PropertyValue$', + pieceZoom = '0.33', + pieceZoom2 = '0.5', + pieceZoom3 = '0.6', + refreshHotkey = key('I',ALT_SHIFT), + showMenu = True, + sides = '', + sortFormat = '$PieceName$', + sortPieces = True, + sorting = 'alpha', + zoomOn = False): super(Inventory,self).__init__(doc,self.TAG,node=node, canDisable = canDisable, centerOnPiece = centerOnPiece, @@ -1104,16 +1250,7 @@ class Inventory(GameElement): tooltip = tooltip, zoomOn = zoomOn) - - - - - - - - - - +registerElement(Inventory) # -------------------------------------------------------------------- class Prototypes(GameElement): @@ -1149,17 +1286,21 @@ class Prototypes(GameElement): ''' return self.getElementsByKey(Prototype,'name',asdict=asdict) - - +registerElement(Prototypes) # -------------------------------------------------------------------- -class DiceButton(GameElement): +class DiceButton(ToolbarElement,GameElementService): TAG=Element.MODULE+'DiceButton' def __init__(self,elem,node=None, - addToTotal = 0, - canDisable = False, - hotkey = key('6',ALT), + name = '1d6', + tooltip = 'Roll a 1d6', + text = '1d6', icon = '/images/die.gif', + hotkey = key('6',ALT), + canDisable = False, + propertyGate = '', + disabledIcon = '', + addToTotal = 0, keepCount = 1, keepDice = False, keepOption = '>', @@ -1169,19 +1310,16 @@ class DiceButton(GameElement): lockSides = False, nDice = 1, nSides = 6, - name = '1d6', plus = 0, prompt = False, - propertyGate = '', - reportFormat = '** $name$ = $result$ *** <$PlayerName$>;', + reportFormat = '$name$ = $result$', reportTotal = False, - sortDice = False, - text = '1d6', - tooltip = 'Roll a 1d6'): + sortDice = False): super(DiceButton,self).\ __init__(elem,self.TAG,node=node, addToTotal = addToTotal, canDisable = canDisable, + disabledIcon = disabledIcon, hotkey = hotkey, icon = icon, keepCount = keepCount, @@ -1203,24 +1341,27 @@ class DiceButton(GameElement): text = text, tooltip = tooltip) +registerElement(DiceButton) + # -------------------------------------------------------------------- class GameMassKey(GlobalKey,GameElementService): TAG = Element.MODULE+'GlobalKeyCommand' def __init__(self,map,node=None, name = '', - buttonHotkey = '', - hotkey = '', buttonText = '', + tooltip = '', + icon = '', canDisable = False, + propertyGate = '', + disabledIcon = '', + buttonHotkey = '', + hotkey = '', deckCount = '-1', filter = '', - propertyGate = '', reportFormat = '', reportSingle = False, singleMap = True, - target = GlobalKey.SELECTED, - tooltip = '', - icon = ''): + target = GlobalKey.SELECTED): '''Default targets are selected units''' super(GameMassKey,self).\ __init__(map, @@ -1241,6 +1382,8 @@ class GameMassKey(GlobalKey,GameElementService): tooltip = tooltip, icon = icon) +registerElement(GameMassKey) + # -------------------------------------------------------------------- class StartupMassKey(GlobalKey,GameElementService): TAG = Element.MODULE+'StartupGlobalKeyCommand' @@ -1287,21 +1430,24 @@ class StartupMassKey(GlobalKey,GameElementService): if node is None: self['whenToApply'] = whenToApply +registerElement(StartupMassKey) + # -------------------------------------------------------------------- class Menu(GameElement): TAG = Element.MODULE+'ToolbarMenu' def __init__(self, game, node = None, + name = '', + tooltip = '', + text = '', # Menu name canDisable = False, - description = '', + propertyGate = '', disabledIcon = '', + description = '', hotkey = '', icon = '', - menuItems = [],# Button texts - propertyGate = '', - text = '',# Menu name - tooltip = ''): + menuItems = []): if len(description) <= 0 and len(tooltip) > 0: description = tooltip if len(tooltip) <= 0 and len(description) > 0: @@ -1310,6 +1456,7 @@ class Menu(GameElement): __init__(game, self.TAG, node = node, + name = name, canDisable = canDisable, description = description, disabledIcon = disabledIcon, @@ -1320,6 +1467,8 @@ class Menu(GameElement): text = text, tooltip = tooltip) +registerElement(Menu) + # -------------------------------------------------------------------- class SymbolicDice(GameElement): @@ -1370,6 +1519,8 @@ class SymbolicDice(GameElement): def getSymbolicDice(self): return self.getParent(SymbolicDice) +registerElement(SymbolicDice) + # -------------------------------------------------------------------- class SpecialDie(GameElement): @@ -1399,8 +1550,7 @@ class SpecialDie(GameElement): def getSymbolicDice(self): return self.getParent(SymbolicDice) - - +registerElement(SpecialDie) # -------------------------------------------------------------------- class DieFace(GameElement): @@ -1421,6 +1571,9 @@ class DieFace(GameElement): def getSpecialDie(self): return self.getParent(SpecialDie) + +registerElement(DieFace) + # # EOF # @@ -1451,6 +1604,223 @@ class MapElement(Element,MapElementService): # -------------------------------------------------------------------- +class PieceLayers(MapElement): + TAG=Element.MAP+'LayeredPieceCollection' + def __init__(self,map,node=None, + property = 'PieceLayer', + description = '', + layerOrder = []): + super(PieceLayers,self).__init__(map,self.TAG,node=node, + property = property, + description = description, + layerOrder = ','.join(layerOrder)) + + def addControl(self,**kwargs): + '''Add `LayerControl` element to this + + Parameters + ---------- + kwargs : dict + Dictionary of attribute key-value pairs + Returns + ------- + element : LayerControl + The added element + ''' + return self.add(LayerControl,**kwargs) + def getControls(self,asdict=True): + '''Get all `LayerControl` element(s) from this + + Parameters + ---------- + asdict : bool + If `True`, return a dictonary that maps name to + `LayerControl` elements. If `False`, return a list of all + `LayerControl` children. + + Returns + ------- + children : dict or list + Dictionary or list of `LayerControl` children + + ''' + return self.getElementsByKey(LayerControl,'name',asdict) + +registerElement(PieceLayers) + +# -------------------------------------------------------------------- +class LayerControl(MapElement): + TAG=Element.MAP+'LayerControl' + CYCLE_UP='Rotate Layer Order Up' + CYCLE_DOWN='Rotate Layer Order Down' + ENABLE='Make Layer Active' + DISABLE='Make Layer Inactive' + TOGGLE='Switch Layer between Active and Inactive' + RESET='Reset All Layers' + def __init__(self,col,node=None, + name = '', + tooltip = '', + text = '', + hotkey = '', + icon = '', + canDisable = False, + propertyGate = '', #Property name, disable when property false + disabledIcon = '', + command = TOGGLE, + skip = False, + layers = [], + description = ''): + super(LayerControl,self).__init__(col,self.TAG,node=node, + name = name, + tooltip = tooltip, + text = text, + buttonText = text, + hotkey = hotkey, + icon = icon, + canDisable = canDisable, + propertyGate = propertyGate, + disabledIcon = disabledIcon, + command = command, + skip = skip, + layers = ','.join(layers), + description = description) + + def getLayers(self): + '''Get map - either a Map or WidgetMap''' + return self.getParentOfClass([PieceLayers]) + +registerElement(LayerControl) + + +# -------------------------------------------------------------------- +class LineOfSight(MapElement): + TAG=Element.MAP+'LOS_Thread' + ROUND_UP = 'Up' + ROUND_DOWN = 'Down' + ROUND_NEAREST = 'Nearest whole number' + FROM_LOCATION = 'FromLocation' + TO_LOCATION = 'ToLocation' + CHECK_COUNT = 'NumberOfLocationsChecked' + CHECK_LIST = 'AllLocationsChecked' + RANGE = 'Range' + NEVER = 'Never' + ALWAYS = 'Always' + WHEN_PERSISTENT = 'When persistent' + CTRL_CLICK = 'Cltr-Click & Drag' + + def __init__(self,map, + node=None, + threadName = 'LOS', + hotkey = key('L',ALT), + tooltip = 'Trace line of sight', + iconName = '/images/thread.gif', #'los-icon.png', + label = '', + snapLOS = False, + snapStart = True, + snapEnd = True, + report = (f'{{"Range from "+{FROM_LOCATION}' + f'+" to "+{TO_LOCATION}+" is "' + f'+{RANGE}+" (via "+{CHECK_LIST}+")"}}'), + persistent = CTRL_CLICK, + persistentIconName = '/images/thread.gif', + globl = ALWAYS, + losThickness = 3, + threadColor = rgb(255,0,0), + drawRange = True, + # rangeBg = rgb(255,255,255), + # rangeFg = rgb(0,0,0), + rangeScale = 0, + hideCounters = True, + hideOpacity = 50, + round = ROUND_UP, + canDisable = False, + propertyGate = '', + disabledIcon = ''): + '''Make Line of Sight interface + + Parameters + ---------- + threadName : str + Name of interface + hotkey : str + Start LOS key + tooltip : str + Tool tip text + iconName : str + Path to button icon + label : str + Button text + snapLOS : bool + Wether to snap both ends + snapStart : bool + Snap to start + snapEnd: bool + Snap to end + report : str + Report format + persistent : str + When persistent + persistentIconName : str + Icon when persistent(?) + globl : str + Visisble to opponents + losThickness : int + Thickness in pixels + losColor : str + Colour of line + drawRange : bool + Draw the range next to LOST thread + rangeBg : str + Range backgroung colour + rangeFg : str + Range foregrond colour + rangeScale : int + Scale of range - pixels per unit + round : str + How to round range + hideCounters :bool + If true, hide counters while making thread + hideOpacity : int + Opacity of hidden counters (percent) + canDisable : bool + IF true, then can be hidden + propertyGate : str + Name of property. When that property is TRUE, then the + interface is disabled. Must be a property name, not an expression. + disabledIcon : str + Icon to use when disabled + ''' + super(LineOfSight,self).__init__(map,self.TAG, + node = node, + threadName = threadName, + hotkey = hotkey, + tooltip = tooltip, + iconName = iconName, + label = label, + snapLOS = snapLOS, + snapStart = snapStart, + snapEnd = snapEnd, + report = report, + persistent = persistent, + persistentIconName = persistentIconName, + losThickness = losThickness, + threadColor = threadColor, + drawRange = drawRange, + #rangeBg = rangeBg, + #rangeFg = rangeFg, + rangeScale = rangeScale, + hideCounters = hideCounters, + hideOpacity = hideOpacity, + round = round, + canDisable = canDisable, + propertyGate = propertyGate, + disabledIcon = disabledIcon) + self.setAttribute('global',globl) + + +registerElement(LineOfSight) + +# -------------------------------------------------------------------- class StackMetrics(MapElement): TAG=Element.MAP+'StackMetrics' def __init__(self,map,node=None, @@ -1474,6 +1844,8 @@ class StackMetrics(MapElement): unexSepY = unexSepY, up = up) +registerElement(StackMetrics) + # -------------------------------------------------------------------- class ImageSaver(MapElement): TAG=Element.MAP+'ImageSaver' @@ -1491,6 +1863,9 @@ class ImageSaver(MapElement): icon = icon, propertyGate = propertyGate, tooltip = tooltip) + +registerElement(ImageSaver) + # -------------------------------------------------------------------- class TextSaver(MapElement): TAG=Element.MAP+'TextSaver' @@ -1509,6 +1884,7 @@ class TextSaver(MapElement): propertyGate = propertyGate, tooltip = tooltip) +registerElement(TextSaver) # -------------------------------------------------------------------- class ForwardToChatter(MapElement): @@ -1516,30 +1892,40 @@ class ForwardToChatter(MapElement): def __init__(self,map,node=None,**kwargs): super(ForwardToChatter,self).__init__(map,self.TAG,node=node,**kwargs) +registerElement(ForwardToChatter) + # -------------------------------------------------------------------- class MenuDisplayer(MapElement): TAG=Element.MAP+'MenuDisplayer' def __init__(self,map,node=None,**kwargs): super(MenuDisplayer,self).__init__(map,self.TAG,node=node,**kwargs) +registerElement(MenuDisplayer) + # -------------------------------------------------------------------- class MapCenterer(MapElement): TAG=Element.MAP+'MapCenterer' def __init__(self,map,node=None,**kwargs): super(MapCenterer,self).__init__(map,self.TAG,node=node,**kwargs) +registerElement(MapCenterer) + # -------------------------------------------------------------------- class StackExpander(MapElement): TAG=Element.MAP+'StackExpander' def __init__(self,map,node=None,**kwargs): super(StackExpander,self).__init__(map,self.TAG,node=node,**kwargs) +registerElement(StackExpander) + # -------------------------------------------------------------------- class PieceMover(MapElement): TAG=Element.MAP+'PieceMover' def __init__(self,map,node=None,**kwargs): super(PieceMover,self).__init__(map,self.TAG,node=node,**kwargs) +registerElement(PieceMover) + # -------------------------------------------------------------------- class SelectionHighlighters(MapElement): TAG=Element.MAP+'SelectionHighlighters' @@ -1547,12 +1933,16 @@ class SelectionHighlighters(MapElement): super(SelectionHighlighters,self).\ __init__(map,self.TAG,node=node,**kwargs) +registerElement(SelectionHighlighters) + # -------------------------------------------------------------------- class KeyBufferer(MapElement): TAG=Element.MAP+'KeyBufferer' def __init__(self,map,node=None,**kwargs): super(KeyBufferer,self).__init__(map,self.TAG,node=node,**kwargs) +registerElement(KeyBufferer) + # -------------------------------------------------------------------- class HighlightLastMoved(MapElement): TAG=Element.MAP+'HighlightLastMoved' @@ -1565,6 +1955,8 @@ class HighlightLastMoved(MapElement): enabled = enabled, thickness = thickness) +registerElement(HighlightLastMoved) + # -------------------------------------------------------------------- class CounterDetailViewer(MapElement): TAG=Element.MAP+'CounterDetailViewer' @@ -1587,7 +1979,7 @@ class CounterDetailViewer(MapElement): extraTextPadding = 0, fgColor = rgb(0,0,0), fontSize = 9, - graphicsZoom = 1.0, + graphicsZoom = 1.0,# Zoom on counters hotkey = key('\n',0), layerList = '', minDisplayPieces = 2, @@ -1649,6 +2041,8 @@ class CounterDetailViewer(MapElement): verticalTopText = verticalTopText, zoomlevel = zoomlevel) +registerElement(CounterDetailViewer) + # -------------------------------------------------------------------- class GlobalMap(MapElement): TAG=Element.MAP+'GlobalMap' @@ -1668,6 +2062,8 @@ class GlobalMap(MapElement): scale = scale, tooltip = 'Show/Hide overview window') +registerElement(GlobalMap) + # -------------------------------------------------------------------- class Zoomer(MapElement): TAG = Element.MAP+'Zoomer' @@ -1687,6 +2083,7 @@ class Zoomer(MapElement): zoomOutKey = key('-'), zoomPickKey = key('='), zoomStart = 3): + '''Zoom start is counting from the back (with default zoom levels, and zoom start, the default zoom is 1''' lvls = ','.join([str(z) for z in zoomLevels]) @@ -1707,6 +2104,8 @@ class Zoomer(MapElement): zoomPickKey = zoomPickKey, zoomStart = zoomStart) +registerElement(Zoomer) + # -------------------------------------------------------------------- class HidePiecesButton(MapElement): TAG=Element.MAP+'HidePiecesButton' @@ -1724,6 +2123,8 @@ class HidePiecesButton(MapElement): showingIcon = showingIcon, tooltip = tooltip) +registerElement(HidePiecesButton) + # -------------------------------------------------------------------- class MassKey(GlobalKey,MapElementService): TAG = Element.MAP+'MassKeyCommand' @@ -1760,6 +2161,7 @@ class MassKey(GlobalKey,MapElementService): tooltip = tooltip, icon = icon) +registerElement(MassKey) # -------------------------------------------------------------------- class Flare(MapElement): @@ -1783,10 +2185,13 @@ class Flare(MapElement): flarePulsesPerSec = flarePulsesPerSec, reportFormat = '') +registerElement(Flare) + # -------------------------------------------------------------------- class AtStart(MapElement): TAG = Element.MODULE+'map.SetupStack' - def __init__(self,map,node=None, + def __init__(self,map, + node = None, name = '', location = '', useGridLocation = True, @@ -1861,6 +2266,8 @@ class AtStart(MapElement): ''' return self.getElementsWithKey(PieceSlot,'entryName',asdict) +registerElement(AtStart) + # # EOF # @@ -1894,6 +2301,7 @@ class GlobalProperties(Element): def getProperties(self): return getElementsByKey(GlobalProperty,'name') +registerElement(GlobalProperties) # -------------------------------------------------------------------- class GlobalProperty(Element): @@ -1919,6 +2327,7 @@ class GlobalProperty(Element): def getGlobalProperties(self): return self.getParent(GlobalProperties) +registerElement(GlobalProperty) # # EOF @@ -2099,7 +2508,8 @@ class TurnTrack(TurnLevel): return [] - +registerElement(TurnTrack) + # -------------------------------------------------------------------- class TurnCounter(TurnLevel): TAG = Element.MODULE+"turn.CounterTurnLevel" @@ -2118,6 +2528,8 @@ class TurnCounter(TurnLevel): loopLimit = loopLimit, turnFormat = turnFormat) +registerElement(TurnCounter) + # -------------------------------------------------------------------- class TurnList(TurnLevel): TAG = Element.MODULE+"turn.ListTurnLevel" @@ -2135,6 +2547,8 @@ class TurnList(TurnLevel): configList = configList, turnFormat = turnFormat) +registerElement(TurnList) + # -------------------------------------------------------------------- class TurnGlobalHotkey(Element): TAG = Element.MODULE+'turn.TurnGlobalHotkey' @@ -2172,6 +2586,8 @@ class TurnGlobalHotkey(Element): '''Get the turn track''' return self.getParent(TurnTrack) +registerElement(TurnGlobalHotkey) + # # EOF # @@ -2316,6 +2732,7 @@ class Documentation(GameElement): return txt +registerElement(Documentation) # -------------------------------------------------------------------- class AboutScreen(Element): @@ -2343,6 +2760,8 @@ class AboutScreen(Element): '''Get Parent element''' return self.getParent(Documentation) +registerElement(AboutScreen) + # -------------------------------------------------------------------- class BrowserPDFFile(Element): TAG = Element.MODULE+'documentation.BrowserPDFFile' @@ -2368,6 +2787,8 @@ class BrowserPDFFile(Element): '''Get Parent element''' return self.getParent(Documentation) +registerElement(BrowserPDFFile) + # -------------------------------------------------------------------- class HelpFile(Element): TAG = Element.MODULE+'documentation.HelpFile' @@ -2400,6 +2821,8 @@ class HelpFile(Element): '''Get Parent element''' return self.getParent(Documentation) +registerElement(HelpFile) + # -------------------------------------------------------------------- class BrowserHelpFile(Element): TAG = Element.MODULE+'documentation.BrowserHelpFile' @@ -2427,7 +2850,9 @@ class BrowserHelpFile(Element): def getDocumentation(self): '''Get Parent element''' return self.getParent(Documentation) - + +registerElement(BrowserHelpFile) + # -------------------------------------------------------------------- class Tutorial(Element): TAG = Element.MODULE+'documentation.Tutorial' @@ -2468,6 +2893,8 @@ class Tutorial(Element): '''Get Parent element''' return self.getParent(Documentation) +registerElement(Tutorial) + # # EOF @@ -2517,6 +2944,8 @@ class PlayerRoster(GameElement): '''Encode for save''' return ['PLAYER\ta\ta\t<observer>'] +registerElement(PlayerRoster) + # -------------------------------------------------------------------- class PlayerSide(Element): TAG = 'entry' @@ -2540,6 +2969,8 @@ class PlayerSide(Element): '''Get Parent element''' return self.getParent(PlayerRoster) +registerElement(PlayerSide) + # # EOF @@ -2614,7 +3045,9 @@ class ChessClock(Element): def getControl(self): '''Get Parent element''' return self.getParent(ChessClockControl) - + +registerElement(ChessClock) + # ==================================================================== class ChessClockControl(GameElement): TAG=Element.MODULE+'ChessClockControl' @@ -2727,6 +3160,7 @@ class ChessClockControl(GameElement): '''Return dictionary of clocs''' return self.getElementsByKey(ChessClock,'side',asdict) +registerElement(ChessClockControl) # # EOF @@ -2961,6 +3395,8 @@ class PieceWindow(GameElement,WidgetElement): tooltip = tooltip, icon = icon) +registerElement(PieceWindow) + # -------------------------------------------------------------------- class ComboWidget(Element,WidgetElement): TAG=Element.WIDGET+'BoxWidget' @@ -2972,6 +3408,8 @@ class ComboWidget(Element,WidgetElement): width = width, height = height) +registerElement(ComboWidget) + # -------------------------------------------------------------------- class TabWidget(Element,WidgetElement): TAG=Element.WIDGET+'TabWidget' @@ -2981,6 +3419,8 @@ class TabWidget(Element,WidgetElement): node = node, entryName = entryName) +registerElement(TabWidget) + # -------------------------------------------------------------------- class ListWidget(Element,WidgetElement): TAG=Element.WIDGET+'ListWidget' @@ -2997,6 +3437,8 @@ class ListWidget(Element,WidgetElement): scale = scale, divider = divider) +registerElement(ListWidget) + # -------------------------------------------------------------------- class PanelWidget(Element,WidgetElement): TAG=Element.WIDGET+'PanelWidget' @@ -3011,6 +3453,8 @@ class PanelWidget(Element,WidgetElement): nColumns = nColumns, vert = vert) +registerElement(PanelWidget) + # -------------------------------------------------------------------- class MapWidget(Element): TAG=Element.WIDGET+'MapWidget' @@ -3046,6 +3490,8 @@ class MapWidget(Element): ''' return self.getElementsByKey(WidgetMap,'mapName',asdict=asdict) +registerElement(MapWidget) + # # EOF # @@ -3258,6 +3704,8 @@ class HexGrid(BaseGrid): width = self.getZone().getWidth() return floor(width / self.getDeltaY() + .5) +registerElement(HexGrid) + # -------------------------------------------------------------------- class SquareGrid(BaseGrid): TAG = Element.BOARD+'SquareGrid' @@ -3307,6 +3755,8 @@ class SquareGrid(BaseGrid): width = self.getZone().getWidth() return floor(width / self.getDeltaX() + .5) +registerElement(SquareGrid) + # -------------------------------------------------------------------- class HexNumbering(BaseNumbering): TAG = Element.BOARD+'mapgrid.HexGridNumbering' @@ -3368,6 +3818,8 @@ class HexNumbering(BaseNumbering): return x,y +registerElement(HexNumbering) + # -------------------------------------------------------------------- class SquareNumbering(BaseNumbering): TAG = Element.BOARD+'mapgrid.SquareGridNumbering' @@ -3395,6 +3847,7 @@ class SquareNumbering(BaseNumbering): return x,y +registerElement(SquareNumbering) # -------------------------------------------------------------------- class RegionGrid(Element): @@ -3452,6 +3905,8 @@ class RegionGrid(Element): return None +registerElement(RegionGrid) + # -------------------------------------------------------------------- class Region(Element): TAG = Element.BOARD+'Region' @@ -3527,6 +3982,8 @@ class Region(Element): return b.getMap() return None +registerElement(Region) + # # EOF # @@ -3579,7 +4036,7 @@ class ZonedGrid(Element): children : list List of `Highligter` children (even if `single=True`) ''' - return self.getAllElements(ZonedGridHighliger,single=single) + return self.getAllElements(ZonedGridHighlighter,single=single) def addZone(self,**kwargs): '''Add a `Zone` element to this @@ -3607,6 +4064,8 @@ class ZonedGrid(Element): ''' return self.getElementsByKey(Zone,'name',asdict=asdict) +registerElement(ZonedGrid) + # -------------------------------------------------------------------- class ZonedGridHighlighter(Element): TAG=Element.BOARD+'mapgrid.ZonedGridHighlighter' @@ -3614,6 +4073,96 @@ class ZonedGridHighlighter(Element): super(ZonedGridHighlighter,self).__init__(zoned,self.TAG,node=node) def getZonedGrid(self): return self.getParent(ZonedGrid) + def addZoneHighlight(self,**kwargs): + '''Add a `ZoneHighlight` element to this + + Parameters + ---------- + kwargs : dict + Dictionary of attribute key-value pairs + Returns + ------- + element : ZoneHighlight + The added element + ''' + return self.add(ZoneHighlight,**kwargs) + def getZoneHighlights(self,asdict=True): + '''Get all ZoneHighlight element(s) from this + + Parameters + ---------- + asdict : bool + If `True`, return a dictonary that maps key to `Zone` elements. If `False`, return a list of all Zone` children. + Returns + ------- + children : dict or list + Dictionary or list of `Zone` children + ''' + return self.getElementsByKey(ZoneHighlight,'name',asdict=asdict) + +registerElement(ZonedGridHighlighter) + +# -------------------------------------------------------------------- +class ZoneHighlight(Element): + TAG=Element.BOARD+'mapgrid.ZoneHighlight' + FULL='Entire Zone', + BORDER='Zone Border', + PLAIN='Plain', + STRIPED='Striped' + CROSS='Crosshatched', + TILES='Tiled Image' + def __init__(self, + highlighters, + node = None, + name = '', + color = rgb(255,0,0), + coverage = FULL, + width = 1, + style = PLAIN, + image = '', + opacity = 50): + super(ZoneHighlight,self).__init__(highlighters, + self.TAG, + node = node, + name = name, + color = color, + coverage = coverage, + width = width, + style = style, + image = image, + opacity = int(opacity)) + def getZonedGridHighlighter(self): + return self.getParent(ZonedGridHighlighter) + + +registerElement(ZoneHighlight) + + +# -------------------------------------------------------------------- +class ZoneProperty(Element): + TAG = Element.MODULE+'properties.ZoneProperty' + def __init__(self,zone,node=None, + name = '', + initialValue = '', + isNumeric = False, + min = "null", + max = "null", + wrap = False, + description = ""): + super(ZoneProperty,self).__init__(zone,self.TAG, + node = node, + name = name, + initialValue = initialValue, + isNumeric = isNumeric, + min = min, + max = max, + wrap = wrap, + description = description) + + def getZone(self): + return self.getParent(Zone) + +registerElement(ZoneProperty) # -------------------------------------------------------------------- class Zone(Element): @@ -3693,6 +4242,19 @@ class Zone(Element): The added element ''' return self.add(RegionGrid,**kwargs) + def addProperty(self,**kwargs): + '''Add a `Property` element to this + + Parameters + ---------- + kwargs : dict + Dictionary of attribute key-value pairs + Returns + ------- + element : Property + The added element + ''' + return self.add(ZoneProperty,**kwargs) def getHexGrids(self,single=True): '''Get all or a sole `HexGrid` element(s) from this @@ -3758,6 +4320,17 @@ class Zone(Element): if g is not None: return g return g + def getProperties(self): + '''Get all `Property` element from this + + Parameters + ---------- + Returns + ------- + children : dict + dict of `Property` children + ''' + return getElementsByKey(ZoneProperty,'name') def getPath(self): p = self['path'].split(';') @@ -3785,6 +4358,8 @@ class Zone(Element): def getYOffset(self): return self.getBB()[1] +registerElement(Zone) + # # EOF # @@ -3879,6 +4454,8 @@ class BoardPicker(MapElement): return ret +registerElement(BoardPicker) + # -------------------------------------------------------------------- class Setup(Element): TAG = 'setup' @@ -3901,7 +4478,9 @@ class Setup(Element): self.addText(txt) def getPicker(self): return self.getParent(BoardPicker) - + +registerElement(Setup) + # -------------------------------------------------------------------- class Board(Element): TAG = Element.PICKER+'Board' @@ -3982,6 +4561,7 @@ class Board(Element): return int(self['height']) return 0 +registerElement(Board) # # EOF @@ -4340,6 +4920,57 @@ class BaseMap(Element): picker = self.getPicker() if picker is None: return None return picker[0].getBoards(asdict=asdict) + def getLayers(self,asdict=True): + '''Get all `PieceLayer` element(s) from this + + Parameters + ---------- + asdict : bool + If `True`, return a dictonary that maps property name + `PieceLayers` elements. If `False`, return a list of all + `PieceLayers` children. + + Returns + ------- + children : dict or list + Dictionary or list of `PieceLayers` children + + ''' + return self.getElementsByKey(PieceLayers,'property',asdict) + def getMenus(self,asdict=True): + '''Get all Menu element(s) from this + + Parameters + ---------- + asdict : bool + If `True`, return a dictonary that maps key to `Board` + elements. If `False`, return a list of all Board` + children. + + Returns + ------- + children : dict or list + Dictionary or list of `Board` children + + ''' + return self.getElementsByKey(Menu,'name',asdict) + def getLOSs(self,asdict=True): + '''Get all Menu element(s) from this + + Parameters + ---------- + asdict : bool + If `True`, return a dictonary that maps key to `Board` + elements. If `False`, return a list of all Board` + children. + + Returns + ------- + children : dict or list + Dictionary or list of `Board` children + + ''' + return self.getElementsByKey(LineOfSight,'threadName',asdict) def addBoardPicker(self,**kwargs): '''Add a `BoardPicker` element to this @@ -4600,6 +5231,47 @@ class BaseMap(Element): The added element ''' return self.add(AtStart,**kwargs) + + + def addLayers(self,**kwargs): + '''Add `PieceLayers` element to this + + Parameters + ---------- + kwargs : dict + Dictionary of attribute key-value pairs + Returns + ------- + element : PieceLayers + The added element + ''' + return self.add(PieceLayers,**kwargs) + def addMenu(self,**kwargs): + '''Add a `Menu` element to this + + Parameters + ---------- + kwargs : dict + Dictionary of attribute key-value pairs + Returns + ------- + element : Menu + The added element + ''' + return self.add(Menu,**kwargs) + def addLOS(self,**kwargs): + '''Add a `Menu` element to this + + Parameters + ---------- + kwargs : dict + Dictionary of attribute key-value pairs + Returns + ------- + element : Menu + The added element + ''' + return self.add(LineOfSight,**kwargs) # -------------------------------------------------------------------- class Map(BaseMap): @@ -4657,7 +5329,9 @@ class Map(BaseMap): def getGame(self): return self.getParent(Game) - + +registerElement(Map) + # -------------------------------------------------------------------- class WidgetMap(BaseMap): TAG = Element.WIDGET+'WidgetMap' @@ -4669,6 +5343,8 @@ class WidgetMap(BaseMap): def getMapWidget(self): return self.getParent(MapWidget) +registerElement(WidgetMap) + # # EOF @@ -4721,7 +5397,7 @@ class ChartWindow(GameElement,WidgetElement): ''' return self.getElementsById(Chart,'chartName',asdict=asdict) - +registerElement(ChartWindow) # -------------------------------------------------------------------- class Chart(Element): @@ -4735,6 +5411,8 @@ class Chart(Element): description = description, fileName = fileName) +registerElement(Chart) + # # EOF # @@ -4766,7 +5444,7 @@ class Trait: this actually holds state that isn't reflected elsewhere in the DOM. This means that the data here is local to the object. So when we do - + piece = foo.getPieceSlots()[0] traits = p.getTraits() for trait in traits: @@ -5040,6 +5718,15 @@ class WithTraits(Element): Identifier ''' + last = traits[-1] + # A little hackish to use the name of the class, but needed + # because of imports into patch scripts. + if not isinstance(last,BasicTrait) and \ + not last.__class__.__name__.endswith('BasicTrait'): + from sys import stderr + print(f'Warning - last trait NOT a BasicTrait, but a {type(last)}', + file=stderr) + types = [] states = [] for trait in traits: @@ -5165,7 +5852,9 @@ class DummyWithTraits(WithTraits): if parent is not None: parent.remove(self) - + +registerElement(DummyWithTraits) + # -------------------------------------------------------------------- class PieceSlot(WithTraits): TAG = Element.WIDGET+'PieceSlot' @@ -5226,6 +5915,7 @@ class PieceSlot(WithTraits): piece.setTraits(*traits) return piece +registerElement(PieceSlot) # -------------------------------------------------------------------- class Prototype(WithTraits): @@ -5255,6 +5945,8 @@ class Prototype(WithTraits): name = name, description = description) +registerElement(Prototype) + # # EOF # @@ -5262,16 +5954,21 @@ class Prototype(WithTraits): # From traits/dynamicproperty.py # -------------------------------------------------------------------- -# Base class for property (piece or global) change traits. Encodes -# constraints and commands. +# +# class ChangePropertyTrait(Trait): DIRECT = 'P' + INCREMENT = 'I' def __init__(self, *commands, numeric = False, min = 0, max = 100, wrap = False): + '''Base class for property (piece or global) change traits. + + Encodes constraints and commands. + ''' # assert name is not None and len(name) > 0, \ # 'No name specified for ChangePropertyTriat' super(ChangePropertyTrait,self).__init__() @@ -5293,8 +5990,11 @@ class ChangePropertyTrait(Trait): # print(cmd) com = cmd[0] + ':' + cmd[1].replace(',',r'\,') + ':' + cmd[2] if cmd[2] == self.DIRECT: - com += f'\,'+cmd[3].replace(':',r'\:') + com += f'\,'+cmd[3].replace(',',r'\\,').replace(':',r'\:') + elif cmd[2] == self.INCREMENT: + com += f'\,'+cmd[3].replace(',',r'\\,').replace(':',r'\:') cmds.append(com) + # print(cmds) return ','.join(cmds) def decodeCommands(self,commands): @@ -5305,6 +6005,8 @@ class ChangePropertyTrait(Trait): # print('parts',parts) if parts[-1][0] == self.DIRECT: parts = parts[:-1]+Trait.decodeKeys(parts[-1],',') + if parts[-1][0] == self.INCREMENT: + parts = parts[:-1]+Trait.decodeKeys(parts[-1],',') ret.append(parts) # print(commands,parts) return ret @@ -5840,7 +6542,7 @@ class NoStackTrait(Trait): canStack = False, ignoreGrid = False, description = ''): - + '''No stacking trait''' selectionOptions = (select + (self.IGNORE_GRID if ignoreGrid else '') + bandSelect) @@ -7319,6 +8021,7 @@ class Game(Element): ''' return self.getAllElements(AtStart,single) +registerElement(Game) # -------------------------------------------------------------------- class BasicCommandEncoder(GameElement): @@ -7326,6 +8029,8 @@ class BasicCommandEncoder(GameElement): def __init__(self,doc,node=None): super(BasicCommandEncoder,self).__init__(doc,self.TAG,node=node) +registerElement(BasicCommandEncoder) + # # EOF # @@ -8446,7 +9151,8 @@ class LaTeXExporter(Exporter): vassalVersion = '3.6.7', nonato = False, nochit = False, - counterScale = 1): + counterScale = 1, + resolution = 150): '''Exports a PDF and associated JSON files to a VASSAL module. Parameters @@ -8473,6 +9179,8 @@ class LaTeXExporter(Exporter): Make grids visible vassalVersion : str VASSAL version to encode this module for + resolution : int + Resolution for images (default 150) ''' self._vmodname = vmodname self._pdfname = pdfname @@ -8487,6 +9195,7 @@ class LaTeXExporter(Exporter): self._vassalVersion = vassalVersion self._nonato = nonato self._nochit = nochit + self._resolution = resolution self._counterScale = counterScale self._battleMark = 'wgBattleMarker' self._battleMarks = [] @@ -8572,6 +9281,7 @@ class LaTeXExporter(Exporter): v(f'Tutorial log: {self._tutorial}') v(f'Patch scripts: {self._patch}') v(f'Visible grids: {self._visible}') + v(f'Resolution: {self._resolution}') v(f'Scale of counters: {self._counterScale}') def setup(self): @@ -8704,6 +9414,7 @@ class LaTeXExporter(Exporter): args = ['pdftocairo', '-transp', '-singlefile', + '-r', str(self._resolution), '-f', str(page), '-l', str(page), '-png' ] @@ -8772,9 +9483,9 @@ class LaTeXExporter(Exporter): imgsinfo = self.getImagesInfo() if len(imgsinfo) - 1 != docinfo['Pages']: - raise RuntimeError(f'Number of pages in {pdfname} ' - f'(doc["Pages"]) not matched in JSON ' - f'{self._infoname} -> {len(imagesinfo)}') + raise RuntimeError(f'Number of pages in {self._pdfname} ' + f'{docinfo["Pages"]} not matched in JSON ' + f'{self._infoname} -> {len(imgsinfo)}') with VerboseGuard(f'Converting {docinfo["Pages"]} ' f'pages in {self._pdfname}') as v: @@ -9126,10 +9837,16 @@ class LaTeXExporter(Exporter): 'property': 'Phase', 'names': self._sides } }) turns.addHotkey(hotkey = self._clearMoved+'Phase', - name = 'Clear moved markers') + name = 'Clear moved markers', + reportFormat = (f'{{{self._verbose}?(' + f'"`Clear all moved markers, "+' + f'""):""}}')) if len(self._battleMarks) > 0: turns.addHotkey(hotkey = self._clearBattlePhs, - name = 'Clear battle markers') + name = 'Clear battle markers', + reportFormat = (f'{{{self._verbose}?(' + f'"`Clear all battle markers, "+' + f'""):""}}')) self._dice = self._categories\ .get('die-roll',{}) @@ -9153,7 +9870,9 @@ class LaTeXExporter(Exporter): # f'+" <img src=\'{die}-"+result1' # f'+".png\' width=24 height=24>"' f'}}'), - resultWindow = True); + resultWindow = True, + windowX = str(int(67 * self._resolution/150)), + windowY = str(int(65 * self._resolution/150))); sdie = symb.addDie(name = die); for face, fdata in faces.items(): fn = fdata['filename'] @@ -10186,13 +10905,14 @@ class LaTeXExporter(Exporter): # ---------------------------------------------------------------- def factionTraits(self,faction): - traits = [ReportTrait(self._eliminateKey, - self._restoreKey, - self._trailKey), + offX = 36 * self._counterScale * self._resolution/150 + offY = -38 * self._counterScale * self._resolution/150 + traits = [#ReportTrait(self._eliminateKey, + # self._restoreKey, + # self._trailKey), TrailTrait(), RotateTrait(), - MovedTrait(xoff = int( 36 * self._counterScale), - yoff = int(-38 * self._counterScale)), + MovedTrait(xoff = int(offX),yoff = int(offY)), DeleteTrait(), SendtoTrait(mapName = 'DeadMap', boardName = f'{faction} pool', @@ -11308,7 +12028,10 @@ class LaTeXExporter(Exporter): pc = p["coords"] if j == 0: vv(f'',end='') vv(f'[{pn}] ',end='',flush=True,noindent=True) - + + if pn.endswith(' flipped'): + pn = pn[:-len(' flipped')] + x, y = tran(*pc) r = grid.addRegion(name = pn, originx = x, @@ -11499,7 +12222,7 @@ class LaTeXExporter(Exporter): def addDie(self): '''Add a `Die` element to the module ''' - if self._dice is not None: + if self._dice is not None and len(self._dice) > 0: return self._game.addDiceButton(name = '1d6', hotkey = self._diceKey) @@ -11568,6 +12291,9 @@ if __name__ == '__main__': ap.add_argument('-S','--counter-scale', type=float, default=1, help='Scale counters by factor') + ap.add_argument('-R','--resolution', + type=int, default=150, + help='Resolution of images') args = ap.parse_args() @@ -11600,6 +12326,7 @@ if __name__ == '__main__': vassalVersion = args.vassal_version, nonato = args.no_nato_prototypes, nochit = args.no_chit_information, + resolution = args.resolution, counterScale = args.counter_scale) exporter.run() except Exception as e: diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb index da6d7bbecf..996f97458e 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/69666 +depend revision/69681 name 00texlive.image category TLCore -revision 69665 +revision 69669 shortdesc TeX Live files only in the source repository longdesc The files here are not copied by the installer and containers longdesc are not built for them; they exist only in the source @@ -40,7 +40,7 @@ longdesc IgnorePatterns in the check_files routine in tlmgr.pl augment longdesc this list. Those are not included in the source/ tarball. For longdesc information on the 00texlive prefix see longdesc 00texlive.installation(.tlpsrc) -runfiles size=13631 +runfiles size=14450 .mkisofsrc autorun.inf texmf-dist/README @@ -97221,7 +97221,7 @@ catalogue-version 1.4 name docshots category Package -revision 69410 +revision 69676 shortdesc TeX samples next to their PDF snapshots relocated 1 longdesc This LaTeX package helps you show TeX code next to the @@ -97232,17 +97232,17 @@ depend iexec depend pdfcrop depend pgf depend pgf-blur -containersize 2788 -containerchecksum b25c70def3ad4e85aaa6f229362a7d4ca3b2cf20fc86c8682d3ddc36738868d3ba3f481634d0a9acf8366af102ba3a27b325f3282724f392e8e3d312abb60814 -doccontainersize 338200 -doccontainerchecksum 81adc089c9572519c09a0e1472cf2aef9a52a51c84992c8a46fdf74bb81aa432417f58836eea621173c60ef9ef2367348643d161f661580d030c206fd88f478d +containersize 2804 +containerchecksum 55d866be055e8ef97014bae75355f9a3de111527d96475b604154566b5d92b74788c1f6d250b3f58bb35e9133bef5d923b1aba309704375fe19d85559600b23c +doccontainersize 338416 +doccontainerchecksum aef2d08ba7bab13a3ee496409601aa3cdb20612daa6866521bc70952032386f45fc64223ad5a2f188055053f372a0d70a21ea111901230f6dcb53f210a9c50ca docfiles size=87 RELOC/doc/latex/docshots/DEPENDS.txt RELOC/doc/latex/docshots/LICENSE.txt RELOC/doc/latex/docshots/README.md details="Readme" RELOC/doc/latex/docshots/docshots.pdf details="Package documentation" -srccontainersize 7248 -srccontainerchecksum f7e7609765907f9ae15f000ab50afc4546660e01266431050fb16b59bb760ff154ca2efda4187452511c8cb4c47f253ac401225e33e261028ee5df2bbbf0687a +srccontainersize 7264 +srccontainerchecksum ddf9a609829d07da413738be5b22454f8079d9e8985a7d8305ce1c00ae41625f7f145f3b806b996947b4836793193735df57da831d81dcf37ca61521f32cb464 srcfiles size=7 RELOC/source/latex/docshots/docshots.dtx RELOC/source/latex/docshots/docshots.ins @@ -97252,7 +97252,7 @@ catalogue-contact-repository https://github.com/yegor256/docshots catalogue-ctan /macros/latex/contrib/docshots catalogue-license mit catalogue-topics doc-supp -catalogue-version 0.4.2 +catalogue-version 0.4.3 name docsurvey category Package @@ -148935,16 +148935,16 @@ catalogue-version 0.01 name hvqrurl category Package -revision 69621 +revision 69677 shortdesc Insert a QR code in the margin relocated 1 longdesc This package allows to draw an URL as a QR code into the margin longdesc of a one- or twosided document. The following packages are longdesc loaded by default: qrcode, marginnote, url, xcolor and xkeyval. -containersize 1348 -containerchecksum 5b04a6ceea3bce1d302b127717f1757330afb605ea99a43bef34c4376c1d5dbea29a69638ef17b13bd012766a008b6106ade36e22939f26542eb51b07799fcfb -doccontainersize 113684 -doccontainerchecksum c42f71eb8649c777ee3a0e51a26b669e624de8cc5c94e112f3eca9bbd931d699b8e993cedd8ef919b65cc2ec2bf0f9fb7f227915ca16f51a6cd036858e375c3b +containersize 1352 +containerchecksum 860a257badbc202ffe08427bcf737495a38d18e37d7679cf832fb37473cb300b26b951a7aa9e4a9f83bc09959d52bcddb898345aae03b83cfeecb2e64a3bced3 +doccontainersize 113960 +doccontainerchecksum ba08cc8fc18d5f78d2d28c98dfb3d4067a80af5138eca0f2677d7b1e6f7ceac24573c2bc48537e9e5475c3d86aeb41f41828f5989c591196941326023112ee6f docfiles size=32 RELOC/doc/latex/hvqrurl/Changes RELOC/doc/latex/hvqrurl/README details="Readme" @@ -148955,7 +148955,7 @@ runfiles size=1 catalogue-ctan /macros/latex/contrib/hvqrurl catalogue-license lppl1.3 catalogue-topics qrcode -catalogue-version 0.05 +catalogue-version 0.05a name hwemoji category Package @@ -197829,7 +197829,7 @@ catalogue-version 1.2a name litetable category Package -revision 69647 +revision 69678 shortdesc Class schedules with colorful course blocks relocated 1 longdesc This template provides a beautiful design of class schedule @@ -197838,30 +197838,34 @@ longdesc template, or you have better suggestions or ideas, or you want longdesc to participate in the development of the template or other longdesc templates by me, welcome to contact via email longdesc xiamyphys@gmail.com. -containersize 3392 -containerchecksum fa750134e595ef86a464df3823ec6b4ca5b0d44697b1c284d6c092b82686b31a7cca44579fc90ee75bfeba8ab9f4f9a465e86ed4d1880dd90027d646702592e4 -doccontainersize 280936 -doccontainerchecksum fed95f9f059fd72ebae0023c75eaea34e6b59e93faed383b4fa5df7b267a8d4463a7c32f813fc64acb38f6a6b578048aac2228ed21e60a21c6ee09f8213c4a75 -docfiles size=104 +containersize 3564 +containerchecksum 2927310d9a44686923df0dde199c484586d3090596523bebbcbd02c7f1b35b9e0ec6a2c66e47f5cfe1c9d30dd6d0289650182895f0251ba87918a23cb04e6b68 +doccontainersize 379532 +doccontainerchecksum 74d2b845de5a16a98d5f77afd9222a5af7f47a169e8af39d8d0903421ce7aaba689e95d3187797f4cd9ee7df1d5fc80748267e8e71705ad5eb7a842184d1a0f4 +docfiles size=165 RELOC/doc/latex/litetable/License RELOC/doc/latex/litetable/README.md details="Readme" RELOC/doc/latex/litetable/favicon.png - RELOC/doc/latex/litetable/litetable-demo.pdf details="Example of use" - RELOC/doc/latex/litetable/litetable-demo.tex - RELOC/doc/latex/litetable/litetable-doc-cn.pdf details="Package documentation (Chinese)" language="zh" - RELOC/doc/latex/litetable/litetable-doc-cn.tex - RELOC/doc/latex/litetable/litetable-doc-en.pdf details="Package documentation (English)" - RELOC/doc/latex/litetable/litetable-doc-en.tex + RELOC/doc/latex/litetable/litetable-cn.pdf details="Package documentation (Chinese)" language="zh" + RELOC/doc/latex/litetable/litetable-cn.tex + RELOC/doc/latex/litetable/litetable-demo1.pdf details="Example of use 1" + RELOC/doc/latex/litetable/litetable-demo1.tex + RELOC/doc/latex/litetable/litetable-demo2.pdf details="Example of use 2" + RELOC/doc/latex/litetable/litetable-demo2.tex + RELOC/doc/latex/litetable/litetable-en.pdf details="Package documentation (English)" + RELOC/doc/latex/litetable/litetable-en.tex runfiles size=3 RELOC/tex/latex/litetable/litetable.cls +catalogue-contact-announce https://qm.qq.com/q/RGFmHwBecC catalogue-contact-bugs https://github.com/xiamyphys/LiteTable/issues catalogue-contact-development https://github.com/xiamyphys +catalogue-contact-home https://github.com/xiamyphys/LiteTable catalogue-contact-repository https://github.com/xiamyphys/LiteTable catalogue-contact-support https://qm.qq.com/q/RGFmHwBecC catalogue-ctan /macros/latex/contrib/litetable catalogue-license lppl1.3c catalogue-topics table class doc-templ -catalogue-version 2.2a +catalogue-version 2.3a name lithuanian category Package @@ -225399,7 +225403,7 @@ catalogue-version 2.3a name morewrites category Package -revision 69306 +revision 69679 shortdesc Always room for a new write stream relocated 1 longdesc The package aims to solve the error "No room for a new \write", @@ -225410,16 +225414,16 @@ longdesc package hooks into TeX primitive commands associated with longdesc writing to files; it should be loaded near the beginning of the longdesc sequence of loading packages for a document. The package uses longdesc the l3kernel bundle. -containersize 5800 -containerchecksum 9618e04c51865b275ab262d0e95806a7fbbffb4f6063b87644f3111760c591be6b3f8684fe72b5fdf0ea3dd6e034f88d5fef0f9c378e31bf44617727a76b98d5 -doccontainersize 1254088 -doccontainerchecksum 389828d2a8fdbd9f9b5f20f3c71654f4d23e9d23e5af8d98904b35bb8d8d939f4641bf74d43e3035ff73310f0324f21a47d56cf6065af1d04d96f34418ba1157 -docfiles size=340 +containersize 5852 +containerchecksum 738ea602368142999aa6f5d99226767fe9d6613b3e5d58687d787e8e470bfbff3ec2fcabeb5931454754ad80661a5925f337ba600fa62f021ae99363451c4c75 +doccontainersize 1254560 +doccontainerchecksum a8aad8b575785ee7b36f6946ea2228c507745c4f7ca61e05e46c9b0824e84880e355264e45540b61022010943f2cd63cf051ed1d4b9b438a6eceac840cb2e6d4 +docfiles size=341 RELOC/doc/latex/morewrites/README.md details="Readme" RELOC/doc/latex/morewrites/morewrites.pdf details="Package documentation" RELOC/doc/latex/morewrites/primargs.pdf -srccontainersize 20612 -srccontainerchecksum 2794f2571cc3158f92453a229d088f24002ba893758f521da13b1229c67de24573752c07f03a894605704dfa19a73791903055582fc1729814a350c09b0735fa +srccontainersize 20660 +srccontainerchecksum e3db6542cdd4548e0a9fa10a40b333e48ad4ab713acf8f38389f8ebe5113b598f647e9eb11047339ae09ae344aa22ea3ccc0f782c35dca2552fdf8707d4926c8 srcfiles size=23 RELOC/source/latex/morewrites/morewrites.dtx RELOC/source/latex/morewrites/morewrites.ins @@ -271493,7 +271497,7 @@ catalogue-version 1.31 name pst-solarsystem category Package -revision 69627 +revision 69675 shortdesc Plot the solar system for a specific date relocated 1 longdesc The package uses pstricks to produce diagrams of the visible @@ -271503,10 +271507,10 @@ longdesc proportions, so only Mercury, Venus, Earth and Mars have their longdesc orbits in correct proportions and their relative sizes are longdesc observed. Saturn and Jupiter are in the right direction, but longdesc not in the correct size. -containersize 5156 -containerchecksum ef038925bd5f86ccd74d9a64ade2dd4f615e73cb9dbfed2c7d737cc955625aacb30dcc992af6187040d52c0847e525d47b2e1dafbe724902f1a07c5a4e4ac78e -doccontainersize 454548 -doccontainerchecksum 49f3bd1b40326c5404abf2514a956afc4a2d82025144e70e59b54c051746bd70fb16a760d9cd06dbf74c087b1e83adbd4fa82bf7bbfe89d2d26d6f8afe6636ff +containersize 5172 +containerchecksum 8c977113eb47ea9139cdffe297f0b4e333ddddd5c7f54e2cab2dc29d65c11616e938d9d79a4362901b1715ca9be104ecb6eb72f43b779cb11644520306d8ba7b +doccontainersize 466476 +doccontainerchecksum 3714132e0ed6d7fecad9215e6ec13af2a74576c43b21faa746adc6caeba16af479e9f35c7d3948ca69a82092d8d6ad2ca07b1b3ba9614dfdd043db1c57cfbd0e docfiles size=138 RELOC/doc/generic/pst-solarsystem/Changes RELOC/doc/generic/pst-solarsystem/README details="Readme" @@ -271520,7 +271524,7 @@ runfiles size=6 catalogue-ctan /graphics/pstricks/contrib/pst-solarsystem catalogue-license lppl catalogue-topics astronomy pstricks -catalogue-version 0.14 +catalogue-version 0.15 name pst-solides3d category Package @@ -272338,7 +272342,7 @@ catalogue-version 1.5e name pstricks category Package -revision 68767 +revision 69674 catalogue pstricks-base shortdesc PostScript macros for TeX relocated 1 @@ -272358,11 +272362,11 @@ longdesc pdftricks package, to generate a PDF inclusion from a PSTricks longdesc diagram. PSTricks macros can also generate PDF output when the longdesc document is processed XeTeX, without the need for other longdesc supporting packages. -containersize 88036 -containerchecksum 606b1b487d523253c71d814289ccef2fe9c91c091f7b588fc842b2121da3ec592387774565b3e998c44bbf0ef17df0dd2207f632ceb8bb04df8f8b203603c4d4 -doccontainersize 7657460 -doccontainerchecksum 5df5f84afd8793de4201738a032df4c95ec017c67fe19966d908221e3ff69e77589f051232d1fa8fce7f15fe5702ec3abb6080f4676c2a31671543933ed32ed9 -docfiles size=2343 +containersize 88080 +containerchecksum 8c9d0a2c8355a338f459a34dee22893acd54fc314ef588a8fc6a727f4dc0d6fc34e64059479c096e490bb2c90d627b555d5052cbf871089099acd18fff0cebfd +doccontainersize 7531396 +doccontainerchecksum 10946b40abd2e00549abdc0e3d9067c74756785571b4f75f6baf6e6155f90087cba7eb35427f159571a04ba92e1819cf92ad12d9b4b02119ab957bb4b77da1d9 +docfiles size=2321 RELOC/doc/generic/pstricks/PSTricks.bib RELOC/doc/generic/pstricks/README details="Readme" RELOC/doc/generic/pstricks/ctandir.sty @@ -272408,14 +272412,14 @@ docfiles size=2343 RELOC/doc/generic/pstricks/pst-news21.tex RELOC/doc/generic/pstricks/pst-news22.pdf RELOC/doc/generic/pstricks/pst-news22.tex - RELOC/doc/generic/pstricks/pst-news23.pdf details="Latest news bulletin" + RELOC/doc/generic/pstricks/pst-news23.pdf RELOC/doc/generic/pstricks/pst-news23.tex + RELOC/doc/generic/pstricks/pst-news24.pdf details="Latest news bulletin" + RELOC/doc/generic/pstricks/pst-news24.tex RELOC/doc/generic/pstricks/pst-user.pdf details="Package documentation" RELOC/doc/generic/pstricks/pst-user.tgz RELOC/doc/generic/pstricks/pstricks-bug.tex RELOC/doc/generic/pstricks/pstricks-doc.pdf - RELOC/doc/generic/pstricks/test-pst.pdf - RELOC/doc/generic/pstricks/test-pst.tex runfiles size=130 RELOC/dvips/pstricks/pst-algparser.pro RELOC/dvips/pstricks/pst-dots.pro @@ -272454,7 +272458,7 @@ catalogue-contact-support https://tug.org/mailman/listinfo/pstricks catalogue-ctan /graphics/pstricks/base catalogue-license lppl1.3 catalogue-topics graphics-in-tex colour pstricks dvips-special xetex -catalogue-version 3.19b +catalogue-version 3.19c name pstricks-add category Package @@ -279547,7 +279551,7 @@ catalogue-version 2.0e name refstyle category Package -revision 69648 +revision 69680 shortdesc Advanced formatting of cross references relocated 1 longdesc The package provides a consistent way of producing references @@ -279561,16 +279565,16 @@ longdesc incorporated with ease. For large projects such as a series of longdesc books or a multi volume thesis, written as freestanding longdesc documents, a facility is provided to interface to the xr longdesc package for external document references. -containersize 6136 -containerchecksum e1350a3a6aa152b26cbab3edd2c3fd7a9e903b712df82428198432439751a8c5147bbb8d6dd29d7328f4cd9a3f18396a17dd85298ca383e0b05f0f3ae2195b5f -doccontainersize 736692 -doccontainerchecksum 81ea37728ad579784f8400ddde08f68a634e4041fe7adaf980d4a84587054a13610f47ec38c4822ca609eb8a7bf339ddb2e88f8ac8a15351007df0a0efd1335c -docfiles size=195 +containersize 6108 +containerchecksum 05e95688dfa1e8a8a3be6937cf5c36c315371b66c14d5dc0e51862db7a5aa0307bda55848806c259b68be64bf2b36e6cdf6c328b41b84f839ec67abf2fa949dd +doccontainersize 735800 +doccontainerchecksum 6b71671a5a7b472823e805f5559acdfbab76bbc06a063c7efec468122b3884dbe5a6229c5ed7ab4c0e1aecd304c3333a58fc5c75c22a66739fe0ca16b5c686b9 +docfiles size=194 RELOC/doc/latex/refstyle/README RELOC/doc/latex/refstyle/refconfig.pdf details="Configuration manual" RELOC/doc/latex/refstyle/refstyle.pdf details="Users manual" -srccontainersize 21792 -srccontainerchecksum c11dde33da46f3f01963d12b08ecc27cc91c876bbffea65d44d8ef5487b7d62d97ce6d7540bc42b302e1b73a25c8ee9a30ad80eb8209ef96e7de4c2117a2bfb4 +srccontainersize 21784 +srccontainerchecksum 60064112f68bf18d55c328da986c852b23fd2a9e8082221d4b4b29d901fe37de8c2ab5b9b21701e0db8ca2189945c25bd661ab9ae5a425351a3197bc0a528c27 srcfiles size=28 RELOC/source/latex/refstyle/refconfig.dtx RELOC/source/latex/refstyle/refstyle.dtx @@ -279581,7 +279585,7 @@ runfiles size=8 catalogue-ctan /macros/latex/contrib/refstyle catalogue-license lppl catalogue-topics label-ref -catalogue-version 0.6 +catalogue-version 0.6b name regcount category Package @@ -294487,7 +294491,7 @@ catalogue-version 1.6a name simpleicons category Package -revision 69598 +revision 69673 shortdesc Simple Icons for LaTeX relocated 1 longdesc Similar to FontAwesome icons being provided on LaTeX by the @@ -294495,16 +294499,16 @@ longdesc fontawesome package, this package aims to do the same with longdesc Simple Icons. For reference, visit their website: longdesc https://simpleicons.org/. execute addMap simpleicons.map -containersize 3364016 -containerchecksum 70118cad52f554e7a1fe911d7a8946d72b88be7fe98e027f2ba3896141248d97aec8b9f30605bea12e1dd0966ad3df84aead31c8fa6fa133c48d0779190318dd -doccontainersize 2459888 -doccontainerchecksum 63ff5b32ca1ad4c06e1f0777ef1e109523c93eec850b62d0cdb273bc1c3f1ee505d598c0f61cbca5c535f854b69845dd920e3f64f7133923504d08b0fb3d29d0 -docfiles size=642 +containersize 3372044 +containerchecksum a45e21781422a9ca5495917c81367ed97cfd4a9c2614656ac4f67c9711cab9dca87cc12e54ed67a7c69174ec384dae2a3a9c313b053ac5dc8576ca44ce515e0e +doccontainersize 2465532 +doccontainerchecksum d1c1644f4d327db3013d1abdaeb4bae5a3ce0cc223a6b4c962bd7bb00a1b6a8ec50f9fe5184b2e96f752aa6b31fbca018944209b7019f4b614b8b53061ec7759 +docfiles size=644 RELOC/doc/fonts/simpleicons/README.md details="Readme" RELOC/doc/fonts/simpleicons/bindings.tex RELOC/doc/fonts/simpleicons/simpleicons.pdf details="Package documentation" RELOC/doc/fonts/simpleicons/simpleicons.tex -runfiles size=1289 +runfiles size=1293 RELOC/fonts/enc/dvips/simpleicons/simpleiconseight.enc RELOC/fonts/enc/dvips/simpleicons/simpleiconsfive.enc RELOC/fonts/enc/dvips/simpleicons/simpleiconsfour.enc @@ -294552,7 +294556,7 @@ catalogue-contact-repository https://github.com/ineshbose/simple-icons-latex catalogue-ctan /fonts/simpleicons catalogue-license cc-by-1 catalogue-topics font font-symbol font-supp-symbol font-otf font-type1 -catalogue-version 11.2.0 +catalogue-version 11.3.0 name simpleinvoice category Package @@ -323304,7 +323308,7 @@ binfiles arch=x86_64-solaris size=1 name texdoc category TLCore -revision 66227 +revision 69672 shortdesc Documentation access for TeX Live longdesc texdoc is a Lua script providing easy access to the longdesc documentation in TeX Live: PDF, DVI, plain text files, and @@ -323314,10 +323318,10 @@ longdesc program by the same name to do the same job, but its longdesc implementation is unrelated. depend kpathsea depend texdoc.ARCH -containersize 29668 -containerchecksum 02e7d23e20983f96d05725eb91a4f8bed6bdad0051e9f3c152f945e22255c70e7c0b2d93eeca1fdbbc2ca550a7a15d46540ecbb383575b03a4da9bfcea4e42aa -doccontainersize 140932 -doccontainerchecksum 80ddcd5d32e02ac87ebba175b3f2e253ca02daf70e38ec5a6db1a0e595349ad33d6b7cf7e95f8af7de621600a58b952927edde04319adec13fa139fa0b634970 +containersize 29860 +containerchecksum 523fe734969fd9553221825d5722c7606bc2312c5134a1718f1651044c753906a3e095c56c09c0d6e533379e13602e5a99ad8d14e33e8f40a9b8232d068020df +doccontainersize 140724 +doccontainerchecksum ff22900ed4674e4eba80fcbe28c7d4d9eade4a671e04f6854eaddecf5d690751a3b5dc300024ed5da610c1b14017fa6633e86bb0b071b699ce512045180330d5 docfiles size=54 texmf-dist/doc/man/man1/texdoc.1 texmf-dist/doc/man/man1/texdoc.man1.pdf @@ -323347,7 +323351,7 @@ catalogue-contact-support https://lists.tug.org/texdoc catalogue-ctan /support/texdoc catalogue-license gpl catalogue-topics view-doc -catalogue-version 4.0.1 +catalogue-version 4.0.2 name texdoc.aarch64-linux category TLCore @@ -324414,7 +324418,7 @@ docfiles size=376 name texlive-scripts category TLCore -revision 69655 +revision 69669 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. @@ -324422,10 +324426,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 114060 -containerchecksum f9a48dddbb6826998d1e55f3ebac8640b1bba0e89bfe96dac30802985aca304f1327d25977e1f2831eebf2fedba9fb6676dc86db31f6154bc0aa29e123381b69 -doccontainersize 431832 -doccontainerchecksum b5b62c29388a701306293daa087735823c4bd0afd88484c799a2c25a39e2b87a8999716640c1081cae7278c798bfd92c1309b8f6ea1e2a321dcebc0a12d97a8e +containersize 114064 +containerchecksum 02b2cde0164aac5a7b86424971d616d026b992132c4a8740f468c8215440553ce33bb50b23419808e23e9403c1b8455aa18edd8ecbca653738da5a3e121a0ef0 +doccontainersize 432056 +doccontainerchecksum 0070e89a7a1730a03ebf433e68efc609de274aab03388338866293093080d475b2758e687058293ab78747d3ddc2b09b610092607374598398d9e6bce392b252 docfiles size=563 doc.html texmf-dist/doc/man/man1/fmtutil-sys.1 @@ -349148,7 +349152,7 @@ catalogue-version 2.1 name unbtex category Package -revision 69307 +revision 69681 shortdesc A class for theses at University of Brasilia (UnB) relocated 1 longdesc This package provides a class based on abnTeX and compatible @@ -349159,11 +349163,11 @@ longdesc theses for undergraduate and graduate programs at UnB. The longdesc documentation for the class and the comments in the templates longdesc are all written in Portuguese, the language of the target longdesc audience. -containersize 19092 -containerchecksum dcc212b6a524f9634a686a78f2ec6d3cf357afe966378adc6010be11597912015f5b22388656068476b4de0f24e7fdfeab78003f43570890028654a937be0af0 -doccontainersize 650028 -doccontainerchecksum 84df2e08d77cad569a4256b615e739996580acf12c7e3c62a0789ee553a84ac0dedf983a77e7d2b96e26b9dd96c0c43940c1c0644babd945770c74f54e4a9923 -docfiles size=242 +containersize 9488 +containerchecksum b5a94f381b12804782a5a9a9bbfc71aba77e7ae1fbb2d17461a358082429d063999fcd4f455d6699254f184aaa3178b56928b16d75ab11bfdf62ac447abd38da +doccontainersize 648772 +doccontainerchecksum de566d6be4b48d463a87209475486e4b78ac13c587c0514ed43f2e7249f640e69cd672e664ea39d28fdaabbf05ff19c61c8868829e6d0b1bf322c3fe9a595f2e +docfiles size=301 RELOC/doc/latex/unbtex/README.md details="Readme" RELOC/doc/latex/unbtex/unbtex-example.pdf details="Example of use" language="pt-br" RELOC/doc/latex/unbtex/unbtex-example.tex @@ -349181,22 +349185,24 @@ docfiles size=242 RELOC/doc/latex/unbtex/unbtex-example/codigos/controle.m RELOC/doc/latex/unbtex/unbtex-example/codigos/controleSmithPredictor.py RELOC/doc/latex/unbtex/unbtex-example/figuras/1280px-LaTeX-logo.png + RELOC/doc/latex/unbtex/unbtex-example/figuras/blockdiagram.eps RELOC/doc/latex/unbtex/unbtex-example/figuras/blockdiagram.pdf - RELOC/doc/latex/unbtex/unbtex-example/figuras/blockdiagramfrag.eps RELOC/doc/latex/unbtex/unbtex-example/figuras/bodediagram.pdf RELOC/doc/latex/unbtex/unbtex-example/figuras/capa_fundo.pdf RELOC/doc/latex/unbtex/unbtex-example/figuras/circuito.pdf RELOC/doc/latex/unbtex/unbtex-example/figuras/coresunb.pdf RELOC/doc/latex/unbtex/unbtex-example/figuras/diodocurva.pdf RELOC/doc/latex/unbtex/unbtex-example/referencias.bib -runfiles size=36 - RELOC/bibtex/bst/unbtex/unbtexcite-en.bst - RELOC/bibtex/bst/unbtex/unbtexcite-pt.bst + RELOC/doc/latex/unbtex/unbtexcite/unbtex-alf-en.bst + RELOC/doc/latex/unbtex/unbtexcite/unbtex-alf-pt.bst + RELOC/doc/latex/unbtex/unbtexcite/unbtex-num-en.bst + RELOC/doc/latex/unbtex/unbtexcite/unbtex-num-pt.bst +runfiles size=9 RELOC/tex/latex/unbtex/unbtex.cls catalogue-ctan /macros/latex/contrib/unbtex catalogue-license lppl1.3 catalogue-topics class doc-templ dissertation portuguese-br -catalogue-version 1.4.4 +catalogue-version 1.5 name undar-digitacion category Package diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 index 0442e89ba6..70f82487aa 100644 --- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 @@ -1 +1 @@ -40afbc40af7f1f8a59923fdb66edf758 texlive.tlpdb +f2dd87ab2592bcc5e86b5281c98693df texlive.tlpdb diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 index 762a739f66..005f7f73ca 100644 --- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 @@ -1 +1 @@ -7c4724d9e917ec266a52f4f1250801b2b64283df288baeb817ca76b881d828e911c2837c694070409299afa2fb842dce5c220aa5b23f9f96c30cd0790164647d texlive.tlpdb +1c50ef4380358bf9c7c506f914e8d09b917bdaf5cae3ca2aaa3dab751ccfd21ef7ec1ce2fa1fe16981c5f6778e6fe4cee061a9e5d0442f18afa801352db00cd3 texlive.tlpdb diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc index 1c8c2e1032..f189b50ba9 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+QqiBBqTOGHfhlDjHAFAmW8O4kACgkQTOGHfhlD -jHAWiwgApfMZQ7+R+0o3mvR8VDD9x7PfRZq3d0cTGIk9gY9gvKRv2K4y/6Wu6VOm -QZFNjJF/tVa5VCe1cS3YclK4xjT4D9OTWpZjyTsPQU538z1GDHco9Bg1NT8Tt56o -NXLOWGXzbXjtVNglpbpFXzC0an0qXi3CcUAveQrpy40vGWnj5wpY6m4ZIKrOeo/4 -v7x45PyWmvXWHYQnG192ELBfbboqUzMhkIzBIq03MZLFWX5KZjfh9g7TxR/TcaZ5 -3Xg02cVD5COR2HizBWUveTCM1rwqaJCzraHbmKB6ZngrWUGBI5/GBrDnxcxNmMSf -esMWwi6QFGNMoW61Hzfjg/fJ2FTHgw== -=TDl7 +iQEzBAEBCgAdFiEE2PL4YFeoV+QqiBBqTOGHfhlDjHAFAmW9jNMACgkQTOGHfhlD +jHAFgAf/cOMI4FC9P+qXhjETVnoM9nKJOOZdxGcKfiTieibJhC0xCHJWya23Dpul +mC51hXP75/ITMO/wJ1wGJfdOXxS7sFyLX9oU/48GC0yK1Zk7I7kNuuyf63OdDh3H +fgN3jgVSFGNUS72oi5FBq1IF85yCocLp4xhZs15vMEiXswiJTLVSpXe8jAigI5z8 ++dDoQM4bjV3u2sMbccYit//tD4xeqT+qNkJ7hWufpUpNB1Qq8eQrXaFVaewHre2o +hA/23C6AB9vXrUXmUw4YzdSwQHVTwOiNB8c/n6CqgjfFQRjE6B7vOMHCZK9q0Vnh +qXhMBRePdl5Ilcv3K6UIZKE7p+rTdQ== +=JfCH -----END PGP SIGNATURE----- diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz Binary files differindex 6c51d5031a..71183654e4 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-03-02-02 +2024-02-04-02-02 |