From b3472831ddfd1931359464019cc964efeac20d94 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sat, 9 Apr 2022 03:00:48 +0000 Subject: CTAN sync 202204090300 --- FILES.byname | 571 +++++++------ FILES.byname.gz | Bin 2417355 -> 2417387 bytes FILES.last07days | 547 ++++++------ graphics/pgf/contrib/messagepassing/README.md | 28 + .../pgf/contrib/messagepassing/messagepassing.dtx | 861 +++++++++++++++++++ .../pgf/contrib/messagepassing/messagepassing.ins | 49 ++ .../pgf/contrib/messagepassing/messagepassing.pdf | Bin 0 -> 267669 bytes graphics/pgf/contrib/robotarm/README.md | 3 + graphics/pgf/contrib/robotarm/robotarm.dtx | 940 +++++++++++++++++++++ graphics/pgf/contrib/robotarm/robotarm.pdf | Bin 0 -> 185467 bytes graphics/pgf/contrib/robotarm/robotarm.sty | 375 ++++++++ macros/generic/ifptex/LICENSE | 2 +- macros/generic/ifptex/README-ja.md | 12 + macros/generic/ifptex/README.md | 13 + macros/generic/ifptex/ifptex.sty | 155 +++- macros/generic/ifptex/ifuptex.sty | 4 +- macros/latex/contrib/bithesis/README-zh.md | 88 -- macros/latex/contrib/bithesis/README.md | 5 +- macros/latex/contrib/bithesis/bithesis.dtx | 915 +++++++++++++++++++- macros/latex/contrib/bithesis/bithesis.ins | 6 +- macros/latex/contrib/bithesis/bithesis.pdf | Bin 252958 -> 339647 bytes macros/latex/contrib/bithesis/contributing-zh.md | 22 +- macros/latex/contrib/bithesis/contributing.md | 20 +- macros/latex/contrib/messagepassing/README.md | 28 - .../contrib/messagepassing/messagepassing.dtx | 861 ------------------- .../contrib/messagepassing/messagepassing.ins | 49 -- .../contrib/messagepassing/messagepassing.pdf | Bin 267669 -> 0 bytes macros/latex/contrib/robotarm/README.md | 3 - macros/latex/contrib/robotarm/robotarm.dtx | 940 --------------------- macros/latex/contrib/robotarm/robotarm.pdf | Bin 185467 -> 0 bytes macros/latex/contrib/robotarm/robotarm.sty | 375 -------- macros/texinfo/latest/texi2dvi | 51 +- .../texlive/tlnet/tlpkg/installer/ctan-mirrors.pl | 2 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb | 80 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 | 2 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 | 2 +- .../texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc | 14 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz | Bin 2366944 -> 2365564 bytes systems/win32/miktex/tm/packages/next/pr.ini | 8 +- systems/win32/miktex/tm/packages/pr.ini | 8 +- timestamp | 2 +- 41 files changed, 3940 insertions(+), 3101 deletions(-) create mode 100644 graphics/pgf/contrib/messagepassing/README.md create mode 100644 graphics/pgf/contrib/messagepassing/messagepassing.dtx create mode 100644 graphics/pgf/contrib/messagepassing/messagepassing.ins create mode 100644 graphics/pgf/contrib/messagepassing/messagepassing.pdf create mode 100644 graphics/pgf/contrib/robotarm/README.md create mode 100644 graphics/pgf/contrib/robotarm/robotarm.dtx create mode 100644 graphics/pgf/contrib/robotarm/robotarm.pdf create mode 100644 graphics/pgf/contrib/robotarm/robotarm.sty delete mode 100644 macros/latex/contrib/bithesis/README-zh.md delete mode 100644 macros/latex/contrib/messagepassing/README.md delete mode 100644 macros/latex/contrib/messagepassing/messagepassing.dtx delete mode 100644 macros/latex/contrib/messagepassing/messagepassing.ins delete mode 100644 macros/latex/contrib/messagepassing/messagepassing.pdf delete mode 100644 macros/latex/contrib/robotarm/README.md delete mode 100644 macros/latex/contrib/robotarm/robotarm.dtx delete mode 100644 macros/latex/contrib/robotarm/robotarm.pdf delete mode 100644 macros/latex/contrib/robotarm/robotarm.sty diff --git a/FILES.byname b/FILES.byname index 3642367cc4..e4eabdf76a 100644 --- a/FILES.byname +++ b/FILES.byname @@ -5228,7 +5228,7 @@ 1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp 1990/10/02 | 812 | dviware/vutex/vaxvms.ins 1990/10/02 | 127576 | dviware/vutex/vutex.web -2022/04/07 | 264184 | FILES.last07days +2022/04/08 | 265043 | 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 @@ -155517,6 +155517,11 @@ 2019/01/06 | 9738 | graphics/pgf/contrib/memorygraphs/memorygraphs.tex 2018/12/26 | 1137 | graphics/pgf/contrib/memorygraphs/README.md 2019/01/07 | 191551 | graphics/pgf/contrib/memorygraphs.zip +2022/03/09 | 29299 | graphics/pgf/contrib/messagepassing/messagepassing.dtx +2022/03/09 | 1446 | graphics/pgf/contrib/messagepassing/messagepassing.ins +2022/03/09 | 267669 | graphics/pgf/contrib/messagepassing/messagepassing.pdf +2022/03/09 | 1314 | graphics/pgf/contrib/messagepassing/README.md +2022/03/09 | 275022 | graphics/pgf/contrib/messagepassing.zip 2019/06/17 | 265 | graphics/pgf/contrib/milsymb/LICENCE.md 2019/06/17 | 591878 | graphics/pgf/contrib/milsymb/manual_examples/772px-1st_Marine_Division_insignia.png 2019/06/17 | 7435 | graphics/pgf/contrib/milsymb/manual_examples/mef.tex @@ -155987,6 +155992,11 @@ 2014/08/13 | 21605 | graphics/pgf/contrib/reotex/reotex.sty 2012/01/05 | 25303 | graphics/pgf/contrib/reotex/reotex.tex 2014/08/13 | 203360 | graphics/pgf/contrib/reotex.zip +2022/03/08 | 141 | graphics/pgf/contrib/robotarm/README.md +2022/03/08 | 32388 | graphics/pgf/contrib/robotarm/robotarm.dtx +2022/03/08 | 185467 | graphics/pgf/contrib/robotarm/robotarm.pdf +2022/03/08 | 13464 | graphics/pgf/contrib/robotarm/robotarm.sty +2022/03/08 | 193038 | graphics/pgf/contrib/robotarm.zip 2013/12/11 | 465 | graphics/pgf/contrib/rulercompass/README 2013/12/11 | 262114 | graphics/pgf/contrib/rulercompass/rulercompass_doc.pdf 2013/12/11 | 19488 | graphics/pgf/contrib/rulercompass/rulercompass_doc.tex @@ -199976,12 +199986,12 @@ 1993/02/18 | 3025 | macros/generic/hyacc-cm/hymaster.tex 1992/09/10 | 3427 | macros/generic/hyacc-cm/hytstfr.tex 2009/01/04 | 20202 | macros/generic/hyacc-cm.zip -2021/07/02 | 9394 | macros/generic/ifptex/ifptex.sty -2021/07/02 | 1754 | macros/generic/ifptex/ifuptex.sty -2021/07/02 | 1091 | macros/generic/ifptex/LICENSE -2021/07/02 | 4016 | macros/generic/ifptex/README-ja.md -2021/07/02 | 3266 | macros/generic/ifptex/README.md -2021/07/03 | 7418 | macros/generic/ifptex.zip +2022/04/04 | 12760 | macros/generic/ifptex/ifptex.sty +2022/04/04 | 1754 | macros/generic/ifptex/ifuptex.sty +2022/04/04 | 1091 | macros/generic/ifptex/LICENSE +2022/04/04 | 4752 | macros/generic/ifptex/README-ja.md +2022/04/04 | 3933 | macros/generic/ifptex/README.md +2022/04/08 | 8841 | macros/generic/ifptex.zip 2022/02/04 | 529 | macros/generic/iftex/ifetex.sty 2022/02/04 | 492 | macros/generic/iftex/ifluatex.sty 2022/02/04 | 480 | macros/generic/iftex/ifpdf.sty @@ -206588,14 +206598,13 @@ 2001/08/18 | 135415 | macros/latex/contrib/biocon/source.pdf 2001/08/18 | 23396 | macros/latex/contrib/biocon/source.tex 2005/04/30 | 295813 | macros/latex/contrib/biocon.zip -2021/09/07 | 27780 | macros/latex/contrib/bithesis/bithesis.dtx -2021/09/07 | 3168 | macros/latex/contrib/bithesis/bithesis.ins -2021/09/07 | 252958 | macros/latex/contrib/bithesis/bithesis.pdf -2021/09/07 | 2595 | macros/latex/contrib/bithesis/contributing.md -2021/09/07 | 3005 | macros/latex/contrib/bithesis/contributing-zh.md -2021/09/07 | 5118 | macros/latex/contrib/bithesis/README.md -2021/09/07 | 4316 | macros/latex/contrib/bithesis/README-zh.md -2021/09/08 | 265166 | macros/latex/contrib/bithesis.zip +2022/04/08 | 56038 | macros/latex/contrib/bithesis/bithesis.dtx +2022/04/08 | 3303 | macros/latex/contrib/bithesis/bithesis.ins +2022/04/08 | 339647 | macros/latex/contrib/bithesis/bithesis.pdf +2022/04/08 | 2332 | macros/latex/contrib/bithesis/contributing.md +2022/04/08 | 2649 | macros/latex/contrib/bithesis/contributing-zh.md +2022/04/08 | 5182 | macros/latex/contrib/bithesis/README.md +2022/04/08 | 356419 | macros/latex/contrib/bithesis.zip 2015/12/11 | 25038 | macros/latex/contrib/bitpattern/bitpattern.dtx 2015/12/11 | 1753 | macros/latex/contrib/bitpattern/bitpattern.ins 2015/12/11 | 175733 | macros/latex/contrib/bitpattern/bitpattern.pdf @@ -218934,11 +218943,6 @@ 2012/03/06 | 1321 | macros/latex/contrib/messagebubbles/messagebubbles-usage.tex 2012/03/06 | 372 | macros/latex/contrib/messagebubbles/README 2012/03/06 | 67330 | macros/latex/contrib/messagebubbles.zip -2022/03/09 | 29299 | macros/latex/contrib/messagepassing/messagepassing.dtx -2022/03/09 | 1446 | macros/latex/contrib/messagepassing/messagepassing.ins -2022/03/09 | 267669 | macros/latex/contrib/messagepassing/messagepassing.pdf -2022/03/09 | 1314 | macros/latex/contrib/messagepassing/README.md -2022/03/09 | 275022 | macros/latex/contrib/messagepassing.zip 2010/05/29 | 2879 | macros/latex/contrib/metalogo/graphics/eLaToutline.pdf 2010/05/29 | 2779 | macros/latex/contrib/metalogo/graphics/TeXoutline.pdf 2010/05/29 | 23896 | macros/latex/contrib/metalogo/metalogo.dtx @@ -224129,11 +224133,6 @@ 1997/10/10 | 54947 | macros/latex/contrib/rmpage/rmpgen.cfg 1997/10/10 | 55958 | macros/latex/contrib/rmpage/rmplocal.gfc 2019/06/09 | 640374 | macros/latex/contrib/rmpage.zip -2022/03/08 | 141 | macros/latex/contrib/robotarm/README.md -2022/03/08 | 32388 | macros/latex/contrib/robotarm/robotarm.dtx -2022/03/08 | 185467 | macros/latex/contrib/robotarm/robotarm.pdf -2022/03/08 | 13464 | macros/latex/contrib/robotarm/robotarm.sty -2022/03/08 | 193038 | macros/latex/contrib/robotarm.zip 2006/04/11 | 3004 | macros/latex/contrib/robustcommand/README 2006/04/11 | 4467 | macros/latex/contrib/robustcommand/robustcommand.dtx 2006/04/04 | 1957 | macros/latex/contrib/robustcommand/robustcommand.ins @@ -276600,8 +276599,8 @@ 2019/02/28 | 4585444 | systems/texlive/tlnet/archive/abntex2.doc.r49248.tar.xz 2019/02/28 | 29920 | systems/texlive/tlnet/archive/abntex2.r49248.tar.xz 2020/06/08 | 2800 | systems/texlive/tlnet/archive/abnt.r55471.tar.xz -2021/07/26 | 35013704 | systems/texlive/tlnet/archive/aboensis.doc.r60059.tar.xz -2021/07/26 | 96600 | systems/texlive/tlnet/archive/aboensis.r60059.tar.xz +2022/04/08 | 35013704 | systems/texlive/tlnet/archive/aboensis.doc.r62977.tar.xz +2022/04/08 | 96600 | systems/texlive/tlnet/archive/aboensis.r62977.tar.xz 2021/04/06 | 235812 | systems/texlive/tlnet/archive/abraces.doc.r58761.tar.xz 2021/04/06 | 3844 | systems/texlive/tlnet/archive/abraces.r58761.tar.xz 2019/02/28 | 146720 | systems/texlive/tlnet/archive/abstract.doc.r15878.tar.xz @@ -277108,7 +277107,7 @@ 2022/03/15 | 1034648 | systems/texlive/tlnet/archive/asymptote.armhf-linux.r62706.tar.xz 2019/02/28 | 526632 | systems/texlive/tlnet/archive/asymptote-by-example-zh-cn.doc.r15878.tar.xz 2019/02/28 | 388 | systems/texlive/tlnet/archive/asymptote-by-example-zh-cn.r15878.tar.xz -2022/03/09 | 2383372 | systems/texlive/tlnet/archive/asymptote.doc.r62530.tar.xz +2022/04/08 | 2383372 | systems/texlive/tlnet/archive/asymptote.doc.r62977.tar.xz 2019/02/28 | 373604 | systems/texlive/tlnet/archive/asymptote-faq-zh-cn.doc.r15878.tar.xz 2019/02/28 | 380 | systems/texlive/tlnet/archive/asymptote-faq-zh-cn.r15878.tar.xz 2022/03/10 | 1174236 | systems/texlive/tlnet/archive/asymptote.i386-cygwin.r62546.tar.xz @@ -277117,7 +277116,7 @@ 2022/03/21 | 1428832 | systems/texlive/tlnet/archive/asymptote.i386-solaris.r62823.tar.xz 2019/02/28 | 898452 | systems/texlive/tlnet/archive/asymptote-manual-zh-cn.doc.r15878.tar.xz 2019/02/28 | 400 | systems/texlive/tlnet/archive/asymptote-manual-zh-cn.r15878.tar.xz -2022/03/09 | 360716 | systems/texlive/tlnet/archive/asymptote.r62530.tar.xz +2022/04/08 | 360712 | systems/texlive/tlnet/archive/asymptote.r62977.tar.xz 2022/03/11 | 5460840 | systems/texlive/tlnet/archive/asymptote.universal-darwin.r62610.tar.xz 2022/03/09 | 7536576 | systems/texlive/tlnet/archive/asymptote.win32.r62530.tar.xz 2022/03/10 | 1163024 | systems/texlive/tlnet/archive/asymptote.x86_64-cygwin.r62545.tar.xz @@ -277167,9 +277166,9 @@ 2019/06/06 | 3176 | systems/texlive/tlnet/archive/aucklandthesis.r51323.tar.xz 2022/01/24 | 3324 | systems/texlive/tlnet/archive/augie.doc.r61719.tar.xz 2022/01/24 | 62124 | systems/texlive/tlnet/archive/augie.r61719.tar.xz -2019/02/28 | 318120 | systems/texlive/tlnet/archive/auncial-new.doc.r15878.tar.xz -2019/02/28 | 201360 | systems/texlive/tlnet/archive/auncial-new.r15878.tar.xz -2019/02/28 | 33688 | systems/texlive/tlnet/archive/auncial-new.source.r15878.tar.xz +2022/04/08 | 318124 | systems/texlive/tlnet/archive/auncial-new.doc.r62977.tar.xz +2022/04/08 | 201344 | systems/texlive/tlnet/archive/auncial-new.r62977.tar.xz +2022/04/08 | 33688 | systems/texlive/tlnet/archive/auncial-new.source.r62977.tar.xz 2019/02/28 | 69056 | systems/texlive/tlnet/archive/aurical.doc.r15878.tar.xz 2019/02/28 | 2446888 | systems/texlive/tlnet/archive/aurical.r15878.tar.xz 2019/02/28 | 1052 | systems/texlive/tlnet/archive/aurl.doc.r41853.tar.xz @@ -277828,8 +277827,8 @@ 2021/12/30 | 6024 | systems/texlive/tlnet/archive/biblatex-spbasic.r61439.tar.xz 2019/02/28 | 70196 | systems/texlive/tlnet/archive/biblatex-subseries.doc.r43330.tar.xz 2019/02/28 | 1384 | systems/texlive/tlnet/archive/biblatex-subseries.r43330.tar.xz -2022/03/21 | 513440 | systems/texlive/tlnet/archive/biblatex-swiss-legal.doc.r62856.tar.xz -2022/03/21 | 18148 | systems/texlive/tlnet/archive/biblatex-swiss-legal.r62856.tar.xz +2022/04/08 | 513436 | systems/texlive/tlnet/archive/biblatex-swiss-legal.doc.r62977.tar.xz +2022/04/08 | 18148 | systems/texlive/tlnet/archive/biblatex-swiss-legal.r62977.tar.xz 2021/03/07 | 469432 | systems/texlive/tlnet/archive/biblatex-trad.doc.r58169.tar.xz 2021/03/07 | 4192 | systems/texlive/tlnet/archive/biblatex-trad.r58169.tar.xz 2019/02/28 | 70876 | systems/texlive/tlnet/archive/biblatex-true-citepages-omit.doc.r44653.tar.xz @@ -278013,8 +278012,8 @@ 2022/01/20 | 693808 | systems/texlive/tlnet/archive/bodeplot.doc.r61661.tar.xz 2022/01/20 | 4712 | systems/texlive/tlnet/archive/bodeplot.r61661.tar.xz 2022/01/20 | 14808 | systems/texlive/tlnet/archive/bodeplot.source.r61661.tar.xz -2020/03/24 | 424416 | systems/texlive/tlnet/archive/bohr.doc.r54512.tar.xz -2020/03/24 | 3644 | systems/texlive/tlnet/archive/bohr.r54512.tar.xz +2022/04/08 | 424416 | systems/texlive/tlnet/archive/bohr.doc.r62977.tar.xz +2022/04/08 | 3652 | systems/texlive/tlnet/archive/bohr.r62977.tar.xz 2019/02/28 | 939068 | systems/texlive/tlnet/archive/boisik.doc.r15878.tar.xz 2019/02/28 | 215572 | systems/texlive/tlnet/archive/boisik.r15878.tar.xz 2019/02/28 | 273004 | systems/texlive/tlnet/archive/boites.doc.r32235.tar.xz @@ -278566,11 +278565,11 @@ 2019/02/28 | 7036 | systems/texlive/tlnet/archive/churchslavonic.r42751.tar.xz 2020/03/24 | 39128 | systems/texlive/tlnet/archive/cinzel.doc.r54512.tar.xz 2020/03/24 | 533316 | systems/texlive/tlnet/archive/cinzel.r54512.tar.xz -2019/02/28 | 207692 | systems/texlive/tlnet/archive/circ.doc.r15878.tar.xz +2022/04/08 | 207696 | systems/texlive/tlnet/archive/circ.doc.r62977.tar.xz 2021/06/17 | 429072 | systems/texlive/tlnet/archive/circledsteps.doc.r59608.tar.xz 2021/06/17 | 1916 | systems/texlive/tlnet/archive/circledsteps.r59608.tar.xz -2019/02/28 | 23692 | systems/texlive/tlnet/archive/circ.r15878.tar.xz -2019/02/28 | 38440 | systems/texlive/tlnet/archive/circ.source.r15878.tar.xz +2022/04/08 | 23672 | systems/texlive/tlnet/archive/circ.r62977.tar.xz +2022/04/08 | 38440 | systems/texlive/tlnet/archive/circ.source.r62977.tar.xz 2022/02/05 | 1598224 | systems/texlive/tlnet/archive/circuitikz.doc.r61873.tar.xz 2022/02/05 | 156436 | systems/texlive/tlnet/archive/circuitikz.r61873.tar.xz 2022/02/13 | 2327636 | systems/texlive/tlnet/archive/circuit-macros.doc.r61987.tar.xz @@ -282381,8 +282380,8 @@ 2019/02/28 | 3901808 | systems/texlive/tlnet/archive/iwona.r19611.tar.xz 2019/02/28 | 13880 | systems/texlive/tlnet/archive/jablantile.doc.r16364.tar.xz 2019/02/28 | 3672 | systems/texlive/tlnet/archive/jablantile.r16364.tar.xz -2019/04/09 | 1131916 | systems/texlive/tlnet/archive/jacow.doc.r50870.tar.xz -2019/04/09 | 6216 | systems/texlive/tlnet/archive/jacow.r50870.tar.xz +2022/04/08 | 1131916 | systems/texlive/tlnet/archive/jacow.doc.r62977.tar.xz +2022/04/08 | 6204 | systems/texlive/tlnet/archive/jacow.r62977.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/jadetex.aarch64-linux.r46208.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/jadetex.amd64-freebsd.r16472.tar.xz 2019/02/28 | 340 | systems/texlive/tlnet/archive/jadetex.amd64-netbsd.r30191.tar.xz @@ -282598,8 +282597,8 @@ 2022/03/21 | 12961800 | systems/texlive/tlnet/archive/koma-script.r62874.tar.xz 2019/02/28 | 37524 | systems/texlive/tlnet/archive/koma-script-sfs.doc.r26137.tar.xz 2019/02/28 | 3400 | systems/texlive/tlnet/archive/koma-script-sfs.r26137.tar.xz -2022/04/06 | 539196 | systems/texlive/tlnet/archive/kotex-oblivoir.doc.r62924.tar.xz -2022/04/06 | 43340 | systems/texlive/tlnet/archive/kotex-oblivoir.r62924.tar.xz +2022/04/08 | 539260 | systems/texlive/tlnet/archive/kotex-oblivoir.doc.r62977.tar.xz +2022/04/08 | 43412 | systems/texlive/tlnet/archive/kotex-oblivoir.r62977.tar.xz 2019/02/28 | 1712 | systems/texlive/tlnet/archive/kotex-plain.doc.r38630.tar.xz 2019/02/28 | 9052 | systems/texlive/tlnet/archive/kotex-plain.r38630.tar.xz 2019/02/28 | 6849784 | systems/texlive/tlnet/archive/kotex-utf.doc.r38558.tar.xz @@ -283720,9 +283719,9 @@ 2021/01/08 | 3476 | systems/texlive/tlnet/archive/lua-visual-debug.r57349.tar.xz 2021/03/04 | 95132 | systems/texlive/tlnet/archive/luavlna.doc.r58087.tar.xz 2021/03/04 | 7628 | systems/texlive/tlnet/archive/luavlna.r58087.tar.xz -2022/04/06 | 347124 | systems/texlive/tlnet/archive/lua-widow-control.doc.r62934.tar.xz -2022/04/06 | 10596 | systems/texlive/tlnet/archive/lua-widow-control.r62934.tar.xz -2022/04/06 | 13680 | systems/texlive/tlnet/archive/lua-widow-control.source.r62934.tar.xz +2022/04/08 | 348928 | systems/texlive/tlnet/archive/lua-widow-control.doc.r62977.tar.xz +2022/04/08 | 10616 | systems/texlive/tlnet/archive/lua-widow-control.r62977.tar.xz +2022/04/08 | 13784 | systems/texlive/tlnet/archive/lua-widow-control.source.r62977.tar.xz 2021/10/08 | 123428 | systems/texlive/tlnet/archive/luaxml.doc.r60709.tar.xz 2021/10/08 | 32276 | systems/texlive/tlnet/archive/luaxml.r60709.tar.xz 2022/02/28 | 77904 | systems/texlive/tlnet/archive/lutabulartools.doc.r62252.tar.xz @@ -285132,8 +285131,8 @@ 2021/05/24 | 2392 | systems/texlive/tlnet/archive/ot-tableau.r59318.tar.xz 2019/02/28 | 60352 | systems/texlive/tlnet/archive/oubraces.doc.r21833.tar.xz 2019/02/28 | 1660 | systems/texlive/tlnet/archive/oubraces.r21833.tar.xz -2022/04/06 | 322092 | systems/texlive/tlnet/archive/oup-authoring-template.doc.r62943.tar.xz -2022/04/06 | 17492 | systems/texlive/tlnet/archive/oup-authoring-template.r62943.tar.xz +2022/04/08 | 322096 | systems/texlive/tlnet/archive/oup-authoring-template.doc.r62977.tar.xz +2022/04/08 | 17492 | systems/texlive/tlnet/archive/oup-authoring-template.r62977.tar.xz 2020/03/13 | 1596 | systems/texlive/tlnet/archive/outerhbox.r54254.tar.xz 2019/02/28 | 234580 | systems/texlive/tlnet/archive/outline.doc.r18360.tar.xz 2019/02/28 | 1528 | systems/texlive/tlnet/archive/outline.r18360.tar.xz @@ -286135,8 +286134,8 @@ 2021/11/06 | 17948 | systems/texlive/tlnet/archive/pst-cie.r60959.tar.xz 2021/09/11 | 574764 | systems/texlive/tlnet/archive/pst-circ.doc.r60464.tar.xz 2021/09/11 | 24900 | systems/texlive/tlnet/archive/pst-circ.r60464.tar.xz -2019/02/28 | 251024 | systems/texlive/tlnet/archive/pst-coil.doc.r37377.tar.xz -2019/02/28 | 3936 | systems/texlive/tlnet/archive/pst-coil.r37377.tar.xz +2022/04/08 | 251028 | systems/texlive/tlnet/archive/pst-coil.doc.r62977.tar.xz +2022/04/08 | 3924 | systems/texlive/tlnet/archive/pst-coil.r62977.tar.xz 2019/02/28 | 764392 | systems/texlive/tlnet/archive/pst-contourplot.doc.r48230.tar.xz 2019/02/28 | 3624 | systems/texlive/tlnet/archive/pst-contourplot.r48230.tar.xz 2019/02/28 | 1069364 | systems/texlive/tlnet/archive/pst-cox.doc.r15878.tar.xz @@ -286146,9 +286145,9 @@ 2019/02/28 | 133024 | systems/texlive/tlnet/archive/pst-dbicons.doc.r17556.tar.xz 2019/02/28 | 3332 | systems/texlive/tlnet/archive/pst-dbicons.r17556.tar.xz 2019/02/28 | 10216 | systems/texlive/tlnet/archive/pst-dbicons.source.r17556.tar.xz -2019/02/28 | 1067976 | systems/texlive/tlnet/archive/pst-diffraction.doc.r15878.tar.xz -2019/02/28 | 5144 | systems/texlive/tlnet/archive/pst-diffraction.r15878.tar.xz -2019/02/28 | 868 | systems/texlive/tlnet/archive/pst-diffraction.source.r15878.tar.xz +2022/04/08 | 1067976 | systems/texlive/tlnet/archive/pst-diffraction.doc.r62977.tar.xz +2022/04/08 | 5128 | systems/texlive/tlnet/archive/pst-diffraction.r62977.tar.xz +2022/04/08 | 868 | systems/texlive/tlnet/archive/pst-diffraction.source.r62977.tar.xz 2019/02/28 | 5271200 | systems/texlive/tlnet/archive/pst-electricfield.doc.r29803.tar.xz 2019/02/28 | 3700 | systems/texlive/tlnet/archive/pst-electricfield.r29803.tar.xz 2019/02/28 | 1536 | systems/texlive/tlnet/archive/pst-electricfield.source.r29803.tar.xz @@ -286232,11 +286231,11 @@ 2021/03/13 | 5348 | systems/texlive/tlnet/archive/pst-ode.r58293.tar.xz 2019/02/28 | 373708 | systems/texlive/tlnet/archive/pstool.doc.r46393.tar.xz 2019/02/28 | 6984 | systems/texlive/tlnet/archive/pstool.r46393.tar.xz -2022/02/07 | 3194704 | systems/texlive/tlnet/archive/pst-optexp.doc.r61917.tar.xz -2022/02/07 | 37764 | systems/texlive/tlnet/archive/pst-optexp.r61917.tar.xz -2022/02/07 | 155324 | systems/texlive/tlnet/archive/pst-optexp.source.r61917.tar.xz -2019/02/28 | 308860 | systems/texlive/tlnet/archive/pst-optic.doc.r41999.tar.xz -2019/02/28 | 14660 | systems/texlive/tlnet/archive/pst-optic.r41999.tar.xz +2022/04/08 | 3194708 | systems/texlive/tlnet/archive/pst-optexp.doc.r62977.tar.xz +2022/04/08 | 37772 | systems/texlive/tlnet/archive/pst-optexp.r62977.tar.xz +2022/04/08 | 155324 | systems/texlive/tlnet/archive/pst-optexp.source.r62977.tar.xz +2022/04/08 | 308860 | systems/texlive/tlnet/archive/pst-optic.doc.r62977.tar.xz +2022/04/08 | 14640 | systems/texlive/tlnet/archive/pst-optic.r62977.tar.xz 2019/02/28 | 1332868 | systems/texlive/tlnet/archive/pst-osci.doc.r15878.tar.xz 2019/02/28 | 3432 | systems/texlive/tlnet/archive/pst-osci.r15878.tar.xz 2020/05/02 | 30000 | systems/texlive/tlnet/archive/pst-ovl.doc.r54963.tar.xz @@ -286277,8 +286276,8 @@ 2020/01/22 | 347516 | systems/texlive/tlnet/archive/pst-poker.r53482.tar.xz 2019/02/28 | 141292 | systems/texlive/tlnet/archive/pst-poly.doc.r35062.tar.xz 2019/02/28 | 3176 | systems/texlive/tlnet/archive/pst-poly.r35062.tar.xz -2019/02/28 | 122132 | systems/texlive/tlnet/archive/pst-pulley.doc.r45316.tar.xz -2019/02/28 | 4764 | systems/texlive/tlnet/archive/pst-pulley.r45316.tar.xz +2022/04/08 | 122132 | systems/texlive/tlnet/archive/pst-pulley.doc.r62977.tar.xz +2022/04/08 | 4748 | systems/texlive/tlnet/archive/pst-pulley.r62977.tar.xz 2019/02/28 | 24596 | systems/texlive/tlnet/archive/pst-qtree.doc.r15878.tar.xz 2019/02/28 | 1844 | systems/texlive/tlnet/archive/pst-qtree.r15878.tar.xz 2021/12/26 | 9152100 | systems/texlive/tlnet/archive/pstricks-add.doc.r61407.tar.xz @@ -287160,8 +287159,8 @@ 2020/04/28 | 2908 | systems/texlive/tlnet/archive/simplekv.r54915.tar.xz 2022/04/05 | 208680 | systems/texlive/tlnet/archive/simplenodes.doc.r62888.tar.xz 2022/04/05 | 2172 | systems/texlive/tlnet/archive/simplenodes.r62888.tar.xz -2020/03/04 | 83472 | systems/texlive/tlnet/archive/simpleoptics.doc.r54080.tar.xz -2020/03/04 | 1100 | systems/texlive/tlnet/archive/simpleoptics.r54080.tar.xz +2022/04/08 | 83476 | systems/texlive/tlnet/archive/simpleoptics.doc.r62977.tar.xz +2022/04/08 | 1100 | systems/texlive/tlnet/archive/simpleoptics.r62977.tar.xz 2019/02/28 | 96196 | systems/texlive/tlnet/archive/simple-resume-cv.doc.r43057.tar.xz 2019/02/28 | 3432 | systems/texlive/tlnet/archive/simple-resume-cv.r43057.tar.xz 2019/02/28 | 58000 | systems/texlive/tlnet/archive/simpler-wick.doc.r39074.tar.xz @@ -288065,7 +288064,7 @@ 2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r55172.tar.xz 2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r55172.tar.xz 2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r55172.tar.xz -2022/04/07 | 405908 | systems/texlive/tlnet/archive/texlive-scripts.doc.r62961.tar.xz +2022/04/08 | 406064 | systems/texlive/tlnet/archive/texlive-scripts.doc.r62973.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 @@ -288089,7 +288088,7 @@ 2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r55172.tar.xz 2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r55172.tar.xz 2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r55172.tar.xz -2022/04/07 | 109816 | systems/texlive/tlnet/archive/texlive-scripts.r62961.tar.xz +2022/04/08 | 109812 | systems/texlive/tlnet/archive/texlive-scripts.r62973.tar.xz 2021/02/25 | 572 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r57908.tar.xz 2022/02/27 | 36292 | systems/texlive/tlnet/archive/texlive-scripts.win32.r62199.tar.xz 2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r55172.tar.xz @@ -288470,8 +288469,8 @@ 2019/08/16 | 8296 | systems/texlive/tlnet/archive/tikz-network.r51884.tar.xz 2019/02/28 | 75232 | systems/texlive/tlnet/archive/tikz-opm.doc.r32769.tar.xz 2019/02/28 | 1872 | systems/texlive/tlnet/archive/tikz-opm.r32769.tar.xz -2019/02/28 | 393040 | systems/texlive/tlnet/archive/tikz-optics.doc.r43466.tar.xz -2019/02/28 | 13176 | systems/texlive/tlnet/archive/tikz-optics.r43466.tar.xz +2022/04/08 | 393040 | systems/texlive/tlnet/archive/tikz-optics.doc.r62977.tar.xz +2022/04/08 | 13160 | systems/texlive/tlnet/archive/tikz-optics.r62977.tar.xz 2019/02/28 | 197628 | systems/texlive/tlnet/archive/tikzorbital.doc.r36439.tar.xz 2019/02/28 | 3532 | systems/texlive/tlnet/archive/tikzorbital.r36439.tar.xz 2020/07/14 | 65772 | systems/texlive/tlnet/archive/tikzpackets.doc.r55827.tar.xz @@ -289150,21 +289149,21 @@ 2020/10/23 | 1890332 | systems/texlive/tlnet/archive/utfsym.r56729.tar.xz 2019/02/28 | 2820 | systems/texlive/tlnet/archive/utopia.doc.r15878.tar.xz 2019/02/28 | 205556 | systems/texlive/tlnet/archive/utopia.r15878.tar.xz -2022/03/21 | 138168 | systems/texlive/tlnet/archive/ut-thesis.doc.r62856.tar.xz -2022/03/21 | 2616 | systems/texlive/tlnet/archive/ut-thesis.r62856.tar.xz -2022/03/21 | 6656 | systems/texlive/tlnet/archive/ut-thesis.source.r62856.tar.xz +2022/04/08 | 138168 | systems/texlive/tlnet/archive/ut-thesis.doc.r62977.tar.xz +2022/04/08 | 2616 | systems/texlive/tlnet/archive/ut-thesis.r62977.tar.xz +2022/04/08 | 6656 | systems/texlive/tlnet/archive/ut-thesis.source.r62977.tar.xz 2021/09/07 | 127872 | systems/texlive/tlnet/archive/uwa-colours.doc.r60443.tar.xz 2021/09/07 | 1228 | systems/texlive/tlnet/archive/uwa-colours.r60443.tar.xz 2021/09/07 | 3016 | systems/texlive/tlnet/archive/uwa-colours.source.r60443.tar.xz -2022/03/21 | 57656 | systems/texlive/tlnet/archive/uwa-letterhead.doc.r62856.tar.xz -2022/03/21 | 3348 | systems/texlive/tlnet/archive/uwa-letterhead.r62856.tar.xz -2022/03/21 | 6568 | systems/texlive/tlnet/archive/uwa-letterhead.source.r62856.tar.xz -2022/03/21 | 52740 | systems/texlive/tlnet/archive/uwa-pcf.doc.r62856.tar.xz -2022/03/21 | 2924 | systems/texlive/tlnet/archive/uwa-pcf.r62856.tar.xz -2022/03/21 | 6060 | systems/texlive/tlnet/archive/uwa-pcf.source.r62856.tar.xz -2022/03/21 | 50500 | systems/texlive/tlnet/archive/uwa-pif.doc.r62856.tar.xz -2022/03/21 | 2592 | systems/texlive/tlnet/archive/uwa-pif.r62856.tar.xz -2022/03/21 | 5696 | systems/texlive/tlnet/archive/uwa-pif.source.r62856.tar.xz +2022/04/08 | 57652 | systems/texlive/tlnet/archive/uwa-letterhead.doc.r62977.tar.xz +2022/04/08 | 3348 | systems/texlive/tlnet/archive/uwa-letterhead.r62977.tar.xz +2022/04/08 | 6568 | systems/texlive/tlnet/archive/uwa-letterhead.source.r62977.tar.xz +2022/04/08 | 52740 | systems/texlive/tlnet/archive/uwa-pcf.doc.r62977.tar.xz +2022/04/08 | 2924 | systems/texlive/tlnet/archive/uwa-pcf.r62977.tar.xz +2022/04/08 | 6060 | systems/texlive/tlnet/archive/uwa-pcf.source.r62977.tar.xz +2022/04/08 | 50500 | systems/texlive/tlnet/archive/uwa-pif.doc.r62977.tar.xz +2022/04/08 | 2592 | systems/texlive/tlnet/archive/uwa-pif.r62977.tar.xz +2022/04/08 | 5696 | systems/texlive/tlnet/archive/uwa-pif.source.r62977.tar.xz 2019/02/28 | 11764 | systems/texlive/tlnet/archive/uwmslide.doc.r27354.tar.xz 2019/02/28 | 3916 | systems/texlive/tlnet/archive/uwmslide.r27354.tar.xz 2019/02/28 | 137544 | systems/texlive/tlnet/archive/uwthesis.doc.r15878.tar.xz @@ -289872,9 +289871,9 @@ 2022/02/13 | 1519464 | systems/texlive/tlnet/archive/zref-clever.doc.r61994.tar.xz 2022/02/13 | 23100 | systems/texlive/tlnet/archive/zref-clever.r61994.tar.xz 2022/02/13 | 50504 | systems/texlive/tlnet/archive/zref-clever.source.r61994.tar.xz -2022/04/06 | 667608 | systems/texlive/tlnet/archive/zref.doc.r62956.tar.xz -2022/04/06 | 14472 | systems/texlive/tlnet/archive/zref.r62956.tar.xz -2022/04/06 | 37200 | systems/texlive/tlnet/archive/zref.source.r62956.tar.xz +2022/04/08 | 668676 | systems/texlive/tlnet/archive/zref.doc.r62977.tar.xz +2022/04/08 | 14476 | systems/texlive/tlnet/archive/zref.r62977.tar.xz +2022/04/08 | 37216 | systems/texlive/tlnet/archive/zref.source.r62977.tar.xz 2022/02/13 | 700632 | systems/texlive/tlnet/archive/zref-vario.doc.r61995.tar.xz 2022/02/13 | 4040 | systems/texlive/tlnet/archive/zref-vario.r61995.tar.xz 2022/02/13 | 6424 | systems/texlive/tlnet/archive/zref-vario.source.r61995.tar.xz @@ -289893,16 +289892,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 2022/03/16 | 108660 | systems/texlive/tlnet/install-tl -2022/04/07 | 5797435 | systems/texlive/tlnet/install-tl-unx.tar.gz -2022/04/07 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 -2022/04/07 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc +2022/04/08 | 5797438 | systems/texlive/tlnet/install-tl-unx.tar.gz +2022/04/08 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 +2022/04/08 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc 2021/04/11 | 4945 | systems/texlive/tlnet/install-tl-windows.bat -2022/04/07 | 20461261 | systems/texlive/tlnet/install-tl-windows.exe -2022/04/07 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 -2022/04/07 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc -2022/04/07 | 25481237 | systems/texlive/tlnet/install-tl.zip -2022/04/07 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 -2022/04/07 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc +2022/04/08 | 20462457 | systems/texlive/tlnet/install-tl-windows.exe +2022/04/08 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 +2022/04/08 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc +2022/04/08 | 25481225 | systems/texlive/tlnet/install-tl.zip +2022/04/08 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 +2022/04/08 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc 2022/04/03 | 1229 | systems/texlive/tlnet/README.md 2022/04/03 | 0 | systems/texlive/tlnet/TEXLIVE_2022 2022/02/28 | 7791 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg @@ -289912,7 +289911,7 @@ 2022/02/28 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg 2022/01/12 | 49482 | systems/texlive/tlnet/tlpkg/installer/config.guess 2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt -2022/04/05 | 7274 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl +2022/04/07 | 7200 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl 2022/04/05 | 211170 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt 2020/04/15 | 2606592 | systems/texlive/tlnet/tlpkg/installer/curl/curl.exe 2017/04/16 | 2629 | systems/texlive/tlnet/tlpkg/installer/installer-options.txt @@ -289954,12 +289953,12 @@ 2021/05/16 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm 2021/12/21 | 5429 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm 2021/12/21 | 27582 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm -2022/04/07 | 17258232 | systems/texlive/tlnet/tlpkg/texlive.tlpdb -2022/04/07 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +2022/04/08 | 17258321 | systems/texlive/tlnet/tlpkg/texlive.tlpdb +2022/04/08 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 2021/12/21 | 86654 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm -2022/04/07 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 -2022/04/07 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc -2022/04/07 | 2365664 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +2022/04/08 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +2022/04/08 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc +2022/04/08 | 2366944 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz 2021/12/21 | 58848 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm 2021/12/21 | 42112 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm 2021/12/21 | 16130 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm @@ -295141,7 +295140,7 @@ 2020/10/03 | 318630 | systems/win32/miktex/tm/packages/filehook.tar.lzma 2012/12/04 | 924573 | systems/win32/miktex/tm/packages/fileinfo.tar.lzma 2011/09/21 | 281409 | systems/win32/miktex/tm/packages/filemod.tar.lzma -2022/04/07 | 644704 | systems/win32/miktex/tm/packages/files.csv.lzma +2022/04/08 | 644704 | systems/win32/miktex/tm/packages/files.csv.lzma 2001/05/14 | 5617 | systems/win32/miktex/tm/packages/finbib.tar.lzma 2015/10/20 | 44379 | systems/win32/miktex/tm/packages/findhyph.tar.lzma 2011/10/21 | 89323 | systems/win32/miktex/tm/packages/fink.tar.lzma @@ -296724,9 +296723,9 @@ 2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma 2022/03/12 | 39680 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma 2022/03/29 | 43240 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma -2022/04/07 | 274266 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma -2022/04/07 | 1440504 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma -2022/04/07 | 1329838 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma +2022/04/08 | 274273 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma +2022/04/08 | 1440786 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma +2022/04/08 | 1329933 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma 2022/03/12 | 13516 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma 2022/03/29 | 14391 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma 2016/07/15 | 35914 | systems/win32/miktex/tm/packages/mil3.tar.lzma @@ -296950,191 +296949,191 @@ 2018/04/09 | 400132 | systems/win32/miktex/tm/packages/newunicodechar.tar.lzma 2011/09/19 | 101312 | systems/win32/miktex/tm/packages/newvbtm.tar.lzma 2021/03/17 | 232249 | systems/win32/miktex/tm/packages/newverbs.tar.lzma -2022/04/07 | 644630 | systems/win32/miktex/tm/packages/next/files.csv.lzma -2022/04/07 | 51557 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma -2022/04/07 | 57331 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma -2022/04/07 | 1021849 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma -2022/04/07 | 1156462 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma -2022/04/07 | 28796 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma -2022/04/07 | 31520 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma -2022/04/07 | 30146 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma -2022/04/07 | 35243 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma -2022/04/07 | 56617 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma -2022/04/07 | 65055 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma -2022/04/07 | 86758 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma -2022/04/07 | 95284 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma -2022/04/07 | 68873 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma -2022/04/07 | 77070 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma -2022/04/07 | 27248 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma -2022/04/07 | 31344 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma -2022/04/07 | 332414 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma -2022/04/07 | 394371 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma -2022/04/07 | 32954 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma -2022/04/07 | 37080 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma -2022/04/07 | 51486 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma -2022/04/07 | 57270 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma -2022/04/07 | 244961 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma -2022/04/07 | 270297 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma -2022/04/07 | 179876 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma -2022/04/07 | 196116 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma -2022/04/07 | 92918 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma -2022/04/07 | 103093 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma -2022/04/07 | 21313 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma -2022/04/07 | 24120 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma -2022/04/07 | 481499 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma -2022/04/07 | 46066 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma -2022/04/07 | 52094 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma -2022/04/07 | 285713 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma -2022/04/07 | 326661 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma -2022/04/07 | 41306 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma -2022/04/07 | 45825 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma -2022/04/07 | 120619 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma -2022/04/07 | 135378 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma -2022/04/07 | 1302486 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma -2022/04/07 | 1454762 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma -2022/04/07 | 99816 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma -2022/04/07 | 113052 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma -2022/04/07 | 43646 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma -2022/04/07 | 48825 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma -2022/04/07 | 25106 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma -2022/04/07 | 28569 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma -2022/04/07 | 56993 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma -2022/04/07 | 63310 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma -2022/04/07 | 135949 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma -2022/04/07 | 155497 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma -2022/04/07 | 73477 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma -2022/04/07 | 78975 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma -2022/04/07 | 72014 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma -2022/04/07 | 81461 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma -2022/04/07 | 259258 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma -2022/04/07 | 296041 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma -2022/04/07 | 22147 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma -2022/04/07 | 25060 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma -2022/04/07 | 97201 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma -2022/04/07 | 112590 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma -2022/04/07 | 64543 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma -2022/04/07 | 73150 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma -2022/04/07 | 96633 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma -2022/04/07 | 115657 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma -2022/04/07 | 38427 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma -2022/04/07 | 43825 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma -2022/04/07 | 484369 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma -2022/04/07 | 565930 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma -2022/04/07 | 203835 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma -2022/04/07 | 247334 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma -2022/04/07 | 152027 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma -2022/04/07 | 168820 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma -2022/04/07 | 95432 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma -2022/04/07 | 109479 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma -2022/04/07 | 16503 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma -2022/04/07 | 18368 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma -2022/04/07 | 28422 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma -2022/04/07 | 30542 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma -2022/04/07 | 631278 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma -2022/04/07 | 681940 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma -2022/04/07 | 532453 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma -2022/04/07 | 598231 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma -2022/04/07 | 477847 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma -2022/04/07 | 528018 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma -2022/04/07 | 93959 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma -2022/04/07 | 103338 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma -2022/04/07 | 1752148 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma -2022/04/07 | 1982085 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma -2022/04/07 | 68010 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma -2022/04/07 | 74069 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma -2022/04/07 | 27591 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma -2022/04/07 | 32134 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma -2022/04/07 | 7753 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma -2022/04/07 | 8784 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma -2022/04/07 | 190503 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma -2022/04/07 | 208808 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma -2022/04/07 | 251129 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma -2022/04/07 | 286413 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma -2022/04/07 | 99258 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma -2022/04/07 | 104555 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma -2022/04/07 | 126533 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma -2022/04/07 | 139102 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma -2022/04/07 | 288201 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma -2022/04/07 | 325270 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma -2022/04/07 | 199832 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma -2022/04/07 | 181518 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma -2022/04/07 | 49769 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma -2022/04/07 | 55569 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma -2022/04/07 | 31412 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma -2022/04/07 | 35168 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma -2022/04/07 | 38560 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma -2022/04/07 | 43916 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma -2022/04/07 | 43361 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma -2022/04/07 | 47923 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma -2022/04/07 | 45742 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma -2022/04/07 | 52326 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma -2022/04/07 | 197034 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma -2022/04/07 | 213278 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma -2022/04/07 | 36049 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma -2022/04/07 | 41182 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma -2022/04/07 | 755742 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma -2022/04/07 | 824369 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma -2022/04/07 | 200396 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma -2022/04/07 | 202835 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma -2022/04/07 | 210275 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma -2022/04/07 | 245096 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma -2022/04/07 | 79024 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma -2022/04/07 | 88151 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma -2022/04/07 | 1181126 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma -2022/04/07 | 1322741 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma -2022/04/07 | 20184 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma -2022/04/07 | 23944 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma -2022/04/07 | 31586 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma -2022/04/07 | 37371 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma -2022/04/07 | 64709 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma -2022/04/07 | 72887 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma -2022/04/07 | 50800 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma -2022/04/07 | 58663 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma -2022/04/07 | 693067 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma -2022/04/07 | 758954 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma -2022/04/07 | 1357069 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma -2022/04/07 | 1501236 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma -2022/04/07 | 42817 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma -2022/04/07 | 52481 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma -2022/04/07 | 57617 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma -2022/04/07 | 63739 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma -2022/04/07 | 25552 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma -2022/04/07 | 27636 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma -2022/04/07 | 16559 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma -2022/04/07 | 18492 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma -2022/04/07 | 64489 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma -2022/04/07 | 71006 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma -2022/04/07 | 156964 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma -2022/04/07 | 173008 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma -2022/04/07 | 58665 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma -2022/04/07 | 67255 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma -2022/04/07 | 100488 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma -2022/04/07 | 107706 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma -2022/04/07 | 2694875 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma -2022/04/07 | 2820689 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma -2022/04/07 | 55286 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma -2022/04/07 | 62380 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma -2022/04/07 | 37116 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma -2022/04/07 | 41203 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma -2022/04/07 | 28690 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma -2022/04/07 | 34053 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma -2022/04/07 | 67705 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma -2022/04/07 | 73530 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma -2022/04/07 | 316242 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma -2022/04/07 | 351696 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma -2022/04/07 | 55758 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma -2022/04/07 | 57526 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma -2022/04/07 | 591567 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma -2022/04/07 | 629432 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma -2022/04/07 | 39728 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma -2022/04/07 | 43225 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma -2022/04/07 | 274324 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma -2022/04/07 | 1439885 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma -2022/04/07 | 1329778 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma -2022/04/07 | 13509 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma -2022/04/07 | 14411 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma +2022/04/08 | 644630 | systems/win32/miktex/tm/packages/next/files.csv.lzma +2022/04/08 | 51558 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma +2022/04/08 | 57329 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma +2022/04/08 | 1021847 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma +2022/04/08 | 1156464 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma +2022/04/08 | 28796 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma +2022/04/08 | 31521 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma +2022/04/08 | 30146 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma +2022/04/08 | 35242 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma +2022/04/08 | 56619 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma +2022/04/08 | 65054 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma +2022/04/08 | 86760 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma +2022/04/08 | 95284 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma +2022/04/08 | 68873 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma +2022/04/08 | 77067 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma +2022/04/08 | 27247 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma +2022/04/08 | 31344 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma +2022/04/08 | 332414 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma +2022/04/08 | 394370 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma +2022/04/08 | 32955 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma +2022/04/08 | 37080 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma +2022/04/08 | 51485 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma +2022/04/08 | 57271 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma +2022/04/08 | 244961 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma +2022/04/08 | 270300 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma +2022/04/08 | 179877 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma +2022/04/08 | 196118 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma +2022/04/08 | 92917 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma +2022/04/08 | 103093 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma +2022/04/08 | 21314 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma +2022/04/08 | 24120 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma +2022/04/08 | 481498 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma +2022/04/08 | 46068 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma +2022/04/08 | 52093 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma +2022/04/08 | 285715 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma +2022/04/08 | 326661 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma +2022/04/08 | 41304 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma +2022/04/08 | 45824 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma +2022/04/08 | 120616 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma +2022/04/08 | 135377 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma +2022/04/08 | 1302482 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma +2022/04/08 | 1454764 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma +2022/04/08 | 99816 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma +2022/04/08 | 113053 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma +2022/04/08 | 43646 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma +2022/04/08 | 48826 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma +2022/04/08 | 25107 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma +2022/04/08 | 28569 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma +2022/04/08 | 56995 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma +2022/04/08 | 63311 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma +2022/04/08 | 135950 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma +2022/04/08 | 155496 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma +2022/04/08 | 73477 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma +2022/04/08 | 78974 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma +2022/04/08 | 72013 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma +2022/04/08 | 81462 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma +2022/04/08 | 259257 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma +2022/04/08 | 296040 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma +2022/04/08 | 22147 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma +2022/04/08 | 25060 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma +2022/04/08 | 97201 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma +2022/04/08 | 112588 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma +2022/04/08 | 64542 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma +2022/04/08 | 73146 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma +2022/04/08 | 96632 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma +2022/04/08 | 115656 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma +2022/04/08 | 38426 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma +2022/04/08 | 43824 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma +2022/04/08 | 484370 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma +2022/04/08 | 565930 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma +2022/04/08 | 203838 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma +2022/04/08 | 247333 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma +2022/04/08 | 152029 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma +2022/04/08 | 168820 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma +2022/04/08 | 95434 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma +2022/04/08 | 109478 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma +2022/04/08 | 16503 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma +2022/04/08 | 18368 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma +2022/04/08 | 28421 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma +2022/04/08 | 30540 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma +2022/04/08 | 631279 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma +2022/04/08 | 681941 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma +2022/04/08 | 532454 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma +2022/04/08 | 598230 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma +2022/04/08 | 477845 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma +2022/04/08 | 528015 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma +2022/04/08 | 93959 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma +2022/04/08 | 103337 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma +2022/04/08 | 1752148 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma +2022/04/08 | 1982083 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma +2022/04/08 | 68009 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma +2022/04/08 | 74069 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma +2022/04/08 | 27592 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma +2022/04/08 | 32133 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma +2022/04/08 | 7752 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma +2022/04/08 | 8783 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma +2022/04/08 | 190502 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma +2022/04/08 | 208808 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma +2022/04/08 | 251130 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma +2022/04/08 | 286412 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma +2022/04/08 | 99257 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma +2022/04/08 | 104555 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma +2022/04/08 | 126535 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma +2022/04/08 | 139102 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma +2022/04/08 | 288202 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma +2022/04/08 | 325270 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma +2022/04/08 | 199832 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma +2022/04/08 | 181515 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma +2022/04/08 | 49768 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma +2022/04/08 | 55569 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma +2022/04/08 | 31412 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma +2022/04/08 | 35169 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma +2022/04/08 | 38561 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma +2022/04/08 | 43915 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma +2022/04/08 | 43361 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma +2022/04/08 | 47922 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma +2022/04/08 | 45743 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma +2022/04/08 | 52326 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma +2022/04/08 | 197035 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma +2022/04/08 | 213278 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma +2022/04/08 | 36049 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma +2022/04/08 | 41182 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma +2022/04/08 | 755743 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma +2022/04/08 | 824371 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma +2022/04/08 | 200397 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma +2022/04/08 | 202835 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma +2022/04/08 | 210275 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma +2022/04/08 | 245097 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma +2022/04/08 | 79025 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma +2022/04/08 | 88151 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma +2022/04/08 | 1181126 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma +2022/04/08 | 1322742 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma +2022/04/08 | 20183 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma +2022/04/08 | 23945 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma +2022/04/08 | 31587 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma +2022/04/08 | 37374 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma +2022/04/08 | 64710 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma +2022/04/08 | 72884 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma +2022/04/08 | 50798 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma +2022/04/08 | 58664 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma +2022/04/08 | 693068 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma +2022/04/08 | 758954 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma +2022/04/08 | 1357072 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma +2022/04/08 | 1501234 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma +2022/04/08 | 42819 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma +2022/04/08 | 52479 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma +2022/04/08 | 57619 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma +2022/04/08 | 63740 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma +2022/04/08 | 25552 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma +2022/04/08 | 27637 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma +2022/04/08 | 16561 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma +2022/04/08 | 18493 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma +2022/04/08 | 64490 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma +2022/04/08 | 71007 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma +2022/04/08 | 156964 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma +2022/04/08 | 173008 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma +2022/04/08 | 58666 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma +2022/04/08 | 67254 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma +2022/04/08 | 100487 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma +2022/04/08 | 107705 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma +2022/04/08 | 2694875 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma +2022/04/08 | 2820687 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma +2022/04/08 | 55286 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma +2022/04/08 | 62380 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma +2022/04/08 | 37117 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma +2022/04/08 | 41203 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma +2022/04/08 | 28689 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma +2022/04/08 | 34052 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma +2022/04/08 | 67704 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma +2022/04/08 | 73528 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma +2022/04/08 | 316242 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma +2022/04/08 | 351696 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma +2022/04/08 | 55756 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma +2022/04/08 | 57526 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma +2022/04/08 | 591571 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma +2022/04/08 | 629431 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma +2022/04/08 | 39727 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma +2022/04/08 | 43224 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma +2022/04/08 | 274311 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma +2022/04/08 | 1439554 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma +2022/04/08 | 1329319 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma +2022/04/08 | 13513 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma +2022/04/08 | 14411 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma 2019/03/12 | 1412 | systems/win32/miktex/tm/packages/nextpage.tar.lzma -2022/04/07 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini +2022/04/08 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini 2018/07/06 | 145915 | systems/win32/miktex/tm/packages/nexus-otf.tar.lzma 2017/03/30 | 191149 | systems/win32/miktex/tm/packages/nfssext-cfr.tar.lzma 2012/12/20 | 612251 | systems/win32/miktex/tm/packages/nicefilelist.tar.lzma @@ -297600,7 +297599,7 @@ 2022/02/22 | 6917 | systems/win32/miktex/tm/packages/preview.tar.lzma 2019/06/20 | 375963 | systems/win32/miktex/tm/packages/prftree.tar.lzma 2021/04/23 | 274028 | systems/win32/miktex/tm/packages/principia.tar.lzma -2022/04/07 | 1006 | systems/win32/miktex/tm/packages/pr.ini +2022/04/08 | 1006 | systems/win32/miktex/tm/packages/pr.ini 2010/09/27 | 248469 | systems/win32/miktex/tm/packages/printlen.tar.lzma 2008/06/17 | 77313 | systems/win32/miktex/tm/packages/proba.tar.lzma 2017/07/12 | 988486 | systems/win32/miktex/tm/packages/probsoln.tar.lzma @@ -299422,7 +299421,7 @@ 2004/06/04 | 404 | tds/tds.sed 2004/06/23 | 65418 | tds/tds.tex 2019/05/29 | 304264 | tds.zip -2022/04/08 | 186 | timestamp +2022/04/09 | 186 | timestamp 2002/08/26 | 61898 | usergrps/dante/antrag.pdf 2002/08/26 | 118217 | usergrps/dante/antrag.ps 2021/11/11 | 917 | usergrps/dante/dtk/doc/beispiel.bib diff --git a/FILES.byname.gz b/FILES.byname.gz index cd17a01f31..cbb272f87c 100644 Binary files a/FILES.byname.gz and b/FILES.byname.gz differ diff --git a/FILES.last07days b/FILES.last07days index fd14353cc9..5194e81995 100644 --- a/FILES.last07days +++ b/FILES.last07days @@ -1,24 +1,284 @@ -2022/04/07 | 99816 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma -2022/04/07 | 99258 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma +2022/04/08 | 99816 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma +2022/04/08 | 99257 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma +2022/04/08 | 97201 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma +2022/04/08 | 96632 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma +2022/04/08 | 96600 | systems/texlive/tlnet/archive/aboensis.r62977.tar.xz +2022/04/08 | 95434 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma +2022/04/08 | 95284 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma +2022/04/08 | 93959 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma +2022/04/08 | 92917 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma +2022/04/08 | 8841 | macros/generic/ifptex.zip +2022/04/08 | 88151 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma +2022/04/08 | 8783 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma +2022/04/08 | 868 | systems/texlive/tlnet/archive/pst-diffraction.source.r62977.tar.xz +2022/04/08 | 86760 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma +2022/04/08 | 83476 | systems/texlive/tlnet/archive/simpleoptics.doc.r62977.tar.xz +2022/04/08 | 824371 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma +2022/04/08 | 81462 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma +2022/04/08 | 79025 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma +2022/04/08 | 78974 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma +2022/04/08 | 7752 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma +2022/04/08 | 77067 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma +2022/04/08 | 758954 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma +2022/04/08 | 755743 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma +2022/04/08 | 74069 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma +2022/04/08 | 73528 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma +2022/04/08 | 73477 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma +2022/04/08 | 73146 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma +2022/04/08 | 72884 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma +2022/04/08 | 72013 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma +2022/04/08 | 71007 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma +2022/04/08 | 693068 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma +2022/04/08 | 68873 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma +2022/04/08 | 681941 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma +2022/04/08 | 68009 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma +2022/04/08 | 67704 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma +2022/04/08 | 67254 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma +2022/04/08 | 668676 | systems/texlive/tlnet/archive/zref.doc.r62977.tar.xz +2022/04/08 | 6656 | systems/texlive/tlnet/archive/ut-thesis.source.r62977.tar.xz +2022/04/08 | 6568 | systems/texlive/tlnet/archive/uwa-letterhead.source.r62977.tar.xz +2022/04/08 | 65054 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma +2022/04/08 | 64710 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma +2022/04/08 | 64542 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma +2022/04/08 | 64490 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma +2022/04/08 | 644704 | systems/win32/miktex/tm/packages/files.csv.lzma +2022/04/08 | 644630 | systems/win32/miktex/tm/packages/next/files.csv.lzma +2022/04/08 | 63740 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma +2022/04/08 | 63311 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma +2022/04/08 | 631279 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma +2022/04/08 | 629431 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma +2022/04/08 | 62380 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma +2022/04/08 | 6204 | systems/texlive/tlnet/archive/jacow.r62977.tar.xz +2022/04/08 | 6060 | systems/texlive/tlnet/archive/uwa-pcf.source.r62977.tar.xz +2022/04/08 | 598230 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma +2022/04/08 | 591571 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma +2022/04/08 | 58666 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma +2022/04/08 | 58664 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma +2022/04/08 | 5797438 | systems/texlive/tlnet/install-tl-unx.tar.gz +2022/04/08 | 57652 | systems/texlive/tlnet/archive/uwa-letterhead.doc.r62977.tar.xz +2022/04/08 | 57619 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma +2022/04/08 | 57526 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma +2022/04/08 | 57329 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma +2022/04/08 | 57271 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma +2022/04/08 | 56995 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma +2022/04/08 | 5696 | systems/texlive/tlnet/archive/uwa-pif.source.r62977.tar.xz +2022/04/08 | 56619 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma +2022/04/08 | 565930 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma +2022/04/08 | 56038 | macros/latex/contrib/bithesis/bithesis.dtx +2022/04/08 | 55756 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma +2022/04/08 | 55569 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma +2022/04/08 | 55286 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma +2022/04/08 | 539260 | systems/texlive/tlnet/archive/kotex-oblivoir.doc.r62977.tar.xz +2022/04/08 | 532454 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma +2022/04/08 | 528015 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma +2022/04/08 | 52740 | systems/texlive/tlnet/archive/uwa-pcf.doc.r62977.tar.xz +2022/04/08 | 52479 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma +2022/04/08 | 52326 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma +2022/04/08 | 52093 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma +2022/04/08 | 5182 | macros/latex/contrib/bithesis/README.md +2022/04/08 | 51558 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma +2022/04/08 | 51485 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma +2022/04/08 | 513436 | systems/texlive/tlnet/archive/biblatex-swiss-legal.doc.r62977.tar.xz +2022/04/08 | 5128 | systems/texlive/tlnet/archive/pst-diffraction.r62977.tar.xz +2022/04/08 | 50798 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma +2022/04/08 | 50500 | systems/texlive/tlnet/archive/uwa-pif.doc.r62977.tar.xz +2022/04/08 | 49768 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma +2022/04/08 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +2022/04/08 | 48826 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma +2022/04/08 | 484370 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma +2022/04/08 | 481498 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma +2022/04/08 | 47922 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma +2022/04/08 | 477845 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma +2022/04/08 | 4748 | systems/texlive/tlnet/archive/pst-pulley.r62977.tar.xz +2022/04/08 | 46068 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma +2022/04/08 | 45824 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma +2022/04/08 | 45743 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma +2022/04/08 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc +2022/04/08 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc +2022/04/08 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc +2022/04/08 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc +2022/04/08 | 43915 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma +2022/04/08 | 43824 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma +2022/04/08 | 43646 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma +2022/04/08 | 43412 | systems/texlive/tlnet/archive/kotex-oblivoir.r62977.tar.xz +2022/04/08 | 43361 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma +2022/04/08 | 43224 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma +2022/04/08 | 42819 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma +2022/04/08 | 424416 | systems/texlive/tlnet/archive/bohr.doc.r62977.tar.xz +2022/04/08 | 41304 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma +2022/04/08 | 41203 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma +2022/04/08 | 41182 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma +2022/04/08 | 406064 | systems/texlive/tlnet/archive/texlive-scripts.doc.r62973.tar.xz +2022/04/08 | 39727 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma +2022/04/08 | 394370 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma +2022/04/08 | 393040 | systems/texlive/tlnet/archive/tikz-optics.doc.r62977.tar.xz +2022/04/08 | 3924 | systems/texlive/tlnet/archive/pst-coil.r62977.tar.xz +2022/04/08 | 38561 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma +2022/04/08 | 38440 | systems/texlive/tlnet/archive/circ.source.r62977.tar.xz +2022/04/08 | 38426 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma +2022/04/08 | 37772 | systems/texlive/tlnet/archive/pst-optexp.r62977.tar.xz +2022/04/08 | 37374 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma +2022/04/08 | 37216 | systems/texlive/tlnet/archive/zref.source.r62977.tar.xz +2022/04/08 | 37117 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma +2022/04/08 | 37080 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma +2022/04/08 | 3652 | systems/texlive/tlnet/archive/bohr.r62977.tar.xz +2022/04/08 | 360712 | systems/texlive/tlnet/archive/asymptote.r62977.tar.xz +2022/04/08 | 36049 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma +2022/04/08 | 356419 | macros/latex/contrib/bithesis.zip +2022/04/08 | 35242 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma +2022/04/08 | 35169 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma +2022/04/08 | 351696 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma +2022/04/08 | 35013704 | systems/texlive/tlnet/archive/aboensis.doc.r62977.tar.xz +2022/04/08 | 348928 | systems/texlive/tlnet/archive/lua-widow-control.doc.r62977.tar.xz +2022/04/08 | 34052 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma +2022/04/08 | 339647 | macros/latex/contrib/bithesis/bithesis.pdf +2022/04/08 | 33688 | systems/texlive/tlnet/archive/auncial-new.source.r62977.tar.xz +2022/04/08 | 3348 | systems/texlive/tlnet/archive/uwa-letterhead.r62977.tar.xz +2022/04/08 | 332414 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma +2022/04/08 | 3303 | macros/latex/contrib/bithesis/bithesis.ins +2022/04/08 | 32955 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma +2022/04/08 | 326661 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma +2022/04/08 | 325270 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma +2022/04/08 | 322096 | systems/texlive/tlnet/archive/oup-authoring-template.doc.r62977.tar.xz +2022/04/08 | 32133 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma +2022/04/08 | 3194708 | systems/texlive/tlnet/archive/pst-optexp.doc.r62977.tar.xz +2022/04/08 | 318124 | systems/texlive/tlnet/archive/auncial-new.doc.r62977.tar.xz +2022/04/08 | 316242 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma +2022/04/08 | 31587 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma +2022/04/08 | 31521 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma +2022/04/08 | 31412 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma +2022/04/08 | 31344 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma +2022/04/08 | 308860 | systems/texlive/tlnet/archive/pst-optic.doc.r62977.tar.xz +2022/04/08 | 30540 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma +2022/04/08 | 30146 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma +2022/04/08 | 296040 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma +2022/04/08 | 2924 | systems/texlive/tlnet/archive/uwa-pcf.r62977.tar.xz +2022/04/08 | 288202 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma +2022/04/08 | 28796 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma +2022/04/08 | 28689 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma +2022/04/08 | 286412 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma +2022/04/08 | 285715 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma +2022/04/08 | 28569 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma +2022/04/08 | 28421 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma +2022/04/08 | 2820687 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma +2022/04/08 | 27637 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma +2022/04/08 | 27592 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma +2022/04/08 | 274311 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma +2022/04/08 | 274273 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma +2022/04/08 | 27247 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma +2022/04/08 | 270300 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma +2022/04/08 | 2694875 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma +2022/04/08 | 2649 | macros/latex/contrib/bithesis/contributing-zh.md +2022/04/08 | 2616 | systems/texlive/tlnet/archive/ut-thesis.r62977.tar.xz +2022/04/08 | 2592 | systems/texlive/tlnet/archive/uwa-pif.r62977.tar.xz +2022/04/08 | 259257 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma +2022/04/08 | 25552 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma +2022/04/08 | 25481225 | systems/texlive/tlnet/install-tl.zip +2022/04/08 | 251130 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma +2022/04/08 | 25107 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma +2022/04/08 | 251028 | systems/texlive/tlnet/archive/pst-coil.doc.r62977.tar.xz +2022/04/08 | 25060 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma +2022/04/08 | 247333 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma +2022/04/08 | 245097 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma +2022/04/08 | 244961 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma +2022/04/08 | 24120 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma +2022/04/08 | 23945 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma +2022/04/08 | 2383372 | systems/texlive/tlnet/archive/asymptote.doc.r62977.tar.xz +2022/04/08 | 23672 | systems/texlive/tlnet/archive/circ.r62977.tar.xz +2022/04/08 | 2366944 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +2022/04/08 | 2332 | macros/latex/contrib/bithesis/contributing.md +2022/04/08 | 22147 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma +2022/04/08 | 213278 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma +2022/04/08 | 21314 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma +2022/04/08 | 210275 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma +2022/04/08 | 208808 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma +2022/04/08 | 207696 | systems/texlive/tlnet/archive/circ.doc.r62977.tar.xz +2022/04/08 | 20462457 | systems/texlive/tlnet/install-tl-windows.exe +2022/04/08 | 203838 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma +2022/04/08 | 202835 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma +2022/04/08 | 20183 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma +2022/04/08 | 201344 | systems/texlive/tlnet/archive/auncial-new.r62977.tar.xz +2022/04/08 | 200397 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma +2022/04/08 | 199832 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma +2022/04/08 | 1982083 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma +2022/04/08 | 197035 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma +2022/04/08 | 196118 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma +2022/04/08 | 190502 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma +2022/04/08 | 18493 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma +2022/04/08 | 18368 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma +2022/04/08 | 181515 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma +2022/04/08 | 18148 | systems/texlive/tlnet/archive/biblatex-swiss-legal.r62977.tar.xz +2022/04/08 | 179877 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma +2022/04/08 | 1752148 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma +2022/04/08 | 17492 | systems/texlive/tlnet/archive/oup-authoring-template.r62977.tar.xz +2022/04/08 | 173008 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma +2022/04/08 | 17258321 | systems/texlive/tlnet/tlpkg/texlive.tlpdb +2022/04/08 | 168820 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma +2022/04/08 | 16561 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma +2022/04/08 | 16503 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma +2022/04/08 | 156964 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma +2022/04/08 | 155496 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma +2022/04/08 | 155324 | systems/texlive/tlnet/archive/pst-optexp.source.r62977.tar.xz +2022/04/08 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 +2022/04/08 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 +2022/04/08 | 152029 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma +2022/04/08 | 1501234 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma +2022/04/08 | 14640 | systems/texlive/tlnet/archive/pst-optic.r62977.tar.xz +2022/04/08 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 +2022/04/08 | 1454764 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma +2022/04/08 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +2022/04/08 | 14476 | systems/texlive/tlnet/archive/zref.r62977.tar.xz +2022/04/08 | 14411 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma +2022/04/08 | 1440786 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma +2022/04/08 | 1439554 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma +2022/04/08 | 139102 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma +2022/04/08 | 138168 | systems/texlive/tlnet/archive/ut-thesis.doc.r62977.tar.xz +2022/04/08 | 13784 | systems/texlive/tlnet/archive/lua-widow-control.source.r62977.tar.xz +2022/04/08 | 135950 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma +2022/04/08 | 1357072 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma +2022/04/08 | 135377 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma +2022/04/08 | 13513 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma +2022/04/08 | 1329933 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma +2022/04/08 | 1329319 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma +2022/04/08 | 1322742 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma +2022/04/08 | 13160 | systems/texlive/tlnet/archive/tikz-optics.r62977.tar.xz +2022/04/08 | 1302482 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma +2022/04/08 | 126535 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma +2022/04/08 | 122132 | systems/texlive/tlnet/archive/pst-pulley.doc.r62977.tar.xz +2022/04/08 | 120616 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma +2022/04/08 | 1181126 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma +2022/04/08 | 115656 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma +2022/04/08 | 1156464 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma +2022/04/08 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini +2022/04/08 | 1131916 | systems/texlive/tlnet/archive/jacow.doc.r62977.tar.xz +2022/04/08 | 113053 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma +2022/04/08 | 112588 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma +2022/04/08 | 1100 | systems/texlive/tlnet/archive/simpleoptics.r62977.tar.xz +2022/04/08 | 109812 | systems/texlive/tlnet/archive/texlive-scripts.r62973.tar.xz +2022/04/08 | 109478 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma +2022/04/08 | 107705 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma +2022/04/08 | 1067976 | systems/texlive/tlnet/archive/pst-diffraction.doc.r62977.tar.xz +2022/04/08 | 10616 | systems/texlive/tlnet/archive/lua-widow-control.r62977.tar.xz +2022/04/08 | 104555 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma +2022/04/08 | 103337 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma +2022/04/08 | 103093 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma +2022/04/08 | 1021847 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma +2022/04/08 | 1006 | systems/win32/miktex/tm/packages/pr.ini +2022/04/08 | 100487 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma 2022/04/07 | 9878 | usergrps/usergrps/de.html 2022/04/07 | 982 | graphics/pgf/contrib/liftarm/README.md 2022/04/07 | 9816 | usergrps/usergrps/pl.html 2022/04/07 | 9811 | usergrps/usergrps/hu.html 2022/04/07 | 9744 | usergrps/usergrps/cz.html -2022/04/07 | 97201 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma 2022/04/07 | 9671 | usergrps/usergrps/fr.html -2022/04/07 | 96633 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma 2022/04/07 | 9651 | usergrps/usergrps/kr.html 2022/04/07 | 9628 | usergrps/usergrps/bg.html 2022/04/07 | 9590 | usergrps/usergrps/cn.html 2022/04/07 | 9581 | usergrps/usergrps/nl.html -2022/04/07 | 95432 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma 2022/04/07 | 9534 | usergrps/usergrps/it.html 2022/04/07 | 9531 | usergrps/usergrps/es.html -2022/04/07 | 95284 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma 2022/04/07 | 9422 | usergrps/usergrps/us.html 2022/04/07 | 9407 | usergrps/usergrps/gr.html -2022/04/07 | 93959 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma 2022/04/07 | 9386 | usergrps/usergrps/esc.html 2022/04/07 | 9382 | usergrps/usergrps/dk.html 2022/04/07 | 9380 | usergrps/usergrps/pt.html @@ -29,247 +289,50 @@ 2022/04/07 | 9298 | usergrps/usergrps/lt.html 2022/04/07 | 9297 | usergrps/usergrps/br.html 2022/04/07 | 9291 | usergrps/usergrps/uy.html -2022/04/07 | 92918 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma 2022/04/07 | 9282 | usergrps/usergrps/is.html 2022/04/07 | 9251 | usergrps/usergrps/kh.html 2022/04/07 | 9241 | usergrps/usergrps/mx.html 2022/04/07 | 9161 | usergrps/usergrps/ee.html 2022/04/07 | 9099 | macros/luatex/generic/lua-widow-control/lua-widow-control.sty 2022/04/07 | 888 | systems/texlive/tlnet/archive/knuth-hint.r62971.tar.xz -2022/04/07 | 88151 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma -2022/04/07 | 8784 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma 2022/04/07 | 868 | systems/texlive/tlnet/archive/collection-langenglish.r62971.tar.xz -2022/04/07 | 86758 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma 2022/04/07 | 8601 | macros/luatex/generic/lua-widow-control/lwc-documentation.mkxl 2022/04/07 | 856 | systems/texlive/tlnet/archive/knuth-pdf.r62969.tar.xz -2022/04/07 | 824369 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma -2022/04/07 | 81461 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma -2022/04/07 | 79024 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma -2022/04/07 | 78975 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma -2022/04/07 | 7753 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma -2022/04/07 | 77070 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma -2022/04/07 | 758954 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma -2022/04/07 | 755742 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma -2022/04/07 | 74069 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma -2022/04/07 | 73530 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma -2022/04/07 | 73477 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma -2022/04/07 | 73150 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma -2022/04/07 | 72887 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma -2022/04/07 | 72014 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma +2022/04/07 | 7200 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl 2022/04/07 | 711 | macros/luatex/generic/lua-widow-control/lua-widow-control.opm -2022/04/07 | 71006 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma 2022/04/07 | 706755 | macros/latex/contrib/zref.zip 2022/04/07 | 699064 | macros/latex/contrib/zref/zref.pdf -2022/04/07 | 693067 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma -2022/04/07 | 68873 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma 2022/04/07 | 686960 | systems/texlive/tlnet/archive/tikz-trackschematic.doc.r62966.tar.xz -2022/04/07 | 681940 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma -2022/04/07 | 68010 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma -2022/04/07 | 67705 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma -2022/04/07 | 67255 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma -2022/04/07 | 65055 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma -2022/04/07 | 64709 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma -2022/04/07 | 64543 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma -2022/04/07 | 64489 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma -2022/04/07 | 644704 | systems/win32/miktex/tm/packages/files.csv.lzma -2022/04/07 | 644630 | systems/win32/miktex/tm/packages/next/files.csv.lzma -2022/04/07 | 63739 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma 2022/04/07 | 6366 | usergrps/usergrps/index.html -2022/04/07 | 63310 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma -2022/04/07 | 631278 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma -2022/04/07 | 629432 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma -2022/04/07 | 62380 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma -2022/04/07 | 598231 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma -2022/04/07 | 591567 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma -2022/04/07 | 58665 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma -2022/04/07 | 58663 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma 2022/04/07 | 581 | macros/latex/contrib/zref/README.md -2022/04/07 | 5797435 | systems/texlive/tlnet/install-tl-unx.tar.gz -2022/04/07 | 57617 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma -2022/04/07 | 57526 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma -2022/04/07 | 57331 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma -2022/04/07 | 57270 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma -2022/04/07 | 56993 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma -2022/04/07 | 56617 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma -2022/04/07 | 565930 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma -2022/04/07 | 55758 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma -2022/04/07 | 55569 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma -2022/04/07 | 55286 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma -2022/04/07 | 532453 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma -2022/04/07 | 528018 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma -2022/04/07 | 52481 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma -2022/04/07 | 52326 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma -2022/04/07 | 52094 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma -2022/04/07 | 51557 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma -2022/04/07 | 51486 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma -2022/04/07 | 50800 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma -2022/04/07 | 49769 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma -2022/04/07 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 -2022/04/07 | 48825 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma -2022/04/07 | 484369 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma -2022/04/07 | 481499 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma -2022/04/07 | 47923 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma -2022/04/07 | 477847 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma -2022/04/07 | 46066 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma -2022/04/07 | 45825 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma -2022/04/07 | 45742 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma -2022/04/07 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc -2022/04/07 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc -2022/04/07 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc -2022/04/07 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc 2022/04/07 | 45532388 | systems/texlive/tlnet/archive/knuth-pdf.doc.r62969.tar.xz -2022/04/07 | 43916 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma -2022/04/07 | 43825 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma -2022/04/07 | 43646 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma -2022/04/07 | 43361 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma -2022/04/07 | 43225 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma -2022/04/07 | 42817 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma -2022/04/07 | 41306 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma -2022/04/07 | 41203 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma -2022/04/07 | 41182 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma -2022/04/07 | 405908 | systems/texlive/tlnet/archive/texlive-scripts.doc.r62961.tar.xz -2022/04/07 | 39728 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma -2022/04/07 | 394371 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma 2022/04/07 | 3895 | macros/luatex/generic/lua-widow-control/lwc-sample.tex -2022/04/07 | 38560 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma -2022/04/07 | 38427 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma 2022/04/07 | 382801 | install/macros/luatex/generic/lua-widow-control.tds.zip 2022/04/07 | 380127 | macros/luatex/generic/lua-widow-control/lua-widow-control.pdf 2022/04/07 | 379267 | macros/luatex/generic/lua-widow-control.zip -2022/04/07 | 37371 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma -2022/04/07 | 37116 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma -2022/04/07 | 37080 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma -2022/04/07 | 36049 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma -2022/04/07 | 35243 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma -2022/04/07 | 351696 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma -2022/04/07 | 35168 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma -2022/04/07 | 34053 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma -2022/04/07 | 332414 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma 2022/04/07 | 32987 | usergrps/usergrps/lugs.html -2022/04/07 | 32954 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma -2022/04/07 | 326661 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma -2022/04/07 | 325270 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma -2022/04/07 | 32134 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma -2022/04/07 | 316242 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma -2022/04/07 | 31586 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma -2022/04/07 | 31520 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma -2022/04/07 | 31412 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma -2022/04/07 | 31344 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma -2022/04/07 | 30542 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma -2022/04/07 | 30146 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma 2022/04/07 | 29712 | macros/luatex/generic/lua-widow-control/lwc-documentation.tex 2022/04/07 | 29624 | systems/texlive/tlnet/archive/srdp-mathematik.r62970.tar.xz -2022/04/07 | 296041 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma -2022/04/07 | 288201 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma -2022/04/07 | 28796 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma -2022/04/07 | 28690 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma -2022/04/07 | 286413 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma -2022/04/07 | 285713 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma -2022/04/07 | 28569 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma -2022/04/07 | 28422 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma -2022/04/07 | 2820689 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma -2022/04/07 | 27636 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma -2022/04/07 | 27591 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma -2022/04/07 | 274324 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma -2022/04/07 | 274266 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma -2022/04/07 | 27248 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma -2022/04/07 | 270297 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma 2022/04/07 | 2699 | macros/luatex/generic/lua-widow-control/lua-widow-control-2022-02-22.sty -2022/04/07 | 2694875 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma 2022/04/07 | 2690 | macros/luatex/generic/lua-widow-control/t-lua-widow-control.mkxl 2022/04/07 | 2690 | macros/luatex/generic/lua-widow-control/t-lua-widow-control.mkiv 2022/04/07 | 2629 | macros/luatex/generic/lua-widow-control/README.md -2022/04/07 | 259258 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma -2022/04/07 | 25552 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma -2022/04/07 | 25481237 | systems/texlive/tlnet/install-tl.zip -2022/04/07 | 251129 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma -2022/04/07 | 25106 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma -2022/04/07 | 25060 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma -2022/04/07 | 247334 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma -2022/04/07 | 245096 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma -2022/04/07 | 244961 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma -2022/04/07 | 24120 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma -2022/04/07 | 23944 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma -2022/04/07 | 2365664 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz 2022/04/07 | 234680 | systems/texlive/tlnet/archive/erewhon-math.r62967.tar.xz 2022/04/07 | 22395 | graphics/pgf/contrib/liftarm/liftarm.tex -2022/04/07 | 22147 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma -2022/04/07 | 213278 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma -2022/04/07 | 21313 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma -2022/04/07 | 210275 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma -2022/04/07 | 208808 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma 2022/04/07 | 20749 | macros/luatex/generic/lua-widow-control/lua-widow-control.lua -2022/04/07 | 20461261 | systems/texlive/tlnet/install-tl-windows.exe -2022/04/07 | 203835 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma -2022/04/07 | 202835 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma -2022/04/07 | 20184 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma 2022/04/07 | 201528 | systems/texlive/tlnet/archive/xcharter-math.r62968.tar.xz 2022/04/07 | 2004786 | graphics/pgf/contrib/liftarm/liftarm.pdf -2022/04/07 | 200396 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma -2022/04/07 | 199832 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma -2022/04/07 | 1982085 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma 2022/04/07 | 197178 | macros/latex/contrib/zref/zref.dtx 2022/04/07 | 1971244 | systems/texlive/tlnet/archive/erewhon-math.doc.r62967.tar.xz -2022/04/07 | 197034 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma -2022/04/07 | 196116 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma 2022/04/07 | 1945300 | systems/texlive/tlnet/archive/xcharter-math.doc.r62968.tar.xz 2022/04/07 | 19402560 | systems/texlive/tlnet/archive/knuth-hint.doc.r62971.tar.xz -2022/04/07 | 190503 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma 2022/04/07 | 1881776 | graphics/pgf/contrib/liftarm.zip -2022/04/07 | 18492 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma -2022/04/07 | 18368 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma -2022/04/07 | 181518 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma 2022/04/07 | 1812 | macros/luatex/generic/lua-widow-control/lua-widow-control.tex -2022/04/07 | 179876 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma 2022/04/07 | 17657 | CTAN.sites -2022/04/07 | 1752148 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma -2022/04/07 | 173008 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma -2022/04/07 | 17258232 | systems/texlive/tlnet/tlpkg/texlive.tlpdb -2022/04/07 | 168820 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma -2022/04/07 | 16559 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma -2022/04/07 | 16503 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma 2022/04/07 | 15780 | systems/texlive/tlnet/archive/tikz-trackschematic.r62966.tar.xz -2022/04/07 | 156964 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma -2022/04/07 | 155497 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma -2022/04/07 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 -2022/04/07 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 -2022/04/07 | 152027 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma -2022/04/07 | 1501236 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma 2022/04/07 | 1492 | macros/luatex/generic/lua-widow-control/lwc-documentation.bib 2022/04/07 | 146800 | systems/texlive/tlnet/archive/srdp-mathematik.doc.r62970.tar.xz -2022/04/07 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 -2022/04/07 | 1454762 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma -2022/04/07 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 -2022/04/07 | 14411 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma -2022/04/07 | 1440504 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma -2022/04/07 | 1439885 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma 2022/04/07 | 14005 | graphics/pgf/contrib/liftarm/liftarm.sty -2022/04/07 | 139102 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma -2022/04/07 | 135949 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma -2022/04/07 | 1357069 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma -2022/04/07 | 135378 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma -2022/04/07 | 13509 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma -2022/04/07 | 1329838 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma -2022/04/07 | 1329778 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma -2022/04/07 | 1322741 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma -2022/04/07 | 1302486 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma -2022/04/07 | 126533 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma -2022/04/07 | 120619 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma -2022/04/07 | 1181126 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma -2022/04/07 | 115657 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma -2022/04/07 | 1156462 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma -2022/04/07 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini -2022/04/07 | 113052 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma -2022/04/07 | 112590 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma -2022/04/07 | 109816 | systems/texlive/tlnet/archive/texlive-scripts.r62961.tar.xz -2022/04/07 | 109479 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma -2022/04/07 | 107706 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma -2022/04/07 | 104555 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma -2022/04/07 | 103338 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma -2022/04/07 | 103093 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma -2022/04/07 | 1021849 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma -2022/04/07 | 1006 | systems/win32/miktex/tm/packages/pr.ini -2022/04/07 | 100488 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma 2022/04/06 | 99 | graphics/asymptote/base/asy_filetype.vim 2022/04/06 | 99993 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/utilityclass.png 2022/04/06 | 994 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer_sf/common_footer.htm @@ -654,7 +717,6 @@ 2022/04/06 | 667 | graphics/asymptote/tinyexr.cc 2022/04/06 | 667 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentPositionParams.h 2022/04/06 | 667 | graphics/asymptote/examples/spring.asy -2022/04/06 | 667608 | systems/texlive/tlnet/archive/zref.doc.r62956.tar.xz 2022/04/06 | 66751 | graphics/asymptote/prc/writePRC.cc 2022/04/06 | 6650 | graphics/asymptote/getopt.h 2022/04/06 | 664 | graphics/asymptote/GUI/res/icons/android-delete.svg @@ -869,7 +931,6 @@ 2022/04/06 | 5415 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_xml_outfiles_test.py 2022/04/06 | 54109 | graphics/asymptote/LspCpp/src/jsonrpc/optional.hpp 2022/04/06 | 54109 | graphics/asymptote/LspCpp/include/optional.hpp -2022/04/06 | 539196 | systems/texlive/tlnet/archive/kotex-oblivoir.doc.r62924.tar.xz 2022/04/06 | 537 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/double-slip_turnout_right.tikz 2022/04/06 | 5375 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample3-inl.h 2022/04/06 | 536 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/double-slip_turnout_left.tikz @@ -1208,7 +1269,6 @@ 2022/04/06 | 433 | graphics/asymptote/examples/twoSpheres.asy 2022/04/06 | 4335 | graphics/asymptote/prc/PRCTools/describePRC.h 2022/04/06 | 43348 | systems/texlive/tlnet/archive/tuda-ci.r62948.tar.xz -2022/04/06 | 43340 | systems/texlive/tlnet/archive/kotex-oblivoir.r62924.tar.xz 2022/04/06 | 43335 | graphics/asymptote/examples/100d.pdb1 2022/04/06 | 432 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/bufferstop_backward.tikz 2022/04/06 | 431 | graphics/pgf/contrib/tikz-trackschematic/tikz-trackschematic-snippets/bufferstop_forward.tikz @@ -1345,7 +1405,6 @@ 2022/04/06 | 3723 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-matchers.cc 2022/04/06 | 3723 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock.h 2022/04/06 | 3723 | graphics/asymptote/LspCpp/third_party/threadpool/CHANGE_LOG -2022/04/06 | 37200 | systems/texlive/tlnet/archive/zref.source.r62956.tar.xz 2022/04/06 | 3719 | graphics/asymptote/base/three_light.asy 2022/04/06 | 37135 | graphics/asymptote/cudareflect/tinyexr/examples/exr2fptiff/tiny_dng_writer.h 2022/04/06 | 370 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf16lebom.json @@ -1410,7 +1469,6 @@ 2022/04/06 | 348 | graphics/asymptote/examples/RiemannSurface.asy 2022/04/06 | 347 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/cmake/gmock.pc.in 2022/04/06 | 3472 | graphics/asymptote/picture.h -2022/04/06 | 347124 | systems/texlive/tlnet/archive/lua-widow-control.doc.r62934.tar.xz 2022/04/06 | 3467 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/data/webapp.json 2022/04/06 | 3466 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-filter-unittest_.cc 2022/04/06 | 345 | graphics/asymptote/examples/rainbow.asy @@ -1476,7 +1534,6 @@ 2022/04/06 | 3230 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_leak_test_.cc 2022/04/06 | 322 | graphics/asymptote/examples/unitcircle.asy 2022/04/06 | 322 | graphics/asymptote/examples/cheese.asy -2022/04/06 | 322092 | systems/texlive/tlnet/archive/oup-authoring-template.doc.r62943.tar.xz 2022/04/06 | 321 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/README 2022/04/06 | 3219 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-shuffle-test_.cc 2022/04/06 | 3218 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_test_utils.py @@ -2074,7 +2131,6 @@ 2022/04/06 | 1751 | graphics/asymptote/GUI/GuidesManager.py 2022/04/06 | 175096 | systems/texlive/tlnet/archive/seu-ml-assign.doc.r62933.tar.xz 2022/04/06 | 174 | graphics/asymptote/cudareflect/tinyexr/examples/testmapgen/Makefile -2022/04/06 | 17492 | systems/texlive/tlnet/archive/oup-authoring-template.r62943.tar.xz 2022/04/06 | 1746 | graphics/asymptote/doc/westnile.asy 2022/04/06 | 17432 | systems/texlive/tlnet/archive/pxjahyper.r62921.tar.xz 2022/04/06 | 173 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/readme.txt @@ -2237,7 +2293,6 @@ 2022/04/06 | 145014 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/gmock_cook_book.md 2022/04/06 | 144 | graphics/asymptote/doc/latexmkrc 2022/04/06 | 1449 | graphics/asymptote/GUI/SetCustomAnchor.py -2022/04/06 | 14472 | systems/texlive/tlnet/archive/zref.r62956.tar.xz 2022/04/06 | 1441 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/pass1.json 2022/04/06 | 1440 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/selectionRange.h 2022/04/06 | 143 | graphics/asymptote/tests/gc/label.asy @@ -2274,7 +2329,6 @@ 2022/04/06 | 137096 | systems/texlive/tlnet/archive/jlreq.r62916.tar.xz 2022/04/06 | 136 | graphics/asymptote/examples/latticeshading.asy 2022/04/06 | 1368 | systems/texlive/tlnet/archive/mendex-doc.r62914.tar.xz -2022/04/06 | 13680 | systems/texlive/tlnet/archive/lua-widow-control.source.r62934.tar.xz 2022/04/06 | 13663 | graphics/asymptote/doc/install-sh 2022/04/06 | 13663 | graphics/asymptote/doc/FAQ/install-sh 2022/04/06 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r62918.tar.xz @@ -2507,7 +2561,6 @@ 2022/04/06 | 1063 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/minimum.json 2022/04/06 | 1063 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/maximum.json 2022/04/06 | 10632 | graphics/asymptote/EnvVarUpdate.nsh -2022/04/06 | 10596 | systems/texlive/tlnet/archive/lua-widow-control.r62934.tar.xz 2022/04/06 | 1058 | graphics/asymptote/GUI/res/icons/closedpolygon.svg 2022/04/06 | 10585 | graphics/asymptote/path3.h 2022/04/06 | 10581 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/serializer.h @@ -2606,7 +2659,6 @@ 2022/04/05 | 7758 | systems/win32/miktex/tm/packages/colorist__source.tar.lzma 2022/04/05 | 77399 | info/ptex-manual/eptexdoc.tex 2022/04/05 | 74703 | macros/latex/contrib/srdp-mathematik/srdp-mathematik.sty -2022/04/05 | 7274 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl 2022/04/05 | 7239077 | systems/win32/miktex/tm/packages/hvfloat__doc.tar.lzma 2022/04/05 | 711804 | systems/texlive/tlnet/archive/simplivre.doc.r62900.tar.xz 2022/04/05 | 698426 | systems/win32/miktex/tm/packages/simplivre__doc.tar.lzma @@ -2850,6 +2902,7 @@ 2022/04/04 | 4893 | macros/latex/contrib/minimalist/minimalist.sty 2022/04/04 | 4855 | support/latexindent/documentation/subsubsec-ifelsefi.tex 2022/04/04 | 4757 | macros/latex/contrib/projlib/README.md +2022/04/04 | 4752 | macros/generic/ifptex/README-ja.md 2022/04/04 | 4748 | macros/latex/contrib/siunitx/siunitx-abbreviations.cfg 2022/04/04 | 4662 | support/latexindent/LatexIndent/BlankLines.pm 2022/04/04 | 45755 | support/latexindent/LatexIndent/GetYamlSettings.pm @@ -2860,6 +2913,7 @@ 2022/04/04 | 4270 | support/latexindent/LatexIndent/NamedGroupingBracesBrackets.pm 2022/04/04 | 4009 | macros/latex/contrib/colorist/colorist.sty 2022/04/04 | 398398 | macros/latex/contrib/scontents.zip +2022/04/04 | 3933 | macros/generic/ifptex/README.md 2022/04/04 | 3831 | support/latexindent/documentation/subsubsec-special.tex 2022/04/04 | 371465 | language/japanese/jlreq/jlreq-ja.pdf 2022/04/04 | 3687 | macros/latex/contrib/siunitx/siunitx.ins @@ -2950,6 +3004,7 @@ 2022/04/04 | 1876 | support/latexindent/README 2022/04/04 | 179052 | dviware/dvidvi.zip 2022/04/04 | 177690 | macros/luatex/generic/luakeys.zip +2022/04/04 | 1754 | macros/generic/ifptex/ifuptex.sty 2022/04/04 | 1729 | macros/latex/contrib/siunitx/siunitx-binary.cfg 2022/04/04 | 169502 | macros/luatex/generic/luakeys/luakeys-doc.pdf 2022/04/04 | 16709 | macros/latex/contrib/siunitx/siunitx-angle.dtx @@ -2980,6 +3035,7 @@ 2022/04/04 | 14024 | support/latexindent/documentation/subsec-commands-and-their-options.tex 2022/04/04 | 13969 | support/latexindent/LatexIndent/Special.pm 2022/04/04 | 132387 | macros/latex/contrib/minimalist.zip +2022/04/04 | 12760 | macros/generic/ifptex/ifptex.sty 2022/04/04 | 12661 | support/latexindent/LatexIndent/Braces.pm 2022/04/04 | 125809 | macros/latex/contrib/colorist.zip 2022/04/04 | 12434 | support/latexindent/LatexIndent/LogFile.pm @@ -2987,6 +3043,7 @@ 2022/04/04 | 124008 | macros/latex/contrib/siunitx/siunitx-number.dtx 2022/04/04 | 119712 | language/japanese/jlreq/jlreq.pdf 2022/04/04 | 11640 | support/latexindent/LatexIndent/FileContents.pm +2022/04/04 | 1091 | macros/generic/ifptex/LICENSE 2022/04/04 | 10829 | support/latexindent/documentation/sec-indent-config-and-settings.tex 2022/04/04 | 10802 | support/latexindent/LatexIndent/Heading.pm 2022/04/04 | 1069437 | support/latexindent/documentation/latexindent.pdf @@ -3056,61 +3113,3 @@ 2022/04/02 | 11805 | graphics/pgf/contrib/simplenodes/simplenodes.org 2022/04/02 | 117843 | macros/latex/contrib/create-theorem/create-theorem-doc.pdf 2022/04/02 | 1143 | graphics/pgf/contrib/simplenodes/LICENSE -2022/04/01 | 943 | macros/latex/contrib/acro/examples/acro.example.issue-119.tex -2022/04/01 | 915457 | macros/latex/contrib/acro/acro-manual.pdf -2022/04/01 | 874429 | info/kaytannollista-latexia/kaytannollista-latexia.pdf -2022/04/01 | 86927 | info/kaytannollista-latexia/luku-merkintakieli.tex -2022/04/01 | 8175 | macros/latex/contrib/acro/examples/acro.example.issue-119.pdf -2022/04/01 | 799313 | info/install-latex-guide-zh-cn.zip -2022/04/01 | 779 | macros/latex/contrib/acro/examples/acro.example.possessive.tex -2022/04/01 | 758391 | info/install-latex-guide-zh-cn/install-latex-guide-zh-cn.pdf -2022/04/01 | 757 | macros/latex/contrib/acro/examples/acro.example.texsx-542461.tex -2022/04/01 | 7091 | macros/latex/contrib/ocgx2/ChangeLog -2022/04/01 | 706 | macros/latex/contrib/acro/examples/acro.example.issue-111.tex -2022/04/01 | 65067 | macros/latex/contrib/acro/examples/acro.example.units.pdf -2022/04/01 | 639045 | macros/latex/contrib/functional/functional.pdf -2022/04/01 | 6300 | info/kaytannollista-latexia/README.md -2022/04/01 | 62267 | macros/latex/contrib/functional/functional.sty -2022/04/01 | 555411 | macros/latex/contrib/functional.zip -2022/04/01 | 372 | macros/latex/contrib/acro/examples/acro.example.texsx-515295.tex -2022/04/01 | 353 | macros/latex/contrib/acro/examples/acro.example.texsx-513623.tex -2022/04/01 | 34622 | install/macros/latex/contrib/ocgx2.tds.zip -2022/04/01 | 33721 | macros/latex/contrib/acro/examples/acro.example.texsx-507726.pdf -2022/04/01 | 33563 | macros/latex/contrib/ocgx2.zip -2022/04/01 | 329 | macros/latex/contrib/acro/examples/acro.example.issue-109.tex -2022/04/01 | 3256 | macros/latex/contrib/acro/acro-examples.sty -2022/04/01 | 32432 | macros/latex/contrib/acro/examples/acro.example.texsx-505891.pdf -2022/04/01 | 3214 | macros/latex/contrib/acro/examples/acro.example.basic.tex -2022/04/01 | 316496 | info/kaytannollista-latexia/luku-rakenne.tex -2022/04/01 | 315 | macros/latex/contrib/acro/examples/acro.example.acflike.tex -2022/04/01 | 30275 | macros/latex/contrib/acro/examples/acro.example.issue-109.pdf -2022/04/01 | 29 | info/kaytannollista-latexia/versio.tex -2022/04/01 | 2989 | info/kaytannollista-latexia/kirjallisuutta.bib -2022/04/01 | 286 | macros/latex/contrib/acro/examples/acro.example.issue-154.tex -2022/04/01 | 2633 | info/kaytannollista-latexia/luku-esipuhe.tex -2022/04/01 | 25997 | macros/latex/contrib/ocgx2/ocgbase.sty -2022/04/01 | 24224 | macros/latex/contrib/acro/examples/acro.example.issue-154.pdf -2022/04/01 | 22752 | macros/latex/contrib/acro/examples/acro.example.texsx-513623.pdf -2022/04/01 | 213480 | macros/latex/contrib/functional/functional.tex -2022/04/01 | 2124 | macros/latex/contrib/acro/README -2022/04/01 | 20922 | macros/latex/contrib/acro/examples/acro.example.acflike.pdf -2022/04/01 | 20612 | info/kaytannollista-latexia/luku-erikoiset.tex -2022/04/01 | 20558 | info/kaytannollista-latexia/luku-valmistautuminen.tex -2022/04/01 | 1978 | macros/latex/contrib/acro/examples/acro.example.units.tex -2022/04/01 | 178052 | macros/latex/contrib/acro/acro.sty -2022/04/01 | 15855 | macros/latex/contrib/acro/examples/acro.example.texsx-515295.pdf -2022/04/01 | 15808 | macros/latex/contrib/acro/examples/acro.example.texsx-542461.pdf -2022/04/01 | 15733 | macros/latex/contrib/acro/examples/acro.example.issue-111.pdf -2022/04/01 | 15339 | info/kaytannollista-latexia/kaytannollista-latexia.tex -2022/04/01 | 1476 | macros/latex/contrib/acro/examples/acro.example.texsx-507726.tex -2022/04/01 | 144557 | macros/latex/contrib/acro/acro2.sty -2022/04/01 | 1407554 | macros/latex/contrib/acro.zip -2022/04/01 | 13686 | macros/latex/contrib/acro/examples/acro.example.possessive.pdf -2022/04/01 | 125351 | macros/latex/contrib/acro/examples/acro.example.basic.pdf -2022/04/01 | 122584 | info/kaytannollista-latexia/luku-asetukset.tex -2022/04/01 | 12129 | info/kaytannollista-latexia/tavutusvihjeet.tex -2022/04/01 | 117736402 | macros/context/latest/cont-tmf.zip -2022/04/01 | 109620 | macros/latex/contrib/ocgx2/ocgx2.sty -2022/04/01 | 107078 | macros/latex/contrib/acro/acro-manual.tex -2022/04/01 | 1068 | macros/latex/contrib/acro/examples/acro.example.texsx-505891.tex -2022/04/01 | 1020847 | info/kaytannollista-latexia.zip diff --git a/graphics/pgf/contrib/messagepassing/README.md b/graphics/pgf/contrib/messagepassing/README.md new file mode 100644 index 0000000000..4af22705d4 --- /dev/null +++ b/graphics/pgf/contrib/messagepassing/README.md @@ -0,0 +1,28 @@ +# The `messagepassing` package + +This package provides an environement and commands to easily draw diagrams to represent communication protocols using message passing among processes. + +Processes are represented as horizontal (or vertical) lines, and communications as arrows between lines. The package also provides multiple macros to decorate those diagrams, for instance to annotate the diagram, to add crashes to the processes, checkpoints, etc.. + +The package works on top of tikz, which makes it easy to add ad-hoc items using regular tikz commands. +To use it, run the following commands: + +``` +$ latex messagepassing.ins +$ pdflatex messagepassing.dtx +``` + +The first command generates the file messagepassing.sty that should be placed in the same folder than your main document. The second command generates the file messagepassing.pdf (you may require multiple runs to adjust internal references), which is the documentation for the package. + + +## License + +This package is provided under the terms of the LaTeX Project Public License, version 1.3 or later. + +## Author + +The initial author of this package is Martin Vassor. + +## Related packages + + - [msc](https://www.ctan.org/pkg/msc): used to typeset message sequence diagrams, according to the Recommendation Z.120 of the International Telecommunication Union; diff --git a/graphics/pgf/contrib/messagepassing/messagepassing.dtx b/graphics/pgf/contrib/messagepassing/messagepassing.dtx new file mode 100644 index 0000000000..3811f558a5 --- /dev/null +++ b/graphics/pgf/contrib/messagepassing/messagepassing.dtx @@ -0,0 +1,861 @@ +% \iffalse meta-comment +% Copyright (C) 2022 by Martin Vassor +% This file may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3 of this license or (at your option) any later +% version. The latest version of this license is in: +% +% http://www.latex-project.org/lppl.txt +% +% and version 1.3 or later is part of all distributions of +% LaTeX version 2005/12/01 or later. +% +% \fi + +% \iffalse +% \NeedsTeXFormat{LaTeX2e} +% \ProvidesPackage{messagepassing}[2022/02/18 v1.0 A package to draw message passing diagrams] +% \RequirePackage{tikz} +% \usetikzlibrary{quotes, calc, arrows.meta} +% \RequirePackage{xparse} +% \RequirePackage{float} +% + +%<*driver> +\documentclass{ltxdoc} +\usepackage{messagepassing} +\usepackage[hidelinks]{hyperref} +\usepackage{xspace} +\usepackage[super]{nth} +\usepackage{subcaption} +\usepackage{listings} +\lstset{ + language=[LaTeX]{TeX}, +} +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\begin{document} + \DocInput{messagepassing.dtx} +\end{document} +% +% \fi + +% \CheckSum{0} +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% +% \changes{v1.0}{2022/02/18}{Initial version for publication} +% +% \GetFileInfo{messagepassing.sty} +% +% \title{The \textsf{messagepassing} package\thanks{This document +% corresponds to \textsf{messagepassing}~\fileversion, +% dated \filedate.}} +% \author{Martin Vassor\\ \texttt{bromind+ctan@gresille.org}} +% +% +% \maketitle +% \tableofcontents +% \newcommand{\TikZ}{Ti\textit{k}Z\xspace} + +% \section{Introduction} +% This package provides an environment and associated macros to easily draw +% message passing diagrams. For instance, Execution.~\ref{mp:ex1} shows the capabilities offered +% by the package. +% +% \begin{messagepassing}[][An example of message passing][h][mp:ex1] +% \newprocesswithlength{p}{9} +% \newprocesswithlength{q}{9} +% \newprocesswithlength{r}{5} +% \crash{r}{5}{k} +% +% \checkpoint{p}{0}{c_p^0} +% \checkpoint{q}{0}{c_q^0} +% \checkpoint{r}{0}{c_r^0} +% \checkpoint{p}{4}{c_p^1} +% +% \stateinterval{p}{0}{si_p^0} +% \stateinterval{q}{0}{si_q^0} +% \stateinterval{r}{0}{si_r^0} +% +% \sendwithstateinterval{p}{1}{q}{2}{si_q^1} +% \sendwithstateinterval{r}{3}{q}{4}{si_q^2} +% \sendwithstateintervalandname{q}{5}{p}{6}{si_p^1}{\(m\)} +% \sendoutofband{q}{5}{r}{6}{\(m_\mathrm{copy}\)} +% \stateinterval{r}{6}{si_r^0} +% \restart{r}{6}{3} +% +% \annotate{r}{8}{restart} +% \annotatexplicit{p}{8}{\(1+1=2\)}{note} +% +% \colouredbox{p}{q}{7}{9}{Protocol} +% +% \drawtimeline{9} +% \end{messagepassing} + +% +% \section{Usage} +% \subsection{Loading the package} +% The package accepts two options: \verb+vertical+ and \verb+annotatevertical+. +% If the former is set, executions will be drawn with time going from top to +% bottom, instead of from left to right. Doing so, almost all +% labels\footnote{Annotations are not rotated, unless explicitly asked.} are +% rotated as well. If, \emph{in addition}, \verb+annotatevertical+ is set, then +% annotations (including named of colouredboxes) are rotated as well. + +% \subsection{Basic usage} +% \subsubsection{Creating a diagram.} + +% \DescribeEnv{messagepassing} A diagram can easily be created using the +% |messagepassing| environment. The syntax is: +% |\begin{messagepassing}| \oarg{tikz} \oarg{caption} \oarg{placement} +% \oarg{label}. +% The first optional argument (\emph{tikz}) contains arguments that are passed +% to the underlying tikz environment. The second argument (\emph{caption}) has +% two effect: if set, it turns the diagram into a floating figure, and the +% content of the argument is the caption of the floating figure. The third +% argument (\emph{placement}) is the placement option of the figure, the default +% is |p|. Finally, the fourth option (\emph{label}) is the label used to +% reference the figure. +% +% For instance, the diagram in Figure~\ref{mp:ex1} is created with the following +% commands: +% \begin{verbatim} +% \begin{messagepassing}[][An example of message passing][h][mp:ex1] +% % ... +% \end{messagepassing} +% \end{verbatim} + +% \paragraph{Setting up the diagram.} +% When created, the diagram is empty. Before actually writing the message +% exchanges, we have to set up a few things: set whether we want a timeline (and +% if it is the case, of which length), and set the number of processes with +% their names, etc. +% \subparagraph{Creating a new process.} +% Each process is characterised by its name. +% \DescribeMacro{\newprocess} The simplest macro to create a new process is then +% |\newprocess| \marg{name}, where \marg{name} is the name of the process (resp. +% \(p\), \(q\), and \(r\) in Figure~\ref{mp:ex1}). +% +% In addition, we often draw a horizontal\footnote{By default, the line is vertical if +% the option |vertical| is used.} line that represent the running process. +% Although this line can be manually +% added\footnote{|processlength|\marg{process}\marg{length} +% creates a line of length \emph{length} for process \emph{process}.}, we also +% provide a simple macro that performs both actions: +% \DescribeMacro{\newprocesswithlength} +% |\newprocesswithlength|\marg{name}\marg{length}. +% +% An other alternative is to name the state in which the process starts (in +% Fig~\ref{mp:ex1}, we call those states \(si\) as \emph{state intervals}). +% Again, this can be achieved using individual commands, but we also provide +% \DescribeMacro{\newprocesswithstateinterval} +% |\newprocesswithstateinterval|\marg{name}\marg{state name}. +% +% Finally, an other way to create a process is to create a process that +% (eventually) fails, which is represented by the process' line terminating +% early with a cross. For that, we provide \DescribeMacro{\newprocesswithcrash} +% |\newprocesswithcrash|\marg{name}\marg{length}\marg{crash coordinate name}. +% The first two arguments are similar to |\newprocesswithlength|, and the latter +% one is used to provide a name for the coordinate where the crash occurs. This +% name can later be used to place nodes. +% +% Of course, we can imagine other combinations (e.g. a process with a length and +% a state interval). We do not provide individual commands for each combination, +% but the can be easily achieved using separate commands. +% +% As an example, the processes of Fig.~\ref{mp:ex1} are created as follows. +% \begin{verbatim} +% \newprocesswithlength{p}{9} +% \newprocesswithlength{q}{9} +% \newprocesswithlength{r}{5} +% \end{verbatim} +% +% \subparagraph{Setting up a timeline.} +% An other setup action consists in setting up (if wanted) the timeline. Notice +% that this can be done \emph{at any place} in the diagram. To do so, simply use +% the command \DescribeMacro{\drawtimeline}|\drawtimeline|\marg{length}, where +% \emph{length} is the length of the desired timeline. + +% \subsubsection{Populating the run.} +% Now that we have some processes, we have to populate the diagram with some +% actions. +% +% \paragraph{Basic message.} +% The most basic action is to send a message. For that, we provide the command +% \DescribeMacro{\send} |\send|\marg{sender}\marg{send +% time}\marg{receiver}\marg{receive time}. The sender and receiver are +% identified with their names, and the sending and receiving times are given +% according to their timestamp\footnote{Notice that nothing prevents sending +% messages in the past, simply set a receiving time before the sending time.}. +% +% In addition, we can label the arrow with the message that is sent with +% \DescribeMacro{\sendwithname} +% |\sendwithname|\marg{sender}\marg{send time}\marg{receiver}\marg{receive +% time}\marg{label}. +% For instance, in Figure~\ref{fig:ex_msg}, we use |\send{p}{1}{q}{2}|. +% +% Finally, we sometimes distinguish \emph{out-of-band} messages, e.g. messages +% that do not carry informations, but that are for instance used for metadata, +% etc.. We provide the macro +% \DescribeMacro{\sendoutofband}|\sendoutofband|\marg{sender}\marg{send time}\marg{receiver}\marg{receive +% time}\marg{label}, which behaves similarly to |\sendwithname|, but prints the +% message in an other colour. +% +% \begin{figure} +% \centering +% \begin{minipage}{.35\textwidth} +% \begin{messagepassing} +% \newprocesswithlength{p}{4} +% \newprocesswithlength{q}{4} +% \send{p}{1}{q}{2} +% \sendwithname{p}{2}{q}{3}{msg} +% \end{messagepassing} +% \end{minipage} +% ~ +% \begin{minipage}{.60\textwidth} +% \iffalse +%<*example> +% \fi +% \begin{lstlisting} +\begin{messagepassing} + \newprocesswithlength{p}{4} + \newprocesswithlength{q}{4} + \send{p}{1}{q}{2} + \sendwithname{p}{2}{q}{3}{msg} +\end{messagepassing} +\end{lstlisting} +% \iffalse +% +% \fi +% \end{minipage} +% \caption{A very simple protocol with a single message exchanged.} +% \label{fig:ex_msg} +% \end{figure} +% +% + +% \paragraph{Process crash and restore.} +% The crash of a process can be represented using +% \DescribeMacro{\crash} +% |\crash|\marg{process name}\marg{time}\marg{crash name}. The argument \emph{process name} +% is the name of the process that crashes, and \emph{crash name} is used to give +% a name to the crash. Naming the crash is useful for coordinates (see below). +% Finally, \emph{time} specifies when the crash occurs. Notice that this does +% not modify the timeline: it simply adds a crash token at the specified +% coordinate. This means that (i) then timeline has to stop at the crash's time; +% and (ii) it has to be restarted after. To stop the timeline, simply take the +% crash into account when setting the initial timeline. To restart the timeline, +% we provide the command +% \DescribeMacro{\restart}|\restart|\marg{name}\marg{date}\marg{duration}. +% \emph{name} specifies which process is to be restarted; \emph{date} specifies +% when the process should be restarted, and \emph{duration} specifies how long +% the process shoud be alive (i.e. what is the length of the timeline) after the +% restart. +% \begin{figure} +% \centering +% \begin{minipage}{.35\textwidth} +% \begin{messagepassing} +% \newprocesswithlength{p}{4} +% \newprocesswithlength{q}{2} +% \send{p}{1}{q}{2} +% \crash{q}{2}{crash} +% \restart{q}{3}{1} +% \end{messagepassing} +% \end{minipage} +% ~ +% \begin{minipage}{.60\textwidth} +% \iffalse +%<*example> +% \fi +% \begin{lstlisting} + \begin{messagepassing} + \newprocesswithlength{p}{4} + \newprocesswithlength{q}{2} + \send{p}{1}{q}{2} + \crash{q}{2}{crash} + \restart{q}{3}{1} + \end{messagepassing} +\end{lstlisting} +% \iffalse +% +% \fi +% \end{minipage} +% \caption{A protocol with a crashed process.} +% \end{figure} +% + +% \paragraph{Tokens on the run} +% +% The package also proposes two kinds of tokens that can be added on protocols' +% lines. The first one is a \emph{checkpoint} (i.e. a state that is saved +% somewhere) and the second is used to denote the begining of a \emph{state +% interval} (a state interval denotes a period in which a process only performs +% deterministic events). The former are denoted with a small black rectangle, +% while the later is denoted with a vertical line. Although those two tokens are +% intended for the usage mentionned above, we encourage users to use them for +% other usages if need be. +% +% A checkpoint can be added with +% \DescribeMacro{\checkpoint}|\checkpoint|\marg{process}\marg{time}\marg{name}, +% where \emph{process} is the name of the process which takes a checkpoint, +% \emph{time} is the the time at which the checkpoint is taken, and \emph{name} +% is the name of the checkpoint, that is printed next to it, and can be used as +% a coordinate. Notice that the name is printed in a math environment, as we +% expect most checkpoints names to be indexed, e.g.\(c_1\), \(c_2\), etc. +% To have more control on the printed name, or if the proposed name is not a +% valid coordinate name, we offer a variant +% \DescribeMacro{\checkpointspecial}|\checkpointspecial|\marg{process}\marg{time}\marg{name}\marg{label}, +% where \emph{name} is the name of the coordinate of the checkpoint, and +% \emph{label} is the label to be printed. Notice that, in that case, the label +% is printed as is, i.e. not typeset as maths. + +% +% A state interval can be added similarly with the command +% \DescribeMacro{\stateinterval}|\stateinterval| +% \marg{process}\marg{time}\marg{name}. +% +% For the sake of completeness, if you need the name of the coordinate and the +% displayed label to be different (e.g. if the label can not be the name of a +% coordinate, for whatever reason), we also provide the command +% \DescribeMacro{\stateintervalspecial} +% |\stateintervalspecial|\marg{process}\marg{time}\marg{name}\marg{label}, in +% which \emph{name} is the name of the created coordinate, and \emph{label} is +% the label attached to the state interval. + +% \begin{figure} +% \centering +% \begin{minipage}{.35\textwidth} +% \begin{messagepassing} +% \newprocesswithlength{q}{2} +% \checkpoint{q}{1}{c_1} +% \crash{q}{2}{crash} +% \restart{q}{3}{1} +% \end{messagepassing} +% \end{minipage} +% ~ +% \begin{minipage}{.60\textwidth} +% \iffalse +%<*example> +% \fi +% \begin{lstlisting} + \begin{messagepassing} + \newprocesswithlength{q}{2} + \checkpoint{q}{1}{c_1} + \crash{q}{2}{crash} + \restart{q}{3}{1} + \end{messagepassing} +\end{lstlisting} +% \iffalse +% +% \fi +% \end{minipage} +% \caption{A protocol with a checkpoint.} +% \end{figure} + +% \paragraph{Grey boxes} +% +% In Execution~\ref{mp:ex1}, we created a light-red box between processes \(p\) +% and \(q\), from time \(7\) to \(9\), to indicate that they perform a given +% protocol that we don't detail further. We call such boxes (which can be used for a lot +% of other purposes) \emph{colouredboxes}, and they +% can be added with \DescribeMacro{\colouredbox} |\colouredbox|\marg{first +% process}\marg{second process}\marg{start time}\marg{end time}\marg{label}. +% This creates a box that spans between \emph{first process} and \emph{second +% process}, from \emph{start time} to \emph{end time}, with the label +% \emph{label} printed. +% +% Notice that there are no technical restrictions to adding messages on top of a +% box, typically to highlight a specific part of a larger execution. + +% \paragraph{Annotations} +% Finally, it is possible to add annotations on the diagram. To do so, we +% provide the macro +% \DescribeMacro{\annotate}|\annotate|\marg{process}\marg{time}\marg{text} which +% adds an annotation with \emph{text} over the timeline of the given +% \emph{process} at time \emph{time}. This also creates a coordinate at the +% annotation time, which name is the content of the annotation (i.e.\ +% \emph{text}). If \emph{text} is not a valid coordinate name, then the +% alternative \DescribeMacro{\annotatexplicit} +% |\annotatexplicit|\marg{process}\marg{time}\marg{text}\marg{name} behaves +% similarly, except that the coordinate name is explicitly given in argument +% \emph{name}. + +% \subsubsection{Combined commands} +% The above commands are sufficient to use all primitives offered by the +% package. In addition, we provide a lot of \emph{combined commands}, which, as +% the name suggest, have the effect of multiple \emph{simple} commands. +% +% \begin{itemize} +% \item |\newprocesswithlength|\marg{name}\marg{lifetime}: combination of +% |\newprocess|\marg{name} and |\processlength|\marg{name}\marg{lifetime} +% \item |\newprocesswithstateinterval|\marg{process name}\marg{state interval +% name}: combination of |\newprocess|\marg{process name} and +% |\stateinterval|\marg{process name}\marg{0}\marg{state interval name} +% \item |\newprocesswithcrash|\marg{process name}\marg{crash time}\marg{crash +% name}: creates a process \emph{process name} that runs until \emph{crash +% time}. The crash is named \emph{crash name}. +% \item |\sendwithstateinterval|\marg{sender}\marg{send +% time}\marg{receiver}\marg{receive time}\marg{si name}: combines |\send| and +% |\stateinterval|. +% \item |\sendwithstateintervalandname|\marg{sender}\marg{send +% time}\marg{receiver}\marg{receive time}\marg{si name}\marg{message name}: +% combines |\sendwithname| and |\stateinterval| +% \end{itemize} + +% \subsection{Advanced usage} +% \subsubsection{Customising colours} +% +% Two parts of the package use colours: colouredboxes and out-of-band messages. By +% default both are shades of red. We provide commands to change that if desired. +% +% \DescribeMacro{\colouredboxcolor}|\colouredboxcolor|\marg{colour} changes the colour +% used for colouredboxes. Notice that this sets both the background colour (which is +% a light variant of the provided colour) and the text colour (which uses the +% provided colour). +% +% \DescribeMacro{\oobcolor}|\oobcolor|\marg{colour} changes the colour used for +% out-of-band messages. +% +% \subsubsection{Coordinates} +% +% \paragraph{\TikZ coordinates.} +% Message passing diagrams are drawn using \TikZ, which means that one can add +% arbitrary commands to a diagram. In addition, the package defines useful +% coordinates to refer to. Execution~\ref{mp:ex2} shows the \TikZ coordinate plan +% overlayed on top of Execution~\ref{mp:ex1}. +% +% On \TikZ \(y\)-axis processes are instanciated one unit apart from each other, +% in their declaration order. +% To keep the coordinate system simple, processes expand in the negative (e.g. +% the first process declared is at coordinate \((0, -1)\), the second at \((0, +% -2)\), etc.). +% +% The \TikZ \(x\)-axis corresponds to the time axis of the diagram. Therefore, +% e.g. coordinate \((3, -4)\) corresponds to the \nth{3} time step of the +% \nth{4} process. +% +% \paragraph{Named coordinates.} +% In addition to explicit coordinates explained above, the package names most of +% the points of interest in the diagram. +% +% \subparagraph{Coordinates of processes.} +% At each process declaration, a coordinate named after the name of the process +% is created. The coordinate corresponds to the beginning of the corresponding +% process' timeline (for instance, in Execution~\ref{mp:ex2}, we show coordinate +% \((\texttt{q})\), that corresponds to the process \(q\)). +% +% \subparagraph{Coordinate of states intervals (resp. checkpoints, resp. crashes).} +% Similarly to processes, each state interval (resp. checkpoint, resp. crashes) creates a +% coordinate, named after the name of the state interval (resp. checkpoint, +% resp. crashes), is created. The coordinates refers to the place of the state +% interval (resp. checkpoint, resp. crashes). For instance, in +% Execution~\ref{mp:ex2}, we show the coordinates \((\texttt{si\_q\^{}1})\), +% \((\texttt{c\_p\^{}1})\) and \((\texttt{k})\), that respectively correspond to the state interval +% \(si_q^1\), the checkpoint \(c_p^1\) and the crash\footnote{The names of +% crashes are not printed on the figure, although they are internally defined.} \(k\). +% +% \subparagraph{Coordinates of annotations.} +% When an annotation is created, a coordinate is created at the same place, on +% the process' timeline\footnote{Notice that, using the explicit variant of |annotate| +% (|annotatexplicit|), the name of the annotation has to be explicitly given.} +% For instance, in Execution~\ref{mp:ex1}, the annotation \(1+1=2\) is created +% with the explicit name ``\texttt{note}''. We show the corresponding coordinate in +% Execution~\ref{mp:ex2}. +% +% +% \begin{messagepassing}[][Showing \TikZ coordinates][h][mp:ex2] +% \newprocesswithlength{p}{9} +% \newprocesswithlength{q}{9} +% \newprocesswithlength{r}{5} +% \crash{r}{5}{k} +% +% \checkpoint{p}{0}{c_p^0} +% \checkpoint{q}{0}{c_q^0} +% \checkpoint{r}{0}{c_r^0} +% \checkpoint{p}{4}{c_p^1} +% +% \stateinterval{p}{0}{si_p^0} +% \stateinterval{q}{0}{si_q^0} +% \stateinterval{r}{0}{si_r^0} +% +% \sendwithstateinterval{p}{1}{q}{2}{si_q^1} +% \sendwithstateinterval{r}{3}{q}{4}{si_q^2} +% \sendwithstateintervalandname{q}{5}{p}{6}{si_p^1}{\(m\)} +% \sendoutofband{q}{5}{r}{6}{\(m_\mathrm{copy}\)} +% \stateinterval{r}{6}{si_r^0} +% \restart{r}{6}{3} +% +% \annotate{r}{8}{restart} +% \annotatexplicit{p}{8}{\(1+1=2\)}{note} +% +% \colouredbox{p}{q}{7}{9}{Protocol} +% \drawtimeline{9} +% +% +% \fill[fill=white, opacity=0.8] (-1, 0) rectangle (10, -5); +% +% \draw[dotted, gray] (-1,0) grid (10,-5); +% \draw[->, thick, red] (0, 0) -- (1, 0) node [anchor=south, text=black] {\((1, 0)\)}; +% \draw[->, thick, red] (0, 0) -- (0, -1) node [anchor=east, text=black] {\((0, -1)\)}; +% +% \draw[fill] (q) circle [radius=.5mm]; +% \node[anchor=east] at (q) {\((\texttt{q})\)}; +% +% \draw[fill] (si_q^1) circle [radius=.5mm]; +% \node[anchor=east] at (si_q^1) {\((\texttt{si\_q\^{}1})\)}; +% +% \draw[fill] (c_p^1) circle [radius=.5mm]; +% \node[anchor=east] at (c_p^1) {\((\texttt{c\_p\^{}1})\)}; +% +% \draw[fill] (k) circle [radius=.5mm]; +% \node[anchor=east] at (k) {\((\texttt{k})\)}; +% +% \draw[fill] (note) circle [radius=.5mm]; +% \node[anchor=east] at (note) {\((\texttt{note})\)}; +% +% \end{messagepassing} + +% \StopEventually{} +% +% \section{Implementation} + +% \begin{macrocode} +\newcounter{processnb} +\setcounter{processnb}{0} +\newcounter{maxtime} + +\pgfdeclarelayer{background} +\pgfsetlayers{background,main} + +\newfloat{float_messagepassing}{t b h p}{.mp} +\floatname{float_messagepassing}{Execution} + +\newif\ifmp@vertical\mp@verticalfalse +\DeclareOption{vertical}{ + \mp@verticaltrue +} +\newif\ifmp@annotatevertical\mp@annotateverticalfalse +\DeclareOption{annotatevertical}{ + \mp@annotateverticaltrue +} +\ProcessOptions\relax + +\ifmp@vertical + \newcommand{\mp@processnameanchor}{south} + \newcommand{\mp@timeticksanchor}{east} + \newcommand{\mp@messagelabelanchor}{south} + \newcommand{\mp@stateintervalanchor}{north west} + \newcommand{\mp@checkpointanchor}{east} + \newcommand{\mp@verticalrotation}{270} + \ifmp@annotatevertical + \newcommand{\mp@annotaterotation}{270} + \else + \newcommand{\mp@annotaterotation}{0} + \fi +\else + \newcommand{\mp@processnameanchor}{east} + \newcommand{\mp@timeticksanchor}{north} + \newcommand{\mp@messagelabelanchor}{west} + \newcommand{\mp@stateintervalanchor}{south west} + \newcommand{\mp@checkpointanchor}{north} + \newcommand{\mp@verticalrotation}{0} + \newcommand{\mp@annotaterotation}{0} +\fi + +\newcommand{\mp@oobcolor}{red} +\newcommand{\oobcolor}[1]{ + \renewcommand\mp@oobcolor{#1} +} + +\newcommand{\mp@colouredboxcolor}{red} +\newcommand{\colouredboxcolor}[1]{ + \renewcommand\mp@colouredboxcolor{#1} +} + +\newif\iftimeline +% \end{macrocode} +% + +%\begin{environment}{messagepassing} +% \begin{macrocode} +\ExplSyntaxOn +%% 1st argument: tikz arguments +%% 2nd argument: Float caption (turns in floating) +%% 3rd argument: Float placement (`p` by default) +%% 4th argument: Float label + \NewDocumentEnvironment{messagepassing} {o o o o} + { + \timelinefalse + \setcounter{processnb}{0} + \IfNoValueTF{#2} { + }{ + \IfNoValueTF{#3}{ + \begin{float_messagepassing}[p] + } { + \begin{float_messagepassing}[#3] + } + \begin{center} + } + \IfNoValueTF{#1}{ + \begin{tikzpicture}[rotate=\mp@verticalrotation] + } { + \begin{tikzpicture}[rotate=\mp@verticalrotation, #1] + } + }{ + %% Draw timeline if boolean is true + \iftimeline + \begin{pgfonlayer}{background} + \setcounter{maxtime}{\@maxtime} + \addtocounter{maxtime}{-1} + \coordinate (maxtime) at (\@maxtime, 0); + + \addtocounter{processnb}{1} + \coordinate (timeline) at (0, -\value{processnb}); + \draw (timeline) node [anchor=\mp@processnameanchor] {{\it time}}; + \draw[->] (timeline) -- ($(timeline) + (maxtime)$); + \foreach \i in {0,...,\value{maxtime}} { + \draw ($(timeline) + (\i, 0) + (0, 0.1)$) -- ($(timeline) + (\i, 0) + (0, -0.1)$) node [anchor=\mp@timeticksanchor] {$\i$}; + } + \end{pgfonlayer} + \else + \fi + \end{tikzpicture} + \IfNoValueTF{#2} { + \linebreak + } { + \end{center} + \caption{#2} + \IfNoValueTF{#4} { + }{ + \label{#4} + } + \end{float_messagepassing} + } + } +\ExplSyntaxOff +% \end{macrocode} +% \end{environment} +% +% \begin{macrocode} +%% #1: name +\newcommand{\newprocess}[1]{ + \addtocounter{processnb}{1} + \coordinate (#1) at (0, -\value{processnb}); + \draw (#1) node[anchor=\mp@processnameanchor] {$#1$}; +} +% \end{macrocode} +% +% \begin{macrocode} +%% #1: name +%% #2: width +\newcommand{\newprocesswithlength}[2]{ + \newprocess{#1} + \processlength{#1}{#2} +} +% \end{macrocode} +% +% \begin{macrocode} +%% #1: name +%% #2: state interval name +\newcommand{\newprocesswithstateinterval}[2]{ + \newprocess{#1} + \stateinterval{#1}{0}{#2} +} +% \end{macrocode} +% +% \begin{macrocode} +%% #1: name +%% #2: width +%% #3: crash name +\newcommand{\newprocesswithcrash}[3]{ + \newprocess{#1}{#2} + \crash{#1}{#2}{#3} +} +% \end{macrocode} +% +% \begin{macrocode} +%% #1: sender's name +%% #2: send date +%% #3: receiver's name +%% #4: receive date +\newcommand{\send}[4]{ + \draw[->] (#1) +(#2, 0) -- ($ (#3) +(#4, 0) $); +} +% \end{macrocode} +% +% \begin{macrocode} +%% #1: sender's name +%% #2: send date +%% #3: receiver's name +%% #4: receive date +%% #5: message name +\newcommand{\sendwithname}[5]{ + \draw[->] (#1) +(#2, 0) -- ($ (#3) +(#4, 0) $) node[anchor=\mp@messagelabelanchor, pos=0.3] {#5}; +} +% \end{macrocode} +% +% \begin{macrocode} +%% #1: process name +%% #2: process width +\newcommand{\processlength}[2]{ + \draw (#1) -- +(#2, 0); +} +% \end{macrocode} +% +% \begin{macrocode} +%% #1: sender's name +%% #2: send date +%% #3: receiver's name +%% #4: receive date +%% #5: state interval name +\newcommand{\sendwithstateinterval}[5] { + \send{#1}{#2}{#3}{#4} + \stateinterval{#3}{#4}{#5} +} +% \end{macrocode} +% +% \begin{macrocode} +%% #1: sender's name +%% #2: send date +%% #3: receiver's name +%% #4: receive date +%% #5: state interval name +%% #6: message name +\newcommand{\sendwithstateintervalandname}[6] { + \sendwithname{#1}{#2}{#3}{#4}{#6} + \stateinterval{#3}{#4}{#5} +} +% \end{macrocode} +% +% \begin{macrocode} +%% #1: sender's name +%% #2: send date +%% #3: receiver's name +%% #4: receive date +%% #5: OoB message name +\newcommand{\sendoutofband}[5]{ + \draw[->, color=\mp@oobcolor] (#1) +(#2, 0) -- ($ (#3) +(#4, 0) $) node[anchor=\mp@messagelabelanchor, pos=0.3] {#5}; +} +% \end{macrocode} +% +% \begin{macrocode} +%% #1: process's name +%% #2: state interval date +%% #3: state interval name +\newcommand{\stateinterval}[3] { + \stateintervalspecial{#1}{#2}{#3}{#3} +} +% \end{macrocode} +% +% \begin{macrocode} +%% #1: process's name +%% #2: state interval date +%% #3: coordinate name +%% #4: state interval label +\newcommand{\stateintervalspecial}[4] { + \coordinate (#3) at ($ (#1) +(#2, 0) $); + \draw (#3) + (0, 0.1) -- +(0, -0.1) node[anchor=\mp@stateintervalanchor] {$#4$}; +} +% \end{macrocode} +% +% \begin{macrocode} +%% #1: process's name +%% #2: checkpoint date +%% #3: checkpoint name +\newcommand{\checkpoint}[3]{ + \coordinate (#3) at ($ (#1) + (#2, 0) $); + \fill (#3) + (-0.05, 0.1) rectangle +(0.05, -0.1); + \draw (#3) + (0, -0.1) node[anchor=\mp@checkpointanchor] {$#3$}; +} +% \end{macrocode} +% +% \begin{macrocode} +%% #1: process's name +%% #2: checkpoint date +%% #3: checkpoint coordinate name +%% #4: checkpoint label +\newcommand{\checkpointspecial}[4]{ + \coordinate (#3) at ($ (#1) + (#2, 0) $); + \fill (#3) + (-0.05, 0.1) rectangle +(0.05, -0.1); + \draw (#3) + (0, -0.1) node[anchor=\mp@checkpointanchor] {#4}; +} +% \end{macrocode} +% +% \begin{macrocode} +%% #1: process's name +%% #2: crash date +%% #3: crash name +\newcommand{\crash}[3]{ + \coordinate (#3) at ($ (#1) + (#2, 0) $); + \draw (#3) + (-0.1, -0.1) -- +(0.1, 0.1); + \draw (#3) + (0.1, -0.1) -- +(-0.1, 0.1); +} +% \end{macrocode} +% +% \begin{macrocode} +%% #1: process's name +%% #2: restart date +%% #3: restart length +\newcommand{\restart}[3]{ + \draw (#1) + (#2, 0) -- ($ (#1) + (#2, 0) + (#3, 0) $); +} +% \end{macrocode} +% +% \begin{macrocode} +%% #1: first process's name +%% #2: second process's name +%% #3: begining of the grey box +%% #4: end of the grey box +%% #5: caption +\newcommand{\colouredbox}[5]{ + \begin{pgfonlayer}{background} + \fill[color=\mp@colouredboxcolor!20] ($(#1) + (#3, 0)$) rectangle ($(#2) + (#4, 0)$) node[midway, color = \mp@colouredboxcolor, rotate=\mp@annotaterotation]{#5}; + \end{pgfonlayer} +} +% \end{macrocode} +% +% \begin{macrocode} +%% #1: Timeline length +\newcommand{\drawtimeline}[1]{ + \timelinetrue + \def\@maxtime{#1} +} +% \end{macrocode} +% +% \begin{macrocode} +%% #1: process's name +%% #2: annotation date +%% #3: annotation +\newcommand{\annotate}[3]{ + \annotatexplicit{#1}{#2}{#3}{#3} +} +% \end{macrocode} +% +% \begin{macrocode} +%% Same than annotate, but with the coordinate name provided explicitly +%% #1: process's name +%% #2: annotation date +%% #3: annotation +%% #4: coordinate name +\newcommand{\annotatexplicit}[4]{ + \coordinate (#4) at ($ (#1) +(#2, 0.1) $); + \draw (#4) node[rotate=\mp@annotaterotation, anchor=south] {#3}; +} +% \end{macrocode} diff --git a/graphics/pgf/contrib/messagepassing/messagepassing.ins b/graphics/pgf/contrib/messagepassing/messagepassing.ins new file mode 100644 index 0000000000..750bc28697 --- /dev/null +++ b/graphics/pgf/contrib/messagepassing/messagepassing.ins @@ -0,0 +1,49 @@ +%% +%% Copyright (C) 2021 by Martin Vassor +%% + +%% This file may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3 of this license or (at your option) any later +%% version. The latest version of this license is in: +%% +%% http://www.latex-project.org/lppl.txt +%% +%% and version 1.3 or later is part of all distributions of +%% LaTeX version 2005/12/01 or later. +%% + +\input docstrip.tex +\keepsilent +\usedir{tex/latex/messagepassing} +\preamble +This is a generated file. +Copyright (C) 2022 by Martin Vassor + +This file may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either +version 1.3 of this license or (at your option) any later +version. The latest version of this license is in: + + http://www.latex-project.org/lppl.txt + +and version 1.3 or later is part of all distributions of +LaTeX version 2005/12/01 or later. + +\endpreamble + +\generate{\file{messagepassing.sty}{\from{messagepassing.dtx}{package}}} + +\Msg{*********************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move the} +\Msg{* following file into a directory searched by TeX:} +\Msg{*} +\Msg{* \space\space messagepassing.sty} +\Msg{*} +\Msg{* To produce the documentation run the file grammar.dtx} +\Msg{* through LaTeX.} +\Msg{*} +\Msg{* Happy TeXing!} +\Msg{*********************************************************} +\endbatchfile diff --git a/graphics/pgf/contrib/messagepassing/messagepassing.pdf b/graphics/pgf/contrib/messagepassing/messagepassing.pdf new file mode 100644 index 0000000000..410b4d22ca Binary files /dev/null and b/graphics/pgf/contrib/messagepassing/messagepassing.pdf differ diff --git a/graphics/pgf/contrib/robotarm/README.md b/graphics/pgf/contrib/robotarm/README.md new file mode 100644 index 0000000000..f95f712205 --- /dev/null +++ b/graphics/pgf/contrib/robotarm/README.md @@ -0,0 +1,3 @@ +# `robotarm` LaTeX package + +This LaTeX package uses Tikz to draw parameterized 2D robot arms, for example to be used in educational material. \ No newline at end of file diff --git a/graphics/pgf/contrib/robotarm/robotarm.dtx b/graphics/pgf/contrib/robotarm/robotarm.dtx new file mode 100644 index 0000000000..79986b388f --- /dev/null +++ b/graphics/pgf/contrib/robotarm/robotarm.dtx @@ -0,0 +1,940 @@ +% \iffalse meta-comment +% +% Copyright (C) 2021 by M.J.W. Snippe +% ----------------------------------- +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% +% http://www.latex-project.org/lppl.txt +% +% and version 1.3 or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `author-maintained'. +% +% This work consists of the files found at github.com/max-sn/robotarm. +% +% \fi +% +% \iffalse +%<*driver> +\documentclass{ltxdoc} +\input{robotarm.doc.settings.sty} +\EnableCrossrefs +\RecordChanges +\begin{document} + \DocInput{robotarm.dtx} +\end{document} +% +% +% \fi +% +% \iffalse +% +%<*robotarm-doc-settings> + +\usepackage[utf8]{inputenc} +\usepackage{xspace} +\usepackage{multicol} +\usepackage{geometry} +\usepackage{mathpazo} +\usepackage{robotarm} +\usepackage{biblatex} +\usepackage{hypdoc} +\usepackage{tcolorbox} + +\addbibresource{robotarm.doc.bib.bib} +\defbibheading{robotarmbibheading}[\bibname]{% + \clearpage\section*{#1}\addcontentsline{toc}{section}{#1}} + +\geometry{pass} + +\tcbuselibrary{documentation,breakable,minted} +\tcbset{ + index german settings, + index colorize, + docexample/.append style={ + before lower={\begin{center}\begin{tikzpicture}}, + after lower={\end{tikzpicture}\end{center}}, + documentation minted options={autogobble}, + breakable, + } +} + +\makeindex + +\renewcommand{\MacroFont}{\color{black!70!blue}\small\ttfamily} + +\def\robotarmpackage{\textsl{robotarm}\xspace} +\def\Tikz{{\normalfont Ti\textit{k}Z}\xspace} + +% +% +%<*robotarm-doc-main> + +\title{The \robotarmpackage package} +\author{Marcus J.W. Snippe \\ + \normalsize\href{mailto:maxsnippe@gmail.nl} + {\texttt{maxsnippe[at]gmail.nl}}} +\date{\filedate\\[0.4em]\normalsize\fileversion} + +\maketitle + +\begin{abstract} + With the \robotarmpackage package, you can draw configurable planar robot arms with ease, using \Tikz. It defines the macro (\refCom{robotArm}) and a lot of ways to configure it. Additionally, you can use or redefine the macros used to draw the base link (\refCom{robotArmBaseLink}), a single link (\refCom{robotArmLink}), or the end effector (\refCom{robotArmEndEffector}). +\end{abstract} + +\begin{multicols}{2} + \tableofcontents +\end{multicols} + +\section{Macros} + + \subsection{\texttt{robotArm}} + + \begin{docCommand}{robotArm}{\oarg{key-value list}\marg{num}} + This is the main macro of the \robotarmpackage package. It is meant to be used in the \texttt{tikzpicture} environment\footnote{The first example still includes the \texttt{tikzpicture} environment, but for following examples,it will be omitted in the example code.}, from the \Tikz\cite{tantau:tikz_and_pgf} package, + and installs some styles for additional drawing, e.g. \refKey{/tikz/in link}. + + \begin{dispExample*}{before lower={}, after lower={}} + \begin{tikzpicture} + \robotArm[config={q1=60,q2=-40,q3=-50}]{3} + \end{tikzpicture} + \end{dispExample*} + + \meta{num} defines the number of links that will be drawn. For an $N$ link robot arm, the $N$\textsuperscript{th} link will be the end effector link. + + The \meta{key-value list} values can consist of the keys listed below. + + + + \begin{docKey}{geometry}{=\meta{key-value list}}{} + + The \refKey{geometry} key can be used to set geometrical configuration options of the robot arm, e.g. link length and link width. The keys in \meta{key-value list} can be one or more of the following. + + ^^A \begin{docKey}[][doc label=/geometry/a0]{a0}{=\meta{value}}{initially \texttt{0.0}} + ^^A Sets the height of the base link. + + ^^A \begin{dispExample} + ^^A \robotArm[config={q1=60},geometry={a0=2}]{2} + ^^A \end{dispExample} + ^^A \end{docKey} + + \begin{docKeys} + [ + doc parameter={=\meta{value}}, + ] + { + { + doc name=a, + doc label=/geometry/a, + doc description={initially \texttt{2}} + }, + { + doc name=a\meta{num}, + doc label=/geometry/anum, + doc description={initially the value of \refKey{/geometry/a}} + }, + } + + The \refKey{/geometry/a} key sets the default length for all links that are drawn in the \refCom{robotArm} command. For every link, this can be overruled by the dynamically created keys \refKey{/geometry/anum}, e.g. to set only the length of link 3 to 3, use \texttt{a3=3}. + + \begin{dispExample} + \robotArm[config={q1=20,q2=-20,q3=-20}, + geometry={a=3,a3=1}]{3} + \end{dispExample} + \end{docKeys} + + \begin{docKeys} + [ + doc parameter={=\meta{value}} + ] + { + { + doc name=r, + doc label=/geometry/r, + doc description={initially \texttt{0.25}} + }, + { + doc name=r\meta{num}, + doc label=/geometry/rnum, + doc description={initially the value of \refKey{/geometry/r}} + }, + } + The \refKey{/geometry/r} key sets the default joint radius for all links drawn in the \refCom{robotArm} command. For every link this can be overruled by the dynamically created keys \refKey{/geometry/rnum}. + + \begin{dispExample} + \robotArm[config={q1=20,q2=-20}, + geometry={r=0.5,r1=0.3}]{2} + \end{dispExample} + \end{docKeys} + + \begin{docKeys} + [ + doc parameter={=\meta{value}} + ] + { + { + doc name=w, + doc label=/geometry/w, + doc description={initially \texttt{0.4}} + }, + { + doc name=w\meta{num}, + doc label=/geometry/wnum, + doc description={initially the value of \refKey{/geometry/w}} + }, + } + The \refKey{/geometry/w} key sets the default link width for all links drawn in the \refCom{robotArm} command. For every link this can be overruled by the dynamically created keys \refKey{/geometry/wnum}. + \end{docKeys} + + \end{docKey} + + \begin{dispExample} + \tikzset{/robotarm/geometry={a=1}} + \robotArm{1} + \begin{scope}[xshift=3cm] + \robotArm{6} + \end{scope} + \end{dispExample} + + \begin{docKey}[robotarm/styles]{link}{}{default \texttt{draw,fill=lightgray}} + \end{docKey} + + \end{docCommand} + + \subsection{\texttt{robotArmBaseLink}} + + \begin{docCommand}{robotArmBaseLink}{\oarg{key-value list}} + This command is used in \refCom{robotArm} to draw the base link. It can also be used to draw your own base link. The default base link looks as follows: + \begin{dispExample} + \robotArmBaseLink + \end{dispExample} + The \meta{key-value list} can consist of the keys listed below. + + \begin{docKeys} + [ + doc keypath={robotarm/base link}, + doc parameter={=\meta{value}}, + ] + { + { + doc name=height, + doc description={initially \texttt{0.6}} + }, + { + doc name=width, + doc description={initially \texttt{0.3}} + }, + } + The width and height of the base link can be specified with these keys. The height is measured from the center of the half-circle at the top, to the base. + \begin{dispExample} + \robotArmBaseLink[width=1, height=0.6] + \end{dispExample} + \end{docKeys} + + \begin{docKeys} + [ + doc keypath={robotarm/base link}, + doc parameter={=\meta{value}}, + ] + { + { + doc name=world width, + doc description={initially \texttt{1.0}}, + }, + { + doc name=world height, + doc description={initially \texttt{0.3}}, + } + } + The width and height of the `world' drawn below the base link can be specified with these keys. + \begin{dispExample} + \robotArmBaseLink[world width=5, world height=1] + \end{dispExample} + \end{docKeys} + + \begin{docKeys} + [ + doc keypath={robotarm/base link}, + doc description={code executing key}, + ] + { + {doc name=draw base link}, + {doc name=draw world}, + } + These keys are used to draw the `world' and the base link. If the configuration options above are insufficient, you can redefine these keys, as shown in the not-so-creative example below. + \begin{dispExample} + \robotArmBaseLink[ + draw world/.code={ + \filldraw[fill=brown] (-2,-1) rectangle (2, -0.3); + }, + draw base link/.code={ + \filldraw[fill=black!60] (-0.5, -0.3) rectangle + (0.5, 0.3); + }] + \end{dispExample} + To access the values of the keys listed above you can use the following macros in your redefinition: + \begin{itemize} + \item \docAuxCommand{RA@baselink@width}, + \item \docAuxCommand{RA@baselink@height}, + \item \docAuxCommand{RA@baselink@worldwidth}, and + \item \docAuxCommand{RA@baselink@worldheight}. + \end{itemize} + \end{docKeys} + + \end{docCommand} + + + \subsection{\texttt{robotArmLink}} + + \begin{docCommand}{robotArmLink}{\oarg{key-value list}} + This command is used in \refCom{robotArm} to draw the links in a \texttt{foreach} loop. It can also be used to draw your own link(s). The default link looks as follows: + \begin{dispExample} + \robotArmLink + \end{dispExample} + The \meta{key-value list} can consist of the keys listed below. + + \begin{docKeys} + [ + doc keypath={robotarm/link}, + doc parameter={=\meta{value}}, + ]{ + { + doc name=width, + doc description={initially \texttt{0.4}}, + }, + { + doc name=length, + doc description={initially \texttt{2.0}}, + }, + { + doc name=joint radius, + doc description={initially \texttt{0.25}}, + }, + } + The geometrical properties of the links can be configured with these keys. + \begin{dispExample} + \robotArmLink[width=0.75,joint radius=0.4,length=5] + \end{dispExample} + \end{docKeys} + + \begin{docKeys} + [ + doc keypath={robotarm/link}, + doc description={code executing key}, + ] + { + {doc name=draw link}, + {doc name=draw joint}, + } + Same as for the base link, the actual drawing is done by calling these keys. These can also be redefined to change the drawing. + \begin{dispExample} + \robotArmLink[draw link/.code={ + \draw[line cap=round, double=lightgray, + double distance=4mm] + (0,0) to[bend left] (2,0);}] + \end{dispExample} + Of course you can also do this globally so it applies to all links\footnote{For the end effector to change too, you have to redefine \refKey{/robotarm/end effector/draw joint} too.}. + \begin{dispExample} + \pgfkeys{/robotarm/link/draw joint/.code={ + \path[link style] (-0.3,-0.3) rectangle ++(0.6,0.6); + \path[link style] (0,0) circle (0.2);}} + \robotArm[geometry={a=1.5}, + config={q1=60,q2=-30,q3=-30}]{3} + \end{dispExample} + To access the values of the keys listed above you can use the following macros in your redefinition: + \begin{itemize} + \item \docAuxCommand{RA@link@width}, + \item \docAuxCommand{RA@link@length}, and + \item \docAuxCommand{RA@link@jointradius}. + \end{itemize} + \end{docKeys} + + \end{docCommand} + + \subsection{\texttt{robotArmEndEffector}} + + \begin{docCommand}{robotArmEndEffector}{\oarg{key-value list}} + This command is used in \refCom{robotArm} to draw the final link with the end effector attached. You can also use it outside that command to draw your own end effector. + \begin{dispExample} + \robotArmEndEffector + \end{dispExample} + The \meta{key-value list} can consist of the keys listed below. + + \begin{docKeys} + [ + doc keypath={robotarm/end effector}, + doc parameter={=\meta{value}}, + ] + { + { + doc name=width, + doc description={initially \texttt{0.4}}, + }, + { + doc name=length, + doc description={initially \texttt{2.0}}, + }, + { + doc name=joint radius, + doc description={initially \texttt{0.25}}, + }, + { + doc name=gripper radius, + doc description={initially \texttt{0.3}}, + }, + { + doc name=gripper opening angle, + doc description={initially \texttt{60}}, + doc parameter={=\meta{angle}}, + }, + } + The geometrical properties of the final link and the end effector, which defaults to a gripper, can be tuned with these keys. Due to some trigonometric functions in the drawing code of \refKey{/robotarm/end effector/draw end effector}, \refKey{/robotarm/end effector/gripper radius} should not be smaller than half of \refKey{/robotarm/end effector/width}. + + \end{docKeys} + + \begin{docKeys} + [ + doc keypath={robotarm/end effector}, + doc description={code executing key}, + ] + { + {doc name=draw link}, + {doc name=draw joint}, + {doc name=draw end effector}, + } + Again the actual drawing is done by calling these keys. And these can also be redefined to change how the end effector will look, as shown in the example below. + \begin{dispExample} + \robotArm[ + config={q1=100,q2=-100}, + end effector/.cd, + draw link/.code={ + \draw[line cap=round, double=lightgray, + double distance=4mm] + (0,0) to[bend left] (2, 0.8);}, + draw end effector/.code={ + \path[link style] + (1.8, 0.8) arc (180:0:0.2) -- (2.1, 0.4) + -- (1.9, 0.4) -- cycle; + \path[link style] + (2.05,0.4) rectangle (1.95,0.0); + \fill (2,0) circle (0.05);}]{2} + \end{dispExample} + To access the values of the keys listed above you can use the following macros in your redefinition: + \begin{itemize} + \item \docAuxCommand{RA@endeff@width}, + \item \docAuxCommand{RA@endeff@length}, + \item \docAuxCommand{RA@endeff@jointradius}, + \item \docAuxCommand{RA@endeff@gripperradius}, and + \item \docAuxCommand{RA@endeff@gripperopeningangle}. + \end{itemize} + \end{docKeys} + + \end{docCommand} + +\section{\Tikz styles} + + \begin{docKeys} + [ + doc keypath=tikz, + doc description=style, + ] + { + { + doc name=in link, + doc parameter={=\meta{number}}, + }, + { + doc name=in base link, + }, + { + doc name=in world, + }, + { + doc name=in end effector, + } + } + Only installed after calling \refCom{robotArm} at least once (last called macro defines these styles, but within scope can be made unique). + \end{docKeys} + + \begin{docKey}[tikz]{link style}{}{default \texttt{/robotarm/styles/link}} + Always installed, forwards to \refKey{/robotarm/styles/link}. Only works one way. To change link styles used in \refCom{robotArm}, change the appropriate \refKey{/robotarm/styles/link}. + \begin{dispExample} + \tikzset{link style/.style={draw=none, fill=red!50}} + \robotArm[config={q1=40},styles={ + link 1/.style={fill=blue!50}}]{3} + \end{dispExample} + \end{docKey} + + + %^^A \section{\robotarmpackage keys} + %^^A \begin{docKeys} + %^^A [ + %^^A doc keypath=robotarm/annotations/labels, + %^^A ]{ + %^^A { + %^^A doc name=a, + %^^A doc description={no default, initially \texttt{a}}, + %^^A }, + %^^A { + %^^A doc name=q, + %^^A doc description={no default, initially \texttt{q}}, + %^^A } + %^^A } + %^^A \begin{dispExample} + %^^A \robotArm[ + %^^A config={q1=60,q2=-40,q3=40}, + %^^A annotations/labels/a=l, + %^^A annotations/labels/q=\theta, + %^^A annotations/labels/q3=?]{3} + %^^A \end{dispExample} + %^^A \end{docKeys} + + %^^A \section{\Tikz keys} + + + %^^A \begin{docKeys} + %^^A [ + %^^A doc keypath=robotarm/frames, + %^^A doc description={style}, + %^^A ]{ + %^^A {doc name=in link 0}, + %^^A {doc name=in link 1}, + %^^A {doc name=in link 2}, + %^^A {doc name=in link 3}, + %^^A {doc name=in link 4}, + %^^A {doc name=in link 5}, + %^^A {doc name=in link 6} + %^^A } + %^^A \end{docKeys} + + +% +% +%<*robotarm-doc-bib> +@manual{tantau:tikz_and_pgf, + author = {Till Tantau}, + title = {The TikZ and PGF Packages}, + subtitle = {Manual for version 3.1.8b}, + url = {https://mirrors.ctan.org/graphics/pgf/base/doc/pgfmanual.pdf}, + date = {2021-03-19}, +} +% +% +% \fi +% +% \CheckSum{286} +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% +% \DoNotIndex{\angleannotationcase,\link@angleannotspacing,\begin,\begingroup,\DeclareDocumentCommand,\draw,\end,\endgroup,\fi,\foreach,\ifcase,\ifnum,\ifRA@robotarm@drawannotations,\lenghtannotationspacing,\link@lenght,\link@radius,\link@startangle,\link@width,\lengthannotationspacing,\link@length,\link@case} +% +% \changes{v0.1}{2022/03/08}{Initial version for publishing} +% +% \GetFileInfo{robotarm.sty} +% +% \input{robotarm.doc.main.tex} +% +% \StopEventually{\printbibliography[heading=robotarmbibheading]\printindex\PrintChanges} +% +% \section{Implementation} +% \begin{macrocode} +%<*robotarm-package> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{robotarm} + [2022/03/08 v0.1 Tikz commands to draw planar robot arms] + +\RequirePackage{tikz} + +\usetikzlibrary{patterns} + +\makeatletter + +\newif\ifRA@robotarm@drawannotations + +\pgfkeys{ + /robotarm/base link/.cd, + width/.code={\pgfmathsetmacro\RA@baselink@width{#1}}, + width=0.6, + height/.code={\pgfmathsetmacro\RA@baselink@height{#1}}, + height=0.3, + world width/.code={\pgfmathsetmacro\RA@baselink@worldwidth{#1}}, + world width=1.0, + world height/.code={\pgfmathsetmacro\RA@baselink@worldheight{#1}}, + world height=0.3, + draw base link/.code={% + \path[link style] + (-1/2*\RA@baselink@width,0) + arc (180:0:1/2*\RA@baselink@width) + -- ++ (0, -\RA@baselink@height) + -- ++ (-\RA@baselink@width, 0) + -- cycle; + }, + draw world/.code={% + \path[world style] + (-1/2*\RA@baselink@worldwidth,-\RA@baselink@height) + arc (180:360:{1/2*\RA@baselink@worldwidth} + and {\RA@baselink@worldheight}) -- cycle; + \path[draw, world style] + (-1/2*\RA@baselink@worldwidth,-\RA@baselink@height) + -- ++(\RA@baselink@worldwidth,0); + }, + /robotarm/link/.cd, + width/.code={\pgfmathsetmacro\RA@link@width{#1}}, + width=0.4, + length/.code={\pgfmathsetmacro\RA@link@length{#1}}, + length=2.0, + joint radius/.code={\pgfmathsetmacro\RA@link@jointradius{#1}}, + joint radius=0.25, + draw link/.code={% + \path[link style] + (0,1/2*\RA@link@width) + -- ++ ( \RA@link@length, 0) + arc (90:-90:1/2*\RA@link@width) + -- ++ (-\RA@link@length, 0) + arc (270:90:1/2*\RA@link@width) + -- cycle; + }, + draw joint/.code={% + \path[link style] + (0,0) circle (\RA@link@jointradius); + \path[link style] + (0,0) circle (1/3*\RA@link@jointradius); + }, + /robotarm/end effector/.cd, + width/.code={\pgfmathsetmacro\RA@endeff@width{#1}}, + width=0.4, + length/.code={\pgfmathsetmacro\RA@endeff@length{#1}}, + length=2, + joint radius/.code={\pgfmathsetmacro\RA@endeff@jointradius{#1}}, + joint radius=0.25, + gripper radius/.code={\pgfmathsetmacro\RA@endeff@gripperradius{#1}}, + gripper radius=0.3, + gripper opening angle/.code={% + \pgfmathsetmacro\RA@endeff@gripperopeningangle{#1}}, + gripper opening angle=60, + draw joint/.code={% + \path[link style] + (0,0) circle (\RA@endeff@jointradius); + \path[link style] + (0,0) circle (1/3*\RA@endeff@jointradius); + }, + draw link/.code={% + \pgfmathsetmacro{\link@startangle}{% + 180-asin(1/2*\RA@endeff@width/\RA@endeff@gripperradius)} + \pgfmathsetmacro{\link@endangle}{% + 180+asin(1/2*\RA@endeff@width/\RA@endeff@gripperradius)} + + \path[link style] + (\RA@endeff@length, 0) + ++ (\link@startangle:\RA@endeff@gripperradius) + arc (\link@startangle:\link@endangle:\RA@endeff@gripperradius) + -- (0,0|-0,-1/2*\RA@endeff@width) + arc (-90:90:1/2*\RA@endeff@width) + -- cycle; + }, + draw end effector/.code={ + \draw[link style] + (\RA@endeff@length, 0) + ++ (-1/2*\RA@endeff@gripperopeningangle:% + \RA@endeff@gripperradius) + arc [start angle=-1/2*\RA@endeff@gripperopeningangle, + delta angle=-360+\RA@endeff@gripperopeningangle, + radius=\RA@endeff@gripperradius] + -- ++(180+1/2*\RA@endeff@gripperopeningangle:% + 0.4*\RA@endeff@gripperradius) + arc [start angle=1/2*\RA@endeff@gripperopeningangle, + delta angle=360-\RA@endeff@gripperopeningangle, + radius=0.6*\RA@endeff@gripperradius] + -- ++(-1/2*\RA@endeff@gripperopeningangle:% + 0.4*\RA@endeff@gripperradius) + -- cycle; + }, + /robotarm/.cd, + draw annotations/.is if=RA@robotarm@drawannotations, + draw annotations=true, + every annotation/.style={}, + every length annotation/.style={}, + every length annotation arrow/.style={draw,->}, + every length annotation node/.style={circle,inner sep=0.5pt}, + every length annotation help line/.style={draw,help lines}, + every angle annotation/.style={}, + every angle annotation arrow/.style={draw,->}, + every angle annotation node/.style={}, + every angle annotation help line/.style={draw,help lines}, + base link/.code=\pgfkeys{/robotarm/base link/.cd,#1}, + link/.code=\pgfkeys{/robotarm/link/.cd,#1}, + end effector/.code=\pgfkeys{/robotarm/end effector/.cd,#1}, + geometry/.code=\pgfkeys{/robotarm/geometry/.cd,#1}, + config/.code=\pgfkeys{/robotarm/config/.cd,#1}, + spacing/.code=\pgfkeys{/robotarm/annotations/spacing/.cd,#1}, + labels/.code=\pgfkeys{/robotarm/annotations/labels/.cd,#1}, + styles/.code=\pgfkeys{/robotarm/styles/.cd,#1}, + /robotarm/geometry/.cd, + a0/.initial=0, + a/.initial=2, + r/.initial=0.25, + w/.initial=0.4, + /robotarm/config/q/.initial=0, + /robotarm/frames/.cd, + in link 0/.style={}, + in end effector/.style={ + /robotarm/frames/in link \RA@robotarm@numlinks, + shift={% + (\pgfkeysvalueof{/robotarm/geometry/a\RA@robotarm@numlinks},0)}, + }, + in world/.style={ + shift={(0,-\RA@baselink@height)} + }, + /robotarm/styles/.cd, + world/.style={pattern=north west lines}, + link/.style={ + draw, + fill=lightgray, + }, + link 0/.style={/robotarm/styles/link}, + /robotarm/annotations/.cd, + spacing/.cd, + a/.initial=3, + q/.initial=1/2, + /robotarm/annotations/.cd, + labels/.cd, + a/.initial=a, + q/.initial=q, +} +\tikzset{ + link style/.style={/robotarm/styles/link}, + world style/.style={/robotarm/styles/world}, +} +% \end{macrocode} +% \begin{macro}{\robotarmset} +% \begin{macrocode} +\newcommand\robotarmset[1]{% + \pgfkeys{/robotarm/.cd,#1}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\robotArmLink} +% \begin{macrocode} +\newcommand\robotArmLink[1][]{ + \begingroup + \pgfkeys{/robotarm/link/.cd,#1} + + \pgfkeys{/robotarm/link/draw link} + \pgfkeys{/robotarm/link/draw joint} + \endgroup +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\robotArmEndEffector} +% \begin{macrocode} +\newcommand\robotArmEndEffector[1][]{ + \begingroup + \pgfkeys{/robotarm/end effector/.cd,#1} + + \pgfkeys{/robotarm/end effector/draw link} + \pgfkeys{/robotarm/end effector/draw joint} + \pgfkeys{/robotarm/end effector/draw end effector} + + \endgroup +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\robotArmBaseLink} +% \begin{macrocode} +\newcommand\robotArmBaseLink[1][]{ + \begingroup + \pgfkeys{/robotarm/base link/.cd,#1} + + \pgfkeys{/robotarm/base link/draw world} + \pgfkeys{/robotarm/base link/draw base link} + \endgroup +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\robotArm} +% \begin{macrocode} +\newcommand\robotArm[2][]{ + \pgfmathtruncatemacro\RA@robotarm@numlinks{#2} + \def\@tmpkeys{} + \foreach \@link [remember=\@link as \@prevlink (initially 0)] in % + {1,...,\RA@robotarm@numlinks}{ + \xdef\@tmpkeys{\@tmpkeys% + /robotarm/geometry/a\@link/.initial=% + \pgfkeysvalueof{/robotarm/geometry/a},% + /robotarm/geometry/r\@link/.initial=% + \pgfkeysvalueof{/robotarm/geometry/r},% + /robotarm/geometry/w\@link/.initial=% + \pgfkeysvalueof{/robotarm/geometry/w},% + /robotarm/config/q\@link/.initial=% + \pgfkeysvalueof{/robotarm/config/q},% + /robotarm/styles/link \@link/.style={/robotarm/styles/link},% + /robotarm/annotations/labels/a\@link/.initial={% + $\pgfkeysvalueof{/robotarm/annotations/labels/a}_{\@link}$},% + /robotarm/annotations/labels/q\@link/.initial={% + $\pgfkeysvalueof{/robotarm/annotations/labels/q}_{\@link}$},% + /robotarm/annotations/spacing/a\@link/.initial={% + \pgfkeysvalueof{/robotarm/annotations/spacing/a}},% + /robotarm/annotations/spacing/q\@link/.initial={% + \pgfkeysvalueof{/robotarm/annotations/spacing/q}},% + } + } + \expandafter\pgfkeys\expandafter{\@tmpkeys} + \pgfkeys{/robotarm/.cd,#1} + \def\@tmpkeys{} + \foreach \@link [remember=\@link as \@prevlink (initially 0)] in % + {1,...,\RA@robotarm@numlinks}{ + \xdef\@tmpkeys{\@tmpkeys% + /robotarm/frames/in link \@link/.style={% + /robotarm/frames/in link \@prevlink, + /tikz/shift={% + (\pgfkeysvalueof{/robotarm/geometry/a\@prevlink},0)}, + /tikz/rotate={\pgfkeysvalueof{/robotarm/config/q\@link}}, + }, + } + } + \expandafter\pgfkeys\expandafter{\@tmpkeys} + + \begin{scope}[/robotarm/frames/in link 0, + link style/.style={/robotarm/styles/link 0}] + \robotArmBaseLink + \end{scope} + + \foreach\link@num in {1,...,\RA@robotarm@numlinks}{ + \begin{scope}[/robotarm/frames/in link \link@num, + link style/.style={/robotarm/styles/link \link@num}] + + \ifnum\link@num<\RA@robotarm@numlinks + \robotArmLink[ + joint radius=\pgfkeysvalueof{/robotarm/geometry/r\link@num}, + length=\pgfkeysvalueof{/robotarm/geometry/a\link@num}, + width=\pgfkeysvalueof{/robotarm/geometry/w\link@num}, + ] + \else + \robotArmEndEffector[ + joint radius=\pgfkeysvalueof{/robotarm/geometry/r\link@num}, + length=\pgfkeysvalueof{/robotarm/geometry/a\link@num}, + width=\pgfkeysvalueof{/robotarm/geometry/w\link@num}, + ] + \fi + \end{scope} + } + \foreach\link@num in {1,...,\RA@robotarm@numlinks}{ + \begin{scope}[/robotarm/frames/in link \link@num] + \pgfmathsetmacro\link@length{\pgfkeysvalueof{% + /robotarm/geometry/a\link@num}} + \pgfmathsetmacro\link@angle{\pgfkeysvalueof{% + /robotarm/config/q\link@num}} + + \ifRA@robotarm@drawannotations + \pgfmathsetmacro\link@lengthannotspacing{% + \pgfkeysvalueof{/robotarm/annotations/spacing/a\link@num}* + \pgfkeysvalueof{/robotarm/geometry/r\link@num}} + \pgfmathsetmacro\link@angleannotspacing{% + \pgfkeysvalueof{/robotarm/annotations/spacing/q\link@num}* + \link@length} + + % Length annotation help lines + \path[/robotarm/every annotation, + /robotarm/every length annotation, + /robotarm/every length annotation help line] + (0,0) -- (\link@length,0); + \path[/robotarm/every annotation, + /robotarm/every length annotation, + /robotarm/every length annotation help line] + (0,0) -- ++ (0,{\link@lengthannotspacing + + 0.1*sign(\link@lengthannotspacing)}); + \path[/robotarm/every annotation, + /robotarm/every length annotation, + /robotarm/every length annotation help line] + (\link@length,0) -- ++ (0,{\link@lengthannotspacing + + 0.1*sign(\link@lengthannotspacing)}); +% \end{macrocode} +% Length annotation node +% \begin{macrocode} + \path (0,\link@lengthannotspacing) + -- coordinate[pos=0.5] (coor) ++ (\link@length,0); + \node[/robotarm/every annotation, + /robotarm/every length annotation, + /robotarm/every length annotation node] + at (coor) (tag) + {\pgfkeysvalueof{/robotarm/annotations/labels/a\link@num}}; +% \end{macrocode} +% Length annotation arrows +% \begin{macrocode} + \path[/robotarm/every annotation, + /robotarm/every length annotation, + /robotarm/every length annotation arrow] + (tag) -- (0,\link@lengthannotspacing); + \path[/robotarm/every annotation, + /robotarm/every length annotation, + /robotarm/every length annotation arrow] + (tag) -- (\link@length,\link@lengthannotspacing); + + \pgfmathsetmacro\angleannotationcase{% + ifthenelse(\link@angle==0.0, 0, 1)} + \ifnum\angleannotationcase>0 + % Angle annotation help lines + \path[/robotarm/every annotation, + /robotarm/every angle annotation, + /robotarm/every angle annotation help line] + (0,0) -- ++(-\link@angle:{\link@angleannotspacing+0.1}); + \path[/robotarm/every annotation, + /robotarm/every angle annotation, + /robotarm/every angle annotation help line] + (0,0) -- ++(0:{\link@angleannotspacing+0.1}); + + % Angle annotation arrow + \path[/robotarm/every annotation, + /robotarm/every angle annotation, + /robotarm/every angle annotation arrow] + (0,0) ++ (-\link@angle:\link@angleannotspacing) + arc (-\link@angle:0:\link@angleannotspacing); + + % Angle annotation node + \node[/robotarm/every annotation, + /robotarm/every angle annotation, + /robotarm/every angle annotation node] + at (-\link@angle/2:\link@angleannotspacing+0.3) + {\pgfkeysvalueof{/robotarm/annotations/labels/q\link@num}}; + \fi + \fi + \end{scope} + } +% \end{macrocode} +% Install \Tikz styles for coordinate transformations. +% \begin{macrocode} + \tikzset{ + in link/.style={/robotarm/frames/in link #1}, + in base link/.style={/robotarm/frames/in link 0}, + in end effector/.style={/robotarm/frames/in end effector}, + in world/.style={/robotarm/frames/in world}, + } +} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +\makeatother +% +% \end{macrocode} +% \Finale +\endinput \ No newline at end of file diff --git a/graphics/pgf/contrib/robotarm/robotarm.pdf b/graphics/pgf/contrib/robotarm/robotarm.pdf new file mode 100644 index 0000000000..ab9689f9d9 Binary files /dev/null and b/graphics/pgf/contrib/robotarm/robotarm.pdf differ diff --git a/graphics/pgf/contrib/robotarm/robotarm.sty b/graphics/pgf/contrib/robotarm/robotarm.sty new file mode 100644 index 0000000000..5fb7f730aa --- /dev/null +++ b/graphics/pgf/contrib/robotarm/robotarm.sty @@ -0,0 +1,375 @@ +%% +%% This is file `robotarm.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% robotarm.dtx (with options: `robotarm-package') +%% +%% This is a generated file. +%% +%% Copyright (C) 2021 by M.J.W. Snippe +%% ----------------------------------- +%% +%% This file may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3 of this license or (at your option) any later +%% version. The latest version of this license is in: +%% +%% http://www.latex-project.org/lppl.txt +%% +%% and version 1.3 or later is part of all distributions of +%% LaTeX version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status +%% `author-maintained'. +%% +%% This work consists of the files found at github.com/max-sn/robotarm. +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{robotarm} + [2022/03/08 v0.1 Tikz commands to draw planar robot arms] + +\RequirePackage{tikz} + +\usetikzlibrary{patterns} + +\makeatletter + +\newif\ifRA@robotarm@drawannotations + +\pgfkeys{ + /robotarm/base link/.cd, + width/.code={\pgfmathsetmacro\RA@baselink@width{#1}}, + width=0.6, + height/.code={\pgfmathsetmacro\RA@baselink@height{#1}}, + height=0.3, + world width/.code={\pgfmathsetmacro\RA@baselink@worldwidth{#1}}, + world width=1.0, + world height/.code={\pgfmathsetmacro\RA@baselink@worldheight{#1}}, + world height=0.3, + draw base link/.code={% + \path[link style] + (-1/2*\RA@baselink@width,0) + arc (180:0:1/2*\RA@baselink@width) + -- ++ (0, -\RA@baselink@height) + -- ++ (-\RA@baselink@width, 0) + -- cycle; + }, + draw world/.code={% + \path[world style] + (-1/2*\RA@baselink@worldwidth,-\RA@baselink@height) + arc (180:360:{1/2*\RA@baselink@worldwidth} + and {\RA@baselink@worldheight}) -- cycle; + \path[draw, world style] + (-1/2*\RA@baselink@worldwidth,-\RA@baselink@height) + -- ++(\RA@baselink@worldwidth,0); + }, + /robotarm/link/.cd, + width/.code={\pgfmathsetmacro\RA@link@width{#1}}, + width=0.4, + length/.code={\pgfmathsetmacro\RA@link@length{#1}}, + length=2.0, + joint radius/.code={\pgfmathsetmacro\RA@link@jointradius{#1}}, + joint radius=0.25, + draw link/.code={% + \path[link style] + (0,1/2*\RA@link@width) + -- ++ ( \RA@link@length, 0) + arc (90:-90:1/2*\RA@link@width) + -- ++ (-\RA@link@length, 0) + arc (270:90:1/2*\RA@link@width) + -- cycle; + }, + draw joint/.code={% + \path[link style] + (0,0) circle (\RA@link@jointradius); + \path[link style] + (0,0) circle (1/3*\RA@link@jointradius); + }, + /robotarm/end effector/.cd, + width/.code={\pgfmathsetmacro\RA@endeff@width{#1}}, + width=0.4, + length/.code={\pgfmathsetmacro\RA@endeff@length{#1}}, + length=2, + joint radius/.code={\pgfmathsetmacro\RA@endeff@jointradius{#1}}, + joint radius=0.25, + gripper radius/.code={\pgfmathsetmacro\RA@endeff@gripperradius{#1}}, + gripper radius=0.3, + gripper opening angle/.code={% + \pgfmathsetmacro\RA@endeff@gripperopeningangle{#1}}, + gripper opening angle=60, + draw joint/.code={% + \path[link style] + (0,0) circle (\RA@endeff@jointradius); + \path[link style] + (0,0) circle (1/3*\RA@endeff@jointradius); + }, + draw link/.code={% + \pgfmathsetmacro{\link@startangle}{% + 180-asin(1/2*\RA@endeff@width/\RA@endeff@gripperradius)} + \pgfmathsetmacro{\link@endangle}{% + 180+asin(1/2*\RA@endeff@width/\RA@endeff@gripperradius)} + + \path[link style] + (\RA@endeff@length, 0) + ++ (\link@startangle:\RA@endeff@gripperradius) + arc (\link@startangle:\link@endangle:\RA@endeff@gripperradius) + -- (0,0|-0,-1/2*\RA@endeff@width) + arc (-90:90:1/2*\RA@endeff@width) + -- cycle; + }, + draw end effector/.code={ + \draw[link style] + (\RA@endeff@length, 0) + ++ (-1/2*\RA@endeff@gripperopeningangle:% + \RA@endeff@gripperradius) + arc [start angle=-1/2*\RA@endeff@gripperopeningangle, + delta angle=-360+\RA@endeff@gripperopeningangle, + radius=\RA@endeff@gripperradius] + -- ++(180+1/2*\RA@endeff@gripperopeningangle:% + 0.4*\RA@endeff@gripperradius) + arc [start angle=1/2*\RA@endeff@gripperopeningangle, + delta angle=360-\RA@endeff@gripperopeningangle, + radius=0.6*\RA@endeff@gripperradius] + -- ++(-1/2*\RA@endeff@gripperopeningangle:% + 0.4*\RA@endeff@gripperradius) + -- cycle; + }, + /robotarm/.cd, + draw annotations/.is if=RA@robotarm@drawannotations, + draw annotations=true, + every annotation/.style={}, + every length annotation/.style={}, + every length annotation arrow/.style={draw,->}, + every length annotation node/.style={circle,inner sep=0.5pt}, + every length annotation help line/.style={draw,help lines}, + every angle annotation/.style={}, + every angle annotation arrow/.style={draw,->}, + every angle annotation node/.style={}, + every angle annotation help line/.style={draw,help lines}, + base link/.code=\pgfkeys{/robotarm/base link/.cd,#1}, + link/.code=\pgfkeys{/robotarm/link/.cd,#1}, + end effector/.code=\pgfkeys{/robotarm/end effector/.cd,#1}, + geometry/.code=\pgfkeys{/robotarm/geometry/.cd,#1}, + config/.code=\pgfkeys{/robotarm/config/.cd,#1}, + spacing/.code=\pgfkeys{/robotarm/annotations/spacing/.cd,#1}, + labels/.code=\pgfkeys{/robotarm/annotations/labels/.cd,#1}, + styles/.code=\pgfkeys{/robotarm/styles/.cd,#1}, + /robotarm/geometry/.cd, + a0/.initial=0, + a/.initial=2, + r/.initial=0.25, + w/.initial=0.4, + /robotarm/config/q/.initial=0, + /robotarm/frames/.cd, + in link 0/.style={}, + in end effector/.style={ + /robotarm/frames/in link \RA@robotarm@numlinks, + shift={% + (\pgfkeysvalueof{/robotarm/geometry/a\RA@robotarm@numlinks},0)}, + }, + in world/.style={ + shift={(0,-\RA@baselink@height)} + }, + /robotarm/styles/.cd, + world/.style={pattern=north west lines}, + link/.style={ + draw, + fill=lightgray, + }, + link 0/.style={/robotarm/styles/link}, + /robotarm/annotations/.cd, + spacing/.cd, + a/.initial=3, + q/.initial=1/2, + /robotarm/annotations/.cd, + labels/.cd, + a/.initial=a, + q/.initial=q, +} +\tikzset{ + link style/.style={/robotarm/styles/link}, + world style/.style={/robotarm/styles/world}, +} +\newcommand\robotarmset[1]{% + \pgfkeys{/robotarm/.cd,#1}% +} +\newcommand\robotArmLink[1][]{ + \begingroup + \pgfkeys{/robotarm/link/.cd,#1} + + \pgfkeys{/robotarm/link/draw link} + \pgfkeys{/robotarm/link/draw joint} + \endgroup +} +\newcommand\robotArmEndEffector[1][]{ + \begingroup + \pgfkeys{/robotarm/end effector/.cd,#1} + + \pgfkeys{/robotarm/end effector/draw link} + \pgfkeys{/robotarm/end effector/draw joint} + \pgfkeys{/robotarm/end effector/draw end effector} + + \endgroup +} +\newcommand\robotArmBaseLink[1][]{ + \begingroup + \pgfkeys{/robotarm/base link/.cd,#1} + + \pgfkeys{/robotarm/base link/draw world} + \pgfkeys{/robotarm/base link/draw base link} + \endgroup +} +\newcommand\robotArm[2][]{ + \pgfmathtruncatemacro\RA@robotarm@numlinks{#2} + \def\@tmpkeys{} + \foreach \@link [remember=\@link as \@prevlink (initially 0)] in % + {1,...,\RA@robotarm@numlinks}{ + \xdef\@tmpkeys{\@tmpkeys% + /robotarm/geometry/a\@link/.initial=% + \pgfkeysvalueof{/robotarm/geometry/a},% + /robotarm/geometry/r\@link/.initial=% + \pgfkeysvalueof{/robotarm/geometry/r},% + /robotarm/geometry/w\@link/.initial=% + \pgfkeysvalueof{/robotarm/geometry/w},% + /robotarm/config/q\@link/.initial=% + \pgfkeysvalueof{/robotarm/config/q},% + /robotarm/styles/link \@link/.style={/robotarm/styles/link},% + /robotarm/annotations/labels/a\@link/.initial={% + $\pgfkeysvalueof{/robotarm/annotations/labels/a}_{\@link}$},% + /robotarm/annotations/labels/q\@link/.initial={% + $\pgfkeysvalueof{/robotarm/annotations/labels/q}_{\@link}$},% + /robotarm/annotations/spacing/a\@link/.initial={% + \pgfkeysvalueof{/robotarm/annotations/spacing/a}},% + /robotarm/annotations/spacing/q\@link/.initial={% + \pgfkeysvalueof{/robotarm/annotations/spacing/q}},% + } + } + \expandafter\pgfkeys\expandafter{\@tmpkeys} + \pgfkeys{/robotarm/.cd,#1} + \def\@tmpkeys{} + \foreach \@link [remember=\@link as \@prevlink (initially 0)] in % + {1,...,\RA@robotarm@numlinks}{ + \xdef\@tmpkeys{\@tmpkeys% + /robotarm/frames/in link \@link/.style={% + /robotarm/frames/in link \@prevlink, + /tikz/shift={% + (\pgfkeysvalueof{/robotarm/geometry/a\@prevlink},0)}, + /tikz/rotate={\pgfkeysvalueof{/robotarm/config/q\@link}}, + }, + } + } + \expandafter\pgfkeys\expandafter{\@tmpkeys} + + \begin{scope}[/robotarm/frames/in link 0, + link style/.style={/robotarm/styles/link 0}] + \robotArmBaseLink + \end{scope} + + \foreach\link@num in {1,...,\RA@robotarm@numlinks}{ + \begin{scope}[/robotarm/frames/in link \link@num, + link style/.style={/robotarm/styles/link \link@num}] + + \ifnum\link@num<\RA@robotarm@numlinks + \robotArmLink[ + joint radius=\pgfkeysvalueof{/robotarm/geometry/r\link@num}, + length=\pgfkeysvalueof{/robotarm/geometry/a\link@num}, + width=\pgfkeysvalueof{/robotarm/geometry/w\link@num}, + ] + \else + \robotArmEndEffector[ + joint radius=\pgfkeysvalueof{/robotarm/geometry/r\link@num}, + length=\pgfkeysvalueof{/robotarm/geometry/a\link@num}, + width=\pgfkeysvalueof{/robotarm/geometry/w\link@num}, + ] + \fi + \end{scope} + } + \foreach\link@num in {1,...,\RA@robotarm@numlinks}{ + \begin{scope}[/robotarm/frames/in link \link@num] + \pgfmathsetmacro\link@length{\pgfkeysvalueof{% + /robotarm/geometry/a\link@num}} + \pgfmathsetmacro\link@angle{\pgfkeysvalueof{% + /robotarm/config/q\link@num}} + + \ifRA@robotarm@drawannotations + \pgfmathsetmacro\link@lengthannotspacing{% + \pgfkeysvalueof{/robotarm/annotations/spacing/a\link@num}* + \pgfkeysvalueof{/robotarm/geometry/r\link@num}} + \pgfmathsetmacro\link@angleannotspacing{% + \pgfkeysvalueof{/robotarm/annotations/spacing/q\link@num}* + \link@length} + + % Length annotation help lines + \path[/robotarm/every annotation, + /robotarm/every length annotation, + /robotarm/every length annotation help line] + (0,0) -- (\link@length,0); + \path[/robotarm/every annotation, + /robotarm/every length annotation, + /robotarm/every length annotation help line] + (0,0) -- ++ (0,{\link@lengthannotspacing + + 0.1*sign(\link@lengthannotspacing)}); + \path[/robotarm/every annotation, + /robotarm/every length annotation, + /robotarm/every length annotation help line] + (\link@length,0) -- ++ (0,{\link@lengthannotspacing + + 0.1*sign(\link@lengthannotspacing)}); + \path (0,\link@lengthannotspacing) + -- coordinate[pos=0.5] (coor) ++ (\link@length,0); + \node[/robotarm/every annotation, + /robotarm/every length annotation, + /robotarm/every length annotation node] + at (coor) (tag) + {\pgfkeysvalueof{/robotarm/annotations/labels/a\link@num}}; + \path[/robotarm/every annotation, + /robotarm/every length annotation, + /robotarm/every length annotation arrow] + (tag) -- (0,\link@lengthannotspacing); + \path[/robotarm/every annotation, + /robotarm/every length annotation, + /robotarm/every length annotation arrow] + (tag) -- (\link@length,\link@lengthannotspacing); + + \pgfmathsetmacro\angleannotationcase{% + ifthenelse(\link@angle==0.0, 0, 1)} + \ifnum\angleannotationcase>0 + % Angle annotation help lines + \path[/robotarm/every annotation, + /robotarm/every angle annotation, + /robotarm/every angle annotation help line] + (0,0) -- ++(-\link@angle:{\link@angleannotspacing+0.1}); + \path[/robotarm/every annotation, + /robotarm/every angle annotation, + /robotarm/every angle annotation help line] + (0,0) -- ++(0:{\link@angleannotspacing+0.1}); + + % Angle annotation arrow + \path[/robotarm/every annotation, + /robotarm/every angle annotation, + /robotarm/every angle annotation arrow] + (0,0) ++ (-\link@angle:\link@angleannotspacing) + arc (-\link@angle:0:\link@angleannotspacing); + + % Angle annotation node + \node[/robotarm/every annotation, + /robotarm/every angle annotation, + /robotarm/every angle annotation node] + at (-\link@angle/2:\link@angleannotspacing+0.3) + {\pgfkeysvalueof{/robotarm/annotations/labels/q\link@num}}; + \fi + \fi + \end{scope} + } + \tikzset{ + in link/.style={/robotarm/frames/in link #1}, + in base link/.style={/robotarm/frames/in link 0}, + in end effector/.style={/robotarm/frames/in end effector}, + in world/.style={/robotarm/frames/in world}, + } +} +\makeatother +\endinput +%% +%% End of file `robotarm.sty'. diff --git a/macros/generic/ifptex/LICENSE b/macros/generic/ifptex/LICENSE index ead3a3702e..df92641d58 100644 --- a/macros/generic/ifptex/LICENSE +++ b/macros/generic/ifptex/LICENSE @@ -1,6 +1,6 @@ The MIT License -Copyright (c) 2008-2021 Takayuki YATO (aka. "ZR") +Copyright (c) 2008-2022 Takayuki YATO (aka. "ZR") Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/macros/generic/ifptex/README-ja.md b/macros/generic/ifptex/README-ja.md index 49fc486c06..591f746ea9 100644 --- a/macros/generic/ifptex/README-ja.md +++ b/macros/generic/ifptex/README-ja.md @@ -66,6 +66,15 @@ LaTeX の場合: * `\RequirepTeXng` `\ifpTeXng` 不成立の場合はエラーを出す。 ※一応 `\RequireStrictpTeXng` もある。 + * `\upTeXguessedversion` [mathchardef-トークン] + upTeX のバージョンの推測値(を百倍した整数値)。 + ※1.23版以降では常に正確なバージョン値が得られる。 + ※upTeX 以外のエンジンでは 0 になる。 + * `\RequireupTeXAtLeast{<要求値>}` + `\upTeXguessedversion` の値が要求値より小さい場合はエラーを出す。 + * `\RequireNativeupTeXAtLeast{<要求値>}` + `\upTeXguessedversion` の値が要求値より小さいまたは `\ifnativeupTeX` + が不成立の場合はエラーを出す。 ifuptex パッケージ ― ifptex の別名 @@ -88,6 +97,9 @@ LaTeX の場合: 更新履歴 -------- + * Version 2.2 〈2022/04/03〉 + - `\upTeXguessedversion` を正式にサポート。 + - `\Require(Native)upTeXAtLeast` を追加。 * Version 2.1 〈2021/07/01〉 - 将来の版の pTeX に対応させる。 - とある非公開機能を削除。 diff --git a/macros/generic/ifptex/README.md b/macros/generic/ifptex/README.md index 4b09b0baff..9f09ad8d85 100644 --- a/macros/generic/ifptex/README.md +++ b/macros/generic/ifptex/README.md @@ -68,6 +68,16 @@ NB: Here “e-TeX-ness” is not considered. Issues an error if `\ifnativeupTeX` fails. * `\RequirepTeXng` Issues an error if `\ifpTeXng` fails. + * `\upTeXguessedversion` [mathchardef-token] + The guessed value of upTeX version; given as a 100-folded integer. + NB. On version 1.23 or later, the value is correct. + NB. On a non-upTeX engine, the value is zero. + * `\RequireupTeXAtLeast{}` + Issues an error if `\upTeXguessedversion` is smaller than the given + required value. + * `\RequireNativeupTeXAtLeast{}` + Issues an error either if `\upTeXguessedversion` is smaller than + the given required value or if `\ifnativeupTeX` fails. ifuptex Package ― Alias of ifptex @@ -94,6 +104,9 @@ Just the same as the ifptex package. Revision History ---------------- + * Version 2.2 〈2022/04/03〉 + - Officialy support `\upTeXguessedversion`. + - Add `\Require(Native)upTeXAtLeast`. * Version 2.1 〈2021/07/01〉 - Adjust for the future version of pTeX. - Drop an undocumented feature. diff --git a/macros/generic/ifptex/ifptex.sty b/macros/generic/ifptex/ifptex.sty index a3e63d8d5d..604081118e 100644 --- a/macros/generic/ifptex/ifptex.sty +++ b/macros/generic/ifptex/ifptex.sty @@ -1,7 +1,7 @@ %% %% This is file 'ifptex.sty'. %% -%% Copyright (c) 2008-2021 Takayuki YATO (aka. "ZR") +%% Copyright (c) 2008-2022 Takayuki YATO (aka. "ZR") %% GitHub: https://github.com/zr-tex8r %% Twitter: @zr_tex8r %% @@ -70,7 +70,7 @@ %% package declaration \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{ifptex}[2021/07/01 v2.1 pTeX checker] +\ProvidesPackage{ifptex}[2022/04/03 v2.2 pTeX checker] \def\bxip@pkgname{ifptex} %% packages @@ -138,7 +138,7 @@ % do a hard stop \batchmode\read-1to\bxip@tmpa #3} -\gdef\bxip@err@required#1{\bxip@Require\iftrue{#1}\fi} +\gdef\bxip@err@required#1{\bxip@Require\iffalse{#1}\fi} %% \bxip@protected \let\bxip@protected\protected @@ -149,17 +149,41 @@ %--------------------------------------- guess version -%% \bxip@uptex@new@version -\global\mathchardef\bxip@uptex@new@version=19 - %%<+> \upTeXguessedversion -% NB: The value of \upTeXguessedversion on pTeX is zero. -\global\mathchardef\upTeXguessedversion=0 -\bxip@test@primitive\ptexversion\ifbxip@ok %<*version> -% If \(u)ptexversion is supported... - - % get version from \uptexversion/revision - \bxip@test@primitive\uptexversion\ifbxip@ok +% A \mathchardef constant that represents the guessed version +% of the upTeX engine. (123 means version 1.23.) +% - The version 1.23 or later has primitive \uptexversion/revision, +% from which the correct version value can be obtained. +% - For the older versions, the version value is guessed from various +% features of the engine, and the minimum possible values is stored +% to \upTeXguessedversion. (For the versions earlier than v0.06, +% however, \upTeXguessedversion is set to 1.) +% - If the engine is not regarded as upTeX (or its derivative), then +% \upTeXguessedversion is set to zero. + +% [Development history of upTeX until version 1.23] +% Version 1.23 [2018-02-24] Introduce \uptexversion/revision +% Version 1.22 [2017-01-15] Adopt blocks of Unicode v9.0.0 +% Version 1.21 [2016-02-20] Adopt blocks of Unicode v8.0.0 +% Version 1.20 [2014-12-29] Adopt blocks of Unicode v7.0.0 +% Version 1.11 [2012-09-21] (Fix bug on \meaning\kchardef) +% Version 1.10 [2012-04-29] Adopt blocks of Unicode v6.1.0 +% Version 1.00 [2012-01-15] Adopt blocks of Unicode v6.0.0 +% Version 0.30 [2010-04-10] (No observable changes) +% Version 0.29 [2010-01-31] Adopt blocks of Unicode v5.2.0 +% Version 0.28 [2009-08-23] (Fix bug on \if test) +% Version 0.21 [2008-03-13] (Fix bug on \uppercase) +% Version 0.19 [2007-12-26] Introduce \forcecjktoken +% Version 0.12 [2007-08-25] Adjust newline after hangul +% Version 0.11 [2007-08-07] (Fix bug on \jcharwidowpenalty) +% Version 0.10 [2007-07-28] Introduce \kchar and \kchardef +% Version 0.06 [2007-04-15] Introduce \enable/disablecjktoken +% Version 0.00 [2007-01-27] Initial version + +\global\let\upTeXguessedversion\relax +\bxip@test@primitive\uptexversion\ifbxip@ok + % If the engine has \uptexversion, it is upTeX of >= v1.23. + % The exact version can be known from \uptexversion/revision. \bxip@test@primitive\uptexrevision\ifbxip@ok \def\bxip@tmpa#1#2#3#4\relax{% \chardef\bxip@tmpa=0\relax @@ -171,29 +195,65 @@ \multiply\bxip@cnta100\relax \advance\bxip@cnta\bxip@tmpa \global\mathchardef\upTeXguessedversion=\bxip@cnta - \fi\fi - -\else %<*!version> -% If \(u)ptexversion is not supported... - -% if \ucs exists, then gv >= 1 -\bxip@test@primitive\ucs\ifbxip@ok - \global\mathchardef\upTeXguessedversion=1 - % if \enablecjktoken exists, then gv >= 6 - \bxip@test@primitive\enablecjktoken\ifbxip@ok - \global\mathchardef\upTeXguessedversion=6 - % if \kchar exists, then gv >= 10 - \bxip@test@primitive\kchar\ifbxip@ok - \global\mathchardef\upTeXguessedversion=10 - % if \forcecjktoken exists, then gv >= 19 - \bxip@test@primitive\forcecjktoken\ifbxip@ok - \global\mathchardef\upTeXguessedversion=19 - \fi - \fi + \else % UNEXPECTED CASE + \global\mathchardef\upTeXguessedversion=0 \fi \fi - -\fi % +\ifx\upTeXguessedversion\relax % still unknown + \bxip@test@primitive\ptexversion\ifbxip@ok + % If the engine has \ptexversion but not \uptexversion, + % it is a real pTeX. + \global\mathchardef\upTeXguessedversion=0 + % Note: The recent version of pTeX has primitive \ucs. + \fi +\fi +\ifx\upTeXguessedversion\relax % still unknown + \bxip@test@primitive\ucs\ifbxip@ok\else + % If the engine does not have \ucs, it is pTeX. + \global\mathchardef\upTeXguessedversion=0 + \fi +\fi +% Here if \upTeXguessedversion is not zero, it is upTeX definitely. +\ifx\upTeXguessedversion\relax % still unknown + % If \uptexversion is missing, I guess the version according to + % the way the Unicode blocks are divided. + \def\bxip@tmpa#1#2{% check if #1 and #2 belong to different blocks + \bxip@true{ifbxip@ok}\begingroup + \kcatcode#1=16\kcatcode#2=17\relax + \ifnum\kcatcode#1=17 \aftergroup\bxip@tmpb \fi + \endgroup} + \def\bxip@tmpb{\bxip@false{ifbxip@ok}} + \bxip@tmpa{"1C50}{"1C80}\ifbxip@ok + \global\mathchardef\upTeXguessedversion=122 + \else\bxip@tmpa{"AB30}{"AB70}\ifbxip@ok + \global\mathchardef\upTeXguessedversion=121 + \else\bxip@tmpa{"1A20}{"1AB0}\ifbxip@ok + \global\mathchardef\upTeXguessedversion=120 + \else\bxip@tmpa{"840}{"8A0}\ifbxip@ok + \global\mathchardef\upTeXguessedversion=110 + \else\bxip@tmpa{"800}{"840}\ifbxip@ok + \global\mathchardef\upTeXguessedversion=100 + \else\bxip@tmpa{"7C0}{"800}\ifbxip@ok + \global\mathchardef\upTeXguessedversion=29 + \else + \global\mathchardef\upTeXguessedversion=1 + \fi\fi\fi\fi\fi\fi +\fi +% I guess the more correct version according to the existence +% and/or the behavior of the specific primitives. +\ifnum\upTeXguessedversion=1 % v0.00-0.28 + \bxip@test@primitive\forcecjktoken\ifbxip@ok + % \forcecjktoken exists + \global\mathchardef\upTeXguessedversion=19 + \else\bxip@test@primitive\kchar\ifbxip@ok + % \kchar exists + \global\mathchardef\upTeXguessedversion=10 + \else\bxip@test@primitive\enablecjktoken\ifbxip@ok + % \enablecjktoken exists + \global\mathchardef\upTeXguessedversion=6 + % else \upTeXguessedversion=1 (v0.00-0.05) + \fi\fi\fi +\fi %--------------------------------------- public stuffs % Note: @@ -278,6 +338,20 @@ \bxip@protected\gdef\RequireStrictpTeXng{% \bxip@Require\ifstrictpTeXng{pTeX-ng}\fi} +%%<+> \RequireupTeXAtLeast{} +\bxip@protected\gdef\RequireupTeXAtLeast#1{% + \ifupTeX + \bxip@check@version\upTeXguessedversion{#1}{upTeX}% + \else \bxip@err@required{upTeX}% + \fi} + +%%<+> \RequireNativeupTeXAtLeast{} +\bxip@protected\gdef\RequireNativeupTeXAtLeast#1{% + \ifnativeupTeX + \bxip@check@version\upTeXguessedversion{#1}{upTeX in Unicode}% + \else \bxip@err@required{upTeX in Unicode}% + \fi} + %--------------------------------------- deprecated stuffs %%<+>D \ifNativeupTeX == \ifnativeupTeX @@ -285,6 +359,9 @@ %%<+>D \RequirenativeupTeX == \RequireNativeupTeX \gdef\RequirenativeupTeX{\RequireNativeupTeX} +%% \bxip@uptex@new@version +\global\mathchardef\bxip@uptex@new@version=19 + %%<+>D \ifnewupTeX \global\bxip@false{ifnewupTeX} \ifnum\upTeXguessedversion<\bxip@uptex@new@version\else @@ -295,19 +372,13 @@ \gdef\RequireNewupTeX{% \bxip@with@default\bxip@uptex@new@version\bxip@require@new@uptex@a} \gdef\bxip@require@new@uptex@a[#1]{% - \ifupTeX - \bxip@check@version\upTeXguessedversion{#1}{upTeX}% - \else \bxip@err@required{upTeX}% - \fi} + \RequireupTeXAtLeast{#1}} %%<+>D \RequireNativeNewupTeX \gdef\RequireNativeNewupTeX{% \bxip@with@default\bxip@uptex@new@version\bxip@require@new@uptex@b} \gdef\bxip@require@new@uptex@b[#1]{% - \ifnativeupTeX - \bxip@check@version\upTeXguessedversion{#1}{upTeX in Unicode}% - \else \bxip@err@required{upTeX in Unicode}% - \fi} + \RequireNativeupTeXAtLeast{#1}} %--------------------------------------- all done \endgroup diff --git a/macros/generic/ifptex/ifuptex.sty b/macros/generic/ifptex/ifuptex.sty index 0489b25eb7..989c576782 100644 --- a/macros/generic/ifptex/ifuptex.sty +++ b/macros/generic/ifptex/ifuptex.sty @@ -1,7 +1,7 @@ %% %% This is file 'ifuptex.sty'. %% -%% Copyright (c) 2008-2021 Takayuki YATO (aka. "ZR") +%% Copyright (c) 2008-2022 Takayuki YATO (aka. "ZR") %% GitHub: https://github.com/zr-tex8r %% Twitter: @zr_tex8r %% @@ -52,7 +52,7 @@ %% package declaration \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{ifuptex}[2021/07/01 v2.1 pTeX checker] +\ProvidesPackage{ifuptex}[2022/04/03 v2.2 pTeX checker] %% load ifptex \bxip@input diff --git a/macros/latex/contrib/bithesis/README-zh.md b/macros/latex/contrib/bithesis/README-zh.md deleted file mode 100644 index 62e548767c..0000000000 --- a/macros/latex/contrib/bithesis/README-zh.md +++ /dev/null @@ -1,88 +0,0 @@ -
- BIThesis Icon - -📖 _非官方本科生毕业设计毕业论文 LaTeX 模板(以及更多)_ - -![BIThesis](./assets/bithesis_badge_solid.svg) -[![English version](./assets/english.svg)](./README-en.md) -[![Latexmk](https://badgen.net/badge/compiler/Latexmk?color=blue&labelColor=2b2b2b)](https://mg.readthedocs.io/latexmk.html) -[![License](https://badgen.net/github/license/BITNP/BIThesis?color=008080&labelColor=2b2b2b)](./LICENSE) -[![Join on Slack](https://img.shields.io/badge/Slack%20Community-BIThesis-black?logo=slack&style=social&logoColor=2eb67d)](https://join.slack.com/t/bithesis/shared_invite/zt-epmzkyk0-fJRsUS36AlwMNB2AI_Q~Vw) - -
- -

欢迎

- -BIThesis 是针对北京理工大学本科同学毕业设计、毕业论文制作的一个非官方的 LaTeX 模板,BIThesis 同时也包括其他本科学习中涉及到的文献综述、实验报告等的 LaTeX 模板。 - -**我们正在对项目持续更新!目前,你完全可以使用现有的版本开始你的毕业设计开题报告的写作;不过与此同时,我们也在持续推进代码的升级和更新(主要是不影响使用的底层逻辑)。更多开发计划请访问我们的 [Roadmap](https://github.com/BITNP/BIThesis/projects)。想帮助这个项目持续前进?参见我们的[贡献者指南](./contributing-zh.md)。** - -> 本项目获得了 [北京理工大学教务部](http://jwc.bit.edu.cn/)、[北京理工大学计算机学院](http://cs.bit.edu.cn/) 的认可、背书与大力支持。详见:[致谢 - 官方赞助](https://bithesis.bitnp.net/Guide/5-Acknowledgements/Acknowledgements.html#%E5%AE%98%E6%96%B9%E8%B5%9E%E5%8A%A9-official-sponsors)。 - -

Slack 社区

- -> 订阅更新,询问问题,提出需求……来参加 Slack 上面的北理 BIThesis 官方社区! - -[![Join on Slack](./assets/slack.svg)](https://join.slack.com/t/bithesis/shared_invite/zt-epmzkyk0-fJRsUS36AlwMNB2AI_Q~Vw) - -

内容

- -- [开发者指南](#开发者指南) -- [贡献者指南](#%e8%b4%a1%e7%8c%ae%e8%80%85%e6%8c%87%e5%8d%97) -- [贡献者](#%e8%b4%a1%e7%8c%ae%e8%80%85) -- [相关项目](#%e7%9b%b8%e5%85%b3%e9%a1%b9%e7%9b%ae) -- [发布状态](#%e5%8f%91%e5%b8%83%e7%8a%b6%e6%80%81) - - - -## 开发者指南 - -### 生成 .cls 文件 - -```Bash -make cls -``` - -### 生成宏包手册 - -```Bash -make doc -``` - -### 与 scaffold 联调开发 - -将 `BITNP/BIThesis` 与 `BITNP/BIThesis-scaffold` 放在同一级目录下, -然后进入 `BIThesis` 目录。 - -```Bash -# 请首先确保 entr 正确安装 -ls bithesis.dtx | entr -s 'yes -y y | make doc && make copy' -``` - -## 贡献者指南 - -详情请查看[贡献者指南](./contributing-zh.md)。 - -## 贡献者 - -参见[Github Contributors](https://github.com/BITNP/BIThesis/graphs/contributors) 与 [BIThesis - 致谢](https://bithesis.bitnp.net/Guide/5-Acknowledgements/Acknowledgements.html)。 - -## 相关项目 - -- [北京理工大学硕士(博士)学位论文 LaTeX 模板](https://github.com/BIT-thesis/LaTeX-template) -- [fduthesis(复旦大学论文模板)](https://github.com/stone-zeng/fduthesis) -- [上海交通大学 XeLaTeX 学位论文及课程论文模板](https://github.com/sjtug/SJTUThesis) -- …… - -## 发布状态 - -| CI | Build status | -| :------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| GitHub Release | ![GitHub Release](https://github.com/BITNP/BIThesis/workflows/Release/badge.svg?branch=master) | -| Netlify Deploy | [![Netlify Status](https://api.netlify.com/api/v1/badges/81f7b49b-59a1-46bc-ba52-02f8be71d247/deploy-status)](https://app.netlify.com/sites/vigorous-hoover-a697eb/deploys) | - ---- - -📖 **BIThesis** ©BITNP/BIThesis. Released under the [LaTeX Project Public License](LICENSE). - -Authored by Spencer Woo. Maintained with help from [contributors](https://github.com/BITNP/BIThesis/graphs/contributors). diff --git a/macros/latex/contrib/bithesis/README.md b/macros/latex/contrib/bithesis/README.md index d8a8e19997..a63fde0877 100644 --- a/macros/latex/contrib/bithesis/README.md +++ b/macros/latex/contrib/bithesis/README.md @@ -1,3 +1,4 @@ +
BIThesis Icon @@ -13,9 +14,9 @@

Welcome

-BIThesis is an unofficial LaTeX template set for your **bachelor graduation thesis** and corresponding reports here at BIT. Hand-crafted following the specifications made by the _[Dept. of Undergraduate Academic Affairs](http://jwc.bit.edu.cn/)_ of _[Beijing Institute of Technology](http://http://www.bit.edu.cn/)_. +BIThesis is an unofficial LaTeX template set for your **bachelor graduation thesis** and corresponding reports here at BIT. Hand-crafted following the specifications made by the _[Dept. of Undergraduate Academic Affairs](https://jwc.bit.edu.cn/)_ of _[Beijing Institute of Technology](https://www.bit.edu.cn/)_. -> This project is supported by the _[Dept. of Undergraduate Academic Affairs, BIT](http://jwc.bit.edu.cn/)_ and the _[School of Computer Science and Technology, BIT](http://cs.bit.edu.cn/)_. See [Acknowledgements - Official Sponsors](https://bithesis.bitnp.net/Guide/5-Acknowledgements/Acknowledgements.html#%E5%AE%98%E6%96%B9%E8%B5%9E%E5%8A%A9-official-sponsors). +> This project is supported by the _[Dept. of Undergraduate Academic Affairs, BIT](https://jwc.bit.edu.cn/)_ and the _[School of Computer Science and Technology, BIT](https://cs.bit.edu.cn/)_. See [Acknowledgements - Official Sponsors](https://bithesis.bitnp.net/Guide/5-Acknowledgements/Acknowledgements.html#%E5%AE%98%E6%96%B9%E8%B5%9E%E5%8A%A9-official-sponsors).

Slack Community

diff --git a/macros/latex/contrib/bithesis/bithesis.dtx b/macros/latex/contrib/bithesis/bithesis.dtx index d5e02c47f5..8194a4ea5f 100644 --- a/macros/latex/contrib/bithesis/bithesis.dtx +++ b/macros/latex/contrib/bithesis/bithesis.dtx @@ -1,18 +1,18 @@ % \iffalse meta-comment % -% Copyright (C) 2021 +% Copyright (C) 2022 % Association of Bit Network Pioneer and any individual authors listed elsewhere in this file. % ----------------------------------- % -% This file may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 -% of this license or (at your option) any later version. -% The latest version of this license is in: -% -% http://www.latex-project.org/lppl.txt -% -% and version 1.3 or later is part of all distributions of LaTeX -% version 2020/11/27 or later. +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3c of this license or (at your option) any later +% version. This version of this license is in +% http://www.latex-project.org/lppl/lppl-1-3c.txt +% and the latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of +% LaTeX version 2020/11/27 or later. % % \fi % @@ -20,10 +20,11 @@ %\NeedsTeXFormat{LaTeX2e}[1999/12/01] %\ProvidesClass{bitbook} %
\ProvidesClass{bitart} -% [2021/09/07 v1.1.0 BIT Thesis Templates] +%\ProvidesClass{bitgrad} +% [2022/04/01 v2.0.0 BIT Thesis Templates] % %<*driver> -\ProvidesFile{bithesis.dtx}[2021/09/07 1.1.0 BIT Thesis Templates] +\ProvidesFile{bithesis.dtx}[2022/04/01 2.0.0 BIT Thesis Templates] \documentclass{ltxdoc} \usepackage{dtx-style} @@ -116,17 +117,21 @@ % \section{项目简介} % \subsection{历史与贡献者们} % \begin{itemize} -% \item 2019 - 2020 年,\BIThesis 最早由 2016 级的武上博、王赞、唐誉铭、牟思睿和詹熠莎等人维护。 +% \item 2019 - 2020 年,\BIThesis 最早由 2016 级的武上博、王赞、唐誉铭、牟思睿和詹熠莎等人维护。 % \begin{itemize} % \item 在此期间,\BIThesis 从无到有诞生了,包括使用手册、在线文档和开箱即用的模板。 % \item 同时,2017 级的赵池等同学完成了一系列 \BIThesisLaTeX 的视频教程。 % \end{itemize} -% \item 2020 - 2021 年,2017 级的冯开宇、杨思云、郝正亮和顾骁等人接管了维护开发工作。 +% \item 2020 - 2021 年,2017 级的冯开宇、杨思云、郝正亮和顾骁等人接管了维护开发工作。 % \begin{itemize} % \item 在此期间,冯开宇将原来的 .tex 文件制作成了宏包,并发布到 CTAN 上。 % \item 项目代码也随之被拆分成了 \BIThesisMacroPackage,\BIThesisWiki 和 \BIThesisScaffold。 % \end{itemize} -% \item 2021 - 2022 年,2021 级(硕士研究生)的冯开宇针对 2021 年毕业季收到的反馈对该项目进行维护升级(前向兼容)。 +% \item 2021 - 2022 年,2021 级(硕士研究生)的冯开宇针对 2021、2022 毕业季收到的反馈对该项目进行维护升级(前向兼容)。 +% \begin{itemize} +% \item 在此期间,冯开宇合入了杨雅婷等人在 2017 年开发的研究生学位论文模板。 +% \item 在项目架构上,BIThesis-scaffold 合入 BIThesis 以便于进一步维护。 +% \end{itemize} % \end{itemize} % \subsection{\BIThesis 是什么?} % \BIThesis 之名是英文单词 Beijing Institution of Technology(北京理工大学)的首字母缩写“BIT” 与“Thesis”结合而成。在纯文本环境下,该名字应写作“BIThesis”。 @@ -158,7 +163,8 @@ % \toprule % 类别 & 文件 & 说明 \\ \midrule % \multirow{2}{*}{文档类} & bitart.cls & 对应 ctxart.cls,提供实验报告模板、开题报告模板。 \\ -% & bitbook.cls & 对应 ctexbook.cls ,提供本科毕业模板。 \\ \cmidrule(l){2-3} +% & bitbook.cls & 对应 ctexbook.cls ,提供本科生毕业设计模板。 \\ \cmidrule(l){2-3} +% & bitgrad.cls & 对应 ctexbook.cls ,提供研究生毕业设计模板。(全体硕士及2020级以前博士适用) \\ \cmidrule(l){2-3} % \end{tabular} % \end{table} % \subsection{\BIThesis 宏包的安装和更新} @@ -230,8 +236,8 @@ \ProcessOptions\relax - -\LoadClass[UTF8,AutoFakeBold,AutoFakeSlant,zihao=-4,oneside,openany]{ctexbook} +\PassOptionsToPackage{AutoFakeBold,AutoFakeSlant}{xeCJK} +\LoadClass[UTF8,zihao=-4,oneside,openany]{ctexbook} \RequirePackage[a4paper,left=3cm,right=2.6cm,top=3.5cm,bottom=2.9cm]{geometry} % 目前 29mm 最接近 Word 排版 @@ -469,7 +475,8 @@ \ExecuteOptions{lab-report} \ProcessOptions\relax -\LoadClass[UTF8,AutoFakeBold,AutoFakeSlant,zihao=-4]{ctexart}% +\PassOptionsToPackage{AutoFakeBold,AutoFakeSlant}{xeCJK} +\LoadClass[UTF8,zihao=-4]{ctexart}% \if@bit@labreport \RequirePackage[a4paper,left=3.18cm,right=3.18cm,top=2.54cm,bottom=2.54cm,includeheadfoot]{geometry}% @@ -612,6 +619,876 @@ % \begin{macrocode} %
% \end{macrocode} +% \begin{macrocode} +%<*graduate> +% \end{macrocode} +% \begin{macrocode} + +%% ================================================== +%% BIT-thesis-grd.cls for BIT Thesis +%% modified by yang yating +%% version: 1.4 +%% last update: Mar 25th, 2018 +%% ================================================== + +%% math packages -- conflict with xunicode +\RequirePackage{amsmath,amsthm,amsfonts,amssymb,bm,mathrsfs} +% 直立希腊字母字体 +\RequirePackage{upgreek} + +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{ctexbook}} +\newif\ifBIT@master\BIT@masterfalse +\newif\ifBIT@doctor\BIT@doctorfalse +\newif\ifBIT@istwoside\BIT@istwosidefalse +\DeclareOption{twoside}{\BIT@istwosidetrue} +\DeclareOption{master}{\BIT@mastertrue} +\DeclareOption{doctor}{\BIT@doctortrue} + +\ProcessOptions\relax +\ifBIT@istwoside +\LoadClass[zihao=-4,a4paper,UTF8,space=auto]{ctexbook} +\else +\LoadClass[zihao=-4,a4paper,oneside,openany,UTF8,space=auto]{ctexbook} +\fi + +%% +%% the setup of ctex package +%% +\def\contentsname{目\BITspace 录} +\def\listfigurename{插\BITspace 图} +\def\listtablename{表\BITspace 格} + +%% +%% 封面标题 +%% +\def\BIT@label@major{学~~~~科~~~~专~~~~业} +\def\BIT@label@title{论文题目} +\def\BIT@label@author{作~~~~者~~~~姓~~~~名} +\def\BIT@label@classification{中图分类号:} +\def\BIT@label@confidential{密级} +\def\BIT@label@UDC{UDC\!分类号:} +\def\BIT@label@serialnumber{编号} +\def\BIT@label@thesis{学位论文} +\def\BIT@label@advisor{指~~~~导~~~~教~~~~师} +\def\BIT@label@degree{申~~~~请~~~~学~~~~位} +\def\BIT@label@submitdate{论文提交日期} +\def\BIT@label@defenddate{论~文~答~辩~日~期} +\def\BIT@label@institute{学~~~~院~~~~名~~~~称} +\def\BIT@label@school{学~位~授~予~单~位} +\def\BIT@label@chairman{答辩委员会主席} + +%% +%% 封面内容 +%% + +\def\BIT@value@classification{} +\def\BIT@value@confidential{} +\def\BIT@value@UDC{} +\def\BIT@value@serialnumber{} +\def\BIT@value@school{} +\def\BIT@value@degree{} +\def\BIT@value@title{~~~~~(论~文~题~目)~~~~~} +\def\BIT@value@vtitle{竖排论文题目} +\def\BIT@value@titlemark{\BIT@value@title} +\def\BIT@value@author{(作~者~姓~名)} +\def\BIT@value@advisor{(姓名、专业技术职务、学位)} +\def\BIT@value@advisorinstitute{(单位)} +\def\BIT@value@major{} +\def\BIT@value@studentnumber{} % _ added by wei.jianwen@gmail.com +\def\BIT@value@submitdate{} +\def\BIT@value@defenddate{} +\def\BIT@value@institute{} +\def\BIT@value@chairman{} +\def\BIT@label@statement{} + +%% 设置圆圈的格式 或使用\textcircled +\usepackage{tikz} +\usepackage{etoolbox} +\newcommand{\circled}[2][]{\tikz[baseline=(char.base)] + {\node[shape = circle, draw, inner sep = 1pt] + (char) {\phantom{\ifblank{#1}{#2}{#1}}}; + \node at (char.center) {\makebox[0pt][c]{#2}};}} +\robustify{\circled} + +%% 论文原创性声明 +\def\BIT@label@original{研究成果声明} +\def\BIT@label@authorization{关于学位论文使用权的说明} +\def\BIT@label@authorsign{作者签名:} +\def\BIT@label@Supervisorsign{导师签名:} +\def\BIT@label@originalDate{签字日期:} +\def\BIT@label@originalcontent{\BITspace\BITspace 本人郑重声明:所提交的学位论文是我本人在指导教师的指导下进行的研究工作获得的研究成果。尽我所知,文中除特别标注和致谢的地方外,学位论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京理工大学或其它教育机构的学位或证书所使用过的材料。与我一同工作的合作者对此研究工作所做的任何贡献均已在学位论文中作了明确的说明并表示了谢意。\par 特此申明。} +\def\BIT@label@authorizationcontent{\BITspace\BITspace 本人完全了解北京理工大学有关保管、使用学位论文的规定,其中包括:\circled{1} 学校有权保管、并向有关部门送交学位论文的原件与复印件;\circled{2} 学校可以采用影印、缩印或其它复制手段复制并保存学位论文;\circled{3} 学校可允许学位论文被查阅或借阅;\circled{4} 学校可以学术交流为目的,复制赠送和交换学位论文;\circled{5} 学校可以公布学位论文的全部或部分内容(保密学位论文在解密后遵守此规定)。} + +%% +%% 英语封面标题 +%% +\def\BIT@label@englishadvisor{Supervisor:} +\def\BIT@label@englishstatement{Submitted in total fulfilment + of the requirements for the degree of \BIT@value@englishdegree \\ + in \BIT@value@englishmajor} +\def\BIT@label@englishauthor{Candidate Name:} +\def\BIT@label@englishadvisor{Faculty Mentor:} +\def\BIT@label@englishchairman{Chair, Thesis Committee:} +\def\BIT@label@englishinstitute{School or Department:} +\def\BIT@label@englishdegree{Degree Applied:} +\def\BIT@label@englishmajor{Major:} +\def\BIT@label@englishschool{Degree by:} +\def\BIT@label@englishdate{The Date of Defence:} + + +%% +%% 英语封面内容 +%% +\def\BIT@value@englishtitle{(English Title of Thesis)} +\def\BIT@value@englishauthor{(Author Name)} +\def\BIT@value@englishadvisor{(Supervisor Name)} +\def\BIT@value@englishinstitute{(Institute Name)} +\def\BIT@value@englishscholl{(BIT)} +\def\BIT@value@englishchair{(someone)} +\def\BIT@value@englishdate{} +\def\BIT@value@englishdegree{} +\def\BIT@value@englishmajor{} + + + +\def\BIT@label@abstract{摘要} +\def\BIT@label@englishabstract{Abstract} +\def\BIT@label@keywords{关键词:} +\def\BIT@label@englishkeywords{Key Words:~} +\def\BIT@label@conclusion{结论} +\def\BIT@label@appendix{附录} +\def\BIT@label@publications{攻读学位期间发表论文与研究成果清单} +\def\BIT@label@projects{攻读学位期间参与的项目} +\def\BIT@label@resume{作者简介} +\def\BIT@label@reference{参考文献!!!!} +\def\BIT@label@thanks{致谢} +\def\BIT@value@templateversion{v1.2} +%% +%% label in the head 页眉页脚 +%% +\def\BIT@label@headschoolname{北京理工大学硕士学位论文} + +%% 当前模板的版本 +\newcommand{\version}{\BIT@value@templateversion} + +%% ==============引用geometry 宏包设置纸张和页面======================== +% 设置版面:上3.5cm,下2.5cm,左2.7cm,右2.7cm,页眉2.5cm,页脚1.8cm,装订线0cm +\usepackage[% +paper=a4paper,% +top=3.5cm,% 上 3.5cm % +bottom=2.5cm,% 下 2.5cm % +left=2.7cm,% 左 2.7cm % +right=2.7cm,% 右 2.7cm % +headheight=1.0cm,% 页眉 2.5cm % +footskip=0.7cm% 页脚 1.8cm % +]{geometry} % 页面设置 % + +\parskip 0.5ex plus 0.25ex minus 0.25ex +%% Command -- Clear Double Page +\def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else + \thispagestyle{empty}% + \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi} +% 设置行距,大概为22榜 +\RequirePackage{setspace} +\setstretch{1.523} + +%% 设置章节格式, 黑体三号加粗居中,行距22磅,与正文或节标题的间距设定为段后间距1行。章序号与章名间空一格。 +\ctexset{chapter={ + name = {第,章}, + number = {\arabic{chapter}}, + format = {\bfseries \sffamily \centering \zihao{3}}, + pagestyle = {BIT@headings}, + beforeskip = 16 bp, + afterskip = 32 bp, + fixskip = true, + } +} +%% 设置一级章节格式 +% 黑体四号加粗顶左,行距22磅,与上一节的间距为1行,与下面正文或节标题的段间间距为0.5行。序号与题目间空一格。 + +\ctexset{section={ + format={\raggedright \bfseries \sffamily \zihao{4}}, + beforeskip = 28bp plus 1ex minus .2ex, + afterskip = 24bp plus .2ex, + fixskip = true, + } +} + +% 设置二级标题格式 + +% 黑体小四加粗顶左,行距22磅,与上一节的间距为1行,与下面正文或节标题的段间间距为0.5行。序号与题目间空一格。 + +\ctexset{subsection={ + format = {\bfseries \sffamily \raggedright \zihao{-4}}, + beforeskip =28bp plus 1ex minus .2ex, + afterskip = 24bp plus .2ex, + fixskip = true, + } +} + +% 设置三节标题格式 + +\ctexset{subsubsection={ + format={\heiti \raggedright \zihao{-4}}, + beforeskip=28bp plus 1ex minus .2ex, + afterskip=24bp plus .2ex, + fixskip=true, + } +} + +%% 设定目录格式。目录颜色更改黑色 +\addtocontents{toc}{\protect\hypersetup{hidelinks}} +\addtocontents{lot}{\protect\hypersetup{hidelinks}} +\addtocontents{lof}{\protect\hypersetup{hidelinks}} + +\RequirePackage{titletoc} +\titlecontents{chapter}[0pt]{\songti \zihao{4}} + {\bf\thecontentslabel\hspace{\ccwd}}{\bf} + {\hspace{.5em}\titlerule*{.}\contentspage} +\titlecontents{section}[2\ccwd]{\songti \zihao{-4}} + {\thecontentslabel\hspace{\ccwd}}{} + {\hspace{.5em}\titlerule*{.}\contentspage} +\titlecontents{subsection}[4\ccwd]{\songti \zihao{-4}} + {\thecontentslabel\hspace{\ccwd}}{} + {\hspace{.5em}\titlerule*{.}\contentspage} + +\titlecontents{figure}[0pt]{\songti\zihao{-4}} + {\figurename~\thecontentslabel\quad}{\hspace*{-1.5cm}} + {\hspace{.5em}\titlerule*{.}\contentspage} + +\titlecontents{table}[0pt]{\songti\zihao{-4}} + {\tablename~\thecontentslabel\quad}{\hspace*{-1.5cm}} + {\hspace{.5em}\titlerule*{.}\contentspage} + +%% 选择编译 +\RequirePackage{ifthen} + +%% check pdfTeX mode +\RequirePackage{ifpdf} + +%% fancyhdr 页眉页脚控制 +\RequirePackage{fancyhdr} + +% 空 页眉页脚 +\fancypagestyle{BIT@empty}{% + \fancyhf{}} + +% ======正文页眉页脚================= +\fancypagestyle{BIT@headings}{% + \fancyhf{} + \fancyfoot[C]{\songti\zihao{5} \thepage} + \fancyhead[C]{\ifBIT@master\zihao{5}{\songti 北京理工大学硕士学位论文} + \else\zihao{5}{\songti 北京理工大学博士学位论文}\fi} + } + +% ==================================对于openright 选项,必须保证章页右开,且如果前章末页内容须清空其页眉页脚。=================== +\let\BIT@cleardoublepage\cleardoublepage +\newcommand{\BIT@clearemptydoublepage}{% + \clearpage{\pagestyle{BIT@empty}\BIT@cleardoublepage}} +\let\cleardoublepage\BIT@clearemptydoublepage + + % ================修该frontmatter 的页码为大写罗马格式,并调整页面风格=============== +\renewcommand{\frontmatter}{ + \if@openright\cleardoublepage\else\clearpage\fi + \@mainmatterfalse + \pagenumbering{Roman} + \pagestyle{BIT@headings} +} +% =======================修改mainmatter 的页码为阿拉伯格式,并调整页面风格======================== +\renewcommand{\mainmatter}{ + \if@openright\cleardoublepage\else\clearpage\fi + \@mainmattertrue + \pagenumbering{arabic} + \pagestyle{BIT@headings} +} + + +%% 复杂表格 +\RequirePackage{threeparttable} +\RequirePackage{dcolumn} +\RequirePackage{multirow} +\RequirePackage{booktabs} +\newcolumntype{d}[1]{D{.}{.}{#1}}% or D{.}{,}{#1} or D{.}{\cdot}{#1} + + +%% 定义几个常用的数学常量符号 +\newcommand{\me}{\mathrm{e}} % 定义 对数常数e,虚数符号i,j以及微分算子d为直立体。 +\newcommand{\mi}{\mathrm{i}} +\newcommand{\mj}{\mathrm{j}} +\newcommand{\dif}{\,\mathrm{d}} + +\theoremstyle{plain} + \newtheorem{algo}{算法~}[chapter] + \newtheorem{thm}{定理~}[chapter] + \newtheorem{lem}[thm]{引理~} + \newtheorem{prop}[thm]{命题~} + \newtheorem{cor}[thm]{推论~} +\theoremstyle{definition} + \newtheorem{defn}{定义~}[chapter] + \newtheorem{conj}{猜想~}[chapter] + \newtheorem{exmp}{例~}[chapter] + \newtheorem{rem}{注~} + \newtheorem{case}{情形~} +\renewcommand{\proofname}{\bf 证明} + +%% 英文字体使用 Times New Roman +\RequirePackage{xltxtra} % \XeTeX Logo +\setmainfont{Times New Roman} +\setsansfont{Arial} +\setmonofont{Courier New} + + +%% graphics packages +\RequirePackage{graphicx} +%% 并列子图 +\RequirePackage{subfigure} + +\RequirePackage{wrapfig} +%% ===========================设置图表标题选项========================== +\RequirePackage{amsmath} +\RequirePackage{caption} +\DeclareCaptionLabelSeparator{zhspace}{\hspace{1\ccwd}} +\DeclareCaptionFont{fontsize}{\zihao{5}} +\captionsetup{ + font = {fontsize}, + labelsep = zhspace, +} +\captionsetup[table]{ + position = top, + aboveskip = 6bp, + belowskip = 6bp, +} +\numberwithin{table}{chapter} +\captionsetup[figure]{ + position = bottom, + aboveskip = 6bp, + belowskip = 6bp, +} + +%% 如果插入的图片没有指定扩展名,那么依次搜索下面的扩展名所对应的文件 +\DeclareGraphicsExtensions{.pdf,.eps,.png,.jpg,.jpeg} +% ccaption -- bicaption +% \RequirePackage{ccaption} +% \captiondelim{\ } +% \captionnamefont{\songti\zihao{5}} +% \captiontitlefont{\songti\zihao{5}} + + +%% sort and compress citations +\RequirePackage[numbers,square,comma,super,sort&compress]{natbib} +% 上标引用 +\newcommand{\upcite}[1]{\textsuperscript{\cite{#1}}} + + +% 将浮动参数设为较宽松的值 +\renewcommand{\textfraction}{0.15} +\renewcommand{\topfraction}{0.85} +\renewcommand{\bottomfraction}{0.65} +\renewcommand{\floatpagefraction}{0.60} + + +% 定公式、图、表编号为"3-1"的形式,即分隔符由.变为短杠 +\renewcommand\theequation{\arabic{chapter}.\arabic{equation}} +\renewcommand\thefigure{\arabic{chapter}.\arabic{figure}} +\renewcommand\thetable{\arabic{chapter}.\arabic{table}} + +% 颜色宏包 +\RequirePackage{xcolor} + + +% 中文破折号 +\newcommand{\cndash}{\rule{0.0em}{0pt}\rule[0.35em]{1.4em}{0.05em}\rule{0.2em}{0pt}} + +% listings 源代码显示宏包 +\RequirePackage{listings} +\lstset{tabsize=4, % + frame=shadowbox, % 把代码用带有阴影的框圈起来 + commentstyle=\color{red!50!green!50!blue!50},% 浅灰色的注释 + rulesepcolor=\color{red!20!green!20!blue!20},% 代码块边框为淡青色 + keywordstyle=\color{blue!90}\bfseries, % 代码关键字的颜色为蓝色,粗体 + showstringspaces=false,% 不显示代码字符串中间的空格标记 + stringstyle=\ttfamily, % 代码字符串的特殊格式 + keepspaces=true, % + breakindent=22pt, % + numbers=left,% 左侧显示行号 + stepnumber=1,% + numberstyle=\tiny, % 行号字体用小号 + basicstyle=\footnotesize, % + showspaces=false, % + flexiblecolumns=true, % + breaklines=true, % 对过长的代码自动换行 + breakautoindent=true,% + breakindent=4em, % + aboveskip=1em, % 代码块边框 + %% added by http://bbs.ctex.org/viewthread.php?tid=53451 + fontadjust, + captionpos=t, + framextopmargin=2pt,framexbottommargin=2pt,abovecaptionskip=-3pt,belowcaptionskip=3pt, + xleftmargin=4em,xrightmargin=4em, % 设定listing左右的空白 + texcl=true, + % 设定中文冲突,断行,列模式,数学环境输入,listing数字的样式 + extendedchars=false,columns=flexible,mathescape=true + numbersep=-1em +} +\renewcommand{\lstlistingname}{代码} %% 重命名Listings标题头 + +%% hyperref package +\definecolor{navyblue}{RGB}{0,0,128} +\RequirePackage{hyperref} +\hypersetup{ + bookmarksnumbered,% + linktoc=all, + colorlinks=true, + citecolor=navyblue, + filecolor=cyan, + linkcolor=navyblue, + linkbordercolor=navyblue, + urlcolor=navyblue, + plainpages=false,% + pdfstartview=FitH +} + +%% enumerate 列表环境间距调节 +\usepackage{enumitem} +% \setenumerate[1]{itemsep=0pt,partopsep=0pt,parsep=\parskip,topsep=5pt} +% \setitemize[1]{itemsep=0pt,partopsep=0pt,parsep=\parskip,topsep=0pt} +% \setdescription{itemsep=0pt,partopsep=0pt,parsep=\parskip,topsep=5pt} + +% _ 参考文献风格 added by wei.jianwen@gmail.com +\bibliographystyle{GBT7714-2005NLang} + +% _ BITspace +% \newcommand\BITspace{\protect\CTEX@spaceChar\protect\CTEX@spaceChar} +\newcommand{\BITspace}[1][1]{\hspace{#1\ccwd}} + +\def\BIT@getfileinfo#1 #2 #3\relax#4\relax{% + \def\BITfiledate{#1}% + \def\BITfileversion{#2}% + \def\BITfileinfo{#3}}% +\expandafter\ifx\csname ver@bitmaster-xetex.cls\endcsname\relax + \edef\reserved@a{\csname ver@ctextemp_bitmaster-xetex.cls\endcsname} +\else + \edef\reserved@a{\csname ver@bitmaster-xetex.cls\endcsname} +\fi +\expandafter\BIT@getfileinfo\reserved@a\relax? ? \relax\relax +\def\BIT@underline[#1]#2{% + \underline{\hbox to #1{\hfill#2\hfill}}} +\def\BITunderline{\@ifnextchar[\BIT@underline\underline} + +% 中文标题页的可用命令 +\newcommand\classification[1]{\def\BIT@value@classification{#1}} +\newcommand\studentnumber[1]{\def\BIT@value@studentnumber{#1}} +\newcommand\confidential[1]{\def\BIT@value@confidential{#1}} +\newcommand\UDC[1]{\def\BIT@value@UDC{#1}} +\newcommand\serialnumber[1]{\def\BIT@value@serialnumber{#1}} +\newcommand\school[1]{\def\BIT@value@school{#1}} +\newcommand\degree[1]{\def\BIT@value@degree{#1}} +\renewcommand\title[2][\BIT@value@title]{% + \def\BIT@value@title{#2} + \def\BIT@value@titlemark{\MakeUppercase{#1}}} + +\newcommand\vtitle[1]{\def\BIT@value@vtitle{#1}} +\renewcommand\author[1]{\def\BIT@value@author{#1}} +\newcommand\advisor[1]{\def\BIT@value@advisor{#1}} +\newcommand\advisorinstitute[1]{\def\BIT@value@advisorinstitute{#1}} +\newcommand\major[1]{\def\BIT@value@major{#1}} +\newcommand\submitdate[1]{\def\BIT@value@submitdate{#1}} +\newcommand\defenddate[1]{\def\BIT@value@defenddate{#1}} +\newcommand\institute[1]{\def\BIT@value@institute{#1}} +\newcommand\chairman[1]{\def\BIT@value@chairman{#1}} + +%% 第一页和第二页 +% “绘制”BIT中文标题页 +\renewcommand\maketitle[1]{% + \cleardoublepage + \thispagestyle{empty} + \begin{center} + \vspace*{60mm} + {\heiti\zihao{-2} \BIT@value@title} + \vskip 40mm + {\heiti \zihao{-3} \BIT@value@author} % 黑体 小三 + \vskip 4mm + {\heiti \zihao{-3} \BIT@value@defenddate} % 黑体 小三 + \end{center} + \clearpage + \if@twoside + \thispagestyle{empty} + \cleardoublepage + \fi + } + +\newcommand\makeInfo[1]% + { + \newpage + \cleardoublepage + \thispagestyle{empty} + +% udc ltz +{ % + {\heiti \zihao{5} \noindent \BIT@label@classification} \BIT@value@classification \\ + {\heiti \zihao{5} \BIT@label@UDC} \BIT@value@UDC +} + + \begin{center} + + \vskip \stretch{1} + {\heiti\zihao{-2} \BIT@value@title} + \vskip \stretch{1} + + {\fangsong\zihao{4}} + \def\tabcolsep{1pt} + \def\arraystretch{1.5} + + % 黑体 小三 + {\heiti\zihao{-3} + \begin{tabular}{l p{3mm} c} + \BIT@label@author & &\BITunderline[180pt]{\BIT@value@author} + \\ + \BIT@label@institute & & \BITunderline[180pt]{\BIT@value@institute} + \\ + \BIT@label@advisor & & \BITunderline[180pt]{\BIT@value@advisor} + \\ + \BIT@label@chairman & & \BITunderline[180pt]{\BIT@value@chairman} + \\ + \BIT@label@degree & & \BITunderline[180pt]{\BIT@value@degree} + \\ + \BIT@label@major & & \BITunderline[180pt]{\BIT@value@major} + \\ + \BIT@label@school & & \BITunderline[180pt]{\BIT@value@school} + \\ + \BIT@label@defenddate & & \BITunderline[180pt]{\BIT@value@defenddate} + \end{tabular}} + + \end{center} + + \vskip \stretch{0.5} + \clearpage + \if@twoside + \thispagestyle{empty} + \cleardoublepage + \fi +} + +% English Title Page +% 英文标题页可用命令 +\newcommand\englishtitle[1]{\def\BIT@value@englishtitle{#1}} +\newcommand\englishauthor[1]{\def\BIT@value@englishauthor{#1}} +\newcommand\englishadvisor[1]{\def\BIT@value@englishadvisor{#1}} +\newcommand\englishschool[1]{\def\BIT@value@englishschool{#1}} +\newcommand\englishinstitute[1]{\def\BIT@value@englishinstitute{#1}} +\newcommand\englishdate[1]{\def\BIT@value@englishdate{#1}} +\newcommand\englishdegree[1]{\def\BIT@value@englishdegree{#1}} +\newcommand\englishmajor[1]{\def\BIT@value@englishmajor{#1}} +\newcommand\englishchairman[1]{\def\BIT@value@englishchairman{#1}} + +% "绘制"英文标题页 +\newcommand\makeEnglishInfo[1]{% + \cleardoublepage + \thispagestyle{empty} + + \begin{center} + + + \vspace*{10em} +% 论文题目 Times New Roman 小二 加粗 + {\zihao{-2}\textbf{\BIT@value@englishtitle}} + % \bfseries + \vskip \stretch{1} + +% Times New Roman 小三 + {\zihao{-3} + \begin{tabular}{ll} + \BIT@label@englishauthor & \BITunderline[200pt]{\BIT@value@englishauthor} + \\ + \BIT@label@englishinstitute & \BITunderline[200pt]{\BIT@value@englishinstitute} + \\ + \BIT@label@englishadvisor & \BITunderline[200pt]{\BIT@value@englishadvisor} + \\ + \BIT@label@englishchairman & \BITunderline[200pt]{\BIT@value@englishchairman} + \\ + \BIT@label@englishdegree & \BITunderline[200pt]{\BIT@value@englishdegree} + \\ + \BIT@label@englishmajor & \BITunderline[200pt]{\BIT@value@englishmajor} + \\ + \BIT@label@englishschool & \BITunderline[200pt]{\BIT@value@englishschool} + \\ + \BIT@label@englishdate & \BITunderline[200pt]{\BIT@value@englishdate} + \end{tabular}} + + \end{center} + + \vskip \stretch{0.5} + \clearpage + \if@twoside + \thispagestyle{empty} + \cleardoublepage + \fi +} + +% 绘制树立排放的论文题目和学校名称 + +\newcommand\makeVerticalTitle{ + \cleardoublepage + \thispagestyle{empty} + \vskip 5cm + \begin{center} + \setstretch{1.1} + \begin{minipage}{1em} + {\heiti\zihao{3}\BIT@value@vtitle} + \vskip 2cm + {\heiti\zihao{3}\BIT@value@school} + \end{minipage} + \end{center} + \clearpage + \if@twoside + \thispagestyle{empty} + \cleardoublepage + \fi + +} + +% 原创性声明 +\newcommand\makeDeclareOriginal{% + \cleardoublepage + \pdfbookmark[0]{声明}{statement} + \thispagestyle{empty} + \begin{center} + {\bf\zihao{3} \BIT@label@original} + \end{center} + \vskip 10pt + {\zihao{4}\BIT@label@originalcontent} + \vskip 10pt + \hspace{8em}{\zihao{4}\BIT@label@authorsign} \BITunderline[6em]{} \hspace{2em} {\zihao{4}\BIT@label@originalDate} \BITunderline[6em]{} + + \vskip 30mm + + \begin{center} + {\bf\zihao{3} \BIT@label@authorization} + \end{center} + \vskip 10pt + {\zihao{4} \BIT@label@authorizationcontent} + \vskip 40pt + + \hspace{8em}{\zihao{4}\BIT@label@authorsign} \BITunderline[6em]{} \hspace{2em} {\zihao{4}\BIT@label@Supervisorsign} \BITunderline[6em]{} + \vskip 15pt + \hspace{8em}{\zihao{4}\BIT@label@originalDate} \BITunderline[6em]{} \hspace{2em} {\zihao{4}\BIT@label@originalDate} \BITunderline[6em]{} + \clearpage + \if@twoside + \thispagestyle{empty} + \cleardoublepage + \fi + +} + + +% 页眉页脚 +\pagestyle{fancy} +\fancyhf{} +\fancyhead[C]{\songti \zihao{5} \BIT@label@headschoolname} % 奇数页左页眉 +\fancyfoot[C]{\songti \zihao{5} {\thepage}} % 页脚 + + +\fancypagestyle{plain}{% 设置开章页页眉页脚风格(只有页码作为页脚) + \fancyhf{}% + \fancyfoot[C]{\songti \zihao{5} \BIT@label@headschoolname} + \fancyfoot[C]{\songti \zihao{5} ~---~{\thepage}~---~} % 首页页脚格式 +} + + + % 中文摘要 + \newenvironment{abstract} + { + \cleardoublepage + \chapter{\BIT@label@abstract} + } + {} +% 下一页从偶数页开始 + \newcommand\beginatevenpage{ + \clearpage + \if@twoside + \thispagestyle{empty} + \cleardoublepage + \fi + } + % 中文关键词 + \newcommand\keywords[1]{% + \vspace{2ex}\noindent{\bf \BIT@label@keywords} #1} + + % 英文摘要 + \newenvironment{englishabstract} + { + \clearpage + \chapter{\BIT@label@englishabstract} + } + {} + + % 英文摘要 + \newcommand\englishkeywords[1]{% + \vspace{2ex}\noindent{\bf \BIT@label@englishkeywords} #1} + + +% 目录 +\renewcommand\tableofcontents{% + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \chapter*{\contentsname}% 目录里显示“目录”,否则\chapter* + \@mkboth{\MakeUppercase\contentsname}{\MakeUppercase\contentsname}% + \pdfbookmark[0]{目录}{bittoc} + \@starttoc{toc}% + \if@restonecol\twocolumn\fi +} + + +% 参考文献环境 +\renewenvironment{thebibliography}[1] + {\zihao{5} + \chapter*{\bibname} + \@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}% + \addcontentsline{toc}{chapter}{参考文献} + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \setlength{\parsep}{1mm} + \setlength{\labelsep}{0.5em} + \setlength{\itemsep}{0.05pc} + \setlength{\listparindent}{0in} + \setlength{\itemindent}{0in} + \setlength{\rightmargin}{0in} + \@openbib@code + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \sloppy + \clubpenalty4000 + \@clubpenalty \clubpenalty + \widowpenalty4000% + \sfcode`\.\@m} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} + + +\newenvironment{publications}[1] + {\chapter{\BIT@label@publications}% + \@mkboth{\MakeUppercase\BIT@label@publications} + {\MakeUppercase\BIT@label@publications}% + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \setlength{\parsep}{1mm} + \setlength{\labelsep}{0.5em} + \setlength{\itemsep}{0.05pc} + \setlength{\listparindent}{0in} + \setlength{\itemindent}{0in} + \setlength{\rightmargin}{0in} + \@openbib@code + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \sloppy + \clubpenalty4000 + \@clubpenalty \clubpenalty + \widowpenalty4000% + \sfcode`\.\@m} + {\def\@noitemerr + {\@latex@warning{Empty `publications' environment}}% + \endlist} + + +\newenvironment{projects}[1] + {\chapter{\BIT@label@projects}% + \@mkboth{\MakeUppercase\BIT@label@projects} + {\MakeUppercase\BIT@label@projects}% + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \@openbib@code + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \sloppy + \clubpenalty4000 + \@clubpenalty \clubpenalty + \widowpenalty4000% + \sfcode`\.\@m} + {\def\@noitemerr + {\@latex@warning{Empty `projects' environment}}% + \endlist} + + \newenvironment{resume} + {\chapter{\BIT@label@resume}} + {} + +\newenvironment{resumesection}[1] + {{\noindent\normalfont\bfseries #1} + \list{}{\labelwidth\z@ + \leftmargin 2\ccwd} + \item\relax} + {\endlist} + +\newenvironment{resumeli}[1] + {{\noindent\normalfont\bfseries #1} + \list{}{\labelwidth\z@ + \leftmargin 4\ccwd + \itemindent -2\ccwd + \listparindent\itemindent} + \item\relax} + {\endlist} + +\newenvironment{conclusion} + {\chapter*{结论} + \@mkboth{结论}{结论}% + \addcontentsline{toc}{chapter}{结论}} + {} + +\renewenvironment{thanks} + {\chapter{\BIT@label@thanks} + \fangsong + } + {} + +\newenvironment{symbolnote} + {\chapter{\BIT@label@symbolnote} + \fangsong} + {} + + %% ===========================术语===================== + \newcommand{\bit@denotation@name}{主要符号对照表} + \newenvironment{denotation}[1][2.5cm]{ + \chapter{\bit@denotation@name} % no tocline + \noindent\begin{list}{}% + {\vskip-30bp\zihao{-4} + \renewcommand\makelabel[1]{##1\hfil} + \setlength{\labelwidth}{#1} % 标签盒子宽度 + \setlength{\labelsep}{0.5cm} % 标签与列表文本距离 + \setlength{\itemindent}{0cm} % 标签缩进量 + \setlength{\leftmargin}{\labelwidth+\labelsep} % 左边界 + \setlength{\rightmargin}{0cm} + \setlength{\parsep}{0cm} % 段落间距 + \setlength{\itemsep}{0cm} % 标签间距 + \setlength{\listparindent}{0cm} % 段落缩进量 + \setlength{\topsep}{0pt} % 标签与上文的间距 + }}{\end{list}} +% ====增加化学、国际单位宏包 + \RequirePackage[version=4]{mhchem} + \RequirePackage{siunitx} +\setcounter{secnumdepth}{4} % 章节编号深度 (part 对应 -1) +\setcounter{tocdepth}{2} % 目录深度 (part 对应 -1) + +%% End of file `bitmaster-xetex.cls'. + +%% ========================================================= + +% \end{macrocode} +% \begin{macrocode} +% +% \end{macrocode} % % \iffalse %<*dtx-style> diff --git a/macros/latex/contrib/bithesis/bithesis.ins b/macros/latex/contrib/bithesis/bithesis.ins index 98393c70e9..eb76bab010 100644 --- a/macros/latex/contrib/bithesis/bithesis.ins +++ b/macros/latex/contrib/bithesis/bithesis.ins @@ -1,4 +1,4 @@ -%% Copyright (C) 2021 +%% Copyright (C) 2022 %% Association of Bit Network Pioneer and any individual authors listed elsewhere in this file. %% -------------------------------------------------------------------------- %% @@ -22,7 +22,7 @@ \preamble - Copyright (C) 2021 + Copyright (C) 2022 Association of Bit Network Pioneer and any individual authors listed in the documentation. ------------------------------------------------------------------------------ @@ -48,6 +48,7 @@ \usedir{tex/latex/bithesis} \file{bitart.cls} {\from{\jobname.dtx}{cls,article}} \file{bitbook.cls} {\from{\jobname.dtx}{cls,book}} + \file{bitgrad.cls} {\from{\jobname.dtx}{cls,graduate}} \file{dtx-style.sty} {\from{\jobname.dtx}{dtx-style}} } @@ -61,6 +62,7 @@ \Msg{* *} \Msg{* bitart.cls *} \Msg{* bitbook.cls *} +\Msg{* bitgrad.cls *} \Msg{* *} \Msg{* To produce the documentation run the file ctex.dtx *} \Msg{* through XeLaTeX. *} diff --git a/macros/latex/contrib/bithesis/bithesis.pdf b/macros/latex/contrib/bithesis/bithesis.pdf index ac61b8a83b..536c9af015 100644 Binary files a/macros/latex/contrib/bithesis/bithesis.pdf and b/macros/latex/contrib/bithesis/bithesis.pdf differ diff --git a/macros/latex/contrib/bithesis/contributing-zh.md b/macros/latex/contrib/bithesis/contributing-zh.md index cfdf95b80d..bbc6163d82 100644 --- a/macros/latex/contrib/bithesis/contributing-zh.md +++ b/macros/latex/contrib/bithesis/contributing-zh.md @@ -12,25 +12,21 @@ ## Guidance -**[我不想看下面的内容,我只是想问个小问题!!!](#加入我们的-slack-频道)** +**[我不想看下面的内容,我只是想问个小问题!!!](#加入我们的-QQ-群)** | | 普通使用者 | 开发者 | | ---------- | ------------------------------- | ------------------------------------------- | -| 提出问题 | [Slack](#加入我们的-slack-频道) | [Slack](#加入我们的-slack-频道) | -| 提交 Bug | [Slack](#加入我们的-slack-频道) | [Github - Issues](#在-github-上提交-bug) | -| 有好的想法 | [Slack](#加入我们的-slack-频道) | [Slack](#加入我们的-slack-频道) | +| 提出问题 | [QQ 群](#加入我们的-qq-群) | [QQ 群](#加入我们的-qq-群) | +| 提交 Bug | [QQ 群](#加入我们的-qq-群) | [Github - Issues](#在-github-上提交-bug) | +| 有好的想法 | [QQ 群](#加入我们的-qq-群) | Github - Issues | | 提交 PR | | [Github - Pull Request](#提交-pull-request) | -| 有信心维护代码 | | [加入 Slack 并联系我们](#加入我们的-slack-频道) | +| 有信心维护代码 | | [加入QQ 群并联系我们](#加入我们的-qq-群) | -## 加入我们的 Slack 频道 +## 加入我们的 QQ 群 -在我们提供的[官方 Slack 频道][slack channel invitation]中有**很多活跃的维护者**和**友好的社区氛围**。在这里你能获得很多与本项目有关的帮助。 +在我们提供的[QQ 群(737548118)][QQ chat group invitation]中有**很多活跃的维护者**和**友好的社区氛围**。在这里你能获得很多与本项目有关的帮助。 -[![点击这里加入 Slack](/assets/slack.svg)](https://join.slack.com/t/bithesis/shared_invite/zt-epmzkyk0-fJRsUS36AlwMNB2AI_Q~Vw) - -- 使用 `#community` 频道来**讨论问题**、**提出你的建议**或者**寻求帮助**。 -- 使用 `#random` 频道来**水群**:laughing:! -- 使用 `#announcement` 频道获取和本项目相关的**最新资讯和使用方法**! +[![Join on QQ Chat Group](https://img.shields.io/badge/QQ%E7%BE%A4-737548118-green)](https://jq.qq.com/?_wv=1027&k=KYDrmS5z) > 提示:关于具体如何提出问题并没有明确的要求。总之请提供尽可能详细的信息,并且思考一下这个问题是不是已经被解决了。 @@ -54,5 +50,5 @@ 寻找更细致的流程请参考 _[Github Help](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests)_。 -[slack channel invitation]: https://join.slack.com/t/bithesis/shared_invite/zt-epmzkyk0-fJRsUS36AlwMNB2AI_Q~Vw +[QQ chat group invitation]: https://jq.qq.com/?_wv=1027&k=KYDrmS5z [issue reporting link]: https://github.com/BITNP/BIThesis/issues/new diff --git a/macros/latex/contrib/bithesis/contributing.md b/macros/latex/contrib/bithesis/contributing.md index 7fe28f4955..3dcd006aaa 100644 --- a/macros/latex/contrib/bithesis/contributing.md +++ b/macros/latex/contrib/bithesis/contributing.md @@ -11,26 +11,22 @@ and feel free to propose changes to this document in a pull request. ## Guidance -**[I don't want to read this whole thing, I just have a small question!!!](#join-our-slack-channel)** +**[I don't want to read this whole thing, I just have a small question!!!](#join-our-QQ-chat-group)** | | For Users | For Developers | | --------------- | -------------------------------- | ---------------------------------------------- | -| Have a Question | [Slack](#join-our-slack-channel) | [Slack](#join-our-slack-channel) | -| Bug Report | [Slack](#join-our-slack-channel) | [Github - Issues](#bug-report-on-github) | -| Feature Request | [Slack](#join-our-slack-channel) | [Slack](#join-our-slack-channel) | +| Have a Question | [QQ Chat Group](#join-our-QQ-chat-group) | [QQ Chat Group](#join-our-QQ-chat-group) | +| Bug Report | [QQ Chat Group](#join-our-QQ-chat-group) | [Github - Issues](#bug-report-on-github) | +| Feature Request | [QQ Chat Group](#join-our-QQ-chat-group) | [QQ Chat Group](#join-our-QQ-chat-group) | | Pull Request | | [Github - Pull Request](#pull-request-process) | -## Join Our Slack Channel +## Join Our QQ Chat Group -We provide an [official Slack channel][slack channel invitation] +We provide an [QQ Chat Group][QQ chat group invitation] with **a bunch of active maintainers** and **a friendly community** to give helpful advice **if you have any questions**. -[![Join on Slack](/assets/slack.svg)](https://join.slack.com/t/bithesis/shared_invite/zt-epmzkyk0-fJRsUS36AlwMNB2AI_Q~Vw) - -- use `#community` channel to **report a bug**, **feature request** and **asking for help**. -- use `#random` channel to have **unrelated discussion**:laughing:! -- use `#announcement` channel if you don't want to miss the **updated news and features**! +[![Join on QQ Chat Group](https://img.shields.io/badge/QQ%E7%BE%A4-737548118-green)](https://jq.qq.com/?_wv=1027&k=KYDrmS5z) > note: there is no detailed rules about how to ask question, just provide enough information and rethink before write. @@ -56,5 +52,5 @@ The following steps will help you finish a pull request. For more information, refer to the _[Github Help](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests)_. -[slack channel invitation]: https://join.slack.com/t/bithesis/shared_invite/zt-epmzkyk0-fJRsUS36AlwMNB2AI_Q~Vw +[QQ chat group invitation]: https://jq.qq.com/?_wv=1027&k=KYDrmS5z [issue reporting link]: https://github.com/BITNP/BIThesis/issues/new diff --git a/macros/latex/contrib/messagepassing/README.md b/macros/latex/contrib/messagepassing/README.md deleted file mode 100644 index 4af22705d4..0000000000 --- a/macros/latex/contrib/messagepassing/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# The `messagepassing` package - -This package provides an environement and commands to easily draw diagrams to represent communication protocols using message passing among processes. - -Processes are represented as horizontal (or vertical) lines, and communications as arrows between lines. The package also provides multiple macros to decorate those diagrams, for instance to annotate the diagram, to add crashes to the processes, checkpoints, etc.. - -The package works on top of tikz, which makes it easy to add ad-hoc items using regular tikz commands. -To use it, run the following commands: - -``` -$ latex messagepassing.ins -$ pdflatex messagepassing.dtx -``` - -The first command generates the file messagepassing.sty that should be placed in the same folder than your main document. The second command generates the file messagepassing.pdf (you may require multiple runs to adjust internal references), which is the documentation for the package. - - -## License - -This package is provided under the terms of the LaTeX Project Public License, version 1.3 or later. - -## Author - -The initial author of this package is Martin Vassor. - -## Related packages - - - [msc](https://www.ctan.org/pkg/msc): used to typeset message sequence diagrams, according to the Recommendation Z.120 of the International Telecommunication Union; diff --git a/macros/latex/contrib/messagepassing/messagepassing.dtx b/macros/latex/contrib/messagepassing/messagepassing.dtx deleted file mode 100644 index 3811f558a5..0000000000 --- a/macros/latex/contrib/messagepassing/messagepassing.dtx +++ /dev/null @@ -1,861 +0,0 @@ -% \iffalse meta-comment -% Copyright (C) 2022 by Martin Vassor -% This file may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either -% version 1.3 of this license or (at your option) any later -% version. The latest version of this license is in: -% -% http://www.latex-project.org/lppl.txt -% -% and version 1.3 or later is part of all distributions of -% LaTeX version 2005/12/01 or later. -% -% \fi - -% \iffalse -% \NeedsTeXFormat{LaTeX2e} -% \ProvidesPackage{messagepassing}[2022/02/18 v1.0 A package to draw message passing diagrams] -% \RequirePackage{tikz} -% \usetikzlibrary{quotes, calc, arrows.meta} -% \RequirePackage{xparse} -% \RequirePackage{float} -% - -%<*driver> -\documentclass{ltxdoc} -\usepackage{messagepassing} -\usepackage[hidelinks]{hyperref} -\usepackage{xspace} -\usepackage[super]{nth} -\usepackage{subcaption} -\usepackage{listings} -\lstset{ - language=[LaTeX]{TeX}, -} -\EnableCrossrefs -\CodelineIndex -\RecordChanges -\begin{document} - \DocInput{messagepassing.dtx} -\end{document} -% -% \fi - -% \CheckSum{0} -% -% \CharacterTable -% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -% Digits \0\1\2\3\4\5\6\7\8\9 -% Exclamation \! Double quote \" Hash (number) \# -% Dollar \$ Percent \% Ampersand \& -% Acute accent \' Left paren \( Right paren \) -% Asterisk \* Plus \+ Comma \, -% Minus \- Point \. Solidus \/ -% Colon \: Semicolon \; Less than \< -% Equals \= Greater than \> Question mark \? -% Commercial at \@ Left bracket \[ Backslash \\ -% Right bracket \] Circumflex \^ Underscore \_ -% Grave accent \` Left brace \{ Vertical bar \| -% Right brace \} Tilde \~} -% -% -% \changes{v1.0}{2022/02/18}{Initial version for publication} -% -% \GetFileInfo{messagepassing.sty} -% -% \title{The \textsf{messagepassing} package\thanks{This document -% corresponds to \textsf{messagepassing}~\fileversion, -% dated \filedate.}} -% \author{Martin Vassor\\ \texttt{bromind+ctan@gresille.org}} -% -% -% \maketitle -% \tableofcontents -% \newcommand{\TikZ}{Ti\textit{k}Z\xspace} - -% \section{Introduction} -% This package provides an environment and associated macros to easily draw -% message passing diagrams. For instance, Execution.~\ref{mp:ex1} shows the capabilities offered -% by the package. -% -% \begin{messagepassing}[][An example of message passing][h][mp:ex1] -% \newprocesswithlength{p}{9} -% \newprocesswithlength{q}{9} -% \newprocesswithlength{r}{5} -% \crash{r}{5}{k} -% -% \checkpoint{p}{0}{c_p^0} -% \checkpoint{q}{0}{c_q^0} -% \checkpoint{r}{0}{c_r^0} -% \checkpoint{p}{4}{c_p^1} -% -% \stateinterval{p}{0}{si_p^0} -% \stateinterval{q}{0}{si_q^0} -% \stateinterval{r}{0}{si_r^0} -% -% \sendwithstateinterval{p}{1}{q}{2}{si_q^1} -% \sendwithstateinterval{r}{3}{q}{4}{si_q^2} -% \sendwithstateintervalandname{q}{5}{p}{6}{si_p^1}{\(m\)} -% \sendoutofband{q}{5}{r}{6}{\(m_\mathrm{copy}\)} -% \stateinterval{r}{6}{si_r^0} -% \restart{r}{6}{3} -% -% \annotate{r}{8}{restart} -% \annotatexplicit{p}{8}{\(1+1=2\)}{note} -% -% \colouredbox{p}{q}{7}{9}{Protocol} -% -% \drawtimeline{9} -% \end{messagepassing} - -% -% \section{Usage} -% \subsection{Loading the package} -% The package accepts two options: \verb+vertical+ and \verb+annotatevertical+. -% If the former is set, executions will be drawn with time going from top to -% bottom, instead of from left to right. Doing so, almost all -% labels\footnote{Annotations are not rotated, unless explicitly asked.} are -% rotated as well. If, \emph{in addition}, \verb+annotatevertical+ is set, then -% annotations (including named of colouredboxes) are rotated as well. - -% \subsection{Basic usage} -% \subsubsection{Creating a diagram.} - -% \DescribeEnv{messagepassing} A diagram can easily be created using the -% |messagepassing| environment. The syntax is: -% |\begin{messagepassing}| \oarg{tikz} \oarg{caption} \oarg{placement} -% \oarg{label}. -% The first optional argument (\emph{tikz}) contains arguments that are passed -% to the underlying tikz environment. The second argument (\emph{caption}) has -% two effect: if set, it turns the diagram into a floating figure, and the -% content of the argument is the caption of the floating figure. The third -% argument (\emph{placement}) is the placement option of the figure, the default -% is |p|. Finally, the fourth option (\emph{label}) is the label used to -% reference the figure. -% -% For instance, the diagram in Figure~\ref{mp:ex1} is created with the following -% commands: -% \begin{verbatim} -% \begin{messagepassing}[][An example of message passing][h][mp:ex1] -% % ... -% \end{messagepassing} -% \end{verbatim} - -% \paragraph{Setting up the diagram.} -% When created, the diagram is empty. Before actually writing the message -% exchanges, we have to set up a few things: set whether we want a timeline (and -% if it is the case, of which length), and set the number of processes with -% their names, etc. -% \subparagraph{Creating a new process.} -% Each process is characterised by its name. -% \DescribeMacro{\newprocess} The simplest macro to create a new process is then -% |\newprocess| \marg{name}, where \marg{name} is the name of the process (resp. -% \(p\), \(q\), and \(r\) in Figure~\ref{mp:ex1}). -% -% In addition, we often draw a horizontal\footnote{By default, the line is vertical if -% the option |vertical| is used.} line that represent the running process. -% Although this line can be manually -% added\footnote{|processlength|\marg{process}\marg{length} -% creates a line of length \emph{length} for process \emph{process}.}, we also -% provide a simple macro that performs both actions: -% \DescribeMacro{\newprocesswithlength} -% |\newprocesswithlength|\marg{name}\marg{length}. -% -% An other alternative is to name the state in which the process starts (in -% Fig~\ref{mp:ex1}, we call those states \(si\) as \emph{state intervals}). -% Again, this can be achieved using individual commands, but we also provide -% \DescribeMacro{\newprocesswithstateinterval} -% |\newprocesswithstateinterval|\marg{name}\marg{state name}. -% -% Finally, an other way to create a process is to create a process that -% (eventually) fails, which is represented by the process' line terminating -% early with a cross. For that, we provide \DescribeMacro{\newprocesswithcrash} -% |\newprocesswithcrash|\marg{name}\marg{length}\marg{crash coordinate name}. -% The first two arguments are similar to |\newprocesswithlength|, and the latter -% one is used to provide a name for the coordinate where the crash occurs. This -% name can later be used to place nodes. -% -% Of course, we can imagine other combinations (e.g. a process with a length and -% a state interval). We do not provide individual commands for each combination, -% but the can be easily achieved using separate commands. -% -% As an example, the processes of Fig.~\ref{mp:ex1} are created as follows. -% \begin{verbatim} -% \newprocesswithlength{p}{9} -% \newprocesswithlength{q}{9} -% \newprocesswithlength{r}{5} -% \end{verbatim} -% -% \subparagraph{Setting up a timeline.} -% An other setup action consists in setting up (if wanted) the timeline. Notice -% that this can be done \emph{at any place} in the diagram. To do so, simply use -% the command \DescribeMacro{\drawtimeline}|\drawtimeline|\marg{length}, where -% \emph{length} is the length of the desired timeline. - -% \subsubsection{Populating the run.} -% Now that we have some processes, we have to populate the diagram with some -% actions. -% -% \paragraph{Basic message.} -% The most basic action is to send a message. For that, we provide the command -% \DescribeMacro{\send} |\send|\marg{sender}\marg{send -% time}\marg{receiver}\marg{receive time}. The sender and receiver are -% identified with their names, and the sending and receiving times are given -% according to their timestamp\footnote{Notice that nothing prevents sending -% messages in the past, simply set a receiving time before the sending time.}. -% -% In addition, we can label the arrow with the message that is sent with -% \DescribeMacro{\sendwithname} -% |\sendwithname|\marg{sender}\marg{send time}\marg{receiver}\marg{receive -% time}\marg{label}. -% For instance, in Figure~\ref{fig:ex_msg}, we use |\send{p}{1}{q}{2}|. -% -% Finally, we sometimes distinguish \emph{out-of-band} messages, e.g. messages -% that do not carry informations, but that are for instance used for metadata, -% etc.. We provide the macro -% \DescribeMacro{\sendoutofband}|\sendoutofband|\marg{sender}\marg{send time}\marg{receiver}\marg{receive -% time}\marg{label}, which behaves similarly to |\sendwithname|, but prints the -% message in an other colour. -% -% \begin{figure} -% \centering -% \begin{minipage}{.35\textwidth} -% \begin{messagepassing} -% \newprocesswithlength{p}{4} -% \newprocesswithlength{q}{4} -% \send{p}{1}{q}{2} -% \sendwithname{p}{2}{q}{3}{msg} -% \end{messagepassing} -% \end{minipage} -% ~ -% \begin{minipage}{.60\textwidth} -% \iffalse -%<*example> -% \fi -% \begin{lstlisting} -\begin{messagepassing} - \newprocesswithlength{p}{4} - \newprocesswithlength{q}{4} - \send{p}{1}{q}{2} - \sendwithname{p}{2}{q}{3}{msg} -\end{messagepassing} -\end{lstlisting} -% \iffalse -% -% \fi -% \end{minipage} -% \caption{A very simple protocol with a single message exchanged.} -% \label{fig:ex_msg} -% \end{figure} -% -% - -% \paragraph{Process crash and restore.} -% The crash of a process can be represented using -% \DescribeMacro{\crash} -% |\crash|\marg{process name}\marg{time}\marg{crash name}. The argument \emph{process name} -% is the name of the process that crashes, and \emph{crash name} is used to give -% a name to the crash. Naming the crash is useful for coordinates (see below). -% Finally, \emph{time} specifies when the crash occurs. Notice that this does -% not modify the timeline: it simply adds a crash token at the specified -% coordinate. This means that (i) then timeline has to stop at the crash's time; -% and (ii) it has to be restarted after. To stop the timeline, simply take the -% crash into account when setting the initial timeline. To restart the timeline, -% we provide the command -% \DescribeMacro{\restart}|\restart|\marg{name}\marg{date}\marg{duration}. -% \emph{name} specifies which process is to be restarted; \emph{date} specifies -% when the process should be restarted, and \emph{duration} specifies how long -% the process shoud be alive (i.e. what is the length of the timeline) after the -% restart. -% \begin{figure} -% \centering -% \begin{minipage}{.35\textwidth} -% \begin{messagepassing} -% \newprocesswithlength{p}{4} -% \newprocesswithlength{q}{2} -% \send{p}{1}{q}{2} -% \crash{q}{2}{crash} -% \restart{q}{3}{1} -% \end{messagepassing} -% \end{minipage} -% ~ -% \begin{minipage}{.60\textwidth} -% \iffalse -%<*example> -% \fi -% \begin{lstlisting} - \begin{messagepassing} - \newprocesswithlength{p}{4} - \newprocesswithlength{q}{2} - \send{p}{1}{q}{2} - \crash{q}{2}{crash} - \restart{q}{3}{1} - \end{messagepassing} -\end{lstlisting} -% \iffalse -% -% \fi -% \end{minipage} -% \caption{A protocol with a crashed process.} -% \end{figure} -% - -% \paragraph{Tokens on the run} -% -% The package also proposes two kinds of tokens that can be added on protocols' -% lines. The first one is a \emph{checkpoint} (i.e. a state that is saved -% somewhere) and the second is used to denote the begining of a \emph{state -% interval} (a state interval denotes a period in which a process only performs -% deterministic events). The former are denoted with a small black rectangle, -% while the later is denoted with a vertical line. Although those two tokens are -% intended for the usage mentionned above, we encourage users to use them for -% other usages if need be. -% -% A checkpoint can be added with -% \DescribeMacro{\checkpoint}|\checkpoint|\marg{process}\marg{time}\marg{name}, -% where \emph{process} is the name of the process which takes a checkpoint, -% \emph{time} is the the time at which the checkpoint is taken, and \emph{name} -% is the name of the checkpoint, that is printed next to it, and can be used as -% a coordinate. Notice that the name is printed in a math environment, as we -% expect most checkpoints names to be indexed, e.g.\(c_1\), \(c_2\), etc. -% To have more control on the printed name, or if the proposed name is not a -% valid coordinate name, we offer a variant -% \DescribeMacro{\checkpointspecial}|\checkpointspecial|\marg{process}\marg{time}\marg{name}\marg{label}, -% where \emph{name} is the name of the coordinate of the checkpoint, and -% \emph{label} is the label to be printed. Notice that, in that case, the label -% is printed as is, i.e. not typeset as maths. - -% -% A state interval can be added similarly with the command -% \DescribeMacro{\stateinterval}|\stateinterval| -% \marg{process}\marg{time}\marg{name}. -% -% For the sake of completeness, if you need the name of the coordinate and the -% displayed label to be different (e.g. if the label can not be the name of a -% coordinate, for whatever reason), we also provide the command -% \DescribeMacro{\stateintervalspecial} -% |\stateintervalspecial|\marg{process}\marg{time}\marg{name}\marg{label}, in -% which \emph{name} is the name of the created coordinate, and \emph{label} is -% the label attached to the state interval. - -% \begin{figure} -% \centering -% \begin{minipage}{.35\textwidth} -% \begin{messagepassing} -% \newprocesswithlength{q}{2} -% \checkpoint{q}{1}{c_1} -% \crash{q}{2}{crash} -% \restart{q}{3}{1} -% \end{messagepassing} -% \end{minipage} -% ~ -% \begin{minipage}{.60\textwidth} -% \iffalse -%<*example> -% \fi -% \begin{lstlisting} - \begin{messagepassing} - \newprocesswithlength{q}{2} - \checkpoint{q}{1}{c_1} - \crash{q}{2}{crash} - \restart{q}{3}{1} - \end{messagepassing} -\end{lstlisting} -% \iffalse -% -% \fi -% \end{minipage} -% \caption{A protocol with a checkpoint.} -% \end{figure} - -% \paragraph{Grey boxes} -% -% In Execution~\ref{mp:ex1}, we created a light-red box between processes \(p\) -% and \(q\), from time \(7\) to \(9\), to indicate that they perform a given -% protocol that we don't detail further. We call such boxes (which can be used for a lot -% of other purposes) \emph{colouredboxes}, and they -% can be added with \DescribeMacro{\colouredbox} |\colouredbox|\marg{first -% process}\marg{second process}\marg{start time}\marg{end time}\marg{label}. -% This creates a box that spans between \emph{first process} and \emph{second -% process}, from \emph{start time} to \emph{end time}, with the label -% \emph{label} printed. -% -% Notice that there are no technical restrictions to adding messages on top of a -% box, typically to highlight a specific part of a larger execution. - -% \paragraph{Annotations} -% Finally, it is possible to add annotations on the diagram. To do so, we -% provide the macro -% \DescribeMacro{\annotate}|\annotate|\marg{process}\marg{time}\marg{text} which -% adds an annotation with \emph{text} over the timeline of the given -% \emph{process} at time \emph{time}. This also creates a coordinate at the -% annotation time, which name is the content of the annotation (i.e.\ -% \emph{text}). If \emph{text} is not a valid coordinate name, then the -% alternative \DescribeMacro{\annotatexplicit} -% |\annotatexplicit|\marg{process}\marg{time}\marg{text}\marg{name} behaves -% similarly, except that the coordinate name is explicitly given in argument -% \emph{name}. - -% \subsubsection{Combined commands} -% The above commands are sufficient to use all primitives offered by the -% package. In addition, we provide a lot of \emph{combined commands}, which, as -% the name suggest, have the effect of multiple \emph{simple} commands. -% -% \begin{itemize} -% \item |\newprocesswithlength|\marg{name}\marg{lifetime}: combination of -% |\newprocess|\marg{name} and |\processlength|\marg{name}\marg{lifetime} -% \item |\newprocesswithstateinterval|\marg{process name}\marg{state interval -% name}: combination of |\newprocess|\marg{process name} and -% |\stateinterval|\marg{process name}\marg{0}\marg{state interval name} -% \item |\newprocesswithcrash|\marg{process name}\marg{crash time}\marg{crash -% name}: creates a process \emph{process name} that runs until \emph{crash -% time}. The crash is named \emph{crash name}. -% \item |\sendwithstateinterval|\marg{sender}\marg{send -% time}\marg{receiver}\marg{receive time}\marg{si name}: combines |\send| and -% |\stateinterval|. -% \item |\sendwithstateintervalandname|\marg{sender}\marg{send -% time}\marg{receiver}\marg{receive time}\marg{si name}\marg{message name}: -% combines |\sendwithname| and |\stateinterval| -% \end{itemize} - -% \subsection{Advanced usage} -% \subsubsection{Customising colours} -% -% Two parts of the package use colours: colouredboxes and out-of-band messages. By -% default both are shades of red. We provide commands to change that if desired. -% -% \DescribeMacro{\colouredboxcolor}|\colouredboxcolor|\marg{colour} changes the colour -% used for colouredboxes. Notice that this sets both the background colour (which is -% a light variant of the provided colour) and the text colour (which uses the -% provided colour). -% -% \DescribeMacro{\oobcolor}|\oobcolor|\marg{colour} changes the colour used for -% out-of-band messages. -% -% \subsubsection{Coordinates} -% -% \paragraph{\TikZ coordinates.} -% Message passing diagrams are drawn using \TikZ, which means that one can add -% arbitrary commands to a diagram. In addition, the package defines useful -% coordinates to refer to. Execution~\ref{mp:ex2} shows the \TikZ coordinate plan -% overlayed on top of Execution~\ref{mp:ex1}. -% -% On \TikZ \(y\)-axis processes are instanciated one unit apart from each other, -% in their declaration order. -% To keep the coordinate system simple, processes expand in the negative (e.g. -% the first process declared is at coordinate \((0, -1)\), the second at \((0, -% -2)\), etc.). -% -% The \TikZ \(x\)-axis corresponds to the time axis of the diagram. Therefore, -% e.g. coordinate \((3, -4)\) corresponds to the \nth{3} time step of the -% \nth{4} process. -% -% \paragraph{Named coordinates.} -% In addition to explicit coordinates explained above, the package names most of -% the points of interest in the diagram. -% -% \subparagraph{Coordinates of processes.} -% At each process declaration, a coordinate named after the name of the process -% is created. The coordinate corresponds to the beginning of the corresponding -% process' timeline (for instance, in Execution~\ref{mp:ex2}, we show coordinate -% \((\texttt{q})\), that corresponds to the process \(q\)). -% -% \subparagraph{Coordinate of states intervals (resp. checkpoints, resp. crashes).} -% Similarly to processes, each state interval (resp. checkpoint, resp. crashes) creates a -% coordinate, named after the name of the state interval (resp. checkpoint, -% resp. crashes), is created. The coordinates refers to the place of the state -% interval (resp. checkpoint, resp. crashes). For instance, in -% Execution~\ref{mp:ex2}, we show the coordinates \((\texttt{si\_q\^{}1})\), -% \((\texttt{c\_p\^{}1})\) and \((\texttt{k})\), that respectively correspond to the state interval -% \(si_q^1\), the checkpoint \(c_p^1\) and the crash\footnote{The names of -% crashes are not printed on the figure, although they are internally defined.} \(k\). -% -% \subparagraph{Coordinates of annotations.} -% When an annotation is created, a coordinate is created at the same place, on -% the process' timeline\footnote{Notice that, using the explicit variant of |annotate| -% (|annotatexplicit|), the name of the annotation has to be explicitly given.} -% For instance, in Execution~\ref{mp:ex1}, the annotation \(1+1=2\) is created -% with the explicit name ``\texttt{note}''. We show the corresponding coordinate in -% Execution~\ref{mp:ex2}. -% -% -% \begin{messagepassing}[][Showing \TikZ coordinates][h][mp:ex2] -% \newprocesswithlength{p}{9} -% \newprocesswithlength{q}{9} -% \newprocesswithlength{r}{5} -% \crash{r}{5}{k} -% -% \checkpoint{p}{0}{c_p^0} -% \checkpoint{q}{0}{c_q^0} -% \checkpoint{r}{0}{c_r^0} -% \checkpoint{p}{4}{c_p^1} -% -% \stateinterval{p}{0}{si_p^0} -% \stateinterval{q}{0}{si_q^0} -% \stateinterval{r}{0}{si_r^0} -% -% \sendwithstateinterval{p}{1}{q}{2}{si_q^1} -% \sendwithstateinterval{r}{3}{q}{4}{si_q^2} -% \sendwithstateintervalandname{q}{5}{p}{6}{si_p^1}{\(m\)} -% \sendoutofband{q}{5}{r}{6}{\(m_\mathrm{copy}\)} -% \stateinterval{r}{6}{si_r^0} -% \restart{r}{6}{3} -% -% \annotate{r}{8}{restart} -% \annotatexplicit{p}{8}{\(1+1=2\)}{note} -% -% \colouredbox{p}{q}{7}{9}{Protocol} -% \drawtimeline{9} -% -% -% \fill[fill=white, opacity=0.8] (-1, 0) rectangle (10, -5); -% -% \draw[dotted, gray] (-1,0) grid (10,-5); -% \draw[->, thick, red] (0, 0) -- (1, 0) node [anchor=south, text=black] {\((1, 0)\)}; -% \draw[->, thick, red] (0, 0) -- (0, -1) node [anchor=east, text=black] {\((0, -1)\)}; -% -% \draw[fill] (q) circle [radius=.5mm]; -% \node[anchor=east] at (q) {\((\texttt{q})\)}; -% -% \draw[fill] (si_q^1) circle [radius=.5mm]; -% \node[anchor=east] at (si_q^1) {\((\texttt{si\_q\^{}1})\)}; -% -% \draw[fill] (c_p^1) circle [radius=.5mm]; -% \node[anchor=east] at (c_p^1) {\((\texttt{c\_p\^{}1})\)}; -% -% \draw[fill] (k) circle [radius=.5mm]; -% \node[anchor=east] at (k) {\((\texttt{k})\)}; -% -% \draw[fill] (note) circle [radius=.5mm]; -% \node[anchor=east] at (note) {\((\texttt{note})\)}; -% -% \end{messagepassing} - -% \StopEventually{} -% -% \section{Implementation} - -% \begin{macrocode} -\newcounter{processnb} -\setcounter{processnb}{0} -\newcounter{maxtime} - -\pgfdeclarelayer{background} -\pgfsetlayers{background,main} - -\newfloat{float_messagepassing}{t b h p}{.mp} -\floatname{float_messagepassing}{Execution} - -\newif\ifmp@vertical\mp@verticalfalse -\DeclareOption{vertical}{ - \mp@verticaltrue -} -\newif\ifmp@annotatevertical\mp@annotateverticalfalse -\DeclareOption{annotatevertical}{ - \mp@annotateverticaltrue -} -\ProcessOptions\relax - -\ifmp@vertical - \newcommand{\mp@processnameanchor}{south} - \newcommand{\mp@timeticksanchor}{east} - \newcommand{\mp@messagelabelanchor}{south} - \newcommand{\mp@stateintervalanchor}{north west} - \newcommand{\mp@checkpointanchor}{east} - \newcommand{\mp@verticalrotation}{270} - \ifmp@annotatevertical - \newcommand{\mp@annotaterotation}{270} - \else - \newcommand{\mp@annotaterotation}{0} - \fi -\else - \newcommand{\mp@processnameanchor}{east} - \newcommand{\mp@timeticksanchor}{north} - \newcommand{\mp@messagelabelanchor}{west} - \newcommand{\mp@stateintervalanchor}{south west} - \newcommand{\mp@checkpointanchor}{north} - \newcommand{\mp@verticalrotation}{0} - \newcommand{\mp@annotaterotation}{0} -\fi - -\newcommand{\mp@oobcolor}{red} -\newcommand{\oobcolor}[1]{ - \renewcommand\mp@oobcolor{#1} -} - -\newcommand{\mp@colouredboxcolor}{red} -\newcommand{\colouredboxcolor}[1]{ - \renewcommand\mp@colouredboxcolor{#1} -} - -\newif\iftimeline -% \end{macrocode} -% - -%\begin{environment}{messagepassing} -% \begin{macrocode} -\ExplSyntaxOn -%% 1st argument: tikz arguments -%% 2nd argument: Float caption (turns in floating) -%% 3rd argument: Float placement (`p` by default) -%% 4th argument: Float label - \NewDocumentEnvironment{messagepassing} {o o o o} - { - \timelinefalse - \setcounter{processnb}{0} - \IfNoValueTF{#2} { - }{ - \IfNoValueTF{#3}{ - \begin{float_messagepassing}[p] - } { - \begin{float_messagepassing}[#3] - } - \begin{center} - } - \IfNoValueTF{#1}{ - \begin{tikzpicture}[rotate=\mp@verticalrotation] - } { - \begin{tikzpicture}[rotate=\mp@verticalrotation, #1] - } - }{ - %% Draw timeline if boolean is true - \iftimeline - \begin{pgfonlayer}{background} - \setcounter{maxtime}{\@maxtime} - \addtocounter{maxtime}{-1} - \coordinate (maxtime) at (\@maxtime, 0); - - \addtocounter{processnb}{1} - \coordinate (timeline) at (0, -\value{processnb}); - \draw (timeline) node [anchor=\mp@processnameanchor] {{\it time}}; - \draw[->] (timeline) -- ($(timeline) + (maxtime)$); - \foreach \i in {0,...,\value{maxtime}} { - \draw ($(timeline) + (\i, 0) + (0, 0.1)$) -- ($(timeline) + (\i, 0) + (0, -0.1)$) node [anchor=\mp@timeticksanchor] {$\i$}; - } - \end{pgfonlayer} - \else - \fi - \end{tikzpicture} - \IfNoValueTF{#2} { - \linebreak - } { - \end{center} - \caption{#2} - \IfNoValueTF{#4} { - }{ - \label{#4} - } - \end{float_messagepassing} - } - } -\ExplSyntaxOff -% \end{macrocode} -% \end{environment} -% -% \begin{macrocode} -%% #1: name -\newcommand{\newprocess}[1]{ - \addtocounter{processnb}{1} - \coordinate (#1) at (0, -\value{processnb}); - \draw (#1) node[anchor=\mp@processnameanchor] {$#1$}; -} -% \end{macrocode} -% -% \begin{macrocode} -%% #1: name -%% #2: width -\newcommand{\newprocesswithlength}[2]{ - \newprocess{#1} - \processlength{#1}{#2} -} -% \end{macrocode} -% -% \begin{macrocode} -%% #1: name -%% #2: state interval name -\newcommand{\newprocesswithstateinterval}[2]{ - \newprocess{#1} - \stateinterval{#1}{0}{#2} -} -% \end{macrocode} -% -% \begin{macrocode} -%% #1: name -%% #2: width -%% #3: crash name -\newcommand{\newprocesswithcrash}[3]{ - \newprocess{#1}{#2} - \crash{#1}{#2}{#3} -} -% \end{macrocode} -% -% \begin{macrocode} -%% #1: sender's name -%% #2: send date -%% #3: receiver's name -%% #4: receive date -\newcommand{\send}[4]{ - \draw[->] (#1) +(#2, 0) -- ($ (#3) +(#4, 0) $); -} -% \end{macrocode} -% -% \begin{macrocode} -%% #1: sender's name -%% #2: send date -%% #3: receiver's name -%% #4: receive date -%% #5: message name -\newcommand{\sendwithname}[5]{ - \draw[->] (#1) +(#2, 0) -- ($ (#3) +(#4, 0) $) node[anchor=\mp@messagelabelanchor, pos=0.3] {#5}; -} -% \end{macrocode} -% -% \begin{macrocode} -%% #1: process name -%% #2: process width -\newcommand{\processlength}[2]{ - \draw (#1) -- +(#2, 0); -} -% \end{macrocode} -% -% \begin{macrocode} -%% #1: sender's name -%% #2: send date -%% #3: receiver's name -%% #4: receive date -%% #5: state interval name -\newcommand{\sendwithstateinterval}[5] { - \send{#1}{#2}{#3}{#4} - \stateinterval{#3}{#4}{#5} -} -% \end{macrocode} -% -% \begin{macrocode} -%% #1: sender's name -%% #2: send date -%% #3: receiver's name -%% #4: receive date -%% #5: state interval name -%% #6: message name -\newcommand{\sendwithstateintervalandname}[6] { - \sendwithname{#1}{#2}{#3}{#4}{#6} - \stateinterval{#3}{#4}{#5} -} -% \end{macrocode} -% -% \begin{macrocode} -%% #1: sender's name -%% #2: send date -%% #3: receiver's name -%% #4: receive date -%% #5: OoB message name -\newcommand{\sendoutofband}[5]{ - \draw[->, color=\mp@oobcolor] (#1) +(#2, 0) -- ($ (#3) +(#4, 0) $) node[anchor=\mp@messagelabelanchor, pos=0.3] {#5}; -} -% \end{macrocode} -% -% \begin{macrocode} -%% #1: process's name -%% #2: state interval date -%% #3: state interval name -\newcommand{\stateinterval}[3] { - \stateintervalspecial{#1}{#2}{#3}{#3} -} -% \end{macrocode} -% -% \begin{macrocode} -%% #1: process's name -%% #2: state interval date -%% #3: coordinate name -%% #4: state interval label -\newcommand{\stateintervalspecial}[4] { - \coordinate (#3) at ($ (#1) +(#2, 0) $); - \draw (#3) + (0, 0.1) -- +(0, -0.1) node[anchor=\mp@stateintervalanchor] {$#4$}; -} -% \end{macrocode} -% -% \begin{macrocode} -%% #1: process's name -%% #2: checkpoint date -%% #3: checkpoint name -\newcommand{\checkpoint}[3]{ - \coordinate (#3) at ($ (#1) + (#2, 0) $); - \fill (#3) + (-0.05, 0.1) rectangle +(0.05, -0.1); - \draw (#3) + (0, -0.1) node[anchor=\mp@checkpointanchor] {$#3$}; -} -% \end{macrocode} -% -% \begin{macrocode} -%% #1: process's name -%% #2: checkpoint date -%% #3: checkpoint coordinate name -%% #4: checkpoint label -\newcommand{\checkpointspecial}[4]{ - \coordinate (#3) at ($ (#1) + (#2, 0) $); - \fill (#3) + (-0.05, 0.1) rectangle +(0.05, -0.1); - \draw (#3) + (0, -0.1) node[anchor=\mp@checkpointanchor] {#4}; -} -% \end{macrocode} -% -% \begin{macrocode} -%% #1: process's name -%% #2: crash date -%% #3: crash name -\newcommand{\crash}[3]{ - \coordinate (#3) at ($ (#1) + (#2, 0) $); - \draw (#3) + (-0.1, -0.1) -- +(0.1, 0.1); - \draw (#3) + (0.1, -0.1) -- +(-0.1, 0.1); -} -% \end{macrocode} -% -% \begin{macrocode} -%% #1: process's name -%% #2: restart date -%% #3: restart length -\newcommand{\restart}[3]{ - \draw (#1) + (#2, 0) -- ($ (#1) + (#2, 0) + (#3, 0) $); -} -% \end{macrocode} -% -% \begin{macrocode} -%% #1: first process's name -%% #2: second process's name -%% #3: begining of the grey box -%% #4: end of the grey box -%% #5: caption -\newcommand{\colouredbox}[5]{ - \begin{pgfonlayer}{background} - \fill[color=\mp@colouredboxcolor!20] ($(#1) + (#3, 0)$) rectangle ($(#2) + (#4, 0)$) node[midway, color = \mp@colouredboxcolor, rotate=\mp@annotaterotation]{#5}; - \end{pgfonlayer} -} -% \end{macrocode} -% -% \begin{macrocode} -%% #1: Timeline length -\newcommand{\drawtimeline}[1]{ - \timelinetrue - \def\@maxtime{#1} -} -% \end{macrocode} -% -% \begin{macrocode} -%% #1: process's name -%% #2: annotation date -%% #3: annotation -\newcommand{\annotate}[3]{ - \annotatexplicit{#1}{#2}{#3}{#3} -} -% \end{macrocode} -% -% \begin{macrocode} -%% Same than annotate, but with the coordinate name provided explicitly -%% #1: process's name -%% #2: annotation date -%% #3: annotation -%% #4: coordinate name -\newcommand{\annotatexplicit}[4]{ - \coordinate (#4) at ($ (#1) +(#2, 0.1) $); - \draw (#4) node[rotate=\mp@annotaterotation, anchor=south] {#3}; -} -% \end{macrocode} diff --git a/macros/latex/contrib/messagepassing/messagepassing.ins b/macros/latex/contrib/messagepassing/messagepassing.ins deleted file mode 100644 index 750bc28697..0000000000 --- a/macros/latex/contrib/messagepassing/messagepassing.ins +++ /dev/null @@ -1,49 +0,0 @@ -%% -%% Copyright (C) 2021 by Martin Vassor -%% - -%% This file may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either -%% version 1.3 of this license or (at your option) any later -%% version. The latest version of this license is in: -%% -%% http://www.latex-project.org/lppl.txt -%% -%% and version 1.3 or later is part of all distributions of -%% LaTeX version 2005/12/01 or later. -%% - -\input docstrip.tex -\keepsilent -\usedir{tex/latex/messagepassing} -\preamble -This is a generated file. -Copyright (C) 2022 by Martin Vassor - -This file may be distributed and/or modified under the -conditions of the LaTeX Project Public License, either -version 1.3 of this license or (at your option) any later -version. The latest version of this license is in: - - http://www.latex-project.org/lppl.txt - -and version 1.3 or later is part of all distributions of -LaTeX version 2005/12/01 or later. - -\endpreamble - -\generate{\file{messagepassing.sty}{\from{messagepassing.dtx}{package}}} - -\Msg{*********************************************************} -\Msg{*} -\Msg{* To finish the installation you have to move the} -\Msg{* following file into a directory searched by TeX:} -\Msg{*} -\Msg{* \space\space messagepassing.sty} -\Msg{*} -\Msg{* To produce the documentation run the file grammar.dtx} -\Msg{* through LaTeX.} -\Msg{*} -\Msg{* Happy TeXing!} -\Msg{*********************************************************} -\endbatchfile diff --git a/macros/latex/contrib/messagepassing/messagepassing.pdf b/macros/latex/contrib/messagepassing/messagepassing.pdf deleted file mode 100644 index 410b4d22ca..0000000000 Binary files a/macros/latex/contrib/messagepassing/messagepassing.pdf and /dev/null differ diff --git a/macros/latex/contrib/robotarm/README.md b/macros/latex/contrib/robotarm/README.md deleted file mode 100644 index f95f712205..0000000000 --- a/macros/latex/contrib/robotarm/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# `robotarm` LaTeX package - -This LaTeX package uses Tikz to draw parameterized 2D robot arms, for example to be used in educational material. \ No newline at end of file diff --git a/macros/latex/contrib/robotarm/robotarm.dtx b/macros/latex/contrib/robotarm/robotarm.dtx deleted file mode 100644 index 79986b388f..0000000000 --- a/macros/latex/contrib/robotarm/robotarm.dtx +++ /dev/null @@ -1,940 +0,0 @@ -% \iffalse meta-comment -% -% Copyright (C) 2021 by M.J.W. Snippe -% ----------------------------------- -% -% This work may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 -% of this license or (at your option) any later version. -% The latest version of this license is in -% -% http://www.latex-project.org/lppl.txt -% -% and version 1.3 or later is part of all distributions of LaTeX -% version 2005/12/01 or later. -% -% This work has the LPPL maintenance status `author-maintained'. -% -% This work consists of the files found at github.com/max-sn/robotarm. -% -% \fi -% -% \iffalse -%<*driver> -\documentclass{ltxdoc} -\input{robotarm.doc.settings.sty} -\EnableCrossrefs -\RecordChanges -\begin{document} - \DocInput{robotarm.dtx} -\end{document} -% -% -% \fi -% -% \iffalse -% -%<*robotarm-doc-settings> - -\usepackage[utf8]{inputenc} -\usepackage{xspace} -\usepackage{multicol} -\usepackage{geometry} -\usepackage{mathpazo} -\usepackage{robotarm} -\usepackage{biblatex} -\usepackage{hypdoc} -\usepackage{tcolorbox} - -\addbibresource{robotarm.doc.bib.bib} -\defbibheading{robotarmbibheading}[\bibname]{% - \clearpage\section*{#1}\addcontentsline{toc}{section}{#1}} - -\geometry{pass} - -\tcbuselibrary{documentation,breakable,minted} -\tcbset{ - index german settings, - index colorize, - docexample/.append style={ - before lower={\begin{center}\begin{tikzpicture}}, - after lower={\end{tikzpicture}\end{center}}, - documentation minted options={autogobble}, - breakable, - } -} - -\makeindex - -\renewcommand{\MacroFont}{\color{black!70!blue}\small\ttfamily} - -\def\robotarmpackage{\textsl{robotarm}\xspace} -\def\Tikz{{\normalfont Ti\textit{k}Z}\xspace} - -% -% -%<*robotarm-doc-main> - -\title{The \robotarmpackage package} -\author{Marcus J.W. Snippe \\ - \normalsize\href{mailto:maxsnippe@gmail.nl} - {\texttt{maxsnippe[at]gmail.nl}}} -\date{\filedate\\[0.4em]\normalsize\fileversion} - -\maketitle - -\begin{abstract} - With the \robotarmpackage package, you can draw configurable planar robot arms with ease, using \Tikz. It defines the macro (\refCom{robotArm}) and a lot of ways to configure it. Additionally, you can use or redefine the macros used to draw the base link (\refCom{robotArmBaseLink}), a single link (\refCom{robotArmLink}), or the end effector (\refCom{robotArmEndEffector}). -\end{abstract} - -\begin{multicols}{2} - \tableofcontents -\end{multicols} - -\section{Macros} - - \subsection{\texttt{robotArm}} - - \begin{docCommand}{robotArm}{\oarg{key-value list}\marg{num}} - This is the main macro of the \robotarmpackage package. It is meant to be used in the \texttt{tikzpicture} environment\footnote{The first example still includes the \texttt{tikzpicture} environment, but for following examples,it will be omitted in the example code.}, from the \Tikz\cite{tantau:tikz_and_pgf} package, - and installs some styles for additional drawing, e.g. \refKey{/tikz/in link}. - - \begin{dispExample*}{before lower={}, after lower={}} - \begin{tikzpicture} - \robotArm[config={q1=60,q2=-40,q3=-50}]{3} - \end{tikzpicture} - \end{dispExample*} - - \meta{num} defines the number of links that will be drawn. For an $N$ link robot arm, the $N$\textsuperscript{th} link will be the end effector link. - - The \meta{key-value list} values can consist of the keys listed below. - - - - \begin{docKey}{geometry}{=\meta{key-value list}}{} - - The \refKey{geometry} key can be used to set geometrical configuration options of the robot arm, e.g. link length and link width. The keys in \meta{key-value list} can be one or more of the following. - - ^^A \begin{docKey}[][doc label=/geometry/a0]{a0}{=\meta{value}}{initially \texttt{0.0}} - ^^A Sets the height of the base link. - - ^^A \begin{dispExample} - ^^A \robotArm[config={q1=60},geometry={a0=2}]{2} - ^^A \end{dispExample} - ^^A \end{docKey} - - \begin{docKeys} - [ - doc parameter={=\meta{value}}, - ] - { - { - doc name=a, - doc label=/geometry/a, - doc description={initially \texttt{2}} - }, - { - doc name=a\meta{num}, - doc label=/geometry/anum, - doc description={initially the value of \refKey{/geometry/a}} - }, - } - - The \refKey{/geometry/a} key sets the default length for all links that are drawn in the \refCom{robotArm} command. For every link, this can be overruled by the dynamically created keys \refKey{/geometry/anum}, e.g. to set only the length of link 3 to 3, use \texttt{a3=3}. - - \begin{dispExample} - \robotArm[config={q1=20,q2=-20,q3=-20}, - geometry={a=3,a3=1}]{3} - \end{dispExample} - \end{docKeys} - - \begin{docKeys} - [ - doc parameter={=\meta{value}} - ] - { - { - doc name=r, - doc label=/geometry/r, - doc description={initially \texttt{0.25}} - }, - { - doc name=r\meta{num}, - doc label=/geometry/rnum, - doc description={initially the value of \refKey{/geometry/r}} - }, - } - The \refKey{/geometry/r} key sets the default joint radius for all links drawn in the \refCom{robotArm} command. For every link this can be overruled by the dynamically created keys \refKey{/geometry/rnum}. - - \begin{dispExample} - \robotArm[config={q1=20,q2=-20}, - geometry={r=0.5,r1=0.3}]{2} - \end{dispExample} - \end{docKeys} - - \begin{docKeys} - [ - doc parameter={=\meta{value}} - ] - { - { - doc name=w, - doc label=/geometry/w, - doc description={initially \texttt{0.4}} - }, - { - doc name=w\meta{num}, - doc label=/geometry/wnum, - doc description={initially the value of \refKey{/geometry/w}} - }, - } - The \refKey{/geometry/w} key sets the default link width for all links drawn in the \refCom{robotArm} command. For every link this can be overruled by the dynamically created keys \refKey{/geometry/wnum}. - \end{docKeys} - - \end{docKey} - - \begin{dispExample} - \tikzset{/robotarm/geometry={a=1}} - \robotArm{1} - \begin{scope}[xshift=3cm] - \robotArm{6} - \end{scope} - \end{dispExample} - - \begin{docKey}[robotarm/styles]{link}{}{default \texttt{draw,fill=lightgray}} - \end{docKey} - - \end{docCommand} - - \subsection{\texttt{robotArmBaseLink}} - - \begin{docCommand}{robotArmBaseLink}{\oarg{key-value list}} - This command is used in \refCom{robotArm} to draw the base link. It can also be used to draw your own base link. The default base link looks as follows: - \begin{dispExample} - \robotArmBaseLink - \end{dispExample} - The \meta{key-value list} can consist of the keys listed below. - - \begin{docKeys} - [ - doc keypath={robotarm/base link}, - doc parameter={=\meta{value}}, - ] - { - { - doc name=height, - doc description={initially \texttt{0.6}} - }, - { - doc name=width, - doc description={initially \texttt{0.3}} - }, - } - The width and height of the base link can be specified with these keys. The height is measured from the center of the half-circle at the top, to the base. - \begin{dispExample} - \robotArmBaseLink[width=1, height=0.6] - \end{dispExample} - \end{docKeys} - - \begin{docKeys} - [ - doc keypath={robotarm/base link}, - doc parameter={=\meta{value}}, - ] - { - { - doc name=world width, - doc description={initially \texttt{1.0}}, - }, - { - doc name=world height, - doc description={initially \texttt{0.3}}, - } - } - The width and height of the `world' drawn below the base link can be specified with these keys. - \begin{dispExample} - \robotArmBaseLink[world width=5, world height=1] - \end{dispExample} - \end{docKeys} - - \begin{docKeys} - [ - doc keypath={robotarm/base link}, - doc description={code executing key}, - ] - { - {doc name=draw base link}, - {doc name=draw world}, - } - These keys are used to draw the `world' and the base link. If the configuration options above are insufficient, you can redefine these keys, as shown in the not-so-creative example below. - \begin{dispExample} - \robotArmBaseLink[ - draw world/.code={ - \filldraw[fill=brown] (-2,-1) rectangle (2, -0.3); - }, - draw base link/.code={ - \filldraw[fill=black!60] (-0.5, -0.3) rectangle - (0.5, 0.3); - }] - \end{dispExample} - To access the values of the keys listed above you can use the following macros in your redefinition: - \begin{itemize} - \item \docAuxCommand{RA@baselink@width}, - \item \docAuxCommand{RA@baselink@height}, - \item \docAuxCommand{RA@baselink@worldwidth}, and - \item \docAuxCommand{RA@baselink@worldheight}. - \end{itemize} - \end{docKeys} - - \end{docCommand} - - - \subsection{\texttt{robotArmLink}} - - \begin{docCommand}{robotArmLink}{\oarg{key-value list}} - This command is used in \refCom{robotArm} to draw the links in a \texttt{foreach} loop. It can also be used to draw your own link(s). The default link looks as follows: - \begin{dispExample} - \robotArmLink - \end{dispExample} - The \meta{key-value list} can consist of the keys listed below. - - \begin{docKeys} - [ - doc keypath={robotarm/link}, - doc parameter={=\meta{value}}, - ]{ - { - doc name=width, - doc description={initially \texttt{0.4}}, - }, - { - doc name=length, - doc description={initially \texttt{2.0}}, - }, - { - doc name=joint radius, - doc description={initially \texttt{0.25}}, - }, - } - The geometrical properties of the links can be configured with these keys. - \begin{dispExample} - \robotArmLink[width=0.75,joint radius=0.4,length=5] - \end{dispExample} - \end{docKeys} - - \begin{docKeys} - [ - doc keypath={robotarm/link}, - doc description={code executing key}, - ] - { - {doc name=draw link}, - {doc name=draw joint}, - } - Same as for the base link, the actual drawing is done by calling these keys. These can also be redefined to change the drawing. - \begin{dispExample} - \robotArmLink[draw link/.code={ - \draw[line cap=round, double=lightgray, - double distance=4mm] - (0,0) to[bend left] (2,0);}] - \end{dispExample} - Of course you can also do this globally so it applies to all links\footnote{For the end effector to change too, you have to redefine \refKey{/robotarm/end effector/draw joint} too.}. - \begin{dispExample} - \pgfkeys{/robotarm/link/draw joint/.code={ - \path[link style] (-0.3,-0.3) rectangle ++(0.6,0.6); - \path[link style] (0,0) circle (0.2);}} - \robotArm[geometry={a=1.5}, - config={q1=60,q2=-30,q3=-30}]{3} - \end{dispExample} - To access the values of the keys listed above you can use the following macros in your redefinition: - \begin{itemize} - \item \docAuxCommand{RA@link@width}, - \item \docAuxCommand{RA@link@length}, and - \item \docAuxCommand{RA@link@jointradius}. - \end{itemize} - \end{docKeys} - - \end{docCommand} - - \subsection{\texttt{robotArmEndEffector}} - - \begin{docCommand}{robotArmEndEffector}{\oarg{key-value list}} - This command is used in \refCom{robotArm} to draw the final link with the end effector attached. You can also use it outside that command to draw your own end effector. - \begin{dispExample} - \robotArmEndEffector - \end{dispExample} - The \meta{key-value list} can consist of the keys listed below. - - \begin{docKeys} - [ - doc keypath={robotarm/end effector}, - doc parameter={=\meta{value}}, - ] - { - { - doc name=width, - doc description={initially \texttt{0.4}}, - }, - { - doc name=length, - doc description={initially \texttt{2.0}}, - }, - { - doc name=joint radius, - doc description={initially \texttt{0.25}}, - }, - { - doc name=gripper radius, - doc description={initially \texttt{0.3}}, - }, - { - doc name=gripper opening angle, - doc description={initially \texttt{60}}, - doc parameter={=\meta{angle}}, - }, - } - The geometrical properties of the final link and the end effector, which defaults to a gripper, can be tuned with these keys. Due to some trigonometric functions in the drawing code of \refKey{/robotarm/end effector/draw end effector}, \refKey{/robotarm/end effector/gripper radius} should not be smaller than half of \refKey{/robotarm/end effector/width}. - - \end{docKeys} - - \begin{docKeys} - [ - doc keypath={robotarm/end effector}, - doc description={code executing key}, - ] - { - {doc name=draw link}, - {doc name=draw joint}, - {doc name=draw end effector}, - } - Again the actual drawing is done by calling these keys. And these can also be redefined to change how the end effector will look, as shown in the example below. - \begin{dispExample} - \robotArm[ - config={q1=100,q2=-100}, - end effector/.cd, - draw link/.code={ - \draw[line cap=round, double=lightgray, - double distance=4mm] - (0,0) to[bend left] (2, 0.8);}, - draw end effector/.code={ - \path[link style] - (1.8, 0.8) arc (180:0:0.2) -- (2.1, 0.4) - -- (1.9, 0.4) -- cycle; - \path[link style] - (2.05,0.4) rectangle (1.95,0.0); - \fill (2,0) circle (0.05);}]{2} - \end{dispExample} - To access the values of the keys listed above you can use the following macros in your redefinition: - \begin{itemize} - \item \docAuxCommand{RA@endeff@width}, - \item \docAuxCommand{RA@endeff@length}, - \item \docAuxCommand{RA@endeff@jointradius}, - \item \docAuxCommand{RA@endeff@gripperradius}, and - \item \docAuxCommand{RA@endeff@gripperopeningangle}. - \end{itemize} - \end{docKeys} - - \end{docCommand} - -\section{\Tikz styles} - - \begin{docKeys} - [ - doc keypath=tikz, - doc description=style, - ] - { - { - doc name=in link, - doc parameter={=\meta{number}}, - }, - { - doc name=in base link, - }, - { - doc name=in world, - }, - { - doc name=in end effector, - } - } - Only installed after calling \refCom{robotArm} at least once (last called macro defines these styles, but within scope can be made unique). - \end{docKeys} - - \begin{docKey}[tikz]{link style}{}{default \texttt{/robotarm/styles/link}} - Always installed, forwards to \refKey{/robotarm/styles/link}. Only works one way. To change link styles used in \refCom{robotArm}, change the appropriate \refKey{/robotarm/styles/link}. - \begin{dispExample} - \tikzset{link style/.style={draw=none, fill=red!50}} - \robotArm[config={q1=40},styles={ - link 1/.style={fill=blue!50}}]{3} - \end{dispExample} - \end{docKey} - - - %^^A \section{\robotarmpackage keys} - %^^A \begin{docKeys} - %^^A [ - %^^A doc keypath=robotarm/annotations/labels, - %^^A ]{ - %^^A { - %^^A doc name=a, - %^^A doc description={no default, initially \texttt{a}}, - %^^A }, - %^^A { - %^^A doc name=q, - %^^A doc description={no default, initially \texttt{q}}, - %^^A } - %^^A } - %^^A \begin{dispExample} - %^^A \robotArm[ - %^^A config={q1=60,q2=-40,q3=40}, - %^^A annotations/labels/a=l, - %^^A annotations/labels/q=\theta, - %^^A annotations/labels/q3=?]{3} - %^^A \end{dispExample} - %^^A \end{docKeys} - - %^^A \section{\Tikz keys} - - - %^^A \begin{docKeys} - %^^A [ - %^^A doc keypath=robotarm/frames, - %^^A doc description={style}, - %^^A ]{ - %^^A {doc name=in link 0}, - %^^A {doc name=in link 1}, - %^^A {doc name=in link 2}, - %^^A {doc name=in link 3}, - %^^A {doc name=in link 4}, - %^^A {doc name=in link 5}, - %^^A {doc name=in link 6} - %^^A } - %^^A \end{docKeys} - - -% -% -%<*robotarm-doc-bib> -@manual{tantau:tikz_and_pgf, - author = {Till Tantau}, - title = {The TikZ and PGF Packages}, - subtitle = {Manual for version 3.1.8b}, - url = {https://mirrors.ctan.org/graphics/pgf/base/doc/pgfmanual.pdf}, - date = {2021-03-19}, -} -% -% -% \fi -% -% \CheckSum{286} -% -% \CharacterTable -% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -% Digits \0\1\2\3\4\5\6\7\8\9 -% Exclamation \! Double quote \" Hash (number) \# -% Dollar \$ Percent \% Ampersand \& -% Acute accent \' Left paren \( Right paren \) -% Asterisk \* Plus \+ Comma \, -% Minus \- Point \. Solidus \/ -% Colon \: Semicolon \; Less than \< -% Equals \= Greater than \> Question mark \? -% Commercial at \@ Left bracket \[ Backslash \\ -% Right bracket \] Circumflex \^ Underscore \_ -% Grave accent \` Left brace \{ Vertical bar \| -% Right brace \} Tilde \~} -% -% -% \DoNotIndex{\angleannotationcase,\link@angleannotspacing,\begin,\begingroup,\DeclareDocumentCommand,\draw,\end,\endgroup,\fi,\foreach,\ifcase,\ifnum,\ifRA@robotarm@drawannotations,\lenghtannotationspacing,\link@lenght,\link@radius,\link@startangle,\link@width,\lengthannotationspacing,\link@length,\link@case} -% -% \changes{v0.1}{2022/03/08}{Initial version for publishing} -% -% \GetFileInfo{robotarm.sty} -% -% \input{robotarm.doc.main.tex} -% -% \StopEventually{\printbibliography[heading=robotarmbibheading]\printindex\PrintChanges} -% -% \section{Implementation} -% \begin{macrocode} -%<*robotarm-package> -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{robotarm} - [2022/03/08 v0.1 Tikz commands to draw planar robot arms] - -\RequirePackage{tikz} - -\usetikzlibrary{patterns} - -\makeatletter - -\newif\ifRA@robotarm@drawannotations - -\pgfkeys{ - /robotarm/base link/.cd, - width/.code={\pgfmathsetmacro\RA@baselink@width{#1}}, - width=0.6, - height/.code={\pgfmathsetmacro\RA@baselink@height{#1}}, - height=0.3, - world width/.code={\pgfmathsetmacro\RA@baselink@worldwidth{#1}}, - world width=1.0, - world height/.code={\pgfmathsetmacro\RA@baselink@worldheight{#1}}, - world height=0.3, - draw base link/.code={% - \path[link style] - (-1/2*\RA@baselink@width,0) - arc (180:0:1/2*\RA@baselink@width) - -- ++ (0, -\RA@baselink@height) - -- ++ (-\RA@baselink@width, 0) - -- cycle; - }, - draw world/.code={% - \path[world style] - (-1/2*\RA@baselink@worldwidth,-\RA@baselink@height) - arc (180:360:{1/2*\RA@baselink@worldwidth} - and {\RA@baselink@worldheight}) -- cycle; - \path[draw, world style] - (-1/2*\RA@baselink@worldwidth,-\RA@baselink@height) - -- ++(\RA@baselink@worldwidth,0); - }, - /robotarm/link/.cd, - width/.code={\pgfmathsetmacro\RA@link@width{#1}}, - width=0.4, - length/.code={\pgfmathsetmacro\RA@link@length{#1}}, - length=2.0, - joint radius/.code={\pgfmathsetmacro\RA@link@jointradius{#1}}, - joint radius=0.25, - draw link/.code={% - \path[link style] - (0,1/2*\RA@link@width) - -- ++ ( \RA@link@length, 0) - arc (90:-90:1/2*\RA@link@width) - -- ++ (-\RA@link@length, 0) - arc (270:90:1/2*\RA@link@width) - -- cycle; - }, - draw joint/.code={% - \path[link style] - (0,0) circle (\RA@link@jointradius); - \path[link style] - (0,0) circle (1/3*\RA@link@jointradius); - }, - /robotarm/end effector/.cd, - width/.code={\pgfmathsetmacro\RA@endeff@width{#1}}, - width=0.4, - length/.code={\pgfmathsetmacro\RA@endeff@length{#1}}, - length=2, - joint radius/.code={\pgfmathsetmacro\RA@endeff@jointradius{#1}}, - joint radius=0.25, - gripper radius/.code={\pgfmathsetmacro\RA@endeff@gripperradius{#1}}, - gripper radius=0.3, - gripper opening angle/.code={% - \pgfmathsetmacro\RA@endeff@gripperopeningangle{#1}}, - gripper opening angle=60, - draw joint/.code={% - \path[link style] - (0,0) circle (\RA@endeff@jointradius); - \path[link style] - (0,0) circle (1/3*\RA@endeff@jointradius); - }, - draw link/.code={% - \pgfmathsetmacro{\link@startangle}{% - 180-asin(1/2*\RA@endeff@width/\RA@endeff@gripperradius)} - \pgfmathsetmacro{\link@endangle}{% - 180+asin(1/2*\RA@endeff@width/\RA@endeff@gripperradius)} - - \path[link style] - (\RA@endeff@length, 0) - ++ (\link@startangle:\RA@endeff@gripperradius) - arc (\link@startangle:\link@endangle:\RA@endeff@gripperradius) - -- (0,0|-0,-1/2*\RA@endeff@width) - arc (-90:90:1/2*\RA@endeff@width) - -- cycle; - }, - draw end effector/.code={ - \draw[link style] - (\RA@endeff@length, 0) - ++ (-1/2*\RA@endeff@gripperopeningangle:% - \RA@endeff@gripperradius) - arc [start angle=-1/2*\RA@endeff@gripperopeningangle, - delta angle=-360+\RA@endeff@gripperopeningangle, - radius=\RA@endeff@gripperradius] - -- ++(180+1/2*\RA@endeff@gripperopeningangle:% - 0.4*\RA@endeff@gripperradius) - arc [start angle=1/2*\RA@endeff@gripperopeningangle, - delta angle=360-\RA@endeff@gripperopeningangle, - radius=0.6*\RA@endeff@gripperradius] - -- ++(-1/2*\RA@endeff@gripperopeningangle:% - 0.4*\RA@endeff@gripperradius) - -- cycle; - }, - /robotarm/.cd, - draw annotations/.is if=RA@robotarm@drawannotations, - draw annotations=true, - every annotation/.style={}, - every length annotation/.style={}, - every length annotation arrow/.style={draw,->}, - every length annotation node/.style={circle,inner sep=0.5pt}, - every length annotation help line/.style={draw,help lines}, - every angle annotation/.style={}, - every angle annotation arrow/.style={draw,->}, - every angle annotation node/.style={}, - every angle annotation help line/.style={draw,help lines}, - base link/.code=\pgfkeys{/robotarm/base link/.cd,#1}, - link/.code=\pgfkeys{/robotarm/link/.cd,#1}, - end effector/.code=\pgfkeys{/robotarm/end effector/.cd,#1}, - geometry/.code=\pgfkeys{/robotarm/geometry/.cd,#1}, - config/.code=\pgfkeys{/robotarm/config/.cd,#1}, - spacing/.code=\pgfkeys{/robotarm/annotations/spacing/.cd,#1}, - labels/.code=\pgfkeys{/robotarm/annotations/labels/.cd,#1}, - styles/.code=\pgfkeys{/robotarm/styles/.cd,#1}, - /robotarm/geometry/.cd, - a0/.initial=0, - a/.initial=2, - r/.initial=0.25, - w/.initial=0.4, - /robotarm/config/q/.initial=0, - /robotarm/frames/.cd, - in link 0/.style={}, - in end effector/.style={ - /robotarm/frames/in link \RA@robotarm@numlinks, - shift={% - (\pgfkeysvalueof{/robotarm/geometry/a\RA@robotarm@numlinks},0)}, - }, - in world/.style={ - shift={(0,-\RA@baselink@height)} - }, - /robotarm/styles/.cd, - world/.style={pattern=north west lines}, - link/.style={ - draw, - fill=lightgray, - }, - link 0/.style={/robotarm/styles/link}, - /robotarm/annotations/.cd, - spacing/.cd, - a/.initial=3, - q/.initial=1/2, - /robotarm/annotations/.cd, - labels/.cd, - a/.initial=a, - q/.initial=q, -} -\tikzset{ - link style/.style={/robotarm/styles/link}, - world style/.style={/robotarm/styles/world}, -} -% \end{macrocode} -% \begin{macro}{\robotarmset} -% \begin{macrocode} -\newcommand\robotarmset[1]{% - \pgfkeys{/robotarm/.cd,#1}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\robotArmLink} -% \begin{macrocode} -\newcommand\robotArmLink[1][]{ - \begingroup - \pgfkeys{/robotarm/link/.cd,#1} - - \pgfkeys{/robotarm/link/draw link} - \pgfkeys{/robotarm/link/draw joint} - \endgroup -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\robotArmEndEffector} -% \begin{macrocode} -\newcommand\robotArmEndEffector[1][]{ - \begingroup - \pgfkeys{/robotarm/end effector/.cd,#1} - - \pgfkeys{/robotarm/end effector/draw link} - \pgfkeys{/robotarm/end effector/draw joint} - \pgfkeys{/robotarm/end effector/draw end effector} - - \endgroup -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\robotArmBaseLink} -% \begin{macrocode} -\newcommand\robotArmBaseLink[1][]{ - \begingroup - \pgfkeys{/robotarm/base link/.cd,#1} - - \pgfkeys{/robotarm/base link/draw world} - \pgfkeys{/robotarm/base link/draw base link} - \endgroup -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\robotArm} -% \begin{macrocode} -\newcommand\robotArm[2][]{ - \pgfmathtruncatemacro\RA@robotarm@numlinks{#2} - \def\@tmpkeys{} - \foreach \@link [remember=\@link as \@prevlink (initially 0)] in % - {1,...,\RA@robotarm@numlinks}{ - \xdef\@tmpkeys{\@tmpkeys% - /robotarm/geometry/a\@link/.initial=% - \pgfkeysvalueof{/robotarm/geometry/a},% - /robotarm/geometry/r\@link/.initial=% - \pgfkeysvalueof{/robotarm/geometry/r},% - /robotarm/geometry/w\@link/.initial=% - \pgfkeysvalueof{/robotarm/geometry/w},% - /robotarm/config/q\@link/.initial=% - \pgfkeysvalueof{/robotarm/config/q},% - /robotarm/styles/link \@link/.style={/robotarm/styles/link},% - /robotarm/annotations/labels/a\@link/.initial={% - $\pgfkeysvalueof{/robotarm/annotations/labels/a}_{\@link}$},% - /robotarm/annotations/labels/q\@link/.initial={% - $\pgfkeysvalueof{/robotarm/annotations/labels/q}_{\@link}$},% - /robotarm/annotations/spacing/a\@link/.initial={% - \pgfkeysvalueof{/robotarm/annotations/spacing/a}},% - /robotarm/annotations/spacing/q\@link/.initial={% - \pgfkeysvalueof{/robotarm/annotations/spacing/q}},% - } - } - \expandafter\pgfkeys\expandafter{\@tmpkeys} - \pgfkeys{/robotarm/.cd,#1} - \def\@tmpkeys{} - \foreach \@link [remember=\@link as \@prevlink (initially 0)] in % - {1,...,\RA@robotarm@numlinks}{ - \xdef\@tmpkeys{\@tmpkeys% - /robotarm/frames/in link \@link/.style={% - /robotarm/frames/in link \@prevlink, - /tikz/shift={% - (\pgfkeysvalueof{/robotarm/geometry/a\@prevlink},0)}, - /tikz/rotate={\pgfkeysvalueof{/robotarm/config/q\@link}}, - }, - } - } - \expandafter\pgfkeys\expandafter{\@tmpkeys} - - \begin{scope}[/robotarm/frames/in link 0, - link style/.style={/robotarm/styles/link 0}] - \robotArmBaseLink - \end{scope} - - \foreach\link@num in {1,...,\RA@robotarm@numlinks}{ - \begin{scope}[/robotarm/frames/in link \link@num, - link style/.style={/robotarm/styles/link \link@num}] - - \ifnum\link@num<\RA@robotarm@numlinks - \robotArmLink[ - joint radius=\pgfkeysvalueof{/robotarm/geometry/r\link@num}, - length=\pgfkeysvalueof{/robotarm/geometry/a\link@num}, - width=\pgfkeysvalueof{/robotarm/geometry/w\link@num}, - ] - \else - \robotArmEndEffector[ - joint radius=\pgfkeysvalueof{/robotarm/geometry/r\link@num}, - length=\pgfkeysvalueof{/robotarm/geometry/a\link@num}, - width=\pgfkeysvalueof{/robotarm/geometry/w\link@num}, - ] - \fi - \end{scope} - } - \foreach\link@num in {1,...,\RA@robotarm@numlinks}{ - \begin{scope}[/robotarm/frames/in link \link@num] - \pgfmathsetmacro\link@length{\pgfkeysvalueof{% - /robotarm/geometry/a\link@num}} - \pgfmathsetmacro\link@angle{\pgfkeysvalueof{% - /robotarm/config/q\link@num}} - - \ifRA@robotarm@drawannotations - \pgfmathsetmacro\link@lengthannotspacing{% - \pgfkeysvalueof{/robotarm/annotations/spacing/a\link@num}* - \pgfkeysvalueof{/robotarm/geometry/r\link@num}} - \pgfmathsetmacro\link@angleannotspacing{% - \pgfkeysvalueof{/robotarm/annotations/spacing/q\link@num}* - \link@length} - - % Length annotation help lines - \path[/robotarm/every annotation, - /robotarm/every length annotation, - /robotarm/every length annotation help line] - (0,0) -- (\link@length,0); - \path[/robotarm/every annotation, - /robotarm/every length annotation, - /robotarm/every length annotation help line] - (0,0) -- ++ (0,{\link@lengthannotspacing + - 0.1*sign(\link@lengthannotspacing)}); - \path[/robotarm/every annotation, - /robotarm/every length annotation, - /robotarm/every length annotation help line] - (\link@length,0) -- ++ (0,{\link@lengthannotspacing + - 0.1*sign(\link@lengthannotspacing)}); -% \end{macrocode} -% Length annotation node -% \begin{macrocode} - \path (0,\link@lengthannotspacing) - -- coordinate[pos=0.5] (coor) ++ (\link@length,0); - \node[/robotarm/every annotation, - /robotarm/every length annotation, - /robotarm/every length annotation node] - at (coor) (tag) - {\pgfkeysvalueof{/robotarm/annotations/labels/a\link@num}}; -% \end{macrocode} -% Length annotation arrows -% \begin{macrocode} - \path[/robotarm/every annotation, - /robotarm/every length annotation, - /robotarm/every length annotation arrow] - (tag) -- (0,\link@lengthannotspacing); - \path[/robotarm/every annotation, - /robotarm/every length annotation, - /robotarm/every length annotation arrow] - (tag) -- (\link@length,\link@lengthannotspacing); - - \pgfmathsetmacro\angleannotationcase{% - ifthenelse(\link@angle==0.0, 0, 1)} - \ifnum\angleannotationcase>0 - % Angle annotation help lines - \path[/robotarm/every annotation, - /robotarm/every angle annotation, - /robotarm/every angle annotation help line] - (0,0) -- ++(-\link@angle:{\link@angleannotspacing+0.1}); - \path[/robotarm/every annotation, - /robotarm/every angle annotation, - /robotarm/every angle annotation help line] - (0,0) -- ++(0:{\link@angleannotspacing+0.1}); - - % Angle annotation arrow - \path[/robotarm/every annotation, - /robotarm/every angle annotation, - /robotarm/every angle annotation arrow] - (0,0) ++ (-\link@angle:\link@angleannotspacing) - arc (-\link@angle:0:\link@angleannotspacing); - - % Angle annotation node - \node[/robotarm/every annotation, - /robotarm/every angle annotation, - /robotarm/every angle annotation node] - at (-\link@angle/2:\link@angleannotspacing+0.3) - {\pgfkeysvalueof{/robotarm/annotations/labels/q\link@num}}; - \fi - \fi - \end{scope} - } -% \end{macrocode} -% Install \Tikz styles for coordinate transformations. -% \begin{macrocode} - \tikzset{ - in link/.style={/robotarm/frames/in link #1}, - in base link/.style={/robotarm/frames/in link 0}, - in end effector/.style={/robotarm/frames/in end effector}, - in world/.style={/robotarm/frames/in world}, - } -} -% \end{macrocode} -% \end{macro} -% \begin{macrocode} -\makeatother -% -% \end{macrocode} -% \Finale -\endinput \ No newline at end of file diff --git a/macros/latex/contrib/robotarm/robotarm.pdf b/macros/latex/contrib/robotarm/robotarm.pdf deleted file mode 100644 index ab9689f9d9..0000000000 Binary files a/macros/latex/contrib/robotarm/robotarm.pdf and /dev/null differ diff --git a/macros/latex/contrib/robotarm/robotarm.sty b/macros/latex/contrib/robotarm/robotarm.sty deleted file mode 100644 index 5fb7f730aa..0000000000 --- a/macros/latex/contrib/robotarm/robotarm.sty +++ /dev/null @@ -1,375 +0,0 @@ -%% -%% This is file `robotarm.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% robotarm.dtx (with options: `robotarm-package') -%% -%% This is a generated file. -%% -%% Copyright (C) 2021 by M.J.W. Snippe -%% ----------------------------------- -%% -%% This file may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either -%% version 1.3 of this license or (at your option) any later -%% version. The latest version of this license is in: -%% -%% http://www.latex-project.org/lppl.txt -%% -%% and version 1.3 or later is part of all distributions of -%% LaTeX version 2005/12/01 or later. -%% -%% This work has the LPPL maintenance status -%% `author-maintained'. -%% -%% This work consists of the files found at github.com/max-sn/robotarm. -%% -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{robotarm} - [2022/03/08 v0.1 Tikz commands to draw planar robot arms] - -\RequirePackage{tikz} - -\usetikzlibrary{patterns} - -\makeatletter - -\newif\ifRA@robotarm@drawannotations - -\pgfkeys{ - /robotarm/base link/.cd, - width/.code={\pgfmathsetmacro\RA@baselink@width{#1}}, - width=0.6, - height/.code={\pgfmathsetmacro\RA@baselink@height{#1}}, - height=0.3, - world width/.code={\pgfmathsetmacro\RA@baselink@worldwidth{#1}}, - world width=1.0, - world height/.code={\pgfmathsetmacro\RA@baselink@worldheight{#1}}, - world height=0.3, - draw base link/.code={% - \path[link style] - (-1/2*\RA@baselink@width,0) - arc (180:0:1/2*\RA@baselink@width) - -- ++ (0, -\RA@baselink@height) - -- ++ (-\RA@baselink@width, 0) - -- cycle; - }, - draw world/.code={% - \path[world style] - (-1/2*\RA@baselink@worldwidth,-\RA@baselink@height) - arc (180:360:{1/2*\RA@baselink@worldwidth} - and {\RA@baselink@worldheight}) -- cycle; - \path[draw, world style] - (-1/2*\RA@baselink@worldwidth,-\RA@baselink@height) - -- ++(\RA@baselink@worldwidth,0); - }, - /robotarm/link/.cd, - width/.code={\pgfmathsetmacro\RA@link@width{#1}}, - width=0.4, - length/.code={\pgfmathsetmacro\RA@link@length{#1}}, - length=2.0, - joint radius/.code={\pgfmathsetmacro\RA@link@jointradius{#1}}, - joint radius=0.25, - draw link/.code={% - \path[link style] - (0,1/2*\RA@link@width) - -- ++ ( \RA@link@length, 0) - arc (90:-90:1/2*\RA@link@width) - -- ++ (-\RA@link@length, 0) - arc (270:90:1/2*\RA@link@width) - -- cycle; - }, - draw joint/.code={% - \path[link style] - (0,0) circle (\RA@link@jointradius); - \path[link style] - (0,0) circle (1/3*\RA@link@jointradius); - }, - /robotarm/end effector/.cd, - width/.code={\pgfmathsetmacro\RA@endeff@width{#1}}, - width=0.4, - length/.code={\pgfmathsetmacro\RA@endeff@length{#1}}, - length=2, - joint radius/.code={\pgfmathsetmacro\RA@endeff@jointradius{#1}}, - joint radius=0.25, - gripper radius/.code={\pgfmathsetmacro\RA@endeff@gripperradius{#1}}, - gripper radius=0.3, - gripper opening angle/.code={% - \pgfmathsetmacro\RA@endeff@gripperopeningangle{#1}}, - gripper opening angle=60, - draw joint/.code={% - \path[link style] - (0,0) circle (\RA@endeff@jointradius); - \path[link style] - (0,0) circle (1/3*\RA@endeff@jointradius); - }, - draw link/.code={% - \pgfmathsetmacro{\link@startangle}{% - 180-asin(1/2*\RA@endeff@width/\RA@endeff@gripperradius)} - \pgfmathsetmacro{\link@endangle}{% - 180+asin(1/2*\RA@endeff@width/\RA@endeff@gripperradius)} - - \path[link style] - (\RA@endeff@length, 0) - ++ (\link@startangle:\RA@endeff@gripperradius) - arc (\link@startangle:\link@endangle:\RA@endeff@gripperradius) - -- (0,0|-0,-1/2*\RA@endeff@width) - arc (-90:90:1/2*\RA@endeff@width) - -- cycle; - }, - draw end effector/.code={ - \draw[link style] - (\RA@endeff@length, 0) - ++ (-1/2*\RA@endeff@gripperopeningangle:% - \RA@endeff@gripperradius) - arc [start angle=-1/2*\RA@endeff@gripperopeningangle, - delta angle=-360+\RA@endeff@gripperopeningangle, - radius=\RA@endeff@gripperradius] - -- ++(180+1/2*\RA@endeff@gripperopeningangle:% - 0.4*\RA@endeff@gripperradius) - arc [start angle=1/2*\RA@endeff@gripperopeningangle, - delta angle=360-\RA@endeff@gripperopeningangle, - radius=0.6*\RA@endeff@gripperradius] - -- ++(-1/2*\RA@endeff@gripperopeningangle:% - 0.4*\RA@endeff@gripperradius) - -- cycle; - }, - /robotarm/.cd, - draw annotations/.is if=RA@robotarm@drawannotations, - draw annotations=true, - every annotation/.style={}, - every length annotation/.style={}, - every length annotation arrow/.style={draw,->}, - every length annotation node/.style={circle,inner sep=0.5pt}, - every length annotation help line/.style={draw,help lines}, - every angle annotation/.style={}, - every angle annotation arrow/.style={draw,->}, - every angle annotation node/.style={}, - every angle annotation help line/.style={draw,help lines}, - base link/.code=\pgfkeys{/robotarm/base link/.cd,#1}, - link/.code=\pgfkeys{/robotarm/link/.cd,#1}, - end effector/.code=\pgfkeys{/robotarm/end effector/.cd,#1}, - geometry/.code=\pgfkeys{/robotarm/geometry/.cd,#1}, - config/.code=\pgfkeys{/robotarm/config/.cd,#1}, - spacing/.code=\pgfkeys{/robotarm/annotations/spacing/.cd,#1}, - labels/.code=\pgfkeys{/robotarm/annotations/labels/.cd,#1}, - styles/.code=\pgfkeys{/robotarm/styles/.cd,#1}, - /robotarm/geometry/.cd, - a0/.initial=0, - a/.initial=2, - r/.initial=0.25, - w/.initial=0.4, - /robotarm/config/q/.initial=0, - /robotarm/frames/.cd, - in link 0/.style={}, - in end effector/.style={ - /robotarm/frames/in link \RA@robotarm@numlinks, - shift={% - (\pgfkeysvalueof{/robotarm/geometry/a\RA@robotarm@numlinks},0)}, - }, - in world/.style={ - shift={(0,-\RA@baselink@height)} - }, - /robotarm/styles/.cd, - world/.style={pattern=north west lines}, - link/.style={ - draw, - fill=lightgray, - }, - link 0/.style={/robotarm/styles/link}, - /robotarm/annotations/.cd, - spacing/.cd, - a/.initial=3, - q/.initial=1/2, - /robotarm/annotations/.cd, - labels/.cd, - a/.initial=a, - q/.initial=q, -} -\tikzset{ - link style/.style={/robotarm/styles/link}, - world style/.style={/robotarm/styles/world}, -} -\newcommand\robotarmset[1]{% - \pgfkeys{/robotarm/.cd,#1}% -} -\newcommand\robotArmLink[1][]{ - \begingroup - \pgfkeys{/robotarm/link/.cd,#1} - - \pgfkeys{/robotarm/link/draw link} - \pgfkeys{/robotarm/link/draw joint} - \endgroup -} -\newcommand\robotArmEndEffector[1][]{ - \begingroup - \pgfkeys{/robotarm/end effector/.cd,#1} - - \pgfkeys{/robotarm/end effector/draw link} - \pgfkeys{/robotarm/end effector/draw joint} - \pgfkeys{/robotarm/end effector/draw end effector} - - \endgroup -} -\newcommand\robotArmBaseLink[1][]{ - \begingroup - \pgfkeys{/robotarm/base link/.cd,#1} - - \pgfkeys{/robotarm/base link/draw world} - \pgfkeys{/robotarm/base link/draw base link} - \endgroup -} -\newcommand\robotArm[2][]{ - \pgfmathtruncatemacro\RA@robotarm@numlinks{#2} - \def\@tmpkeys{} - \foreach \@link [remember=\@link as \@prevlink (initially 0)] in % - {1,...,\RA@robotarm@numlinks}{ - \xdef\@tmpkeys{\@tmpkeys% - /robotarm/geometry/a\@link/.initial=% - \pgfkeysvalueof{/robotarm/geometry/a},% - /robotarm/geometry/r\@link/.initial=% - \pgfkeysvalueof{/robotarm/geometry/r},% - /robotarm/geometry/w\@link/.initial=% - \pgfkeysvalueof{/robotarm/geometry/w},% - /robotarm/config/q\@link/.initial=% - \pgfkeysvalueof{/robotarm/config/q},% - /robotarm/styles/link \@link/.style={/robotarm/styles/link},% - /robotarm/annotations/labels/a\@link/.initial={% - $\pgfkeysvalueof{/robotarm/annotations/labels/a}_{\@link}$},% - /robotarm/annotations/labels/q\@link/.initial={% - $\pgfkeysvalueof{/robotarm/annotations/labels/q}_{\@link}$},% - /robotarm/annotations/spacing/a\@link/.initial={% - \pgfkeysvalueof{/robotarm/annotations/spacing/a}},% - /robotarm/annotations/spacing/q\@link/.initial={% - \pgfkeysvalueof{/robotarm/annotations/spacing/q}},% - } - } - \expandafter\pgfkeys\expandafter{\@tmpkeys} - \pgfkeys{/robotarm/.cd,#1} - \def\@tmpkeys{} - \foreach \@link [remember=\@link as \@prevlink (initially 0)] in % - {1,...,\RA@robotarm@numlinks}{ - \xdef\@tmpkeys{\@tmpkeys% - /robotarm/frames/in link \@link/.style={% - /robotarm/frames/in link \@prevlink, - /tikz/shift={% - (\pgfkeysvalueof{/robotarm/geometry/a\@prevlink},0)}, - /tikz/rotate={\pgfkeysvalueof{/robotarm/config/q\@link}}, - }, - } - } - \expandafter\pgfkeys\expandafter{\@tmpkeys} - - \begin{scope}[/robotarm/frames/in link 0, - link style/.style={/robotarm/styles/link 0}] - \robotArmBaseLink - \end{scope} - - \foreach\link@num in {1,...,\RA@robotarm@numlinks}{ - \begin{scope}[/robotarm/frames/in link \link@num, - link style/.style={/robotarm/styles/link \link@num}] - - \ifnum\link@num<\RA@robotarm@numlinks - \robotArmLink[ - joint radius=\pgfkeysvalueof{/robotarm/geometry/r\link@num}, - length=\pgfkeysvalueof{/robotarm/geometry/a\link@num}, - width=\pgfkeysvalueof{/robotarm/geometry/w\link@num}, - ] - \else - \robotArmEndEffector[ - joint radius=\pgfkeysvalueof{/robotarm/geometry/r\link@num}, - length=\pgfkeysvalueof{/robotarm/geometry/a\link@num}, - width=\pgfkeysvalueof{/robotarm/geometry/w\link@num}, - ] - \fi - \end{scope} - } - \foreach\link@num in {1,...,\RA@robotarm@numlinks}{ - \begin{scope}[/robotarm/frames/in link \link@num] - \pgfmathsetmacro\link@length{\pgfkeysvalueof{% - /robotarm/geometry/a\link@num}} - \pgfmathsetmacro\link@angle{\pgfkeysvalueof{% - /robotarm/config/q\link@num}} - - \ifRA@robotarm@drawannotations - \pgfmathsetmacro\link@lengthannotspacing{% - \pgfkeysvalueof{/robotarm/annotations/spacing/a\link@num}* - \pgfkeysvalueof{/robotarm/geometry/r\link@num}} - \pgfmathsetmacro\link@angleannotspacing{% - \pgfkeysvalueof{/robotarm/annotations/spacing/q\link@num}* - \link@length} - - % Length annotation help lines - \path[/robotarm/every annotation, - /robotarm/every length annotation, - /robotarm/every length annotation help line] - (0,0) -- (\link@length,0); - \path[/robotarm/every annotation, - /robotarm/every length annotation, - /robotarm/every length annotation help line] - (0,0) -- ++ (0,{\link@lengthannotspacing + - 0.1*sign(\link@lengthannotspacing)}); - \path[/robotarm/every annotation, - /robotarm/every length annotation, - /robotarm/every length annotation help line] - (\link@length,0) -- ++ (0,{\link@lengthannotspacing + - 0.1*sign(\link@lengthannotspacing)}); - \path (0,\link@lengthannotspacing) - -- coordinate[pos=0.5] (coor) ++ (\link@length,0); - \node[/robotarm/every annotation, - /robotarm/every length annotation, - /robotarm/every length annotation node] - at (coor) (tag) - {\pgfkeysvalueof{/robotarm/annotations/labels/a\link@num}}; - \path[/robotarm/every annotation, - /robotarm/every length annotation, - /robotarm/every length annotation arrow] - (tag) -- (0,\link@lengthannotspacing); - \path[/robotarm/every annotation, - /robotarm/every length annotation, - /robotarm/every length annotation arrow] - (tag) -- (\link@length,\link@lengthannotspacing); - - \pgfmathsetmacro\angleannotationcase{% - ifthenelse(\link@angle==0.0, 0, 1)} - \ifnum\angleannotationcase>0 - % Angle annotation help lines - \path[/robotarm/every annotation, - /robotarm/every angle annotation, - /robotarm/every angle annotation help line] - (0,0) -- ++(-\link@angle:{\link@angleannotspacing+0.1}); - \path[/robotarm/every annotation, - /robotarm/every angle annotation, - /robotarm/every angle annotation help line] - (0,0) -- ++(0:{\link@angleannotspacing+0.1}); - - % Angle annotation arrow - \path[/robotarm/every annotation, - /robotarm/every angle annotation, - /robotarm/every angle annotation arrow] - (0,0) ++ (-\link@angle:\link@angleannotspacing) - arc (-\link@angle:0:\link@angleannotspacing); - - % Angle annotation node - \node[/robotarm/every annotation, - /robotarm/every angle annotation, - /robotarm/every angle annotation node] - at (-\link@angle/2:\link@angleannotspacing+0.3) - {\pgfkeysvalueof{/robotarm/annotations/labels/q\link@num}}; - \fi - \fi - \end{scope} - } - \tikzset{ - in link/.style={/robotarm/frames/in link #1}, - in base link/.style={/robotarm/frames/in link 0}, - in end effector/.style={/robotarm/frames/in end effector}, - in world/.style={/robotarm/frames/in world}, - } -} -\makeatother -\endinput -%% -%% End of file `robotarm.sty'. diff --git a/macros/texinfo/latest/texi2dvi b/macros/texinfo/latest/texi2dvi index 241ad6817a..84ddde517c 100644 --- a/macros/texinfo/latest/texi2dvi +++ b/macros/texinfo/latest/texi2dvi @@ -1,7 +1,7 @@ #! /bin/sh # texi2dvi --- produce DVI (or PDF) files from Texinfo (or (La)TeX) sources. # -# Copyright 1992-2021 Free Software Foundation, Inc. +# Copyright 1992-2022 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -74,18 +74,15 @@ newline=' ' IFS="$space$tab$newline" -: ${EGREP=egrep} +: ${EGREP=grep -E} # Systems which define $COMSPEC or $ComSpec use semicolons to separate # directories in TEXINPUTS -- except for Cygwin and Msys, where COMSPEC # might be inherited, but : is used. -# In the case of Msys, uname returns a value derived from MSYSTEM, as -# MSYSTEM is user configurable, it is not so safe to use it to detect -# Msys. It is safer to use OSTYPE, this is why we set MSYSTEM to -# $OSTYPE before calling uname if test -n "$COMSPEC$ComSpec" \ - && MSYSTEM=$OSTYPE uname | $EGREP -iv 'cygwin|msys' >/dev/null; then + && uname | $EGREP -iv 'cygwin|msys' >/dev/null \ + && test "$OSTYPE" != msys ; then path_sep=";" else path_sep=":" @@ -198,9 +195,9 @@ EOF version () { cat < This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. @@ -449,24 +446,6 @@ list_infix () IFS=$save_IFS } -# list_dir_to_abs LIST-NAME - Convert list to using only absolute dir names. -# Currently unused, but should replace absolute_filenames some day. -list_dir_to_abs () -{ - ldta_list="$1" - eval set X \$$ldta_list - shift - ldta_result='' - for dir - do - dir=`absolute "$dir"` - test -d "$dir" || continue - ldta_result="$ldata_result \"$dir\"" - done - set X $ldta_result; shift - eval $ldta_list=\"$@\" -} - # Language auxiliary functions. # @@ -674,24 +653,6 @@ index_file_p () return 0 } -########### not used currently -# xref_file_p FILE - Return success if FILE is an xref file (indexes, -# tables and lists). -xref_file_p () -{ - test -f "$1" || return 1 - # If the file is not suitable to be an index or xref file, don't - # process it. It's suitable if the first character is a - # backslash or right quote or at, as long as the first line isn't - # \input texinfo. - case `$SED '1q' "$1"` in - "\\input texinfo"*) return 1;; - [\\''@]*) return 0;; - *) return 1;; - esac -} - - # Used in generated_files_get generated_files_get_from_log () { diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl index a6b1abb375..dcd0ee2b03 100644 --- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl +++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl @@ -47,7 +47,6 @@ $mirrors = { 'Korea' => { 'http://ftp.ktug.org/tex-archive/' => 1, 'https://cran.asia/tex/' => 1, - 'https://ftp.harukasan.org/CTAN/' => 1, 'https://ftp.kaist.ac.kr/pub/tex-archive/' => 1, 'https://mirror.kakao.com/CTAN/' => 1, 'https://mirror.navercorp.com/CTAN/' => 1, @@ -163,6 +162,7 @@ $mirrors = { }, 'Sweden' => { 'https://ftp.acc.umu.se/mirror/CTAN/' => 1, + 'https://ftpmirror1.infania.net/mirror/CTAN/' => 1, }, 'Switzerland' => { 'https://mirror.foobar.to/CTAN/' => 1, diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb index 7389f73b11..1c6c85f540 100644 --- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb +++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb @@ -26,7 +26,7 @@ depend container_split_src_files/1 depend frozen/0 depend minrelease/2016 depend release/2022 -depend revision/62976 +depend revision/62982 name 00texlive.image category TLCore @@ -4556,7 +4556,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd name 00texlive.installer category TLCore -revision 62973 +revision 62979 shortdesc TeX Live standalone installer package longdesc This package defines the files to go into the installer longdesc archives (install-tl-unx.tar.gz, install-tl.zip) built by the @@ -41216,40 +41216,40 @@ catalogue-version 0.1 name bithesis category Package -revision 61719 +revision 62980 shortdesc Templates for the Beijing Institute of Technology relocated 1 longdesc This package establishes a simple and easy-to-use LaTeX longdesc template for Beijing Institute of Technology dissertations, -longdesc including general undergraduate research papers and master's -longdesc theses. -containersize 4080 -containerchecksum 2b56a95fed5d9e80c7baeb423c7efc6ebacd45218735c18f7840ff1d59b29a7f8c3d5486d5a611f55c2247b2073f93386d84b4a9332a13bb3f080099a11368a1 -doccontainersize 256092 -doccontainerchecksum 6e7976e8bc9f11e0b2d48ee18c49abc9e69e198cde401acc2a9b60c0ddfaeb229148f535651cdc507212f1a6aee091592804fb1fcad478c6ce1a8e9391c1d703 -docfiles size=70 - RELOC/doc/latex/bithesis/README-zh.md details="Readme (Chinese)" language="zh" - RELOC/doc/latex/bithesis/README.md details="Readme (English)" +longdesc including general undergraduate theses and master theses. +containersize 10628 +containerchecksum ba4e2c07db29640ba9f6a9a2d5c5e0a92a39de2e4fa0d5a3523cb8a7144f34d598d312512b161d8a373e33613acbeeb1b72d889e06de8c4ad95bb48fa46459ea +doccontainersize 340396 +doccontainerchecksum 29ef893935f6d47b6a97c542587f07ca8d11a3c82d6a194e525d21bae0ece9a7f1f9cc99889d22d498b0d194de58bd5a5e1ba067364a94e4160c595f1015ec04 +docfiles size=89 + RELOC/doc/latex/bithesis/README.md details="Readme" RELOC/doc/latex/bithesis/bithesis.pdf details="Package documentation" language="zh" RELOC/doc/latex/bithesis/contributing-zh.md RELOC/doc/latex/bithesis/contributing.md RELOC/doc/latex/bithesis/dtx-style.sty -srccontainersize 9920 -srccontainerchecksum 97094be2e5b0910a0c908e7d9567a299ecd569c7eb1c86e8db0f1a5f27fa0e7212735a689400cf468f996319ed299092b7c6e3bb8b6ba08d11c7549734e95f86 -srcfiles size=8 +srccontainersize 16876 +srccontainerchecksum c5254a70ee8d83c91d4fc854121f101c1495a058ec003022360142cb4f35d3b085d88e993bdff8fead930758669e740972ba15e16394baa2c648f79b694e1015 +srcfiles size=15 RELOC/source/latex/bithesis/bithesis.dtx RELOC/source/latex/bithesis/bithesis.ins -runfiles size=4 +runfiles size=11 RELOC/tex/latex/bithesis/bitart.cls RELOC/tex/latex/bithesis/bitbook.cls + RELOC/tex/latex/bithesis/bitgrad.cls catalogue-contact-announce https://github.com/BITNP/BIThesis/releases catalogue-contact-bugs https://github.com/BITNP/BIThesis/issues catalogue-contact-home https://bithesis.bitnp.net catalogue-contact-repository https://github.com/BITNP/BIThesis +catalogue-contact-support https://github.com/BITNP/BIThesis/discussions catalogue-ctan /macros/latex/contrib/bithesis -catalogue-license lppl1.3 +catalogue-license lppl1.3c catalogue-topics class dissertation doc-templ chinese -catalogue-version 1.1.1 +catalogue-version 2.0.0 name bitpattern category Package @@ -144165,28 +144165,28 @@ catalogue-version 0.4a name ifptex category Package -revision 59820 +revision 62982 shortdesc Check if the engine is pTeX or one of its derivatives relocated 1 longdesc The ifptex package is a counterpart of ifxetex, ifluatex, etc. longdesc for the ptex engine. The ifuptex package is an alias to ifptex longdesc provided for backward compatibility. -containersize 3148 -containerchecksum 22d50e2dc21a320d759ffadde2b12f667cdc348096eb590f253dd7479477c995998fc54736eb6f9cbd9e37323fd5ff675cd90c41698b795ba3f7808c1a87237a -doccontainersize 3260 -doccontainerchecksum 70ac1af361369152f3d6b3ecf67007dc1683baab4da92518e4144d9b4c3933169f6643353b4c622b1da6af834e160d95020d5348576784055388d96234e597ef -docfiles size=3 +containersize 4016 +containerchecksum 54f4e4a1077a5f394811a4b0b08818fb17060496c7915c85dc69b55d2adcc7793f4047069b1bd067229bdd945c2e2a35f19b59d048cf242d489ab652813f5cf0 +doccontainersize 3640 +doccontainerchecksum 7e30eb1014032cd8c322ffeab692f1abb325f1890e66b1136da1e88ccfa24aa80b003f785dd899ebe7951123bb7661b6f44ff382a7b296abfac129ea55eca226 +docfiles size=4 RELOC/doc/generic/ifptex/LICENSE RELOC/doc/generic/ifptex/README-ja.md details="Readme (Japanese)" language="ja" RELOC/doc/generic/ifptex/README.md details="Readme" -runfiles size=4 +runfiles size=5 RELOC/tex/generic/ifptex/ifptex.sty RELOC/tex/generic/ifptex/ifuptex.sty catalogue-contact-repository https://github.com/zr-tex8r/ifptex catalogue-ctan /macros/generic/ifptex catalogue-license mit catalogue-topics env-query japanese -catalogue-version 2.1 +catalogue-version 2.2 name ifsym category Package @@ -182342,27 +182342,27 @@ catalogue-version 1.0 name liftarm category Package -revision 62547 +revision 62981 shortdesc Draw liftarms relocated 1 longdesc This package can be used to draw liftarms with TikZ. It longdesc provides several options for the appearance of the liftarms, a longdesc command which connects two liftarms and an environment to longdesc describe a construction. -containersize 2756 -containerchecksum 95c50c7cf7ada87f6fe827a87c93646d590d29d2e2922872eaad286b83b02481e5c3d4ad14da3d2be7bc5cb39caabe614f44ac29632363a570796528efb11c09 -doccontainersize 2775212 -doccontainerchecksum 85c5a4d399e9d5c86dad1070e6741a1157119b8ec0ccf7cb613ba0a0afb6b55719fb1a9fc84aec44b31deccc67ab8c83ceba8f1f7811430461e236a1bd064013 -docfiles size=1006 +containersize 3420 +containerchecksum a4938aa3e9a7c844766c2b6ef5959fda39f4de50325545d64a319a9d7f80ac2b3b5c4966e1db249e83d4cca7b82a3a7a60bff90c5d425f32a2a5c5b55b2fc4e9 +doccontainersize 1861856 +doccontainerchecksum 1d4917e9a032e459ed1922b4d1ed5b525d3cc8799dedb8d435b0a387fb9c529159b620668bf5e737e87c68e434f2c01004d6f6b2100ea2484f179f2105901a73 +docfiles size=497 RELOC/doc/latex/liftarm/README.md details="Readme" RELOC/doc/latex/liftarm/liftarm.pdf details="Package documentation" RELOC/doc/latex/liftarm/liftarm.tex -runfiles size=3 +runfiles size=4 RELOC/tex/latex/liftarm/liftarm.sty catalogue-ctan /graphics/pgf/contrib/liftarm -catalogue-license lppl +catalogue-license lppl1.3 catalogue-topics graphics pgf-tikz -catalogue-version 1.0 +catalogue-version 2.0 name light-latex-make category Package @@ -301209,7 +301209,7 @@ docfiles size=376 name texlive-scripts category TLCore -revision 62973 +revision 62979 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. @@ -301217,10 +301217,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 109812 -containerchecksum be827f989d0808f77bc010b07e0b2be86c2d9f19db5feb558877d9d37c0b716f2653fa43aa0998cc0b43b97b8dc288721af4283cd174b1e6d8c2276610acfd10 -doccontainersize 406064 -doccontainerchecksum daa3395c965bccf94cb218a2807087afa4b519feb2e06f1097e8b0826489bbcfe83d614caf840f37089dcc00dafd96f43a820908883e93d3d57ad8c6402d313a +containersize 109808 +containerchecksum 6d1b59228d31b84299ebfae0849fae52b4c5e17afbcc2d629606fc29d133c3b075de7018016b51e809da82e9630f2d54d6884a43c6b81dae6b47f53f63d1c62e +doccontainersize 406060 +doccontainerchecksum d42c837c2fede3199d616a4e701167ea39605f21e72d95ce297b88bb82c043c7285f1d9862f41795e2167e4215e4ee414ceafecd8919d358bc286d42ea00e419 docfiles size=504 doc.html texmf-dist/doc/man/man1/fmtutil-sys.1 diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 index 05faaf295c..df5dacd122 100644 --- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 @@ -1 +1 @@ -42a189da1fe81c4df25ad7e3408515d5 texlive.tlpdb +eb69d809126004530e2e54d86250e093 texlive.tlpdb diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 index 80fd936f75..40361011be 100644 --- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 @@ -1 +1 @@ -82d2ac4150d60a02feac56ccbd7d0776d3e246f3646e422fc75300d7ef32885320f37f6addb799873ceb666bc177c39d953df2244b89002bb744102ab2210823 texlive.tlpdb +bdee7c1afc0cdd27aa13ef59306169bb3ea20a2388f8be41d8ba5c91cfd26f687d354a1b28050780e6df945e98221e0e14a93b93dd17b5c3e02253685b240246 texlive.tlpdb diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc index 3c23815930..53829b1498 100644 --- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc +++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc @@ -1,10 +1,10 @@ -----BEGIN PGP SIGNATURE----- -iQEcBAEBCgAGBQJiT3mXAAoJEEzhh34ZQ4xwpccIALL891LsWSt0RB5XHh5PYHMx -oJRyvBaR0uto2j2OM5YEkoyp5tH6QXMux0j36Io8AsjAb7VXs0VCvXSX3DUkQhp3 -FQrZsSLIuRKLVqrmo3nAIHV5ayF7f6i8Gt+YwLed9h6/JQJBebUy3oI16szR2aWK -RjNsQ2VRq6lCprVxp/zXz9vwyz6Fp+raTtudpOT/KBpeEnnNFe0/4Mqb81NT7rN4 -wkXnzSsePNnsTjwH0nWk/JeWbp/KdnsV1pHOPewJNhh1fjlQYxaaniJnVmi04z+q -ZvFvRYZobBcBEpIhvOlrvyRCNcXusEZ13D+c+7qS65R5Xt18G6gf7YpHeAbMMhg= -=URob +iQEcBAEBCgAGBQJiUMqTAAoJEEzhh34ZQ4xwhZQH/2efBazERpFQCLaMlsLpXmOv +nktw8XbPKdmrYf71JR5oLs+5YDXJyxjAaVVZ5Is96WmX6gPdUpmvt0BhAp60+f5N +VGU143xpdLxLYljjlV+amxqAjYVUoxb5atS2WjZyc0v5Uep5/roaxYaEEUKzc40F +wfuoFRxlHBeCh/y1EQQyiVIQxwc8sOOt1Y3ORowSvzL95KzmN2tbca/lZAm8Q8zM +TyQiIO13dJTw54Ohi0oLHUw39zPg7MOemaD2Um64W1TdVfEdcXfKHOHmASSNrE/D +KGC3xv44L8Iua6ldGpNZhVW776mRZqLVCL32df/1YGwex/SC1S9TdzT7wgR1v5c= +=Te2i -----END PGP SIGNATURE----- diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz index 6fdad4db01..8f6e875533 100644 Binary files a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz and b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz differ diff --git a/systems/win32/miktex/tm/packages/next/pr.ini b/systems/win32/miktex/tm/packages/next/pr.ini index 3f434b1519..1f7ec4719b 100644 --- a/systems/win32/miktex/tm/packages/next/pr.ini +++ b/systems/win32/miktex/tm/packages/next/pr.ini @@ -1,13 +1,13 @@ [repository] -date=1649362738 +date=1649449048 lastupd=miktex-arctrl-bin-2.9 miktex-arctrl-bin-x64-2.9 miktex-asymptote-bin-2.9 miktex-asymptote-bin-x64-2.9 miktex-autosp-bin-2.9 miktex-autosp-bin-x64-2.9 miktex-axohelp-bin-2.9 miktex-axohelp-bin-x64-2.9 miktex-bibarts-bin-2.9 miktex-bibarts-bin-x64-2.9 miktex-bibtex-bin-2.9 miktex-bibtex-bin-x64-2.9 miktex-bibtex8bit-bin-2.9 miktex-bibtex8bit-bin-x64-2.9 miktex-bzip2-bin-2.9 miktex-bzip2-bin-x64-2.9 miktex-cairo-bin-2.9 miktex-cairo-bin-x64-2.9 miktex-chktex-bin-2.9 miktex-chktex-bin-x64-2.9 -lstdigest=4c4bb58ef7315d7770bd8875bffa6d2a +lstdigest=1c35cdce613cea84bb3bdf478012bfc6 numpkg=5528 relstate=next -version=8132 +version=8133 ;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows. ;;;;-----BEGIN MIKTEX SIGNATURE----- -;;;; signature/miktex: dQmxcpZUQCPxnlyqdF290/uEsigLKilAb/qKeV/DA/87rVH9Y1BIoMTfFqcrmxrdfttZsY8FqiIeTUlgQRUZFW9M2HgB7ECwaE2GBnTAXWfX4Wl3KlMlRzS5k2KuWj0qWRP9WiE6Uk9CvGUslXxYHnm+tEAx9ZQuNoJg8mS+7tMWxSiwDlG5+7q83XTip+SABGHe2mVriYRJ5+LWp3UH6bdQTPCSI3f2nQwhaMvI8EqdmhU99lxxMOrkq5/KOKemPfq6BSwjy/Ee4iPN8V68GHW+Lww4HFcWTEcro97uA38j4uVUYBAoxBPqE7ZtoH8C8J6QYP00s9Z/69KefFJPSw== +;;;; signature/miktex: hAgvu0LkVidpcn9fG/v6UfOkQdlFeWo4jOh7+jFQWvHvx7Ysvi1ZOHPe85USAX5BrDrOlKjS10pE5D1pSdAisZXXiaLXwio7pFGu7XbT3htw4Ema7unFbQzhLnPju4ABaZMNfg7Yul/mLu/lMP8zinK8IkikRGrBwDzkwuGt3yWVrke2Z2PkhortWxAyn1A8BxNN6cHAwrTTVRW8+lVkVAMYOei2qA4QhHPH8QV5WttwcWN4aS+r+w8xv2v46yP0+WV94EcfsxmCpJqJJI27+PSbEPBlI6dnv9njhwzI/grvj6oxoAZsuV+CDJcyQsvxylDdWWliLvgO4AQhASwTLg== ;;;;-----END MIKTEX SIGNATURE----- diff --git a/systems/win32/miktex/tm/packages/pr.ini b/systems/win32/miktex/tm/packages/pr.ini index b1d9adeb7e..0a2c99f3f6 100644 --- a/systems/win32/miktex/tm/packages/pr.ini +++ b/systems/win32/miktex/tm/packages/pr.ini @@ -1,13 +1,13 @@ [repository] -date=1649362297 +date=1649448688 lastupd=acro acro__doc acro__source annotate-equations annotate-equations__doc annotate-equations__source babel-italian babel-italian__doc babel-italian__source beaulivre beaulivre__doc beaulivre__source biblatex-gb7714-2015 biblatex-gb7714-2015__doc biblatex-gb7714-2015__source colorist colorist__doc colorist__source commonunicode commonunicode__doc -lstdigest=cf038024dca4a3d351e5967497448f2a +lstdigest=83892c800646ecda2b214e5df0495ca8 numpkg=5528 relstate=stable -version=8132 +version=8133 ;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows. ;;;;-----BEGIN MIKTEX SIGNATURE----- -;;;; signature/miktex: ujfwfloIe3uX6aUj8QvGKvkdfxoziHN9MALFh4bRuW2dIV7FIPyKKttJGLfDXg1UiJGSL1L+1XyNoauARrqt/SQ6ynJifFWN5rp4GG2aaGYZnOMXK/f9traF4DRq9Jy/zYqN1WSZ+BsbHmn59hxsBY1VhoUnuXah2tIywwRIxMWXTt9EgWotHcAAWUrbOcHj9PQ2l07UNqTJWUo4XSTIg1m2eHZSkBgFDiMuzo8MD4HVm/UhVwVq8xie1nFVVlD1W5HL2BAaTQL2swOIdrxBG8XRePAsj+ezBP6w/h6APk547hDDYtN3xO7vPDUwYmpWaceiM473R/kTFTa/HmOppQ== +;;;; signature/miktex: lo9pwN/JuYs9bdSUKHLwjMvxC3BnoC5B+UD3dc98nonE809VCfebUu400PF0l4b4pP6t43VdZX28zDol9xlymS9sQlauQeYBWq4PRQF/8m0hy1kse7sbjH8VidBzvOTLBaz6K4+MC66bnolEVL8+pTUeIj4tfxEQgqF9HrE0tL94MmZbE8+66ykb1VCpOENeyU/KACXX0ok9su4I5lO9f5zwY3O92lHkLFr66sENbzk7exJd8C23CLmYLHLEeaPr5dpM/66Uojbg/UdWBEiHAI56dgKfiEmPgDdEM0jDRWa/5h4Rtjx7zzblMokp8Ebe+QIOKd1x29xnpwZaiCKo0Q== ;;;;-----END MIKTEX SIGNATURE----- diff --git a/timestamp b/timestamp index 6a57f9d33c..0ee91529a7 100644 --- a/timestamp +++ b/timestamp @@ -2,4 +2,4 @@ # The source CTAN of this site's material: dante.ctan.org # The year-month-day-hour-minute of this site's material: -2022-04-08-02-02 +2022-04-09-02-02 -- cgit v1.2.3