From 11a1186b093ff2ae9478c20979b6eec30f63f32c Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Fri, 14 May 2021 03:01:09 +0000 Subject: CTAN sync 202105140301 --- FILES.byname | 943 ++--- FILES.byname.gz | Bin 2311119 -> 2311344 bytes FILES.last07days | 980 +++-- biblio/bibtex/contrib/vancouver/vancouver.bib | 58 +- biblio/bibtex/contrib/vancouver/vancouver.bst | 9 +- biblio/bibtex/contrib/vancouver/vancouver.pdf | Bin 120699 -> 121265 bytes macros/latex/contrib/bnumexpr/README.md | 9 +- macros/latex/contrib/bnumexpr/bnumexpr.dtx | 277 +- macros/latex/contrib/bnumexpr/bnumexpr.pdf | Bin 88616 -> 96634 bytes macros/latex/contrib/changes/changes.drv | 2 +- macros/latex/contrib/changes/changes.dtx | 5 +- macros/latex/contrib/changes/changes.english.pdf | Bin 368902 -> 368904 bytes .../contrib/changes/changes.english.withcode.pdf | Bin 453200 -> 452979 bytes macros/latex/contrib/changes/changes.ins | 4 +- macros/latex/contrib/changes/changes.ngerman.pdf | Bin 376311 -> 376315 bytes .../examples/changes.example.addedmarkup.bf.pdf | Bin 85486 -> 85486 bytes .../changes.example.addedmarkup.colored.pdf | Bin 82295 -> 82295 bytes .../changes.example.addedmarkup.dashuline.pdf | Bin 82935 -> 82935 bytes .../changes.example.addedmarkup.dotuline.pdf | Bin 82553 -> 82553 bytes .../examples/changes.example.addedmarkup.em.pdf | Bin 83749 -> 83749 bytes .../examples/changes.example.addedmarkup.it.pdf | Bin 83749 -> 83749 bytes .../examples/changes.example.addedmarkup.sl.pdf | Bin 84735 -> 84735 bytes .../examples/changes.example.addedmarkup.uline.pdf | Bin 82746 -> 82746 bytes .../changes.example.addedmarkup.uuline.pdf | Bin 85371 -> 85371 bytes .../examples/changes.example.addedmarkup.uwave.pdf | Bin 84759 -> 84759 bytes .../examples/changes.example.addedmarkup.wrong.pdf | Bin 82295 -> 82295 bytes .../changes.example.authormarkup.brackets.pdf | Bin 74370 -> 74370 bytes .../changes.example.authormarkup.footnote.pdf | Bin 99663 -> 99663 bytes .../examples/changes.example.authormarkup.none.pdf | Bin 73913 -> 73913 bytes .../changes.example.authormarkup.subscript.pdf | Bin 82294 -> 82294 bytes .../changes.example.authormarkup.superscript.pdf | Bin 82295 -> 82295 bytes .../changes.example.authormarkup.wrong.pdf | Bin 82295 -> 82295 bytes .../changes.example.authormarkupposition.left.pdf | Bin 82295 -> 82295 bytes .../changes.example.authormarkupposition.right.pdf | Bin 82295 -> 82295 bytes .../changes.example.authormarkupposition.wrong.pdf | Bin 82295 -> 82295 bytes .../changes.example.authormarkuptext.id.pdf | Bin 82295 -> 82295 bytes .../changes.example.authormarkuptext.name.pdf | Bin 83846 -> 83846 bytes .../changes.example.authormarkuptext.wrong.pdf | Bin 82295 -> 82295 bytes .../changes.example.commandnameprefix.always.pdf | Bin 82295 -> 82295 bytes .../changes.example.commandnameprefix.ifneeded.pdf | Bin 82295 -> 82295 bytes .../changes.example.commandnameprefix.none.pdf | Bin 82295 -> 82295 bytes .../changes.example.commandnameprefix.wrong.pdf | Bin 82295 -> 82295 bytes .../changes.example.commentmarkup.footnote.pdf | Bin 110514 -> 110514 bytes .../changes.example.commentmarkup.margin.pdf | Bin 78953 -> 78953 bytes .../changes.example.commentmarkup.todo.pdf | Bin 82295 -> 82295 bytes .../changes.example.commentmarkup.uwave.pdf | Bin 81965 -> 81965 bytes .../examples/changes.example.defaultcolor.pdf | Bin 82299 -> 82299 bytes .../examples/changes.example.deletedmarkup.bf.pdf | Bin 84982 -> 84982 bytes .../changes.example.deletedmarkup.colored.pdf | Bin 81125 -> 81125 bytes .../changes.example.deletedmarkup.dashuline.pdf | Bin 82590 -> 82590 bytes .../changes.example.deletedmarkup.dotuline.pdf | Bin 81687 -> 81687 bytes .../examples/changes.example.deletedmarkup.em.pdf | Bin 82891 -> 82891 bytes .../examples/changes.example.deletedmarkup.it.pdf | Bin 82891 -> 82891 bytes .../examples/changes.example.deletedmarkup.sl.pdf | Bin 85110 -> 85110 bytes .../changes.example.deletedmarkup.sout.pdf | Bin 82295 -> 82295 bytes .../changes.example.deletedmarkup.uline.pdf | Bin 82291 -> 82291 bytes .../changes.example.deletedmarkup.uuline.pdf | Bin 88402 -> 88402 bytes .../changes.example.deletedmarkup.uwave.pdf | Bin 83877 -> 83877 bytes .../changes.example.deletedmarkup.wrong.pdf | Bin 82295 -> 82295 bytes .../changes.example.deletedmarkup.xout.pdf | Bin 81521 -> 81521 bytes .../changes/examples/changes.example.draft.pdf | Bin 82295 -> 82295 bytes .../changes/examples/changes.example.final.pdf | Bin 68141 -> 68141 bytes .../changes.example.highlightmarkup.background.pdf | Bin 82295 -> 82295 bytes .../changes.example.highlightmarkup.uuline.pdf | Bin 82970 -> 82970 bytes .../changes.example.highlightmarkup.uwave.pdf | Bin 84357 -> 84357 bytes .../examples/changes.example.listofchanges.all.pdf | Bin 88820 -> 88820 bytes ...hanges.example.listofchanges.compactsummary.pdf | Bin 86749 -> 86749 bytes .../changes.example.listofchanges.list.pdf | Bin 84993 -> 84993 bytes .../changes.example.listofchanges.show.pdf | Bin 89121 -> 89121 bytes .../changes.example.listofchanges.summary.pdf | Bin 97975 -> 97975 bytes .../changes.example.listofchanges.title.pdf | Bin 88388 -> 88388 bytes .../changes.example.listofchanges.wrong.pdf | Bin 84993 -> 84993 bytes .../examples/changes.example.markup.bfit.pdf | Bin 86058 -> 86058 bytes .../examples/changes.example.markup.default.pdf | Bin 82295 -> 82295 bytes .../examples/changes.example.markup.nocolor.pdf | Bin 84681 -> 84681 bytes .../examples/changes.example.markup.underlined.pdf | Bin 84812 -> 84812 bytes .../examples/changes.example.markup.wrong.pdf | Bin 82295 -> 82295 bytes .../changes.example.packageoptions.todonotes.pdf | Bin 104166 -> 104166 bytes .../changes.example.packageoptions.truncate.pdf | Bin 83517 -> 83517 bytes .../changes.example.packageoptions.ulem.pdf | Bin 75270 -> 75270 bytes .../changes.example.packageoptions.xcolor.pdf | Bin 84182 -> 84182 bytes .../examples/changes.example.screenshot.pdf | Bin 143191 -> 143191 bytes .../examples/changes.example.setaddedmarkup.pdf | Bin 94860 -> 94860 bytes .../examples/changes.example.setauthormarkup.pdf | Bin 85414 -> 85414 bytes .../changes.example.setauthormarkupposition.pdf | Bin 93585 -> 93585 bytes .../changes.example.setauthormarkuptext.pdf | Bin 94839 -> 94839 bytes .../examples/changes.example.setcommentmarkup.pdf | Bin 94058 -> 94058 bytes .../examples/changes.example.setdeletedmarkup.pdf | Bin 94091 -> 94091 bytes .../changes.example.sethighlightmarkup.pdf | Bin 93929 -> 93929 bytes .../examples/changes.example.setsocextension.pdf | Bin 82295 -> 82295 bytes .../examples/changes.example.setsummarytowidth.pdf | Bin 98926 -> 98926 bytes .../examples/changes.example.setsummarywidth.pdf | Bin 97786 -> 97786 bytes .../examples/changes.example.settruncatewidth.pdf | Bin 96371 -> 96371 bytes .../changes/examples/changes.example.simple.pdf | Bin 92919 -> 92919 bytes macros/latex/contrib/changes/regression.dtx | 187 + macros/latex/contrib/huawei/README.md | 10 +- macros/latex/contrib/huawei/huawei.cls | 250 +- macros/latex/contrib/huawei/huawei.pdf | Bin 362777 -> 362961 bytes macros/latex/contrib/huawei/huawei.tex | 4 +- macros/latex/contrib/tabularray/README | 4 + macros/latex/contrib/tabularray/tabularray.pdf | Bin 0 -> 379316 bytes macros/latex/contrib/tabularray/tabularray.sty | 3897 ++++++++++++++++++++ macros/latex/contrib/tabularray/tabularray.tex | 751 ++++ macros/luatex/optex/pdfextra/LICENSE | 12 + macros/luatex/optex/pdfextra/README.md | 35 + .../pdfextra/examples/pdfextra-example-part.prc | Bin 0 -> 58592 bytes .../optex/pdfextra/examples/pdfextra-example.pdf | Bin 0 -> 385845 bytes .../optex/pdfextra/examples/pdfextra-example.tex | 341 ++ macros/luatex/optex/pdfextra/pdfextra-doc.pdf | Bin 0 -> 230095 bytes macros/luatex/optex/pdfextra/pdfextra-doc.tex | 684 ++++ macros/luatex/optex/pdfextra/pdfextra.opm | 1702 +++++++++ macros/musixtex/README | 2 +- macros/musixtex/doc/ChangeLog-132.txt | 6 + macros/musixtex/doc/musixdoc.pdf | Bin 1374931 -> 1396006 bytes macros/musixtex/doc/musixdoc/beams.tex | 5 + macros/musixtex/doc/musixdoc/extensions.tex | 34 + macros/musixtex/doc/musixdoc/frontmatter.tex | 4 +- macros/musixtex/doc/musixdoc/miscellaneous.tex | 6 +- macros/musixtex/doc/musixdoc/musixdoc.sty | 1 + macros/musixtex/doc/scripts/musixflx.pdf | Bin 4074 -> 9286 bytes macros/musixtex/tex/musixtex.tex | 13 +- macros/musixtex/tex/musixvbm.tex | 211 ++ .../texlive/tlnet/tlpkg/installer/ctan-mirrors.pl | 6 +- systems/texlive/tlnet/tlpkg/texlive.tlpdb | 217 +- 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 2301360 -> 2304488 bytes systems/win32/miktex/tm/packages/next/pr.ini | 8 +- systems/win32/miktex/tm/packages/pr.ini | 8 +- systems/win32/w32tex/ChangeLog | 10 + timestamp | 2 +- 132 files changed, 9377 insertions(+), 1338 deletions(-) create mode 100644 macros/latex/contrib/changes/regression.dtx create mode 100644 macros/latex/contrib/tabularray/README create mode 100644 macros/latex/contrib/tabularray/tabularray.pdf create mode 100644 macros/latex/contrib/tabularray/tabularray.sty create mode 100644 macros/latex/contrib/tabularray/tabularray.tex create mode 100644 macros/luatex/optex/pdfextra/LICENSE create mode 100644 macros/luatex/optex/pdfextra/README.md create mode 100644 macros/luatex/optex/pdfextra/examples/pdfextra-example-part.prc create mode 100644 macros/luatex/optex/pdfextra/examples/pdfextra-example.pdf create mode 100644 macros/luatex/optex/pdfextra/examples/pdfextra-example.tex create mode 100644 macros/luatex/optex/pdfextra/pdfextra-doc.pdf create mode 100644 macros/luatex/optex/pdfextra/pdfextra-doc.tex create mode 100644 macros/luatex/optex/pdfextra/pdfextra.opm create mode 100644 macros/musixtex/doc/ChangeLog-132.txt create mode 100644 macros/musixtex/tex/musixvbm.tex diff --git a/FILES.byname b/FILES.byname index 40fe37b54a..c5ba61a4ec 100644 --- a/FILES.byname +++ b/FILES.byname @@ -981,14 +981,14 @@ 2011/07/04 | 46165 | biblio/bibtex/contrib/vak/test.zip 2011/07/04 | 28692 | biblio/bibtex/contrib/vak/vak.bst 2011/07/04 | 96457 | biblio/bibtex/contrib/vak.zip -2021/05/12 | 1517 | biblio/bibtex/contrib/vancouver/FAQ -2021/05/12 | 19106 | biblio/bibtex/contrib/vancouver/LICENSE -2021/05/12 | 1959 | biblio/bibtex/contrib/vancouver/README -2021/05/12 | 15576 | biblio/bibtex/contrib/vancouver/vancouver.bib -2021/05/12 | 40586 | biblio/bibtex/contrib/vancouver/vancouver.bst -2021/05/12 | 120699 | biblio/bibtex/contrib/vancouver/vancouver.pdf -2021/05/12 | 14056 | biblio/bibtex/contrib/vancouver/vancouver.tex -2021/05/12 | 149134 | biblio/bibtex/contrib/vancouver.zip +2021/05/13 | 1517 | biblio/bibtex/contrib/vancouver/FAQ +2021/05/13 | 19106 | biblio/bibtex/contrib/vancouver/LICENSE +2021/05/13 | 1959 | biblio/bibtex/contrib/vancouver/README +2021/05/13 | 15649 | biblio/bibtex/contrib/vancouver/vancouver.bib +2021/05/13 | 40624 | biblio/bibtex/contrib/vancouver/vancouver.bst +2021/05/13 | 121265 | biblio/bibtex/contrib/vancouver/vancouver.pdf +2021/05/13 | 14056 | biblio/bibtex/contrib/vancouver/vancouver.tex +2021/05/13 | 149732 | biblio/bibtex/contrib/vancouver.zip 2019/03/26 | 292 | biblio/bibtex/contrib/zootaxa-bst/CHANGES.md 2019/03/26 | 114795 | biblio/bibtex/contrib/zootaxa-bst/example.pdf 2019/03/26 | 34489 | biblio/bibtex/contrib/zootaxa-bst/example-refs.bib @@ -5087,7 +5087,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 -2021/05/12 | 110494 | FILES.last07days +2021/05/13 | 111104 | FILES.last07days 2020/08/14 | 104065 | fonts/academicons/academicons.pdf 2020/08/14 | 17247 | fonts/academicons/academicons.sty 2020/08/14 | 6546 | fonts/academicons/academicons.tex @@ -149543,9 +149543,9 @@ 2019/12/12 | 3088 | info/biblio/texnique.ltx 1999/02/20 | 312 | info/biblio/tugbib2.ltx 1999/02/20 | 315 | info/biblio/tugbib.ltx -2020/10/19 | 3682102 | info/biblio/tugboat.bib +2021/05/12 | 3711647 | info/biblio/tugboat.bib 2020/08/07 | 136241 | info/biblio/tugboat.def -2020/10/19 | 3581 | info/biblio/tugboat.ltx +2021/05/12 | 3573 | info/biblio/tugboat.ltx 2014/08/12 | 20186 | info/biblio/type.bib 2019/12/12 | 2025 | info/biblio/type.ltx 2021/03/18 | 1159806 | info/biblio/typeset.bib @@ -173058,7 +173058,7 @@ 2020/10/04 | 211400 | install/macros/luatex/latex/lualatex-math.tds.zip 2010/12/14 | 322044 | install/macros/luatex/latex/luatextra.tds.zip 2018/04/25 | 5009580 | install/macros/luatex/latex/novel.tds.zip -2021/01/07 | 2431861 | install/macros/musixtex.tds.zip +2021/05/13 | 2440587 | install/macros/musixtex.tds.zip 2013/07/02 | 153964 | install/macros/plain/contrib/plstmary.tds.zip 2008/05/18 | 22279 | install/macros/plain/plnfss.tds.zip 2020/02/21 | 1370731 | install/macros/unicodetex/latex/fontspec.tds.zip @@ -193535,10 +193535,10 @@ 2018/01/04 | 229251 | macros/latex/contrib/blowup/blowup.pdf 2018/01/04 | 312 | macros/latex/contrib/blowup/README.md 2018/01/04 | 377299 | macros/latex/contrib/blowup.zip -2021/05/12 | 47892 | macros/latex/contrib/bnumexpr/bnumexpr.dtx -2021/05/12 | 88616 | macros/latex/contrib/bnumexpr/bnumexpr.pdf -2021/05/12 | 3418 | macros/latex/contrib/bnumexpr/README.md -2021/05/12 | 102806 | macros/latex/contrib/bnumexpr.zip +2021/05/13 | 52252 | macros/latex/contrib/bnumexpr/bnumexpr.dtx +2021/05/13 | 96634 | macros/latex/contrib/bnumexpr/bnumexpr.pdf +2021/05/13 | 3037 | macros/latex/contrib/bnumexpr/README.md +2021/05/13 | 111908 | macros/latex/contrib/bnumexpr.zip 2015/06/24 | 421323 | macros/latex/contrib/bohr/bohr_en.pdf 2015/06/24 | 8543 | macros/latex/contrib/bohr/bohr_en.tex 2015/06/24 | 14794 | macros/latex/contrib/bohr/bohr.sty @@ -194425,172 +194425,173 @@ 2009/10/20 | 19377 | macros/latex/contrib/changepage/changepage.tex 2009/10/20 | 2818 | macros/latex/contrib/changepage/README 2009/10/20 | 288034 | macros/latex/contrib/changepage.zip -2021/05/09 | 4932 | macros/latex/contrib/changes/changes.drv -2021/05/09 | 58707 | macros/latex/contrib/changes/changes.dtx -2021/05/09 | 368902 | macros/latex/contrib/changes/changes.english.pdf -2021/05/09 | 453200 | macros/latex/contrib/changes/changes.english.withcode.pdf -2021/05/09 | 10120 | macros/latex/contrib/changes/changes.ins -2021/05/09 | 376311 | macros/latex/contrib/changes/changes.ngerman.pdf -2021/05/09 | 85486 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.bf.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.colored.pdf -2021/05/09 | 82935 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.dashuline.pdf -2021/05/09 | 82553 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.dotuline.pdf -2021/05/09 | 83749 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.em.pdf -2021/05/09 | 83749 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.it.pdf -2021/05/09 | 84735 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.sl.pdf -2021/05/09 | 82746 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.uline.pdf -2021/05/09 | 85371 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.uuline.pdf -2021/05/09 | 84759 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.uwave.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.wrong.pdf -2021/05/09 | 74370 | macros/latex/contrib/changes/examples/changes.example.authormarkup.brackets.pdf -2021/05/09 | 99663 | macros/latex/contrib/changes/examples/changes.example.authormarkup.footnote.pdf -2021/05/09 | 73913 | macros/latex/contrib/changes/examples/changes.example.authormarkup.none.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkupposition.left.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkupposition.right.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkupposition.wrong.pdf -2021/05/09 | 82294 | macros/latex/contrib/changes/examples/changes.example.authormarkup.subscript.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkup.superscript.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkuptext.id.pdf -2021/05/09 | 83846 | macros/latex/contrib/changes/examples/changes.example.authormarkuptext.name.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkuptext.wrong.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkup.wrong.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.commandnameprefix.always.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.commandnameprefix.ifneeded.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.commandnameprefix.none.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.commandnameprefix.wrong.pdf -2021/05/09 | 110514 | macros/latex/contrib/changes/examples/changes.example.commentmarkup.footnote.pdf -2021/05/09 | 78953 | macros/latex/contrib/changes/examples/changes.example.commentmarkup.margin.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.commentmarkup.todo.pdf -2021/05/09 | 81965 | macros/latex/contrib/changes/examples/changes.example.commentmarkup.uwave.pdf -2021/05/09 | 82299 | macros/latex/contrib/changes/examples/changes.example.defaultcolor.pdf -2021/05/09 | 84982 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.bf.pdf -2021/05/09 | 81125 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.colored.pdf -2021/05/09 | 82590 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.dashuline.pdf -2021/05/09 | 81687 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.dotuline.pdf -2021/05/09 | 82891 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.em.pdf -2021/05/09 | 82891 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.it.pdf -2021/05/09 | 85110 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.sl.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.sout.pdf -2021/05/09 | 82291 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uline.pdf -2021/05/09 | 88402 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uuline.pdf -2021/05/09 | 83877 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uwave.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.wrong.pdf -2021/05/09 | 81521 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.xout.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.draft.pdf -2021/05/09 | 68141 | macros/latex/contrib/changes/examples/changes.example.final.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.highlightmarkup.background.pdf -2021/05/09 | 82970 | macros/latex/contrib/changes/examples/changes.example.highlightmarkup.uuline.pdf -2021/05/09 | 84357 | macros/latex/contrib/changes/examples/changes.example.highlightmarkup.uwave.pdf -2021/05/09 | 88820 | macros/latex/contrib/changes/examples/changes.example.listofchanges.all.pdf -2021/05/09 | 86749 | macros/latex/contrib/changes/examples/changes.example.listofchanges.compactsummary.pdf -2021/05/09 | 84993 | macros/latex/contrib/changes/examples/changes.example.listofchanges.list.pdf -2021/05/09 | 89121 | macros/latex/contrib/changes/examples/changes.example.listofchanges.show.pdf -2021/05/09 | 97975 | macros/latex/contrib/changes/examples/changes.example.listofchanges.summary.pdf -2021/05/09 | 88388 | macros/latex/contrib/changes/examples/changes.example.listofchanges.title.pdf -2021/05/09 | 84993 | macros/latex/contrib/changes/examples/changes.example.listofchanges.wrong.pdf -2021/05/09 | 86058 | macros/latex/contrib/changes/examples/changes.example.markup.bfit.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.markup.default.pdf -2021/05/09 | 84681 | macros/latex/contrib/changes/examples/changes.example.markup.nocolor.pdf -2021/05/09 | 84812 | macros/latex/contrib/changes/examples/changes.example.markup.underlined.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.markup.wrong.pdf -2021/05/09 | 104166 | macros/latex/contrib/changes/examples/changes.example.packageoptions.todonotes.pdf -2021/05/09 | 83517 | macros/latex/contrib/changes/examples/changes.example.packageoptions.truncate.pdf -2021/05/09 | 75270 | macros/latex/contrib/changes/examples/changes.example.packageoptions.ulem.pdf -2021/05/09 | 84182 | macros/latex/contrib/changes/examples/changes.example.packageoptions.xcolor.pdf -2021/05/09 | 143191 | macros/latex/contrib/changes/examples/changes.example.screenshot.pdf -2021/05/09 | 94860 | macros/latex/contrib/changes/examples/changes.example.setaddedmarkup.pdf -2021/05/09 | 85414 | macros/latex/contrib/changes/examples/changes.example.setauthormarkup.pdf -2021/05/09 | 93585 | macros/latex/contrib/changes/examples/changes.example.setauthormarkupposition.pdf -2021/05/09 | 94839 | macros/latex/contrib/changes/examples/changes.example.setauthormarkuptext.pdf -2021/05/09 | 94058 | macros/latex/contrib/changes/examples/changes.example.setcommentmarkup.pdf -2021/05/09 | 94091 | macros/latex/contrib/changes/examples/changes.example.setdeletedmarkup.pdf -2021/05/09 | 93929 | macros/latex/contrib/changes/examples/changes.example.sethighlightmarkup.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.setsocextension.pdf -2021/05/09 | 98926 | macros/latex/contrib/changes/examples/changes.example.setsummarytowidth.pdf -2021/05/09 | 97786 | macros/latex/contrib/changes/examples/changes.example.setsummarywidth.pdf -2021/05/09 | 96371 | macros/latex/contrib/changes/examples/changes.example.settruncatewidth.pdf -2021/05/09 | 92919 | macros/latex/contrib/changes/examples/changes.example.simple.pdf -2021/05/09 | 5030 | macros/latex/contrib/changes/example-screenshot.dtx -2021/05/09 | 16628 | macros/latex/contrib/changes/examples.dtx -2021/05/09 | 11043 | macros/latex/contrib/changes/pyMergeChanges.py -2021/05/09 | 1326 | macros/latex/contrib/changes/README -2021/05/09 | 182 | macros/latex/contrib/changes/userdoc/added_ex.tex -2021/05/09 | 47 | macros/latex/contrib/changes/userdoc/added_in.tex -2021/05/09 | 42081 | macros/latex/contrib/changes/userdoc/changes.de.tex -2021/05/09 | 38432 | macros/latex/contrib/changes/userdoc/changes.en.tex -2021/05/09 | 91 | macros/latex/contrib/changes/userdoc/comment_ex.tex -2021/05/09 | 29 | macros/latex/contrib/changes/userdoc/comment_in.tex -2021/05/09 | 174 | macros/latex/contrib/changes/userdoc/definechangesauthor_ex.tex -2021/05/09 | 55 | macros/latex/contrib/changes/userdoc/definechangesauthor_in.tex -2021/05/09 | 177 | macros/latex/contrib/changes/userdoc/deleted_ex.tex -2021/05/09 | 49 | macros/latex/contrib/changes/userdoc/deleted_in.tex -2021/05/09 | 223 | macros/latex/contrib/changes/userdoc/highlight_ex.tex -2021/05/09 | 47 | macros/latex/contrib/changes/userdoc/highlight_in.tex -2021/05/09 | 254 | macros/latex/contrib/changes/userdoc/listofchanges_ex.tex -2021/05/09 | 58 | macros/latex/contrib/changes/userdoc/listofchanges_in.tex -2021/05/09 | 38 | macros/latex/contrib/changes/userdoc/path_doc_examples_in.tex -2021/05/09 | 27 | macros/latex/contrib/changes/userdoc/path_script_in.tex -2021/05/09 | 224 | macros/latex/contrib/changes/userdoc/replaced_ex.tex -2021/05/09 | 62 | macros/latex/contrib/changes/userdoc/replaced_in.tex -2021/05/09 | 25 | macros/latex/contrib/changes/userdoc/script_pymergechanges_empty.tex -2021/05/09 | 229 | macros/latex/contrib/changes/userdoc/script_pymergechanges.tex -2021/05/09 | 52 | macros/latex/contrib/changes/userdoc/setaddedmarkup_ex.tex -2021/05/09 | 30 | macros/latex/contrib/changes/userdoc/setaddedmarkup_in.tex -2021/05/09 | 83 | macros/latex/contrib/changes/userdoc/setauthormarkup_ex.tex -2021/05/09 | 31 | macros/latex/contrib/changes/userdoc/setauthormarkup_in.tex -2021/05/09 | 63 | macros/latex/contrib/changes/userdoc/setauthormarkupposition_ex.tex -2021/05/09 | 49 | macros/latex/contrib/changes/userdoc/setauthormarkupposition_in.tex -2021/05/09 | 52 | macros/latex/contrib/changes/userdoc/setauthormarkuptext_ex.tex -2021/05/09 | 41 | macros/latex/contrib/changes/userdoc/setauthormarkuptext_in.tex -2021/05/09 | 196 | macros/latex/contrib/changes/userdoc/setcommentmarkup_ex.tex -2021/05/09 | 32 | macros/latex/contrib/changes/userdoc/setcommentmarkup_in.tex -2021/05/09 | 56 | macros/latex/contrib/changes/userdoc/setdeletedmarkup_ex.tex -2021/05/09 | 32 | macros/latex/contrib/changes/userdoc/setdeletedmarkup_in.tex -2021/05/09 | 96 | macros/latex/contrib/changes/userdoc/sethighlightmarkup_ex.tex -2021/05/09 | 34 | macros/latex/contrib/changes/userdoc/sethighlightmarkup_in.tex -2021/05/09 | 56 | macros/latex/contrib/changes/userdoc/setlocextension_ex.tex -2021/05/09 | 30 | macros/latex/contrib/changes/userdoc/setlocextension_in.tex -2021/05/09 | 48 | macros/latex/contrib/changes/userdoc/setsocextension_ex.tex -2021/05/09 | 30 | macros/latex/contrib/changes/userdoc/setsocextension_in.tex -2021/05/09 | 104 | macros/latex/contrib/changes/userdoc/setsummarytowidth_ex.tex -2021/05/09 | 27 | macros/latex/contrib/changes/userdoc/setsummarytowidth_in.tex -2021/05/09 | 53 | macros/latex/contrib/changes/userdoc/setsummarywidth_ex.tex -2021/05/09 | 26 | macros/latex/contrib/changes/userdoc/setsummarywidth_in.tex -2021/05/09 | 55 | macros/latex/contrib/changes/userdoc/settruncatewidth_ex.tex -2021/05/09 | 27 | macros/latex/contrib/changes/userdoc/settruncatewidth_in.tex -2021/05/09 | 142 | macros/latex/contrib/changes/userdoc/usepackage_addedmarkup_changes_ex.tex -2021/05/09 | 48 | macros/latex/contrib/changes/userdoc/usepackage_addedmarkup_changes_in.tex -2021/05/09 | 154 | macros/latex/contrib/changes/userdoc/usepackage_authormarkup_changes_ex.tex -2021/05/09 | 50 | macros/latex/contrib/changes/userdoc/usepackage_authormarkup_changes_in.tex -2021/05/09 | 120 | macros/latex/contrib/changes/userdoc/usepackage_authormarkupposition_changes_ex.tex -2021/05/09 | 66 | macros/latex/contrib/changes/userdoc/usepackage_authormarkupposition_changes_in.tex -2021/05/09 | 109 | macros/latex/contrib/changes/userdoc/usepackage_authormarkuptext_changes_ex.tex -2021/05/09 | 58 | macros/latex/contrib/changes/userdoc/usepackage_authormarkuptext_changes_in.tex -2021/05/09 | 21 | macros/latex/contrib/changes/userdoc/usepackage_changes_in.tex -2021/05/09 | 164 | macros/latex/contrib/changes/userdoc/usepackage_commandnameprefix_changes_ex.tex -2021/05/09 | 51 | macros/latex/contrib/changes/userdoc/usepackage_commandnameprefix_changes_in.tex -2021/05/09 | 151 | macros/latex/contrib/changes/userdoc/usepackage_commentmarkup_changes_ex.tex -2021/05/09 | 52 | macros/latex/contrib/changes/userdoc/usepackage_commentmarkup_changes_in.tex -2021/05/09 | 106 | macros/latex/contrib/changes/userdoc/usepackage_defaultcolor_changes_ex.tex -2021/05/09 | 43 | macros/latex/contrib/changes/userdoc/usepackage_defaultcolor_changes_in.tex -2021/05/09 | 147 | macros/latex/contrib/changes/userdoc/usepackage_deletedmarkup_changes_ex.tex -2021/05/09 | 52 | macros/latex/contrib/changes/userdoc/usepackage_deletedmarkup_changes_in.tex -2021/05/09 | 51 | macros/latex/contrib/changes/userdoc/usepackage_draft_changes_in.tex -2021/05/09 | 28 | macros/latex/contrib/changes/userdoc/usepackage_final_changes_in.tex -2021/05/09 | 117 | macros/latex/contrib/changes/userdoc/usepackage_highlightmarkup_changes_ex.tex -2021/05/09 | 56 | macros/latex/contrib/changes/userdoc/usepackage_highlightmarkup_changes_in.tex -2021/05/09 | 171 | macros/latex/contrib/changes/userdoc/usepackage_markup_changes_ex.tex -2021/05/09 | 38 | macros/latex/contrib/changes/userdoc/usepackage_markup_changes_in.tex -2021/05/09 | 32 | macros/latex/contrib/changes/userdoc/usepackage_options_changes_in.tex -2021/05/09 | 48 | macros/latex/contrib/changes/userdoc/usepackage_todonotes_changes_ex.tex -2021/05/09 | 42 | macros/latex/contrib/changes/userdoc/usepackage_todonotes_changes_in.tex -2021/05/09 | 41 | macros/latex/contrib/changes/userdoc/usepackage_truncate_changes_ex.tex -2021/05/09 | 41 | macros/latex/contrib/changes/userdoc/usepackage_truncate_changes_in.tex -2021/05/09 | 82 | macros/latex/contrib/changes/userdoc/usepackage_ulem_changes_ex.tex -2021/05/09 | 37 | macros/latex/contrib/changes/userdoc/usepackage_ulem_changes_in.tex -2021/05/09 | 79 | macros/latex/contrib/changes/userdoc/usepackage_xcolor_changes_ex.tex -2021/05/09 | 39 | macros/latex/contrib/changes/userdoc/usepackage_xcolor_changes_in.tex -2021/05/09 | 7903723 | macros/latex/contrib/changes.zip +2021/05/13 | 4932 | macros/latex/contrib/changes/changes.drv +2021/05/13 | 58808 | macros/latex/contrib/changes/changes.dtx +2021/05/13 | 368904 | macros/latex/contrib/changes/changes.english.pdf +2021/05/13 | 452979 | macros/latex/contrib/changes/changes.english.withcode.pdf +2021/05/13 | 10119 | macros/latex/contrib/changes/changes.ins +2021/05/13 | 376315 | macros/latex/contrib/changes/changes.ngerman.pdf +2021/05/13 | 85486 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.bf.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.colored.pdf +2021/05/13 | 82935 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.dashuline.pdf +2021/05/13 | 82553 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.dotuline.pdf +2021/05/13 | 83749 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.em.pdf +2021/05/13 | 83749 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.it.pdf +2021/05/13 | 84735 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.sl.pdf +2021/05/13 | 82746 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.uline.pdf +2021/05/13 | 85371 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.uuline.pdf +2021/05/13 | 84759 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.uwave.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.wrong.pdf +2021/05/13 | 74370 | macros/latex/contrib/changes/examples/changes.example.authormarkup.brackets.pdf +2021/05/13 | 99663 | macros/latex/contrib/changes/examples/changes.example.authormarkup.footnote.pdf +2021/05/13 | 73913 | macros/latex/contrib/changes/examples/changes.example.authormarkup.none.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkupposition.left.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkupposition.right.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkupposition.wrong.pdf +2021/05/13 | 82294 | macros/latex/contrib/changes/examples/changes.example.authormarkup.subscript.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkup.superscript.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkuptext.id.pdf +2021/05/13 | 83846 | macros/latex/contrib/changes/examples/changes.example.authormarkuptext.name.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkuptext.wrong.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkup.wrong.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.commandnameprefix.always.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.commandnameprefix.ifneeded.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.commandnameprefix.none.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.commandnameprefix.wrong.pdf +2021/05/13 | 110514 | macros/latex/contrib/changes/examples/changes.example.commentmarkup.footnote.pdf +2021/05/13 | 78953 | macros/latex/contrib/changes/examples/changes.example.commentmarkup.margin.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.commentmarkup.todo.pdf +2021/05/13 | 81965 | macros/latex/contrib/changes/examples/changes.example.commentmarkup.uwave.pdf +2021/05/13 | 82299 | macros/latex/contrib/changes/examples/changes.example.defaultcolor.pdf +2021/05/13 | 84982 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.bf.pdf +2021/05/13 | 81125 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.colored.pdf +2021/05/13 | 82590 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.dashuline.pdf +2021/05/13 | 81687 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.dotuline.pdf +2021/05/13 | 82891 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.em.pdf +2021/05/13 | 82891 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.it.pdf +2021/05/13 | 85110 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.sl.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.sout.pdf +2021/05/13 | 82291 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uline.pdf +2021/05/13 | 88402 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uuline.pdf +2021/05/13 | 83877 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uwave.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.wrong.pdf +2021/05/13 | 81521 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.xout.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.draft.pdf +2021/05/13 | 68141 | macros/latex/contrib/changes/examples/changes.example.final.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.highlightmarkup.background.pdf +2021/05/13 | 82970 | macros/latex/contrib/changes/examples/changes.example.highlightmarkup.uuline.pdf +2021/05/13 | 84357 | macros/latex/contrib/changes/examples/changes.example.highlightmarkup.uwave.pdf +2021/05/13 | 88820 | macros/latex/contrib/changes/examples/changes.example.listofchanges.all.pdf +2021/05/13 | 86749 | macros/latex/contrib/changes/examples/changes.example.listofchanges.compactsummary.pdf +2021/05/13 | 84993 | macros/latex/contrib/changes/examples/changes.example.listofchanges.list.pdf +2021/05/13 | 89121 | macros/latex/contrib/changes/examples/changes.example.listofchanges.show.pdf +2021/05/13 | 97975 | macros/latex/contrib/changes/examples/changes.example.listofchanges.summary.pdf +2021/05/13 | 88388 | macros/latex/contrib/changes/examples/changes.example.listofchanges.title.pdf +2021/05/13 | 84993 | macros/latex/contrib/changes/examples/changes.example.listofchanges.wrong.pdf +2021/05/13 | 86058 | macros/latex/contrib/changes/examples/changes.example.markup.bfit.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.markup.default.pdf +2021/05/13 | 84681 | macros/latex/contrib/changes/examples/changes.example.markup.nocolor.pdf +2021/05/13 | 84812 | macros/latex/contrib/changes/examples/changes.example.markup.underlined.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.markup.wrong.pdf +2021/05/13 | 104166 | macros/latex/contrib/changes/examples/changes.example.packageoptions.todonotes.pdf +2021/05/13 | 83517 | macros/latex/contrib/changes/examples/changes.example.packageoptions.truncate.pdf +2021/05/13 | 75270 | macros/latex/contrib/changes/examples/changes.example.packageoptions.ulem.pdf +2021/05/13 | 84182 | macros/latex/contrib/changes/examples/changes.example.packageoptions.xcolor.pdf +2021/05/13 | 143191 | macros/latex/contrib/changes/examples/changes.example.screenshot.pdf +2021/05/13 | 94860 | macros/latex/contrib/changes/examples/changes.example.setaddedmarkup.pdf +2021/05/13 | 85414 | macros/latex/contrib/changes/examples/changes.example.setauthormarkup.pdf +2021/05/13 | 93585 | macros/latex/contrib/changes/examples/changes.example.setauthormarkupposition.pdf +2021/05/13 | 94839 | macros/latex/contrib/changes/examples/changes.example.setauthormarkuptext.pdf +2021/05/13 | 94058 | macros/latex/contrib/changes/examples/changes.example.setcommentmarkup.pdf +2021/05/13 | 94091 | macros/latex/contrib/changes/examples/changes.example.setdeletedmarkup.pdf +2021/05/13 | 93929 | macros/latex/contrib/changes/examples/changes.example.sethighlightmarkup.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.setsocextension.pdf +2021/05/13 | 98926 | macros/latex/contrib/changes/examples/changes.example.setsummarytowidth.pdf +2021/05/13 | 97786 | macros/latex/contrib/changes/examples/changes.example.setsummarywidth.pdf +2021/05/13 | 96371 | macros/latex/contrib/changes/examples/changes.example.settruncatewidth.pdf +2021/05/13 | 92919 | macros/latex/contrib/changes/examples/changes.example.simple.pdf +2021/05/13 | 5030 | macros/latex/contrib/changes/example-screenshot.dtx +2021/05/13 | 16628 | macros/latex/contrib/changes/examples.dtx +2021/05/13 | 11043 | macros/latex/contrib/changes/pyMergeChanges.py +2021/05/13 | 1326 | macros/latex/contrib/changes/README +2021/05/13 | 5264 | macros/latex/contrib/changes/regression.dtx +2021/05/13 | 182 | macros/latex/contrib/changes/userdoc/added_ex.tex +2021/05/13 | 47 | macros/latex/contrib/changes/userdoc/added_in.tex +2021/05/13 | 42081 | macros/latex/contrib/changes/userdoc/changes.de.tex +2021/05/13 | 38432 | macros/latex/contrib/changes/userdoc/changes.en.tex +2021/05/13 | 91 | macros/latex/contrib/changes/userdoc/comment_ex.tex +2021/05/13 | 29 | macros/latex/contrib/changes/userdoc/comment_in.tex +2021/05/13 | 174 | macros/latex/contrib/changes/userdoc/definechangesauthor_ex.tex +2021/05/13 | 55 | macros/latex/contrib/changes/userdoc/definechangesauthor_in.tex +2021/05/13 | 177 | macros/latex/contrib/changes/userdoc/deleted_ex.tex +2021/05/13 | 49 | macros/latex/contrib/changes/userdoc/deleted_in.tex +2021/05/13 | 223 | macros/latex/contrib/changes/userdoc/highlight_ex.tex +2021/05/13 | 47 | macros/latex/contrib/changes/userdoc/highlight_in.tex +2021/05/13 | 254 | macros/latex/contrib/changes/userdoc/listofchanges_ex.tex +2021/05/13 | 58 | macros/latex/contrib/changes/userdoc/listofchanges_in.tex +2021/05/13 | 38 | macros/latex/contrib/changes/userdoc/path_doc_examples_in.tex +2021/05/13 | 27 | macros/latex/contrib/changes/userdoc/path_script_in.tex +2021/05/13 | 224 | macros/latex/contrib/changes/userdoc/replaced_ex.tex +2021/05/13 | 62 | macros/latex/contrib/changes/userdoc/replaced_in.tex +2021/05/13 | 25 | macros/latex/contrib/changes/userdoc/script_pymergechanges_empty.tex +2021/05/13 | 229 | macros/latex/contrib/changes/userdoc/script_pymergechanges.tex +2021/05/13 | 52 | macros/latex/contrib/changes/userdoc/setaddedmarkup_ex.tex +2021/05/13 | 30 | macros/latex/contrib/changes/userdoc/setaddedmarkup_in.tex +2021/05/13 | 83 | macros/latex/contrib/changes/userdoc/setauthormarkup_ex.tex +2021/05/13 | 31 | macros/latex/contrib/changes/userdoc/setauthormarkup_in.tex +2021/05/13 | 63 | macros/latex/contrib/changes/userdoc/setauthormarkupposition_ex.tex +2021/05/13 | 49 | macros/latex/contrib/changes/userdoc/setauthormarkupposition_in.tex +2021/05/13 | 52 | macros/latex/contrib/changes/userdoc/setauthormarkuptext_ex.tex +2021/05/13 | 41 | macros/latex/contrib/changes/userdoc/setauthormarkuptext_in.tex +2021/05/13 | 196 | macros/latex/contrib/changes/userdoc/setcommentmarkup_ex.tex +2021/05/13 | 32 | macros/latex/contrib/changes/userdoc/setcommentmarkup_in.tex +2021/05/13 | 56 | macros/latex/contrib/changes/userdoc/setdeletedmarkup_ex.tex +2021/05/13 | 32 | macros/latex/contrib/changes/userdoc/setdeletedmarkup_in.tex +2021/05/13 | 96 | macros/latex/contrib/changes/userdoc/sethighlightmarkup_ex.tex +2021/05/13 | 34 | macros/latex/contrib/changes/userdoc/sethighlightmarkup_in.tex +2021/05/13 | 56 | macros/latex/contrib/changes/userdoc/setlocextension_ex.tex +2021/05/13 | 30 | macros/latex/contrib/changes/userdoc/setlocextension_in.tex +2021/05/13 | 48 | macros/latex/contrib/changes/userdoc/setsocextension_ex.tex +2021/05/13 | 30 | macros/latex/contrib/changes/userdoc/setsocextension_in.tex +2021/05/13 | 104 | macros/latex/contrib/changes/userdoc/setsummarytowidth_ex.tex +2021/05/13 | 27 | macros/latex/contrib/changes/userdoc/setsummarytowidth_in.tex +2021/05/13 | 53 | macros/latex/contrib/changes/userdoc/setsummarywidth_ex.tex +2021/05/13 | 26 | macros/latex/contrib/changes/userdoc/setsummarywidth_in.tex +2021/05/13 | 55 | macros/latex/contrib/changes/userdoc/settruncatewidth_ex.tex +2021/05/13 | 27 | macros/latex/contrib/changes/userdoc/settruncatewidth_in.tex +2021/05/13 | 142 | macros/latex/contrib/changes/userdoc/usepackage_addedmarkup_changes_ex.tex +2021/05/13 | 48 | macros/latex/contrib/changes/userdoc/usepackage_addedmarkup_changes_in.tex +2021/05/13 | 154 | macros/latex/contrib/changes/userdoc/usepackage_authormarkup_changes_ex.tex +2021/05/13 | 50 | macros/latex/contrib/changes/userdoc/usepackage_authormarkup_changes_in.tex +2021/05/13 | 120 | macros/latex/contrib/changes/userdoc/usepackage_authormarkupposition_changes_ex.tex +2021/05/13 | 66 | macros/latex/contrib/changes/userdoc/usepackage_authormarkupposition_changes_in.tex +2021/05/13 | 109 | macros/latex/contrib/changes/userdoc/usepackage_authormarkuptext_changes_ex.tex +2021/05/13 | 58 | macros/latex/contrib/changes/userdoc/usepackage_authormarkuptext_changes_in.tex +2021/05/13 | 21 | macros/latex/contrib/changes/userdoc/usepackage_changes_in.tex +2021/05/13 | 164 | macros/latex/contrib/changes/userdoc/usepackage_commandnameprefix_changes_ex.tex +2021/05/13 | 51 | macros/latex/contrib/changes/userdoc/usepackage_commandnameprefix_changes_in.tex +2021/05/13 | 151 | macros/latex/contrib/changes/userdoc/usepackage_commentmarkup_changes_ex.tex +2021/05/13 | 52 | macros/latex/contrib/changes/userdoc/usepackage_commentmarkup_changes_in.tex +2021/05/13 | 106 | macros/latex/contrib/changes/userdoc/usepackage_defaultcolor_changes_ex.tex +2021/05/13 | 43 | macros/latex/contrib/changes/userdoc/usepackage_defaultcolor_changes_in.tex +2021/05/13 | 147 | macros/latex/contrib/changes/userdoc/usepackage_deletedmarkup_changes_ex.tex +2021/05/13 | 52 | macros/latex/contrib/changes/userdoc/usepackage_deletedmarkup_changes_in.tex +2021/05/13 | 51 | macros/latex/contrib/changes/userdoc/usepackage_draft_changes_in.tex +2021/05/13 | 28 | macros/latex/contrib/changes/userdoc/usepackage_final_changes_in.tex +2021/05/13 | 117 | macros/latex/contrib/changes/userdoc/usepackage_highlightmarkup_changes_ex.tex +2021/05/13 | 56 | macros/latex/contrib/changes/userdoc/usepackage_highlightmarkup_changes_in.tex +2021/05/13 | 171 | macros/latex/contrib/changes/userdoc/usepackage_markup_changes_ex.tex +2021/05/13 | 38 | macros/latex/contrib/changes/userdoc/usepackage_markup_changes_in.tex +2021/05/13 | 32 | macros/latex/contrib/changes/userdoc/usepackage_options_changes_in.tex +2021/05/13 | 48 | macros/latex/contrib/changes/userdoc/usepackage_todonotes_changes_ex.tex +2021/05/13 | 42 | macros/latex/contrib/changes/userdoc/usepackage_todonotes_changes_in.tex +2021/05/13 | 41 | macros/latex/contrib/changes/userdoc/usepackage_truncate_changes_ex.tex +2021/05/13 | 41 | macros/latex/contrib/changes/userdoc/usepackage_truncate_changes_in.tex +2021/05/13 | 82 | macros/latex/contrib/changes/userdoc/usepackage_ulem_changes_ex.tex +2021/05/13 | 37 | macros/latex/contrib/changes/userdoc/usepackage_ulem_changes_in.tex +2021/05/13 | 79 | macros/latex/contrib/changes/userdoc/usepackage_xcolor_changes_ex.tex +2021/05/13 | 39 | macros/latex/contrib/changes/userdoc/usepackage_xcolor_changes_in.tex +2021/05/13 | 7905248 | macros/latex/contrib/changes.zip 2006/05/09 | 17353 | macros/latex/contrib/chappg/chappg.dtx 2006/04/24 | 582 | macros/latex/contrib/chappg/chappg.ins 2006/05/09 | 205179 | macros/latex/contrib/chappg/chappg.pdf @@ -201857,11 +201858,11 @@ 2011/04/29 | 319943 | macros/latex/contrib/hrefhide/hrefhide.pdf 2011/04/29 | 4295 | macros/latex/contrib/hrefhide/README 2011/04/29 | 441688 | macros/latex/contrib/hrefhide.zip -2021/04/17 | 15831 | macros/latex/contrib/huawei/huawei.cls -2021/04/17 | 362777 | macros/latex/contrib/huawei/huawei.pdf -2021/04/17 | 6717 | macros/latex/contrib/huawei/huawei.tex -2021/04/17 | 1112 | macros/latex/contrib/huawei/README.md -2021/04/18 | 371932 | macros/latex/contrib/huawei.zip +2021/05/13 | 16393 | macros/latex/contrib/huawei/huawei.cls +2021/05/13 | 362961 | macros/latex/contrib/huawei/huawei.pdf +2021/05/13 | 6749 | macros/latex/contrib/huawei/huawei.tex +2021/05/13 | 1208 | macros/latex/contrib/huawei/README.md +2021/05/13 | 372353 | macros/latex/contrib/huawei.zip 2020/11/03 | 174943 | macros/latex/contrib/hulipsum/hulipsum.dtx 2020/11/01 | 1704 | macros/latex/contrib/hulipsum/hulipsum.ins 2020/11/03 | 145394 | macros/latex/contrib/hulipsum/hulipsum.pdf @@ -213176,6 +213177,11 @@ 2009/05/20 | 159 | macros/latex/contrib/tabularew/tabularew.ins 2009/06/01 | 170381 | macros/latex/contrib/tabularew/tabularew.pdf 2009/06/01 | 150930 | macros/latex/contrib/tabularew.zip +2021/03/29 | 179 | macros/latex/contrib/tabularray/README +2021/05/13 | 379316 | macros/latex/contrib/tabularray/tabularray.pdf +2021/05/13 | 134990 | macros/latex/contrib/tabularray/tabularray.sty +2021/05/13 | 21526 | macros/latex/contrib/tabularray/tabularray.tex +2021/05/13 | 351179 | macros/latex/contrib/tabularray.zip 2005/10/21 | 169 | macros/latex/contrib/tabulary/README 2014/06/21 | 29652 | macros/latex/contrib/tabulary/tabulary.dtx 2003/11/26 | 156 | macros/latex/contrib/tabulary/tabulary.ins @@ -223497,6 +223503,15 @@ 2017/10/17 | 704910 | macros/luatex/latex/wallcalendar/wallcalendar-layouts.png 2017/10/17 | 2896302 | macros/luatex/latex/wallcalendar/wallcalendar.pdf 2017/10/21 | 9209120 | macros/luatex/latex/wallcalendar.zip +2021/05/13 | 58592 | macros/luatex/optex/pdfextra/examples/pdfextra-example-part.prc +2021/05/13 | 385845 | macros/luatex/optex/pdfextra/examples/pdfextra-example.pdf +2021/05/13 | 9443 | macros/luatex/optex/pdfextra/examples/pdfextra-example.tex +2021/05/13 | 662 | macros/luatex/optex/pdfextra/LICENSE +2021/05/13 | 230095 | macros/luatex/optex/pdfextra/pdfextra-doc.pdf +2021/05/13 | 30555 | macros/luatex/optex/pdfextra/pdfextra-doc.tex +2021/05/13 | 68210 | macros/luatex/optex/pdfextra/pdfextra.opm +2021/05/13 | 868 | macros/luatex/optex/pdfextra/README.md +2021/05/13 | 692076 | macros/luatex/optex/pdfextra.zip 1993/02/12 | 2330 | macros/mathematica/CHANGES 1993/02/12 | 7699 | macros/mathematica/README 1993/02/12 | 40574 | macros/mathematica/tex-mma-j.ps.gz @@ -223607,6 +223622,7 @@ 2018/08/04 | 159 | macros/musixtex/doc/ChangeLog-129.txt 2020/03/20 | 111 | macros/musixtex/doc/ChangeLog-130.txt 2021/01/07 | 82 | macros/musixtex/doc/ChangeLog-131.txt +2021/05/13 | 190 | macros/musixtex/doc/ChangeLog-132.txt 2017/07/25 | 861 | macros/musixtex/doc/ChangeLog-musixdoc.txt 2017/07/25 | 16264 | macros/musixtex/doc/examples/adagio.tex 2017/07/25 | 25036 | macros/musixtex/doc/examples/albinoni.tex @@ -223690,25 +223706,25 @@ 2017/07/25 | 3193 | macros/musixtex/doc/musixdoc/accidentals.tex 2020/10/12 | 10421 | macros/musixtex/doc/musixdoc/barlines.tex 2017/07/25 | 4562 | macros/musixtex/doc/musixdoc/barnumbering.tex -2020/01/27 | 22693 | macros/musixtex/doc/musixdoc/beams.tex +2021/05/13 | 22962 | macros/musixtex/doc/musixdoc/beams.tex 2017/07/25 | 19225 | macros/musixtex/doc/musixdoc/changing.tex 2017/07/25 | 9512 | macros/musixtex/doc/musixdoc/embedding.tex 2017/07/25 | 5752 | macros/musixtex/doc/musixdoc/examples.tex -2017/07/25 | 66865 | macros/musixtex/doc/musixdoc/extensions.tex +2021/05/13 | 67938 | macros/musixtex/doc/musixdoc/extensions.tex 2017/07/25 | 4087 | macros/musixtex/doc/musixdoc/extracting.tex 2017/07/25 | 11619 | macros/musixtex/doc/musixdoc/fonts.tex -2021/01/07 | 5450 | macros/musixtex/doc/musixdoc/frontmatter.tex +2021/05/13 | 5450 | macros/musixtex/doc/musixdoc/frontmatter.tex 2017/07/25 | 274 | macros/musixtex/doc/musixdoc/index.tex 2017/07/25 | 36757 | macros/musixtex/doc/musixdoc/introduction.tex 2020/10/13 | 9181 | macros/musixtex/doc/musixdoc/layout.tex 2017/07/25 | 17525 | macros/musixtex/doc/musixdoc/lyrics.tex -2019/07/01 | 36040 | macros/musixtex/doc/musixdoc/miscellaneous.tex -2019/05/21 | 1978 | macros/musixtex/doc/musixdoc/musixdoc.ltx -2020/02/12 | 4778 | macros/musixtex/doc/musixdoc/musixdoc.sty +2021/02/23 | 35996 | macros/musixtex/doc/musixdoc/miscellaneous.tex +2021/05/13 | 1978 | macros/musixtex/doc/musixdoc/musixdoc.ltx +2021/05/13 | 4828 | macros/musixtex/doc/musixdoc/musixdoc.sty 2019/05/01 | 10935 | macros/musixtex/doc/musixdoc/parameters.tex -2021/01/07 | 1374931 | macros/musixtex/doc/musixdoc.pdf +2021/05/13 | 1396006 | macros/musixtex/doc/musixdoc.pdf 2017/12/25 | 12902 | macros/musixtex/doc/musixdoc/preparing.tex -2020/10/12 | 8283 | macros/musixtex/doc/musixdoc/repeats.tex +2021/01/20 | 8283 | macros/musixtex/doc/musixdoc/repeats.tex 2020/04/17 | 7254 | macros/musixtex/doc/musixdoc/restsdoc.tex 2018/05/21 | 15269 | macros/musixtex/doc/musixdoc/settingup.tex 2018/07/09 | 22657 | macros/musixtex/doc/musixdoc/slurstiesfont.tex @@ -223738,7 +223754,7 @@ 2017/07/25 | 1964 | macros/musixtex/doc/psslurs/slurs.tex 2017/07/25 | 85655 | macros/musixtex/doc/reference/musixre1.pdf 2018/06/16 | 1157 | macros/musixtex/doc/scripts/musixflx.1 -2017/06/13 | 4074 | macros/musixtex/doc/scripts/musixflx.pdf +2021/04/25 | 9286 | macros/musixtex/doc/scripts/musixflx.pdf 2020/05/21 | 4590 | macros/musixtex/doc/scripts/musixtex.1 2020/05/21 | 23518 | macros/musixtex/doc/scripts/musixtex.pdf 2017/07/25 | 7434 | macros/musixtex/dvips/psslurs.pro @@ -223747,7 +223763,7 @@ 2017/07/25 | 30 | macros/musixtex/latex/musixfll.sty 2017/07/25 | 1199 | macros/musixtex/latex/musixltx.tex 2017/07/25 | 42 | macros/musixtex/latex/musixtex.sty -2021/01/07 | 3067 | macros/musixtex/README +2021/05/13 | 3067 | macros/musixtex/README 2019/05/19 | 34855 | macros/musixtex/scripts/musixflx.lua 2020/08/14 | 19915 | macros/musixtex/scripts/musixtex.lua 2017/07/25 | 863 | macros/musixtex/source/doc.tex @@ -223794,13 +223810,14 @@ 2017/07/25 | 621 | macros/musixtex/tex/musixstf.tex 2017/07/25 | 1505 | macros/musixtex/tex/musixstr.tex 2019/01/15 | 13876 | macros/musixtex/tex/musixsty.tex -2021/01/07 | 188901 | macros/musixtex/tex/musixtex.tex +2021/05/13 | 189067 | macros/musixtex/tex/musixtex.tex 2017/07/25 | 5379 | macros/musixtex/tex/musixtmr.tex 2017/07/25 | 2071 | macros/musixtex/tex/musixtri.tex +2021/05/13 | 5963 | macros/musixtex/tex/musixvbm.tex 2017/07/25 | 946 | macros/musixtex/tex/tuplet.tex 2017/07/25 | 254 | macros/musixtex/windows/musixflx.bat 2020/03/20 | 265 | macros/musixtex/windows/musixtex.bat -2021/01/07 | 2416042 | macros/musixtex.zip +2021/05/13 | 2424633 | macros/musixtex.zip 2016/01/31 | 1043 | macros/musixtnt/doc/msxlint.1 2016/01/31 | 4148 | macros/musixtnt/doc/msxlint.pdf 2016/01/31 | 3604 | macros/musixtnt/doc/TransformNotes.3 @@ -267051,6 +267068,8 @@ 2019/07/13 | 4596 | systems/texlive/tlnet/archive/codeanatomy.source.r51627.tar.xz 2019/02/28 | 377460 | systems/texlive/tlnet/archive/codedoc.doc.r17630.tar.xz 2019/02/28 | 10108 | systems/texlive/tlnet/archive/codedoc.r17630.tar.xz +2021/05/13 | 84052 | systems/texlive/tlnet/archive/codehigh.doc.r59173.tar.xz +2021/05/13 | 5128 | systems/texlive/tlnet/archive/codehigh.r59173.tar.xz 2019/06/29 | 257084 | systems/texlive/tlnet/archive/codepage.doc.r51502.tar.xz 2019/06/29 | 10952 | systems/texlive/tlnet/archive/codepage.r51502.tar.xz 2019/06/29 | 24136 | systems/texlive/tlnet/archive/codepage.source.r51502.tar.xz @@ -267097,7 +267116,7 @@ 2020/03/04 | 408 | systems/texlive/tlnet/archive/collection-langpolish.r54074.tar.xz 2020/03/04 | 392 | systems/texlive/tlnet/archive/collection-langportuguese.r54074.tar.xz 2020/03/07 | 380 | systems/texlive/tlnet/archive/collection-langspanish.r54141.tar.xz -2021/04/28 | 6332 | systems/texlive/tlnet/archive/collection-latexextra.r59009.tar.xz +2021/05/13 | 6344 | systems/texlive/tlnet/archive/collection-latexextra.r59173.tar.xz 2020/12/03 | 696 | systems/texlive/tlnet/archive/collection-latex.r57048.tar.xz 2021/02/24 | 772 | systems/texlive/tlnet/archive/collection-latexrecommended.r57862.tar.xz 2021/03/05 | 716 | systems/texlive/tlnet/archive/collection-luatex.r58124.tar.xz @@ -268425,9 +268444,9 @@ 2021/01/25 | 1828 | systems/texlive/tlnet/archive/ean13isbn.r57514.tar.xz 2019/02/28 | 948 | systems/texlive/tlnet/archive/ean.doc.r20851.tar.xz 2019/02/28 | 3148 | systems/texlive/tlnet/archive/ean.r20851.tar.xz -2021/05/12 | 305016 | systems/texlive/tlnet/archive/easybook.doc.r59166.tar.xz -2021/05/12 | 12924 | systems/texlive/tlnet/archive/easybook.r59166.tar.xz -2021/05/12 | 28488 | systems/texlive/tlnet/archive/easybook.source.r59166.tar.xz +2021/05/13 | 307908 | systems/texlive/tlnet/archive/easybook.doc.r59174.tar.xz +2021/05/13 | 13360 | systems/texlive/tlnet/archive/easybook.r59174.tar.xz +2021/05/13 | 29248 | systems/texlive/tlnet/archive/easybook.source.r59174.tar.xz 2019/02/28 | 4540 | systems/texlive/tlnet/archive/easy.doc.r19440.tar.xz 2020/09/08 | 175976 | systems/texlive/tlnet/archive/easyfig.doc.r56291.tar.xz 2020/09/08 | 1936 | systems/texlive/tlnet/archive/easyfig.r56291.tar.xz @@ -268600,8 +268619,8 @@ 2020/11/25 | 807964 | systems/texlive/tlnet/archive/elsarticle.doc.r56999.tar.xz 2020/11/25 | 18868 | systems/texlive/tlnet/archive/elsarticle.r56999.tar.xz 2020/11/25 | 10880 | systems/texlive/tlnet/archive/elsarticle.source.r56999.tar.xz -2020/03/15 | 547260 | systems/texlive/tlnet/archive/els-cas-templates.doc.r54317.tar.xz -2020/03/15 | 20152 | systems/texlive/tlnet/archive/els-cas-templates.r54317.tar.xz +2021/05/13 | 367564 | systems/texlive/tlnet/archive/els-cas-templates.doc.r59170.tar.xz +2021/05/13 | 21152 | systems/texlive/tlnet/archive/els-cas-templates.r59170.tar.xz 2020/07/25 | 951476 | systems/texlive/tlnet/archive/elteikthesis.doc.r55928.tar.xz 2020/07/25 | 5624 | systems/texlive/tlnet/archive/elteikthesis.r55928.tar.xz 2019/02/28 | 176308 | systems/texlive/tlnet/archive/eltex.doc.r15878.tar.xz @@ -271953,9 +271972,9 @@ 2019/02/28 | 5636 | systems/texlive/tlnet/archive/manuscript.source.r36110.tar.xz 2019/02/28 | 157580 | systems/texlive/tlnet/archive/manyind.doc.r49874.tar.xz 2019/02/28 | 2900 | systems/texlive/tlnet/archive/manyind.r49874.tar.xz -2021/04/06 | 189576 | systems/texlive/tlnet/archive/marathi.doc.r58760.tar.xz -2021/04/06 | 5244 | systems/texlive/tlnet/archive/marathi.r58760.tar.xz -2021/04/06 | 17656 | systems/texlive/tlnet/archive/marathi.source.r58760.tar.xz +2021/05/13 | 150336 | systems/texlive/tlnet/archive/marathi.doc.r59172.tar.xz +2021/05/13 | 5268 | systems/texlive/tlnet/archive/marathi.r59172.tar.xz +2021/05/13 | 17760 | systems/texlive/tlnet/archive/marathi.source.r59172.tar.xz 2020/08/02 | 19864 | systems/texlive/tlnet/archive/marcellus.doc.r56016.tar.xz 2020/08/02 | 178120 | systems/texlive/tlnet/archive/marcellus.r56016.tar.xz 2019/02/28 | 188416 | systems/texlive/tlnet/archive/margbib.doc.r15878.tar.xz @@ -276012,7 +276031,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 -2021/05/12 | 396960 | systems/texlive/tlnet/archive/texlive-scripts.doc.r59164.tar.xz +2021/05/13 | 396960 | systems/texlive/tlnet/archive/texlive-scripts.doc.r59168.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 @@ -276036,7 +276055,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 -2021/05/12 | 107992 | systems/texlive/tlnet/archive/texlive-scripts.r59164.tar.xz +2021/05/13 | 107980 | systems/texlive/tlnet/archive/texlive-scripts.r59168.tar.xz 2021/02/25 | 572 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r57908.tar.xz 2021/04/12 | 36308 | systems/texlive/tlnet/archive/texlive-scripts.win32.r58829.tar.xz 2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r55172.tar.xz @@ -276922,9 +276941,9 @@ 2019/02/28 | 2836 | systems/texlive/tlnet/archive/uni-wtal-lin.r31409.tar.xz 2019/07/16 | 31784 | systems/texlive/tlnet/archive/unizgklasa.doc.r51647.tar.xz 2019/07/16 | 2028 | systems/texlive/tlnet/archive/unizgklasa.r51647.tar.xz -2019/11/17 | 683816 | systems/texlive/tlnet/archive/unravel.doc.r52822.tar.xz -2019/11/17 | 28380 | systems/texlive/tlnet/archive/unravel.r52822.tar.xz -2019/11/17 | 51652 | systems/texlive/tlnet/archive/unravel.source.r52822.tar.xz +2021/05/13 | 845060 | systems/texlive/tlnet/archive/unravel.doc.r59175.tar.xz +2021/05/13 | 29924 | systems/texlive/tlnet/archive/unravel.r59175.tar.xz +2021/05/13 | 53380 | systems/texlive/tlnet/archive/unravel.source.r59175.tar.xz 2019/02/28 | 119528 | systems/texlive/tlnet/archive/unswcover.doc.r29476.tar.xz 2019/02/28 | 2664 | systems/texlive/tlnet/archive/unswcover.r29476.tar.xz 2019/02/28 | 608984 | systems/texlive/tlnet/archive/uothesis.doc.r25355.tar.xz @@ -277290,8 +277309,8 @@ 2019/02/28 | 6324 | systems/texlive/tlnet/archive/wordlike.source.r15878.tar.xz 2019/02/28 | 96080 | systems/texlive/tlnet/archive/worksheet.doc.r48423.tar.xz 2019/02/28 | 3812 | systems/texlive/tlnet/archive/worksheet.r48423.tar.xz -2021/04/30 | 2141572 | systems/texlive/tlnet/archive/worldflags.doc.r59021.tar.xz -2021/04/30 | 1230772 | systems/texlive/tlnet/archive/worldflags.r59021.tar.xz +2021/05/13 | 2539560 | systems/texlive/tlnet/archive/worldflags.doc.r59171.tar.xz +2021/05/13 | 1497060 | systems/texlive/tlnet/archive/worldflags.r59171.tar.xz 2019/02/28 | 337900 | systems/texlive/tlnet/archive/wrapfig.doc.r22048.tar.xz 2019/02/28 | 9360 | systems/texlive/tlnet/archive/wrapfig.r22048.tar.xz 2019/02/28 | 401712 | systems/texlive/tlnet/archive/wsemclassic.doc.r31532.tar.xz @@ -277736,16 +277755,16 @@ 2020/07/18 | 47816 | systems/texlive/tlnet/archive/zztex.doc.r55862.tar.xz 2020/07/18 | 101724 | systems/texlive/tlnet/archive/zztex.r55862.tar.xz 2021/05/02 | 105152 | systems/texlive/tlnet/install-tl -2021/05/12 | 6810974 | systems/texlive/tlnet/install-tl-unx.tar.gz -2021/05/12 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 -2021/05/12 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc +2021/05/13 | 6810826 | systems/texlive/tlnet/install-tl-unx.tar.gz +2021/05/13 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 +2021/05/13 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc 2021/04/11 | 4945 | systems/texlive/tlnet/install-tl-windows.bat -2021/05/12 | 20809713 | systems/texlive/tlnet/install-tl-windows.exe -2021/05/12 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 -2021/05/12 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc -2021/05/12 | 25582728 | systems/texlive/tlnet/install-tl.zip -2021/05/12 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 -2021/05/12 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc +2021/05/13 | 20808508 | systems/texlive/tlnet/install-tl-windows.exe +2021/05/13 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 +2021/05/13 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc +2021/05/13 | 25582711 | systems/texlive/tlnet/install-tl.zip +2021/05/13 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 +2021/05/13 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc 2021/04/01 | 1229 | systems/texlive/tlnet/README.md 2021/04/01 | 0 | systems/texlive/tlnet/TEXLIVE_2021 2021/03/15 | 6571 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg @@ -277755,7 +277774,7 @@ 2021/03/15 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg 2021/05/07 | 49598 | systems/texlive/tlnet/tlpkg/installer/config.guess 2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt -2021/05/11 | 6889 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl +2021/05/12 | 6807 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl 2020/04/15 | 223687 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt 2020/04/15 | 2606592 | systems/texlive/tlnet/tlpkg/installer/curl/curl.exe 2017/04/16 | 2629 | systems/texlive/tlnet/tlpkg/installer/installer-options.txt @@ -277797,12 +277816,12 @@ 2021/05/02 | 20361 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm 2021/02/20 | 5400 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm 2020/09/22 | 27563 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm -2021/05/12 | 17221193 | systems/texlive/tlnet/tlpkg/texlive.tlpdb -2021/05/12 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +2021/05/13 | 17225173 | systems/texlive/tlnet/tlpkg/texlive.tlpdb +2021/05/13 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 2021/05/06 | 86490 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm -2021/05/12 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 -2021/05/12 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc -2021/05/12 | 2303924 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +2021/05/13 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +2021/05/13 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc +2021/05/13 | 2301360 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz 2021/05/06 | 58771 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm 2021/03/17 | 42077 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm 2020/05/11 | 15010 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm @@ -282490,7 +282509,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 -2021/05/12 | 574020 | systems/win32/miktex/tm/packages/files.csv.lzma +2021/05/13 | 574020 | 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 @@ -283691,9 +283710,9 @@ 2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma 2021/03/15 | 39247 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma 2021/03/15 | 43386 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma -2021/05/12 | 209342 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma -2021/05/12 | 1269614 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma -2021/05/12 | 1185859 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma +2021/05/13 | 209371 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma +2021/05/13 | 1269260 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma +2021/05/13 | 1186595 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma 2021/03/15 | 13447 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma 2021/03/15 | 14320 | 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 @@ -283854,190 +283873,190 @@ 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 -2021/05/12 | 574966 | systems/win32/miktex/tm/packages/next/files.csv.lzma -2021/05/12 | 50847 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma -2021/05/12 | 56457 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma -2021/05/12 | 968697 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma -2021/05/12 | 1078878 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma -2021/05/12 | 29053 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma -2021/05/12 | 31344 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma -2021/05/12 | 29869 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma -2021/05/12 | 34634 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma -2021/05/12 | 49971 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma -2021/05/12 | 57598 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma -2021/05/12 | 84774 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma -2021/05/12 | 94738 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma -2021/05/12 | 67679 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma -2021/05/12 | 75419 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma -2021/05/12 | 27183 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma -2021/05/12 | 30886 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma -2021/05/12 | 330233 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma -2021/05/12 | 392597 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma -2021/05/12 | 32744 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma -2021/05/12 | 36679 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma -2021/05/12 | 51431 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma -2021/05/12 | 56716 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma -2021/05/12 | 4708 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma -2021/05/12 | 239476 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma -2021/05/12 | 261962 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma -2021/05/12 | 179379 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma -2021/05/12 | 195664 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma -2021/05/12 | 52476 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma -2021/05/12 | 59146 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma -2021/05/12 | 21130 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma -2021/05/12 | 23290 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma -2021/05/12 | 461400 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma -2021/05/12 | 45647 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma -2021/05/12 | 51158 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma -2021/05/12 | 282104 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma -2021/05/12 | 321894 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma -2021/05/12 | 41102 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma -2021/05/12 | 45279 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma -2021/05/12 | 116931 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma -2021/05/12 | 131490 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma -2021/05/12 | 1281103 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma -2021/05/12 | 1425982 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma -2021/05/12 | 87638 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma -2021/05/12 | 99605 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma -2021/05/12 | 43057 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma -2021/05/12 | 47877 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma -2021/05/12 | 25154 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma -2021/05/12 | 28008 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma -2021/05/12 | 55822 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma -2021/05/12 | 62801 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma -2021/05/12 | 135005 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma -2021/05/12 | 152762 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma -2021/05/12 | 73181 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma -2021/05/12 | 77859 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma -2021/05/12 | 71569 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma -2021/05/12 | 80661 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma -2021/05/12 | 258665 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma -2021/05/12 | 295554 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma -2021/05/12 | 22039 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma -2021/05/12 | 25001 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma -2021/05/12 | 97490 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma -2021/05/12 | 112253 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma -2021/05/12 | 63835 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma -2021/05/12 | 72861 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma -2021/05/12 | 96146 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma -2021/05/12 | 115469 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma -2021/05/12 | 38070 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma -2021/05/12 | 42627 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma -2021/05/12 | 484055 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma -2021/05/12 | 567628 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma -2021/05/12 | 147140 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma -2021/05/12 | 159968 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma -2021/05/12 | 94801 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma -2021/05/12 | 109272 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma -2021/05/12 | 16326 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma -2021/05/12 | 17957 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma -2021/05/12 | 28119 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma -2021/05/12 | 30037 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma -2021/05/12 | 625280 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma -2021/05/12 | 680049 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma -2021/05/12 | 532040 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma -2021/05/12 | 594870 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma -2021/05/12 | 475932 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma -2021/05/12 | 511634 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma -2021/05/12 | 94268 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma -2021/05/12 | 103323 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma -2021/05/12 | 1725545 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma -2021/05/12 | 2009489 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma -2021/05/12 | 67650 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma -2021/05/12 | 74163 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma -2021/05/12 | 27362 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma -2021/05/12 | 31594 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma -2021/05/12 | 7746 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma -2021/05/12 | 8774 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma -2021/05/12 | 195566 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma -2021/05/12 | 214103 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma -2021/05/12 | 250212 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma -2021/05/12 | 283979 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma -2021/05/12 | 97133 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma -2021/05/12 | 101761 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma -2021/05/12 | 60552 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma -2021/05/12 | 67930 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma -2021/05/12 | 124971 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma -2021/05/12 | 136427 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma -2021/05/12 | 147153 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma -2021/05/12 | 163656 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma -2021/05/12 | 199702 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma -2021/05/12 | 180048 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma -2021/05/12 | 67451 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma -2021/05/12 | 77486 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma -2021/05/12 | 31191 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma -2021/05/12 | 35064 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma -2021/05/12 | 38065 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma -2021/05/12 | 42574 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma -2021/05/12 | 42925 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma -2021/05/12 | 47008 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma -2021/05/12 | 45938 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma -2021/05/12 | 52455 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma -2021/05/12 | 193717 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma -2021/05/12 | 211053 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma -2021/05/12 | 35462 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma -2021/05/12 | 39691 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma -2021/05/12 | 748363 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma -2021/05/12 | 816073 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma -2021/05/12 | 198130 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma -2021/05/12 | 202556 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma -2021/05/12 | 208181 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma -2021/05/12 | 243479 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma -2021/05/12 | 78746 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma -2021/05/12 | 87703 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma -2021/05/12 | 1171728 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma -2021/05/12 | 1307724 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma -2021/05/12 | 20120 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma -2021/05/12 | 23882 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma -2021/05/12 | 31543 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma -2021/05/12 | 37244 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma -2021/05/12 | 64016 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma -2021/05/12 | 72150 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma -2021/05/12 | 43678 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma -2021/05/12 | 51976 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma -2021/05/12 | 1295412 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma -2021/05/12 | 1424811 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma -2021/05/12 | 42386 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma -2021/05/12 | 51797 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma -2021/05/12 | 56223 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma -2021/05/12 | 59830 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma -2021/05/12 | 25341 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma -2021/05/12 | 27274 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma -2021/05/12 | 16114 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma -2021/05/12 | 18096 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma -2021/05/12 | 63673 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma -2021/05/12 | 70109 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma -2021/05/12 | 153890 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma -2021/05/12 | 167905 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma -2021/05/12 | 56908 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma -2021/05/12 | 65322 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma -2021/05/12 | 98519 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma -2021/05/12 | 104624 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma -2021/05/12 | 2499400 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma -2021/05/12 | 2616931 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma -2021/05/12 | 55217 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma -2021/05/12 | 62226 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma -2021/05/12 | 33441 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma -2021/05/12 | 37293 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma -2021/05/12 | 27196 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma -2021/05/12 | 33152 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma -2021/05/12 | 65732 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma -2021/05/12 | 70324 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma -2021/05/12 | 311191 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma -2021/05/12 | 345368 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma -2021/05/12 | 55563 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma -2021/05/12 | 57067 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma -2021/05/12 | 583627 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma -2021/05/12 | 618763 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma -2021/05/12 | 39563 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma -2021/05/12 | 43390 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma -2021/05/12 | 209283 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma -2021/05/12 | 1270504 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma -2021/05/12 | 1185751 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma -2021/05/12 | 13470 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma -2021/05/12 | 14353 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma +2021/05/13 | 574966 | systems/win32/miktex/tm/packages/next/files.csv.lzma +2021/05/13 | 50847 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma +2021/05/13 | 56457 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma +2021/05/13 | 968693 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma +2021/05/13 | 1078876 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma +2021/05/13 | 29055 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma +2021/05/13 | 31345 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma +2021/05/13 | 29868 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma +2021/05/13 | 34635 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma +2021/05/13 | 49971 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma +2021/05/13 | 57600 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma +2021/05/13 | 84774 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma +2021/05/13 | 94740 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma +2021/05/13 | 67679 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma +2021/05/13 | 75419 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma +2021/05/13 | 27183 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma +2021/05/13 | 30885 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma +2021/05/13 | 330235 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma +2021/05/13 | 392596 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma +2021/05/13 | 32746 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma +2021/05/13 | 36680 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma +2021/05/13 | 51433 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma +2021/05/13 | 56717 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma +2021/05/13 | 4709 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma +2021/05/13 | 239479 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma +2021/05/13 | 261962 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma +2021/05/13 | 179380 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma +2021/05/13 | 195666 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma +2021/05/13 | 52475 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma +2021/05/13 | 59145 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma +2021/05/13 | 21130 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma +2021/05/13 | 23292 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma +2021/05/13 | 461400 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma +2021/05/13 | 45650 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma +2021/05/13 | 51160 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma +2021/05/13 | 282107 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma +2021/05/13 | 321894 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma +2021/05/13 | 41103 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma +2021/05/13 | 45278 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma +2021/05/13 | 116931 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma +2021/05/13 | 131489 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma +2021/05/13 | 1281106 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma +2021/05/13 | 1425981 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma +2021/05/13 | 87637 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma +2021/05/13 | 99605 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma +2021/05/13 | 43059 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma +2021/05/13 | 47878 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma +2021/05/13 | 25155 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma +2021/05/13 | 28009 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma +2021/05/13 | 55823 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma +2021/05/13 | 62802 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma +2021/05/13 | 135004 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma +2021/05/13 | 152763 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma +2021/05/13 | 73181 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma +2021/05/13 | 77859 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma +2021/05/13 | 71570 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma +2021/05/13 | 80660 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma +2021/05/13 | 258666 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma +2021/05/13 | 295555 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma +2021/05/13 | 22039 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma +2021/05/13 | 25002 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma +2021/05/13 | 97490 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma +2021/05/13 | 112252 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma +2021/05/13 | 63836 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma +2021/05/13 | 72860 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma +2021/05/13 | 96145 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma +2021/05/13 | 115469 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma +2021/05/13 | 38070 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma +2021/05/13 | 42627 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma +2021/05/13 | 484056 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma +2021/05/13 | 567628 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma +2021/05/13 | 147140 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma +2021/05/13 | 159968 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma +2021/05/13 | 94802 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma +2021/05/13 | 109276 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma +2021/05/13 | 16327 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma +2021/05/13 | 17958 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma +2021/05/13 | 28119 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma +2021/05/13 | 30037 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma +2021/05/13 | 625282 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma +2021/05/13 | 680052 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma +2021/05/13 | 532041 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma +2021/05/13 | 594868 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma +2021/05/13 | 475935 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma +2021/05/13 | 511635 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma +2021/05/13 | 94269 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma +2021/05/13 | 103323 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma +2021/05/13 | 1725547 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma +2021/05/13 | 2009490 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma +2021/05/13 | 67650 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma +2021/05/13 | 74164 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma +2021/05/13 | 27363 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma +2021/05/13 | 31593 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma +2021/05/13 | 7747 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma +2021/05/13 | 8774 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma +2021/05/13 | 195565 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma +2021/05/13 | 214105 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma +2021/05/13 | 250210 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma +2021/05/13 | 283978 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma +2021/05/13 | 97135 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma +2021/05/13 | 101764 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma +2021/05/13 | 60552 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma +2021/05/13 | 67930 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma +2021/05/13 | 124972 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma +2021/05/13 | 136426 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma +2021/05/13 | 147151 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma +2021/05/13 | 163655 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma +2021/05/13 | 199701 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma +2021/05/13 | 180049 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma +2021/05/13 | 67451 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma +2021/05/13 | 77487 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma +2021/05/13 | 31192 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma +2021/05/13 | 35064 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma +2021/05/13 | 38066 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma +2021/05/13 | 42574 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma +2021/05/13 | 42925 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma +2021/05/13 | 47008 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma +2021/05/13 | 45937 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma +2021/05/13 | 52455 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma +2021/05/13 | 193717 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma +2021/05/13 | 211055 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma +2021/05/13 | 35462 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma +2021/05/13 | 39692 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma +2021/05/13 | 748364 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma +2021/05/13 | 816073 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma +2021/05/13 | 198131 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma +2021/05/13 | 202557 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma +2021/05/13 | 208182 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma +2021/05/13 | 243480 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma +2021/05/13 | 78746 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma +2021/05/13 | 87703 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma +2021/05/13 | 1171730 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma +2021/05/13 | 1307724 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma +2021/05/13 | 20121 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma +2021/05/13 | 23882 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma +2021/05/13 | 31543 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma +2021/05/13 | 37244 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma +2021/05/13 | 64018 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma +2021/05/13 | 72152 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma +2021/05/13 | 43679 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma +2021/05/13 | 51980 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma +2021/05/13 | 1295414 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma +2021/05/13 | 1424811 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma +2021/05/13 | 42389 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma +2021/05/13 | 51798 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma +2021/05/13 | 56222 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma +2021/05/13 | 59831 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma +2021/05/13 | 25342 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma +2021/05/13 | 27274 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma +2021/05/13 | 16114 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma +2021/05/13 | 18097 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma +2021/05/13 | 63674 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma +2021/05/13 | 70110 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma +2021/05/13 | 153891 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma +2021/05/13 | 167906 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma +2021/05/13 | 56908 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma +2021/05/13 | 65322 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma +2021/05/13 | 98520 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma +2021/05/13 | 104625 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma +2021/05/13 | 2499402 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma +2021/05/13 | 2616932 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma +2021/05/13 | 55219 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma +2021/05/13 | 62225 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma +2021/05/13 | 33440 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma +2021/05/13 | 37294 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma +2021/05/13 | 27197 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma +2021/05/13 | 33152 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma +2021/05/13 | 65732 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma +2021/05/13 | 70325 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma +2021/05/13 | 311191 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma +2021/05/13 | 345368 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma +2021/05/13 | 55563 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma +2021/05/13 | 57066 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma +2021/05/13 | 583628 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma +2021/05/13 | 618767 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma +2021/05/13 | 39564 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma +2021/05/13 | 43391 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma +2021/05/13 | 209301 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma +2021/05/13 | 1270198 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma +2021/05/13 | 1185935 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma +2021/05/13 | 13470 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma +2021/05/13 | 14354 | 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 -2021/05/12 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini +2021/05/13 | 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 @@ -284371,7 +284390,7 @@ 2020/10/20 | 342254 | systems/win32/miktex/tm/packages/preview.tar.lzma 2019/06/20 | 375963 | systems/win32/miktex/tm/packages/prftree.tar.lzma 2021/04/23 | 274028 | systems/win32/miktex/tm/packages/principia.tar.lzma -2021/05/12 | 850 | systems/win32/miktex/tm/packages/pr.ini +2021/05/13 | 850 | 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 @@ -285558,13 +285577,13 @@ 2021/05/08 | 5531876 | systems/win32/w32tex/aleph-w32.tar.xz 2021/05/09 | 63720288 | systems/win32/w32tex/biblatex-biber.tar.xz 2016/12/13 | 65971452 | systems/win32/w32tex/cbfonts.tar.xz -2021/05/11 | 830851 | systems/win32/w32tex/ChangeLog +2021/05/12 | 831401 | systems/win32/w32tex/ChangeLog 2009/08/03 | 141221 | systems/win32/w32tex/ChangeLog.0 2009/08/03 | 221890 | systems/win32/w32tex/ChangeLog.1 2009/08/03 | 116462 | systems/win32/w32tex/ChangeLog.2 2013/09/03 | 352299 | systems/win32/w32tex/ChangeLog.3 2017/06/24 | 644754 | systems/win32/w32tex/ChangeLog.4 -2021/05/08 | 23484712 | systems/win32/w32tex/cjkzr.tar.xz +2021/05/12 | 23500748 | systems/win32/w32tex/cjkzr.tar.xz 2013/04/27 | 15858676 | systems/win32/w32tex/context-doc.tar.xz 2021/05/10 | 144766492 | systems/win32/w32tex/context.tar.xz 2021/05/04 | 914852 | systems/win32/w32tex/cweb-w32.tar.xz @@ -285578,19 +285597,19 @@ 2021/04/07 | 17377260 | systems/win32/w32tex/gregorio-w32.tar.xz 2009/08/03 | 1072620 | systems/win32/w32tex/gtftex.zip 2021/04/27 | 1862028 | systems/win32/w32tex/jtex-w32.tar.xz -2021/05/10 | 52805236 | systems/win32/w32tex/latex-dev.tar.xz +2021/05/12 | 52833448 | systems/win32/w32tex/latex-dev.tar.xz 2021/03/21 | 34776716 | systems/win32/w32tex/latex.tar.xz 2021/04/07 | 1007424 | systems/win32/w32tex/lcdf-typetools-w32.tar.xz 2021/03/30 | 421014648 | systems/win32/w32tex/ltxpkgdocs.tar.xz -2021/05/10 | 35246464 | systems/win32/w32tex/ltxpkgs.tar.xz +2021/05/12 | 35252076 | systems/win32/w32tex/ltxpkgs.tar.xz 2021/05/11 | 3844932 | systems/win32/w32tex/luajittex-dev-w32.tar.xz 2021/05/11 | 3823404 | systems/win32/w32tex/luajittex-exp-w32.tar.xz 2021/05/11 | 3830288 | systems/win32/w32tex/luajittex-w32.tar.xz 2021/03/26 | 838276 | systems/win32/w32tex/luasec-w32.tar.xz -2021/05/11 | 18931684 | systems/win32/w32tex/luatex-dev-w32.tar.xz -2021/05/11 | 18894040 | systems/win32/w32tex/luatex-exp-w32.tar.xz +2021/05/12 | 18927808 | systems/win32/w32tex/luatex-dev-w32.tar.xz +2021/05/12 | 18905048 | systems/win32/w32tex/luatex-exp-w32.tar.xz 2021/04/12 | 68821016 | systems/win32/w32tex/luatexja.tar.xz -2021/05/11 | 18887188 | systems/win32/w32tex/luatex-w32.tar.xz +2021/05/12 | 18898988 | systems/win32/w32tex/luatex-w32.tar.xz 2021/05/10 | 1613572 | systems/win32/w32tex/makeindex-w32.tar.xz 2021/03/28 | 5371984 | systems/win32/w32tex/manual.tar.xz 2021/04/07 | 439524 | systems/win32/w32tex/mftools.tar.xz @@ -285600,7 +285619,7 @@ 2021/03/29 | 9811732 | systems/win32/w32tex/newtxpx-boondoxfonts.tar.xz 2021/04/07 | 1246480 | systems/win32/w32tex/omegaj-w32.tar.xz 2020/11/16 | 324540 | systems/win32/w32tex/otfbeta.tar.xz -2021/05/11 | 22172916 | systems/win32/w32tex/pdftex-w32.tar.xz +2021/05/12 | 22214320 | systems/win32/w32tex/pdftex-w32.tar.xz 2021/05/10 | 98152500 | systems/win32/w32tex/pgfcontrib.tar.xz 2015/01/26 | 189072 | systems/win32/w32tex/plain2-2.54-w32.tar.xz 2021/02/14 | 2826912 | systems/win32/w32tex/platex.tar.xz @@ -285608,8 +285627,8 @@ 2021/04/07 | 1170892 | systems/win32/w32tex/pstoedit-w32.tar.xz 2021/04/29 | 274303836 | systems/win32/w32tex/pstricks.tar.xz 2021/04/07 | 518092 | systems/win32/w32tex/psutils-w32.tar.xz -2021/05/08 | 6774728 | systems/win32/w32tex/ptex-ng-w32.tar.xz -2021/05/11 | 10700004 | systems/win32/w32tex/ptex-w32.tar.xz +2021/05/12 | 6776656 | systems/win32/w32tex/ptex-ng-w32.tar.xz +2021/05/12 | 10700708 | systems/win32/w32tex/ptex-w32.tar.xz 2019/04/15 | 499188 | systems/win32/w32tex/sam2p-w32.tar.xz 2021/03/23 | 87955068 | systems/win32/w32tex/t1fonts.tar.xz 2020/10/31 | 142032 | systems/win32/w32tex/t1utils-w32.tar.xz @@ -285633,7 +285652,7 @@ 2020/01/19 | 5856 | systems/win32/w32tex/txtutil.tar.xz 2013/04/08 | 71588 | systems/win32/w32tex/ums.tar.xz 2012/05/28 | 233472 | systems/win32/w32tex/unzip.exe -2021/05/11 | 8619736 | systems/win32/w32tex/uptex-w32.tar.xz +2021/05/12 | 8622456 | systems/win32/w32tex/uptex-w32.tar.xz 2013/04/08 | 722652 | systems/win32/w32tex/utf.tar.xz 2013/04/08 | 13748 | systems/win32/w32tex/vf-n2bk.tar.xz 2021/03/24 | 53260516 | systems/win32/w32tex/w32tex-src.tar.xz @@ -285682,7 +285701,7 @@ 2021/05/11 | 1806176 | systems/win32/w32tex/win64/uptex-w64.tar.xz 2021/05/11 | 3755940 | systems/win32/w32tex/win64/web2c-w64.tar.xz 2021/05/08 | 11122468 | systems/win32/w32tex/win64/xetex-w64.tar.xz -2021/05/08 | 49476568 | systems/win32/w32tex/xetex-w32.tar.xz +2021/05/12 | 49478904 | systems/win32/w32tex/xetex-w32.tar.xz 2021/04/28 | 2934168 | systems/win32/w32tex/xindy-w32.tar.xz 2013/11/19 | 11356248 | systems/win32/w32tex/xymtex.tar.xz 2016/09/09 | 4334636 | systems/win32/w32tex/xypic.tar.xz @@ -285779,7 +285798,7 @@ 2004/06/04 | 404 | tds/tds.sed 2004/06/23 | 65418 | tds/tds.tex 2019/05/29 | 304264 | tds.zip -2021/05/13 | 186 | timestamp +2021/05/14 | 186 | timestamp 2002/08/26 | 61898 | usergrps/dante/antrag.pdf 2002/08/26 | 118217 | usergrps/dante/antrag.ps 2017/06/30 | 917 | usergrps/dante/dtk/doc/beispiel.bib @@ -287111,41 +287130,41 @@ 1999/06/04 | 27445 | usergrps/uktug/baskervi/baskrep.cls 1999/05/12 | 7702 | usergrps/uktug/baskervi/epstopdf 1997/10/01 | 444 | usergrps/uktug/baskervi/README -2021/05/12 | 10468 | usergrps/usergrps/bg.html -2021/05/12 | 10165 | usergrps/usergrps/br.html -2021/05/12 | 10151 | usergrps/usergrps/ca.html -2021/05/12 | 10430 | usergrps/usergrps/cn.html -2021/05/12 | 10584 | usergrps/usergrps/cz.html -2021/05/12 | 10701 | usergrps/usergrps/de.html -2021/05/12 | 10222 | usergrps/usergrps/dk.html -2021/05/12 | 10001 | usergrps/usergrps/ee.html -2021/05/12 | 10226 | usergrps/usergrps/esc.html -2021/05/12 | 10371 | usergrps/usergrps/es.html -2021/05/12 | 10511 | usergrps/usergrps/fr.html -2021/05/12 | 10354 | usergrps/usergrps/gb.html -2021/05/12 | 10247 | usergrps/usergrps/gr.html -2021/05/12 | 10651 | usergrps/usergrps/hu.html -2021/05/12 | 10147 | usergrps/usergrps/ie.html -2021/05/12 | 6568 | usergrps/usergrps/index.html -2021/05/12 | 10122 | usergrps/usergrps/is.html -2021/05/12 | 10374 | usergrps/usergrps/it.html -2021/05/12 | 10091 | usergrps/usergrps/kh.html -2021/05/12 | 10491 | usergrps/usergrps/kr.html +2021/05/13 | 10406 | usergrps/usergrps/bg.html +2021/05/13 | 10103 | usergrps/usergrps/br.html +2021/05/13 | 10089 | usergrps/usergrps/ca.html +2021/05/13 | 10368 | usergrps/usergrps/cn.html +2021/05/13 | 10522 | usergrps/usergrps/cz.html +2021/05/13 | 10639 | usergrps/usergrps/de.html +2021/05/13 | 10160 | usergrps/usergrps/dk.html +2021/05/13 | 9939 | usergrps/usergrps/ee.html +2021/05/13 | 10164 | usergrps/usergrps/esc.html +2021/05/13 | 10309 | usergrps/usergrps/es.html +2021/05/13 | 10449 | usergrps/usergrps/fr.html +2021/05/13 | 10292 | usergrps/usergrps/gb.html +2021/05/13 | 10185 | usergrps/usergrps/gr.html +2021/05/13 | 10589 | usergrps/usergrps/hu.html +2021/05/13 | 10085 | usergrps/usergrps/ie.html +2021/05/13 | 6506 | usergrps/usergrps/index.html +2021/05/13 | 10060 | usergrps/usergrps/is.html +2021/05/13 | 10312 | usergrps/usergrps/it.html +2021/05/13 | 10029 | usergrps/usergrps/kh.html +2021/05/13 | 10429 | usergrps/usergrps/kr.html 2021/05/10 | 10000 | usergrps/usergrps/labels.pdf 2020/08/05 | 2357 | usergrps/usergrps/labels.tex -2021/05/12 | 10031 | usergrps/usergrps/lt.html -2021/05/12 | 37637 | usergrps/usergrps/lugs.html +2021/05/13 | 9969 | usergrps/usergrps/lt.html +2021/05/13 | 37637 | usergrps/usergrps/lugs.html 2021/05/10 | 49845 | usergrps/usergrps/lugs.pdf 2020/11/05 | 23855 | usergrps/usergrps/lugs.tex -2021/05/12 | 10081 | usergrps/usergrps/mx.html -2021/05/12 | 10467 | usergrps/usergrps/nl.html -2021/05/12 | 10192 | usergrps/usergrps/no.html -2021/05/12 | 10656 | usergrps/usergrps/pl.html -2021/05/12 | 10220 | usergrps/usergrps/pt.html -2021/05/12 | 10262 | usergrps/usergrps/us.html -2021/05/12 | 10131 | usergrps/usergrps/uy.html -2021/05/12 | 10202 | usergrps/usergrps/vn.html -2021/05/12 | 10141 | usergrps/usergrps/za.html +2021/05/13 | 10019 | usergrps/usergrps/mx.html +2021/05/13 | 10405 | usergrps/usergrps/nl.html +2021/05/13 | 10130 | usergrps/usergrps/no.html +2021/05/13 | 10594 | usergrps/usergrps/pl.html +2021/05/13 | 10158 | usergrps/usergrps/pt.html +2021/05/13 | 10200 | usergrps/usergrps/us.html +2021/05/13 | 10069 | usergrps/usergrps/uy.html +2021/05/13 | 10140 | usergrps/usergrps/vn.html +2021/05/13 | 10079 | usergrps/usergrps/za.html 1992/12/06 | 2551 | web/aplweb/announcement 1993/11/03 | 802292 | web/aplweb/aplweba.zip 1993/11/03 | 771814 | web/aplweb/aplwebb.zip diff --git a/FILES.byname.gz b/FILES.byname.gz index a14fb9edcd..f32b2e0990 100644 Binary files a/FILES.byname.gz and b/FILES.byname.gz differ diff --git a/FILES.last07days b/FILES.last07days index c844ab6624..368d3749b6 100644 --- a/FILES.last07days +++ b/FILES.last07days @@ -1,324 +1,549 @@ +2021/05/13 | 9969 | usergrps/usergrps/lt.html +2021/05/13 | 99663 | macros/latex/contrib/changes/examples/changes.example.authormarkup.footnote.pdf +2021/05/13 | 99605 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma +2021/05/13 | 9939 | usergrps/usergrps/ee.html +2021/05/13 | 98926 | macros/latex/contrib/changes/examples/changes.example.setsummarytowidth.pdf +2021/05/13 | 98520 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma +2021/05/13 | 97975 | macros/latex/contrib/changes/examples/changes.example.listofchanges.summary.pdf +2021/05/13 | 97786 | macros/latex/contrib/changes/examples/changes.example.setsummarywidth.pdf +2021/05/13 | 97490 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma +2021/05/13 | 97135 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma +2021/05/13 | 96 | macros/latex/contrib/changes/userdoc/sethighlightmarkup_ex.tex +2021/05/13 | 968693 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma +2021/05/13 | 96634 | macros/latex/contrib/bnumexpr/bnumexpr.pdf +2021/05/13 | 96371 | macros/latex/contrib/changes/examples/changes.example.settruncatewidth.pdf +2021/05/13 | 96145 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma +2021/05/13 | 94860 | macros/latex/contrib/changes/examples/changes.example.setaddedmarkup.pdf +2021/05/13 | 94839 | macros/latex/contrib/changes/examples/changes.example.setauthormarkuptext.pdf +2021/05/13 | 94802 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma +2021/05/13 | 94740 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma +2021/05/13 | 9443 | macros/luatex/optex/pdfextra/examples/pdfextra-example.tex +2021/05/13 | 94269 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma +2021/05/13 | 94091 | macros/latex/contrib/changes/examples/changes.example.setdeletedmarkup.pdf +2021/05/13 | 94058 | macros/latex/contrib/changes/examples/changes.example.setcommentmarkup.pdf +2021/05/13 | 93929 | macros/latex/contrib/changes/examples/changes.example.sethighlightmarkup.pdf +2021/05/13 | 93585 | macros/latex/contrib/changes/examples/changes.example.setauthormarkupposition.pdf +2021/05/13 | 92919 | macros/latex/contrib/changes/examples/changes.example.simple.pdf +2021/05/13 | 91 | macros/latex/contrib/changes/userdoc/comment_ex.tex +2021/05/13 | 89121 | macros/latex/contrib/changes/examples/changes.example.listofchanges.show.pdf +2021/05/13 | 88820 | macros/latex/contrib/changes/examples/changes.example.listofchanges.all.pdf +2021/05/13 | 88402 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uuline.pdf +2021/05/13 | 88388 | macros/latex/contrib/changes/examples/changes.example.listofchanges.title.pdf +2021/05/13 | 8774 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma +2021/05/13 | 87703 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma +2021/05/13 | 87637 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma +2021/05/13 | 868 | macros/luatex/optex/pdfextra/README.md +2021/05/13 | 86749 | macros/latex/contrib/changes/examples/changes.example.listofchanges.compactsummary.pdf +2021/05/13 | 86058 | macros/latex/contrib/changes/examples/changes.example.markup.bfit.pdf +2021/05/13 | 85486 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.bf.pdf +2021/05/13 | 85414 | macros/latex/contrib/changes/examples/changes.example.setauthormarkup.pdf +2021/05/13 | 85371 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.uuline.pdf +2021/05/13 | 85110 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.sl.pdf +2021/05/13 | 850 | systems/win32/miktex/tm/packages/pr.ini +2021/05/13 | 84993 | macros/latex/contrib/changes/examples/changes.example.listofchanges.wrong.pdf +2021/05/13 | 84993 | macros/latex/contrib/changes/examples/changes.example.listofchanges.list.pdf +2021/05/13 | 84982 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.bf.pdf +2021/05/13 | 84812 | macros/latex/contrib/changes/examples/changes.example.markup.underlined.pdf +2021/05/13 | 84774 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma +2021/05/13 | 84759 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.uwave.pdf +2021/05/13 | 84735 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.sl.pdf +2021/05/13 | 84681 | macros/latex/contrib/changes/examples/changes.example.markup.nocolor.pdf +2021/05/13 | 845060 | systems/texlive/tlnet/archive/unravel.doc.r59175.tar.xz +2021/05/13 | 84357 | macros/latex/contrib/changes/examples/changes.example.highlightmarkup.uwave.pdf +2021/05/13 | 84182 | macros/latex/contrib/changes/examples/changes.example.packageoptions.xcolor.pdf +2021/05/13 | 84052 | systems/texlive/tlnet/archive/codehigh.doc.r59173.tar.xz +2021/05/13 | 83 | macros/latex/contrib/changes/userdoc/setauthormarkup_ex.tex +2021/05/13 | 83877 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uwave.pdf +2021/05/13 | 83846 | macros/latex/contrib/changes/examples/changes.example.authormarkuptext.name.pdf +2021/05/13 | 83749 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.it.pdf +2021/05/13 | 83749 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.em.pdf +2021/05/13 | 83517 | macros/latex/contrib/changes/examples/changes.example.packageoptions.truncate.pdf +2021/05/13 | 82 | macros/latex/contrib/changes/userdoc/usepackage_ulem_changes_ex.tex +2021/05/13 | 82970 | macros/latex/contrib/changes/examples/changes.example.highlightmarkup.uuline.pdf +2021/05/13 | 82935 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.dashuline.pdf +2021/05/13 | 82891 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.it.pdf +2021/05/13 | 82891 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.em.pdf +2021/05/13 | 82746 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.uline.pdf +2021/05/13 | 82590 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.dashuline.pdf +2021/05/13 | 82553 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.dotuline.pdf +2021/05/13 | 82299 | macros/latex/contrib/changes/examples/changes.example.defaultcolor.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.setsocextension.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.markup.wrong.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.markup.default.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.highlightmarkup.background.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.draft.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.wrong.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.sout.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.commentmarkup.todo.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.commandnameprefix.wrong.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.commandnameprefix.none.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.commandnameprefix.ifneeded.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.commandnameprefix.always.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkup.wrong.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkuptext.wrong.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkuptext.id.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkup.superscript.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkupposition.wrong.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkupposition.right.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkupposition.left.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.wrong.pdf +2021/05/13 | 82295 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.colored.pdf +2021/05/13 | 82294 | macros/latex/contrib/changes/examples/changes.example.authormarkup.subscript.pdf +2021/05/13 | 82291 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uline.pdf +2021/05/13 | 81965 | macros/latex/contrib/changes/examples/changes.example.commentmarkup.uwave.pdf +2021/05/13 | 81687 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.dotuline.pdf +2021/05/13 | 816073 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma +2021/05/13 | 81521 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.xout.pdf +2021/05/13 | 81125 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.colored.pdf +2021/05/13 | 80660 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma +2021/05/13 | 79 | macros/latex/contrib/changes/userdoc/usepackage_xcolor_changes_ex.tex +2021/05/13 | 7905248 | macros/latex/contrib/changes.zip +2021/05/13 | 78953 | macros/latex/contrib/changes/examples/changes.example.commentmarkup.margin.pdf +2021/05/13 | 78746 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma +2021/05/13 | 77859 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma +2021/05/13 | 77487 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma +2021/05/13 | 7747 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma +2021/05/13 | 75419 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma +2021/05/13 | 75270 | macros/latex/contrib/changes/examples/changes.example.packageoptions.ulem.pdf +2021/05/13 | 748364 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma +2021/05/13 | 74370 | macros/latex/contrib/changes/examples/changes.example.authormarkup.brackets.pdf +2021/05/13 | 74164 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma +2021/05/13 | 73913 | macros/latex/contrib/changes/examples/changes.example.authormarkup.none.pdf +2021/05/13 | 73181 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma +2021/05/13 | 72860 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma +2021/05/13 | 72152 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma +2021/05/13 | 71570 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma +2021/05/13 | 70325 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma +2021/05/13 | 70110 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma +2021/05/13 | 692076 | macros/luatex/optex/pdfextra.zip +2021/05/13 | 68210 | macros/luatex/optex/pdfextra/pdfextra.opm +2021/05/13 | 68141 | macros/latex/contrib/changes/examples/changes.example.final.pdf +2021/05/13 | 6810826 | systems/texlive/tlnet/install-tl-unx.tar.gz +2021/05/13 | 680052 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma +2021/05/13 | 67938 | macros/musixtex/doc/musixdoc/extensions.tex +2021/05/13 | 67930 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma +2021/05/13 | 67679 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma +2021/05/13 | 67650 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma +2021/05/13 | 6749 | macros/latex/contrib/huawei/huawei.tex +2021/05/13 | 67451 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma +2021/05/13 | 66 | macros/latex/contrib/changes/userdoc/usepackage_authormarkupposition_changes_in.tex +2021/05/13 | 662 | macros/luatex/optex/pdfextra/LICENSE +2021/05/13 | 65732 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma +2021/05/13 | 65322 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma +2021/05/13 | 6506 | usergrps/usergrps/index.html +2021/05/13 | 64018 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma +2021/05/13 | 63 | macros/latex/contrib/changes/userdoc/setauthormarkupposition_ex.tex +2021/05/13 | 63836 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma +2021/05/13 | 63674 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma +2021/05/13 | 6344 | systems/texlive/tlnet/archive/collection-latexextra.r59173.tar.xz +2021/05/13 | 62 | macros/latex/contrib/changes/userdoc/replaced_in.tex +2021/05/13 | 62802 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma +2021/05/13 | 625282 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma +2021/05/13 | 62225 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma +2021/05/13 | 618767 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma +2021/05/13 | 60552 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma +2021/05/13 | 59831 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma +2021/05/13 | 5963 | macros/musixtex/tex/musixvbm.tex +2021/05/13 | 594868 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma +2021/05/13 | 59145 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma +2021/05/13 | 58 | macros/latex/contrib/changes/userdoc/usepackage_authormarkuptext_changes_in.tex +2021/05/13 | 58 | macros/latex/contrib/changes/userdoc/listofchanges_in.tex +2021/05/13 | 58808 | macros/latex/contrib/changes/changes.dtx +2021/05/13 | 58592 | macros/luatex/optex/pdfextra/examples/pdfextra-example-part.prc +2021/05/13 | 583628 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma +2021/05/13 | 57600 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma +2021/05/13 | 574966 | systems/win32/miktex/tm/packages/next/files.csv.lzma +2021/05/13 | 574020 | systems/win32/miktex/tm/packages/files.csv.lzma +2021/05/13 | 57066 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma +2021/05/13 | 56 | macros/latex/contrib/changes/userdoc/usepackage_highlightmarkup_changes_in.tex +2021/05/13 | 56 | macros/latex/contrib/changes/userdoc/setlocextension_ex.tex +2021/05/13 | 56 | macros/latex/contrib/changes/userdoc/setdeletedmarkup_ex.tex +2021/05/13 | 56908 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma +2021/05/13 | 567628 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma +2021/05/13 | 56717 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma +2021/05/13 | 56457 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma +2021/05/13 | 56222 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma +2021/05/13 | 55 | macros/latex/contrib/changes/userdoc/settruncatewidth_ex.tex +2021/05/13 | 55 | macros/latex/contrib/changes/userdoc/definechangesauthor_in.tex +2021/05/13 | 55823 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma +2021/05/13 | 55563 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma +2021/05/13 | 55219 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma +2021/05/13 | 5450 | macros/musixtex/doc/musixdoc/frontmatter.tex +2021/05/13 | 53 | macros/latex/contrib/changes/userdoc/setsummarywidth_ex.tex +2021/05/13 | 53380 | systems/texlive/tlnet/archive/unravel.source.r59175.tar.xz +2021/05/13 | 532041 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma +2021/05/13 | 52 | macros/latex/contrib/changes/userdoc/usepackage_deletedmarkup_changes_in.tex +2021/05/13 | 52 | macros/latex/contrib/changes/userdoc/usepackage_commentmarkup_changes_in.tex +2021/05/13 | 52 | macros/latex/contrib/changes/userdoc/setauthormarkuptext_ex.tex +2021/05/13 | 52 | macros/latex/contrib/changes/userdoc/setaddedmarkup_ex.tex +2021/05/13 | 5268 | systems/texlive/tlnet/archive/marathi.r59172.tar.xz +2021/05/13 | 5264 | macros/latex/contrib/changes/regression.dtx +2021/05/13 | 52475 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma +2021/05/13 | 52455 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma +2021/05/13 | 52252 | macros/latex/contrib/bnumexpr/bnumexpr.dtx +2021/05/13 | 51 | macros/latex/contrib/changes/userdoc/usepackage_draft_changes_in.tex +2021/05/13 | 51 | macros/latex/contrib/changes/userdoc/usepackage_commandnameprefix_changes_in.tex +2021/05/13 | 51980 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma +2021/05/13 | 51798 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma +2021/05/13 | 51433 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma +2021/05/13 | 5128 | systems/texlive/tlnet/archive/codehigh.r59173.tar.xz +2021/05/13 | 511635 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma +2021/05/13 | 51160 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma +2021/05/13 | 50 | macros/latex/contrib/changes/userdoc/usepackage_authormarkup_changes_in.tex +2021/05/13 | 50847 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma +2021/05/13 | 5030 | macros/latex/contrib/changes/example-screenshot.dtx +2021/05/13 | 49 | macros/latex/contrib/changes/userdoc/setauthormarkupposition_in.tex +2021/05/13 | 49 | macros/latex/contrib/changes/userdoc/deleted_in.tex +2021/05/13 | 49971 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma +2021/05/13 | 4932 | macros/latex/contrib/changes/changes.drv +2021/05/13 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 +2021/05/13 | 48 | macros/latex/contrib/changes/userdoc/usepackage_todonotes_changes_ex.tex +2021/05/13 | 48 | macros/latex/contrib/changes/userdoc/usepackage_addedmarkup_changes_in.tex +2021/05/13 | 48 | macros/latex/contrib/changes/userdoc/setsocextension_ex.tex +2021/05/13 | 484056 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma +2021/05/13 | 4828 | macros/musixtex/doc/musixdoc/musixdoc.sty +2021/05/13 | 47 | macros/latex/contrib/changes/userdoc/highlight_in.tex +2021/05/13 | 47 | macros/latex/contrib/changes/userdoc/added_in.tex +2021/05/13 | 47878 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma +2021/05/13 | 475935 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma +2021/05/13 | 4709 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma +2021/05/13 | 47008 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma +2021/05/13 | 461400 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma +2021/05/13 | 45937 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma +2021/05/13 | 45650 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma +2021/05/13 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc +2021/05/13 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc +2021/05/13 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc +2021/05/13 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc +2021/05/13 | 452979 | macros/latex/contrib/changes/changes.english.withcode.pdf +2021/05/13 | 45278 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma +2021/05/13 | 43 | macros/latex/contrib/changes/userdoc/usepackage_defaultcolor_changes_in.tex +2021/05/13 | 43679 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma +2021/05/13 | 43391 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma +2021/05/13 | 43059 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma +2021/05/13 | 42 | macros/latex/contrib/changes/userdoc/usepackage_todonotes_changes_in.tex +2021/05/13 | 42925 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma +2021/05/13 | 42627 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma +2021/05/13 | 42574 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma +2021/05/13 | 42389 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma +2021/05/13 | 42081 | macros/latex/contrib/changes/userdoc/changes.de.tex +2021/05/13 | 41 | macros/latex/contrib/changes/userdoc/usepackage_truncate_changes_in.tex +2021/05/13 | 41 | macros/latex/contrib/changes/userdoc/usepackage_truncate_changes_ex.tex +2021/05/13 | 41 | macros/latex/contrib/changes/userdoc/setauthormarkuptext_in.tex +2021/05/13 | 41103 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma +2021/05/13 | 40624 | biblio/bibtex/contrib/vancouver/vancouver.bst +2021/05/13 | 39 | macros/latex/contrib/changes/userdoc/usepackage_xcolor_changes_in.tex +2021/05/13 | 396960 | systems/texlive/tlnet/archive/texlive-scripts.doc.r59168.tar.xz +2021/05/13 | 39692 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma +2021/05/13 | 39564 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma +2021/05/13 | 392596 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma +2021/05/13 | 38 | macros/latex/contrib/changes/userdoc/usepackage_markup_changes_in.tex +2021/05/13 | 38 | macros/latex/contrib/changes/userdoc/path_doc_examples_in.tex +2021/05/13 | 385845 | macros/luatex/optex/pdfextra/examples/pdfextra-example.pdf +2021/05/13 | 38432 | macros/latex/contrib/changes/userdoc/changes.en.tex +2021/05/13 | 38070 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma +2021/05/13 | 38066 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma +2021/05/13 | 37 | macros/latex/contrib/changes/userdoc/usepackage_ulem_changes_in.tex +2021/05/13 | 379316 | macros/latex/contrib/tabularray/tabularray.pdf +2021/05/13 | 37637 | usergrps/usergrps/lugs.html +2021/05/13 | 376315 | macros/latex/contrib/changes/changes.ngerman.pdf +2021/05/13 | 37294 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma +2021/05/13 | 37244 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma +2021/05/13 | 372353 | macros/latex/contrib/huawei.zip +2021/05/13 | 368904 | macros/latex/contrib/changes/changes.english.pdf +2021/05/13 | 367564 | systems/texlive/tlnet/archive/els-cas-templates.doc.r59170.tar.xz +2021/05/13 | 36680 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma +2021/05/13 | 362961 | macros/latex/contrib/huawei/huawei.pdf +2021/05/13 | 35462 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma +2021/05/13 | 351179 | macros/latex/contrib/tabularray.zip +2021/05/13 | 35064 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma +2021/05/13 | 34 | macros/latex/contrib/changes/userdoc/sethighlightmarkup_in.tex +2021/05/13 | 34635 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma +2021/05/13 | 345368 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma +2021/05/13 | 33440 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma +2021/05/13 | 33152 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma +2021/05/13 | 330235 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma +2021/05/13 | 32 | macros/latex/contrib/changes/userdoc/usepackage_options_changes_in.tex +2021/05/13 | 32 | macros/latex/contrib/changes/userdoc/setdeletedmarkup_in.tex +2021/05/13 | 32 | macros/latex/contrib/changes/userdoc/setcommentmarkup_in.tex +2021/05/13 | 32746 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma +2021/05/13 | 321894 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma +2021/05/13 | 31 | macros/latex/contrib/changes/userdoc/setauthormarkup_in.tex +2021/05/13 | 31593 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma +2021/05/13 | 31543 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma +2021/05/13 | 31345 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma +2021/05/13 | 31192 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma +2021/05/13 | 311191 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma +2021/05/13 | 30 | macros/latex/contrib/changes/userdoc/setsocextension_in.tex +2021/05/13 | 30 | macros/latex/contrib/changes/userdoc/setlocextension_in.tex +2021/05/13 | 30 | macros/latex/contrib/changes/userdoc/setaddedmarkup_in.tex +2021/05/13 | 30885 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma +2021/05/13 | 307908 | systems/texlive/tlnet/archive/easybook.doc.r59174.tar.xz +2021/05/13 | 3067 | macros/musixtex/README +2021/05/13 | 30555 | macros/luatex/optex/pdfextra/pdfextra-doc.tex +2021/05/13 | 3037 | macros/latex/contrib/bnumexpr/README.md +2021/05/13 | 30037 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma +2021/05/13 | 29 | macros/latex/contrib/changes/userdoc/comment_in.tex +2021/05/13 | 29924 | systems/texlive/tlnet/archive/unravel.r59175.tar.xz +2021/05/13 | 29868 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma +2021/05/13 | 295555 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma +2021/05/13 | 29248 | systems/texlive/tlnet/archive/easybook.source.r59174.tar.xz +2021/05/13 | 29055 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma +2021/05/13 | 28 | macros/latex/contrib/changes/userdoc/usepackage_final_changes_in.tex +2021/05/13 | 283978 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma +2021/05/13 | 282107 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma +2021/05/13 | 28119 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma +2021/05/13 | 28009 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma +2021/05/13 | 27 | macros/latex/contrib/changes/userdoc/settruncatewidth_in.tex +2021/05/13 | 27 | macros/latex/contrib/changes/userdoc/setsummarytowidth_in.tex +2021/05/13 | 27 | macros/latex/contrib/changes/userdoc/path_script_in.tex +2021/05/13 | 27363 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma +2021/05/13 | 27274 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma +2021/05/13 | 27197 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma +2021/05/13 | 27183 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma +2021/05/13 | 26 | macros/latex/contrib/changes/userdoc/setsummarywidth_in.tex +2021/05/13 | 261962 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma +2021/05/13 | 2616932 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma +2021/05/13 | 25 | macros/latex/contrib/changes/userdoc/script_pymergechanges_empty.tex +2021/05/13 | 258666 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma +2021/05/13 | 25582711 | systems/texlive/tlnet/install-tl.zip +2021/05/13 | 254 | macros/latex/contrib/changes/userdoc/listofchanges_ex.tex +2021/05/13 | 2539560 | systems/texlive/tlnet/archive/worldflags.doc.r59171.tar.xz +2021/05/13 | 25342 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma +2021/05/13 | 25155 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma +2021/05/13 | 250210 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma +2021/05/13 | 25002 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma +2021/05/13 | 2499402 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma +2021/05/13 | 2440587 | install/macros/musixtex.tds.zip +2021/05/13 | 243480 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma +2021/05/13 | 2424633 | macros/musixtex.zip +2021/05/13 | 239479 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma +2021/05/13 | 23882 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma +2021/05/13 | 23292 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma +2021/05/13 | 2301360 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz +2021/05/13 | 230095 | macros/luatex/optex/pdfextra/pdfextra-doc.pdf +2021/05/13 | 229 | macros/latex/contrib/changes/userdoc/script_pymergechanges.tex +2021/05/13 | 22962 | macros/musixtex/doc/musixdoc/beams.tex +2021/05/13 | 224 | macros/latex/contrib/changes/userdoc/replaced_ex.tex +2021/05/13 | 223 | macros/latex/contrib/changes/userdoc/highlight_ex.tex +2021/05/13 | 22039 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma +2021/05/13 | 21 | macros/latex/contrib/changes/userdoc/usepackage_changes_in.tex +2021/05/13 | 21526 | macros/latex/contrib/tabularray/tabularray.tex +2021/05/13 | 214105 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma +2021/05/13 | 21152 | systems/texlive/tlnet/archive/els-cas-templates.r59170.tar.xz +2021/05/13 | 21130 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma +2021/05/13 | 211055 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma +2021/05/13 | 209371 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma +2021/05/13 | 209301 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma +2021/05/13 | 208182 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma +2021/05/13 | 20808508 | systems/texlive/tlnet/install-tl-windows.exe +2021/05/13 | 202557 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma +2021/05/13 | 20121 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma +2021/05/13 | 2009490 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma +2021/05/13 | 199701 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma +2021/05/13 | 198131 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma +2021/05/13 | 1978 | macros/musixtex/doc/musixdoc/musixdoc.ltx +2021/05/13 | 196 | macros/latex/contrib/changes/userdoc/setcommentmarkup_ex.tex +2021/05/13 | 1959 | biblio/bibtex/contrib/vancouver/README +2021/05/13 | 195666 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma +2021/05/13 | 195565 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma +2021/05/13 | 193717 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma +2021/05/13 | 19106 | biblio/bibtex/contrib/vancouver/LICENSE +2021/05/13 | 190 | macros/musixtex/doc/ChangeLog-132.txt +2021/05/13 | 189067 | macros/musixtex/tex/musixtex.tex +2021/05/13 | 182 | macros/latex/contrib/changes/userdoc/added_ex.tex +2021/05/13 | 18097 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma +2021/05/13 | 180049 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma +2021/05/13 | 17958 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma +2021/05/13 | 179380 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma +2021/05/13 | 177 | macros/latex/contrib/changes/userdoc/deleted_ex.tex +2021/05/13 | 17760 | systems/texlive/tlnet/archive/marathi.source.r59172.tar.xz +2021/05/13 | 174 | macros/latex/contrib/changes/userdoc/definechangesauthor_ex.tex +2021/05/13 | 1725547 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma +2021/05/13 | 17225173 | systems/texlive/tlnet/tlpkg/texlive.tlpdb +2021/05/13 | 171 | macros/latex/contrib/changes/userdoc/usepackage_markup_changes_ex.tex +2021/05/13 | 167906 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma +2021/05/13 | 16628 | macros/latex/contrib/changes/examples.dtx +2021/05/13 | 164 | macros/latex/contrib/changes/userdoc/usepackage_commandnameprefix_changes_ex.tex +2021/05/13 | 16393 | macros/latex/contrib/huawei/huawei.cls +2021/05/13 | 163655 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma +2021/05/13 | 16327 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma +2021/05/13 | 16114 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma +2021/05/13 | 159968 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma +2021/05/13 | 15649 | biblio/bibtex/contrib/vancouver/vancouver.bib +2021/05/13 | 154 | macros/latex/contrib/changes/userdoc/usepackage_authormarkup_changes_ex.tex +2021/05/13 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 +2021/05/13 | 153891 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma +2021/05/13 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 +2021/05/13 | 152763 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma +2021/05/13 | 151 | macros/latex/contrib/changes/userdoc/usepackage_commentmarkup_changes_ex.tex +2021/05/13 | 1517 | biblio/bibtex/contrib/vancouver/FAQ +2021/05/13 | 150336 | systems/texlive/tlnet/archive/marathi.doc.r59172.tar.xz +2021/05/13 | 149732 | biblio/bibtex/contrib/vancouver.zip +2021/05/13 | 1497060 | systems/texlive/tlnet/archive/worldflags.r59171.tar.xz +2021/05/13 | 147 | macros/latex/contrib/changes/userdoc/usepackage_deletedmarkup_changes_ex.tex +2021/05/13 | 147151 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma +2021/05/13 | 147140 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma +2021/05/13 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 +2021/05/13 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 +2021/05/13 | 14354 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma +2021/05/13 | 143191 | macros/latex/contrib/changes/examples/changes.example.screenshot.pdf +2021/05/13 | 142 | macros/latex/contrib/changes/userdoc/usepackage_addedmarkup_changes_ex.tex +2021/05/13 | 1425981 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma +2021/05/13 | 1424811 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma +2021/05/13 | 14056 | biblio/bibtex/contrib/vancouver/vancouver.tex +2021/05/13 | 1396006 | macros/musixtex/doc/musixdoc.pdf +2021/05/13 | 136426 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma +2021/05/13 | 135004 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma +2021/05/13 | 134990 | macros/latex/contrib/tabularray/tabularray.sty +2021/05/13 | 13470 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma +2021/05/13 | 13360 | systems/texlive/tlnet/archive/easybook.r59174.tar.xz +2021/05/13 | 1326 | macros/latex/contrib/changes/README +2021/05/13 | 131489 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma +2021/05/13 | 1307724 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma +2021/05/13 | 1295414 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma +2021/05/13 | 1281106 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma +2021/05/13 | 1270198 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma +2021/05/13 | 1269260 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma +2021/05/13 | 124972 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma +2021/05/13 | 121265 | biblio/bibtex/contrib/vancouver/vancouver.pdf +2021/05/13 | 120 | macros/latex/contrib/changes/userdoc/usepackage_authormarkupposition_changes_ex.tex +2021/05/13 | 1208 | macros/latex/contrib/huawei/README.md +2021/05/13 | 1186595 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma +2021/05/13 | 1185935 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma +2021/05/13 | 117 | macros/latex/contrib/changes/userdoc/usepackage_highlightmarkup_changes_ex.tex +2021/05/13 | 1171730 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma +2021/05/13 | 116931 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma +2021/05/13 | 115469 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma +2021/05/13 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini +2021/05/13 | 112252 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma +2021/05/13 | 111908 | macros/latex/contrib/bnumexpr.zip +2021/05/13 | 110514 | macros/latex/contrib/changes/examples/changes.example.commentmarkup.footnote.pdf +2021/05/13 | 11043 | macros/latex/contrib/changes/pyMergeChanges.py +2021/05/13 | 109 | macros/latex/contrib/changes/userdoc/usepackage_authormarkuptext_changes_ex.tex +2021/05/13 | 109276 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma +2021/05/13 | 107980 | systems/texlive/tlnet/archive/texlive-scripts.r59168.tar.xz +2021/05/13 | 1078876 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma +2021/05/13 | 106 | macros/latex/contrib/changes/userdoc/usepackage_defaultcolor_changes_ex.tex +2021/05/13 | 10639 | usergrps/usergrps/de.html +2021/05/13 | 10594 | usergrps/usergrps/pl.html +2021/05/13 | 10589 | usergrps/usergrps/hu.html +2021/05/13 | 10522 | usergrps/usergrps/cz.html +2021/05/13 | 104 | macros/latex/contrib/changes/userdoc/setsummarytowidth_ex.tex +2021/05/13 | 104625 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma +2021/05/13 | 10449 | usergrps/usergrps/fr.html +2021/05/13 | 10429 | usergrps/usergrps/kr.html +2021/05/13 | 104166 | macros/latex/contrib/changes/examples/changes.example.packageoptions.todonotes.pdf +2021/05/13 | 10406 | usergrps/usergrps/bg.html +2021/05/13 | 10405 | usergrps/usergrps/nl.html +2021/05/13 | 10368 | usergrps/usergrps/cn.html +2021/05/13 | 103323 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma +2021/05/13 | 10312 | usergrps/usergrps/it.html +2021/05/13 | 10309 | usergrps/usergrps/es.html +2021/05/13 | 10292 | usergrps/usergrps/gb.html +2021/05/13 | 10200 | usergrps/usergrps/us.html +2021/05/13 | 10185 | usergrps/usergrps/gr.html +2021/05/13 | 101764 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma +2021/05/13 | 10164 | usergrps/usergrps/esc.html +2021/05/13 | 10160 | usergrps/usergrps/dk.html +2021/05/13 | 10158 | usergrps/usergrps/pt.html +2021/05/13 | 10140 | usergrps/usergrps/vn.html +2021/05/13 | 10130 | usergrps/usergrps/no.html +2021/05/13 | 10119 | macros/latex/contrib/changes/changes.ins +2021/05/13 | 10103 | usergrps/usergrps/br.html +2021/05/13 | 10089 | usergrps/usergrps/ca.html +2021/05/13 | 10085 | usergrps/usergrps/ie.html +2021/05/13 | 10079 | usergrps/usergrps/za.html +2021/05/13 | 10069 | usergrps/usergrps/uy.html +2021/05/13 | 10060 | usergrps/usergrps/is.html +2021/05/13 | 10029 | usergrps/usergrps/kh.html +2021/05/13 | 10019 | usergrps/usergrps/mx.html 2021/05/12 | 999978 | macros/latex/contrib/acrotex/doc/eformman.pdf -2021/05/12 | 99605 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma 2021/05/12 | 9854 | macros/latex/contrib/acrotex/taborder.dtx -2021/05/12 | 98519 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma -2021/05/12 | 97490 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma -2021/05/12 | 97133 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma -2021/05/12 | 968697 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma -2021/05/12 | 96146 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma -2021/05/12 | 94801 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma -2021/05/12 | 94738 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma 2021/05/12 | 9452 | macros/latex/contrib/acrotex/doc/acrobat-in-workflow.tex -2021/05/12 | 94268 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma 2021/05/12 | 91316 | macros/latex/contrib/codehigh.zip 2021/05/12 | 908355 | macros/latex/contrib/unravel.zip -2021/05/12 | 88616 | macros/latex/contrib/bnumexpr/bnumexpr.pdf 2021/05/12 | 880287 | macros/latex/contrib/unravel/unravel.pdf -2021/05/12 | 8774 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma -2021/05/12 | 87703 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma -2021/05/12 | 87638 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma -2021/05/12 | 850 | systems/win32/miktex/tm/packages/pr.ini -2021/05/12 | 84774 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma +2021/05/12 | 8622456 | systems/win32/w32tex/uptex-w32.tar.xz 2021/05/12 | 844178 | macros/latex/contrib/els-cas-templates.zip -2021/05/12 | 816073 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma -2021/05/12 | 80661 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma -2021/05/12 | 78746 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma -2021/05/12 | 77859 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma -2021/05/12 | 77486 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma -2021/05/12 | 7746 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma -2021/05/12 | 75419 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma -2021/05/12 | 748363 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma -2021/05/12 | 74163 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma -2021/05/12 | 73181 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma -2021/05/12 | 72861 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma -2021/05/12 | 72150 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma -2021/05/12 | 71569 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma +2021/05/12 | 831401 | systems/win32/w32tex/ChangeLog 2021/05/12 | 7067733 | macros/latex/contrib/hvfloat/doc/hvfloat.pdf -2021/05/12 | 70324 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma -2021/05/12 | 70109 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma 2021/05/12 | 69171 | language/marathi/marathi.dtx -2021/05/12 | 6810974 | systems/texlive/tlnet/install-tl-unx.tar.gz -2021/05/12 | 680049 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma -2021/05/12 | 67930 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma -2021/05/12 | 67679 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma -2021/05/12 | 67650 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma -2021/05/12 | 67451 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma +2021/05/12 | 6807 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl +2021/05/12 | 6776656 | systems/win32/w32tex/ptex-ng-w32.tar.xz 2021/05/12 | 673 | macros/latex/contrib/easybook/easybook.ins -2021/05/12 | 65732 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma -2021/05/12 | 6568 | usergrps/usergrps/index.html -2021/05/12 | 65322 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma -2021/05/12 | 64016 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma -2021/05/12 | 63835 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma -2021/05/12 | 63673 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma 2021/05/12 | 634 | graphics/pgf/contrib/worldflags/README -2021/05/12 | 62801 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma -2021/05/12 | 625280 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma -2021/05/12 | 62226 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma -2021/05/12 | 618763 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma -2021/05/12 | 60552 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma -2021/05/12 | 59830 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma 2021/05/12 | 595755 | macros/latex/contrib/acrotex/exerquiz.dtx -2021/05/12 | 594870 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma -2021/05/12 | 59146 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma 2021/05/12 | 5906 | macros/latex/contrib/acrotex/README.md -2021/05/12 | 583627 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma 2021/05/12 | 5770 | macros/latex/contrib/codehigh/codehigh.tex -2021/05/12 | 57598 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma -2021/05/12 | 574966 | systems/win32/miktex/tm/packages/next/files.csv.lzma -2021/05/12 | 574020 | systems/win32/miktex/tm/packages/files.csv.lzma 2021/05/12 | 570 | macros/latex/contrib/els-cas-templates/doc/makefile -2021/05/12 | 57067 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma -2021/05/12 | 56908 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma -2021/05/12 | 567628 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma -2021/05/12 | 56716 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma -2021/05/12 | 56457 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma -2021/05/12 | 56223 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma -2021/05/12 | 55822 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma -2021/05/12 | 55563 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma -2021/05/12 | 55217 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma 2021/05/12 | 547 | macros/latex/contrib/acrotex/aeb.js 2021/05/12 | 54495 | macros/latex/contrib/hvfloat/latex/hvfloat.sty 2021/05/12 | 544231 | macros/latex/contrib/acrotex/doc/aeb_man.tex -2021/05/12 | 532040 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma -2021/05/12 | 52476 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma -2021/05/12 | 52455 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma -2021/05/12 | 51976 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma -2021/05/12 | 51797 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma -2021/05/12 | 51431 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma -2021/05/12 | 511634 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma -2021/05/12 | 51158 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma -2021/05/12 | 50847 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma -2021/05/12 | 49971 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma +2021/05/12 | 52833448 | systems/win32/w32tex/latex-dev.tar.xz 2021/05/12 | 49971 | graphics/pgf/contrib/worldflags/doc/worldflags.tex -2021/05/12 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 -2021/05/12 | 484055 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma +2021/05/12 | 49478904 | systems/win32/w32tex/xetex-w32.tar.xz 2021/05/12 | 4793907 | graphics/pgf/contrib/worldflags.zip -2021/05/12 | 47892 | macros/latex/contrib/bnumexpr/bnumexpr.dtx -2021/05/12 | 47877 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma -2021/05/12 | 475932 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma -2021/05/12 | 4708 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma -2021/05/12 | 47008 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma -2021/05/12 | 461400 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma -2021/05/12 | 45938 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma -2021/05/12 | 45647 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma -2021/05/12 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc -2021/05/12 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc -2021/05/12 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc -2021/05/12 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc -2021/05/12 | 45279 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma -2021/05/12 | 43678 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma 2021/05/12 | 433973 | macros/latex/contrib/els-cas-templates/doc/elsdoc-cas.pdf -2021/05/12 | 43390 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma -2021/05/12 | 43057 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma -2021/05/12 | 42925 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma -2021/05/12 | 42627 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma -2021/05/12 | 42574 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma -2021/05/12 | 42386 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma 2021/05/12 | 4186 | macros/latex/contrib/codehigh/codehigh.lua -2021/05/12 | 41102 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma 2021/05/12 | 40902 | macros/latex/contrib/projlib/ProjLib.dtx -2021/05/12 | 40586 | biblio/bibtex/contrib/vancouver/vancouver.bst 2021/05/12 | 401 | macros/latex/contrib/unravel/unravel.ins -2021/05/12 | 396960 | systems/texlive/tlnet/archive/texlive-scripts.doc.r59164.tar.xz -2021/05/12 | 39691 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma -2021/05/12 | 39563 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma 2021/05/12 | 3928740 | macros/latex/contrib/acrotex.zip -2021/05/12 | 392597 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma 2021/05/12 | 387972 | macros/latex/contrib/projlib.zip 2021/05/12 | 38593 | macros/luatex/latex/lua-ul/lua-ul.dtx -2021/05/12 | 38070 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma -2021/05/12 | 38065 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma -2021/05/12 | 37637 | usergrps/usergrps/lugs.html -2021/05/12 | 37293 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma -2021/05/12 | 37244 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma -2021/05/12 | 36679 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma +2021/05/12 | 3711647 | info/biblio/tugboat.bib 2021/05/12 | 362 | macros/latex/contrib/acrotex/web.cfg -2021/05/12 | 35462 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma +2021/05/12 | 3573 | info/biblio/tugboat.ltx +2021/05/12 | 35252076 | systems/win32/w32tex/ltxpkgs.tar.xz 2021/05/12 | 35095 | macros/latex/contrib/hvfloat/doc/examples/doublepage2s1c.tex -2021/05/12 | 35064 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma -2021/05/12 | 34634 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma -2021/05/12 | 345368 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma -2021/05/12 | 3418 | macros/latex/contrib/bnumexpr/README.md 2021/05/12 | 338972 | macros/latex/contrib/easybook.zip -2021/05/12 | 33441 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma -2021/05/12 | 33152 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma -2021/05/12 | 330233 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma -2021/05/12 | 32744 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma 2021/05/12 | 322061 | macros/latex/contrib/unravel/unravel.dtx -2021/05/12 | 321894 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma -2021/05/12 | 31594 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma 2021/05/12 | 3158 | macros/latex/contrib/projlib/README.md -2021/05/12 | 31543 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma -2021/05/12 | 31344 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma -2021/05/12 | 31191 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma -2021/05/12 | 311191 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma 2021/05/12 | 308 | macros/luatex/latex/lua-ul/README -2021/05/12 | 30886 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma 2021/05/12 | 308571 | macros/latex/contrib/easybook/easybook.pdf -2021/05/12 | 305016 | systems/texlive/tlnet/archive/easybook.doc.r59166.tar.xz -2021/05/12 | 30037 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma -2021/05/12 | 29869 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma -2021/05/12 | 295554 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma -2021/05/12 | 29053 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma -2021/05/12 | 28488 | systems/texlive/tlnet/archive/easybook.source.r59166.tar.xz -2021/05/12 | 283979 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma -2021/05/12 | 282104 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma -2021/05/12 | 28119 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma -2021/05/12 | 28008 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma -2021/05/12 | 27362 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma -2021/05/12 | 27274 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma -2021/05/12 | 27196 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma -2021/05/12 | 27183 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma -2021/05/12 | 261962 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma -2021/05/12 | 2616931 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma -2021/05/12 | 258665 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma 2021/05/12 | 2560111 | graphics/pgf/contrib/worldflags/doc/worldflags.pdf -2021/05/12 | 25582728 | systems/texlive/tlnet/install-tl.zip -2021/05/12 | 25341 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma -2021/05/12 | 25154 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma -2021/05/12 | 250212 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma -2021/05/12 | 25001 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma -2021/05/12 | 2499400 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma -2021/05/12 | 243479 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma -2021/05/12 | 239476 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma -2021/05/12 | 23882 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma 2021/05/12 | 2356868 | macros/latex/contrib/hvfloat/doc/examples/doublepage2s1c.pdf +2021/05/12 | 23500748 | systems/win32/w32tex/cjkzr.tar.xz 2021/05/12 | 2338 | macros/latex/contrib/acrotex/web.ins -2021/05/12 | 23290 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma -2021/05/12 | 2303924 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz 2021/05/12 | 2254268 | macros/latex/contrib/acrotex/doc/aeb_man.pdf +2021/05/12 | 22214320 | systems/win32/w32tex/pdftex-w32.tar.xz 2021/05/12 | 221440 | macros/latex/contrib/projlib/ProjLib-doc-cn.pdf -2021/05/12 | 22039 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma 2021/05/12 | 216092 | macros/latex/contrib/els-cas-templates/doc/glyphtounicode.tex -2021/05/12 | 214103 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma -2021/05/12 | 21130 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma -2021/05/12 | 211053 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma -2021/05/12 | 209342 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma -2021/05/12 | 209283 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma 2021/05/12 | 2088 | macros/latex/contrib/hvfloat/Changes -2021/05/12 | 208181 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma -2021/05/12 | 20809713 | systems/texlive/tlnet/install-tl-windows.exe 2021/05/12 | 20267 | macros/latex/contrib/projlib/ProjLib-doc-en.tex -2021/05/12 | 202556 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma 2021/05/12 | 2012 | macros/latex/contrib/acrotex/dljslib.ins -2021/05/12 | 20120 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma -2021/05/12 | 2009489 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma -2021/05/12 | 199702 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma -2021/05/12 | 198130 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma 2021/05/12 | 197272 | macros/latex/contrib/acrotex/doc/eformman.tex -2021/05/12 | 1959 | biblio/bibtex/contrib/vancouver/README -2021/05/12 | 195664 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma -2021/05/12 | 195566 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma -2021/05/12 | 193717 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma -2021/05/12 | 19106 | biblio/bibtex/contrib/vancouver/LICENSE 2021/05/12 | 18990 | macros/latex/contrib/projlib/ProjLib-doc-cn.tex +2021/05/12 | 18927808 | systems/win32/w32tex/luatex-dev-w32.tar.xz +2021/05/12 | 18905048 | systems/win32/w32tex/luatex-exp-w32.tar.xz +2021/05/12 | 18898988 | systems/win32/w32tex/luatex-w32.tar.xz 2021/05/12 | 18508 | macros/latex/contrib/els-cas-templates/doc/elsdoc-cas.tex 2021/05/12 | 1842 | macros/latex/contrib/acrotex/taborder.ins -2021/05/12 | 18096 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma 2021/05/12 | 1808 | macros/latex/contrib/els-cas-templates/README -2021/05/12 | 180048 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma -2021/05/12 | 17957 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma -2021/05/12 | 179379 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma 2021/05/12 | 176866 | language/marathi.zip -2021/05/12 | 1725545 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma -2021/05/12 | 17221193 | systems/texlive/tlnet/tlpkg/texlive.tlpdb 2021/05/12 | 170 | macros/latex/contrib/hvfloat/doc/images/missing.txt 2021/05/12 | 17013 | graphics/pgf/contrib/worldflags/tex/worldflags.sty 2021/05/12 | 16995 | macros/latex/contrib/codehigh/codehigh.sty 2021/05/12 | 1684 | macros/latex/contrib/els-cas-templates/manifest.txt -2021/05/12 | 167905 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma -2021/05/12 | 163656 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma -2021/05/12 | 16326 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma 2021/05/12 | 16284 | systems/texlive/tlnet/archive/pxjahyper.r59165.tar.xz 2021/05/12 | 1619 | macros/latex/contrib/unravel/README.md -2021/05/12 | 16114 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma -2021/05/12 | 159968 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma -2021/05/12 | 15576 | biblio/bibtex/contrib/vancouver/vancouver.bib -2021/05/12 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512 -2021/05/12 | 153890 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma -2021/05/12 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512 -2021/05/12 | 152762 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma -2021/05/12 | 1517 | biblio/bibtex/contrib/vancouver/FAQ -2021/05/12 | 149134 | biblio/bibtex/contrib/vancouver.zip -2021/05/12 | 147153 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma -2021/05/12 | 147140 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma -2021/05/12 | 145 | systems/texlive/tlnet/install-tl.zip.sha512 -2021/05/12 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 2021/05/12 | 1448 | macros/latex/contrib/acrotex/examples/test_install.tex 2021/05/12 | 144643 | macros/latex/contrib/projlib/ProjLib-doc-en.pdf -2021/05/12 | 14353 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma -2021/05/12 | 1425982 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma -2021/05/12 | 1424811 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma -2021/05/12 | 14056 | biblio/bibtex/contrib/vancouver/vancouver.tex 2021/05/12 | 14013 | macros/latex/contrib/els-cas-templates/doc/rvdtx.sty 2021/05/12 | 139999 | language/marathi/marathi.pdf 2021/05/12 | 13988407 | macros/latex/contrib/hvfloat.zip 2021/05/12 | 1394 | macros/luatex/latex/lua-ul/docstrip-luacode.sty -2021/05/12 | 136427 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma -2021/05/12 | 135005 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma -2021/05/12 | 13470 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma 2021/05/12 | 132308 | systems/texlive/tlnet/archive/pxjahyper.doc.r59165.tar.xz -2021/05/12 | 131490 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma 2021/05/12 | 13105 | macros/latex/contrib/acrotex/doc/install_jsfiles.tex -2021/05/12 | 1307724 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma 2021/05/12 | 13070 | macros/latex/contrib/acrotex/contsolns.dtx -2021/05/12 | 1295412 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma -2021/05/12 | 12924 | systems/texlive/tlnet/archive/easybook.r59166.tar.xz -2021/05/12 | 1281103 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma -2021/05/12 | 1270504 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma -2021/05/12 | 1269614 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma -2021/05/12 | 124971 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma 2021/05/12 | 120846 | macros/latex/contrib/easybook/easybook.dtx -2021/05/12 | 120699 | biblio/bibtex/contrib/vancouver/vancouver.pdf 2021/05/12 | 1189 | macros/latex/contrib/acrotex/examples/README.md -2021/05/12 | 1185859 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma -2021/05/12 | 1185751 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma -2021/05/12 | 1171728 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma -2021/05/12 | 116931 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma 2021/05/12 | 115576 | macros/latex/contrib/hvfloat/doc/hvfloat.tex -2021/05/12 | 115469 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma -2021/05/12 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini 2021/05/12 | 1151 | graphics/pgf/contrib/worldflags/tex/worldflag_CA.tex -2021/05/12 | 112253 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma 2021/05/12 | 111596 | macros/luatex/latex/lua-ul.zip -2021/05/12 | 109272 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma -2021/05/12 | 107992 | systems/texlive/tlnet/archive/texlive-scripts.r59164.tar.xz -2021/05/12 | 1078878 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma -2021/05/12 | 10701 | usergrps/usergrps/de.html -2021/05/12 | 10656 | usergrps/usergrps/pl.html -2021/05/12 | 10651 | usergrps/usergrps/hu.html -2021/05/12 | 10584 | usergrps/usergrps/cz.html -2021/05/12 | 10511 | usergrps/usergrps/fr.html -2021/05/12 | 10491 | usergrps/usergrps/kr.html -2021/05/12 | 10468 | usergrps/usergrps/bg.html -2021/05/12 | 10467 | usergrps/usergrps/nl.html -2021/05/12 | 104624 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma +2021/05/12 | 10700708 | systems/win32/w32tex/ptex-w32.tar.xz 2021/05/12 | 104400 | macros/latex/contrib/codehigh/codehigh.pdf -2021/05/12 | 10430 | usergrps/usergrps/cn.html 2021/05/12 | 103958 | macros/luatex/latex/lua-ul/lua-ul.pdf -2021/05/12 | 10374 | usergrps/usergrps/it.html -2021/05/12 | 10371 | usergrps/usergrps/es.html -2021/05/12 | 10354 | usergrps/usergrps/gb.html -2021/05/12 | 103323 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma -2021/05/12 | 102806 | macros/latex/contrib/bnumexpr.zip -2021/05/12 | 10262 | usergrps/usergrps/us.html -2021/05/12 | 10247 | usergrps/usergrps/gr.html -2021/05/12 | 10226 | usergrps/usergrps/esc.html -2021/05/12 | 10222 | usergrps/usergrps/dk.html -2021/05/12 | 10220 | usergrps/usergrps/pt.html -2021/05/12 | 10202 | usergrps/usergrps/vn.html -2021/05/12 | 10192 | usergrps/usergrps/no.html -2021/05/12 | 101761 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma -2021/05/12 | 10165 | usergrps/usergrps/br.html -2021/05/12 | 10151 | usergrps/usergrps/ca.html -2021/05/12 | 10147 | usergrps/usergrps/ie.html -2021/05/12 | 10141 | usergrps/usergrps/za.html -2021/05/12 | 10131 | usergrps/usergrps/uy.html -2021/05/12 | 10122 | usergrps/usergrps/is.html -2021/05/12 | 10091 | usergrps/usergrps/kh.html -2021/05/12 | 10081 | usergrps/usergrps/mx.html -2021/05/12 | 10031 | usergrps/usergrps/lt.html -2021/05/12 | 10001 | usergrps/usergrps/ee.html 2021/05/11 | 9999 | macros/latex/contrib/l3kernel/l3news10.tex 2021/05/11 | 993116 | systems/texlive/tlnet/archive/europecv.doc.r59162.tar.xz 2021/05/11 | 9610 | language/marathi/namuna-book.tex @@ -329,11 +554,9 @@ 2021/05/11 | 9216 | macros/latex/contrib/l3kernel/l3unicode.dtx 2021/05/11 | 90051 | macros/latex/contrib/l3kernel/l3seq.dtx 2021/05/11 | 89403 | macros/latex/contrib/l3kernel/l3int.dtx -2021/05/11 | 8619736 | systems/win32/w32tex/uptex-w32.tar.xz 2021/05/11 | 85364 | macros/latex/contrib/l3kernel/l3coffins.dtx 2021/05/11 | 8481 | macros/latex/contrib/l3kernel/l3news11.tex 2021/05/11 | 84816 | macros/latex/contrib/l3kernel/l3fp-basics.dtx -2021/05/11 | 830851 | systems/win32/w32tex/ChangeLog 2021/05/11 | 80940 | macros/latex/contrib/l3kernel/l3clist.dtx 2021/05/11 | 7999236 | systems/texlive/tlnet/archive/tlgs.win32.r59157.tar.xz 2021/05/11 | 79798 | macros/latex/contrib/l3kernel/l3names.dtx @@ -350,7 +573,6 @@ 2021/05/11 | 70578 | macros/latex/contrib/l3kernel/l3fp.dtx 2021/05/11 | 69576 | macros/latex/contrib/l3kernel/l3candidates.dtx 2021/05/11 | 6913572 | systems/win32/w32tex/win64/pdftex-w64.tar.xz -2021/05/11 | 6889 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl 2021/05/11 | 68545 | macros/latex/contrib/l3kernel/l3text-case.dtx 2021/05/11 | 6780088 | macros/latex/contrib/l3kernel/source3.pdf 2021/05/11 | 6677 | macros/latex/contrib/l3kernel/l3news02.tex @@ -425,7 +647,6 @@ 2021/05/11 | 23070 | macros/latex/contrib/l3kernel/l3fp-logic.dtx 2021/05/11 | 229520 | systems/texlive/tlnet/archive/texlive.infra.r59154.tar.xz 2021/05/11 | 2229 | macros/latex/contrib/l3kernel/source3.tex -2021/05/11 | 22172916 | systems/win32/w32tex/pdftex-w32.tar.xz 2021/05/11 | 21643 | macros/latex/contrib/l3kernel/l3text-purify.dtx 2021/05/11 | 21168 | macros/latex/contrib/l3kernel/l3luatex.dtx 2021/05/11 | 2115492 | systems/texlive/tlnet/archive/xint.doc.r59161.tar.xz @@ -437,9 +658,6 @@ 2021/05/11 | 2031 | language/marathi/namuna-letter.tex 2021/05/11 | 19644 | macros/latex/contrib/l3kernel/l3fp-convert.dtx 2021/05/11 | 1908 | macros/latex/contrib/l3kernel/interface3.tex -2021/05/11 | 18931684 | systems/win32/w32tex/luatex-dev-w32.tar.xz -2021/05/11 | 18894040 | systems/win32/w32tex/luatex-exp-w32.tar.xz -2021/05/11 | 18887188 | systems/win32/w32tex/luatex-w32.tar.xz 2021/05/11 | 1873116 | systems/win32/w32tex/win64/ptex-w64.tar.xz 2021/05/11 | 186 | macros/latex/contrib/codehigh/README 2021/05/11 | 18579 | macros/latex/contrib/l3kernel/l3fp-round.dtx @@ -480,7 +698,6 @@ 2021/05/11 | 10827 | language/marathi/namuna-report.tex 2021/05/11 | 107921 | macros/latex/contrib/l3kernel/l3expan.dtx 2021/05/11 | 107383 | macros/latex/contrib/l3kernel/l3news09.tex -2021/05/11 | 10700004 | systems/win32/w32tex/ptex-w32.tar.xz 2021/05/11 | 105522 | macros/latex/contrib/l3kernel/l3fp-parse.dtx 2021/05/11 | 10023678 | systems/texlive/tlnet/update-tlmgr-r59154.sh 2021/05/10 | 98152500 | systems/win32/w32tex/pgfcontrib.tar.xz @@ -500,7 +717,6 @@ 2021/05/10 | 661821 | macros/latex/contrib/europecv/europecv.pdf 2021/05/10 | 6593 | macros/latex/contrib/europecv/templates/europecv_photo.jpg 2021/05/10 | 54458 | macros/latex/contrib/europecv/europecv.tex -2021/05/10 | 52805236 | systems/win32/w32tex/latex-dev.tar.xz 2021/05/10 | 510 | macros/latex/contrib/europecv/templates/europecv_thesis.bib 2021/05/10 | 5026 | macros/latex/contrib/els-cas-templates/cas-sc-template.tex 2021/05/10 | 5026 | macros/latex/contrib/els-cas-templates/cas-dc-template.tex @@ -522,7 +738,6 @@ 2021/05/10 | 37766 | macros/latex/contrib/europecv/examples/europasslogo.eps 2021/05/10 | 37766 | macros/latex/contrib/europecv/europasslogo.eps 2021/05/10 | 37248 | macros/latex/contrib/europecv/examples/minimal.pdf -2021/05/10 | 35246464 | systems/win32/w32tex/ltxpkgs.tar.xz 2021/05/10 | 3438 | macros/latex/contrib/europecv/ecvgr.def 2021/05/10 | 3436468 | systems/win32/w32tex/tex4htk-w32.tar.xz 2021/05/10 | 34265 | macros/latex/contrib/europecv/europasslogo.pdf @@ -595,176 +810,51 @@ 2021/05/10 | 1002 | macros/latex/contrib/europecv/examples/bulgarian-utf8.tex 2021/05/10 | 10000 | usergrps/usergrps/labels.pdf 2021/05/09 | 999720 | systems/texlive/tlnet/archive/biblatex-gost.doc.r59135.tar.xz -2021/05/09 | 99663 | macros/latex/contrib/changes/examples/changes.example.authormarkup.footnote.pdf -2021/05/09 | 98926 | macros/latex/contrib/changes/examples/changes.example.setsummarytowidth.pdf -2021/05/09 | 97975 | macros/latex/contrib/changes/examples/changes.example.listofchanges.summary.pdf -2021/05/09 | 97786 | macros/latex/contrib/changes/examples/changes.example.setsummarywidth.pdf -2021/05/09 | 96 | macros/latex/contrib/changes/userdoc/sethighlightmarkup_ex.tex -2021/05/09 | 96371 | macros/latex/contrib/changes/examples/changes.example.settruncatewidth.pdf -2021/05/09 | 94860 | macros/latex/contrib/changes/examples/changes.example.setaddedmarkup.pdf -2021/05/09 | 94839 | macros/latex/contrib/changes/examples/changes.example.setauthormarkuptext.pdf -2021/05/09 | 94091 | macros/latex/contrib/changes/examples/changes.example.setdeletedmarkup.pdf -2021/05/09 | 94058 | macros/latex/contrib/changes/examples/changes.example.setcommentmarkup.pdf -2021/05/09 | 93929 | macros/latex/contrib/changes/examples/changes.example.sethighlightmarkup.pdf 2021/05/09 | 938 | graphics/pgf/contrib/circuitikz/doc/circuitikz-context.tex 2021/05/09 | 937253 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.1.2.sty 2021/05/09 | 9364 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.tex -2021/05/09 | 93585 | macros/latex/contrib/changes/examples/changes.example.setauthormarkupposition.pdf 2021/05/09 | 929934 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.1.2.tex -2021/05/09 | 92919 | macros/latex/contrib/changes/examples/changes.example.simple.pdf -2021/05/09 | 91 | macros/latex/contrib/changes/userdoc/comment_ex.tex 2021/05/09 | 9109 | graphics/pgf/contrib/circuitikz/tex/pgfcircflow.tex -2021/05/09 | 89121 | macros/latex/contrib/changes/examples/changes.example.listofchanges.show.pdf -2021/05/09 | 88820 | macros/latex/contrib/changes/examples/changes.example.listofchanges.all.pdf -2021/05/09 | 88402 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uuline.pdf -2021/05/09 | 88388 | macros/latex/contrib/changes/examples/changes.example.listofchanges.title.pdf 2021/05/09 | 8757 | graphics/pgf/contrib/circuitikz/tex/pgfcirccurrent.tex -2021/05/09 | 86749 | macros/latex/contrib/changes/examples/changes.example.listofchanges.compactsummary.pdf -2021/05/09 | 86058 | macros/latex/contrib/changes/examples/changes.example.markup.bfit.pdf -2021/05/09 | 85486 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.bf.pdf -2021/05/09 | 85414 | macros/latex/contrib/changes/examples/changes.example.setauthormarkup.pdf -2021/05/09 | 85371 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.uuline.pdf -2021/05/09 | 85110 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.sl.pdf -2021/05/09 | 84993 | macros/latex/contrib/changes/examples/changes.example.listofchanges.wrong.pdf -2021/05/09 | 84993 | macros/latex/contrib/changes/examples/changes.example.listofchanges.list.pdf -2021/05/09 | 84982 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.bf.pdf -2021/05/09 | 84812 | macros/latex/contrib/changes/examples/changes.example.markup.underlined.pdf -2021/05/09 | 84759 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.uwave.pdf -2021/05/09 | 84735 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.sl.pdf -2021/05/09 | 84681 | macros/latex/contrib/changes/examples/changes.example.markup.nocolor.pdf -2021/05/09 | 84357 | macros/latex/contrib/changes/examples/changes.example.highlightmarkup.uwave.pdf -2021/05/09 | 84182 | macros/latex/contrib/changes/examples/changes.example.packageoptions.xcolor.pdf 2021/05/09 | 841461 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.0.sty -2021/05/09 | 83 | macros/latex/contrib/changes/userdoc/setauthormarkup_ex.tex -2021/05/09 | 83877 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uwave.pdf -2021/05/09 | 83846 | macros/latex/contrib/changes/examples/changes.example.authormarkuptext.name.pdf -2021/05/09 | 83749 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.it.pdf -2021/05/09 | 83749 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.em.pdf -2021/05/09 | 83517 | macros/latex/contrib/changes/examples/changes.example.packageoptions.truncate.pdf 2021/05/09 | 834142 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.0.tex -2021/05/09 | 82 | macros/latex/contrib/changes/userdoc/usepackage_ulem_changes_ex.tex -2021/05/09 | 82970 | macros/latex/contrib/changes/examples/changes.example.highlightmarkup.uuline.pdf -2021/05/09 | 82935 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.dashuline.pdf -2021/05/09 | 82891 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.it.pdf -2021/05/09 | 82891 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.em.pdf -2021/05/09 | 82746 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.uline.pdf -2021/05/09 | 82590 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.dashuline.pdf -2021/05/09 | 82553 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.dotuline.pdf 2021/05/09 | 8229 | graphics/pgf/contrib/circuitikz/doc/ctikzmanutils.sty -2021/05/09 | 82299 | macros/latex/contrib/changes/examples/changes.example.defaultcolor.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.setsocextension.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.markup.wrong.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.markup.default.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.highlightmarkup.background.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.draft.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.wrong.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.sout.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.commentmarkup.todo.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.commandnameprefix.wrong.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.commandnameprefix.none.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.commandnameprefix.ifneeded.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.commandnameprefix.always.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkup.wrong.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkuptext.wrong.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkuptext.id.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkup.superscript.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkupposition.wrong.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkupposition.right.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.authormarkupposition.left.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.wrong.pdf -2021/05/09 | 82295 | macros/latex/contrib/changes/examples/changes.example.addedmarkup.colored.pdf -2021/05/09 | 82294 | macros/latex/contrib/changes/examples/changes.example.authormarkup.subscript.pdf -2021/05/09 | 82291 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uline.pdf -2021/05/09 | 81965 | macros/latex/contrib/changes/examples/changes.example.commentmarkup.uwave.pdf -2021/05/09 | 81687 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.dotuline.pdf -2021/05/09 | 81521 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.xout.pdf -2021/05/09 | 81125 | macros/latex/contrib/changes/examples/changes.example.deletedmarkup.colored.pdf -2021/05/09 | 79 | macros/latex/contrib/changes/userdoc/usepackage_xcolor_changes_ex.tex -2021/05/09 | 7903723 | macros/latex/contrib/changes.zip -2021/05/09 | 78953 | macros/latex/contrib/changes/examples/changes.example.commentmarkup.margin.pdf 2021/05/09 | 758990 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.6.sty 2021/05/09 | 75385 | systems/win32/miktex/tm/packages/polexpr.tar.lzma -2021/05/09 | 75270 | macros/latex/contrib/changes/examples/changes.example.packageoptions.ulem.pdf 2021/05/09 | 751663 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.9.6.tex -2021/05/09 | 74370 | macros/latex/contrib/changes/examples/changes.example.authormarkup.brackets.pdf -2021/05/09 | 73913 | macros/latex/contrib/changes/examples/changes.example.authormarkup.none.pdf 2021/05/09 | 726068 | systems/texlive/tlnet/archive/l3build.doc.r59136.tar.xz 2021/05/09 | 690730 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.9.3.sty 2021/05/09 | 683433 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.9.3.tex -2021/05/09 | 68141 | macros/latex/contrib/changes/examples/changes.example.final.pdf -2021/05/09 | 66 | macros/latex/contrib/changes/userdoc/usepackage_authormarkupposition_changes_in.tex 2021/05/09 | 65765323 | systems/win32/miktex/tm/packages/rmannot.tar.lzma 2021/05/09 | 6545 | systems/win32/miktex/tm/packages/xintsession.tar.lzma 2021/05/09 | 646790 | systems/win32/miktex/tm/packages/pm-isomath.tar.lzma -2021/05/09 | 63 | macros/latex/contrib/changes/userdoc/setauthormarkupposition_ex.tex 2021/05/09 | 63720288 | systems/win32/w32tex/biblatex-biber.tar.xz 2021/05/09 | 6364 | systems/texlive/tlnet/archive/tikz-cd.r59133.tar.xz -2021/05/09 | 62 | macros/latex/contrib/changes/userdoc/replaced_in.tex 2021/05/09 | 615 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.bib -2021/05/09 | 58 | macros/latex/contrib/changes/userdoc/usepackage_authormarkuptext_changes_in.tex -2021/05/09 | 58 | macros/latex/contrib/changes/userdoc/listofchanges_in.tex -2021/05/09 | 58707 | macros/latex/contrib/changes/changes.dtx -2021/05/09 | 56 | macros/latex/contrib/changes/userdoc/usepackage_highlightmarkup_changes_in.tex -2021/05/09 | 56 | macros/latex/contrib/changes/userdoc/setlocextension_ex.tex -2021/05/09 | 56 | macros/latex/contrib/changes/userdoc/setdeletedmarkup_ex.tex -2021/05/09 | 55 | macros/latex/contrib/changes/userdoc/settruncatewidth_ex.tex -2021/05/09 | 55 | macros/latex/contrib/changes/userdoc/definechangesauthor_in.tex 2021/05/09 | 55385 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-template.pdf 2021/05/09 | 54038 | graphics/pgf/contrib/circuitikz/tex/pgfcircmonopoles.tex -2021/05/09 | 53 | macros/latex/contrib/changes/userdoc/setsummarywidth_ex.tex 2021/05/09 | 532690 | systems/win32/miktex/tm/packages/pst-circ.tar.lzma 2021/05/09 | 531072 | systems/win32/miktex/tm/packages/windycity.tar.lzma -2021/05/09 | 52 | macros/latex/contrib/changes/userdoc/usepackage_deletedmarkup_changes_in.tex -2021/05/09 | 52 | macros/latex/contrib/changes/userdoc/usepackage_commentmarkup_changes_in.tex -2021/05/09 | 52 | macros/latex/contrib/changes/userdoc/setauthormarkuptext_ex.tex -2021/05/09 | 52 | macros/latex/contrib/changes/userdoc/setaddedmarkup_ex.tex 2021/05/09 | 529448 | systems/texlive/tlnet/archive/pgfplots.r59132.tar.xz -2021/05/09 | 51 | macros/latex/contrib/changes/userdoc/usepackage_draft_changes_in.tex -2021/05/09 | 51 | macros/latex/contrib/changes/userdoc/usepackage_commandnameprefix_changes_in.tex 2021/05/09 | 5186 | dviware/dviout/README.txt -2021/05/09 | 50 | macros/latex/contrib/changes/userdoc/usepackage_authormarkup_changes_in.tex 2021/05/09 | 5039 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-template.tex -2021/05/09 | 5030 | macros/latex/contrib/changes/example-screenshot.dtx -2021/05/09 | 49 | macros/latex/contrib/changes/userdoc/setauthormarkupposition_in.tex -2021/05/09 | 49 | macros/latex/contrib/changes/userdoc/deleted_in.tex 2021/05/09 | 497453 | macros/latex/contrib/msu-thesis.zip -2021/05/09 | 4932 | macros/latex/contrib/changes/changes.drv -2021/05/09 | 48 | macros/latex/contrib/changes/userdoc/usepackage_todonotes_changes_ex.tex -2021/05/09 | 48 | macros/latex/contrib/changes/userdoc/usepackage_addedmarkup_changes_in.tex -2021/05/09 | 48 | macros/latex/contrib/changes/userdoc/setsocextension_ex.tex -2021/05/09 | 47 | macros/latex/contrib/changes/userdoc/highlight_in.tex -2021/05/09 | 47 | macros/latex/contrib/changes/userdoc/added_in.tex 2021/05/09 | 455058 | systems/win32/miktex/tm/packages/tipauni.tar.lzma -2021/05/09 | 453200 | macros/latex/contrib/changes/changes.english.withcode.pdf 2021/05/09 | 4423 | macros/latex/contrib/acrotex/acrotex.ins -2021/05/09 | 43 | macros/latex/contrib/changes/userdoc/usepackage_defaultcolor_changes_in.tex -2021/05/09 | 42 | macros/latex/contrib/changes/userdoc/usepackage_todonotes_changes_in.tex 2021/05/09 | 426541 | graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex 2021/05/09 | 424 | systems/texlive/tlnet/archive/tlmgrbasics.r59134.tar.xz 2021/05/09 | 422268 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.8.3.sty -2021/05/09 | 42081 | macros/latex/contrib/changes/userdoc/changes.de.tex -2021/05/09 | 41 | macros/latex/contrib/changes/userdoc/usepackage_truncate_changes_in.tex -2021/05/09 | 41 | macros/latex/contrib/changes/userdoc/usepackage_truncate_changes_ex.tex -2021/05/09 | 41 | macros/latex/contrib/changes/userdoc/setauthormarkuptext_in.tex 2021/05/09 | 418 | graphics/pgf/contrib/circuitikz/doc/compatibility.tex 2021/05/09 | 416850 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-0.8.3.tex 2021/05/09 | 415236 | systems/texlive/tlnet/archive/lua-physical.doc.r59138.tar.xz 2021/05/09 | 403539 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.7.sty -2021/05/09 | 39 | macros/latex/contrib/changes/userdoc/usepackage_xcolor_changes_in.tex 2021/05/09 | 3940 | systems/texlive/tlnet/archive/mindflow.source.r59137.tar.xz 2021/05/09 | 393856 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.6.sty -2021/05/09 | 38 | macros/latex/contrib/changes/userdoc/usepackage_markup_changes_in.tex -2021/05/09 | 38 | macros/latex/contrib/changes/userdoc/path_doc_examples_in.tex -2021/05/09 | 38432 | macros/latex/contrib/changes/userdoc/changes.en.tex -2021/05/09 | 37 | macros/latex/contrib/changes/userdoc/usepackage_ulem_changes_in.tex -2021/05/09 | 376311 | macros/latex/contrib/changes/changes.ngerman.pdf 2021/05/09 | 3758 | graphics/pgf/contrib/circuitikz/tex/pgfcircutils.tex -2021/05/09 | 368902 | macros/latex/contrib/changes/changes.english.pdf 2021/05/09 | 364469 | graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex 2021/05/09 | 364086 | graphics/pgf/contrib/circuitikz/tex/circuitikz-0.4.sty 2021/05/09 | 359576 | systems/texlive/tlnet/archive/lua-physical.r59138.tar.xz 2021/05/09 | 3590 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex -2021/05/09 | 34 | macros/latex/contrib/changes/userdoc/sethighlightmarkup_in.tex 2021/05/09 | 34956 | graphics/pgf/contrib/circuitikz/doc/changelog.tex 2021/05/09 | 34875 | systems/win32/miktex/tm/packages/ninecolors.tar.lzma 2021/05/09 | 34691 | graphics/pgf/contrib/circuitikz/tex/pgfcircvoltage.tex @@ -773,93 +863,52 @@ 2021/05/09 | 3387625 | systems/win32/miktex/tm/packages/worldflags.tar.lzma 2021/05/09 | 33483 | systems/win32/miktex/tm/packages/texfot.tar.lzma 2021/05/09 | 33324 | systems/texlive/tlnet/archive/l3build.r59136.tar.xz -2021/05/09 | 32 | macros/latex/contrib/changes/userdoc/usepackage_options_changes_in.tex -2021/05/09 | 32 | macros/latex/contrib/changes/userdoc/setdeletedmarkup_in.tex -2021/05/09 | 32 | macros/latex/contrib/changes/userdoc/setcommentmarkup_in.tex 2021/05/09 | 3277 | graphics/pgf/contrib/circuitikz/README.md 2021/05/09 | 321763 | systems/win32/miktex/tm/packages/mparhack.tar.lzma 2021/05/09 | 3210 | macros/latex/contrib/acrotex/exerquiz.ins -2021/05/09 | 31 | macros/latex/contrib/changes/userdoc/setauthormarkup_in.tex 2021/05/09 | 3130 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-legacy.tex 2021/05/09 | 3121341 | dviware/dviout/dviout3190-source.zip -2021/05/09 | 30 | macros/latex/contrib/changes/userdoc/setsocextension_in.tex -2021/05/09 | 30 | macros/latex/contrib/changes/userdoc/setlocextension_in.tex -2021/05/09 | 30 | macros/latex/contrib/changes/userdoc/setaddedmarkup_in.tex 2021/05/09 | 30990 | graphics/pgf/contrib/circuitikz/tex/pgfcircshapes.tex 2021/05/09 | 30815 | graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex -2021/05/09 | 29 | macros/latex/contrib/changes/userdoc/comment_in.tex 2021/05/09 | 29820 | systems/texlive/tlnet/archive/l3build.source.r59136.tar.xz -2021/05/09 | 28 | macros/latex/contrib/changes/userdoc/usepackage_final_changes_in.tex 2021/05/09 | 280 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-example.tex -2021/05/09 | 27 | macros/latex/contrib/changes/userdoc/settruncatewidth_in.tex -2021/05/09 | 27 | macros/latex/contrib/changes/userdoc/setsummarytowidth_in.tex -2021/05/09 | 27 | macros/latex/contrib/changes/userdoc/path_script_in.tex 2021/05/09 | 279924 | systems/texlive/tlnet/archive/tikz-cd.doc.r59133.tar.xz 2021/05/09 | 2771940 | systems/win32/miktex/tm/packages/onedown.tar.lzma 2021/05/09 | 27503 | macros/latex/contrib/msu-thesis/msu-thesis.cls 2021/05/09 | 2707199 | install/graphics/pgf/contrib/circuitikz.tds.zip -2021/05/09 | 26 | macros/latex/contrib/changes/userdoc/setsummarywidth_in.tex 2021/05/09 | 26969 | macros/latex/contrib/msu-thesis/msu-thesis.tex 2021/05/09 | 2691207 | graphics/pgf/contrib/circuitikz.zip 2021/05/09 | 263250 | systems/win32/miktex/tm/packages/pbalance.tar.lzma -2021/05/09 | 25 | macros/latex/contrib/changes/userdoc/script_pymergechanges_empty.tex 2021/05/09 | 2562682 | systems/win32/miktex/tm/packages/xint.tar.lzma -2021/05/09 | 254 | macros/latex/contrib/changes/userdoc/listofchanges_ex.tex 2021/05/09 | 241412 | graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex -2021/05/09 | 229 | macros/latex/contrib/changes/userdoc/script_pymergechanges.tex 2021/05/09 | 22692372 | systems/win32/miktex/tm/packages/newcomputermodern.tar.lzma -2021/05/09 | 224 | macros/latex/contrib/changes/userdoc/replaced_ex.tex -2021/05/09 | 223 | macros/latex/contrib/changes/userdoc/highlight_ex.tex 2021/05/09 | 222407 | macros/latex/contrib/msu-thesis/msu-thesis.pdf -2021/05/09 | 21 | macros/latex/contrib/changes/userdoc/usepackage_changes_in.tex 2021/05/09 | 217160 | systems/win32/miktex/tm/packages/pgf-pie.tar.lzma 2021/05/09 | 21160 | systems/texlive/tlnet/archive/biblatex-gost.r59135.tar.xz 2021/05/09 | 199924 | macros/latex/contrib/msu-thesis/samples/MSU-thesis-testfile.pdf -2021/05/09 | 196 | macros/latex/contrib/changes/userdoc/setcommentmarkup_ex.tex 2021/05/09 | 1930 | graphics/pgf/contrib/circuitikz/tex/ctikzstyle-romano.tex 2021/05/09 | 1880 | systems/texlive/tlnet/archive/mindflow.r59137.tar.xz 2021/05/09 | 186516 | systems/texlive/tlnet/archive/mindflow.doc.r59137.tar.xz -2021/05/09 | 182 | macros/latex/contrib/changes/userdoc/added_ex.tex 2021/05/09 | 1803596 | systems/win32/miktex/tm/packages/nicematrix.tar.lzma 2021/05/09 | 1800 | macros/latex/contrib/msu-thesis/README.md -2021/05/09 | 177 | macros/latex/contrib/changes/userdoc/deleted_ex.tex 2021/05/09 | 17727 | graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf 2021/05/09 | 1765936 | systems/texlive/tlnet/archive/pgfplots.source.r59132.tar.xz -2021/05/09 | 174 | macros/latex/contrib/changes/userdoc/definechangesauthor_ex.tex -2021/05/09 | 171 | macros/latex/contrib/changes/userdoc/usepackage_markup_changes_ex.tex -2021/05/09 | 16628 | macros/latex/contrib/changes/examples.dtx 2021/05/09 | 16580 | graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex -2021/05/09 | 164 | macros/latex/contrib/changes/userdoc/usepackage_commandnameprefix_changes_ex.tex -2021/05/09 | 154 | macros/latex/contrib/changes/userdoc/usepackage_authormarkup_changes_ex.tex 2021/05/09 | 15328 | graphics/pgf/contrib/circuitikz/tex/pgfcirclabel.tex -2021/05/09 | 151 | macros/latex/contrib/changes/userdoc/usepackage_commentmarkup_changes_ex.tex 2021/05/09 | 151392 | systems/texlive/tlnet/archive/tlmgrbasics.doc.r59134.tar.xz -2021/05/09 | 147 | macros/latex/contrib/changes/userdoc/usepackage_deletedmarkup_changes_ex.tex 2021/05/09 | 145379 | systems/texlive/tlnet/tlpkg/TeXLive/TLUtils.pm -2021/05/09 | 143191 | macros/latex/contrib/changes/examples/changes.example.screenshot.pdf -2021/05/09 | 142 | macros/latex/contrib/changes/userdoc/usepackage_addedmarkup_changes_ex.tex 2021/05/09 | 139462 | systems/win32/miktex/tm/packages/vcell.tar.lzma 2021/05/09 | 1383374 | graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf 2021/05/09 | 137120 | systems/win32/miktex/tm/packages/pxjahyper.tar.lzma -2021/05/09 | 1326 | macros/latex/contrib/changes/README 2021/05/09 | 13085900 | systems/texlive/tlnet/archive/pgfplots.doc.r59132.tar.xz 2021/05/09 | 126090 | systems/win32/miktex/tm/packages/ut-thesis.tar.lzma 2021/05/09 | 12348 | graphics/pgf/contrib/circuitikz/tex/circuitikz.sty 2021/05/09 | 123018 | graphics/pgf/contrib/circuitikz/tex/pgfcircquadpoles.tex 2021/05/09 | 122692761 | macros/context/latest/cont-tmf.zip -2021/05/09 | 120 | macros/latex/contrib/changes/userdoc/usepackage_authormarkupposition_changes_ex.tex -2021/05/09 | 117 | macros/latex/contrib/changes/userdoc/usepackage_highlightmarkup_changes_ex.tex -2021/05/09 | 110514 | macros/latex/contrib/changes/examples/changes.example.commentmarkup.footnote.pdf -2021/05/09 | 11043 | macros/latex/contrib/changes/pyMergeChanges.py -2021/05/09 | 109 | macros/latex/contrib/changes/userdoc/usepackage_authormarkuptext_changes_ex.tex 2021/05/09 | 1091448 | support/TeX4ht/source/tex4ht-4ht.tex -2021/05/09 | 106 | macros/latex/contrib/changes/userdoc/usepackage_defaultcolor_changes_ex.tex 2021/05/09 | 106148 | graphics/pgf/contrib/circuitikz/tex/pgfcircmultipoles.tex -2021/05/09 | 104 | macros/latex/contrib/changes/userdoc/setsummarytowidth_ex.tex -2021/05/09 | 104166 | macros/latex/contrib/changes/examples/changes.example.packageoptions.todonotes.pdf 2021/05/09 | 1021921 | graphics/pgf/contrib/circuitikz/tex/circuitikz-1.2.7.sty 2021/05/09 | 1014383 | graphics/pgf/contrib/circuitikz/tex/t-circuitikz-1.2.7.tex -2021/05/09 | 10120 | macros/latex/contrib/changes/changes.ins 2021/05/08 | 982928 | systems/texlive/tlnet/archive/latexindent.doc.r59121.tar.xz 2021/05/08 | 957 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/french-gost.lbx 2021/05/08 | 95278 | graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_pgfmathfloat.code.tex @@ -895,7 +944,6 @@ 2021/05/08 | 734672 | systems/texlive/tlnet/archive/texlive.infra.i386-netbsd.r58981.tar.xz 2021/05/08 | 723974 | graphics/pgf/contrib/pgfplots/source/pgfplotstests.context.tar.bz2 2021/05/08 | 71792 | graphics/pgf/contrib/pgfplots/tex/pgfplotsutil.code.tex -2021/05/08 | 6774728 | systems/win32/w32tex/ptex-ng-w32.tar.xz 2021/05/08 | 6758 | macros/luatex/latex/lua-physical/src/physical-data.lua 2021/05/08 | 6521 | graphics/pgf/contrib/pgfplots/tex/pgflibrarypgfplots.surfshading.pgfsys-dvipdfmx.def 2021/05/08 | 64209 | graphics/pgf/contrib/pgfplots/tex/tikzlibrarypgfplots.smithchart.code.tex @@ -922,7 +970,6 @@ 2021/05/08 | 5108 | systems/texlive/tlnet/archive/xintsession.r59120.tar.xz 2021/05/08 | 50466 | graphics/pgf/contrib/tikz-cd/tikz-cd-doc.tex 2021/05/08 | 5026 | graphics/pgf/contrib/pgfplots/tex/pgfplotsoldpgfsupp_tikzlibraryexternal.code.tex -2021/05/08 | 49476568 | systems/win32/w32tex/xetex-w32.tar.xz 2021/05/08 | 4904 | graphics/pgf/contrib/pgfplots/tex/pgfplots.sty 2021/05/08 | 485274 | graphics/pgf/contrib/pgfplots/tex/pgfplots.code.tex 2021/05/08 | 4782 | macros/luatex/latex/lua-physical/src/physical-dimension.lua @@ -1011,7 +1058,6 @@ 2021/05/08 | 2382 | macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/ltxdockit.cfg 2021/05/08 | 23581 | graphics/pgf/contrib/pgfplots/tex/tikzlibrarycolorbrewer.code.tex 2021/05/08 | 23537 | graphics/pgf/contrib/pgfplots/tex/pgfplotsarray.code.tex -2021/05/08 | 23484712 | systems/win32/w32tex/cjkzr.tar.xz 2021/05/08 | 232 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear-min.cbx 2021/05/08 | 232 | macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic-min.cbx 2021/05/08 | 23256 | graphics/pgf/contrib/pgfplots/README @@ -1274,79 +1320,3 @@ 2021/05/07 | 10361 | support/latexindent/LatexIndent/Command.pm 2021/05/07 | 10135 | support/latexindent/documentation/sec-indent-config-and-settings.tex 2021/05/07 | 100247 | macros/latex/contrib/l3packages/xtemplate.dtx -2021/05/06 | 9438 | macros/latex/contrib/l3build/l3build-install.lua -2021/05/06 | 909748 | systems/texlive/tlnet/archive/mcf2graph.doc.r59086.tar.xz -2021/05/06 | 86490 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm -2021/05/06 | 85239 | graphics/pgf/contrib/worldflags/tex/worldflag_AT-St.tex -2021/05/06 | 824 | info/tlmgr-intro-zh-cn/latexmkrc -2021/05/06 | 793716 | install/macros/latex/contrib/l3build.tds.zip -2021/05/06 | 77925 | macros/latex/contrib/hvfloat/doc/examples/capPos.pdf -2021/05/06 | 7629 | macros/latex/contrib/l3build/l3build-arguments.lua -2021/05/06 | 7585 | macros/latex/contrib/l3build/l3build-variables.lua -2021/05/06 | 72722 | macros/latex/contrib/froufrou.zip -2021/05/06 | 71908 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md -2021/05/06 | 7189 | macros/latex/contrib/l3build/l3build-manifest.lua -2021/05/06 | 708832 | macros/latex/contrib/l3build/l3build.pdf -2021/05/06 | 687 | macros/latex/contrib/hvfloat/doc/examples/README.exa -2021/05/06 | 6739 | macros/latex/contrib/l3build/l3build-typesetting.lua -2021/05/06 | 66866 | macros/latex/contrib/froufrou/froufrou.pdf -2021/05/06 | 651 | info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.tex -2021/05/06 | 6479 | macros/plain/contrib/xintsession.zip -2021/05/06 | 646065 | graphics/pgf/contrib/worldflags/tex/worldflag_AT-B.tex -2021/05/06 | 609715 | macros/latex/contrib/nicematrix/nicematrix.dtx -2021/05/06 | 607413 | support/TeX4ht/source/tex4ht-html4.tex -2021/05/06 | 60024353 | info/symbols/comprehensive.zip -2021/05/06 | 5946 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.cbx -2021/05/06 | 58771 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm -2021/05/06 | 56822 | systems/texlive/tlnet/tlpkg/translations/da.po -2021/05/06 | 538 | macros/latex/contrib/froufrou/LICENSE -2021/05/06 | 5232 | macros/latex/contrib/l3build/l3build.lua -2021/05/06 | 513 | macros/latex/contrib/froufrou/README.md -2021/05/06 | 5011 | macros/latex/contrib/l3build/l3build-aux.lua -2021/05/06 | 46536 | systems/texlive/tlnet/archive/polexpr.doc.r59088.tar.xz -2021/05/06 | 462481 | macros/latex/contrib/nicematrix/nicematrix-french.pdf -2021/05/06 | 449505 | info/tlmgr-intro-zh-cn.zip -2021/05/06 | 4476 | macros/latex/contrib/l3build/l3build-ctan.lua -2021/05/06 | 4338 | macros/latex/contrib/l3build/l3build-stdmain.lua -2021/05/06 | 376582 | info/tlmgr-intro-zh-cn/tlmgr-intro-zh-cn.pdf -2021/05/06 | 34564 | macros/latex/contrib/l3build/l3build-check.lua -2021/05/06 | 332376 | systems/texlive/tlnet/archive/dvipdfmx.win32.r59085.tar.xz -2021/05/06 | 31628 | systems/texlive/tlnet/archive/polexpr.r59088.tar.xz -2021/05/06 | 2938 | macros/latex/contrib/hvfloat/doc/examples/capPos.tex -2021/05/06 | 2746 | macros/plain/contrib/xintsession/README.md -2021/05/06 | 2745 | macros/latex/contrib/l3build/l3build-unpack.lua -2021/05/06 | 256210 | macros/latex/contrib/pbalance.zip -2021/05/06 | 2471 | macros/latex/contrib/l3build/l3build-help.lua -2021/05/06 | 2338 | macros/latex/contrib/l3build/CONTRIBUTING.md -2021/05/06 | 23336 | systems/texlive/tlnet/archive/mcf2graph.r59086.tar.xz -2021/05/06 | 2285 | macros/latex/contrib/l3build/l3build-tagging.lua -2021/05/06 | 2145 | macros/latex/contrib/l3build/l3build-clean.lua -2021/05/06 | 209306 | macros/latex/contrib/acrotex/web.dtx -2021/05/06 | 2071 | macros/latex/contrib/froufrou/froufrou.ins -2021/05/06 | 1928549 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015.zip -2021/05/06 | 1915138 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf -2021/05/06 | 19106 | macros/latex/contrib/projlib/LICENSE -2021/05/06 | 190426 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex -2021/05/06 | 1822166 | macros/latex/contrib/nicematrix.zip -2021/05/06 | 1816 | macros/latex/contrib/l3build/l3build.1 -2021/05/06 | 166368 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx -2021/05/06 | 166269 | macros/latex/contrib/nicematrix/nicematrix-french.tex -2021/05/06 | 164525 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx -2021/05/06 | 15 | support/TeX4ht/source/extra-bin/xmllint -2021/05/06 | 15 | support/TeX4ht/source/extra-bin/vcss -2021/05/06 | 15555 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.cbx -2021/05/06 | 15514 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.cbx -2021/05/06 | 15506 | macros/latex/contrib/froufrou/froufrou.dtx -2021/05/06 | 1540 | macros/latex/contrib/l3build/l3build.ins -2021/05/06 | 14286 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.cbx -2021/05/06 | 13966 | macros/latex/contrib/l3build/CHANGELOG.md -2021/05/06 | 13839 | macros/plain/contrib/xintsession/xintsession.tex -2021/05/06 | 133848 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx -2021/05/06 | 12641 | macros/latex/contrib/l3build/l3build-file-functions.lua -2021/05/06 | 1248363 | macros/latex/contrib/nicematrix/nicematrix.pdf -2021/05/06 | 11969 | macros/latex/contrib/l3build/l3build-upload.lua -2021/05/06 | 1159 | macros/latex/contrib/hvfloat/doc/examples/capPos.ltx -2021/05/06 | 115199 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx -2021/05/06 | 10790 | macros/latex/contrib/l3build/l3build-manifest-setup.lua -2021/05/06 | 107586 | macros/latex/contrib/l3build/l3build.dtx -2021/05/06 | 1019 | macros/latex/contrib/l3build/README.md diff --git a/biblio/bibtex/contrib/vancouver/vancouver.bib b/biblio/bibtex/contrib/vancouver/vancouver.bib index 6a655acb89..645a3cd719 100644 --- a/biblio/bibtex/contrib/vancouver/vancouver.bib +++ b/biblio/bibtex/contrib/vancouver/vancouver.bib @@ -1,9 +1,9 @@ @Patent{ pagedas:flexible, - inventor = {Pagedas, A.C.}, + inventor = {Pagedas, Anthony C.}, assignee = {Ancel Surgical R\&D Inc.}, title = {Flexible endoscopic grasping and cutting device and positioning tool assembly}, - numberi = {United States patent US 20020103498}, + number = {United States patent US 20020103498}, year = {2002 Aug 1} } @@ -37,7 +37,7 @@ } @Webpage{ american, - title = {American {M}edical {A}ssociation}, + title = {American {Medical} {Association}}, part = {AMA Office of Group Practice Liaison; [about 2 screens]}, address = {Chicago}, publisher = {The Association}, @@ -49,7 +49,7 @@ } @Webpage{ bibliographic, - title = {Bibliographic {S}ervices {D}ivision}, + title = {Bibliographic {Services} {Division}}, address = {Bethesda (MD)}, publisher = {National Library of Medicine (US)}, type = {homepage on the Internet}, @@ -60,7 +60,7 @@ } @Webpage{ cancer-pain, - title = {Cancer-{P}ain.org}, + title = {{Cancer-Pain.org}}, publisher = {Association of Cancer Online Resources, Inc.}, address = {New York}, type = {homepage on the Internet}, @@ -92,7 +92,7 @@ } @Webpage{ mesh, - title = {Me{SH} {B}rowser}, + title = {{MeSH} {Browser}}, part = {Meta-analysis; unique ID: D015201}, address = {Bethesda (MD)}, pages = {about 3 p.}, @@ -111,7 +111,7 @@ } @Webpage{ whos, - title = {Who's {C}ertified}, + title = {Who's {Certified}}, address = {Evanston (IL)}, publisher = {The American Board of Medical Specialists}, type = {database on the Internet}, @@ -132,7 +132,7 @@ } @Webpage{ abood:quality, - author = {Abood, S.}, + author = {Abood, Sheila}, title = {Quality improvement initiative in nursing homes: the {ANA} acts in an advisory role}, journal = {Am J Nurs}, @@ -178,9 +178,9 @@ } @PhDThesis{ borkowski:infant, - author = {Borkowski, M.M.}, - title = {Infant sleep and feeding: a telephone survey of {H}ispanic - {A}mericans}, + author = {Borkowski, Margaret Marie}, + title = {Infant sleep and feeding: a telephone survey of {Hispanic} + {Americans}}, school = {Central Michigan University}, type = {dissertation}, address = {Mount Pleasant (MI)}, @@ -217,14 +217,14 @@ } @InProceedings{ christensen.oppacher:analysis, - author = {Christensen, S. and Oppacher, F.}, - title = {An analysis of {K}oza's computational effort statistic for + author = {Christensen, Steffen and Oppacher, Franz}, + title = {An analysis of {Koza}'s computational effort statistic for genetic programming}, - booktitle = {Genetic programming. {E}uro{GP} 2002: {P}roceedings of the - 5th {E}uropean {C}onference on {G}enetic {P}rogramming; - 2002 {A}pr 3-5; {K}insdale, {I}reland}, - editor = {Foster, J.A. and Lutton, E. and Miller, J. and Ryan, C. - and Tettamanzi, A.G.}, + booktitle = {Genetic programming. {EuroGP} 2002: {Proceedings} of the + 5th {European} {Conference} on {Genetic} {Programming}; + 2002 {Apr} 3-5; {Kinsdale}, {Ireland}}, + editor = {Foster, James A. and Lutton, Evelyne and Miller, Julian + and Ryan, Conor and Tettamanzi, Andra G.}, pages = {182--191}, address = {Berlin}, publisher = {Springer}, @@ -270,7 +270,7 @@ @Webpage{ foley.gelband:improving, title = {Improving palliative care for cancer}, address = {Washington}, - editor = {Foley, K.M. and Gelband, H.}, + editor = {Foley, Kathleen M. and Gelband, Hellen}, publisher = {National Academy Press}, type = {monograph on the Internet}, year = {2001}, @@ -342,10 +342,10 @@ } @Proceedings{ harnden.joffe.ea:germ, - title = {Germ cell tumours {V}. {P}roceedings of the 5th {G}erm - {C}ell {T}umour {C}onference; 2001 {S}ep 13-15; {L}eeds, + title = {Germ cell tumours {V}. {Proceedings} of the 5th {Germ} + {Cell} {Tumour} {Conference}; 2001 {Sep} 13-15; {Leeds}, {UK}}, - editor = {Harnden, P. and Joffe, J.K. and Jones, W.G.}, + editor = {Harnden, Patricia and Joffe, Jonathan K and Jones, William G}, address = {New York}, publisher = {Springer}, year = 2002 @@ -353,8 +353,8 @@ @Webpage{ jablonski:online, author = {Jablonski, S.}, - title = {Online {M}ultiple {C}ongential {A}nomaly/{M}ental - {R}etardation ({MCA}/{MR}) {S}yndromes}, + title = {Online {Multiple} {Congential} {Anomaly}/{Mental} + {Retardation} ({MCA}/{MR}) {Syndromes}}, address = {Bethesda (MD)}, publisher = {National Library of Medicine (US)}, type = {database on the Internet}, @@ -448,7 +448,7 @@ author = {Russell, M.L. and Goth-Goldstein, R. and Apte, M.G. and Fisk, W.J.}, title = {Method for measuring the size distribution of airborne - {R}hinovirus}, + {Rhinovirus}}, institution = {Lawrence Berkeley National Laboratory, Environmental Energy Technologies Division}, number = {Report No.: LBNL49574. Contract No.: DEAC0376SF00098}, @@ -461,7 +461,7 @@ @Unpublished{ tian.araki.ea:signature, author = {Tian, D. and Araki, H. and Stahl, E. and Bergelson, J. and Kreitman, M.}, - title = {Signature of balancing selection in {A}rabidopsis}, + title = {Signature of balancing selection in {Arabidopsis}}, note = {In press 2002.}, organization = {Proc Natl Acad Sci U S A}, year = 2002 @@ -491,7 +491,7 @@ } @Webpage{ uniform, - title = {Uniform {R}equirements for {M}anuscripts {S}ubmitted to {B}iomedical {J}ournals: {W}riting and {E}diting for {B}iomedical {P}ublication}, + title = {Uniform {Requirements} for {Manuscripts} {Submitted} to {Biomedical} {Journals}: {Writing} and {Editing} for {Biomedical} {Publication}}, publisher = {International Committee of Medical Journal Editors}, address = {Philadelphia (PA)}, type = {homepage on the Internet}, @@ -504,7 +504,7 @@ @Article{ vallancien.emberton.ea:sexual, author = {Vallancien, G. and Emberton, M. and Harving, N. and van Moorselaar, R.J.}, - title = {Sexual dysfunction in 1,274 {E}uropean men suffering from + title = {Sexual dysfunction in 1,274 {European} men suffering from lower urinary tract symptoms.}, journal = {J Urol}, volume = {169}, @@ -516,7 +516,7 @@ @TechReport{ yen:health, author = {Yen, G.G.}, - title = {Health monitoring on vibration signatures. {F}inal + title = {Health monitoring on vibration signatures. {Final} report}, institution = {Air Force Office of Scientific Research (US), Air Force Research Laboratory}, diff --git a/biblio/bibtex/contrib/vancouver/vancouver.bst b/biblio/bibtex/contrib/vancouver/vancouver.bst index 0e9b5d0667..e0acb43429 100644 --- a/biblio/bibtex/contrib/vancouver/vancouver.bst +++ b/biblio/bibtex/contrib/vancouver/vancouver.bst @@ -11,7 +11,7 @@ %%------------------------------------------------------------------- %% %% Author: Folkert van der Beek -%% Version: 0.9 +%% Version: 1.0 %% URL: https://gitlab.com/fvdbeek/vancouver.bst %% %% This work may be distributed and/or modified under the @@ -1460,6 +1460,10 @@ FUNCTION {format.institution.address} { institution "institution" bibinfo.check format.org.or.pub } +FUNCTION {format.school.address} +{ school "school" bibinfo.check format.org.or.pub +} + % urlbst... % Functions for making hypertext links. @@ -1832,8 +1836,7 @@ FUNCTION {phdthesis} "title" output.check format.type "type" output.check new.block - school "school" bibinfo.warn output - address "address" bibinfo.check output + format.school.address output format.date "year" output.check new.block format.note output diff --git a/biblio/bibtex/contrib/vancouver/vancouver.pdf b/biblio/bibtex/contrib/vancouver/vancouver.pdf index c58ef64454..746c7d6f64 100644 Binary files a/biblio/bibtex/contrib/vancouver/vancouver.pdf and b/biblio/bibtex/contrib/vancouver/vancouver.pdf differ diff --git a/macros/latex/contrib/bnumexpr/README.md b/macros/latex/contrib/bnumexpr/README.md index bda6edef58..a7db8bf12c 100644 --- a/macros/latex/contrib/bnumexpr/README.md +++ b/macros/latex/contrib/bnumexpr/README.md @@ -1,5 +1,5 @@ | Source: bnumexpr.dtx -| Version: v1.4, 2021/05/12 (doc: 2021/05/12) +| Version: v1.4a, 2021/05/13 (doc: 2021/05/13) | Author: Jean-Francois Burnol | Info: Expressions with big integers | License: LPPL 1.3c @@ -35,13 +35,6 @@ the syntax elements to macros from an alternative big integer expandable engine of the user own choosing, and then [xintcore](http://ctan.org/pkg/xint) is not loaded. -Note; the possibility not to use the xintcore macros might be -removed in the future: perhaps a future release will maintain during -computations a private internal representation (especially tailored -either for the xintcore macros or new ones which would be included -within `bnumexpr.sty` itself) and the constraints this implies may -render optional use of other macros impossible. - Installation ============ diff --git a/macros/latex/contrib/bnumexpr/bnumexpr.dtx b/macros/latex/contrib/bnumexpr/bnumexpr.dtx index 83e0ab6c38..23ead1e2e1 100644 --- a/macros/latex/contrib/bnumexpr/bnumexpr.dtx +++ b/macros/latex/contrib/bnumexpr/bnumexpr.dtx @@ -1,17 +1,17 @@ % -*- coding: utf-8-unix; time-stamp-format: "%02d-%02m-%:y %02H:%02M:%02S %Z"; sentence-end-double-space: t; -*- %<*dtx> -\def\bnedtxtimestamp {Time-stamp: <12-05-2021 22:05:26 CEST>} +\def\bnedtxtimestamp {Time-stamp: <13-05-2021 12:37:08 CEST>} \iffalse % %<*drv> %% --------------------------------------------------------------- -\def\bnedocdate {2021/05/12}% package bnumexpr documentation date -\def\bnepackdate{2021/05/12}% package bnumexpr date -\def\bneversion {1.4} % package bnumexpr version +\def\bnedocdate {2021/05/13}% package bnumexpr documentation date +\def\bnepackdate{2021/05/13}% package bnumexpr date +\def\bneversion {1.4a} % package bnumexpr version % %<*readme>-------------------------------------------------------- | Source: bnumexpr.dtx -| Version: v1.4, 2021/05/12 (doc: 2021/05/12) +| Version: v1.4a, 2021/05/13 (doc: 2021/05/13) | Author: Jean-Francois Burnol | Info: Expressions with big integers | License: LPPL 1.3c @@ -47,13 +47,6 @@ the syntax elements to macros from an alternative big integer expandable engine of the user own choosing, and then [xintcore](http://ctan.org/pkg/xint) is not loaded. -Note; the possibility not to use the xintcore macros might be -removed in the future: perhaps a future release will maintain during -computations a private internal representation (especially tailored -either for the xintcore macros or new ones which would be included -within `bnumexpr.sty` itself) and the constraints this implies may -render optional use of other macros impossible. - Installation ============ @@ -129,6 +122,17 @@ and the derived files %% % %<*changes>------------------------------------------------------- +\item[1.4a (2021/05/13)] + \begin{itemize} + \item fix undefined control sequences errors encountered by the parser in + case of either extra or missing closing parenthesis (due to a problem + in technology transfer at |1.4| from upstream \xintexprname). + \item fix |\BNE_Op_opp| must now be f-expandable (also caused as a + collateral to the technology transfer). + \item fix user documentation regarding the constraints applying to the user + replacement macros for the core algebra, as they have changed at |1.4|. + \end{itemize} + \item[1.4 (2021/05/12)] \begin{itemize} \item technology transfer from \xintexprname |1.4| of @@ -300,7 +304,7 @@ and the derived files \PassOptionsToPackage{dvipdfm}{geometry} \PassOptionsToPackage{bookmarks=true}{hyperref} \PassOptionsToPackage{dvipdfmx-outline-open}{hyperref} - \PassOptionsToPackage{dvipdfmx-outline-open}{bookmark} + %\PassOptionsToPackage{dvipdfmx-outline-open}{bookmark} % \def\pgfsysdriver{pgfsys-dvipdfm.def} \else @@ -476,12 +480,14 @@ pdfpagemode=UseOutlines} {bnumexpr}% \xspace }% +\def\xintkernelname + {\href{http://www.ctan.org/pkg/xint}{xintkernel}\xspace }% \def\xintname {\href{http://www.ctan.org/pkg/xint}{xint}\xspace }% \def\xintcorename {\href{http://www.ctan.org/pkg/xint}{xintcore}\xspace }% \def\xintexprname - {\href{http://www.ctan.org/pkg/xint}{xintexpr}\xspace }% + {\href{http://www.ctan.org/pkg/xintexpr}{xintexpr}\xspace }% \def\xintbinhexname {\href{http://www.ctan.org/pkg/xint}{xintbinhex}\xspace }% @@ -546,15 +552,10 @@ pdfpagemode=UseOutlines} \etocsetnexttocdepth{section} \tableofcontents -\section{\csh{thebnumexpr}, \csh{bnumeval}, \csh{evaltohex}} +\section{\csh{bnumeval} (\csh{thebnumexpr}), \csh{evaltohex}} \label{sec:bnumexpr} -\LaTeX\ Package \bnumname provides |\thebnumexpr|\meta{expression}|\relax|:% -% -\footnote{Since |1.4|, one can use |\bnumexpr...\relax| directly in - typesetting context, it is not mandatory to prefix it with |\bnethe| or to - use |\thebnumexpr|.} -% +\LaTeX\ Package \bnumname provides |\thebnumexpr|\meta{expression}|\relax|: it is analogous to |\the\numexpr|\meta{expression}|\relax|, with these extensions: \begin{itemize} @@ -569,11 +570,20 @@ it is analogous to separator, \item comma separated expressions are allowed. \end{itemize} -There is also an alternative interface |\bnumeval|\marg{expression}, where the -expression is fetched as braced argument. And there is -|\evaltohex|\marg{expression} which does the same as -|\bnumeval|\marg{expression} but with a conversion to hexadecimal notation of -the (possibly comma separated) output. Hexadecimal input uses the |"| prefix. +There is also a more core-level |\bnumexpr...\relax| construct% +\footnote{Since |1.4|, one can use |\bnumexpr...\relax| directly in + typesetting context, it is not mandatory to prefix it with |\bnethe| or to + use |\thebnumexpr|.}% +, which expands +to a self-contained unit, rather than to explicit digit tokens (and commas). +See \autoref{sec:differences} for some related information. + +There is also the alternative interface |\bnumeval|\marg{expression}, where the +expression is fetched as braced argument. + +And there is |\evaltohex|\marg{expression} which does the same as |\bnumeval| +but with a conversion to hexadecimal notation of the (possibly comma +separated) output. Hexadecimal input uses the |"| prefix. This package parser is a scaled-down variant of |\xintiiexpr| from package \xintexprname, dropping support for nested structures, functions, variables, @@ -594,32 +604,27 @@ possible to replace them by expandable macros of a custom origin. \noindent\bneshow {---1 208 637 867 * (2 187 917 891 - 3 109 197 072)}% \bneshoweval {(13_8089_1090-300_1890_2902)*(1083_1908_3901-109_8290_3890)}% -\bneshow{(92_874_927_979**5-31_9792_7979**6)/30!}% +\bneshoweval {(92_874_927_979**5-31_9792_7979**6)/30!}% \bneshoweval {30!/20!/21/22/23/24/25/(26*27*28*29)}% -\bneshow {13^50//12^50, 13^50/:12^50}% +\bneshoweval {13^50//12^50, 13^50/:12^50}% \bneshoweval {13^50/12^50, 12^50}% -\bneshow {(1^10+2^10+3^10+4^10+5^10+6^10+7^10+8^10+9^10)^3}% +\bneshoweval {(1^10+2^10+3^10+4^10+5^10+6^10+7^10+8^10+9^10)^3}% \bneshoweval {100!/36^100}% \bneshoweval {"10*"100*"1000*"A0000, 16^(1+2+3+4)*10}% \bneshowevaltohex{"7FFFFFFF+1, "400^3, "ABCDEF*"FEDCBA}% \section{Differences from \csh{numexpr}} +\label{sec:differences} Apart from the extension to big integers (i.e. exceeding the \TeX{} limit at \number"7FFFFFFF), and the added operators, there are a number of important differences between |\bnumexpr| and |\numexpr|: \begin{enumerate} -\item one may embed directly |\bnumexpr...\relax| in another one (or in - a |\xintexpr...\relax|), but not in a |\numexpr...\relax|: it must - then be using |\thebnumexpr...| or |\bnethe\bnumexpr...| syntax; on - the other hand a |\numexpr...\relax| does not need to be prefixed by - |\the| or |\number| inside |\bnumexpr...\relax|. - \item contrarily to |\numexpr|, the |\bnumexpr| parser stops only after having - found (and swallowed) a mandatory ending |\relax| token, + found (and swallowed) a mandatory ending |\relax| token (it can arise from expansion), -\item in particular spaces between digits do not stop |\bnumexpr|, in contrast +\item in particular note that spaces between digits do not stop |\bnumexpr|, in contrast with |\numexpr|: |\the\numexpr 3 5+79\relax| expands (in one step) to \expandafter|\the\numexpr 3 5+79\relax| @@ -627,15 +632,23 @@ differences between |\bnumexpr| and |\numexpr|: |\thebnumexpr 3 5+79\relax| expands (in two steps) to \expandafter\expandafter\expandafter|\thebnumexpr 3 5+79\relax| -\item one may do |\edef\variable{\bnumexpr 1+2\relax}|, and then either use - |\variable| in another |\bnumexpr...\relax|, or print it via - |\bnethe\variable| (or directly since |1.4|). The computation is done at the time of the |\edef| - (and two expansion steps suffice). This is again in contrast with - |\numexpr...\relax| which, without |\the| (or |\number| or - |\romannumeral|) as prefix would not expand inside an |\edef|, +\item with |\edef\myVar{\thebnumexpr1+2\relax}|, the computation is of course + done at time of the |\edef|. But one is also allowed to do + |\edef\myVar{\bnumexpr1+2\relax}| which prepares |\myVar| as a macro which + can be inserted in other \bnumname expressions and behave there as a + self-contained pre-computed unit triggering tacit multiplication, or be + typeset directly if inserted in the typesetting stream.% +% +\footnote{Prior to |1.4|, one would have had to use |\bnethe\myVar| for + typesetting, or |\bnumeval{\myVar}|.} +% + There is no analog with |\numexpr| as |\edef\myVar{\numexpr1+2\relax}| does + not pre-compute anything and furthermore |\the\numexpr2\myVar\relax| in + typesetting flow then triggers the |You can't use `\numexpr' in horizontal + mode| error. \item expressions may be comma separated. On input, spaces are ignored, - naturally, and on output the values are comma separated with a space after + and on output the values are comma separated with a space after each comma, \item |\bnumexpr -(1+1)\relax| is legal contrarily to |\numexpr -(1+1)\relax| @@ -644,9 +657,6 @@ differences between |\bnumexpr| and |\numexpr|: \item |\numexpr 2\cnta\relax| is illegal (with |\cnta| a |\count|-variable.) But |\bnumexpr 2\cnta\relax| is perfectly legal and will do the tacit multiplication, -% \newcount\cnta -% \cnta 1111 -% \thebnumexpr 2\cnta\relax \item more generally, tacit multiplication applies in front of parenthesized sub-expressions, or sub |\bnumexpr...\relax| (or |\numexpr...\relax|), or @@ -657,13 +667,34 @@ differences between |\bnumexpr| and |\numexpr|: \end{enumerate} +As hinted above |\bnumexpr...\relax| differs from |\thebnumexpr...\relax| as +the latter expands to explicit digit tokens, but the former expands to a +private self-contained format which can serve as sub-unit in other +expressions, or be used inside |\edef|. Since |1.4| the former idiom can also +be inserted directly inside the typesetting stream, or be written out to an +external file where it will expand to some control sequences, braces, and +character tokens, all with their standard catcodes. + +One can use |\numexpr...\relax| as a sub-unit in |\bnumexpr...\relax| but the +reverse does not apply: it would either cause an error or an +anticipated end to the |\numexpr| which will think having hit a |\relax|. + An important thing to keep in mind is that if one has a calculation whose result is a small integer, acceptable by \TeX{} in |\ifnum| or count assignments, this integer produced by |\thebnumexpr| is not self-delimiting, contrarily to a |\numexpr...\relax| construct: the situation is exactly as with a |\the\numexpr...\relax|, thus one may need to terminate the number to avoid premature expansion of following -tokens; for example with the |\space| token. +tokens; for example with the |\space| control sequence. When using |\bnumeval{...}| +syntax as in +\begin{verbatim} +\ifnum\bnumeval{...} +... +\fi +\end{verbatim} +the end of line will insert a terminating space token. Again, here +|\bnumeval{...}| must produce an integer acceptable to \TeX, i.e. at most +{\number"7FFFFFFF} in absolute value. \section{Printing big numbers} @@ -737,7 +768,8 @@ the following way: \usepackage{xintcore} \bnumexprsetup{add=\xintiiAdd, sub=\xintiiSub, mul=\xintiiMul, divround=\xintiiDivRound, div=\xintiiDivFloor, - mod=\xintiiMod, pow=\xintiiPow, fac=\xintiiFac} + mod=\xintiiMod, pow=\xintiiPow, fac=\xintiiFac, + opp=\xintiiOpp}% \end{verbatim} If @@ -748,27 +780,22 @@ multiplication will be changed. Naturally it is up to the user to load the appropriate package for the alternative macros. -As per the macros which are the key values, they must have the -following properties: -\begin{enumerate} -\item they must be completely expandable (in the sense of an |\edef| - or a |\csname...\endcsname|.) -\item they must fully expand their arguments first (in the sense of - |\romannumeral-`0|.) -\item they must output a number with no leading zeros, at most one - minus sign and no plus sign. -\end{enumerate} -The first two items are truly mandatory, the last one may be not -obeyed if the extra key |opp| is used with \csa{bnumexprsetup} to -specify a suitable macro for the opposite of a number. This macro will -be presented not with a braced argument but directly with a sequence -of digits (either as gathered by the parser which skips leading -zeros, or as produced by the other arithmetic macros and then there -could be a minus, or even a plus if macros others than the ones from -\xintcorename have been used). -Thus, |opp| could identify a plus sign |+| upfront and then act -adequately.\footnote{see \csa{BNE_Op_opp} in the code for the - default.} +The macros serving as custom user replacements must be \emph{f}-expandable.% +% +\footnote{Prior to |1.4|, only \emph{x}-expandability was required. The author + could relax again the constraint, if asked to do so. Or perhaps simply add + an option for it.} +% +(except for the computation of factorials, which only has to be +\emph{x}-expandable). + +They will by default receive arguments composed of explicit digit tokens, with +no leading zeros, with at most one leading minus sign and no plus sign. + +The format of these arguments may depend on what the |opp=\foo| replacement +macro does. If the custom |\foo| inserts a |+| when taking the opposite of a +negative number, then the custom macros for arithmetic (and the |\foo| macro +itself) must be able to handle arguments starting optionally with such a |+|. Macro |\bnumexprsetup| can be used multiple times in the same document, thus allowing to switch math engines or to remap operators to some other arithmetic @@ -792,6 +819,8 @@ output is handled, it goes necessarily via the \xintbinhexname macros. \noindent\kern\parindent\input README.md \endgroup }\x +%\clearpage + \section{Changes} %\small \begin{description} @@ -816,29 +845,65 @@ output is handled, it goes necessarily via the \xintbinhexname macros. % \label{sec:bnumexprcode} % \etocdefaultlines % \localtableofcontents +% \etocmarkbothnouc{Package \bnumnameimp implementation} % % Comments are sparse. Actually at |1.4|, there are simply no comments. I % transferred from \xintexprname its |\expanded| based infra-structure from -% its own |1.4| release of January 2020. It is a possibility that, even -% though I did remove very large chunks of unneeded macros, in the end, some -% more simplifications could have been considered here. +% its own |1.4| release of January 2020. % % Error handling by the parser is kept to a minimum; if something goes wrong, % the offensive token gets discarded, and it is not even always the case that % some expandable error message is issued. % +% A few comments at |1.4a|: +% \begin{itemize} +% \item It looked a bit costly and probably would have been mostly useless to +% end users to integrate in \bnumname support for nested structures via +% square brackets [, ], which is in \xintexprname since its January 2020 +% |1.4| release. But some underlying related architecture remains here; we +% could make some micro-gains probably but diverging from upstream code +% would make maintenance a nightmare. +% \item The |\bnumexpr\relax| syntax creating an empty ople is by itself now +% legal, and can be injected (comma separated) in an expression, keeping it +% invariant, however |\bnumeval{}| ends in a |File ended while scanning use +% of \BNE_print_c| error because |\BNEprint| makes the tacit requirement +% that the 1D ople to output has at least one item. +% \item Formerly, the |\csname...\endcsname| encapsulation technique had the +% after-effect to allow the macros supporting the infix operators to be only +% x-expandable. At |1.4|, I could have still allowed only x-expandable +% macros, but, keeping in sync with upstream, I have used only a +% |\romannumeral| trigger and did not insert an |\expanded|, so now the +% support macros must be f-expandable. The |1.4a| release fixes the related +% user documentation of |\bnumexprsetup| which was not updated at |1.4|. +% The support macro for the factorial however needs only be x-expandable. +% \item Also, I simply do not understand why the legacy user documentation +% said that the support macros were supposed to f-expand their arguments, as +% they are used only with arguments being explicit digit tokens (and +% optional minus sign). +% \item I hesitated a bit about making the decimal to hexadecimal and +% hexadecimal to decimal support macros customizable, but dropped the +% idea. Loading \xintbinhexname unconditionally has also the advantage to +% not have to define some \xintkernelname provided helper macros; and it +% still does not load \xintcorename, so is keeping dependencies somewhat low +% and the |custom| option significant. +% \item I had fleetingly consider a parser |\hexexpr| where input is +% hexadecimal with no |"| prefix, but implementing this basically means +% duplicating with new names a large chunk of the parser code to have parser +% specific |"getnext"| macros for example. Not worth it. +% \end{itemize} +% % \subsection{Package identification and catcode setup} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e}% -\ProvidesPackage{bnumexpr}[2021/05/12 v1.4 Expressions with big integers (JFB)]% +\ProvidesPackage{bnumexpr}[2021/05/13 v1.4a Expressions with big integers (JFB)]% % \end{macrocode} % \subsection{Load unconditionally xintbinhex} % Newly done at |1.4|. Formerly, \bnumname had no dependency if loaded % with option |custom|. But for |1.4| release I have decided to add % unconditional support for hexadecimal notation. % -% Let's require the most recent xint date at time of -% writing. We should check for availability of \string\expanded\space but well. +% Let's require the most recent \xintname date at time of +% writing. We should check for availability of |\expanded| but well. % % \begin{macrocode} \RequirePackage{xintbinhex}[2021/05/10]% @@ -858,6 +923,9 @@ output is handled, it goes necessarily via the \xintbinhexname macros. }% % \end{macrocode} % \subsection{Package options} +% The keys should have been |Add|, |Sub|, \dots, not |add|, |sub|, \dots, so +% internally macros |\BNE_Op_Add| etc\dots\ macro names would be used, but well, +% let's simply leave with this. % \begin{macrocode} \def\BNEtmpa {0}% \DeclareOption {custom}{\def\BNEtmpa {1}}% @@ -869,7 +937,8 @@ output is handled, it goes necessarily via the \xintbinhexname macros. \RequirePackage{xintcore}[2021/05/10]% \bnumexprsetup{add=\xintiiAdd, sub=\xintiiSub, mul=\xintiiMul, divround=\xintiiDivRound, div=\xintiiDivFloor, - mod=\xintiiMod, pow=\xintiiPow, fac=\xintiiFac}% + mod=\xintiiMod, pow=\xintiiPow, fac=\xintiiFac, + opp=\xintiiOpp}% }% % \end{macrocode} % Strangely those three are not defined in xintkernel.sty, but only in xint.sty @@ -1148,12 +1217,17 @@ output is handled, it goes necessarily via the \xintbinhexname macros. }% }% \let\BNE_done\space +\def\BNE_getop_legacy #1% +{% + \expanded{\unexpanded{{#1}}\expandafter}\romannumeral`&&@\BNE_getop +}% \expandafter\BNE_tmpa \csname BNE_start\expandafter\endcsname \csname BNE_check\expandafter\endcsname \csname BNE_checkp\expandafter\endcsname \csname BNE_op_-xii\expandafter\endcsname \csname BNE_extra_)\endcsname +\catcode`) 11 \def\BNE_tmpa #1#2#3#4#5#6% {% \def #1##1% op_( @@ -1191,7 +1265,6 @@ output is handled, it goes necessarily via the \xintbinhexname macros. \csname BNE_check-_)\expandafter\endcsname \csname BNE_checkp_)\expandafter\endcsname \csname BNE_op_-xii\endcsname -\catcode`) 11 \let\BNE_precedence_)\xint_c_i \def\BNE_missing_) {\XINT_expandableerror{Sorry to report a missing ) at the end of this journey.}% @@ -1199,6 +1272,11 @@ output is handled, it goes necessarily via the \xintbinhexname macros. \catcode`) 12 % \end{macrocode} % \subsection{The comma as binary operator} +% At |1.4|, it is simply a union operator for 1D oples. Inserting directly +% here a || separator (as in earlier releases) in accumulated +% result would avoid having to do it on output but to the cost of diverging +% from \xintexprname upstream code, and to have to let the |\evaltohex| output +% routine handle comma separated values rather than braced values. % \begin{macrocode} \def\BNE_tmpa #1#2#3#4#5% {% @@ -1234,6 +1312,15 @@ output is handled, it goes necessarily via the \xintbinhexname macros. \expandafter\let\csname BNE_precedence_,\endcsname\xint_c_iii % \end{macrocode} % \subsection{The minus as prefix operator of variable precedence level} +% This |\BNE_Op_opp| causes trouble as at |1.4| it must be f-expandable, +% whereas earlier it expanded inside |\csname...\endcsname| context, so I +% could define it as {\catcode`\#12 |\if-#1\else\if0#10\else-#1\fi\fi|} where +% {\catcode`\#12 |#1|} was the +% first token of unbraced argument but this meant at |1.4| an added +% |\xint_firstofone| here. Well let's return to sanity at |1.4a| and not add +% the |\xint_firstofone| and simply default |\BNE_Op_opp| to |\xintiiOpp|, +% which it should have been all along! And on this occasion let's trim user +% documentation of irrelevant complications. % \begin{macrocode} \def\BNE_tmpb #1#2#3#4#5% {% @@ -1245,7 +1332,7 @@ output is handled, it goes necessarily via the \xintbinhexname macros. \def #2##1##2##3% \BNE_exec_- {% \expandafter ##1\expandafter ##2\expandafter - {\expandafter{\romannumeral`&&@\expandafter\BNE_Op_opp\xint_firstofone##3}}% + {\expandafter{\romannumeral`&&@\BNE_Op_opp##3}}% }% \def #3##1% \BNE_check-_- {% @@ -1277,9 +1364,15 @@ output is handled, it goes necessarily via the \xintbinhexname macros. \BNE_tmpa {xiv}% \BNE_tmpa {xvi}% \BNE_tmpa {xviii}% -\def\BNE_Op_opp #1{\if-#1\else\if0#10\else-#1\fi\fi }% % \end{macrocode} % \subsection{The infix operators.} +% I could have at the |1.4| refactoring injected usage of |\expanded| here, +% but kept in sync with upstream \xintexprname code. +% +% Macro names are somewhat bad and there is much risk of confusion in future +% maintenance of |\BNE_Op_| prefix (used for |\BNE_Op_add| etc...; besides +% this should have been |\BNE_Op_Add|) and |\BNE_op_| prefix (used for +% {\catcode`+ 11 |\BNE_op_+|} etc...). % \begin{macrocode} \def\BNE_defbin_c #1#2#3#4#5#6#7% {% @@ -1337,6 +1430,7 @@ output is handled, it goes necessarily via the \xintbinhexname macros. \expandafter\let\csname BNE_precedence_***\endcsname \xint_c_xvi % \end{macrocode} % \subsection{! as postfix factorial operator} +% This one uses |\expanded|. % \begin{macrocode} \catcode`! 11 \let\BNE_precedence_! \xint_c_xx @@ -1354,23 +1448,8 @@ output is handled, it goes necessarily via the \xintbinhexname macros. % \MakePercentComment % %<*dtx> -\DeleteShortVerb{\|} -\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 \~} -\CheckSum {949} -\makeatletter\check@checksum\makeatother -\Finale +\DeleteShortVerb{\|}% +\CheckSum {947}% +\makeatletter\check@checksum\makeatother% +\Finale% %% End of file xint.dtx diff --git a/macros/latex/contrib/bnumexpr/bnumexpr.pdf b/macros/latex/contrib/bnumexpr/bnumexpr.pdf index d6fce09181..79f259f3f2 100644 Binary files a/macros/latex/contrib/bnumexpr/bnumexpr.pdf and b/macros/latex/contrib/bnumexpr/bnumexpr.pdf differ diff --git a/macros/latex/contrib/changes/changes.drv b/macros/latex/contrib/changes/changes.drv index cfb813e288..e8e7868fb1 100644 --- a/macros/latex/contrib/changes/changes.drv +++ b/macros/latex/contrib/changes/changes.drv @@ -1,6 +1,6 @@ %%% % driver file of changes package -\newcommand{\docversion}{4.0.3} +\newcommand{\docversion}{4.0.4} \documentclass[titlepage, parskip=half, toc=flat, cleardoublepage=empty, captions=nooneline, origlongtable, english]{scrartcl} diff --git a/macros/latex/contrib/changes/changes.dtx b/macros/latex/contrib/changes/changes.dtx index cf459852f9..cdb43d7d46 100644 --- a/macros/latex/contrib/changes/changes.dtx +++ b/macros/latex/contrib/changes/changes.dtx @@ -66,6 +66,7 @@ % \changes{v4.0.1}{2021/02/14}{bugfix: Command do undefined} % \changes{v4.0.2}{2021/04/05}{bugfix: documentation with ifthenelse references} % \changes{v4.0.3}{2021/05/09}{bugfix: compile error with cite command in change markup with final option} +% \changes{v4.0.4}{2021/05/13}{bugfix: added missing regression.dtx to ctan archive; no code change} % \GetFileInfo{changes.dtx} % \RecordChanges % @@ -105,8 +106,8 @@ % Type some information to the console. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{changes}[2021/05/09 v4.0.3 changes package] -\typeout{*** changes package 2021/05/09 v4.0.3 ***} +\ProvidesPackage{changes}[2021/05/13 v4.0.4 changes package] +\typeout{*** changes package 2021/05/13 v4.0.4 ***} % \end{macrocode} % % Package \docpackage{xkeyval} provides options with key-value-pairs. diff --git a/macros/latex/contrib/changes/changes.english.pdf b/macros/latex/contrib/changes/changes.english.pdf index 4b4e0b695b..3966c3b985 100644 Binary files a/macros/latex/contrib/changes/changes.english.pdf and b/macros/latex/contrib/changes/changes.english.pdf differ diff --git a/macros/latex/contrib/changes/changes.english.withcode.pdf b/macros/latex/contrib/changes/changes.english.withcode.pdf index b5f0ef869a..fb527586e1 100644 Binary files a/macros/latex/contrib/changes/changes.english.withcode.pdf and b/macros/latex/contrib/changes/changes.english.withcode.pdf differ diff --git a/macros/latex/contrib/changes/changes.ins b/macros/latex/contrib/changes/changes.ins index 33ca5ae772..537ecf5d1e 100644 --- a/macros/latex/contrib/changes/changes.ins +++ b/macros/latex/contrib/changes/changes.ins @@ -1,6 +1,6 @@ %% This file creates the needed files from changes.dtx %% -\def\filedate{2021/02/14} +\def\filedate{2021/05/13} \def\batchfile{changes.ins} \input docstrip @@ -153,7 +153,7 @@ Copyright 2007-2021 Ekkart Kleinod % \file{examples/changes.example.screenshot.tex}{\from{example-screenshot.dtx}{example:screenshot}} % - \file{regression/changes.regression.draft.tex}{\from{regression.dtx}{regression:draft}} + \file{regression/changes.regression.draft.tex}{\from{regression.dtx}{regression:draft}} \file{regression/changes.regression.final.tex}{\from{regression.dtx}{regression:final}} } diff --git a/macros/latex/contrib/changes/changes.ngerman.pdf b/macros/latex/contrib/changes/changes.ngerman.pdf index db7e686fad..d96ed9c052 100644 Binary files a/macros/latex/contrib/changes/changes.ngerman.pdf and b/macros/latex/contrib/changes/changes.ngerman.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.bf.pdf b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.bf.pdf index 55ca5987a4..dc0c3dd07a 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.bf.pdf and b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.bf.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.colored.pdf b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.colored.pdf index ec67a5c59b..9b20a91f4b 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.colored.pdf and b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.colored.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.dashuline.pdf b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.dashuline.pdf index 42755a29d0..997338b6fa 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.dashuline.pdf and b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.dashuline.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.dotuline.pdf b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.dotuline.pdf index 3d82022ab6..d22a436c8b 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.dotuline.pdf and b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.dotuline.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.em.pdf b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.em.pdf index 55c5d2326c..05fda41a2c 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.em.pdf and b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.em.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.it.pdf b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.it.pdf index 95eaa4da82..82efbcff69 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.it.pdf and b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.it.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.sl.pdf b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.sl.pdf index 60a30bdf1f..2d8e55c72e 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.sl.pdf and b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.sl.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.uline.pdf b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.uline.pdf index c5bd26700c..e42b78e69f 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.uline.pdf and b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.uline.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.uuline.pdf b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.uuline.pdf index 2778aa204e..cf0f7977ca 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.uuline.pdf and b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.uuline.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.uwave.pdf b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.uwave.pdf index 98ed53ebba..174d468e10 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.uwave.pdf and b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.uwave.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.wrong.pdf b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.wrong.pdf index 7f5dea591a..b6afc108f3 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.wrong.pdf and b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.wrong.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.authormarkup.brackets.pdf b/macros/latex/contrib/changes/examples/changes.example.authormarkup.brackets.pdf index 471640cda0..04849c936c 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.authormarkup.brackets.pdf and b/macros/latex/contrib/changes/examples/changes.example.authormarkup.brackets.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.authormarkup.footnote.pdf b/macros/latex/contrib/changes/examples/changes.example.authormarkup.footnote.pdf index f850b6d45c..8307c1eb34 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.authormarkup.footnote.pdf and b/macros/latex/contrib/changes/examples/changes.example.authormarkup.footnote.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.authormarkup.none.pdf b/macros/latex/contrib/changes/examples/changes.example.authormarkup.none.pdf index f530551bb3..8526a878c9 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.authormarkup.none.pdf and b/macros/latex/contrib/changes/examples/changes.example.authormarkup.none.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.authormarkup.subscript.pdf b/macros/latex/contrib/changes/examples/changes.example.authormarkup.subscript.pdf index 87fca6e7b5..5722d29e3c 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.authormarkup.subscript.pdf and b/macros/latex/contrib/changes/examples/changes.example.authormarkup.subscript.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.authormarkup.superscript.pdf b/macros/latex/contrib/changes/examples/changes.example.authormarkup.superscript.pdf index cdaf9ae0f1..614753eae4 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.authormarkup.superscript.pdf and b/macros/latex/contrib/changes/examples/changes.example.authormarkup.superscript.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.authormarkup.wrong.pdf b/macros/latex/contrib/changes/examples/changes.example.authormarkup.wrong.pdf index 813ae0f2ed..f92a3815a6 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.authormarkup.wrong.pdf and b/macros/latex/contrib/changes/examples/changes.example.authormarkup.wrong.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.authormarkupposition.left.pdf b/macros/latex/contrib/changes/examples/changes.example.authormarkupposition.left.pdf index 41cc948b14..4baa2793e8 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.authormarkupposition.left.pdf and b/macros/latex/contrib/changes/examples/changes.example.authormarkupposition.left.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.authormarkupposition.right.pdf b/macros/latex/contrib/changes/examples/changes.example.authormarkupposition.right.pdf index 053b1a7108..bea03c7f39 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.authormarkupposition.right.pdf and b/macros/latex/contrib/changes/examples/changes.example.authormarkupposition.right.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.authormarkupposition.wrong.pdf b/macros/latex/contrib/changes/examples/changes.example.authormarkupposition.wrong.pdf index 637ab58f9c..5cc15530ea 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.authormarkupposition.wrong.pdf and b/macros/latex/contrib/changes/examples/changes.example.authormarkupposition.wrong.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.authormarkuptext.id.pdf b/macros/latex/contrib/changes/examples/changes.example.authormarkuptext.id.pdf index 54b6055a3a..e13fbc099e 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.authormarkuptext.id.pdf and b/macros/latex/contrib/changes/examples/changes.example.authormarkuptext.id.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.authormarkuptext.name.pdf b/macros/latex/contrib/changes/examples/changes.example.authormarkuptext.name.pdf index 73e03a81ab..09d2d962ba 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.authormarkuptext.name.pdf and b/macros/latex/contrib/changes/examples/changes.example.authormarkuptext.name.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.authormarkuptext.wrong.pdf b/macros/latex/contrib/changes/examples/changes.example.authormarkuptext.wrong.pdf index c32978d197..8f9b11217c 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.authormarkuptext.wrong.pdf and b/macros/latex/contrib/changes/examples/changes.example.authormarkuptext.wrong.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.always.pdf b/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.always.pdf index 56836d4869..34e44f4122 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.always.pdf and b/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.always.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.ifneeded.pdf b/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.ifneeded.pdf index 116bb6814e..755b71e7b6 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.ifneeded.pdf and b/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.ifneeded.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.none.pdf b/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.none.pdf index eadce526ac..61d3656b21 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.none.pdf and b/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.none.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.wrong.pdf b/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.wrong.pdf index 39e0441dd1..4ae72adfb5 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.wrong.pdf and b/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.wrong.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.commentmarkup.footnote.pdf b/macros/latex/contrib/changes/examples/changes.example.commentmarkup.footnote.pdf index b64d016ffe..a0c6078b41 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.commentmarkup.footnote.pdf and b/macros/latex/contrib/changes/examples/changes.example.commentmarkup.footnote.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.commentmarkup.margin.pdf b/macros/latex/contrib/changes/examples/changes.example.commentmarkup.margin.pdf index d0899372f6..da26c081e4 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.commentmarkup.margin.pdf and b/macros/latex/contrib/changes/examples/changes.example.commentmarkup.margin.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.commentmarkup.todo.pdf b/macros/latex/contrib/changes/examples/changes.example.commentmarkup.todo.pdf index 553d11bc50..c7df7d621f 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.commentmarkup.todo.pdf and b/macros/latex/contrib/changes/examples/changes.example.commentmarkup.todo.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.commentmarkup.uwave.pdf b/macros/latex/contrib/changes/examples/changes.example.commentmarkup.uwave.pdf index 72f1b090d8..9dcab9f153 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.commentmarkup.uwave.pdf and b/macros/latex/contrib/changes/examples/changes.example.commentmarkup.uwave.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.defaultcolor.pdf b/macros/latex/contrib/changes/examples/changes.example.defaultcolor.pdf index 3bcbbbd277..0927c66a56 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.defaultcolor.pdf and b/macros/latex/contrib/changes/examples/changes.example.defaultcolor.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.bf.pdf b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.bf.pdf index 5165d0142d..f7bc342800 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.bf.pdf and b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.bf.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.colored.pdf b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.colored.pdf index ab50ae7042..7bd79fce36 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.colored.pdf and b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.colored.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.dashuline.pdf b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.dashuline.pdf index cd3db0cff5..e41a79f0e1 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.dashuline.pdf and b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.dashuline.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.dotuline.pdf b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.dotuline.pdf index 8dbe2decd7..5996794da5 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.dotuline.pdf and b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.dotuline.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.em.pdf b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.em.pdf index a1339f3f13..71d6ae63da 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.em.pdf and b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.em.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.it.pdf b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.it.pdf index 293abd5051..a7360c45e1 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.it.pdf and b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.it.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.sl.pdf b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.sl.pdf index 7ec00ac4be..52c8856fe5 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.sl.pdf and b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.sl.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.sout.pdf b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.sout.pdf index b14b88a92e..25da40e2a4 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.sout.pdf and b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.sout.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uline.pdf b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uline.pdf index 9114b60379..0bc0bb96db 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uline.pdf and b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uline.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uuline.pdf b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uuline.pdf index de00241473..3b29e78138 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uuline.pdf and b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uuline.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uwave.pdf b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uwave.pdf index 36d0f9277c..a0b414f540 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uwave.pdf and b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uwave.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.wrong.pdf b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.wrong.pdf index 17f59b5f0f..d5e92334b6 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.wrong.pdf and b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.wrong.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.xout.pdf b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.xout.pdf index df2ca6a4e8..7c88d36d25 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.xout.pdf and b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.xout.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.draft.pdf b/macros/latex/contrib/changes/examples/changes.example.draft.pdf index 19604e3dc1..7487224028 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.draft.pdf and b/macros/latex/contrib/changes/examples/changes.example.draft.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.final.pdf b/macros/latex/contrib/changes/examples/changes.example.final.pdf index 8b220865d3..ba26534645 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.final.pdf and b/macros/latex/contrib/changes/examples/changes.example.final.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.highlightmarkup.background.pdf b/macros/latex/contrib/changes/examples/changes.example.highlightmarkup.background.pdf index c15f9259b8..5454e5cb9e 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.highlightmarkup.background.pdf and b/macros/latex/contrib/changes/examples/changes.example.highlightmarkup.background.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.highlightmarkup.uuline.pdf b/macros/latex/contrib/changes/examples/changes.example.highlightmarkup.uuline.pdf index 5980796240..44660333cc 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.highlightmarkup.uuline.pdf and b/macros/latex/contrib/changes/examples/changes.example.highlightmarkup.uuline.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.highlightmarkup.uwave.pdf b/macros/latex/contrib/changes/examples/changes.example.highlightmarkup.uwave.pdf index 5c9b001fbd..b0dde8c21e 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.highlightmarkup.uwave.pdf and b/macros/latex/contrib/changes/examples/changes.example.highlightmarkup.uwave.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.listofchanges.all.pdf b/macros/latex/contrib/changes/examples/changes.example.listofchanges.all.pdf index 8c0cc20248..1d91a78803 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.listofchanges.all.pdf and b/macros/latex/contrib/changes/examples/changes.example.listofchanges.all.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.listofchanges.compactsummary.pdf b/macros/latex/contrib/changes/examples/changes.example.listofchanges.compactsummary.pdf index 26a11f1814..d4e2dc9286 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.listofchanges.compactsummary.pdf and b/macros/latex/contrib/changes/examples/changes.example.listofchanges.compactsummary.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.listofchanges.list.pdf b/macros/latex/contrib/changes/examples/changes.example.listofchanges.list.pdf index 02ba064853..bf123cce50 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.listofchanges.list.pdf and b/macros/latex/contrib/changes/examples/changes.example.listofchanges.list.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.listofchanges.show.pdf b/macros/latex/contrib/changes/examples/changes.example.listofchanges.show.pdf index 5d8bd6bf4c..65c702e413 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.listofchanges.show.pdf and b/macros/latex/contrib/changes/examples/changes.example.listofchanges.show.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.listofchanges.summary.pdf b/macros/latex/contrib/changes/examples/changes.example.listofchanges.summary.pdf index 59a489ead4..565a258ad9 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.listofchanges.summary.pdf and b/macros/latex/contrib/changes/examples/changes.example.listofchanges.summary.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.listofchanges.title.pdf b/macros/latex/contrib/changes/examples/changes.example.listofchanges.title.pdf index 378bc395c2..64ca9aa1af 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.listofchanges.title.pdf and b/macros/latex/contrib/changes/examples/changes.example.listofchanges.title.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.listofchanges.wrong.pdf b/macros/latex/contrib/changes/examples/changes.example.listofchanges.wrong.pdf index 2f0c65b9a9..302a98cfcd 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.listofchanges.wrong.pdf and b/macros/latex/contrib/changes/examples/changes.example.listofchanges.wrong.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.markup.bfit.pdf b/macros/latex/contrib/changes/examples/changes.example.markup.bfit.pdf index 335460ea5d..02216b7feb 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.markup.bfit.pdf and b/macros/latex/contrib/changes/examples/changes.example.markup.bfit.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.markup.default.pdf b/macros/latex/contrib/changes/examples/changes.example.markup.default.pdf index 5e19e72dad..e7808d8a3d 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.markup.default.pdf and b/macros/latex/contrib/changes/examples/changes.example.markup.default.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.markup.nocolor.pdf b/macros/latex/contrib/changes/examples/changes.example.markup.nocolor.pdf index f22f6b88bc..e9aa8961aa 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.markup.nocolor.pdf and b/macros/latex/contrib/changes/examples/changes.example.markup.nocolor.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.markup.underlined.pdf b/macros/latex/contrib/changes/examples/changes.example.markup.underlined.pdf index 69a6bafc59..4e857736ad 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.markup.underlined.pdf and b/macros/latex/contrib/changes/examples/changes.example.markup.underlined.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.markup.wrong.pdf b/macros/latex/contrib/changes/examples/changes.example.markup.wrong.pdf index ad081f72cb..92d173d497 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.markup.wrong.pdf and b/macros/latex/contrib/changes/examples/changes.example.markup.wrong.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.packageoptions.todonotes.pdf b/macros/latex/contrib/changes/examples/changes.example.packageoptions.todonotes.pdf index 0e00c4420f..e4b03e2b5d 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.packageoptions.todonotes.pdf and b/macros/latex/contrib/changes/examples/changes.example.packageoptions.todonotes.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.packageoptions.truncate.pdf b/macros/latex/contrib/changes/examples/changes.example.packageoptions.truncate.pdf index c98fb27a2e..dcc53cb087 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.packageoptions.truncate.pdf and b/macros/latex/contrib/changes/examples/changes.example.packageoptions.truncate.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.packageoptions.ulem.pdf b/macros/latex/contrib/changes/examples/changes.example.packageoptions.ulem.pdf index 880cadda7d..8505cb8df9 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.packageoptions.ulem.pdf and b/macros/latex/contrib/changes/examples/changes.example.packageoptions.ulem.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.packageoptions.xcolor.pdf b/macros/latex/contrib/changes/examples/changes.example.packageoptions.xcolor.pdf index 3089085f93..c14ec5b69d 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.packageoptions.xcolor.pdf and b/macros/latex/contrib/changes/examples/changes.example.packageoptions.xcolor.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.screenshot.pdf b/macros/latex/contrib/changes/examples/changes.example.screenshot.pdf index 2eb639c281..f160be560a 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.screenshot.pdf and b/macros/latex/contrib/changes/examples/changes.example.screenshot.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.setaddedmarkup.pdf b/macros/latex/contrib/changes/examples/changes.example.setaddedmarkup.pdf index a83f2f1064..3bd6988e6f 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.setaddedmarkup.pdf and b/macros/latex/contrib/changes/examples/changes.example.setaddedmarkup.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.setauthormarkup.pdf b/macros/latex/contrib/changes/examples/changes.example.setauthormarkup.pdf index c6d7119322..7daf91ae92 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.setauthormarkup.pdf and b/macros/latex/contrib/changes/examples/changes.example.setauthormarkup.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.setauthormarkupposition.pdf b/macros/latex/contrib/changes/examples/changes.example.setauthormarkupposition.pdf index fa609d6a4d..a1d970adaf 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.setauthormarkupposition.pdf and b/macros/latex/contrib/changes/examples/changes.example.setauthormarkupposition.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.setauthormarkuptext.pdf b/macros/latex/contrib/changes/examples/changes.example.setauthormarkuptext.pdf index 1780b0bb63..6d5b376fda 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.setauthormarkuptext.pdf and b/macros/latex/contrib/changes/examples/changes.example.setauthormarkuptext.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.setcommentmarkup.pdf b/macros/latex/contrib/changes/examples/changes.example.setcommentmarkup.pdf index a0d62a22b6..95bb7d328e 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.setcommentmarkup.pdf and b/macros/latex/contrib/changes/examples/changes.example.setcommentmarkup.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.setdeletedmarkup.pdf b/macros/latex/contrib/changes/examples/changes.example.setdeletedmarkup.pdf index 75d1f0b381..b41d6fad38 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.setdeletedmarkup.pdf and b/macros/latex/contrib/changes/examples/changes.example.setdeletedmarkup.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.sethighlightmarkup.pdf b/macros/latex/contrib/changes/examples/changes.example.sethighlightmarkup.pdf index 904094ba18..bad03fbfd1 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.sethighlightmarkup.pdf and b/macros/latex/contrib/changes/examples/changes.example.sethighlightmarkup.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.setsocextension.pdf b/macros/latex/contrib/changes/examples/changes.example.setsocextension.pdf index c76adf1d00..985d432902 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.setsocextension.pdf and b/macros/latex/contrib/changes/examples/changes.example.setsocextension.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.setsummarytowidth.pdf b/macros/latex/contrib/changes/examples/changes.example.setsummarytowidth.pdf index 1dd53cc870..35306c3ce1 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.setsummarytowidth.pdf and b/macros/latex/contrib/changes/examples/changes.example.setsummarytowidth.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.setsummarywidth.pdf b/macros/latex/contrib/changes/examples/changes.example.setsummarywidth.pdf index 3b4a6ae2a0..bb075da847 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.setsummarywidth.pdf and b/macros/latex/contrib/changes/examples/changes.example.setsummarywidth.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.settruncatewidth.pdf b/macros/latex/contrib/changes/examples/changes.example.settruncatewidth.pdf index e816f0dde8..62b2878df3 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.settruncatewidth.pdf and b/macros/latex/contrib/changes/examples/changes.example.settruncatewidth.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.simple.pdf b/macros/latex/contrib/changes/examples/changes.example.simple.pdf index 1a803ad07f..0c7385b600 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.simple.pdf and b/macros/latex/contrib/changes/examples/changes.example.simple.pdf differ diff --git a/macros/latex/contrib/changes/regression.dtx b/macros/latex/contrib/changes/regression.dtx new file mode 100644 index 0000000000..a3fe6c903a --- /dev/null +++ b/macros/latex/contrib/changes/regression.dtx @@ -0,0 +1,187 @@ +% \iffalse meta-comment +% +% Copyright (C) 2007-2021 +% Ekkart Kleinod (ekleinod@edgesoft.de) +% -------------------------------------------------------------------------- +% +% 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 any later version. +% The latest version of this license is in\\ +% \url{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 "maintained". +% The current maintainer of this work is Ekkart Kleinod. +% \fi +% +% \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 \~} +% +% \GetFileInfo{regression.dtx} +% +%^^A -------------------------------------------------------------------------- +% +% Start the \LaTeX document the standard way. +% +% \begin{macrocode} +\documentclass[11pt, a4paper, notitlepage, english]{article} +\usepackage{babel} +% \end{macrocode} +% +% \begin{macrocode} +%<*regression:draft> +\usepackage[authormarkuptext=name]{changes} +% +%<*regression:final> +\usepackage[final]{changes} +% +% +% Define some authors. +% +% \begin{macrocode} +\definechangesauthor[color=green]{Green} +\definechangesauthor[name={Mister Orange}, color=orange]{OA} +\definechangesauthor{nochanges} +% \end{macrocode} +% +% \begin{macrocode} +\begin{document} + +%<*regression:draft> + \section{Test empty string} + + Anonymous author should have no space before the \added[comment=no space]{number} in the comment. + + Author name should \added[id=OA]{appear here} but \added[id=Green]{id here}. + + \listofchanges[title={List of changes should not contain empty author brackets}] + + \listofchanges[style=compactsummary, title={Summary should not contain empty author brackets either}] +% + +%<*regression:final> + \section{Compile errors to avoid} + + no compile error here (just a missing citation): --- \added{a cite inside added \cite{bibid}} --- + + \section{Errors with empty replacement} + + All corresponding lines should have the same width. + + Text before deletion. + \deleted{Deleted text.} + Text after deletion. + + Text before deletion. \deleted{Deleted text.} Text after deletion. + + Text before deletion. + Text after deletion. + + + Text before replacement. + \replaced{}{Replaced text.} + Text after replacement. + + Text before replacement. \replaced{}{Replaced text.} Text after replacement. + + Text before replacement. + Text after replacement. + + + Text before replacement. + \replaced{}{} + Text after replacement. + + Text before replacement. \replaced{}{} Text after replacement. + + Text before replacement. + Text after replacement. + + + Text before addition. + \added{} + Text after addition. + + Text before addition. \added{} Text after addition. + + Text before addition. + Text after addition. + + Text before comment. + \comment{Comment.} + Text after comment. + + Text before comment. \comment{Comment.} Text after comment. + + Text before comment. + Text after comment. + + Text before empty comment. + \comment{} + Text after empty comment. + + Text before empty comment. \comment{} Text after empty comment. + + Text before empty comment. + Text after empty comment. + + Text before highlight. + \highlight[comment={Highlight comment}]{Highlighted text.} + Text after highlight. + + Text before highlight. \highlight[comment={Highlight comment}]{Highlighted text.} Text after highlight. + + Text before highlight. + Highlighted text. + Text after highlight. + + Text before empty highlight text. + \highlight[comment={Highlight comment}]{} + Text after empty highlight text. + + Text before empty highlight text. \highlight[comment={Highlight comment}]{} Text after empty highlight text. + + Text before empty highlight text. + Text after empty highlight text. + + Text before empty highlight comment. + \highlight[comment={}]{Highlighted text.} + Text after empty highlight comment. + + Text before empty highlight comment. \highlight[comment={}]{Highlighted text.} Text after empty highlight comment. + + Text before empty highlight comment. + Highlighted text. + Text after empty highlight comment. + + Text before empty highlight. + \highlight[comment={}]{} + Text after empty highlight. + + Text before empty highlight. \highlight[comment={}]{} Text after empty highlight. + + Text before empty highlight. + Text after empty highlight. + +% + +\end{document} +% \end{macrocode} +% +%\Finale +\endinput diff --git a/macros/latex/contrib/huawei/README.md b/macros/latex/contrib/huawei/README.md index ddb9d7db34..a6ae6ec72c 100644 --- a/macros/latex/contrib/huawei/README.md +++ b/macros/latex/contrib/huawei/README.md @@ -1,14 +1,16 @@ +[![make](https://github.com/yegor256/huawei.cls/actions/workflows/make.yml/badge.svg)](https://github.com/yegor256/huawei.cls/actions/workflows/make.yml) + Disclaimer: This is **NOT** a product of Huawei Technologies Co., Ltd. This package is created in order to help some people working with Huawei or inside Huawei to render some documents in LaTeX format. You are welcome to use it at your own risk. -You can use this [`huawei.cls`](huawei.cls) LaTeX style just by copying it to some local -directory and then mentioning it in the preamble of all your documents -(on my laptop it's called `/code/huawei.cls`): +First, [install it](https://en.wikibooks.org/wiki/LaTeX/Installing_Extra_Packages) +from [CTAN](https://ctan.org/pkg/huawei) +and then use in the preamble: ```tex -\documentclass[landscape]{/code/huawei} +\documentclass[landscape]{huawei} \author{Yegor Bugayenko} \title{An Interesting Document About Something} \begin{document} diff --git a/macros/latex/contrib/huawei/huawei.cls b/macros/latex/contrib/huawei/huawei.cls index 7ea0170c9c..1a8c9c2ef3 100644 --- a/macros/latex/contrib/huawei/huawei.cls +++ b/macros/latex/contrib/huawei/huawei.cls @@ -21,7 +21,7 @@ % SOFTWARE. \NeedsTeXFormat{LaTeX2e} -\ProvidesClass{huawei}[17/4/2021 0.1.0 Template for Huawei documents] +\ProvidesClass{huawei}[13/05/2021 0.2.0 Template for Huawei documents] \newif\ifnosecurity \DeclareOption{nosecurity}{\nosecuritytrue} \newif\ifnobrand @@ -75,15 +75,13 @@ \noexpand\setstretch{\fpeval{(#1)*(\baselinestretch)}}% }\x% } +\RequirePackage[maxnames=1,minnames=1,natbib=true,style=ieee,doi=false,url=false,isbn=false,isbn=false]{biblatex} \RequirePackage[table]{xcolor} \definecolor{huawei-red}{HTML}{CF0A2C} \definecolor{huawei-black}{HTML}{232527} \RequirePackage{tikz} \RequirePackage{tabularx} \RequirePackage{titling} -\RequirePackage{fancyhdr} - \pagestyle{empty} -\RequirePackage{everypage} \RequirePackage{svg} \RequirePackage[normalem]{ulem} \RequirePackage[hidelinks]{hyperref} @@ -97,12 +95,6 @@ \endgroup\makeatother \RequirePackage[absolute]{textpos}\TPGrid{16}{16} -\newcommand\LeftHuaweiBar{% - \begin{textblock}{1}[0,0](0,0)% - \tikz \node[fill=huawei-red,minimum width=\TPHorizModule,minimum height=16\TPVertModule] {};% - \end{textblock}% -} - % Our custom commands to redefine: \renewcommand\title[1]{\renewcommand\thetitle{#1}} \newcommand\thetitle{Untitled} @@ -115,7 +107,7 @@ % Custom commands \newcommand\nospell[1]{#1} -\newcommand\headers[1]{{\small\sffamily\color{gray}#1}} +\newcommand\headers[1]{\setrelativestretch{0.8}{\small\sffamily\color{gray}#1}} \newcommand\tbd[1]{{\color{red}#1}} \newcommand\crumb[2]{\begin{minipage}{\columnwidth}\raggedright\textsc{#1}:\\#2\end{minipage}\vspace{4pt}} \RequirePackage{tcolorbox} @@ -132,116 +124,111 @@ \def\arraystretch{1.5}% } -\newcommand\PrintFirstPage[1]{ - \LeftHuaweiBar{} - \def\param{#1}% - \ifx\param\empty - % nothing - \else - \includegraphics[height=2in]{#1} - \fi - \vspace*{0.5in} - \maketitle +\newcommand\LeftHuaweiBar{% + \begin{textblock}{1}[0,0](0,0)% + \tikz \node[fill=huawei-red,minimum width=\TPHorizModule,minimum height=16\TPVertModule] {};% + \end{textblock}% } -\AddEverypageHook{% - \LeftHuaweiBar{} - \ifnobrand% - % nothing here - \else% - \begin{textblock}{8}[0,0](1.2,0.2)% - \begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1, inner sep=0pt, outer sep=0pt] - \begin{scope}[even odd rule,line width=0.800pt] - \begin{scope}[shift={(0,-0.00024)}] - \path[fill=huawei-black] (10.9375,30.2240) -- (10.9375,33.6097) .. controls (10.9375,34.5713) and (10.4603,35.0845) .. (9.5932,35.0845) .. controls (8.7212,35.0845) and (8.2411,34.5565) .. (8.2411,33.5686) -- (8.2411,30.2278) -- (7.0415,30.2278) -- (7.0415,33.6097) .. controls (7.0415,35.2737) and (7.9658,36.2272) .. (9.5774,36.2272) .. controls (11.2041,36.2272) and (12.1371,35.2554) .. (12.1371,33.5609) -- (12.1371,30.2240) -- (10.9375,30.2240) -- cycle; - \path[fill=huawei-black] (15.3511,30.2240) -- (12.7456,36.1351) -- (13.9702,36.1351) -- (14.4731,34.9903) -- (14.5091,34.9045) -- (17.2158,34.9045) -- (17.7467,36.1351) -- (19.0045,36.1351) -- (16.4233,30.2590) -- (16.4001,30.2240) -- cycle; - \path[fill=huawei-black] (22.4840,30.2240) -- (21.1414,34.2912) -- (19.8344,30.2271) -- (18.5578,30.2271) -- (20.6186,36.1388) -- (21.6120,36.1388) -- (22.9573,32.2553) -- (24.3016,36.1388) -- (25.3034,36.1388) -- (27.3592,30.2271) -- (26.1152,30.2271) -- (24.8055,34.2912) -- (23.4626,30.2240) -- cycle; - \path[fill=huawei-black] (34.2236,30.2240) -- (34.2236,36.1300) -- (35.4074,36.1300) -- (35.4074,30.2240) -- cycle; - \path[fill=huawei-black] (0.2686,30.2244) -- (0.2686,36.1384) -- (1.4686,36.1384) -- (1.4686,33.7365) -- (4.1780,33.7365) -- (4.1780,36.1384) -- (5.3783,36.1384) -- (5.3783,30.2244) -- (4.1780,30.2244) -- (4.1780,32.6102) -- (1.4686,32.6102) -- (1.4686,30.2244) -- cycle; - \path[fill=huawei-black] (28.3267,30.2284) -- (28.3267,36.1344) -- (32.7928,36.1344) -- (32.7928,35.0575) -- (29.5105,35.0575) -- (29.5105,33.5931) -- (31.6931,33.5931) -- (31.6931,32.5160) -- (29.5105,32.5160) -- (29.5105,31.3052) -- (32.6785,31.3052) -- (32.6785,30.2284) -- cycle; - \path[fill=white] (15.8594,31.7207) -- (16.7149,33.7008) -- (16.7119,33.7008) -- (16.7701,33.8374) -- (14.9552,33.8374) -- (15.0127,33.7008) -- (15.0117,33.7008) -- cycle; - \path[fill=huawei-red] (15.2113,0.0001) .. controls (14.7353,0.0422) and (13.4491,0.3349) .. (13.4491,0.3349) -- (13.4486,0.3349) .. controls (10.5495,1.0843) and (9.8643,3.7151) .. (9.8643,3.7151) .. controls (9.7227,4.1575) and (9.6584,4.6109) .. (9.6395,5.0380) -- (9.6395,5.6194) .. controls (9.6780,6.5176) and (9.8777,7.1883) .. (9.8777,7.1883) .. controls (10.8461,11.4823) and (15.6075,18.5379) .. (16.6308,20.0200) .. controls (16.7034,20.0920) and (16.7615,20.0660) .. (16.7615,20.0660) .. controls (16.8720,20.0355) and (16.8633,19.9296) .. (16.8633,19.9296) -- (16.8654,19.9301) .. controls (18.4416,4.1760) and (15.2113,0.0001) .. (15.2113,0.0001) -- (15.2113,0.0001) -- cycle; - \path[fill=huawei-red] (20.4192,0.0000) .. controls (20.4192,0.0000) and (17.1748,4.1782) .. (18.7521,19.9415) -- (18.7542,19.9415) .. controls (18.7664,20.0416) and (18.8374,20.0624) .. (18.8374,20.0624) .. controls (18.9430,20.1033) and (18.9971,20.0019) .. (18.9971,20.0019) -- (18.9976,20.0029) .. controls (20.0472,18.4829) and (24.7814,11.4657) .. (25.7455,7.1882) .. controls (25.7455,7.1882) and (26.2683,5.1179) .. (25.7636,3.7150) .. controls (25.7636,3.7150) and (25.0470,1.0434) .. (22.1442,0.3375) .. controls (22.1442,0.3375) and (21.3077,0.1251) .. (20.4193,0.0000) -- (20.4192,0.0000) -- cycle; - \path[fill=huawei-red] (5.4542,4.7294) .. controls (5.4542,4.7294) and (2.6920,7.3513) .. (2.5547,10.1307) -- (2.5558,10.1307) -- (2.5558,10.5519) .. controls (2.5579,10.5836) and (2.5595,10.6157) .. (2.5615,10.6480) .. controls (2.6804,12.8893) and (4.3665,14.2157) .. (4.3665,14.2157) .. controls (7.0831,16.8634) and (13.6611,20.2062) .. (15.1896,20.9647) .. controls (15.2110,20.9727) and (15.2900,20.9985) .. (15.3364,20.9399) .. controls (15.3364,20.9399) and (15.3605,20.9216) .. (15.3715,20.8887) -- (15.3715,20.8189) .. controls (15.3704,20.8149) and (15.3683,20.8109) .. (15.3663,20.8065) -- (15.3669,20.8065) .. controls (11.1809,11.6620) and (5.4543,4.7294) .. (5.4543,4.7294) -- (5.4542,4.7294) -- cycle; - \path[fill=huawei-red] (30.1695,4.7294) .. controls (30.1695,4.7294) and (24.4602,11.6403) .. (20.2761,20.7662) -- (20.2777,20.7657) .. controls (20.2777,20.7657) and (20.2283,20.8715) .. (20.3082,20.9399) .. controls (20.3082,20.9399) and (20.3320,20.9579) .. (20.3650,20.9652) -- (20.4229,20.9652) .. controls (20.4333,20.9622) and (20.4444,20.9582) .. (20.4554,20.9507) -- (20.4554,20.9517) .. controls (22.0255,20.1724) and (28.5525,16.8516) .. (31.2563,14.2162) .. controls (31.2563,14.2162) and (32.9686,12.8412) .. (33.0583,10.6334) .. controls (33.2560,7.5672) and (30.1696,4.7294) .. (30.1696,4.7294) -- (30.1695,4.7294) -- cycle; - \path[fill=huawei-red] (35.3082,13.8080) .. controls (35.3082,13.8080) and (26.0003,18.8031) .. (21.1876,22.0494) -- (21.1882,22.0499) -- (21.1893,22.0509) .. controls (21.1893,22.0509) and (21.1019,22.1081) .. (21.1324,22.2106) .. controls (21.1324,22.2106) and (21.1781,22.2933) .. (21.2446,22.2933) -- (21.2446,22.2938) .. controls (22.9684,22.2968) and (29.4914,22.3041) .. (29.6549,22.2736) .. controls (29.6549,22.2736) and (30.4983,22.2399) .. (31.5406,21.8395) .. controls (31.5406,21.8395) and (33.8608,21.1019) .. (35.0659,18.4677) .. controls (35.0659,18.4677) and (35.6166,17.3662) .. (35.6246,15.8187) -- (35.6246,15.7531) .. controls (35.6206,15.1563) and (35.5365,14.4957) .. (35.3083,13.8080) -- (35.3082,13.8080) -- cycle; - \path[fill=huawei-red] (0.3129,13.8313) .. controls (-0.5339,16.4531) and (0.6062,18.5656) .. (0.6080,18.5690) .. controls (1.7962,21.0795) and (4.0641,21.8401) .. (4.0641,21.8401) .. controls (5.1112,22.2703) and (6.1586,22.3000) .. (6.1586,22.3000) .. controls (6.3221,22.3300) and (12.6713,22.3030) .. (14.3725,22.2950) .. controls (14.4445,22.2945) and (14.4842,22.2221) .. (14.4842,22.2221) .. controls (14.4892,22.2142) and (14.4936,22.2062) .. (14.4955,22.1989) -- (14.4955,22.1333) .. controls (14.4814,22.0893) and (14.4439,22.0584) .. (14.4439,22.0584) -- (14.4450,22.0578) .. controls (9.6347,18.8126) and (0.3130,13.8315) .. (0.3130,13.8315) -- (0.3129,13.8313) -- cycle; - \path[fill=huawei-red] (14.1782,23.1010) -- (3.2285,23.4850) .. controls (4.4160,25.6018) and (6.4158,27.2469) .. (8.4990,26.7416) .. controls (9.9366,26.3822) and (13.1935,24.1105) .. (14.2687,23.3429) -- (14.2651,23.3399) .. controls (14.3487,23.2648) and (14.3188,23.2045) .. (14.3188,23.2045) .. controls (14.2913,23.1062) and (14.1783,23.1063) .. (14.1783,23.1063) -- (14.1782,23.1010) -- cycle; - \path[fill=huawei-red] (21.4305,23.1090) -- (21.4294,23.1130) .. controls (21.4294,23.1130) and (21.3333,23.1252) .. (21.3064,23.1972) .. controls (21.3064,23.1972) and (21.2831,23.2956) .. (21.3478,23.3445) -- (21.3467,23.3455) .. controls (22.3950,24.0973) and (25.5729,26.3191) .. (27.1039,26.7505) .. controls (27.1039,26.7505) and (27.3359,26.8294) .. (27.7246,26.8435) -- (27.9581,26.8435) .. controls (28.9839,26.8075) and (30.7708,26.2805) .. (32.3946,23.4907) -- (21.4305,23.1090) -- cycle; - \end{scope}% - \end{scope}% - \end{tikzpicture}% - \end{textblock}% - \fi% - \begin{textblock}{8}[1,0](15.8,0.2)% - \raggedleft\headers{% - \ifnosecurity% - % nothing here - \else% - \thesecurity +\newcommand\HuaweiLogo{ + \begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1, inner sep=0pt, outer sep=0pt] + \begin{scope}[even odd rule,line width=0.800pt] + \begin{scope}[shift={(0,-0.00024)}] + \path[fill=huawei-black] (10.9375,30.2240) -- (10.9375,33.6097) .. controls (10.9375,34.5713) and (10.4603,35.0845) .. (9.5932,35.0845) .. controls (8.7212,35.0845) and (8.2411,34.5565) .. (8.2411,33.5686) -- (8.2411,30.2278) -- (7.0415,30.2278) -- (7.0415,33.6097) .. controls (7.0415,35.2737) and (7.9658,36.2272) .. (9.5774,36.2272) .. controls (11.2041,36.2272) and (12.1371,35.2554) .. (12.1371,33.5609) -- (12.1371,30.2240) -- (10.9375,30.2240) -- cycle; + \path[fill=huawei-black] (15.3511,30.2240) -- (12.7456,36.1351) -- (13.9702,36.1351) -- (14.4731,34.9903) -- (14.5091,34.9045) -- (17.2158,34.9045) -- (17.7467,36.1351) -- (19.0045,36.1351) -- (16.4233,30.2590) -- (16.4001,30.2240) -- cycle; + \path[fill=huawei-black] (22.4840,30.2240) -- (21.1414,34.2912) -- (19.8344,30.2271) -- (18.5578,30.2271) -- (20.6186,36.1388) -- (21.6120,36.1388) -- (22.9573,32.2553) -- (24.3016,36.1388) -- (25.3034,36.1388) -- (27.3592,30.2271) -- (26.1152,30.2271) -- (24.8055,34.2912) -- (23.4626,30.2240) -- cycle; + \path[fill=huawei-black] (34.2236,30.2240) -- (34.2236,36.1300) -- (35.4074,36.1300) -- (35.4074,30.2240) -- cycle; + \path[fill=huawei-black] (0.2686,30.2244) -- (0.2686,36.1384) -- (1.4686,36.1384) -- (1.4686,33.7365) -- (4.1780,33.7365) -- (4.1780,36.1384) -- (5.3783,36.1384) -- (5.3783,30.2244) -- (4.1780,30.2244) -- (4.1780,32.6102) -- (1.4686,32.6102) -- (1.4686,30.2244) -- cycle; + \path[fill=huawei-black] (28.3267,30.2284) -- (28.3267,36.1344) -- (32.7928,36.1344) -- (32.7928,35.0575) -- (29.5105,35.0575) -- (29.5105,33.5931) -- (31.6931,33.5931) -- (31.6931,32.5160) -- (29.5105,32.5160) -- (29.5105,31.3052) -- (32.6785,31.3052) -- (32.6785,30.2284) -- cycle; + \path[fill=white] (15.8594,31.7207) -- (16.7149,33.7008) -- (16.7119,33.7008) -- (16.7701,33.8374) -- (14.9552,33.8374) -- (15.0127,33.7008) -- (15.0117,33.7008) -- cycle; + \path[fill=huawei-red] (15.2113,0.0001) .. controls (14.7353,0.0422) and (13.4491,0.3349) .. (13.4491,0.3349) -- (13.4486,0.3349) .. controls (10.5495,1.0843) and (9.8643,3.7151) .. (9.8643,3.7151) .. controls (9.7227,4.1575) and (9.6584,4.6109) .. (9.6395,5.0380) -- (9.6395,5.6194) .. controls (9.6780,6.5176) and (9.8777,7.1883) .. (9.8777,7.1883) .. controls (10.8461,11.4823) and (15.6075,18.5379) .. (16.6308,20.0200) .. controls (16.7034,20.0920) and (16.7615,20.0660) .. (16.7615,20.0660) .. controls (16.8720,20.0355) and (16.8633,19.9296) .. (16.8633,19.9296) -- (16.8654,19.9301) .. controls (18.4416,4.1760) and (15.2113,0.0001) .. (15.2113,0.0001) -- (15.2113,0.0001) -- cycle; + \path[fill=huawei-red] (20.4192,0.0000) .. controls (20.4192,0.0000) and (17.1748,4.1782) .. (18.7521,19.9415) -- (18.7542,19.9415) .. controls (18.7664,20.0416) and (18.8374,20.0624) .. (18.8374,20.0624) .. controls (18.9430,20.1033) and (18.9971,20.0019) .. (18.9971,20.0019) -- (18.9976,20.0029) .. controls (20.0472,18.4829) and (24.7814,11.4657) .. (25.7455,7.1882) .. controls (25.7455,7.1882) and (26.2683,5.1179) .. (25.7636,3.7150) .. controls (25.7636,3.7150) and (25.0470,1.0434) .. (22.1442,0.3375) .. controls (22.1442,0.3375) and (21.3077,0.1251) .. (20.4193,0.0000) -- (20.4192,0.0000) -- cycle; + \path[fill=huawei-red] (5.4542,4.7294) .. controls (5.4542,4.7294) and (2.6920,7.3513) .. (2.5547,10.1307) -- (2.5558,10.1307) -- (2.5558,10.5519) .. controls (2.5579,10.5836) and (2.5595,10.6157) .. (2.5615,10.6480) .. controls (2.6804,12.8893) and (4.3665,14.2157) .. (4.3665,14.2157) .. controls (7.0831,16.8634) and (13.6611,20.2062) .. (15.1896,20.9647) .. controls (15.2110,20.9727) and (15.2900,20.9985) .. (15.3364,20.9399) .. controls (15.3364,20.9399) and (15.3605,20.9216) .. (15.3715,20.8887) -- (15.3715,20.8189) .. controls (15.3704,20.8149) and (15.3683,20.8109) .. (15.3663,20.8065) -- (15.3669,20.8065) .. controls (11.1809,11.6620) and (5.4543,4.7294) .. (5.4543,4.7294) -- (5.4542,4.7294) -- cycle; + \path[fill=huawei-red] (30.1695,4.7294) .. controls (30.1695,4.7294) and (24.4602,11.6403) .. (20.2761,20.7662) -- (20.2777,20.7657) .. controls (20.2777,20.7657) and (20.2283,20.8715) .. (20.3082,20.9399) .. controls (20.3082,20.9399) and (20.3320,20.9579) .. (20.3650,20.9652) -- (20.4229,20.9652) .. controls (20.4333,20.9622) and (20.4444,20.9582) .. (20.4554,20.9507) -- (20.4554,20.9517) .. controls (22.0255,20.1724) and (28.5525,16.8516) .. (31.2563,14.2162) .. controls (31.2563,14.2162) and (32.9686,12.8412) .. (33.0583,10.6334) .. controls (33.2560,7.5672) and (30.1696,4.7294) .. (30.1696,4.7294) -- (30.1695,4.7294) -- cycle; + \path[fill=huawei-red] (35.3082,13.8080) .. controls (35.3082,13.8080) and (26.0003,18.8031) .. (21.1876,22.0494) -- (21.1882,22.0499) -- (21.1893,22.0509) .. controls (21.1893,22.0509) and (21.1019,22.1081) .. (21.1324,22.2106) .. controls (21.1324,22.2106) and (21.1781,22.2933) .. (21.2446,22.2933) -- (21.2446,22.2938) .. controls (22.9684,22.2968) and (29.4914,22.3041) .. (29.6549,22.2736) .. controls (29.6549,22.2736) and (30.4983,22.2399) .. (31.5406,21.8395) .. controls (31.5406,21.8395) and (33.8608,21.1019) .. (35.0659,18.4677) .. controls (35.0659,18.4677) and (35.6166,17.3662) .. (35.6246,15.8187) -- (35.6246,15.7531) .. controls (35.6206,15.1563) and (35.5365,14.4957) .. (35.3083,13.8080) -- (35.3082,13.8080) -- cycle; + \path[fill=huawei-red] (0.3129,13.8313) .. controls (-0.5339,16.4531) and (0.6062,18.5656) .. (0.6080,18.5690) .. controls (1.7962,21.0795) and (4.0641,21.8401) .. (4.0641,21.8401) .. controls (5.1112,22.2703) and (6.1586,22.3000) .. (6.1586,22.3000) .. controls (6.3221,22.3300) and (12.6713,22.3030) .. (14.3725,22.2950) .. controls (14.4445,22.2945) and (14.4842,22.2221) .. (14.4842,22.2221) .. controls (14.4892,22.2142) and (14.4936,22.2062) .. (14.4955,22.1989) -- (14.4955,22.1333) .. controls (14.4814,22.0893) and (14.4439,22.0584) .. (14.4439,22.0584) -- (14.4450,22.0578) .. controls (9.6347,18.8126) and (0.3130,13.8315) .. (0.3130,13.8315) -- (0.3129,13.8313) -- cycle; + \path[fill=huawei-red] (14.1782,23.1010) -- (3.2285,23.4850) .. controls (4.4160,25.6018) and (6.4158,27.2469) .. (8.4990,26.7416) .. controls (9.9366,26.3822) and (13.1935,24.1105) .. (14.2687,23.3429) -- (14.2651,23.3399) .. controls (14.3487,23.2648) and (14.3188,23.2045) .. (14.3188,23.2045) .. controls (14.2913,23.1062) and (14.1783,23.1063) .. (14.1783,23.1063) -- (14.1782,23.1010) -- cycle; + \path[fill=huawei-red] (21.4305,23.1090) -- (21.4294,23.1130) .. controls (21.4294,23.1130) and (21.3333,23.1252) .. (21.3064,23.1972) .. controls (21.3064,23.1972) and (21.2831,23.2956) .. (21.3478,23.3445) -- (21.3467,23.3455) .. controls (22.3950,24.0973) and (25.5729,26.3191) .. (27.1039,26.7505) .. controls (27.1039,26.7505) and (27.3359,26.8294) .. (27.7246,26.8435) -- (27.9581,26.8435) .. controls (28.9839,26.8075) and (30.7708,26.2805) .. (32.3946,23.4907) -- (21.4305,23.1090) -- cycle; + \end{scope}% + \end{scope}% + \end{tikzpicture}% +} + +\RequirePackage{fancyhdr} + \pagestyle{fancy} + \renewcommand{\headrulewidth}{0pt} + \fancyhf{} + \fancyfoot[L]{ + \LeftHuaweiBar{} + \ifnum\value{page}=1\else% + \ifnobrand\else% + \begin{textblock}{8}[0,0](1.2,0.2)% + \HuaweiLogo{}% + \end{textblock}% \fi% - }% - \end{textblock}% - \begin{textblock}{8}[0,1](1.2,15.8)% - \headers{% - \ifanonymous% - % nothing here - \else% - \theauthor% - \ifnosecurity% - % nothing here - \else, - \theid - \fi% - \ifnobrand% - % nothing here - \else% - \\[2pt] + \fi% + \begin{textblock}{8}[1,0](15.8,0.2)% + \raggedleft\headers{% + \ifnosecurity\else% + \thesecurity \fi% + }% + \end{textblock}% + \begin{textblock}{8}[0,1](1.2,15.8)% + \ifnum\value{page}=1\else% + \headers{% + \ifanonymous\else% + \theauthor% + \ifnosecurity\else, + \theid + \fi% + \ifnobrand\else% + \newline + \fi% + \fi% + \ifnobrand\else% + \thecompany{} + \fi% + }% \fi% - \ifnobrand% - % nothing here - \else% - \thecompany{} - \fi% - }% - \end{textblock}% - \begin{textblock}{8}[1,1](15.8,15.8)% - \raggedleft\headers{% - \ifnopaging% - % nothing here - \else% - Page \#\thepage{} of \pageref*{LastPage} - \ifnodate% - % nothing here - \else% - \\[2pt] + \end{textblock}% + \begin{textblock}{8}[1,1](15.8,15.8)% + \raggedleft\headers{% + \ifnum\value{page}=1\else% + \ifnopaging\else% + Page \#\thepage{} of \pageref*{LastPage}% + \ifnodate\else% + \\ + \fi% + \fi% \fi% - \fi% - \ifnodate% - % nothing here - \else% - \today{} \currenttime - \fi% - }% - \end{textblock}% -} + \ifnodate\else% + \today{} \currenttime + \fi% + }% + \end{textblock}% + } \renewcommand\maketitle{% -\vspace*{18pt} -{\bfseries{\Huge\thetitle}} -\\[6pt] -\ifx\thesubtitle\empty\else% - {\color{gray!50!black}\large\thesubtitle} -\fi -\\[18pt] -\ifx\theauthor\empty\else% - {\scshape\theauthor}\\ -\fi -\ifx\theauthor\empty\else% - {\theid} -\fi -\vspace{2em} + \vspace*{18pt} + {\bfseries{\Huge\thetitle}} + \\[6pt] + \ifx\thesubtitle\empty\else% + {\color{gray!50!black}\large\thesubtitle} + \fi + \\[18pt] + \ifanonymous\else% + \thecompany\newline + \fi + \ifx\theauthor\empty\else% + {\scshape\theauthor}% + \fi% + \ifx\theauthor\empty\else + \ifx\theid\empty\else + \;/ {\theid} + \fi + \fi\newline + \vspace{2em} } \newcommand\PrintThankYouPage{ @@ -274,6 +261,16 @@ cannot be held liable for the use of and reliance of the opinions, estimates, forecasts and findings in these documents.}}} +\newcommand\PrintFirstPage[1]{ + \LeftHuaweiBar{} + \def\param{#1}% + \ifx\param\empty\else + \includegraphics[height=2in]{#1} + \fi + \vspace*{0.5in} + \maketitle +} + \newcommand\PrintLastPage{ \newpage \vspace*{1in} @@ -285,15 +282,18 @@ \vspace{0.5in} \begin{CJK}{UTF8}{gbsn} - 把数字世界带入每个人、每个家庭、
每个组织,构建万物互联的智能世界。 + 把数字世界带入每个人、每个家庭、
每个组织、构建万物互联的智能世界。 \end{CJK} - Bring digital to every person, home and - organization for a fully connected, - intelligent world. + Bring digital to every person, home and organization + \newline + for a fully connected, intelligent world. - \textbf{Copyright \copyright{} \the\year{} \thecompany{}\\ - All Rights Reserved.} + \textbf{% + Copyright \copyright{} \the\year{} \thecompany{} + \newline + All Rights Reserved.% + } The information in this document may contain predictive statements including, without limitation, statements regarding @@ -308,4 +308,16 @@ \end{center}% } +\newcommand\PrintBibliography{ + \setlength\bibitemsep{0pt} + \AtNextBibliography{\small} + \newpage + \raggedright + \iflandscape + \begin{multicols}{3}\setrelativestretch{1.0}{\printbibliography}\end{multicols} + \else + \begin{multicols}{2}\setrelativestretch{1.0}{\printbibliography}\end{multicols} + \fi +} + \endinput \ No newline at end of file diff --git a/macros/latex/contrib/huawei/huawei.pdf b/macros/latex/contrib/huawei/huawei.pdf index d0341ad561..0c4cfd48e1 100644 Binary files a/macros/latex/contrib/huawei/huawei.pdf and b/macros/latex/contrib/huawei/huawei.pdf differ diff --git a/macros/latex/contrib/huawei/huawei.tex b/macros/latex/contrib/huawei/huawei.tex index adacc3b092..dc2d76e5cf 100644 --- a/macros/latex/contrib/huawei/huawei.tex +++ b/macros/latex/contrib/huawei/huawei.tex @@ -5,7 +5,9 @@ \begin{document} \maketitle -\ff{Version 0.1.0} +\ff{Version: 0.2.0} +\newline +\ff{Date: 13/05/2021} \section{Overview} diff --git a/macros/latex/contrib/tabularray/README b/macros/latex/contrib/tabularray/README new file mode 100644 index 0000000000..b4714bd0a7 --- /dev/null +++ b/macros/latex/contrib/tabularray/README @@ -0,0 +1,4 @@ +Package: Typeset tabulars and arrays with LaTeX3 +Author: Jianrui Lyu +Repository: https://github.com/lvjr/tabularray +License: The LaTeX Project Public License 1.3 diff --git a/macros/latex/contrib/tabularray/tabularray.pdf b/macros/latex/contrib/tabularray/tabularray.pdf new file mode 100644 index 0000000000..f367583b1b Binary files /dev/null and b/macros/latex/contrib/tabularray/tabularray.pdf differ diff --git a/macros/latex/contrib/tabularray/tabularray.sty b/macros/latex/contrib/tabularray/tabularray.sty new file mode 100644 index 0000000000..dbd07ddc8e --- /dev/null +++ b/macros/latex/contrib/tabularray/tabularray.sty @@ -0,0 +1,3897 @@ +%%% % -*- coding: utf-8 -*- +%%% ---------------------------------------------------------------------------- +%%% Tabularray: Typeset tabulars and arrays with LaTeX3 +%%% Author : Jianrui Lyu +%%% Repository: https://github.com/lvjr/tabularray +%%% License : The LaTeX Project Public License 1.3 +%%% ---------------------------------------------------------------------------- + +%%% -------------------------------------------------------- +%% \section{Scratch Variables and Data Structures} +%%% -------------------------------------------------------- + +\NeedsTeXFormat{LaTeX2e} +\RequirePackage{expl3} +\ProvidesExplPackage{tabularray}{2021-05-13}{2021H} + {Typeset tabulars and arrays with LaTeX3} + +%\RequirePackage{xparse} +\AtBeginDocument{\@ifpackageloaded{xcolor}{\RequirePackage{ninecolors}}{}} + +\ExplSyntaxOn + +\cs_if_exist:NF \vbox_set_top_to_ht:Nnn + { + \cs_new_protected:Npn \vbox_set_top_to_ht:Nnn #1 #2 #3 + { + \tex_setbox:D #1 \tex_vtop:D to \dim_eval:n { #2 } + { \color_group_begin: #3 \par \color_group_end: } + } + } + +\cs_generate_variant:Nn \msg_error:nnnn { nnVn } +\cs_generate_variant:Nn \prop_item:Nn { Ne, NV } +\cs_generate_variant:Nn \prop_put:Nnn { Nxn, Nxx, NxV } +\cs_generate_variant:Nn \regex_replace_all:NnN { NVN } +\cs_generate_variant:Nn \seq_map_indexed_inline:Nn { cn } +\cs_generate_variant:Nn \tl_gput_right:Nn { Nf } +\prg_generate_conditional_variant:Nnn \clist_if_in:Nn { Nx } { TF } +\prg_generate_conditional_variant:Nnn \prop_if_in:Nn { c } { T } +\prg_generate_conditional_variant:Nnn \str_if_eq:nn { xn } { TF } +\prg_generate_conditional_variant:Nnn \tl_if_eq:nn { en } { T, TF } +\prg_generate_conditional_variant:Nnn \tl_if_head_eq_meaning:nN { VN } { T, TF } + +\tl_new:N \l__tblr_a_tl +\tl_new:N \l__tblr_b_tl +\tl_new:N \l__tblr_c_tl +\tl_new:N \l__tblr_d_tl +\tl_new:N \l__tblr_e_tl +\tl_new:N \l__tblr_f_tl +\tl_new:N \l__tblr_h_tl +\tl_new:N \l__tblr_i_tl % for row index +\tl_new:N \l__tblr_j_tl % for column index +\tl_new:N \l__tblr_k_tl +\tl_new:N \l__tblr_n_tl +\tl_new:N \l__tblr_o_tl +\tl_new:N \l__tblr_r_tl +\tl_new:N \l__tblr_s_tl +\tl_new:N \l__tblr_t_tl +\tl_new:N \l__tblr_u_tl +\tl_new:N \l__tblr_v_tl +\tl_new:N \l__tblr_w_tl +\tl_new:N \l__tblr_x_tl +\tl_new:N \l__tblr_y_tl +\int_new:N \l__tblr_a_int +\int_new:N \l__tblr_c_int % for column number +\int_new:N \l__tblr_r_int % for row number +\dim_new:N \l__tblr_d_dim % for depth +\dim_new:N \l__tblr_h_dim % for height +\dim_new:N \l__tblr_o_dim +\dim_new:N \l__tblr_p_dim +\dim_new:N \l__tblr_q_dim +\dim_new:N \l__tblr_r_dim +\dim_new:N \l__tblr_s_dim +\dim_new:N \l__tblr_t_dim +\dim_new:N \l__tblr_v_dim +\dim_new:N \l__tblr_w_dim % for width +\box_new:N \l__tblr_a_box +\box_new:N \l__tblr_b_box +\box_new:N \l__tblr_c_box % for cell box +\box_new:N \l__tblr_d_box + +\int_new:N \g_tblr_level_int % store table nesting level + +\cs_new_protected:Npn \__tblr_prop_gput:nnn #1 #2 #3 + { + \prop_gput:cnn + { g_tblr_#1_ \int_use:N \g_tblr_level_int _prop } { #2 } { #3 } + } +\cs_generate_variant:Nn \__tblr_prop_gput:nnn { nnx, nnV, nxn, nxx, nxV } + +\cs_new:Npn \__tblr_prop_item:nn #1 #2 + { + \prop_item:cn { g_tblr_#1_ \int_use:N \g_tblr_level_int _prop } { #2 } + } +\cs_generate_variant:Nn \__tblr_prop_item:nn { ne } + +\cs_new_protected:Npn \__tblr_prop_if_in:nnT #1 + { + \prop_if_in:cnT { g_tblr_#1_ \int_use:N \g_tblr_level_int _prop } + } +\cs_new_protected:Npn \__tblr_prop_if_in:nnF #1 + { + \prop_if_in:cnF { g_tblr_#1_ \int_use:N \g_tblr_level_int _prop } + } +\cs_new_protected:Npn \__tblr_prop_if_in:nnTF #1 + { + \prop_if_in:cnTF { g_tblr_#1_ \int_use:N \g_tblr_level_int _prop } + } +\prg_generate_conditional_variant:Nnn \__tblr_prop_if_in:nn { nx } { T, F, TF } + +\cs_new_protected:Npn \__tblr_prop_log:n #1 + { + \prop_log:c { g_tblr_#1_ \int_use:N \g_tblr_level_int _prop } + } + +\cs_new_protected:Npn \__tblr_prop_map_inline:nn #1 #2 + { + \prop_map_inline:cn { g_tblr_#1_ \int_use:N \g_tblr_level_int _prop } {#2} + } + +\cs_new_protected:Npn \__tblr_prop_gput_if_larger:nnn #1 #2 #3 + { + \__tblr_gput_if_larger:cnn + { g_tblr_#1_ \int_use:N \g_tblr_level_int _prop } { #2 } { #3 } + } +\cs_generate_variant:Nn \__tblr_prop_gput_if_larger:nnn { nnx, nnV, nxn, nxx, nxV } + +\cs_new_protected:Npn \__tblr_prop_gadd_dimen_value:nnn #1 #2 #3 + { + \__tblr_gadd_dimen_value:cnn + { g_tblr_#1_ \int_use:N \g_tblr_level_int _prop } { #2 } { #3 } + } +\cs_generate_variant:Nn \__tblr_prop_gadd_dimen_value:nnn { nnx, nnV, nxn, nxx } + +%% Put the dimension to the prop list only if it's larger than the old one + +\tl_new:N \l__tblr_put_if_larger_tl + +\cs_new_protected:Npn \__tblr_put_if_larger:Nnn #1 #2 #3 + { + \tl_set:Nx \l__tblr_put_if_larger_tl { \prop_item:Nn #1 { #2 } } + \bool_lazy_or:nnT + { \tl_if_empty_p:N \l__tblr_put_if_larger_tl } + { \dim_compare_p:nNn { #3 } > { \l__tblr_put_if_larger_tl } } + { \prop_put:Nnn #1 { #2 } { #3 } } + } +\cs_generate_variant:Nn \__tblr_put_if_larger:Nnn { Nnx, Nxn, Nxx } + +\cs_new_protected:Npn \__tblr_gput_if_larger:Nnn #1 #2 #3 + { + \tl_set:Nx \l__tblr_put_if_larger_tl { \prop_item:Nn #1 { #2 } } + \bool_lazy_or:nnT + { \tl_if_empty_p:N \l__tblr_put_if_larger_tl } + { \dim_compare_p:nNn { #3 } > { \l__tblr_put_if_larger_tl } } + { \prop_gput:Nnn #1 { #2 } { #3 } } + } +\cs_generate_variant:Nn \__tblr_gput_if_larger:Nnn { Nnx, Nxn, Nxx, cnn } + +%% Add the dimension to some key value of the prop list +%% #1: the prop list, #2: the key, #3: the dimen to add + +\cs_new_protected:Npn \__tblr_add_dimen_value:Nnn #1 #2 #3 + { + \prop_put:Nnx #1 { #2 } { \dim_eval:n { \prop_item:Nn #1 { #2 } + #3 } } + } +\cs_generate_variant:Nn \__tblr_add_dimen_value:Nnn { cnn } + +\cs_new_protected:Npn \__tblr_gadd_dimen_value:Nnn #1 #2 #3 + { + \prop_gput:Nnx #1 { #2 } { \dim_eval:n { \prop_item:Nn #1 { #2 } + #3 } } + } +\cs_generate_variant:Nn \__tblr_gadd_dimen_value:Nnn { cnn } + +%% Some counters for row and column numbering +\newcounter{rownum} +\newcounter{colnum} +\newcounter{rowcount} +\newcounter{colcount} + +%%% -------------------------------------------------------- +%% \section{Child Selectors} +%%% -------------------------------------------------------- + +\clist_new:N \g_tblr_used_child_selectors_clist + +\tl_new:N \l__tblr_childs_arg_spec_tl + +\msg_new:nnn { tabularray } { used-child-selector } + { Child ~ selector ~ name ~ "#1" ~ has ~ been ~ used! } + +\NewDocumentCommand \NewChildSelector { m O{0} o m } + { + \__tblr_new_child_selector_aux:xnnn { \tl_trim_spaces:n {#1} } {#2} {#3} {#4} + } + +\cs_new_protected:Npn \__tblr_new_child_selector_aux:nnnn #1 #2 #3 #4 + { + \clist_if_in:NnTF \g_tblr_used_child_selectors_clist { #1 } + { + \msg_error:nnn { tabularray } { used-child-selector } { #1 } + \clist_log:N \g_tblr_used_child_selectors_clist + } + { + \__tblr_make_xparse_arg_spec:nnN { #2 } { #3 } \l__tblr_childs_arg_spec_tl + \exp_args:NcV \NewDocumentCommand + { __tblr_child_selector_ #1 :w } \l__tblr_childs_arg_spec_tl { #4 } + \clist_gput_right:Nn \g_tblr_used_child_selectors_clist { #1 } + } + } +\cs_generate_variant:Nn \__tblr_new_child_selector_aux:nnnn { xnnn } + +%% #1: argument number, #2: optional argument default, #3: result tl +\cs_new_protected:Npn \__tblr_make_xparse_arg_spec:nnN #1 #2 #3 + { + \tl_clear:N #3 + \int_compare:nNnT { #1 } > { 0 } + { + \IfValueTF { #2 } + { \tl_set:Nn #3 { O{#2} } } + { \tl_set:Nn #3 { m } } + \tl_put_right:Nx #3 { \prg_replicate:nn { #1 - 1 } { m } } + } + } + +\clist_new:N \l_tblr_childs_clist +\tl_new:N \l_tblr_childs_total_tl + +\NewChildSelector { odd } + { + \int_step_inline:nnnn {1} {2} { \l_tblr_childs_total_tl } + { \clist_put_right:Nn \l_tblr_childs_clist {##1} } + } + +\NewChildSelector { even } + { + \int_step_inline:nnnn {2} {2} { \l_tblr_childs_total_tl } + { \clist_put_right:Nn \l_tblr_childs_clist {##1} } + } + +\regex_const:Nn \c__tblr_split_selector_name_regex { ^ ( [A-Za-z] {2,} ) ( . * ) } +\seq_new:N \l__tblr_childs_split_seq +\seq_new:N \l__tblr_childs_regex_seq +\tl_new:N \l__tblr_childs_end_tl +\tl_new:N \l__tblr_childs_selector_tl + +%% #1, child specifications; #2, total number. +%% The result will be put into \l_tblr_childs_clist +\cs_new_protected:Npn \__tblr_get_childs:nn #1 #2 + { + \clist_clear:N \l_tblr_childs_clist + \tl_set:Nx \l_tblr_childs_total_tl {#2} + \regex_extract_once:NnNTF \c__tblr_split_selector_name_regex {#1} + \l__tblr_childs_regex_seq + { + \tl_set:No \l__tblr_childs_selector_tl + { + \cs:w + __tblr_child_selector_ \seq_item:Nn \l__tblr_childs_regex_seq {2} :w + \cs_end: + } + \exp_args:Nx \l__tblr_childs_selector_tl + { \seq_item:Nn \l__tblr_childs_regex_seq{3} } + } + { + \tl_if_eq:nnTF {#1} {-} + { \__tblr_get_childs_normal:nn {1-#2} {#2} } + { \__tblr_get_childs_normal:nn {#1} {#2} } + } + %\clist_log:N \l_tblr_childs_clist + } +\cs_generate_variant:Nn \__tblr_get_childs:nn { nx } + +\cs_new_protected:Npn \__tblr_get_childs_normal:nn #1 #2 + { + \seq_set_split:Nnn \l__tblr_childs_split_seq {,} {#1} + \seq_map_inline:Nn \l__tblr_childs_split_seq + { \__tblr_get_childs_normal_aux:w ##1 - s \scan_stop } + } + +\cs_new_protected_nopar:Npn \__tblr_get_childs_normal_aux:w #1 - #2 #3 \scan_stop + { + \tl_if_eq:nnTF {#2} {s} + { \tl_set:Nn \l__tblr_childs_end_tl {#1} } + { \tl_set:Nn \l__tblr_childs_end_tl {#2} } + \int_step_inline:nnn {#1} { \l__tblr_childs_end_tl } + { \clist_put_right:Nn \l_tblr_childs_clist {##1} } + } + +%%% -------------------------------------------------------- +%% \section{New Table Commands} +%%% -------------------------------------------------------- + +%% We need some commands to modify table/row/column/cell specifications. +%% These commands must be defined with \NewTableCommand command, +%% so that we could extract them, execute them once, then disable them. + +\clist_new:N \g__tblr_table_commands_clist + +\msg_new:nnn { tabularray } { defined-table-command } + { Table ~ commnad ~ #1 has ~ been ~ defined! } + +\NewDocumentCommand \NewTableCommand { m O{0} o m } + { + \clist_if_in:NnTF \g__tblr_table_commands_clist { #1 } + { + \msg_error:nnn { tabularray } { defined-table-command } { #1 } + \clist_log:N \g__tblr_table_commands_clist + } + { + \__tblr_make_xparse_arg_spec:nnN { #2 } { #3 } \l__tblr_a_tl + \exp_args:NcV \NewDocumentCommand + { __tblr_table_command_ \cs_to_str:N #1 :w } \l__tblr_a_tl { #4 } + \exp_args:NcV \NewDocumentCommand + { __tblr_table_command_ \cs_to_str:N #1 _gobble :w } \l__tblr_a_tl { } + \IfValueTF { #3 } + { + \tl_gset:cn { g__tblr_table_cmd_ \cs_to_str:N #1 _arg_numb_tl } {-#2} + } + { + \tl_gset:cn { g__tblr_table_cmd_ \cs_to_str:N #1 _arg_numb_tl } {#2} + } + \clist_gput_right:Nn \g__tblr_table_commands_clist { #1 } + } + } + +\cs_new_protected:Npn \__tblr_enable_table_commands: + { + \clist_map_inline:Nn \g__tblr_table_commands_clist + { \cs_set_eq:Nc ##1 { __tblr_table_command_ \cs_to_str:N ##1 :w } } + } + +\cs_new_protected:Npn \__tblr_disable_table_commands: + { + \clist_map_inline:Nn \g__tblr_table_commands_clist + { \cs_set_eq:Nc ##1 { __tblr_table_command_ \cs_to_str:N ##1 _gobble:w } } + } + +\cs_new_protected:Npn \__tblr_execute_table_commands: + { + \__tblr_prop_map_inline:nn { command } + { + \__tblr_set_row_col_from_key_name:w ##1 + ##2 + } + \LogTblrTracing { cell } + } + +\cs_new_protected:Npn \__tblr_set_row_col_from_key_name:w [#1][#2] + { + \int_set:Nn \c@rownum {#1} + \int_set:Nn \c@colnum {#2} + } + +%%% -------------------------------------------------------- +%% \section{New Dash Styles} +%%% -------------------------------------------------------- + +%% \NewDashStyle commands + +\dim_zero_new:N \rulewidth +\dim_set:Nn \rulewidth {0.4pt} + +\prop_gset_from_keyval:Nn \g__tblr_defined_hdash_styles_prop + { solid = \hrule height \rulewidth } +\prop_gset_from_keyval:Nn \g__tblr_defined_vdash_styles_prop + { solid = \vrule width \rulewidth } + +\NewDocumentCommand \NewDashStyle { m m } + { + \seq_set_split:Nnn \l_tmpa_seq { ~ } {#2} + \tl_set:Nx \l__tblr_a_tl { \seq_item:Nn \l_tmpa_seq {1} } + \tl_set:Nx \l__tblr_b_tl { \seq_item:Nn \l_tmpa_seq {2} } + \tl_set:Nx \l__tblr_c_tl { \seq_item:Nn \l_tmpa_seq {3} } + \tl_set:Nx \l__tblr_d_tl { \seq_item:Nn \l_tmpa_seq {4} } + \tl_if_eq:NnT \l__tblr_a_tl { on } + { + \tl_if_eq:NnT \l__tblr_c_tl { off } + { + \__tblr_dash_style_make_boxes:nxx {#1} + { \dim_eval:n {\l__tblr_b_tl} } { \dim_eval:n {\l__tblr_d_tl} } + } + } + } + +\cs_new_protected:Npn \__tblr_dash_style_make_boxes:nnn #1 #2 #3 + { + \dim_set:Nn \l_tmpa_dim { #2 + #3 } + \tl_set:Nn \l__tblr_h_tl { \hbox_to_wd:nn } + \tl_put_right:Nx \l__tblr_h_tl { { \dim_use:N \l_tmpa_dim } } + \tl_put_right:Nn \l__tblr_h_tl + { + { \hss \vbox:n { \hbox_to_wd:nn {#2} {} \hrule height \rulewidth } \hss } + } + \prop_gput:NnV \g__tblr_defined_hdash_styles_prop {#1} \l__tblr_h_tl + %\prop_log:N \g__tblr_defined_hdash_styles_prop + \tl_set:Nn \l__tblr_v_tl { \vbox_to_ht:nn } + \tl_put_right:Nx \l__tblr_v_tl { { \dim_use:N \l_tmpa_dim } } + \tl_put_right:Nn \l__tblr_v_tl + { + { \vss \hbox:n { \vbox_to_ht:nn {#2} {} \vrule width \rulewidth } \vss } + } + \prop_gput:NnV \g__tblr_defined_vdash_styles_prop {#1} \l__tblr_v_tl + %\prop_log:N \g__tblr_defined_vdash_styles_prop + } +\cs_generate_variant:Nn \__tblr_dash_style_make_boxes:nnn { nxx } + +\cs_new_protected:Npn \__tblr_get_hline_dash_style:N #1 + { + \tl_set:Nx \l_tmpa_tl + { \prop_item:NV \g__tblr_defined_hdash_styles_prop #1 } + \tl_if_empty:NF \l_tmpa_tl { \tl_set_eq:NN #1 \l_tmpa_tl } + } + +\cs_new_protected:Npn \__tblr_get_vline_dash_style:N #1 + { + \tl_set:Nx \l_tmpa_tl + { \prop_item:NV \g__tblr_defined_vdash_styles_prop #1 } + \tl_if_empty:NF \l_tmpa_tl { \tl_set_eq:NN #1 \l_tmpa_tl } + } + +\NewDashStyle {dashed} {on ~ 2pt ~ off ~ 2pt} +\NewDashStyle {dotted} {on ~ 0.4pt ~ off ~ 1pt} + +%%% -------------------------------------------------------- +%% \section{Set Hlines and Vlines} +%%% -------------------------------------------------------- + +\tl_set:Nn \@tblr@dash { dash } +\tl_set:Nn \@tblr@text { text } + +\regex_const:Nn \c__tblr_is_color_key_regex { ^[A-Za-z] } + +%% \SetHlines command for setting every hline in the table +\NewTableCommand \SetHlines [3] [+] + { + \tblr_set_every_hline:nnn {#1} {#2} {#3} + } + +%% We put all code inside a group to avoid affecting other table commands +\cs_new_protected:Npn \tblr_set_every_hline:nnn #1 #2 #3 + { + \group_begin: + \int_step_inline:nn { \int_eval:n { \c@rowcount + 1 } } + { + \int_set:Nn \c@rownum {##1} + \tblr_set_hline:nnn {#1} {#2} {#3} + } + \group_end: + } + +%% Check the number of arguments and call \tblr_set_every_hline in different ways +%% This function is called when parsing table specifications +\cs_new_protected:Npn \__tblr_set_every_hline_aux:n #1 + { + \tl_if_head_is_group:nTF {#1} + { + \int_compare:nNnTF { \tl_count:n {#1} } = {3} + { \tblr_set_every_hline:nnn #1 } + { \tblr_set_every_hline:nnn {1} #1 } + } + { \tblr_set_every_hline:nnn {1} {-} {#1} } + } + +%% Add \SetHline, \hline and \cline commands + +\tl_new:N \l__tblr_hline_count_tl % the count of all hlines +\tl_new:N \l__tblr_hline_num_tl % the index of the hline +\tl_new:N \l__tblr_hline_cols_tl % the columns of the hline +\tl_new:N \l__tblr_hline_dash_tl % dash style +\tl_new:N \l__tblr_hline_fg_tl % dash foreground +\tl_new:N \l__tblr_hline_wd_tl % dash width + +\NewTableCommand \cline [2] [] { \SetHline [=] {#2} {#1} } + +\NewTableCommand \hline [1] [] { \SetHline [+] {-} {#1} } + +%% #1: the index of the hline (may be + or =) +%% #2: which columns of the hline, separate by commas +%% #3: key=value pairs +\NewTableCommand \SetHline [3] [+] + { + \tblr_set_hline:nnn {#1} {#2} {#3} + } + +%% We need to check "text" key first +%% If it does exist and has empty value, then do nothing +\cs_new_protected:Npn \tblr_set_hline:nnn #1 #2 #3 + { + \group_begin: + \keys_set_groups:nnn { tblr-hline } { text } {#3} + \tl_if_eq:NnF \l__tblr_hline_dash_tl { \exp_not:N \@tblr@text } + { + \__tblr_set_hline_num:n {#1} + \tl_clear:N \l__tblr_hline_dash_tl + \keys_set:nn { tblr-hline } { dash = solid, #3 } + \__tblr_set_hline_cmd:n {#2} + } + \group_end: + } + +\cs_new_protected:Npn \tblr_set_hline:nnnn #1 #2 #3 #4 + { + \group_begin: + \__tblr_get_childs:nx {#1} { \int_eval:n { \c@rowcount + 1 } } + \clist_map_inline:Nn \l_tblr_childs_clist + { + \int_set:Nn \c@rownum {##1} + \tblr_set_hline:nnn {#2} {#3} {#4} + } + \group_end: + } + +%% Check the number of arguments and call \tblr_set_hline in different ways +%% Note that #1 always includes an outer pair of braces +%% This function is called when parsing table specifications +\cs_new_protected:Npn \__tblr_set_hline_aux:nn #1 #2 + { + \tl_if_head_is_group:nTF {#2} + { + \int_compare:nNnTF { \tl_count:n {#2} } = {3} + { \tblr_set_hline:nnnn #1 #2 } + { \tblr_set_hline:nnnn #1 {1} #2 } + } + { \tblr_set_hline:nnnn #1 {1} {-} {#2} } + } +\cs_generate_variant:Nn \__tblr_set_hline_aux:nn { Vn } + +%% #1: the index of hline to set (may be + or =) +\cs_new_protected:Npn \__tblr_set_hline_num:n #1 + { + \tl_clear:N \l__tblr_hline_num_tl + \tl_set:Nx \l__tblr_hline_count_tl + { \__tblr_prop_item:ne { hline } { [\int_use:N \c@rownum] / @hline-count } } + \tl_if_empty:NTF \l__tblr_hline_count_tl + { + \tl_set:Nx \l__tblr_hline_num_tl { 1 } + \__tblr_prop_gput:nxx { hline } + { [\int_use:N \c@rownum] / @hline-count } { 1 } + } + { + \tl_if_eq:nnTF {#1} {+} + { \__tblr_set_hline_num_incr: } + { + \tl_if_eq:nnTF {#1} {=} + { \tl_set_eq:NN \l__tblr_hline_num_tl \l__tblr_hline_count_tl } + { + \int_compare:nNnTF {#1} > { \l__tblr_hline_count_tl } + { \__tblr_set_hline_num_incr: } + { \tl_set:Nn \l__tblr_hline_num_tl {#1} } + } + } + } + } + +\cs_new_protected:Npn \__tblr_set_hline_num_incr: + { + \tl_set:Nx \l__tblr_hline_count_tl + { \int_eval:n { \l__tblr_hline_count_tl + 1 } } + \__tblr_prop_gput:nxx { hline } + { [\int_use:N \c@rownum] / @hline-count } { \l__tblr_hline_count_tl } + \tl_set_eq:NN \l__tblr_hline_num_tl \l__tblr_hline_count_tl + } + +\keys_define:nn { tblr-hline } + { + dash .code:n = \tl_set:Nn \l__tblr_hline_dash_tl { \exp_not:N \@tblr@dash #1 }, + text .code:n = \tl_set:Nn \l__tblr_hline_dash_tl { \exp_not:N \@tblr@text #1 }, + text .groups:n = { text }, + wd .code:n = \tl_set:Nn \l__tblr_hline_wd_tl { \dim_eval:n {#1} }, + fg .code:n = \tl_set:Nn \l__tblr_hline_fg_tl {#1}, + baseline .code:n = \__tblr_hline_set_baseline:n {#1}, + unknown .code:n = \__tblr_hline_unknown_key:V \l_keys_key_str, + } + +\cs_new_protected:Npn \__tblr_hline_unknown_key:n #1 + { + \prop_if_in:NnTF \g__tblr_defined_hdash_styles_prop {#1} + { \tl_set:Nn \l__tblr_hline_dash_tl { \exp_not:N \@tblr@dash #1 } } + { + \regex_match:NnTF \c__tblr_is_color_key_regex {#1} + { \tl_set:Nn \l__tblr_hline_fg_tl {#1} } + { + \tl_set_rescan:Nnn \l__tblr_v_tl {} {#1} + \tl_set:Nn \l__tblr_hline_wd_tl { \dim_eval:n {\l__tblr_v_tl} } + } + } + } +\cs_generate_variant:Nn \__tblr_hline_unknown_key:n { V } + +\cs_new_protected_nopar:Npn \__tblr_set_hline_cmd:n #1 + { + \__tblr_get_childs:nx {#1} { \int_use:N \c@colcount } + \clist_map_inline:Nn \l_tblr_childs_clist + { + \__tblr_prop_gput:nxx { hline } + { [\int_use:N \c@rownum][##1](\l__tblr_hline_num_tl) / @dash } + { \l__tblr_hline_dash_tl } + \tl_if_empty:NF \l__tblr_hline_wd_tl + { + \__tblr_prop_gput:nxx { hline } + { [\int_use:N \c@rownum][##1](\l__tblr_hline_num_tl) / wd } + { \l__tblr_hline_wd_tl } + } + \tl_if_empty:NF \l__tblr_hline_fg_tl + { + \__tblr_prop_gput:nxx { hline } + { [\int_use:N \c@rownum][##1](\l__tblr_hline_num_tl) / fg } + { \l__tblr_hline_fg_tl } + } + } + } + +\NewTableCommand \firsthline [1] [] { \SetHline [+] {-} { #1, baseline=below } } +\NewTableCommand \lasthline [1] [] { \SetHline [+] {-} { #1, baseline=above } } + +\cs_new_protected:Npn \__tblr_hline_set_baseline:n #1 + { + \tl_if_eq:nnTF {#1} {above} + { + \__tblr_prop_gput:nnx { table } + { baseline } { \int_eval:n { \c@rownum - 1 } } + } + { + \tl_if_eq:nnT {#1} {below} + { + \__tblr_prop_gput:nnx { table } { baseline } { \int_use:N \c@rownum } + } + } + } + +%% \SetVlines command for setting every vline in the table +\NewTableCommand \SetVlines [3] [+] + { + \tblr_set_every_vline:nnn {#1} {#2} {#3} + } + +%% We put all code inside a group to avoid affecting other table commands +\cs_new_protected:Npn \tblr_set_every_vline:nnn #1 #2 #3 + { + \group_begin: + \int_step_inline:nn { \int_eval:n { \c@colcount + 1 } } + { + \int_set:Nn \c@colnum {##1} + \tblr_set_vline:nnn {#1} {#2} {#3} + } + \group_end: + } + +%% Check the number of arguments and call \tblr_set_every_vline in different ways +%% This function is called when parsing table specifications +\cs_new_protected:Npn \__tblr_set_every_vline_aux:n #1 + { + \tl_if_head_is_group:nTF {#1} + { + \int_compare:nNnTF { \tl_count:n {#1} } = {3} + { \tblr_set_every_vline:nnn #1 } + { \tblr_set_every_vline:nnn {1} #1 } + } + { \tblr_set_every_vline:nnn {1} {-} {#1} } + } + +%% Add \SetVline, \vline and \rline commands + +\tl_new:N \l__tblr_vline_count_tl % the count of all vlines +\tl_new:N \l__tblr_vline_num_tl % the index of the vline +\tl_new:N \l__tblr_vline_rows_tl % the rows of the vline +\tl_new:N \l__tblr_vline_dash_tl % dash style +\tl_new:N \l__tblr_vline_fg_tl % dash foreground +\tl_new:N \l__tblr_vline_wd_tl % dash width + +\NewTableCommand \rline [2] [] { \SetVline [=] {#2} {#1} } + +\NewTableCommand \vline [1] [] { \SetVline [+] {-} {#1} } + +%% #1: the index of the vline (may be + or =) +%% #2: which rows of the vline, separate by commas +%% #3: key=value pairs +\NewTableCommand \SetVline [3] [+] + { + \tblr_set_vline:nnn {#1} {#2} {#3} + } + +%% We need to check "text" key first +%% If it does exist and has empty value, then do nothing +\cs_new_protected:Npn \tblr_set_vline:nnn #1 #2 #3 + { + \group_begin: + \keys_set_groups:nnn { tblr-vline } { text } {#3} + \tl_if_eq:NnF \l__tblr_vline_dash_tl { \exp_not:N \@tblr@text } + { + \__tblr_set_vline_num:n {#1} + \tl_clear:N \l__tblr_vline_dash_tl + \keys_set:nn { tblr-vline } { dash = solid, #3 } + \__tblr_set_vline_cmd:n {#2} + } + \group_end: + } + +\cs_new_protected:Npn \tblr_set_vline:nnnn #1 #2 #3 #4 + { + \group_begin: + \__tblr_get_childs:nx {#1} { \int_eval:n { \c@colcount + 1} } + \clist_map_inline:Nn \l_tblr_childs_clist + { + \int_set:Nn \c@colnum {##1} + \tblr_set_vline:nnn {#2} {#3} {#4} + } + \group_end: + } + +%% Check the number of arguments and call \tblr_set_vline in different ways +%% Note that #1 always includes an outer pair of braces +%% This function is called when parsing table specifications +\cs_new_protected:Npn \__tblr_set_vline_aux:nn #1 #2 + { + \tl_if_head_is_group:nTF {#2} + { + \int_compare:nNnTF { \tl_count:n {#2} } = {3} + { \tblr_set_vline:nnnn #1 #2 } + { \tblr_set_vline:nnnn #1 {1} #2 } + } + { \tblr_set_vline:nnnn #1 {1} {-} {#2} } + } +\cs_generate_variant:Nn \__tblr_set_vline_aux:nn { Vn } + +%% #1: the index of vline to set (may be + or =) +\cs_new_protected:Npn \__tblr_set_vline_num:n #1 + { + \tl_clear:N \l__tblr_vline_num_tl + \tl_set:Nx \l__tblr_vline_count_tl + { \__tblr_prop_item:ne { vline } { [\int_use:N \c@colnum] / @vline-count } } + \tl_if_empty:NTF \l__tblr_vline_count_tl + { + \tl_set:Nx \l__tblr_vline_num_tl { 1 } + \__tblr_prop_gput:nxx { vline } + { [\int_use:N \c@colnum] / @vline-count } { 1 } + } + { + \tl_if_eq:nnTF {#1} {+} + { \__tblr_set_vline_num_incr: } + { + \tl_if_eq:nnTF {#1} {=} + { \tl_set_eq:NN \l__tblr_vline_num_tl \l__tblr_vline_count_tl } + { + \int_compare:nNnTF {#1} > { \l__tblr_vline_count_tl } + { \__tblr_set_vline_num_incr: } + { \tl_set:Nn \l__tblr_vline_num_tl {#1} } + } + } + } + } + +\cs_new_protected:Npn \__tblr_set_vline_num_incr: + { + \tl_set:Nx \l__tblr_vline_count_tl + { \int_eval:n { \l__tblr_vline_count_tl + 1 } } + \__tblr_prop_gput:nxx { vline } + { [\int_use:N \c@colnum] / @vline-count } { \l__tblr_vline_count_tl } + \tl_set_eq:NN \l__tblr_vline_num_tl \l__tblr_vline_count_tl + } + +\keys_define:nn { tblr-vline } + { + dash .code:n = \tl_set:Nn \l__tblr_vline_dash_tl { \exp_not:N \@tblr@dash #1 }, + text .code:n = \tl_set:Nn \l__tblr_vline_dash_tl { \exp_not:N \@tblr@text #1 }, + text .groups:n = { text }, + wd .code:n = \tl_set:Nn \l__tblr_vline_wd_tl { \dim_eval:n {#1} }, + fg .code:n = \tl_set:Nn \l__tblr_vline_fg_tl {#1}, + unknown .code:n = \__tblr_vline_unknown_key:V \l_keys_key_str, + } + +\cs_new_protected:Npn \__tblr_vline_unknown_key:n #1 + { + \prop_if_in:NnTF \g__tblr_defined_vdash_styles_prop {#1} + { \tl_set:Nn \l__tblr_vline_dash_tl { \exp_not:N \@tblr@dash #1 } } + { + \regex_match:NnTF \c__tblr_is_color_key_regex {#1} + { \tl_set:Nn \l__tblr_vline_fg_tl {#1} } + { + \tl_set_rescan:Nnn \l__tblr_v_tl {} {#1} + \tl_set:Nn \l__tblr_vline_wd_tl { \dim_eval:n {\l__tblr_v_tl} } + } + } + } +\cs_generate_variant:Nn \__tblr_vline_unknown_key:n { V } + +\cs_new_protected_nopar:Npn \__tblr_set_vline_cmd:n #1 + { + \__tblr_get_childs:nx {#1} { \int_use:N \c@rowcount } + \clist_map_inline:Nn \l_tblr_childs_clist + { + \__tblr_prop_gput:nxx { vline } + { [##1][\int_use:N \c@colnum](\l__tblr_vline_num_tl) / @dash } + { \l__tblr_vline_dash_tl } + \tl_if_empty:NF \l__tblr_vline_wd_tl + { + \__tblr_prop_gput:nxx { vline } + { [##1][\int_use:N \c@colnum](\l__tblr_vline_num_tl) / wd } + { \l__tblr_vline_wd_tl } + } + \tl_if_empty:NF \l__tblr_vline_fg_tl + { + \__tblr_prop_gput:nxx { vline } + { [##1][\int_use:N \c@colnum](\l__tblr_vline_num_tl) / fg } + { \l__tblr_vline_fg_tl } + } + } + } + +%%% -------------------------------------------------------- +%% \section{Set Cells} +%%% -------------------------------------------------------- + +%% \SetCells command for setting every cell in the table +\NewTableCommand \SetCells [2] [] + { + \tblr_set_every_cell:nn {#1} {#2} + } + +%% We put all code inside a group to avoid affecting other table commands +\cs_new_protected:Npn \tblr_set_every_cell:nn #1 #2 + { + \group_begin: + \int_step_inline:nn { \c@rowcount } + { + \int_set:Nn \c@rownum {##1} + \int_step_inline:nn { \c@colcount } + { + \int_set:Nn \c@colnum {####1} + \tblr_set_cell:nn {#1} {#2} + } + } + \group_end: + } + +%% Check the number of arguments and call \tblr_set_every_cell in different ways +%% This function is called when parsing table specifications +\cs_new_protected:Npn \__tblr_set_every_cell_aux:n #1 + { + \tl_if_head_is_group:nTF {#1} + { \tblr_set_every_cell:nn #1 } + { \tblr_set_every_cell:nn {} {#1} } + } + +%% \SetCell command for multirow and/or multicolumn cells + +\NewTableCommand \SetCell [2] [] + { + \tblr_set_cell:nn { #1 } { #2 } + } + +\tl_new:N \l__tblr_row_span_num_tl +\tl_new:N \l__tblr_col_span_num_tl + +\cs_new_protected:Npn \tblr_set_cell:nn #1 #2 + { + \tl_set:Nn \l__tblr_row_span_num_tl { 1 } + \tl_set:Nn \l__tblr_col_span_num_tl { 1 } + \keys_set:nn { tblr-cell-span } { #1 } + \keys_set:nn { tblr-cell-spec } { #2 } + \__tblr_set_span_spec:VV \l__tblr_row_span_num_tl \l__tblr_col_span_num_tl + } +\cs_generate_variant:Nn \tblr_set_cell:nn { nV } + +\cs_new_protected:Npn \tblr_set_cell:nnnn #1 #2 #3 #4 + { + \group_begin: + \__tblr_get_childs:nx {#1} { \int_use:N \c@rowcount } + \clist_set_eq:NN \l_tmpa_clist \l_tblr_childs_clist + \__tblr_get_childs:nx {#2} { \int_use:N \c@colcount } + \clist_set_eq:NN \l_tmpb_clist \l_tblr_childs_clist + \clist_map_inline:Nn \l_tmpa_clist + { + \int_set:Nn \c@rownum {##1} + \clist_map_inline:Nn \l_tmpb_clist + { + \int_set:Nn \c@colnum {####1} + \tblr_set_cell:nn {#3} {#4} + } + } + \group_end: + } + +%% Check the number of arguments and call \tblr_set_cell in different ways +%% Note that #1 is always of the type {}{} +%% This function is called when parsing table specifications +\cs_new_protected:Npn \__tblr_set_cell_aux:nn #1 #2 + { + \tl_if_head_is_group:nTF {#2} + { \tblr_set_cell:nnnn #1 #2 } + { \tblr_set_cell:nnnn #1 {} {#2} } + } +\cs_generate_variant:Nn \__tblr_set_cell_aux:nn { Vn } + +\keys_define:nn { tblr-cell-span } + { + r .tl_set:N = \l__tblr_row_span_num_tl, + c .tl_set:N = \l__tblr_col_span_num_tl, + } + +\keys_define:nn { tblr-cell-spec } + { + l .code:n = \__tblr_prop_gput:nxx {cell} + {[\int_use:N \c@rownum][\int_use:N \c@colnum] / halign} {l}, + c .code:n = \__tblr_prop_gput:nxx {cell} + {[\int_use:N \c@rownum][\int_use:N \c@colnum] / halign} {c}, + r .code:n = \__tblr_prop_gput:nxx {cell} + {[\int_use:N \c@rownum][\int_use:N \c@colnum] / halign} {r}, + t .code:n = \__tblr_prop_gput:nxx {cell} + {[\int_use:N \c@rownum][\int_use:N \c@colnum] / valign} {t}, + p .code:n = \__tblr_prop_gput:nxx {cell} + {[\int_use:N \c@rownum][\int_use:N \c@colnum] / valign} {t}, + m .code:n = \__tblr_prop_gput:nxx {cell} + {[\int_use:N \c@rownum][\int_use:N \c@colnum] / valign} {m}, + b .code:n = \__tblr_prop_gput:nxx {cell} + {[\int_use:N \c@rownum][\int_use:N \c@colnum] / valign} {b}, + h .code:n = \__tblr_prop_gput:nxx {cell} + {[\int_use:N \c@rownum][\int_use:N \c@colnum] / valign} {h}, + f .code:n = \__tblr_prop_gput:nxx {cell} + {[\int_use:N \c@rownum][\int_use:N \c@colnum] / valign} {f}, + wd .code:n = \__tblr_prop_gput:nxx {cell} + {[\int_use:N \c@rownum][\int_use:N \c@colnum] / width} {#1}, + bg .code:n = \__tblr_prop_gput:nxx {cell} + {[\int_use:N \c@rownum][\int_use:N \c@colnum] / background} {#1}, + unknown .code:n = \__tblr_cell_unknown_key:V \l_keys_key_str, + } + +\cs_new_protected:Npn \__tblr_cell_unknown_key:n #1 + { + \regex_match:NnTF \c__tblr_is_color_key_regex {#1} + { + \__tblr_prop_gput:nxx {cell} + {[\int_use:N \c@rownum][\int_use:N \c@colnum] / background} {#1} + } + { + \tl_set_rescan:Nnn \l__tblr_v_tl {} {#1} + \__tblr_prop_gput:nxx {cell} + { [\int_use:N \c@rownum][\int_use:N \c@colnum] / width } + { \dim_eval:n { \l__tblr_v_tl } } + } + } +\cs_generate_variant:Nn \__tblr_cell_unknown_key:n { V } + +\cs_new_protected:Npn \__tblr_set_span_spec:nn #1 #2 + { + \int_compare:nNnT { #1 } > { 1 } + { + \__tblr_prop_gput:nnn {table} {rowspan} {true} + \__tblr_prop_gput:nxn {cell} + { [\int_use:N \c@rownum][\int_use:N \c@colnum] / rowspan } { #1 } + } + \int_compare:nNnT { #2 } > { 1 } + { + \__tblr_prop_gput:nnn {table} {colspan} {true} + \__tblr_prop_gput:nxn {cell} + { [\int_use:N \c@rownum][\int_use:N \c@colnum] / colspan } { #2 } + } + \int_step_variable:nnNn + { \int_use:N \c@rownum } { \int_eval:n { \c@rownum + #1 - 1 } } \l__tblr_i_tl + { + \int_step_variable:nnNn + { \int_use:N \c@colnum } { \int_eval:n { \c@colnum + #2 - 1 } } + \l__tblr_j_tl + { + \bool_lazy_and:nnF + { \int_compare_p:nNn { \l__tblr_i_tl } = { \c@rownum } } + { \int_compare_p:nNn { \l__tblr_j_tl } = { \c@colnum } } + { + \__tblr_prop_gput:nxx {cell} + { [\l__tblr_i_tl][\l__tblr_j_tl] / omit } {true} + } + \int_compare:nNnF { \l__tblr_i_tl } = { \c@rownum } + { + \__tblr_prop_gput:nxx {hline} + { [\l__tblr_i_tl][\l__tblr_j_tl] / omit } {true} + } + \int_compare:nNnF { \l__tblr_j_tl } = { \c@colnum } + { + \__tblr_prop_gput:nxx {vline} + { [\l__tblr_i_tl][\l__tblr_j_tl] / omit } {true} + } + } + } + } +\cs_generate_variant:Nn \__tblr_set_span_spec:nn { VV } + +%% Legacy \multicolumn and \multirow commands +%% Both of them could be replaced with \SetCell command +%% Note that they don't have cell text as the last arguments + +%% If \multicolumn is followed by \multirow, +%% We need to call \tblr_set_cell together +%% in order to omit all hlines inside the span cell. +\tl_new:N \g__tblr_multicolumn_num_tl +\tl_new:N \g__tblr_multicolumn_spec_tl + +%% There maybe p{2em} inside #2 of \multicolumn command +\NewTableCommand \multicolumn [2] + { + \tl_gclear:N \g__tblr_multicolumn_num_tl + \tl_gclear:N \g__tblr_multicolumn_spec_tl + \tl_map_inline:nn {#2} + { + \bool_lazy_and:nnF + { \tl_if_single_token_p:n {##1} } + { \token_if_eq_charcode_p:NN ##1 | } + { \tl_put_right:Nn \g__tblr_multicolumn_spec_tl {,##1} } + } + \peek_meaning:NTF \multirow + { \tl_gset:Nn \g__tblr_multicolumn_num_tl {#1} } + { \tblr_set_cell:nV { c = #1 } \g__tblr_multicolumn_spec_tl } + } + +\NewTableCommand \multirow [3] [m] + { + \tl_if_eq:nnTF {#1} {c} + { \tl_set:Nn \l_tmpa_tl {, m} } + { + \tl_if_eq:nnTF {#1} {t} + { \tl_set:Nn \l_tmpa_tl {, h} } + { \tl_if_eq:nnTF {#1} {b} + { \tl_set:Nn \l_tmpa_tl {, f} } + { \tl_set:Nn \l_tmpa_tl {, #1} } + } + } + \tl_if_eq:nnF {#3} {*} + { \tl_if_eq:nnF {#3} {=} { \tl_put_right:Nn \l_tmpa_tl {, wd=#3} } } + \tl_if_empty:NTF \g__tblr_multicolumn_num_tl + { \tblr_set_cell:nV { r = #2 } \l_tmpa_tl } + { + \tl_put_left:NV \l_tmpa_tl \g__tblr_multicolumn_spec_tl + \exp_args:Nx \tblr_set_cell:nV + { c = \g__tblr_multicolumn_num_tl, r = #2 } \l_tmpa_tl + \tl_gclear:N \g__tblr_multicolumn_num_tl + } + } + +%%% -------------------------------------------------------- +%% \section{Set Columns and Rows} +%%% -------------------------------------------------------- + +%% \SetColumns command for setting every column in the table +\NewTableCommand \SetColumns [2] [] + { + \tblr_set_every_column:nn {#1} {#2} + } + +%% We put all code inside a group to avoid affecting other table commands +\cs_new_protected:Npn \tblr_set_every_column:nn #1 #2 + { + \group_begin: + \int_step_inline:nn { \c@colcount } + { + \int_set:Nn \c@colnum {##1} + \tblr_set_column:nn {#1} {#2} + } + \group_end: + } + +%% Check the number of arguments and call \tblr_set_every_column in different ways +%% This function is called when parsing table specifications +\cs_new_protected:Npn \__tblr_set_every_column_aux:n #1 + { + \tl_if_head_is_group:nTF {#1} + { \tblr_set_every_column:nn #1 } + { \tblr_set_every_column:nn {} {#1} } + } + +%% \SetColumn command for current column or each cells in the column + +\NewTableCommand \SetColumn [2] [] + { + \tblr_set_column:nn {#1} {#2} + } + +\cs_new_protected:Npn \tblr_set_column:nn #1 #2 + { + \keys_set:nn { tblr-column } {#2} + } + +\cs_new_protected:Npn \tblr_set_column:nnn #1 #2 #3 + { + \group_begin: + \__tblr_get_childs:nx {#1} { \int_use:N \c@colcount } + \clist_map_inline:Nn \l_tblr_childs_clist + { + \int_set:Nn \c@colnum {##1} + \tblr_set_column:nn {#2} {#3} + } + \group_end: + } + +%% Check the number of arguments and call \tblr_set_column in different ways +%% Note that #1 always includes an outer pair of braces +%% This function is called when parsing table specifications +\cs_new_protected:Npn \__tblr_set_column_aux:nn #1 #2 + { + \tl_if_head_is_group:nTF {#2} + { \tblr_set_column:nnn #1 #2 } + { \tblr_set_column:nnn #1 {} {#2} } + } +\cs_generate_variant:Nn \__tblr_set_column_aux:nn { Vn } + +\keys_define:nn { tblr-column } + { + l .code:n = \__tblr_set_key_for_every_column_cell:nnn + { \int_use:N \c@colnum } { halign } {l}, + c .code:n = \__tblr_set_key_for_every_column_cell:nnn + { \int_use:N \c@colnum } { halign } {c}, + r .code:n = \__tblr_set_key_for_every_column_cell:nnn + { \int_use:N \c@colnum } { halign } {r}, + t .code:n = \__tblr_set_key_for_every_column_cell:nnn + { \int_use:N \c@colnum } { valign } {t}, + p .code:n = \__tblr_set_key_for_every_column_cell:nnn + { \int_use:N \c@colnum } { valign } {t}, + m .code:n = \__tblr_set_key_for_every_column_cell:nnn + { \int_use:N \c@colnum } { valign } {m}, + b .code:n = \__tblr_set_key_for_every_column_cell:nnn + { \int_use:N \c@colnum } { valign } {b}, + h .code:n = \__tblr_set_key_for_every_column_cell:nnn + { \int_use:N \c@colnum } { valign } {h}, + f .code:n = \__tblr_set_key_for_every_column_cell:nnn + { \int_use:N \c@colnum } { valign } {f}, + bg .code:n = \__tblr_set_key_for_every_column_cell:nnn + { \int_use:N \c@colnum } { background } {#1}, + wd .code:n = \__tblr_prop_gput:nxx { column } + { [\int_use:N \c@colnum] / width } { \dim_eval:n {#1} }, + co .code:n = \__tblr_prop_gput:nxx { column } + { [\int_use:N \c@colnum] / coefficient } {#1}, + leftsep .code:n = \__tblr_prop_gput:nxx { column } + { [\int_use:N \c@colnum] / leftsep } { \dim_eval:n {#1} }, + rightsep .code:n = \__tblr_prop_gput:nxx { column } + { [\int_use:N \c@colnum] / rightsep } { \dim_eval:n {#1} }, + colsep .meta:n = { leftsep = #1, rightsep = #1}, + leftsep+ .code:n = \__tblr_prop_gadd_dimen_value:nxx { column } + { [\int_use:N \c@colnum] / leftsep } { \dim_eval:n {#1} }, + rightsep+ .code:n = \__tblr_prop_gadd_dimen_value:nxx { column } + { [\int_use:N \c@colnum] / rightsep } { \dim_eval:n {#1} }, + colsep+ .meta:n = { leftsep+ = #1, rightsep+ = #1}, + unknown .code:n = \__tblr_column_unknown_key:V \l_keys_key_str, + } + +%% #1: column number; #2: key; #3: value +\cs_new_protected:Npn \__tblr_set_key_for_every_column_cell:nnn #1 #2 #3 + { + \int_step_inline:nn { \c@rowcount } + { + \__tblr_prop_gput:nxn {cell} { [##1][#1] / #2 } {#3} + } + } + +\regex_const:Nn \c__tblr_is_number_key_regex { ^[\+\-]? (\d+|\d*\.\d+)$ } + +\cs_new_protected:Npn \__tblr_column_unknown_key:n #1 + { + \regex_match:NnTF \c__tblr_is_number_key_regex {#1} + { + \__tblr_prop_gput:nxx { column } + { [\int_use:N \c@colnum] / coefficient } {#1} + } + { + \regex_match:NnTF \c__tblr_is_color_key_regex {#1} + { + \__tblr_set_key_for_every_column_cell:nnn + { \int_use:N \c@colnum } { background } {#1} + } + { + \tl_set_rescan:Nnn \l__tblr_v_tl {} {#1} + \__tblr_prop_gput:nxx { column } + { [\int_use:N \c@colnum] / width } { \dim_eval:n { \l__tblr_v_tl } } + } + } + } +\cs_generate_variant:Nn \__tblr_column_unknown_key:n { V } + +%% \SetRows command for setting every row in the table +\NewTableCommand \SetRows [2] [] + { + \tblr_set_every_row:nn {#1} {#2} + } + +%% We put all code inside a group to avoid affecting other table commands +\cs_new_protected:Npn \tblr_set_every_row:nn #1 #2 + { + \group_begin: + \int_step_inline:nn { \c@rowcount } + { + \int_set:Nn \c@rownum {##1} + \tblr_set_row:nn {#1} {#2} + } + \group_end: + } + +%% Check the number of arguments and call \tblr_set_every_row in different ways +%% This function is called when parsing table specifications +\cs_new_protected:Npn \__tblr_set_every_row_aux:n #1 + { + \tl_if_head_is_group:nTF {#1} + { \tblr_set_every_row:nn #1 } + { \tblr_set_every_row:nn {} {#1} } + } + +%% \SetRow command for current row or each cells in the row + +\NewTableCommand \SetRow [2] [] + { + \tblr_set_row:nn {#1} {#2} + } + +\cs_new_protected:Npn \tblr_set_row:nn #1 #2 + { + \keys_set:nn { tblr-row } {#2} + } + +\cs_new_protected:Npn \tblr_set_row:nnn #1 #2 #3 + { + \group_begin: + \__tblr_get_childs:nx {#1} { \int_use:N \c@rowcount } + \clist_map_inline:Nn \l_tblr_childs_clist + { + \int_set:Nn \c@rownum {##1} + \tblr_set_row:nn {#2} {#3} + } + \group_end: + } + +%% Check the number of arguments and call \tblr_set_row in different ways +%% Note that #1 always includes an outer pair of braces +%% This function is called when parsing table specifications +\cs_new_protected:Npn \__tblr_set_row_aux:nn #1 #2 + { + \tl_if_head_is_group:nTF {#2} + { \tblr_set_row:nnn #1 #2 } + { \tblr_set_row:nnn #1 {} {#2} } + } +\cs_generate_variant:Nn \__tblr_set_row_aux:nn { Vn } + +\keys_define:nn { tblr-row } + { + l .code:n = \__tblr_set_key_for_every_row_cell:nnn + { \int_use:N \c@rownum } { halign } {l}, + c .code:n = \__tblr_set_key_for_every_row_cell:nnn + { \int_use:N \c@rownum } { halign } {c}, + r .code:n = \__tblr_set_key_for_every_row_cell:nnn + { \int_use:N \c@rownum } { halign } {r}, + t .code:n = \__tblr_set_key_for_every_row_cell:nnn + { \int_use:N \c@rownum } { valign } {t}, + p .code:n = \__tblr_set_key_for_every_row_cell:nnn + { \int_use:N \c@rownum } { valign } {t}, + m .code:n = \__tblr_set_key_for_every_row_cell:nnn + { \int_use:N \c@rownum } { valign } {m}, + b .code:n = \__tblr_set_key_for_every_row_cell:nnn + { \int_use:N \c@rownum } { valign } {b}, + h .code:n = \__tblr_set_key_for_every_row_cell:nnn + { \int_use:N \c@rownum } { valign } {h}, + f .code:n = \__tblr_set_key_for_every_row_cell:nnn + { \int_use:N \c@rownum } { valign } {f}, + bg .code:n = \__tblr_set_key_for_every_row_cell:nnn + { \int_use:N \c@rownum } { background } {#1}, + ht .code:n = \__tblr_prop_gput:nxx { row } + { [\int_use:N \c@rownum] / height } { \dim_eval:n {#1} }, + co .code:n = \__tblr_prop_gput:nxx { row } + { [\int_use:N \c@rownum] / coefficient } {#1}, + abovesep .code:n = \__tblr_prop_gput:nxx { row } + { [\int_use:N \c@rownum] / abovesep } { \dim_eval:n {#1} }, + belowsep .code:n = \__tblr_prop_gput:nxx { row } + { [\int_use:N \c@rownum] / belowsep } { \dim_eval:n {#1} }, + rowsep .meta:n = { abovesep = #1, belowsep = #1}, + abovesep+ .code:n = \__tblr_prop_gadd_dimen_value:nxx { row } + { [\int_use:N \c@rownum] / abovesep } { \dim_eval:n {#1} }, + belowsep+ .code:n = \__tblr_prop_gadd_dimen_value:nxx { row } + { [\int_use:N \c@rownum] / belowsep } { \dim_eval:n {#1} }, + rowsep+ .meta:n = { abovesep+ = #1, belowsep+ = #1}, + nobreak .code:n = \__tblr_prop_gput:nxx { row } + { [\int_eval:n {\c@rownum - 1}] / nobreak } { true }, + unknown .code:n = \__tblr_row_unknown_key:V \l_keys_key_str, + } + +%% #1: row number; #2: key; #3: value +\cs_new_protected:Npn \__tblr_set_key_for_every_row_cell:nnn #1 #2 #3 + { + \int_step_inline:nn { \c@colcount } + { + \__tblr_prop_gput:nxn {cell} { [#1][##1] / #2 } {#3} + } + } + +\cs_new_protected:Npn \__tblr_row_unknown_key:n #1 + { + \regex_match:NnTF \c__tblr_is_number_key_regex {#1} + { + \__tblr_prop_gput:nxx { row } + { [\int_use:N \c@rownum] / coefficient } {#1} + } + { + \regex_match:NnTF \c__tblr_is_color_key_regex {#1} + { + \__tblr_set_key_for_every_row_cell:nnn + { \int_use:N \c@rownum } { background } {#1} + } + { + \tl_set_rescan:Nnn \l__tblr_v_tl {} {#1} + \__tblr_prop_gput:nxx { row } + { [\int_use:N \c@rownum] / height } { \dim_eval:n { \l__tblr_v_tl } } + } + } + } +\cs_generate_variant:Nn \__tblr_row_unknown_key:n { V } + +%%% -------------------------------------------------------- +%% \section{Column Types and Row Types} +%%% -------------------------------------------------------- + +%% Some primitive column/row types + +\str_const:Nn \c_tblr_primitive_colrow_types_str { Q | < > } +\tl_new:N \g__tblr_expanded_colrow_spec_tl + +\exp_args:Nc \NewDocumentCommand { tblr_primitive_column_type_ Q } { O{} } + { + \keys_set:nn { tblr-column } { #1 } + \int_incr:N \c@colnum + \__tblr_execute_colrow_spec_next:N + } +\exp_args:Nc \NewDocumentCommand { tblr_column_type_ Q } { O{} } + { + \tl_gput_right:Nn \g__tblr_expanded_colrow_spec_tl { Q[#1] } + \__tblr_expand_colrow_spec_next:N + } + +\exp_args:Nc \NewDocumentCommand { tblr_primitive_row_type_ Q } { O{} } + { + \keys_set:nn { tblr-row } { #1 } + \int_incr:N \c@rownum + \__tblr_execute_colrow_spec_next:N + } +\exp_args:Nc \NewDocumentCommand { tblr_row_type_ Q } { O{} } + { + \tl_gput_right:Nn \g__tblr_expanded_colrow_spec_tl { Q[#1] } + \__tblr_expand_colrow_spec_next:N + } + +\exp_args:Nc \NewDocumentCommand { tblr_primitive_column_type_ | } { O{} } + { + \vline [#1] + \__tblr_execute_colrow_spec_next:N + } +\exp_args:Nc \NewDocumentCommand { tblr_column_type_ | } { O{} } + { + \tl_gput_right:Nn \g__tblr_expanded_colrow_spec_tl { |[#1] } + \__tblr_expand_colrow_spec_next:N + } + +\exp_args:Nc \NewDocumentCommand { tblr_primitive_row_type_ | } { O{} } + { + \hline [#1] + \__tblr_execute_colrow_spec_next:N + } +\exp_args:Nc \NewDocumentCommand { tblr_row_type_ | } { O{} } + { + \tl_gput_right:Nn \g__tblr_expanded_colrow_spec_tl { |[#1] } + \__tblr_expand_colrow_spec_next:N + } + +\exp_args:Nc \NewDocumentCommand { tblr_primitive_column_type_ > } { O{} m } + { + \tl_if_blank:nF { #1 } + { + \__tblr_prop_gput:nxx + { column } + { [\int_use:N \c@colnum] / leftsep} + { \dim_eval:n { #1 } } + } + \tl_if_blank:nF { #2 } + { + \int_step_variable:nNn { \c@rowcount } \l__tblr_i_tl + { + \tl_set:Nx \l_tmpa_tl + { + \__tblr_prop_item:ne {text} + { [\l__tblr_i_tl][\int_use:N \c@colnum] } + } + \tl_put_left:Nn \l_tmpa_tl { #2 } + \__tblr_prop_gput:nxV {text} + { [\l__tblr_i_tl][\int_use:N \c@colnum] } \l_tmpa_tl + } + } + \__tblr_execute_colrow_spec_next:N + } +\exp_args:Nc \NewDocumentCommand { tblr_column_type_ > } { O{} m } + { + \tl_gput_right:Nn \g__tblr_expanded_colrow_spec_tl { >[#1]{#2} } + \__tblr_expand_colrow_spec_next:N + } + +\exp_args:Nc \NewDocumentCommand { tblr_primitive_row_type_ > } { O{} m } + { + \tl_if_blank:nF { #1 } + { + \__tblr_prop_gput:nxx + { row } + { [\int_use:N \c@rownum] / abovesep } + { \dim_eval:n { #1 } } + } + \tl_if_blank:nF { #2 } + { + \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl + { + \tl_set:Nx \l_tmpa_tl + { + \__tblr_prop_item:ne {text} + { [\int_use:N \c@rownum][\l__tblr_j_tl] } + } + \tl_put_left:Nn \l_tmpa_tl { #2 } + \__tblr_prop_gput:nxV {text} + { [\int_use:N \c@rownum][\l__tblr_j_tl] } \l_tmpa_tl + } + } + \__tblr_execute_colrow_spec_next:N + } +\exp_args:Nc \NewDocumentCommand { tblr_row_type_ > } { O{} m } + { + \tl_gput_right:Nn \g__tblr_expanded_colrow_spec_tl { >[#1]{#2} } + \__tblr_expand_colrow_spec_next:N + } + +\exp_args:Nc \NewDocumentCommand { tblr_primitive_column_type_ < } { O{} m } + { + \tl_if_blank:nF { #1 } + { + \__tblr_prop_gput:nxx + { column } + { [\int_eval:n {\c@colnum - 1}] / rightsep } + { \dim_eval:n { #1 } } + } + \tl_if_blank:nF { #2 } + { + \int_step_variable:nNn { \c@rowcount } \l__tblr_i_tl + { + \tl_set:Nx \l_tmpa_tl + { + \__tblr_prop_item:ne {text} + { [\l__tblr_i_tl][\int_eval:n {\c@colnum - 1}] } + } + \tl_put_right:Nn \l_tmpa_tl { #2 } + \__tblr_prop_gput:nxV {text} + { [\l__tblr_i_tl][\int_eval:n {\c@colnum - 1}] } \l_tmpa_tl + } + } + \__tblr_execute_colrow_spec_next:N + } +\exp_args:Nc \NewDocumentCommand { tblr_column_type_ < } { O{} m } + { + \tl_gput_right:Nn \g__tblr_expanded_colrow_spec_tl { <[#1]{#2} } + \__tblr_expand_colrow_spec_next:N + } + +\exp_args:Nc \NewDocumentCommand { tblr_primitive_row_type_ < } { O{} m } + { + \tl_if_blank:nF { #1 } + { + \__tblr_prop_gput:nxx + { row } + { [\int_eval:n {\c@rownum - 1}] / belowsep } + { \dim_eval:n { #1 } } + } + \tl_if_blank:nF { #2 } + { + \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl + { + \tl_set:Nx \l_tmpa_tl + { + \__tblr_prop_item:ne {text} + { [\int_eval:n {\c@rownum - 1}][\l__tblr_j_tl] } + } + \tl_put_right:Nn \l_tmpa_tl { #2 } + \__tblr_prop_gput:nxV {text} + { [\int_eval:n {\c@rownum - 1}][\l__tblr_j_tl] } \l_tmpa_tl + } + } + \__tblr_execute_colrow_spec_next:N + } +\exp_args:Nc \NewDocumentCommand { tblr_row_type_ < } { O{} m } + { + \tl_gput_right:Nn \g__tblr_expanded_colrow_spec_tl { <[#1]{#2} } + \__tblr_expand_colrow_spec_next:N + } + +%% \NewColumnType/\NewRowType command and predefined column/row types + +\str_new:N \g_tblr_used_column_types_str +\str_gset_eq:NN \g_tblr_used_column_types_str \c_tblr_primitive_colrow_types_str + +\str_new:N \g_tblr_used_row_types_str +\str_gset_eq:NN \g_tblr_used_row_types_str \c_tblr_primitive_colrow_types_str + +\bool_new:N \g__tblr_colrow_spec_expand_stop_bool +\tl_new:N \g__tblr_column_or_row_tl + +\msg_new:nnn { tabularray } { used-colrow-type } + { #1 ~ type ~ name ~ #2 ~ has ~ been ~ used! } + +\NewDocumentCommand \NewColumnType { m O{0} o m } + { + \tl_set:Nn \g__tblr_column_or_row_tl { column } + \__tblr_new_column_or_row_type:nnnn {#1} {#2} {#3} {#4} + } + +\NewDocumentCommand \NewRowType { m O{0} o m } + { + \tl_set:Nn \g__tblr_column_or_row_tl { row } + \__tblr_new_column_or_row_type:nnnn {#1} {#2} {#3} {#4} + } + +\NewDocumentCommand \NewColumnRowType { m O{0} o m } + { + \tl_set:Nn \g__tblr_column_or_row_tl { column } + \__tblr_new_column_or_row_type:nnnn {#1} {#2} {#3} {#4} + \tl_set:Nn \g__tblr_column_or_row_tl { row } + \__tblr_new_column_or_row_type:nnnn {#1} {#2} {#3} {#4} + } + +\cs_new_protected:Npn \__tblr_new_column_or_row_type:nnnn #1 #2 #3 #4 + { + \str_if_in:cnTF { g_tblr_used_ \g__tblr_column_or_row_tl _types_str } {#1} + { + \tl_if_eq:NnTF \g__tblr_column_or_row_tl { row } + { \msg_warning:nnnn { tabularray } { used-colrow-type } { Row } {#1} } + { \msg_warning:nnnn { tabularray } { used-colrow-type } { Column } {#1} } + \str_log:c { g_tblr_used_ \g__tblr_column_or_row_tl _types_str } + } + { + \__tblr_make_xparse_arg_spec:nnN {#2} {#3} \l__tblr_a_tl + \exp_args:NcV \NewDocumentCommand + { tblr_ \g__tblr_column_or_row_tl _type_ #1 } \l__tblr_a_tl + { + \bool_gset_false:N \g__tblr_colrow_spec_expand_stop_bool + \tl_gput_right:Nf \g__tblr_expanded_colrow_spec_tl {#4} + \__tblr_expand_colrow_spec_next:N + } + \str_gput_right:cn + { g_tblr_used_ \g__tblr_column_or_row_tl _types_str } {#1} + } + } + +\NewColumnRowType { l } { Q[l] } +\NewColumnRowType { c } { Q[c] } +\NewColumnRowType { r } { Q[r] } + +\NewColumnType { t } [1] { Q[t,wd=#1] } +\NewColumnType { p } [1] { Q[p,wd=#1] } +\NewColumnType { m } [1] { Q[m,wd=#1] } +\NewColumnType { b } [1] { Q[b,wd=#1] } +\NewColumnType { h } [1] { Q[h,wd=#1] } +\NewColumnType { f } [1] { Q[f,wd=#1] } + +\NewRowType { t } [1] { Q[t,ht=#1] } +\NewRowType { p } [1] { Q[p,ht=#1] } +\NewRowType { m } [1] { Q[m,ht=#1] } +\NewRowType { b } [1] { Q[b,ht=#1] } +\NewRowType { h } [1] { Q[h,ht=#1] } +\NewRowType { f } [1] { Q[f,ht=#1] } + +\NewColumnRowType { X } [1][] { Q[co=1,#1] } + +\NewColumnRowType { ! } [1] { |[text={#1}] } +\NewColumnRowType { @ } [1] { <[0pt]{} |[text={#1}] >[0pt]{} } +\NewColumnRowType { * } [2] { \prg_replicate:nn {#1} {#2} } + +\cs_new_protected:Npn \__tblr_parse_colrow_spec:nn #1 #2 + { + \tl_gset:Nn \g__tblr_column_or_row_tl {#1} + \tl_gset:Nn \g__tblr_expanded_colrow_spec_tl {#2} + \__tblr_expand_colrow_spec:N \g__tblr_expanded_colrow_spec_tl + \__tblr_execute_colrow_spec:N \g__tblr_expanded_colrow_spec_tl + } + +%% Expand defined column/row types + +\cs_new_protected:Npn \__tblr_expand_colrow_spec:N #1 + { + \bool_do_until:Nn \g__tblr_colrow_spec_expand_stop_bool + { + \LogTblrTracing { colspec, rowspec } + \bool_gset_true:N \g__tblr_colrow_spec_expand_stop_bool + \tl_set_eq:NN \l_tmpa_tl #1 + \tl_gclear:N #1 + \exp_last_unbraced:NV + \__tblr_expand_colrow_spec_next:N \l_tmpa_tl \scan_stop: + } + } + +\msg_new:nnn { tabularray } { unexpandable-colrow-type } + { Unexpandable ~ command ~ #2 inside ~ #1 ~ type! } + +\msg_new:nnn { tabularray } { unknown-colrow-type } + { Unknown ~ #1 ~ type ~ #2! } + +\cs_new_protected:Npn \__tblr_expand_colrow_spec_next:N #1 + { + \token_if_eq_catcode:NNTF #1 \scan_stop: + { + \token_if_eq_meaning:NNF #1 \scan_stop: + { + \msg_error:nnVn { tabularray } { unexpandable-colrow-type } + \g__tblr_column_or_row_tl {#1} + } + } + { + \str_if_in:cnTF { g_tblr_used_ \g__tblr_column_or_row_tl _types_str } {#1} + { \cs:w tblr_ \g__tblr_column_or_row_tl _type_ #1 \cs_end: } + { + \msg_error:nnVn { tabularray } { unknown-colrow-type } + \g__tblr_column_or_row_tl {#1} + \str_log:c { g_tblr_used_ \g__tblr_column_or_row_tl _types_str } + } + } + } + +%% Execute primitive column/row types + +\cs_new_protected:Npn \__tblr_execute_colrow_spec:N #1 + { + \tl_if_eq:NnTF \g__tblr_column_or_row_tl { row } + { \int_set:Nn \c@rownum {1} } + { \int_set:Nn \c@colnum {1} } + \exp_last_unbraced:NV \__tblr_execute_colrow_spec_next:N #1 \scan_stop: + } + +\cs_new_protected:Npn \__tblr_execute_colrow_spec_next:N #1 + { + \token_if_eq_meaning:NNF #1 \scan_stop: + { \cs:w tblr_primitive_ \g__tblr_column_or_row_tl _type_ #1 \cs_end: } + } + +%%% -------------------------------------------------------- +%% \section{Tabularray Environments} +%%% -------------------------------------------------------- + +\tl_new:N \l__tblr_env_name_tl +\bool_new:N \l__tblr_math_mode_bool + +\NewDocumentEnvironment { tblr } { O{c} m +b } + { + \tl_set:Nn \l__tblr_env_name_tl { tblr } + \mode_if_math:TF + { \bool_set_true:N \l__tblr_math_mode_bool } + { \bool_set_false:N \l__tblr_math_mode_bool } + \buildtblr {#1} {#2} {#3} + } { } + +%% Read, split and build the table + +\cs_new_protected:Npn \buildtblr #1 #2 #3 + { + \mode_leave_vertical: + \int_gincr:N \g_tblr_level_int + \__tblr_clear_prop_lists: + \__tblr_enable_table_commands: + \__tblr_split_table:n { #3 } + \LogTblrTracing { command } + \__tblr_initial_table_spec: + \LogTblrTracing { table } + \__tblr_parse_table_spec:n { #2 } + \__tblr_execute_table_commands: + \__tblr_disable_table_commands: + \__tblr_calc_cell_and_line_sizes: + \__tblr_build_whole:n { #1 } + \int_gdecr:N \g_tblr_level_int + } + +\cs_new_protected:Npn \__tblr_clear_prop_lists: + { + \prop_gclear_new:c { g_tblr_text_ \int_use:N \g_tblr_level_int _prop } + \prop_gclear_new:c { g_tblr_command_ \int_use:N \g_tblr_level_int _prop } + \prop_gclear_new:c { g_tblr_table_ \int_use:N \g_tblr_level_int _prop } + \prop_gclear_new:c { g_tblr_row_ \int_use:N \g_tblr_level_int _prop } + \prop_gclear_new:c { g_tblr_column_ \int_use:N \g_tblr_level_int _prop } + \prop_gclear_new:c { g_tblr_cell_ \int_use:N \g_tblr_level_int _prop } + \prop_gclear_new:c { g_tblr_hline_ \int_use:N \g_tblr_level_int _prop } + \prop_gclear_new:c { g_tblr_vline_ \int_use:N \g_tblr_level_int _prop } + } + +%% Insert and remove braces for nesting environments inside cells +%% These make line split and cell split workable +%% We need to replace N times for N level nestings +\regex_const:Nn \c__tblr_insert_braces_regex + { + \c{begin} \cB\{ (\c[^BE].*) \cE\} (.*?) \c{end} \cB\{ (\c[^BE].*) \cE\} + } +\tl_const:Nn \c__tblr_insert_braces_tl + { + \c{begin} \cB\{ \cB\{ \1 \cE\} \2 \c{end} \cE\} \cB\{ \3 \cE\} + } +\regex_const:Nn \c__tblr_remove_braces_regex + { + \c{begin} \cB\{ \cB\{ (.*?) \c{end} \cE\} + } +\tl_const:Nn \c__tblr_remove_braces_tl + { + \c{begin} \cB\{ \1 \c{end} + } +\cs_new_protected:Npn \__tblr_insert_braces:N #1 + { + \regex_replace_all:NVN \c__tblr_insert_braces_regex \c__tblr_insert_braces_tl #1 + \regex_replace_all:NVN \c__tblr_insert_braces_regex \c__tblr_insert_braces_tl #1 + } +\cs_new_protected:Npn \__tblr_remove_braces:N #1 + { + \regex_replace_all:NVN \c__tblr_remove_braces_regex \c__tblr_remove_braces_tl #1 + \regex_replace_all:NVN \c__tblr_remove_braces_regex \c__tblr_remove_braces_tl #1 + } + +%% Split table content to cells and store them +%% #1: table content + +\seq_new:N \l_tblr_lines_seq + +\cs_new_protected:Npn \__tblr_split_table:n #1 + { + \int_zero:N \c@rowcount + \int_zero:N \c@colcount + \__tblr_split_table_to_lines:nN { #1 } \l_tblr_lines_seq + \__tblr_split_lines_to_cells:N \l_tblr_lines_seq + } + +%% Split table content to a sequence of lines +%% #1: table content, #2: resulting sequence of lines +\cs_new_protected:Npn \__tblr_split_table_to_lines:nN #1 #2 + { + \tl_set:Nn \l_tmpa_tl { #1 } + \__tblr_insert_braces:N \l_tmpa_tl + \seq_set_split:NnV \l_tmpa_seq { \\ } \l_tmpa_tl + \seq_clear:N #2 + \seq_map_inline:Nn \l_tmpa_seq + { + \tl_if_head_eq_meaning:nNTF {##1} * + { + \tl_set:Nn \l__tblr_b_tl { \SetRow{nobreak} } + \tl_set:Nx \l__tblr_c_tl { \tl_tail:n {##1} } + \tl_trim_spaces:N \l__tblr_c_tl %% Ignore spaces between * and [dimen] + \tl_log:N \l__tblr_c_tl + \tl_if_head_eq_meaning:VNT \l__tblr_c_tl [ + { + \tl_put_right:Nn \l__tblr_b_tl { \RowBefore@AddBelowSep } + } + \tl_put_right:NV \l__tblr_b_tl \l__tblr_c_tl + \seq_put_right:NV #2 \l__tblr_b_tl + } + { + \tl_if_head_eq_meaning:nNTF { ##1 } [ + { \seq_put_right:Nn #2 { \RowBefore@AddBelowSep ##1 } } + { \seq_put_right:Nn #2 { ##1 } } + } + } + \int_set:Nn \c@rowcount { \seq_count:N #2 } + } + +%% Treat \\[dimen] command +\NewTableCommand \RowBefore@AddBelowSep [1] [] + { + \IfValueT { #1 } + { + \__tblr_prop_gadd_dimen_value:nxx { row } + { [\int_eval:n {\c@rownum - 1}] / belowsep } { #1 } + } + } + +%% Split table lines to cells and store them +%% #1: sequence of lines +\cs_new_protected:Npn \__tblr_split_lines_to_cells:N #1 + { + \seq_map_indexed_function:NN #1 \__tblr_split_one_line:nn + \LogTblrTracing { text } + } + +%% Split one line into cells and store them +%% #1: row number, #2 the line text +\cs_new_protected:Npn \__tblr_split_one_line:nn #1 #2 + { + \seq_set_split:Nnn \l_tmpa_seq { & } { #2 } + \int_set:Nn \c@rownum {#1} + \int_zero:N \c@colnum + \seq_map_inline:Nn \l_tmpa_seq + { + \tl_set:Nn \l_tmpa_tl { ##1 } + \__tblr_remove_braces:N \l_tmpa_tl + \int_incr:N \c@colnum + \__tblr_extract_table_commands:N \l_tmpa_tl + \__tblr_prop_gput:nxV {text} { [#1][\int_use:N \c@colnum] } \l_tmpa_tl + \__tblr_add_multicolumn_empty_cell: + } + %% Decrease row count by 1 if the last row has only one empty cell text + %% We need to do it here since the > or < column type may add text to cells + \bool_lazy_and:nnTF + { \int_compare_p:nNn {\c@colnum} = {1} } + { \tl_if_empty_p:N \l_tmpa_tl } + { \int_decr:N \c@rowcount } + { + \__tblr_prop_gput:nnx + {row} { [#1] / cell-number } { \int_use:N \c@colnum } + \int_compare:nT { \c@colnum > \c@colcount } + { + \int_set_eq:NN \c@colcount \c@colnum + } + } + } + +%% Add empty cells after the \multicolumn span cell +\cs_new_protected:Npn \__tblr_add_multicolumn_empty_cell: + { + \int_step_inline:nn { \l__multicolumn_cell_number_int - 1 } + { + \int_incr:N \c@colnum + \__tblr_prop_gput:nxn {text} + { [\int_use:N \c@rownum][\int_use:N \c@colnum] } { } + } + } + +%%% -------------------------------------------------------- +%% \section{Extract Table Commands from Cell Text} +%%% -------------------------------------------------------- + +%% Extract table commands defined with \NewTableCommand from cell text + +\clist_gset:Nn \g__tblr_table_commands_unbrace_next_clist {\multirow, \multicolumn} +\bool_new:N \l__tblr_table_command_unbrace_next_bool +\int_new:N \l__multicolumn_cell_number_int +\tl_new:N \l__tblr_saved_table_commands_before_cell_text_tl +\tl_new:N \l__tblr_saved_cell_text_after_table_commands_tl + +\cs_new_protected:Npn \__tblr_extract_table_commands:N #1 + { + \tl_clear:N \l__tblr_saved_table_commands_before_cell_text_tl + \tl_clear:N \l__tblr_saved_cell_text_after_table_commands_tl + \int_set:Nn \l__multicolumn_cell_number_int {1} + \exp_last_unbraced:NV \__tblr_extract_table_commands_next:w #1 \scan_stop: + \tl_if_empty:NF \l__tblr_saved_table_commands_before_cell_text_tl + { + \__tblr_prop_gput:nxV { command } + {[\int_use:N \c@rownum][\int_use:N \c@colnum]} + \l__tblr_saved_table_commands_before_cell_text_tl + } + \tl_set_eq:NN #1 \l__tblr_saved_cell_text_after_table_commands_tl + } + +%% #1 maybe a single token or multiple tokens given in braces +\cs_new_protected:Npn \__tblr_extract_table_commands_next:w #1 + { + \clist_if_in:NnTF \g__tblr_table_commands_clist { #1 } + { + \clist_if_in:NnTF \g__tblr_table_commands_unbrace_next_clist { #1 } + { \bool_set_true:N \l__tblr_table_command_unbrace_next_bool } + { \bool_set_false:N \l__tblr_table_command_unbrace_next_bool } + \token_if_eq_meaning:NNTF #1 \multicolumn + { \__tblr_extract_multicolumn_command:Nn #1 } + { \__tblr_extract_one_table_command:N #1 } + } + { + \tl_if_single_token:nTF {#1} + { + \token_if_eq_meaning:NNF #1 \scan_stop: + { \__tblr_save_real_cell_text:w #1 } + } + { \__tblr_save_real_cell_text:w {#1} } + } + } + +\cs_new_protected:Npn \__tblr_extract_multicolumn_command:Nn #1 #2 + { + \int_set:Nn \l__multicolumn_cell_number_int {#2} + \__tblr_extract_one_table_command:N #1 {#2} + } + +\cs_new_protected:Npn \__tblr_extract_one_table_command:N #1 + { + \int_set:Nn \l__tblr_a_int + { \cs:w g__tblr_table_cmd_ \cs_to_str:N #1 _arg_numb_tl \cs_end: } + \tl_put_right:Nn \l__tblr_saved_table_commands_before_cell_text_tl {#1} + \int_compare:nNnTF {\l__tblr_a_int} < {0} + { + \int_set:Nn \l__tblr_a_int { \int_abs:n {\l__tblr_a_int} - 1 } + \peek_charcode:NTF [ + { \__tblr_extract_table_command_arg_o:w } + { \__tblr_extract_table_command_arg_next: } + } + { \__tblr_extract_table_command_arg_next: } + } + +\cs_new_protected:Npn \__tblr_extract_table_command_arg_o:w [#1] + { + \tl_put_right:Nn \l__tblr_saved_table_commands_before_cell_text_tl { [#1] } + \__tblr_extract_table_command_arg_next: + } + +\cs_new_protected:Npn \__tblr_extract_table_command_arg_m:n #1 + { + \tl_put_right:Nn \l__tblr_saved_table_commands_before_cell_text_tl { {#1} } + \__tblr_extract_table_command_arg_next: + } + +\cs_new_protected:Npn \__tblr_extract_table_command_arg_next: + { + \int_compare:nNnTF {\l__tblr_a_int} > {0} + { + \int_decr:N \l__tblr_a_int + \__tblr_extract_table_command_arg_m:n + } + { + \bool_if:NTF \l__tblr_table_command_unbrace_next_bool + { \__tblr_last_unbraced:Nn \__tblr_extract_table_commands_next:w } + { \__tblr_extract_table_commands_next:w } + } + } + +\cs_new_protected:Npn \__tblr_last_unbraced:Nn #1 #2 { #1 #2 } + +%% The outermost set of braces of cell text #1 will be removed +\cs_new_protected:Npn \__tblr_save_real_cell_text:w #1 \scan_stop: + { + \tl_set:Nn \l__tblr_saved_cell_text_after_table_commands_tl {#1} + } + +%%% -------------------------------------------------------- +%% \section{Initial Table Specifications} +%%% -------------------------------------------------------- + +\prop_gset_from_keyval:Nn \g__tblr_default_tblr_table_prop + { + stretch = 1, + } + +\prop_gset_from_keyval:Nn \g__tblr_default_tblr_rows_prop + { + abovesep = 2pt, + belowsep = 2pt, + @row-height = 0pt, + @row-head = 0pt, + @row-foot = 0pt, + @row-upper = 0pt, + @row-lower = 0pt, + } + +\prop_gset_from_keyval:Nn \g__tblr_default_tblr_columns_prop + { + leftsep = 6pt, + rightsep = 6pt, + @col-width = 0pt, + } + +\prop_gset_from_keyval:Nn \g__tblr_default_tblr_cells_prop + { + halign = l, + valign = t, + } + +\prop_gset_from_keyval:Nn \g__tblr_default_tblr_hlines_prop + { + rulesep = 2pt, + } + +\prop_gset_from_keyval:Nn \g__tblr_default_tblr_vlines_prop + { + rulesep = 2pt, + } + +\cs_new_protected:Npn \__tblr_initial_table_spec: + { + \prop_map_inline:cn { g__tblr_default_ \l__tblr_env_name_tl _table_prop } + { + \__tblr_prop_gput:nxn { table } { ##1 } {##2} + } + \int_step_variable:nNn { \c@rowcount } \l__tblr_i_tl + { + \prop_map_inline:cn { g__tblr_default_ \l__tblr_env_name_tl _rows_prop } + { + \__tblr_prop_gput:nxn { row } { [\l__tblr_i_tl] / ##1 } {##2} + } + \prop_map_inline:cn { g__tblr_default_ \l__tblr_env_name_tl _hlines_prop } + { + \__tblr_prop_gput:nxn { hline } { [\l__tblr_i_tl] / ##1 } {##2} + } + \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl + { + \prop_map_inline:cn + { g__tblr_default_ \l__tblr_env_name_tl _cells_prop } + { + \__tblr_prop_gput:nxn { cell } + { [\l__tblr_i_tl][\l__tblr_j_tl] / ##1 } {##2} + } + } + } + \prop_map_inline:cn { g__tblr_default_ \l__tblr_env_name_tl _hlines_prop } + { + \__tblr_prop_gput:nxn { hline } + { [\int_eval:n { \c@rowcount + 1}] / ##1 } {##2} + } + \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl + { + \prop_map_inline:cn { g__tblr_default_ \l__tblr_env_name_tl _columns_prop } + { + \__tblr_prop_gput:nxn { column } { [\l__tblr_j_tl] / ##1 } {##2} + } + \prop_map_inline:cn { g__tblr_default_ \l__tblr_env_name_tl _vlines_prop } + { + \__tblr_prop_gput:nxn { vline } { [\l__tblr_j_tl] / ##1 } {##2} + } + } + \prop_map_inline:cn { g__tblr_default_ \l__tblr_env_name_tl _vlines_prop } + { + \__tblr_prop_gput:nxn { vline } + { [\int_eval:n { \c@colcount + 1}] / ##1 } {##2} + } + \keys_set:nv { tblr } { l__tblr_default_ \l__tblr_env_name_tl _tl } + } + +\tl_new:N \l__tblr_default_tblr_tl + +%% #1: env name; #2: options +\NewDocumentCommand \SetTabularrayDefault { O{tblr} m } + { + \tl_put_right:cn { l__tblr_default_ #1 _tl } { , #2 } + } +\cs_new_eq:NN \SetTblrDefault \SetTabularrayDefault + +%%% -------------------------------------------------------- +%% \section{Parse Table Specifications} +%%% -------------------------------------------------------- + +\clist_new:N \g__tblr_table_known_keys_clist +\clist_gset:Nn \g__tblr_table_known_keys_clist + { + colspec, rowspec, width, hspan, stretch, + column, row, cell, vline, hline, columns, rows, cells, vlines, hlines, + leftsep, rightsep, colsep, abovesep, belowsep, rowsep, + } + +\keys_define:nn { tblr } + { + colspec .code:n = \__tblr_parse_colrow_spec:nn { column } {#1}, + rowspec .code:n = \__tblr_parse_colrow_spec:nn { row } {#1}, + width .code:n = \__tblr_keys_gput:nx { width } { \dim_eval:n {#1} }, + hspan .code:n = \__tblr_keys_gput:nn { hspan } {#1}, + stretch .code:n = \__tblr_keys_gput:nn { stretch } {#1}, + columns .code:n = \__tblr_set_every_column_aux:n {#1}, + rows .code:n = \__tblr_set_every_row_aux:n {#1}, + cells .code:n = \__tblr_set_every_cell_aux:n {#1}, + hlines .code:n = \__tblr_set_every_hline_aux:n {#1}, + vlines .code:n = \__tblr_set_every_vline_aux:n {#1}, + leftsep .code:n = \tblr_set_every_column:nn { } { leftsep = #1 }, + rightsep .code:n = \tblr_set_every_column:nn { } { rightsep = #1 }, + colsep .meta:n = { leftsep = #1, rightsep = #1 }, + abovesep .code:n = \tblr_set_every_row:nn { } { abovesep = #1 }, + belowsep .code:n = \tblr_set_every_row:nn { } { belowsep = #1 }, + rowsep .meta:n = { abovesep = #1, belowsep = #1 }, + unknown .code:n = \__tblr_table_special_key:Vn \l_keys_key_str {#1}, + } + +\regex_const:Nn \c__tblr_split_key_name_regex { ^ ( [a-z] + ) ( . * ) } + +\cs_new_protected:Npn \__tblr_table_special_key:nn #1 #2 + { + \regex_extract_once:NnNT \c__tblr_split_key_name_regex {#1} \l_tmpa_seq + { + \tl_set:Nx \l__tblr_a_tl { \seq_item:Nn \l_tmpa_seq {2} } + \tl_set_rescan:Nnx \l__tblr_b_tl {} { \seq_item:Nn \l_tmpa_seq {3} } + \cs:w __tblr_set_ \l__tblr_a_tl _aux:Vn \cs_end: \l__tblr_b_tl {#2} + } + } +\cs_generate_variant:Nn \__tblr_table_special_key:nn { Vn } + +%% If the first key name is known, treat #1 is the table spec; +%% otherwise, treat #1 as colspec. + +\regex_const:Nn \c__tblr_first_key_name_regex { ^ \s * ( [A-Za-z\-] + ) } + +\cs_new_protected:Npn \__tblr_parse_table_spec:n #1 + { + \regex_extract_once:NnNTF \c__tblr_first_key_name_regex {#1} \l_tmpa_seq + { + \clist_if_in:NxTF \g__tblr_table_known_keys_clist + { \seq_item:Nn \l_tmpa_seq {2} } + { \keys_set:nn { tblr } {#1} } + { \__tblr_parse_colrow_spec:nn { column } {#1} } + } + { \__tblr_parse_colrow_spec:nn { column } {#1} } + } + +\cs_new_protected:Npn \__tblr_keys_gput:nn #1 #2 + { + \__tblr_prop_gput:nnn { table } {#1} {#2} + } +\cs_generate_variant:Nn \__tblr_keys_gput:nn { nx } + +%%% -------------------------------------------------------- +%% \section{Typeset and Calculate Sizes} +%%% -------------------------------------------------------- + +%% Calculate the width and height for every cell and border + +\cs_new_protected:Npn \__tblr_calc_cell_and_line_sizes: + { + \__tblr_make_strut_box: + \__tblr_calculate_line_sizes: + \__tblr_calculate_cell_sizes: + \LogTblrTracing { cell, row, column, hline, vline } + \__tblr_compute_extendable_column_width: + \__tblr_adjust_sizes_for_span_cells: + } + +%% make strut box from stretch option of the table + +\box_new:N \l__tblr_strut_ht_box +\box_new:N \l__tblr_strut_dp_box + +\cs_new_protected:Npn \__tblr_make_strut_box: + { + \tl_set:Nx \l__tblr_s_tl { \__tblr_prop_item:ne { table } { stretch } } + \hbox_set:Nn \l__tblr_strut_ht_box + { \vrule height \l__tblr_s_tl \box_ht:N \strutbox width ~ 0pt } + \hbox_set:Nn \l__tblr_strut_dp_box + { \vrule depth \l__tblr_s_tl \box_dp:N \strutbox width ~ 0pt } + } + +%% Calculate the thickness for every hline and vline +\cs_new_protected:Npn \__tblr_calculate_line_sizes: + { + %% We need these two counters in executing hline and vline commands + \int_zero:N \c@rownum + \int_zero:N \c@colnum + \int_step_inline:nn { \c@rowcount + 1 } + { + \int_incr:N \c@rownum + \int_zero:N \c@colnum + \int_step_inline:nn { \c@colcount + 1 } + { + \int_incr:N \c@colnum + \int_compare:nNnT { ##1 } < { \c@rowcount + 1 } + { + \__tblr_measure_and_update_vline_size:nn { ##1 } { ####1 } + } + \int_compare:nNnT { ####1 } < { \c@colcount + 1 } + { + \__tblr_measure_and_update_hline_size:nn { ##1 } { ####1 } + } + } + } + } + +%% Measure and update thickness of the vline +%% #1: row number, #2 column number +\cs_new_protected:Npn \__tblr_measure_and_update_vline_size:nn #1 #2 + { + \dim_zero:N \l__tblr_w_dim + \tl_set:Nx \l__tblr_n_tl + { \__tblr_prop_item:ne { vline } { [#2] / @vline-count } } + \tl_if_empty:NF \l__tblr_n_tl + { + \tl_set:Nx \l__tblr_s_tl + { \__tblr_prop_item:ne { vline } { [#2] / rulesep } } + \int_step_inline:nn { \l__tblr_n_tl } + { + \vbox_set_to_ht:Nnn \l__tblr_b_box {1pt} + { + \__tblr_get_vline_segment_child:nnnnn + {#1} {#2} {##1} {1pt} {1pt} + } + \tl_set:Nx \l__tblr_w_tl { \dim_eval:n { \box_wd:N \l__tblr_b_box } } + \__tblr_prop_gput_if_larger:nxx { vline } + { [#2](##1) / @vline-width } { \l__tblr_w_tl } + \dim_add:Nn \l__tblr_w_dim { \l__tblr_w_tl } + \dim_add:Nn \l__tblr_w_dim { \l__tblr_s_tl } + } + \dim_add:Nn \l__tblr_w_dim { - \l__tblr_s_tl } + } + \__tblr_prop_gput_if_larger:nxx { vline } + { [#2]/ @vline-width } { \dim_use:N \l__tblr_w_dim } + } + +%% Get text of a vline segment +%% #1: row number, #2: column number; #3: index number; #4: height; #5: depth +%% We put all code inside a group to avoid conflicts of local variables +\cs_new_protected:Npn \__tblr_get_vline_segment_child:nnnnn #1 #2 #3 #4 #5 + { + \group_begin: + \tl_set:Nx \l__tblr_w_tl + { \__tblr_prop_item:ne { vline } { [#1][#2](#3) / wd } } + \tl_if_empty:NF \l__tblr_w_tl { \dim_set:Nn \rulewidth { \l__tblr_w_tl } } + \tl_set:Nx \l__tblr_d_tl + { \__tblr_prop_item:ne { vline } { [#1][#2](#3) / @dash } } + \tl_set:Nx \l__tblr_a_tl { \tl_head:N \l__tblr_d_tl } + \tl_set:Nx \l__tblr_b_tl { \tl_tail:N \l__tblr_d_tl } + \exp_args:NV \tl_if_eq:NNTF \l__tblr_a_tl \@tblr@dash + { + \__tblr_get_vline_dash_style:N \l__tblr_b_tl + \xleaders \l__tblr_b_tl \vfil + } + { + \hbox_set:Nn \l__tblr_d_box { \l__tblr_b_tl } + \box_set_ht:Nn \l__tblr_d_box {#4} + \box_set_dp:Nn \l__tblr_d_box {#5} + \box_use:N \l__tblr_d_box + } + \group_end: + } +\cs_generate_variant:Nn \__tblr_get_vline_segment_child:nnnnn { nnnxx } + +%% Measure and update thickness of the hline +%% #1: row number, #2 column number +\cs_new_protected:Npn \__tblr_measure_and_update_hline_size:nn #1 #2 + { + \dim_zero:N \l__tblr_h_dim + \tl_set:Nx \l__tblr_n_tl + { \__tblr_prop_item:ne { hline } { [#1] / @hline-count } } + \tl_if_empty:NF \l__tblr_n_tl + { + \tl_set:Nx \l__tblr_s_tl + { \__tblr_prop_item:ne { hline } { [#1] / rulesep } } + \int_step_inline:nn { \l__tblr_n_tl } + { + \hbox_set_to_wd:Nnn \l__tblr_b_box {1pt} + { \__tblr_get_hline_segment_child:nnn {#1} {#2} {##1} } + \tl_set:Nx \l__tblr_h_tl + { + \dim_eval:n + { \box_ht:N \l__tblr_b_box + \box_dp:N \l__tblr_b_box } + } + \__tblr_prop_gput_if_larger:nxx { hline } + { [#1](##1) / @hline-height } { \l__tblr_h_tl } + \dim_add:Nn \l__tblr_h_dim { \l__tblr_h_tl } + \dim_add:Nn \l__tblr_h_dim { \l__tblr_s_tl } + } + \dim_add:Nn \l__tblr_h_dim { - \l__tblr_s_tl } + } + \__tblr_prop_gput_if_larger:nxx { hline } + { [#1] / @hline-height } { \dim_use:N \l__tblr_h_dim } + } + +%% Get text of a hline segment +%% #1: row number, #2: column number; #3: index number +\cs_new_protected:Npn \__tblr_get_hline_segment_child:nnn #1 #2 #3 + { + \group_begin: + \tl_set:Nx \l__tblr_w_tl + { \__tblr_prop_item:ne { hline } { [#1][#2](#3) / wd } } + \tl_if_empty:NF \l__tblr_w_tl { \dim_set:Nn \rulewidth { \l__tblr_w_tl } } + \tl_set:Nx \l__tblr_d_tl + { \__tblr_prop_item:ne { hline } { [#1][#2](#3) / @dash } } + \tl_set:Nx \l__tblr_a_tl { \tl_head:N \l__tblr_d_tl } + \tl_set:Nx \l__tblr_b_tl { \tl_tail:N \l__tblr_d_tl } + \exp_args:NV \tl_if_eq:NNTF \l__tblr_a_tl \@tblr@dash + { + \__tblr_get_hline_dash_style:N \l__tblr_b_tl + \xleaders \l__tblr_b_tl \hfil + } + { \l__tblr_b_tl \hfil } + \group_end: + } + +%% current cell alignments +\tl_new:N \g__tblr_cell_halign_tl +\tl_new:N \g__tblr_cell_valign_tl +\tl_new:N \g__tblr_cell_middle_tl + +\tl_const:Nn \c__tblr_valign_h_tl { h } +\tl_const:Nn \c__tblr_valign_m_tl { m } +\tl_const:Nn \c__tblr_valign_f_tl { f } +\tl_const:Nn \c__tblr_valign_t_tl { t } +\tl_const:Nn \c__tblr_valign_b_tl { b } + +\tl_const:Nn \c__tblr_middle_t_tl { t } +\tl_const:Nn \c__tblr_middle_m_tl { m } +\tl_const:Nn \c__tblr_middle_b_tl { b } + +%% #1: row number; #2: column number +\cs_new_protected:Npn \__tblr_get_cell_alignments:nn #1 #2 + { + \group_begin: + \tl_gset:Nx \g__tblr_cell_halign_tl + { \__tblr_prop_item:ne { cell } { [#1][#2] / halign } } + \tl_set:Nx \l__tblr_v_tl + { \__tblr_prop_item:ne { cell } { [#1][#2] / valign } } + \tl_case:NnF \l__tblr_v_tl + { + \c__tblr_valign_t_tl + { + \tl_gset:Nn \g__tblr_cell_valign_tl {m} + \tl_gset:Nn \g__tblr_cell_middle_tl {t} + } + \c__tblr_valign_m_tl + { + \tl_gset:Nn \g__tblr_cell_valign_tl {m} + \tl_gset:Nn \g__tblr_cell_middle_tl {m} + } + \c__tblr_valign_b_tl + { + \tl_gset:Nn \g__tblr_cell_valign_tl {m} + \tl_gset:Nn \g__tblr_cell_middle_tl {b} + } + } + { + \tl_gset_eq:NN \g__tblr_cell_valign_tl \l__tblr_v_tl + \tl_gclear:N \g__tblr_cell_middle_tl + } + \group_end: + } + +%% current cell dimensions +\dim_new:N \g__tblr_cell_wd_dim +\dim_new:N \g__tblr_cell_ht_dim +\dim_new:N \g__tblr_cell_head_dim +\dim_new:N \g__tblr_cell_foot_dim + +%% Calculate the width and height for every cell +\cs_new_protected:Npn \__tblr_calculate_cell_sizes: + { + %% You can use these two counters in cell text + \int_zero:N \c@rownum + \int_zero:N \c@colnum + \int_step_inline:nn { \c@rowcount } + { + \int_incr:N \c@rownum + \int_zero:N \c@colnum + \tl_set:Nx \l__tblr_h_tl + { \__tblr_prop_item:ne { row } { [\int_use:N \c@rownum] / height } } + \tl_if_empty:NF \l__tblr_h_tl + { + \__tblr_prop_gput:nxV { row } + { [\int_use:N \c@rownum] / @row-height } \l__tblr_h_tl + } + \int_step_inline:nn { \c@colcount } + { + \int_incr:N \c@colnum + \__tblr_measure_cell_update_sizes:nnNNNN + { \int_use:N \c@rownum } + { \int_use:N \c@colnum } + \g__tblr_cell_wd_dim + \g__tblr_cell_ht_dim + \g__tblr_cell_head_dim + \g__tblr_cell_foot_dim + } + } + } + +%% Measure and update natural dimensions of the row/column/cell +%% #1: row number; #2 column number; #3: width dimension; +%% #4: total height dimension; #5: head dimension; #6: foot dimension +\cs_new_protected:Npn \__tblr_measure_cell_update_sizes:nnNNNN #1 #2 #3 #4 #5 #6 + { + \__tblr_get_cell_alignments:nn {#1} {#2} + \hbox_set:Nn \l_tmpa_box { \__tblr_get_cell_text:nn {#1} {#2} } + \__tblr_update_cell_size:nnNNNN {#1} {#2} #3 #4 #5 #6 + \__tblr_update_row_size:nnNNN {#1} {#2} #4 #5 #6 + \__tblr_update_col_size:nN {#2} #3 + } + +%% #1: row number, #2: column number +\cs_new_protected:Npn \__tblr_get_cell_text:nn #1 #2 + { + \__tblr_prop_if_in:nxTF {cell} { [#1][#2] / omit } + { + \dim_gzero:N \g__tblr_cell_wd_dim + \dim_gzero:N \g__tblr_cell_ht_dim + \dim_gzero:N \g__tblr_cell_head_dim + \dim_gzero:N \g__tblr_cell_foot_dim + } + { \__tblr_get_cell_text_real:nn { #1 } { #2 } } + } + +%% Get cell text, #1: row number, #2: column number +%% If the width of the cell is not set, split it with \\ and compute the width +%% Therefore we always get a vbox for any cell +\cs_new_protected:Npn \__tblr_get_cell_text_real:nn #1 #2 + { + \group_begin: + \tl_set:Nx \l__tblr_c_tl { \__tblr_prop_item:ne {text} {[#1][#2]} } + \tl_set:Nx \l__tblr_w_tl + { \__tblr_prop_item:ne { cell } { [#1][#2] / width } } + \tl_if_empty:NT \l__tblr_w_tl + { + \__tblr_prop_if_in:nxF { cell } { [#1][#2] / colspan } + { + \tl_set:Nx \l__tblr_w_tl + { \__tblr_prop_item:ne { column } { [#2] / width } } + } + } + \tl_if_empty:NT \l__tblr_w_tl + { + \bool_if:NTF \l__tblr_math_mode_bool + { + \hbox_set:Nn \l_tmpa_box { $\l__tblr_c_tl$ } + \tl_set:Nx \l__tblr_w_tl { \box_wd:N \l_tmpa_box } + } + { + \tl_set_eq:NN \l_tmpb_tl \l__tblr_c_tl + \__tblr_insert_braces:N \l_tmpb_tl + \seq_set_split:NnV \l_tmpa_seq { \\ } \l_tmpb_tl + \tl_set:Nn \l__tblr_w_tl { 0pt } + \seq_map_variable:NNn \l_tmpa_seq \l_tmpa_tl + { + \__tblr_remove_braces:N \l_tmpa_tl + \hbox_set:Nn \l_tmpa_box { \l_tmpa_tl } + \tl_set:Nx \l__tblr_w_tl + { \dim_max:nn { \l__tblr_w_tl } { \box_wd:N \l_tmpa_box } } + } + } + } + \__tblr_get_vcell_and_sizes:NN \l__tblr_c_tl \l__tblr_w_tl + \group_end: + } + +%% #1: cell text; #2: box width +\cs_new_protected:Npn \__tblr_get_vcell_and_sizes:NN #1 #2 + { + \group_begin: + \vbox_set_top:Nn \l_tmpa_box { \__tblr_make_vcell_text:nN #1 #2 } + \vbox_set:Nn \l_tmpb_box { \__tblr_make_vcell_text:nN #1 #2 } + \dim_gset:Nn \g__tblr_cell_wd_dim { \box_wd:N \l_tmpb_box } + \dim_gset:Nn \g__tblr_cell_ht_dim + { \box_ht:N \l_tmpb_box + \box_dp:N \l_tmpb_box } + \dim_gset:Nn \g__tblr_cell_head_dim { \box_ht:N \l_tmpa_box } + \dim_gset:Nn \g__tblr_cell_foot_dim { \box_dp:N \l_tmpb_box } + \tl_case:Nn \g__tblr_cell_valign_tl + { + \c__tblr_valign_h_tl + { \box_use:N \l_tmpa_box } + \c__tblr_valign_m_tl + { + \tl_case:Nn \g__tblr_cell_middle_tl + { + \c__tblr_middle_t_tl + { \box_use:N \l_tmpa_box } + \c__tblr_middle_m_tl + { + \tl_set:Nx \l__tblr_b_tl + { + \dim_eval:n + { + ( \g__tblr_cell_ht_dim - \g__tblr_cell_head_dim + - \g__tblr_cell_foot_dim ) / 2 + } + } + \box_set_ht:Nn \l_tmpb_box + { \g__tblr_cell_head_dim + \l__tblr_b_tl } + \box_set_dp:Nn \l_tmpb_box + { \g__tblr_cell_foot_dim + \l__tblr_b_tl } + \box_use:N \l_tmpb_box + } + \c__tblr_middle_b_tl + { \box_use:N \l_tmpb_box } + } + } + \c__tblr_valign_f_tl + { \box_use:N \l_tmpb_box } + } + \group_end: + } + +\cs_new_eq:NN \__tlbr_halign_l: \raggedright +\cs_new_eq:NN \__tlbr_halign_c: \centering +\cs_new_eq:NN \__tlbr_halign_r: \raggedleft + +%% #1: cell text; #2: box width +\cs_new_protected:Npn \__tblr_make_vcell_text:nN #1 #2 + { + \dim_set:Nn \tex_hsize:D { #2 } + \@arrayparboxrestore + \cs:w __tlbr_halign_ \g__tblr_cell_halign_tl : \cs_end: + \mode_leave_vertical: + \box_use:N \l__tblr_strut_ht_box + \bool_if:NTF \l__tblr_math_mode_bool { $#1$ } { #1 } + \box_use:N \l__tblr_strut_dp_box + } + +%% #1: total height dimension; #2: head dimension; #3: foot dimension; +%% #4: tl for resulting upper size; #5: tl for resulting lower size + +\tl_new:N \l__tblr_middle_body_tl + +\cs_new_protected:Npn \__tblr_get_middle_cell_upper_lower:NNNNN #1 #2 #3 #4 #5 + { + \tl_case:Nn \g__tblr_cell_middle_tl + { + \c__tblr_middle_t_tl + { + \tl_set:Nx #4 { \dim_use:N #2 } + \tl_set:Nx #5 { \dim_eval:n { #1 - #2 } } + } + \c__tblr_middle_m_tl + { + \tl_set:Nx \l__tblr_middle_body_tl { \dim_eval:n { #1 - #2 - #3 } } + \tl_set:Nx #4 { \dim_eval:n { #2 + \l__tblr_middle_body_tl / 2 } } + \tl_set:Nx #5 { \dim_eval:n { #3 + \l__tblr_middle_body_tl / 2 } } + } + \c__tblr_middle_b_tl + { + \tl_set:Nx #4 { \dim_eval:n { #1 - #3 } } + \tl_set:Nx #5 { \dim_use:N #3 } + } + } + } + +%% Update natural dimensions of the cell +%% #1: row number; #2 column number; #3: width dimension; +%% #4: total height dimension; #5: head dimension; #6: foot dimension +\cs_new_protected:Npn \__tblr_update_cell_size:nnNNNN #1 #2 #3 #4 #5 #6 + { + \group_begin: + \tl_set:Nx \l__tblr_c_tl + { \__tblr_prop_item:ne {cell} { [#1][#2] / colspan } } + \tl_if_empty:NF \l__tblr_c_tl + { + \__tblr_prop_gput:nxx {cell} { [#1][#2] / @cell-width } { \dim_use:N #3 } + \dim_gzero:N #3 % don't affect column width + } + \tl_set:Nx \l__tblr_r_tl + { \__tblr_prop_item:ne {cell} { [#1][#2] / rowspan } } + \tl_if_empty:NF \l__tblr_r_tl + { + \tl_case:Nn \g__tblr_cell_valign_tl + { + \c__tblr_valign_h_tl + { + \tl_set:Nx \l__tblr_u_tl { \dim_use:N #5 } + \tl_set:Nx \l__tblr_v_tl { \dim_eval:n { #4 - #5 } } + %% Update the head size of the first span row here + \__tblr_prop_gput_if_larger:nxx { row } + { [#1] / @row-head } { \dim_use:N #5 } + } + \c__tblr_valign_f_tl + { + \tl_set:Nx \l__tblr_u_tl { \dim_eval:n { #4 - #6 } } + \tl_set:Nx \l__tblr_v_tl { \dim_use:N #6 } + %% Update the foot size of the last span row here + \__tblr_prop_gput_if_larger:nxx { row } + { [\int_eval:n { #1 + \l__tblr_r_tl - 1 }] / @row-foot } + { \dim_use:N #6 } + } + \c__tblr_valign_m_tl + { + \__tblr_get_middle_cell_upper_lower:NNNNN + #4 #5 #6 \l__tblr_u_tl \l__tblr_v_tl + } + } + \__tblr_prop_gput:nxV {cell} { [#1][#2] / @cell-height } \l__tblr_u_tl + \__tblr_prop_gput:nxV {cell} { [#1][#2] / @cell-depth } \l__tblr_v_tl + %% Don't affect row sizes + \dim_gzero:N #4 + \dim_gzero:N #5 + \dim_gzero:N #6 + } + \group_end: + } + + +%% Update size of the row. #1: row number; #2: column number; +%% #3: total height dimension; #4: head dimension; #5: foot dimension +\cs_new_protected:Npn \__tblr_update_row_size:nnNNN #1 #2 #3 #4 #5 + { + \group_begin: + %% Note that \l__tblr_h_tl may be empty + \tl_set:Nx \l__tblr_h_tl + { \__tblr_prop_item:ne { row } { [#1] / @row-height } } + \tl_if_eq:NNTF \g__tblr_cell_valign_tl \c__tblr_valign_m_tl + { + \tl_set:Nx \l__tblr_a_tl + { \__tblr_prop_item:ne { row } { [#1] / @row-upper } } + \tl_set:Nx \l__tblr_b_tl + { \__tblr_prop_item:ne { row } { [#1] / @row-lower } } + \__tblr_get_middle_cell_upper_lower:NNNNN + #3 #4 #5 \l__tblr_u_tl \l__tblr_v_tl + \dim_compare:nNnT { \l__tblr_u_tl } > { \l__tblr_a_tl } + { + \tl_set_eq:NN \l__tblr_a_tl \l__tblr_u_tl + \__tblr_prop_gput:nxV { row } + { [#1] / @row-upper } \l__tblr_a_tl + } + \dim_compare:nNnT { \l__tblr_v_tl } > { \l__tblr_b_tl } + { + \tl_set_eq:NN \l__tblr_b_tl \l__tblr_v_tl + \__tblr_prop_gput:nxV { row } + { [#1] / @row-lower } \l__tblr_b_tl + } + \dim_compare:nNnT + { \l__tblr_a_tl + \l__tblr_b_tl } > { \l__tblr_h_tl + 0pt } + { + \__tblr_prop_gput:nxx { row } { [#1] / @row-height } + { \dim_eval:n { \l__tblr_a_tl + \l__tblr_b_tl } } + } + } + { + \tl_set:Nx \l__tblr_e_tl + { \__tblr_prop_item:ne { row } { [#1] / @row-head } } + \tl_set:Nx \l__tblr_f_tl + { \__tblr_prop_item:ne { row } { [#1] / @row-foot } } + \dim_compare:nNnT {#4} > {\l__tblr_e_tl} + { + \__tblr_prop_gput:nxx { row } { [#1] / @row-head } { \dim_use:N #4 } + } + \dim_compare:nNnT {#5} > {\l__tblr_f_tl} + { + \__tblr_prop_gput:nxx { row } { [#1] / @row-foot } { \dim_use:N #5 } + } + \tl_set:Nx \l__tblr_x_tl { \dim_max:nn {#4} { \l__tblr_e_tl } } + \tl_set:Nx \l__tblr_y_tl { \dim_max:nn {#5} { \l__tblr_f_tl } } + \dim_compare:nNnT + { #3 - #4 - #5 } > { \l__tblr_h_tl - \l__tblr_x_tl - \l__tblr_y_tl } + { + \__tblr_prop_gput:nxx { row } { [#1] / @row-height } + { + \dim_eval:n + { + \l__tblr_x_tl + + \dim_use:N #3 - \dim_use:N #4 - \dim_use:N #5 + + \l__tblr_y_tl + } + } + } + } + \group_end: + } + + +%% Update size of the column. #1: column number; #2: width dimension + +\cs_new_protected:Npn \__tblr_update_col_size:nN #1 #2 + { + \tl_set:Nx \l_tmpb_tl + { \__tblr_prop_item:ne {column} { [#1] / @col-width } } + \bool_lazy_or:nnT + { \tl_if_empty_p:N \l_tmpb_tl } + { \dim_compare_p:nNn { \dim_use:N #2 } > { \l_tmpb_tl } } + { + \__tblr_prop_gput:nxx {column} { [#1] / @col-width } { \dim_use:N #2 } + } + } + +%%% -------------------------------------------------------- +%% \section{Calculate and Adjust Extendable Columns} +%%% -------------------------------------------------------- + +%% Compute column widths when there are some extendable columns + +\dim_new:N \l__column_target_dim +\prop_new:N \l__column_coefficient_prop +\prop_new:N \l__column_natural_width_prop +\prop_new:N \l__column_computed_width_prop + +\msg_new:nnn { tabularray } { table-width-too-small } + { Table ~ width ~ is ~ too ~ small, need ~ #1 ~ more! } + +\cs_new_protected:Npn \__tblr_compute_extendable_column_width: + { + \__tblr_collect_extendable_column_width: + \dim_compare:nNnTF { \l__column_target_dim } > { 0pt } + { + \prop_if_empty:NF \l__column_coefficient_prop + { \__tblr_adjust_extendable_column_width: } + } + { + \msg_warning:nnx { tabularray } { table-width-too-small } + { \dim_abs:n { \l__column_target_dim } } + } + } + +\cs_new_protected:Npn \__tblr_collect_extendable_column_width: + { + \tl_set:Nx \l_tmpa_tl { \__tblr_prop_item:nn {table} {width} } + \tl_if_empty:NTF \l_tmpa_tl + { \dim_set_eq:NN \l__column_target_dim \linewidth } + { \dim_set:Nn \l__column_target_dim { \l_tmpa_tl } } + \prop_clear:N \l__column_coefficient_prop + \prop_clear:N \l__column_natural_width_prop + \prop_clear:N \l__column_computed_width_prop + \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl + { + \tl_set:Nx \l__tblr_a_tl + { \__tblr_prop_item:ne {column} { [\l__tblr_j_tl] / width } } + \tl_set:Nx \l__tblr_b_tl + { \__tblr_prop_item:ne {column} { [\l__tblr_j_tl] / coefficient } } + \tl_set:Nx \l__tblr_c_tl + { \__tblr_prop_item:ne {column} { [\l__tblr_j_tl] / @col-width } } + \tl_if_empty:NTF \l__tblr_a_tl + { + \tl_if_empty:NTF \l__tblr_b_tl + { \dim_sub:Nn \l__column_target_dim { \l__tblr_c_tl } } + { + \prop_put:Nxx \l__column_coefficient_prop + { \l__tblr_j_tl } { \l__tblr_b_tl } + \prop_put:Nxn \l__column_computed_width_prop + { \l__tblr_j_tl } { 0pt } + \dim_compare:nNnF { \l__tblr_b_tl pt } > { 0pt } + { + \prop_put:Nxx \l__column_natural_width_prop + { \l__tblr_j_tl } { \l__tblr_c_tl } + } + } + } + { \dim_sub:Nn \l__column_target_dim { \l__tblr_a_tl } } + \tl_set:Nx \l__tblr_a_tl + { \__tblr_prop_item:ne {vline} { [\l__tblr_j_tl] / @vline-width } } + \tl_set:Nx \l__tblr_b_tl + { \__tblr_prop_item:ne {column} { [\l__tblr_j_tl] / leftsep} } + \tl_set:Nx \l__tblr_c_tl + { \__tblr_prop_item:ne {column} { [\l__tblr_j_tl] / rightsep } } + \dim_set:Nn \l__column_target_dim + { \l__column_target_dim - \l__tblr_a_tl - \l__tblr_b_tl - \l__tblr_c_tl } + } + \tl_set:Nx \l__tblr_a_tl + { + \__tblr_prop_item:ne {vline} + { [\int_eval:n {\c@colcount + 1}] / @vline-width } + } + \tl_if_empty:NF \l__tblr_a_tl + { \dim_sub:Nn \l__column_target_dim { \l__tblr_a_tl } } + \LogTblrTracing { target } + } + +%% If all columns have negative coefficients and small natural widths, +%% \l__column_coefficient_prop will be empty after one or more rounds +\cs_new_protected:Npn \__tblr_adjust_extendable_column_width: + { + \bool_while_do:nn + { \dim_compare_p:nNn { \l__column_target_dim } > { \hfuzz } } + { + \prop_if_empty:NTF \l__column_coefficient_prop + { \__tblr_adjust_extendable_column_width_negative: } + { \__tblr_adjust_extendable_column_width_once: } + } + \prop_map_inline:Nn \l__column_computed_width_prop + { + \__tblr_prop_gput:nnx {column} { [##1] / width } { ##2 } + \__tblr_prop_gput:nnn {column} { [##1] / @col-width } { 0pt } + } + \__tblr_calculate_cell_sizes: + } + +%% We use dimen register, since the coefficient may be a decimal number +\cs_new_protected:Npn \__tblr_adjust_extendable_column_width_once: + { + \dim_zero:N \l_tmpa_dim + \prop_map_inline:Nn \l__column_coefficient_prop + { + \dim_add:Nn \l_tmpa_dim { \dim_abs:n { ##2 pt } } + } + \tl_set:Nx \l__tblr_w_tl + { \dim_ratio:nn { \l__column_target_dim } { \l_tmpa_dim } } + \dim_zero:N \l__column_target_dim + \prop_map_inline:Nn \l__column_coefficient_prop + { + \tl_set:Nx \l__tblr_a_tl + { \dim_eval:n { \dim_abs:n { ##2 pt } * \l__tblr_w_tl } } + \dim_compare:nNnTF { ##2 pt } > { 0pt } + { + \__tblr_add_dimen_value:Nnn + \l__column_computed_width_prop { ##1 } { \l__tblr_a_tl } + } + { + \tl_set:Nx \l__tblr_b_tl + { \prop_item:Nn \l__column_natural_width_prop { ##1 } } + \tl_set:Nx \l__tblr_c_tl + { \prop_item:Nn \l__column_computed_width_prop { ##1 } } + \dim_compare:nNnTF { \l__tblr_a_tl + \l__tblr_c_tl } > { \l__tblr_b_tl } + { + \prop_put:Nnx \l__column_computed_width_prop + { ##1 } { \l__tblr_b_tl } + \dim_add:Nn \l__column_target_dim + { \l__tblr_a_tl + \l__tblr_c_tl - \l__tblr_b_tl } + \prop_remove:Nn \l__column_coefficient_prop { ##1 } + } + { + \__tblr_add_dimen_value:Nnn + \l__column_computed_width_prop { ##1 } { \l__tblr_a_tl } + } + } + } + \LogTblrTracing { target } + } + +\cs_new_protected:Npn \__tblr_adjust_extendable_column_width_negative: + { + \dim_zero:N \l_tmpa_dim + \prop_map_inline:Nn \l__column_natural_width_prop + { \dim_add:Nn \l_tmpa_dim { ##2 } } + \tl_set:Nx \l_tmpa_tl + { \dim_ratio:nn { \l__column_target_dim } { \l_tmpa_dim } } + \dim_zero:N \l__column_target_dim + \prop_map_inline:Nn \l__column_natural_width_prop + { + \tl_set:Nx \l_tmpb_tl { \dim_eval:n { ##2 * \l_tmpa_tl } } + \__tblr_add_dimen_value:Nnn + \l__column_computed_width_prop { ##1 } { \l_tmpb_tl } + } + \LogTblrTracing { target } + } + +%%% -------------------------------------------------------- +%% \section{Calculate and Adjust Multispan Cells} +%%% -------------------------------------------------------- + +%% Compute and adjust widths when there are some span cells. +%% By default, we will compute column widths from span widths; +%% but if we set table option "hspan = minimal", +%% we will compute span widths from column widths. + +\cs_new_protected:Npn \__tblr_adjust_sizes_for_span_cells: + { + \__tblr_prop_if_in:nnT {table} {colspan} + { + \__tblr_collect_column_widths_skips: + \str_if_eq:xnTF + { \__tblr_prop_item:ne {table} {hspan} } {minimal} + { + \__tblr_set_span_widths_from_column_widths: + } + { + \__tblr_collect_span_widths: + \__tblr_set_column_widths_from_span_widths: + } + \LogTblrTracing {column} + \__tblr_calculate_cell_sizes: + } + \__tblr_prop_if_in:nnT {table} {rowspan} + { + \__tblr_collect_row_heights_skips: + \__tblr_collect_span_heights: + \__tblr_set_row_heights_from_span_heights: + \LogTblrTracing {row} + } + } + +\prop_new:N \l__tblr_col_item_skip_size_prop +\prop_new:N \l__tblr_col_span_size_prop +\prop_new:N \l__tblr_row_item_skip_size_prop +\prop_new:N \l__tblr_row_span_size_prop + +\cs_new_protected:Npn \__tblr_collect_column_widths_skips: + { + \prop_clear:N \l__tblr_col_item_skip_size_prop + \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl + { + \int_compare:nNnTF { \l__tblr_j_tl } > { 1 } + { + \prop_put:Nxx \l__tblr_col_item_skip_size_prop { skip[\l__tblr_j_tl] } + { + \dim_eval:n + { + \__tblr_prop_item:ne {column} + { [\int_eval:n { \l__tblr_j_tl - 1 }] / rightsep } + + + \__tblr_prop_item:ne {vline} + { [\l__tblr_j_tl] / @vline-width } + + + \__tblr_prop_item:ne {column} + { [\l__tblr_j_tl] / leftsep} + } + } + } + { + \prop_put:Nxn \l__tblr_col_item_skip_size_prop { skip[\l__tblr_j_tl] } + { 0pt } + } + \prop_put:Nxx \l__tblr_col_item_skip_size_prop { item[\l__tblr_j_tl] } + { \__tblr_prop_item:ne {column} { [\l__tblr_j_tl] / @col-width } } + } + \__tblr_do_if_tracing:nn { cellspan } + { \prop_log:N \l__tblr_col_item_skip_size_prop } + } + +\cs_new_protected:Npn \__tblr_collect_row_heights_skips: + { + \prop_clear:N \l__tblr_row_item_skip_size_prop + \int_step_variable:nNn { \c@rowcount } \l__tblr_i_tl + { + \int_compare:nNnTF { \l__tblr_i_tl } > { 1 } + { + \prop_put:Nxx \l__tblr_row_item_skip_size_prop { skip[\l__tblr_i_tl] } + { + \dim_eval:n + { + \__tblr_prop_item:ne {row} + { [\int_eval:n {\l__tblr_i_tl - 1}] / belowsep } + + + \__tblr_prop_item:ne {hline} + { [\l__tblr_i_tl] / @hline-height } + + + \__tblr_prop_item:ne {row} + { [\l__tblr_i_tl] / abovesep } + } + } + } + { + \prop_put:Nxn \l__tblr_row_item_skip_size_prop { skip[\l__tblr_i_tl] } + { 0pt } + } + \__tblr_collect_one_row_height:NN \l__tblr_i_tl \l__tblr_h_tl + \prop_put:Nxx \l__tblr_row_item_skip_size_prop + { item[\l__tblr_i_tl] } { \l__tblr_h_tl } + } + \__tblr_do_if_tracing:nn { cellspan } + { \prop_log:N \l__tblr_row_item_skip_size_prop } + } + +%% #1: row number; #2: tl with result +\cs_new_protected:Npn \__tblr_collect_one_row_height:NN #1 #2 + { + \tl_set:Nx #2 { \__tblr_prop_item:ne { row } { [#1] / @row-height } } + } + +\cs_new_protected:Npn \__tblr_collect_span_widths: + { + \prop_clear:N \l__tblr_col_span_size_prop + \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl + { + \int_step_variable:nNn { \c@rowcount } \l__tblr_i_tl + { + \tl_set:Nx \l__tblr_a_tl + { + \__tblr_prop_item:ne {cell} + { [\l__tblr_i_tl][\l__tblr_j_tl] / colspan } + } + \tl_if_empty:NF \l__tblr_a_tl + { + \__tblr_put_if_larger:Nxx \l__tblr_col_span_size_prop + { + ( \l__tblr_j_tl - + \int_eval:n {\l__tblr_j_tl + \l__tblr_a_tl - 1} ) + } + { + \__tblr_prop_item:ne {cell} + { [\l__tblr_i_tl][\l__tblr_j_tl] / @cell-width } + } + } + } + } + \__tblr_do_if_tracing:nn { cellspan } + { \prop_log:N \l__tblr_col_span_size_prop } + } + +\prop_new:N \l__tblr_row_span_to_row_prop + +\cs_new_protected:Npn \__tblr_collect_span_heights: + { + \prop_clear:N \l__tblr_row_span_to_row_prop + \prop_clear:N \l__tblr_row_span_size_prop + \int_step_variable:nNn { \c@rowcount } \l__tblr_i_tl + { + \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl + { + \tl_set:Nx \l__tblr_a_tl + { + \__tblr_prop_item:ne {cell} + { [\l__tblr_i_tl][\l__tblr_j_tl] / rowspan } + } + \tl_if_empty:NF \l__tblr_a_tl + { + \tl_set:Nx \l__tblr_v_tl + { + \__tblr_prop_item:ne {cell} + { [\l__tblr_i_tl][\l__tblr_j_tl] / valign } + } + \tl_if_eq:NnT \l__tblr_v_tl { h } + { + \tl_set:Nx \l__tblr_h_tl + { + \__tblr_prop_item:ne {row} + { [\l__tblr_i_tl] / @row-head } + } + \__tblr_prop_gput:nxV {cell} + { [\l__tblr_i_tl][\l__tblr_j_tl] / @cell-height } + \l__tblr_h_tl + } + \tl_if_eq:NnT \l__tblr_v_tl { f } + { + \tl_set:Nx \l__tblr_d_tl + { + \__tblr_prop_item:ne {row} + { + [\int_eval:n {\l__tblr_i_tl + \l__tblr_a_tl - 1}] + / @row-foot + } + } + \__tblr_prop_gput:nxV {cell} + { [\l__tblr_i_tl][\l__tblr_j_tl] / @cell-depth } + \l__tblr_d_tl + } + \__tblr_put_if_larger:Nxx \l__tblr_row_span_size_prop + { + ( \l__tblr_i_tl - + \int_eval:n {\l__tblr_i_tl + \l__tblr_a_tl - 1} ) + } + { + \dim_eval:n + { + \__tblr_prop_item:ne {cell} + { [\l__tblr_i_tl][\l__tblr_j_tl] / @cell-height } + + + \__tblr_prop_item:ne {cell} + { [\l__tblr_i_tl][\l__tblr_j_tl] / @cell-depth } + } + } + \prop_put:Nxx \l__tblr_row_span_to_row_prop + { [\l__tblr_i_tl][\l__tblr_j_tl] } + { \int_eval:n {\l__tblr_i_tl + \l__tblr_a_tl - 1} } + } + } + } + \__tblr_do_if_tracing:nn { cellspan } + { + \prop_log:N \l__tblr_row_span_to_row_prop + \prop_log:N \l__tblr_row_span_size_prop + } + } + +%% Compute and set column widths from span widths +\cs_new_protected:Npn \__tblr_set_column_widths_from_span_widths: + { + \__tblr_calc_item_sizes_from_span_sizes:xNN + { \int_use:N \c@colcount } + \l__tblr_col_item_skip_size_prop + \l__tblr_col_span_size_prop + \__tblr_set_all_column_widths: + } + +%% Compute and set row heights from span heights +\cs_new_protected:Npn \__tblr_set_row_heights_from_span_heights: + { + \__tblr_calc_item_sizes_from_span_sizes:xNN + { \int_use:N \c@rowcount } + \l__tblr_row_item_skip_size_prop + \l__tblr_row_span_size_prop + \__tblr_set_all_row_heights: + } + +%% See page 245 in Chapter 22 of TeXbook +%% #1: total number of items +%% #2: prop list with item sizes and skip sizes; #3: prop list with span sizes +\cs_new_protected:Npn \__tblr_calc_item_sizes_from_span_sizes:nNN #1 #2 #3 + { + \int_step_variable:nNn { #1 } \l__tblr_j_tl + { + \dim_set:Nn \l__tblr_w_dim + { + \prop_item:Ne #2 { item[\l__tblr_j_tl] } + } + \int_step_variable:nNn { \l__tblr_j_tl - 1 } \l__tblr_i_tl + { + \tl_set:Nx \l__tblr_a_tl + { \prop_item:Ne #3 { (\l__tblr_i_tl-\l__tblr_j_tl) } } + \tl_if_empty:NF \l__tblr_a_tl + { + \int_step_variable:nnNn + { \l__tblr_i_tl } { \l__tblr_j_tl - 1 } \l__tblr_k_tl + { + \__tblr_do_if_tracing:nn { cellspan } + { + \tl_log:x + { \l__tblr_j_tl : \l__tblr_i_tl -> \l__tblr_k_tl } + } + \tl_set:Nx \l_tmpa_tl + { + \prop_item:Ne #2 { itemskip[\l__tblr_k_tl] } + } + \tl_set:Nx \l__tblr_a_tl + { \dim_eval:n { \l__tblr_a_tl - \l_tmpa_tl } } + } + \dim_compare:nNnT { \l__tblr_a_tl } > { \l__tblr_w_dim } + { + \dim_set:Nn \l__tblr_w_dim { \l__tblr_a_tl } + } + } + } + \prop_put:Nxx #2 + { item[\l__tblr_j_tl] } { \dim_use:N \l__tblr_w_dim } + \int_compare:nNnT { \l__tblr_j_tl } < { #1 } + { + \tl_set:Nx \l_tmpb_tl + { + \prop_item:Ne #2 + { skip[\int_eval:n { \l__tblr_j_tl + 1} ] } + } + \dim_add:Nn \l__tblr_w_dim { \l_tmpb_tl } + \prop_put:Nxx #2 + { itemskip[\l__tblr_j_tl] } { \dim_use:N \l__tblr_w_dim } + } + } + \__tblr_do_if_tracing:nn { cellspan } { \prop_log:N #2 } + } +\cs_generate_variant:Nn \__tblr_calc_item_sizes_from_span_sizes:nNN { x } + +\cs_new_protected:Npn \__tblr_set_all_column_widths: + { + \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl + { + \__tblr_prop_gput:nxx {column} + { [\l__tblr_j_tl] / @col-width } + { \prop_item:Ne \l__tblr_col_item_skip_size_prop { item[\l__tblr_j_tl] } } + } + } + +\cs_new_protected:Npn \__tblr_set_all_row_heights: + { + \int_step_variable:nNn { \c@rowcount } \l__tblr_i_tl + { + \tl_set:Nx \l__tblr_h_tl + { + \__tblr_prop_item:ne {row} { [\l__tblr_i_tl] / @row-head } + } + \tl_set:Nx \l__tblr_d_tl + { + \__tblr_prop_item:ne {row} { [\l__tblr_i_tl] / @row-foot } + } + \tl_set:Nx \l__tblr_a_tl + { + \prop_item:Ne \l__tblr_row_item_skip_size_prop { item[\l__tblr_i_tl] } + } + \__tblr_collect_one_row_height:NN \l__tblr_i_tl \l__tblr_t_tl + \__tblr_prop_gput:nxx {row} + { [\l__tblr_i_tl] / @row-height } { \l__tblr_a_tl } + } + } + +\cs_new_protected:Npn \__tblr_get_span_key_row_col:w [#1][#2] + { + \tl_set:Nn \l__tblr_i_tl {#1} + \tl_set:Nn \l__tblr_j_tl {#2} + } + +%% Compute and set span widths from column widths +\cs_new_protected:Npn \__tblr_set_span_widths_from_column_widths: + { + \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl + { + \int_step_variable:nNn { \c@rowcount } \l__tblr_i_tl + { + \tl_set:Nx \l__tblr_a_tl + { + \__tblr_prop_item:ne {cell} + { [\l__tblr_i_tl][\l__tblr_j_tl] / colspan } + } + \tl_if_empty:NF \l__tblr_a_tl + { + \__tblr_calc_span_widths:xxN + { \l__tblr_j_tl } + { \int_eval:n { \l__tblr_j_tl + \l__tblr_a_tl - 1 } } + \l__tblr_w_dim + \__tblr_prop_gput:nxx {cell} + { [\l__tblr_i_tl][\l__tblr_j_tl] / width } + { \dim_use:N \l__tblr_w_dim } + } + } + } + } + +%% Cell is spanned from col #1 to col #2, #3 is the return dim +\cs_new_protected:Npn \__tblr_calc_span_widths:nnN #1 #2 #3 + { + \dim_zero:N #3 + \int_step_inline:nnn { #1 } { #2 } + { + \tl_set:Nx \l_tmpa_tl + { \prop_item:Ne \l__tblr_col_item_skip_size_prop { skip[##1] } } + \tl_set:Nx \l_tmpb_tl + { \prop_item:Ne \l__tblr_col_item_skip_size_prop { item[##1] } } + \dim_add:Nn #3 { \dim_eval:n { \l_tmpa_tl + \l_tmpb_tl } } + } + } +\cs_generate_variant:Nn \__tblr_calc_span_widths:nnN { xxN } + +%%% -------------------------------------------------------- +%% \section{Build the Whole Table} +%%% -------------------------------------------------------- + +\tl_new:N \__tlbr_vbox_align_tl +\tl_const:Nn \__tlbr_vbox_t_tl {t} +\tl_const:Nn \__tlbr_vbox_m_tl {m} +\tl_const:Nn \__tlbr_vbox_c_tl {c} +\tl_const:Nn \__tlbr_vbox_b_tl {b} + +\box_new:N \l__tblr_table_box + +\cs_new_protected:Npn \__tblr_build_whole:n #1 + { + \vbox_set:Nn \l__tblr_table_box + { + \int_step_variable:nNn { \c@rowcount } \l__tblr_i_tl + { + \hbox:n { \__tblr_build_hline:V \l__tblr_i_tl } + \hrule height ~ 0pt % remove lineskip between hlines and rows + \hbox:n { \__tblr_build_row:N \l__tblr_i_tl } + \hrule height ~ 0pt + } + \hbox:n { \__tblr_build_hline:n { \int_eval:n {\c@rowcount + 1} } } + } + \__tblr_valign_whole:Nn \l__tblr_table_box #1 + } + +\cs_new_protected:Npn \__tblr_valign_whole:Nn #1 #2 + { + \group_begin: + \tl_set:Nn \__tlbr_vbox_align_tl {#2} + \dim_set:Nn \l__tblr_t_dim { \box_ht:N #1 + \box_dp:N #1 } + \tl_case:NnF \__tlbr_vbox_align_tl + { + \__tlbr_vbox_m_tl + { \__tblr_valign_whole_middle:N #1 } + \__tlbr_vbox_c_tl + { \__tblr_valign_whole_middle:N #1 } + \__tlbr_vbox_t_tl + { \__tblr_valign_whole_top:N #1 } + \__tlbr_vbox_b_tl + { \__tblr_valign_whole_bottom:N #1 } + } + { \__tblr_valign_whole_middle:N #1 } + \group_end: + } + +\cs_new_protected:Npn \__tblr_valign_whole_middle:N #1 + { + \hbox:n { $ \m@th \tex_vcenter:D { \vbox_unpack_drop:N #1 } $ } + } + +\cs_new_protected:Npn \__tblr_valign_whole_top:N #1 + { + \tl_set:Nx \l__tblr_a_tl + { \__tblr_prop_item:ne { hline } { [1] / @hline-height } } + %% Note that \l__tblr_b_tl may be empty + \tl_set:Nx \l__tblr_b_tl + { \__tblr_prop_item:ne { table } { baseline } } + \bool_lazy_or:nnTF + { \dim_compare_p:nNn { \l__tblr_a_tl } = { 0pt } } + { \int_compare_p:nNn { \l__tblr_b_tl + 0 } = { 1 } } + { + \dim_set:Nn \l__tblr_h_dim + { + \__tblr_prop_item:ne { row } { [1] / abovesep } + + + ( \__tblr_prop_item:ne { row } { [1] / @row-height } + + + \__tblr_prop_item:ne { row } { [1] / @row-upper } + - + \__tblr_prop_item:ne { row } { [1] / @row-lower } + ) / 2 + } + \dim_set:Nn \l__tblr_d_dim { \l__tblr_t_dim - \l__tblr_h_dim } + } + { + \dim_set:Nn \l__tblr_h_dim { 0pt } + \dim_set_eq:NN \l__tblr_d_dim \l__tblr_t_dim + } + \box_set_ht:Nn #1 { \l__tblr_h_dim } + \box_set_dp:Nn #1 { \l__tblr_d_dim } + \box_use_drop:N #1 + } + +\cs_new_protected:Npn \__tblr_valign_whole_bottom:N #1 + { + \tl_set:Nx \l__tblr_a_tl + { + \__tblr_prop_item:ne { hline } + { [\int_eval:n {\c@rowcount + 1}] / @hline-height } + } + %% Note that \l__tblr_b_tl may be empty + \tl_set:Nx \l__tblr_b_tl + { \__tblr_prop_item:ne { table } { baseline } } + \bool_lazy_or:nnTF + { \dim_compare_p:nNn { \l__tblr_a_tl } = { 0pt } } + { \int_compare_p:nNn { \l__tblr_b_tl + 0 } = { \c@rowcount } } + { + \dim_set:Nn \l__tblr_d_dim + { + ( \__tblr_prop_item:ne { row } + { [\int_use:N \c@rowcount] / @row-height } + - + \__tblr_prop_item:ne { row } + { [\int_use:N \c@rowcount] / @row-upper } + + + \__tblr_prop_item:ne { row } + { [\int_use:N \c@rowcount] / @row-lower } + ) / 2 + + + \__tblr_prop_item:ne { row } { [1] / belowsep } + } + \dim_set:Nn \l__tblr_h_dim { \l__tblr_t_dim - \l__tblr_d_dim } + } + { + \dim_set:Nn \l__tblr_d_dim { 0pt } + \dim_set_eq:NN \l__tblr_h_dim \l__tblr_t_dim + } + \box_set_ht:Nn #1 { \l__tblr_h_dim } + \box_set_dp:Nn #1 { \l__tblr_d_dim } + \box_use_drop:N #1 + } + +\dim_new:N \l__tblr_col_o_wd_dim +\dim_new:N \l__tblr_col_b_wd_dim + +%% Build hline. #1: row number +\cs_new_protected:Npn \__tblr_build_hline:n #1 + { + \int_step_inline:nn { \c@colcount } + { \__tblr_build_hline_segment:nn { #1 } { ##1 } } + } +\cs_generate_variant:Nn \__tblr_build_hline:n { x, V } + +%% #1: row number, #2: column number +\cs_new_protected:Npn \__tblr_build_hline_segment:nn #1 #2 + { + \tl_set:Nx \l__tblr_n_tl + { \__tblr_prop_item:ne { hline } { [#1] / @hline-count } } + \tl_set:Nx \l__tblr_o_tl + { \__tblr_prop_item:ne { hline } { [#1][#2] / omit } } + \__tblr_get_col_outer_width_border_width:nNN {#2} + \l__tblr_col_o_wd_dim \l__tblr_col_b_wd_dim + \tl_if_empty:NTF \l__tblr_o_tl + { + \tl_if_empty:NF \l__tblr_n_tl + { \__tblr_build_hline_segment_real:nn {#1} {#2} } + } + { \__tblr_build_hline_segment_omit:nn {#1} {#2} } + } + +%% #1: row number, #2: column number +\cs_new_protected:Npn \__tblr_build_hline_segment_omit:nn #1 #2 + { + \skip_horizontal:n { \l__tblr_col_o_wd_dim - \l__tblr_col_b_wd_dim } + } + +%% #1: row number, #2: column number +\cs_new_protected:Npn \__tblr_build_hline_segment_real:nn #1 #2 + { + \tl_set:Nx \l__tblr_s_tl + { \__tblr_prop_item:ne { hline } { [#1] / rulesep } } + \vbox_set:Nn \l__tblr_c_box + { + %% add an empty hbox to support vbox width + \tex_hbox:D to \l__tblr_col_o_wd_dim {} + \int_step_inline:nn { \l__tblr_n_tl } + { + \tl_set:Nx \l__tblr_h_tl + { \__tblr_prop_item:ne { hline } { [#1](##1) / @hline-height } } + \hrule height ~ 0pt % remove lineskip + \hbox_set_to_wd:Nnn \l__tblr_b_box { \l__tblr_col_o_wd_dim } + { + \tl_set:Nx \l__tblr_f_tl + { \__tblr_prop_item:ne { hline } { [#1][#2](##1) / fg } } + \tl_if_empty:NF \l__tblr_f_tl { \color{\l__tblr_f_tl} } + \__tblr_get_hline_segment_child:nnn {#1} {#2} {##1} + } + \box_set_ht:Nn \l__tblr_b_box { \l__tblr_h_tl } + \box_set_dp:Nn \l__tblr_b_box { 0pt } + \box_use:N \l__tblr_b_box + \skip_vertical:n { \l__tblr_s_tl } + } + \skip_vertical:n { - \l__tblr_s_tl } + } + \box_use:N \l__tblr_c_box + \skip_horizontal:n { - \l__tblr_col_b_wd_dim } + } + +%% Read from table specifications and calculate the widths of row and border +%% column outer width = content width + colsep width + border width +%% #1: the column number, #2: outer width, #3: border width +\cs_new_protected:Npn \__tblr_get_col_outer_width_border_width:nNN #1 #2 #3 + { + \dim_set:Nn #3 + { \__tblr_prop_item:ne {vline} { [\int_eval:n {#1 + 1}] / @vline-width } } + \dim_set:Nn #2 + { + \__tblr_prop_item:ne {vline} { [#1] / @vline-width } + + + \__tblr_prop_item:ne {column} { [#1] / leftsep } + + + \__tblr_prop_item:ne {column} { [#1] / @col-width } + + + \__tblr_prop_item:ne {column} { [#1] / rightsep } + + + #3 + } + } + +\dim_new:N \l__tblr_row_ht_dim +\dim_new:N \l__tblr_row_dp_dim +\dim_new:N \l__tblr_row_abovesep_dim +\dim_new:N \l__tblr_row_belowsep_dim + +%% Build current row, #1: row number +\cs_new_protected:Npn \__tblr_build_row:N #1 + { + \__tblr_get_row_inner_height_depth:VNNNN #1 + \l__tblr_row_ht_dim \l__tblr_row_dp_dim + \l__tblr_row_abovesep_dim \l__tblr_row_belowsep_dim + \vrule width ~ 0pt ~ height ~ \l__tblr_row_ht_dim ~ depth ~ \l__tblr_row_dp_dim + \int_step_variable:nNn { \c@colcount } \l__tblr_j_tl + { + \__tblr_build_vline_segment:nn {#1} { \l__tblr_j_tl } + \__tblr_build_cell:NN #1 \l__tblr_j_tl + } + \__tblr_build_vline_segment:nn {#1} { \int_eval:n {\c@colcount + 1} } + } + +%% Read from table specifications and calculate inner height/depth of the row +%% inner height = abovesep + above vspace + row upper +%% inner depth = row lower + below vspace + belowsep +%% #1: the row number; #2: resulting inner height; #3: resulting inner depth; +%% #4: restulting abovesep; #5: restulting belowsep. + +\dim_new:N \l__row_upper_dim +\dim_new:N \l__row_lower_dim +\dim_new:N \l__row_vpace_dim + +\cs_new_protected:Npn \__tblr_get_row_inner_height_depth:nNNNN #1 #2 #3 #4 #5 + { + \dim_set:Nn #4 + { \__tblr_prop_item:ne { row } { [#1] / abovesep } } + \dim_set:Nn #5 + { \__tblr_prop_item:ne { row } { [#1] / belowsep } } + \dim_set:Nn \l__row_upper_dim + { \__tblr_prop_item:ne { row } { [#1] / @row-upper } } + \dim_set:Nn \l__row_lower_dim + { \__tblr_prop_item:ne { row } { [#1] / @row-lower } } + \dim_set:Nn \l__row_vpace_dim + { + ( \__tblr_prop_item:ne { row } { [#1] / @row-height } + - \l__row_upper_dim - \l__row_lower_dim ) / 2 + } + \dim_set:Nn #2 { #4 + \l__row_vpace_dim + \l__row_upper_dim } + \dim_set:Nn #3 { \l__row_lower_dim + \l__row_vpace_dim + #5 } + } +\cs_generate_variant:Nn \__tblr_get_row_inner_height_depth:nNNNN { V } + +%% #1: row number, #2: column number +\cs_new_protected:Npn \__tblr_build_vline_segment:nn #1 #2 + { + \tl_set:Nx \l__tblr_n_tl + { \__tblr_prop_item:ne { vline } { [#2] / @vline-count } } + \tl_set:Nx \l__tblr_o_tl + { \__tblr_prop_item:ne { vline } { [#1][#2] / omit } } + \tl_if_empty:NTF \l__tblr_o_tl + { + \tl_if_empty:NF \l__tblr_n_tl + { \__tblr_build_vline_segment_real:nn {#1} {#2} } + } + { \__tblr_build_vline_segment_omit:nn {#1} {#2} } + } + +%% #1: row number, #2: column number +\cs_new_protected:Npn \__tblr_build_vline_segment_omit:nn #1 #2 + { + \tl_set:Nx \l__tblr_w_tl + { \__tblr_prop_item:ne { vline } { [#2] / @vline-width } } + \skip_horizontal:N \l__tblr_w_tl + } + +%% #1: row number, #2: column number +%% We make every vline segment intersect with first hline below +%% to remove gaps in vlines around multirow cells +\cs_new_protected:Npn \__tblr_build_vline_segment_real:nn #1 #2 + { + \tl_set:Nx \l__tblr_s_tl + { \__tblr_prop_item:ne { vline } { [#2] / rulesep } } + \tl_set:Nx \l__tblr_b_tl + { + \__tblr_prop_item:ne { hline } + { [\int_eval:n{#1 + 1}](1) / @hline-height } + } + \tl_if_empty:NT \l__tblr_b_tl { \tl_set:Nn \l__tblr_b_tl { 0pt } } + \hbox_set:Nn \l__tblr_a_box + { + \int_step_inline:nn { \l__tblr_n_tl } + { + \tl_set:Nx \l__tblr_w_tl + { \__tblr_prop_item:ne { vline } { [#2](##1) / @vline-width } } + \vbox_set_to_ht:Nnn \l__tblr_b_box + { \dim_eval:n { \l__tblr_row_ht_dim + \l__tblr_row_dp_dim } } + { + \tl_set:Nx \l__tblr_f_tl + { \__tblr_prop_item:ne { vline } { [#1][#2](##1) / fg } } + \tl_if_empty:NF \l__tblr_f_tl { \color{\l__tblr_f_tl} } + \__tblr_get_vline_segment_child:nnnxx {#1} {#2} {##1} + { \dim_eval:n { \l__tblr_row_ht_dim } } + { \dim_eval:n { \l__tblr_row_dp_dim + \l__tblr_b_tl } } + \skip_vertical:n { - \l__tblr_b_tl } + } + \box_set_wd:Nn \l__tblr_b_box { \l__tblr_w_tl } + \box_use:N \l__tblr_b_box + \skip_horizontal:n { \l__tblr_s_tl } + } + \skip_horizontal:n { - \l__tblr_s_tl } + } + \vbox_set:Nn \l__tblr_c_box { \box_use:N \l__tblr_a_box } + \box_set_ht:Nn \l__tblr_c_box { \dim_use:N \l__tblr_row_ht_dim } + \box_set_dp:Nn \l__tblr_c_box { \dim_use:N \l__tblr_row_dp_dim } + \box_use:N \l__tblr_c_box + } + +\tl_new:N \l__tblr_cell_rowspan_tl +\tl_new:N \l__tblr_cell_colspan_tl +\dim_new:N \l__tblr_cell_wd_dim +\dim_new:N \l__tblr_cell_ht_dim + +\cs_new_protected:Npn \__tblr_build_cell:NN #1 #2 + { + \int_set:Nn \c@rownum {#1} + \int_set:Nn \c@colnum {#2} + \group_begin: + \tl_set:Nx \l__tblr_w_tl + { \__tblr_prop_item:ne { column } { [#2] / @col-width } } + \tl_set:Nx \l__tblr_h_tl + { \__tblr_prop_item:ne { row } { [#1] / @row-height } } + \tl_set:Nx \l__tblr_x_tl + { \__tblr_prop_item:ne { column } { [#2] / leftsep} } + \tl_set:Nx \l__tblr_y_tl + { \__tblr_prop_item:ne { column } { [#2] / rightsep } } + \tl_set:Nx \l__tblr_cell_colspan_tl + { \__tblr_prop_item:ne { cell } { [#1][#2] / colspan } } + \tl_if_empty:NTF \l__tblr_cell_colspan_tl + { \dim_set:Nn \l__tblr_cell_wd_dim { \l__tblr_w_tl } } + { + \__tblr_get_span_horizontal_sizes:NNNNN #1 #2 + \l__tblr_o_dim \l__tblr_cell_wd_dim \l__tblr_q_dim + } + \tl_set:Nx \l__tblr_cell_rowspan_tl + { \__tblr_prop_item:ne { cell } { [#1][#2] / rowspan } } + \tl_if_empty:NTF \l__tblr_cell_rowspan_tl + { \dim_set:Nn \l__tblr_cell_ht_dim { \l__tblr_h_tl } } + { + \__tblr_get_span_vertical_sizes:NNNNN #1 #2 + \l__tblr_r_dim \l__tblr_cell_ht_dim \l__tblr_t_dim + } + \__tblr_get_cell_alignments:nn {#1} {#2} + \__tblr_build_cell_background:NN #1 #2 + \__tblr_build_cell_content:NN #1 #2 + \group_end: + } + +\cs_new_protected:Npn \__tblr_build_cell_content:NN #1 #2 + { + \hbox_set_to_wd:Nnn \l__tblr_a_box { \l__tblr_cell_wd_dim } + { + \tl_if_eq:NnF \g__tblr_cell_halign_tl {l} { \hfil } + \__tblr_get_cell_text:nn {#1} {#2} + \tl_if_eq:NnF \g__tblr_cell_halign_tl {r} { \hfil } + } + \vbox_set_to_ht:Nnn \l__tblr_b_box { \l__tblr_cell_ht_dim } + { + \tl_case:Nn \g__tblr_cell_valign_tl + { + \c__tblr_valign_m_tl + { + \vfil + \tl_if_empty:NT \l__tblr_cell_rowspan_tl + { + \box_set_ht:Nn \l__tblr_a_box + { \__tblr_prop_item:ne { row } { [#1] / @row-upper } } + \box_set_dp:Nn \l__tblr_a_box + { \__tblr_prop_item:ne { row } { [#1] / @row-lower } } + } + \box_use:N \l__tblr_a_box + \vfil + } + \c__tblr_valign_h_tl + { + \box_set_ht:Nn \l__tblr_a_box + { \__tblr_prop_item:ne { row } { [#1] / @row-head } } + \box_use:N \l__tblr_a_box + \vfil + } + \c__tblr_valign_f_tl + { + \vfil + \tl_if_empty:NTF \l__tblr_cell_rowspan_tl + { + \box_set_dp:Nn \l__tblr_a_box + { \__tblr_prop_item:ne { row } { [#1] / @row-foot } } + } + { + \box_set_dp:Nn \l__tblr_a_box + { + \__tblr_prop_item:ne { row } + { + [\int_eval:n {#1 + \l__tblr_cell_rowspan_tl - 1}] + / @row-foot + } + } + } + \box_use:N \l__tblr_a_box + } + } + \hrule height ~ 0pt %% zero depth + } + \vbox_set_to_ht:Nnn \l__tblr_c_box + { \l__tblr_row_ht_dim - \l__tblr_row_abovesep_dim } + { + \box_use:N \l__tblr_b_box + \vss + } + \skip_horizontal:n { \l__tblr_x_tl } + \box_use:N \l__tblr_c_box + \skip_horizontal:n { \l__tblr_y_tl - \l__tblr_cell_wd_dim + \l__tblr_w_tl } + } + +\cs_new_protected:Npn \__tblr_build_cell_background:NN #1 #2 + { + \__tblr_prop_if_in:nxF {cell} { [#1][#2] / omit } + { + \group_begin: + \tl_set:Nx \l__tblr_b_tl + { \__tblr_prop_item:ne { cell } { [#1][#2] / background } } + \tl_if_empty:NF \l__tblr_b_tl + { + \__tblr_get_cell_background_width:NNN #1 #2 \l_tmpa_dim + \__tblr_get_cell_background_depth:NNN #1 #2 \l_tmpb_dim + \__tblr_build_cell_background:nnnn + { \dim_use:N \l_tmpa_dim } + { \l__tblr_row_ht_dim } + { \dim_use:N \l_tmpb_dim } + { \l__tblr_b_tl } + } + \group_end: + } + } + +%% #1: row number; #2: column number; #3 resulting dimension +\cs_new_protected:Npn \__tblr_get_cell_background_width:NNN #1 #2 #3 + { + \tl_if_empty:NTF \l__tblr_cell_colspan_tl + { \dim_set:Nn #3 { \l__tblr_x_tl + \l__tblr_w_tl + \l__tblr_y_tl } } + { + \dim_set:Nn #3 { \l__tblr_o_dim + \l__tblr_cell_wd_dim + \l__tblr_q_dim } + } + } + +%% #1: row number; #2: column number; #3 resulting dimension +\cs_new_protected:Npn \__tblr_get_cell_background_depth:NNN #1 #2 #3 + { + \tl_if_empty:NTF \l__tblr_cell_rowspan_tl + { \dim_set_eq:NN #3 \l__tblr_row_dp_dim } + { + \dim_set:Nn #3 + { + \l__tblr_r_dim + \l__tblr_cell_ht_dim + + \l__tblr_t_dim - \l__tblr_row_ht_dim + } + } + } + +%% #1: width, #2: height, #3: depth, #4: color +\cs_new_protected:Npn \__tblr_build_cell_background:nnnn #1 #2 #3 #4 + { + \hbox_set:Nn \l__tblr_a_box + { + \color {#4} + \vrule width ~ #1 ~ height ~ #2 ~ depth ~ #3 + } + \box_set_dp:Nn \l__tblr_a_box { 0pt } + \box_use:N \l__tblr_a_box + \skip_horizontal:n { - #1 } + } + +%% #1: row number; #2: column number; #3: dimen register for rowsep above. +%% #4: dimen register for total height; #5: dimen register for rowsep below. +%% We can use \l__tblr_row_item_skip_size_prop which was made before +\cs_new_protected:Npn \__tblr_get_span_vertical_sizes:NNNNN #1 #2 #3 #4 #5 + { + \dim_set:Nn #3 + { \__tblr_prop_item:ne { row } { [#1] / abovesep } } + \dim_zero:N #4 + \int_step_inline:nnn { #1 } { #1 + \l__tblr_cell_rowspan_tl - 2 } + { + \dim_add:Nn #4 + { \prop_item:Ne \l__tblr_row_item_skip_size_prop { itemskip[##1] } } + } + \dim_add:Nn #4 + { + \prop_item:Ne \l__tblr_row_item_skip_size_prop + { item[\int_eval:n { #1 + \l__tblr_cell_rowspan_tl - 1 }] } + } + \dim_set:Nn #5 + { + \__tblr_prop_item:ne { row } + { [\int_eval:n {#1 + \l__tblr_cell_rowspan_tl - 1}] / belowsep } + } + %\tl_log:x { cell[#1][#2] ~:~ \dim_use:N #3, \dim_use:N #4, \dim_use:N #5 } + } + +%% #1: row number; #2: column number; #3: dimen register for colsep left. +%% #4: dimen register for total width; #5: dimen register for colsep right. +%% We can use \l__tblr_col_item_skip_size_prop which was made before +%% But when hspan=minimal, there are no itemskip in the prop list. +%% Therefore we need to calculate them from the sizes of items and skips +\cs_new_protected:Npn \__tblr_get_span_horizontal_sizes:NNNNN #1 #2 #3 #4 #5 + { + \dim_set:Nn #3 + { \__tblr_prop_item:ne { column } { [#2] / leftsep} } + \dim_zero:N #4 + \int_step_inline:nnn { #2 } { #2 + \l__tblr_cell_colspan_tl - 2 } + { + \dim_add:Nn #4 + { \prop_item:Ne \l__tblr_col_item_skip_size_prop { item[##1] } } + \dim_add:Nn #4 + { + \prop_item:Ne \l__tblr_col_item_skip_size_prop + { skip[\int_eval:n { ##1 + 1 }] } + } + } + \dim_add:Nn #4 + { + \prop_item:Ne \l__tblr_col_item_skip_size_prop + { item[\int_eval:n { #2 + \l__tblr_cell_colspan_tl - 1 }] } + } + \dim_set:Nn #5 + { + \__tblr_prop_item:ne { column } + { [\int_eval:n {#2 + \l__tblr_cell_colspan_tl - 1}] / rightsep } + } + %\tl_log:x { cell[#1][#2] ~:~ \dim_use:N #3, \dim_use:N #4, \dim_use:N #5 } + } + +%%% -------------------------------------------------------- +%% \section{Tracing Tabularray} +%%% -------------------------------------------------------- + +\NewDocumentCommand \SetTabularrayTracing { m } + { + \keys_set:nn { tblr-set-tracing } {#1} + } +\cs_new_eq:NN \SetTblrTracing \SetTabularrayTracing + +\bool_new:N \g__tblr_tracing_text_bool +\bool_new:N \g__tblr_tracing_command_bool +\bool_new:N \g__tblr_tracing_table_bool +\bool_new:N \g__tblr_tracing_column_bool +\bool_new:N \g__tblr_tracing_row_bool +\bool_new:N \g__tblr_tracing_cell_bool +\bool_new:N \g__tblr_tracing_vline_bool +\bool_new:N \g__tblr_tracing_hline_bool +\bool_new:N \g__tblr_tracing_colspec_bool +\bool_new:N \g__tblr_tracing_rowspec_bool +\bool_new:N \g__tblr_tracing_target_bool +\bool_new:N \g__tblr_tracing_cellspan_bool + +\keys_define:nn { tblr-set-tracing } + { + +text .code:n = \bool_gset_true:N \g__tblr_tracing_text_bool, + -text .code:n = \bool_gset_false:N \g__tblr_tracing_text_bool, + +command .code:n = \bool_gset_true:N \g__tblr_tracing_command_bool, + -command .code:n = \bool_gset_false:N \g__tblr_tracing_command_bool, + +table .code:n = \bool_gset_true:N \g__tblr_tracing_table_bool, + -table .code:n = \bool_gset_false:N \g__tblr_tracing_table_bool, + +column .code:n = \bool_gset_true:N \g__tblr_tracing_column_bool, + -column .code:n = \bool_gset_false:N \g__tblr_tracing_column_bool, + +row .code:n = \bool_gset_true:N \g__tblr_tracing_row_bool, + -row .code:n = \bool_gset_false:N \g__tblr_tracing_row_bool, + +cell .code:n = \bool_gset_true:N \g__tblr_tracing_cell_bool, + -cell .code:n = \bool_gset_false:N \g__tblr_tracing_cell_bool, + +vline .code:n = \bool_gset_true:N \g__tblr_tracing_vline_bool, + -vline .code:n = \bool_gset_false:N \g__tblr_tracing_vline_bool, + +hline .code:n = \bool_gset_true:N \g__tblr_tracing_hline_bool, + -hline .code:n = \bool_gset_false:N \g__tblr_tracing_hline_bool, + +colspec .code:n = \bool_gset_true:N \g__tblr_tracing_colspec_bool, + -colspec .code:n = \bool_gset_false:N \g__tblr_tracing_colspec_bool, + +rowspec .code:n = \bool_gset_true:N \g__tblr_tracing_rowspec_bool, + -rowspec .code:n = \bool_gset_false:N \g__tblr_tracing_rowspec_bool, + +target .code:n = \bool_gset_true:N \g__tblr_tracing_target_bool, + -target .code:n = \bool_gset_false:N \g__tblr_tracing_target_bool, + +cellspan .code:n = \bool_gset_true:N \g__tblr_tracing_cellspan_bool, + -cellspan .code:n = \bool_gset_false:N \g__tblr_tracing_cellspan_bool, + all .code:n = \__tblr_enable_all_tracings:, + none .code:n = \__tblr_disable_all_tracings:, + } + +\cs_new_protected_nopar:Npn \__tblr_enable_all_tracings: + { + \bool_gset_true:N \g__tblr_tracing_text_bool + \bool_gset_true:N \g__tblr_tracing_command_bool + \bool_gset_true:N \g__tblr_tracing_table_bool + \bool_gset_true:N \g__tblr_tracing_column_bool + \bool_gset_true:N \g__tblr_tracing_row_bool + \bool_gset_true:N \g__tblr_tracing_cell_bool + \bool_gset_true:N \g__tblr_tracing_vline_bool + \bool_gset_true:N \g__tblr_tracing_hline_bool + \bool_gset_true:N \g__tblr_tracing_colspec_bool + \bool_gset_true:N \g__tblr_tracing_rowspec_bool + \bool_gset_true:N \g__tblr_tracing_target_bool + \bool_gset_true:N \g__tblr_tracing_cellspan_bool + } + +\cs_new_protected_nopar:Npn \__tblr_disable_all_tracings: + { + \bool_gset_false:N \g__tblr_tracing_text_bool + \bool_gset_false:N \g__tblr_tracing_command_bool + \bool_gset_false:N \g__tblr_tracing_table_bool + \bool_gset_false:N \g__tblr_tracing_column_bool + \bool_gset_false:N \g__tblr_tracing_row_bool + \bool_gset_false:N \g__tblr_tracing_cell_bool + \bool_gset_false:N \g__tblr_tracing_vline_bool + \bool_gset_false:N \g__tblr_tracing_hline_bool + \bool_gset_false:N \g__tblr_tracing_colspec_bool + \bool_gset_false:N \g__tblr_tracing_rowspec_bool + \bool_gset_false:N \g__tblr_tracing_target_bool + \bool_gset_false:N \g__tblr_tracing_cellspan_bool + } + +\NewDocumentCommand \LogTabularrayTracing { m } + { + \keys_set:nn { tblr-log-tracing } {#1} + } +\cs_new_eq:NN \LogTblrTracing \LogTabularrayTracing + +\keys_define:nn { tblr-log-tracing } + { + unknown .code:n = \__tblr_log_tracing:N \l_keys_key_str + } + +\cs_new_protected:Npn \__tblr_log_tracing:N #1 + { + \bool_if:cT { g__tblr_tracing_ #1 _bool } + { \cs:w __tblr_log_tracing _ #1 : \cs_end: } + } + +\cs_new_protected:Npn \__tblr_log_tracing_text: + { + \__tblr_prop_log:n { text } + } + +\cs_new_protected:Npn \__tblr_log_tracing_command: + { + \__tblr_prop_log:n { command } + } + +\cs_new_protected:Npn \__tblr_log_tracing_table: + { + \__tblr_prop_log:n { table } + } + +\cs_new_protected:Npn \__tblr_log_tracing_column: + { + \__tblr_prop_log:n { column } + } + +\cs_new_protected:Npn \__tblr_log_tracing_row: + { + \__tblr_prop_log:n { row } + } + +\cs_new_protected:Npn \__tblr_log_tracing_cell: + { + \__tblr_prop_log:n { cell } + } + +\cs_new_protected:Npn \__tblr_log_tracing_vline: + { + \__tblr_prop_log:n { vline } + } + +\cs_new_protected:Npn \__tblr_log_tracing_hline: + { + \__tblr_prop_log:n { hline } + } + +\cs_new_protected:Npn \__tblr_log_tracing_colspec: + { + \tl_if_eq:NnT \g__tblr_column_or_row_tl { column } + { \tl_log:N \g__tblr_expanded_colrow_spec_tl } + } + +\cs_new_protected:Npn \__tblr_log_tracing_rowspec: + { + \tl_if_eq:NnT \g__tblr_column_or_row_tl { row } + { \tl_log:N \g__tblr_expanded_colrow_spec_tl } + } + +\cs_new_protected:Npn \__tblr_log_tracing_target: + { + \dim_log:N \l__column_target_dim + \prop_log:N \l__column_coefficient_prop + \prop_log:N \l__column_natural_width_prop + \prop_log:N \l__column_computed_width_prop + } + +\cs_new_protected:Npn \__tblr_log_tracing_cellspan: + { + \prop_log:N \l__tblr_col_item_skip_size_prop + \prop_log:N \l__tblr_col_span_size_prop + \prop_log:N \l__tblr_row_item_skip_size_prop + \prop_log:N \l__tblr_row_span_size_prop + \prop_log:N \l__tblr_row_span_to_row_prop + } + +\cs_new_protected:Npn \__tblr_do_if_tracing:nn #1 #2 + { + \bool_if:cT { g__tblr_tracing_ #1 _bool } {#2} + } + +\ExplSyntaxOff + diff --git a/macros/latex/contrib/tabularray/tabularray.tex b/macros/latex/contrib/tabularray/tabularray.tex new file mode 100644 index 0000000000..41aa2ab9f6 --- /dev/null +++ b/macros/latex/contrib/tabularray/tabularray.tex @@ -0,0 +1,751 @@ +% -*- coding: utf-8 -*- +\documentclass[oneside]{book} +\usepackage[a4paper,margin=2.5cm]{geometry} + +\usepackage{codehigh} % https://github.com/lvjr/codehigh +%\usepackage{arev} +\usepackage{tabularray} +\usepackage{array,multirow,amsmath} + +\usepackage{hyperref} +\hypersetup{ + colorlinks=true, + urlcolor=blue3, + linkcolor=red3, +} +\renewcommand*{\thefootnote}{*} + +\newcommand*{\myversion}{2021H} +\newcommand*{\mydate}{Version \myversion\ (\the\year-\mylpad\month-\mylpad\day)\\\myrepo} +\newcommand*{\myrepo}{\url{https://github.com/lvjr/tabularray}} +\newcommand*{\mylpad}[1]{\ifnum#1<10 0\the#1\else\the#1\fi} + +\colorlet{highback}{\ifcase\month\or + red9\or brown9\or yellow9\or cyan9\or azure9\or blue9\or + red9\or brown9\or yellow9\or cyan9\or azure9\or blue9\fi +} +\CodeHigh{language=latex/table,style/main=highback,style/code=highback} +\NewCodeHighEnv{code}{style/main=gray9,style/code=gray9} +\NewCodeHighEnv{demo}{style/main=gray9,style/code=gray9,demo} + +%\CodeHigh{lite} + +\begin{document} + +\title{\sffamily\color{red3}Tabularray: Typeset Tabulars and Arrays with \LaTeX3} +\author{Jianrui Lyu (tolvjr@163.com)} +\date{\mydate} +\maketitle + +\tableofcontents + +\chapter{From Old to New} + +\section{Vertical Space} + +After loading \verb!tabularrray! package in the preamble, +we can use \verb!tblr! environments to typeset tabulars and arrays. +The name \verb!tblr! is short for \verb!tabularray! or \verb!top-bottom-left-right!. +The following is our first example: + +\begin{demo} +\begin{tabular}{lccr} +\hline + Alpha & Beta & Gamma & Delta \\ +\hline + Epsilon & Zeta & Eta & Theta \\ +\hline + Iota & Kappa & Lambda & Mu \\ +\hline +\end{tabular} +\end{demo} + +\begin{demohigh} +\begin{tblr}{lccr} +\hline + Alpha & Beta & Gamma & Delta \\ +\hline + Epsilon & Zeta & Eta & Theta \\ +\hline + Iota & Kappa & Lambda & Mu \\ +\hline +\end{tblr} +\end{demohigh} + +You may notice that there is extra space above and below the table rows with \verb!tblr! envirenment. +This space makes the table look better. +If you don't like it, you could use \verb!\SetTblrDefault! command: + +\begin{demohigh} +\SetTblrDefault{rowsep=0pt} +\begin{tblr}{lccr} +\hline + Alpha & Beta & Gamma & Delta \\ +\hline + Epsilon & Zeta & Eta & Theta \\ +\hline + Iota & Kappa & Lambda & Mu \\ +\hline +\end{tblr} +\end{demohigh} + +But in many cases, this rowsep is useful: + +\begin{demo} +$\begin{array}{rrr} +\hline + \dfrac{2}{3} & \dfrac{2}{3} & \dfrac{1}{3} \\ + \dfrac{2}{3} & -\dfrac{1}{3} & -\dfrac{2}{3} \\ + \dfrac{1}{3} & -\dfrac{2}{3} & \dfrac{2}{3} \\ +\hline +\end{array}$ +\end{demo} + +\begin{demohigh} +$\begin{tblr}{rrr} +\hline + \dfrac{2}{3} & \dfrac{2}{3} & \dfrac{1}{3} \\ + \dfrac{2}{3} & -\dfrac{1}{3} & -\dfrac{2}{3} \\ + \dfrac{1}{3} & -\dfrac{2}{3} & \dfrac{2}{3} \\ +\hline +\end{tblr}$ +\end{demohigh} + +Note that you can use \verb!tblr! in both text and math modes. + +\section{Multiline Cells} + +It's quite easy to write multiline cells without fixing the column width in \verb!tblr! environments: +just enclose the cell text with braces and use \verb!\\! to break lines: + +\begin{demohigh} +\begin{tblr}{|l|c|r|} +\hline + Left & {Center \\ Cent \\ C} & {Right \\ R} \\ +\hline + {L \\ Left} & {C \\ Cent \\ Center} & R \\ +\hline +\end{tblr} +\end{demohigh} + +\section{Cell Alignment} + +From time to time, +you may want to specify the horizontal and vertical alignment of cells at the same time. +\verb!Tabularray! package provides a \verb!Q! column for this +(In fact, \verb!Q! column is the only primitive column, +other columns are defined as \verb!Q! columns with some options): + +\begin{demohigh} +\begin{tblr}{|Q[l,t]|Q[c,m]|Q[r,b]|} +\hline + {Top Baseline \\ Left Left} & Middle Center & {Right Right \\ Bottom Baseline} \\ +\hline +\end{tblr} +\end{demohigh} + +Note that you can use more meaningful \verb!t! instead of \verb!p! for top baseline alignment. +For some users who are familiar with word processors, +these \verb!t! and \verb!b! columns are counter-intuitive. +In \verb!tabularray! package, there are another two column types \verb!h! and \verb!f!, +which will align cell text at row head and row foot, respectively: + +\begin{demohigh} +\begin{tblr}{Q[h,4em]Q[t,4em]Q[m,4em]Q[b,4em]Q[f,4em]} +\hline + {row\\head} & {top\\line} & {middle} & {line\\bottom} & {row\\foot} \\ +\hline + {row\\head} & {top\\line} & {11\\22\\mid\\44\\55} & {line\\bottom} & {row\\foot} \\ +\hline +\end{tblr} +\end{demohigh} + +\section{Multirow Cells} + +The above \verb!h! and \verb!f! columns are necessary for multirow cells. +In \verb!tabularray!, the \verb!t! and \verb!b! in the optional argument of \verb!\multirow! commands +will be treated as \verb!h! and \verb!f!, respectively: + +\begin{demo} +\begin{tabular}{|l|l|l|l|} +\hline + \multirow[t]{4}{1.5cm}{Multirow Cell One} & Alpha & + \multirow[b]{4}{1.5cm}{Multirow Cell Two} & Alpha \\ + & Beta & & Beta \\ + & Gamma & & Gamma \\ + & Delta & & Delta \\ +\hline +\end{tabular} +\end{demo} + +\begin{demohigh} +\begin{tblr}{|l|l|l|l|} +\hline + \multirow[t]{4}{1.5cm}{Multirow Cell One} & Alpha & + \multirow[b]{4}{1.5cm}{Multirow Cell Two} & Alpha \\ + & Beta & & Beta \\ + & Gamma & & Gamma \\ + & Delta & & Delta \\ +\hline +\end{tblr} +\end{demohigh} + +Note that you don't need to load \verb!multirow! package first, +since \verb!tabularrray! doesn't depend on it. +Furthermore, \verb!tabularray! will always typeset descent multirow cells. +First, it will set correct vertical \verb!c! alignment, +even though some rows have large height: + +\begin{demo} +\begin{tabular}{|l|m{4em}|} +\hline + \multirow[c]{4}{1.5cm}{Multirow} & Alpha \\ + & Beta \\ + & Gamma \\ + & Delta Delta Delta \\ +\hline +\end{tabular} +\end{demo} + +\begin{demohigh} +\begin{tblr}{|l|m{4em}|} +\hline + \multirow[c]{4}{1.5cm}{Multirow} & Alpha \\ + & Beta \\ + & Gamma \\ + & Delta Delta Delta \\ +\hline +\end{tblr} +\end{demohigh} + +Second, it will enlarge row heights if the multirow cells have large height, +therefore it always avoids vertical overflow: + +\begin{demo} +\begin{tabular}{|l|m{4em}|} +\hline + \multirow[c]{2}{1cm}{Line \\ Line \\ Line \\ Line} & Alpha \\ +\cline{2-2} + & Beta \\ +\hline +\end{tabular} +\end{demo} + +\begin{demohigh} +\begin{tblr}{|l|m{4em}|} +\hline + \multirow[c]{2}{1cm}{Line \\ Line \\ Line \\ Line} & Alpha \\ +\cline{2} + & Beta \\ +\hline +\end{tblr} +\end{demohigh} + +\section{Multi Rows and Columns} + +It was a hard job to typeset cells with multiple rows and multiple columns. For example: + +\begin{demo} +\begin{tabular}{|c|c|c|c|c|} +\hline + \multirow{2}{*}{2 Rows} + & \multicolumn{2}{c|}{2 Columns} + & \multicolumn{2}{c|}{\multirow{2}{*}{2 Rows 2 Columns}} \\ +\cline{2-3} +  & 2-2 & 2-3 & \multicolumn{2}{c|}{} \\ +\hline + 3-1 & 3-2 & 3-3 & 3-4 & 3-5 \\ +\hline +\end{tabular} +\end{demo} + +With \verb!tabularray! package, you can set spanned cells with \verb!\SetCell! command: +within the optional argument of \verb!\SetCell! command, +option \verb!r! is for rowspan number, and \verb!c! for colspan number; +within the mandatory argument of it, horizontal and vertical alignment options are accepted. +Therefore it's much simpler to typeset spanned cells: + +\begin{demohigh} +\begin{tblr}{|c|c|c|c|c|} +\hline + \SetCell[r=2]{c} 2 Rows + & \SetCell[c=2]{c} 2 Columns + & & \SetCell[r=2,c=2]{c} 2 Rows 2 Columns & \\ +\hline +  & 2-2 & 2-3 & & \\ +\hline + 3-1 & 3-2 & 3-3 & 3-4 & 3-5 \\ +\hline +\end{tblr} +\end{demohigh} + +Using \verb!\multicolumn! command, the omitted cells \textcolor{red3}{must} be removed. +On the contrary, +using \verb!\multirow! command, the omitted cells \textcolor{red3}{must not} be removed. +\verb!\SetCell! command behaves the same as \verb!\multirow! command in this aspect. + +With \verb!tblr! environment, any \verb!\hline! segments inside a spanned cell will be ignored, +therefore we're free to use \verb!\hline! in the above example. +Also, any omitted cell will definitely be ignored when typesetting, +no matter it's empty or not. +With this feature, we could put row and column numbers into the omitted cells, +which will help us to locate cells when the tables are rather complex: + +\begin{demohigh} +\begin{tblr}{|ll|c|rr|} +\hline + \SetCell[r=3,c=2]{h} r=3 c=2 & 1-2 & \SetCell[r=2,c=3]{r} r=2 c=3 & 1-4 & 1-5 \\ + 2-1 & 2-2 & 2-3 & 2-4 & 2-5 \\ +\hline + 3-1 & 3-2 & MIDDLE & \SetCell[r=3,c=2]{f} r=3 c=2 & 3-5 \\ +\hline + \SetCell[r=2,c=3]{l} r=2 c=3 & 4-2 & 4-3 & 4-4 & 4-5 \\ + 5-1 & 5-2 & 5-3 & 5-4 & 5-5 \\ +\hline +\end{tblr} +\end{demohigh} + +\section{Column Types} + +\verb!Tabularray! package supports all normal column types, as well as +the extendable \verb!X! column type, +which first occured in \verb!tabularx! package and was largely improved by \verb!tabu! package: + +\begin{demohigh} +\begin{tblr}{|X[2,l]|X[3,l]|X[1,r]|X[r]|} +\hline + Alpha & Beta & Gamma & Delta \\ +\hline +\end{tblr} +\end{demohigh} + +Also, \verb!X! columns with negative coefficients are possible: + +\begin{demohigh} +\begin{tblr}{|X[2,l]|X[3,l]|X[-1,r]|X[r]|} +\hline + Alpha & Beta & Gamma & Delta \\ +\hline +\end{tblr} +\end{demohigh} + +We need the width to typeset a table with \verb!X! columns. +If unset, the default is \verb!\linewidth!. +To change the width, we have to first put all column specifications into \verb!colspec={...}!: + +\begin{demohigh} +\begin{tblr}{width=0.8\linewidth,colspec={|X[2,l]|X[3,l]|X[-1,r]|X[r]|}} +\hline + Alpha & Beta & Gamma & Delta \\ +\hline +\end{tblr} +\end{demohigh} + +You can define new column types with \verb!\NewColumnType! command. +For example, in \verb!tabularray! package, +\verb!b! and \verb!X! columns are defined as special \verb!Q! columns: +\begin{codehigh} +\NewColumnType{b}[1]{Q[b,wd=#1]} +\NewColumnType{X}[1][]{Q[co=1,#1]} +\end{codehigh} + +\section{Row Types} + +Now that we have column types and \verb!colspec! option, +you may ask for row types and \verb!rowspec! option. +Yes, they are here: + +\begin{demohigh} +\begin{tblr}{colspec={Q[l]Q[c]Q[r]},rowspec={|Q[t]|Q[m]|Q[b]|}} + {Alpha \\ Alpha} & Beta & Gamma \\ + Delta & Epsilon & {Zeta \\ Zeta} \\ + Eta & {Theta \\ Theta} & Iota \\ +\end{tblr} +\end{demohigh} + +Same as column types, \verb!Q! is the only primitive row type, +and other row types are defined as \verb!Q! types with different options. +It's better to specify horizontal alignment in \verb!colspec!, +and vertical alignment in \verb!rowspec!, respectively. + +Inside \verb!rowspec!, \verb!|! is the hline type. +Therefore we need not to write \verb!\hline! commnad, which makes table code cleaner. + +\section{Hlines and Vlines} + +Hlines and vlines have been improved too. You can specify the widths and styles of them: + +\begin{demohigh} +\begin{tblr}{|l|[dotted]|[2pt]c|r|[solid]|[dashed]|} +\hline +One & Two & Three \\ +\hline\hline[dotted]\hline +Four & Five & Six \\ +\hline[dashed]\hline[1pt] +Seven & Eight & Nine \\ +\hline +\end{tblr} +\end{demohigh} + +\section{Colorful Tables} + +To add colors to your tables, you need to load \verb!xcolor! package first. +\verb!Tabularray! package will also load \verb!ninecolors! package for proper color contrast. +First you can specify background option for \verb!Q! rows/columns inside \verb!rowspec!/\verb!colspec!: + +\begin{demohigh} +\begin{tblr}{colspec={lcr},rowspec={|Q[cyan7]|Q[azure7]|Q[blue7]|}} + Alpha & Beta & Gamma \\ + Epsilon & Zeta & Eta \\ + Iota & Kappa & Lambda \\ +\end{tblr} +\end{demohigh} + +\begin{demohigh} +\begin{tblr}{colspec={Q[l,brown7]Q[c,yellow7]Q[r,olive7]},rowspec={|Q|Q|Q|}} + Alpha & Beta & Gamma \\ + Epsilon & Zeta & Eta \\ + Iota & Kappa & Lambda \\ +\end{tblr} +\end{demohigh} + +Also you can use \verb!\SetRow! or \verb!\SetColumn! command to specify row or column colors: + +\begin{demohigh} +\begin{tblr}{colspec={lcr},rowspec={|Q|Q|Q|}} + \SetRow{cyan7} Alpha & Beta & Gamma \\ + \SetRow{azure7} Epsilon & Zeta & Eta \\ + \SetRow{blue7} Iota & Kappa & Lambda \\ +\end{tblr} +\end{demohigh} + +\begin{demohigh} +\begin{tblr}{colspec={lcr},rowspec={|Q|Q|Q|}} + \SetColumn{brown7} + Alpha & \SetColumn{yellow7} + Beta & \SetColumn{olive7} + Gamma \\ + Epsilon & Zeta & Eta \\ + Iota & Kappa & Lambda \\ +\end{tblr} +\end{demohigh} + +Hlines and vlines can also have colors: + +\begin{demohigh} +\begin{tblr}{colspec={lcr},rowspec={|[2pt,green7]Q|[teal7]Q|[green7]Q|[3pt,teal7]}} + Alpha & Beta & Gamma \\ + Epsilon & Zeta & Eta \\ + Iota & Kappa & Lambda \\ +\end{tblr} +\end{demohigh} + +\begin{demohigh} +\begin{tblr}{colspec={|[2pt,violet5]l|[2pt,magenta5]c|[2pt,purple5]r|[2pt,red5]}} + Alpha & Beta & Gamma \\ + Epsilon & Zeta & Eta \\ + Iota & Kappa & Lambda \\ +\end{tblr} +\end{demohigh} + +\section{New Table Commands} + +All commands which change the specifications of tables \textcolor{red3}{must} be defined with \verb!\NewTableCommand!. +The following example demonstrates how to define similar rules as in \verb!booktabs! package: + +\begin{demohigh} +\NewTableCommand\toprule{\hline[0.08em]} +\NewTableCommand\midrule{\hline[0.05em]} +\NewTableCommand\bottomrule{\hline[0.08em]} +\begin{tblr}{llll} +\toprule + Alpha & Beta & Gamma & Delta \\ +\midrule + Epsilon & Zeta & Eta & Theta \\ + Iota & Kappa & Lambda & Mu \\ + Nu & Xi & Omicron & Pi \\ +\bottomrule +\end{tblr} +\end{demohigh} + +\chapter{New Interface} + +With \verb!tabularray! package, you can separate style and content totally in tables. + +\section{Hlines and Vlines} + +Options \verb!hlines! and \verb!vlines! are for setting all hlines and vlines, respectively. +With empty value, all hlines/vlines will be solid. + +\begin{demohigh} +\begin{tblr}{hlines,vlines} + Alpha & Beta & Gamma & Delta \\ + Epsilon & Zeta & Eta & Theta \\ + Iota & Kappa & Lambda & Mu \\ + Nu & Xi & Omicron & Pi \\ + Rho & Sigma & Tau & Upsilon \\ + Phi & Chi & Psi & Omega \\ +\end{tblr} +\end{demohigh} + +With values inside one pair of braces, all hlines/vlines will be styled. + +\begin{demohigh} +\begin{tblr}{ + hlines = {1pt,solid}, + vlines = {red3,dashed}, +} + Alpha & Beta & Gamma & Delta \\ + Epsilon & Zeta & Eta & Theta \\ + Iota & Kappa & Lambda & Mu \\ + Nu & Xi & Omicron & Pi \\ + Rho & Sigma & Tau & Upsilon \\ + Phi & Chi & Psi & Omega \\ +\end{tblr} +\end{demohigh} + +Another pair of braces before will select segments in all hlines/vlines. + +\begin{demohigh} +\begin{tblr}{ + vlines = {1,3,5}{dashed}, + vlines = {2,4,6}{solid}, +} + Alpha & Beta & Gamma & Delta \\ + Epsilon & Zeta & Eta & Theta \\ + Iota & Kappa & Lambda & Mu \\ + Nu & Xi & Omicron & Pi \\ + Rho & Sigma & Tau & Upsilon \\ + Phi & Chi & Psi & Omega \\ +\end{tblr} +\end{demohigh} + +The above example can be simplified with \verb!odd! and \verb!even! values. +(More child selectors can be defined with \verb!\NewChildSelector! command. +Advanced users could read the source code for this.) + +\begin{demohigh} +\begin{tblr}{ + vlines = {odd}{dashed}, + vlines = {even}{solid}, +} + Alpha & Beta & Gamma & Delta \\ + Epsilon & Zeta & Eta & Theta \\ + Iota & Kappa & Lambda & Mu \\ + Nu & Xi & Omicron & Pi \\ + Rho & Sigma & Tau & Upsilon \\ + Phi & Chi & Psi & Omega \\ +\end{tblr} +\end{demohigh} + +Another pair of braces before will draw more hlines/vlines (in which \verb!-! stands for all line segments). + +\begin{demohigh} +\begin{tblr}{ + hlines = {1}{-}{dashed}, + hlines = {2}{-}{solid}, +} + Alpha & Beta & Gamma & Delta \\ + Epsilon & Zeta & Eta & Theta \\ + Iota & Kappa & Lambda & Mu \\ + Nu & Xi & Omicron & Pi \\ + Rho & Sigma & Tau & Upsilon \\ + Phi & Chi & Psi & Omega \\ +\end{tblr} +\end{demohigh} + +Options \verb!hline{i}! and \verb!vline{j}! are for setting some hlines and vlines, respectively. + +\begin{demohigh} +\begin{tblr}{ + hline{1,7} = {1pt,solid}, + hline{3-5} = {blue3,dashed}, + vline{1,5} = {3-4}{dotted}, +} + Alpha & Beta & Gamma & Delta \\ + Epsilon & Zeta & Eta & Theta \\ + Iota & Kappa & Lambda & Mu \\ + Nu & Xi & Omicron & Pi \\ + Rho & Sigma & Tau & Upsilon \\ + Phi & Chi & Psi & Omega \\ +\end{tblr} +\end{demohigh} + +\section{Cells and Spancells} + +Option \verb!cells! is for setting all cells. + +\begin{demohigh} +\begin{tblr}{hlines={white},cells={c,blue7}} + Alpha & Beta & Gamma & Delta \\ + Epsilon & Zeta & Eta & Theta \\ + Iota & Kappa & Lambda & Mu \\ + Nu & Xi & Omicron & Pi \\ + Rho & Sigma & Tau & Upsilon \\ + Phi & Chi & Psi & Omega \\ +\end{tblr} +\end{demohigh} + +Option \verb!cell{i}{j}! is for setting some cells. + +\begin{demohigh} +\begin{tblr}{ + hlines = {white}, + vlines = {white}, + cell{1,6}{odd} = {teal7}, + cell{1,6}{even} = {green7}, + cell{2,4}{1,4} = {red7}, + cell{3,5}{1,4} = {purple7}, + cell{2}{2} = {r=4,c=2}{c,azure7}, +} + Alpha & Beta & Gamma & Delta \\ + Epsilon & Zeta & Eta & Theta \\ + Iota & Kappa & Lambda & Mu \\ + Nu & Xi & Omicron & Pi \\ + Rho & Sigma & Tau & Upsilon \\ + Phi & Chi & Psi & Omega \\ +\end{tblr} +\end{demohigh} + +\section{Rows and Columns} + +Options \verb!rows! and \verb!columns! are for setting all rows and columns, respectively. + +\begin{demohigh} +\begin{tblr}{ + hlines, + vlines, + rows = {7mm}, + columns = {15mm,c}, +} + Alpha & Beta & Gamma & Delta \\ + Epsilon & Zeta & Eta & Theta \\ + Iota & Kappa & Lambda & Mu \\ +\end{tblr} +\end{demohigh} + +Options \verb!row{i}! and \verb!column{j}! are for setting some rows and columns, respectively. + +\begin{demohigh} +\begin{tblr}{ + hlines = {1pt,white}, + row{odd} = {blue7}, + row{even} = {azure7}, + column{1} = {purple7,c}, +} + Alpha & Beta & Gamma & Delta \\ + Epsilon & Zeta & Eta & Theta \\ + Iota & Kappa & Lambda & Mu \\ + Nu & Xi & Omicron & Pi \\ + Rho & Sigma & Tau & Upsilon \\ + Phi & Chi & Psi & Omega \\ +\end{tblr} +\end{demohigh} + +\section{Space in Tables} + +Options \verb!rowsep! and \verb!colsep! are for setting padding for rows and columns, respectively. + +\begin{demohigh} +\SetTblrDefault{rowsep=2pt,colsep=2pt} +\begin{tblr}{hlines,vlines} + Alpha & Beta & Gamma & Delta \\ + Epsilon & Zeta & Eta & Theta \\ + Iota & Kappa & Lambda & Mu \\ +\end{tblr} +\end{demohigh} + +Also \verb!abovesep!, \verb!belowsep!, \verb!leftsep!, \verb!rightsep! options are available: + +\begin{demohigh} +\begin{tblr}{ + hlines, + vlines, + rows = {abovesep=1pt,belowsep=5pt}, + columns = {leftsep=1pt,rightsep=5pt}, +} + Alpha & Beta & Gamma & Delta \\ + Epsilon & Zeta & Eta & Theta \\ + Iota & Kappa & Lambda & Mu \\ +\end{tblr} +\end{demohigh} + +And \verb!\\[dimen]! can be replaced by \verb!belowsep+! option: + +\begin{demohigh} +\begin{tblr}{ + hlines, row{2} = {belowsep+=5pt}, +} + Alpha & Beta & Gamma & Delta \\ + Epsilon & Zeta & Eta & Theta \\ + Iota & Kappa & Lambda & Mu \\ +\end{tblr} +\end{demohigh} + +Also \verb!\arraystretch! parameter can be replaced by \verb!stretch! option: + +\begin{demohigh} +\begin{tblr}{hlines,stretch=1.5} + Alpha & Beta & Gamma & Delta \\ + Epsilon & Zeta & Eta & Theta \\ + Iota & Kappa & Lambda & Mu \\ +\end{tblr} +\end{demohigh} + +\section{Counters in Tables} + +Counters \verb!rownum!, \verb!colnum!, \verb!rowcount!, \verb!colcount! can be used in cell text: + +\begin{demohigh} +\begin{tblr}{hlines} + Cell[\arabic{rownum}][\arabic{colnum}] & Cell[\arabic{rownum}][\arabic{colnum}] & + Cell[\arabic{rownum}][\arabic{colnum}] & Cell[\arabic{rownum}][\arabic{colnum}] \\ + Cell[\arabic{rownum}][\arabic{colnum}] & Cell[\arabic{rownum}][\arabic{colnum}] & + Cell[\arabic{rownum}][\arabic{colnum}] & Cell[\arabic{rownum}][\arabic{colnum}] \\ + Row=\arabic{rowcount}, Col=\arabic{colcount} & + Row=\arabic{rowcount}, Col=\arabic{colcount} & + Row=\arabic{rowcount}, Col=\arabic{colcount} & + Row=\arabic{rowcount}, Col=\arabic{colcount} \\ + Cell[\arabic{rownum}][\arabic{colnum}] & Cell[\arabic{rownum}][\arabic{colnum}] & + Cell[\arabic{rownum}][\arabic{colnum}] & Cell[\arabic{rownum}][\arabic{colnum}] \\ + Cell[\arabic{rownum}][\arabic{colnum}] & Cell[\arabic{rownum}][\arabic{colnum}] & + Cell[\arabic{rownum}][\arabic{colnum}] & Cell[\arabic{rownum}][\arabic{colnum}] \\ +\end{tblr} +\end{demohigh} + +\section{Experimental Interface} + +Everything described in this section is in \underline{\textcolor{red3}{\textbf{experimental}}} status. +Don’t use it in important documents, unless you have time +to update them for the newer versions of \verb!tabularray! package in the future. + +By default \verb!tabularray! package will compute column widths from span widths. +By setting option \verb!hspan=minimal!, it will compute span widths from column widths. +The following two examples show this difference: + +\begin{demohigh} +\SetTblrDefault{hlines,vlines} +\begin{tblr}{cell{2}{1}={c=2}{l},cell{3}{1}={c=3}{l},cell{4}{2}={c=2}{l}} + 111 111 & 222 222 & 333 333 \\ + 12 Multi Columns Multi Columns 12 & & 333 \\ + 13 Multi Columns Multi Columns Multi Columns 13 & & \\ + 111 & 23 Multi Columns Multi Columns 23 & \\ +\end{tblr} +\end{demohigh} + +\begin{demohigh} +\SetTblrDefault{hlines,vlines,hspan=minimal} +\begin{tblr}{cell{2}{1}={c=2}{l},cell{3}{1}={c=3}{l},cell{4}{2}={c=2}{l}} + 111 111 & 222 222 & 333 333 \\ + 12 Multi Columns Multi Columns 12 & & 333 \\ + 13 Multi Columns Multi Columns Multi Columns 13 & & \\ + 111 & 23 Multi Columns Multi Columns 23 & \\ +\end{tblr} +\end{demohigh} + +\chapter{Source Code} + +%\CodeHigh{lite} +\dochighinput[language=latex/latex3]{tabularray.sty} + +\end{document} diff --git a/macros/luatex/optex/pdfextra/LICENSE b/macros/luatex/optex/pdfextra/LICENSE new file mode 100644 index 0000000000..7468558136 --- /dev/null +++ b/macros/luatex/optex/pdfextra/LICENSE @@ -0,0 +1,12 @@ +Copyright (C) 2021 Michal Vlasák + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. diff --git a/macros/luatex/optex/pdfextra/README.md b/macros/luatex/optex/pdfextra/README.md new file mode 100644 index 0000000000..c47262b1f5 --- /dev/null +++ b/macros/luatex/optex/pdfextra/README.md @@ -0,0 +1,35 @@ +# PDF Extra + +PDF Extra provides extra PDF features for OpTeX. + +As a minimalistic package OpTeX doesn't support "advanced" features of PDF file +format in the base. This third party package aims to provide them. Summary of +supported features: + + - insertion of multimedia (audio, video, 3D); + - hyperlinks and other actions, + - trigger events; + - transitions; + - attachments. + +The repository of PDF Extra is at https://github.com/vlasakm/pdfextra. + +# Documentation + +See `pdfextra-doc.pdf` for documentation. It contains user documentation as +well as technical documentation interleaved with source code. + +# Installation instructions + +Put `pdfextra.opm` where `optex` can find it. + +Or just copy paste anything you want. + +# Usage + +In OpTex do: `\load [pdfextra]`. + +# License + +This package is available under the Zero-Clause BSD license. See `LICENSE` for +more information. diff --git a/macros/luatex/optex/pdfextra/examples/pdfextra-example-part.prc b/macros/luatex/optex/pdfextra/examples/pdfextra-example-part.prc new file mode 100644 index 0000000000..812479dcbb Binary files /dev/null and b/macros/luatex/optex/pdfextra/examples/pdfextra-example-part.prc differ diff --git a/macros/luatex/optex/pdfextra/examples/pdfextra-example.pdf b/macros/luatex/optex/pdfextra/examples/pdfextra-example.pdf new file mode 100644 index 0000000000..abb2e9c4c5 Binary files /dev/null and b/macros/luatex/optex/pdfextra/examples/pdfextra-example.pdf differ diff --git a/macros/luatex/optex/pdfextra/examples/pdfextra-example.tex b/macros/luatex/optex/pdfextra/examples/pdfextra-example.tex new file mode 100644 index 0000000000..6093bf7def --- /dev/null +++ b/macros/luatex/optex/pdfextra/examples/pdfextra-example.tex @@ -0,0 +1,341 @@ +% PDFextra example file. +% This file, apart from other topics, shows how to port 3D examples from media9 +% (https://ctan.org/pkg/media9) documentation. You probably have to adjust path +% searching to succesfully compile this example, e.g.: +% +% \begtt +% env TEXMFDOTDIR=.:~/src/texlive/texmf-dist/source/latex/media9/files/ optex pdfextra-example.tex +% \endtt + +% basic \OpTeX/ settings +\enlang\enquotes +\fontfam[lm] + +%\pdfobjcompresslevel=0 +%\pdfcompresslevel=0 + +% load the package from standard search path +\load[pdfextra] + +% Before using \hlink we must activate hyperlinks +\hyperlinks\Blue\Green + +% Maybe we want to greet the user and jump to page 2 right at the start? +\openaction[ + js:{% + app.alert("Javascript alert, open action"); + console.println("printing to console from openaction");}, + pg:2, +] + + + +% Using document level JavaScript we can run initialization code right at the +% start (this is more flexible than \openaction). +\dljavascript[random]{ + function getRandomNumber() { + return 4; % chosen by fair dice roll, ![https://xkcd.com/221/] + } + console.println("initialized with seed " + getRandomNumber()); +} + + + +% For external references we need to `\filedef` "external" and "url" files beforehand: +\filedef/u[doc-internet]{http://petr.olsak.net/ftp/olsak/optex/optex-doc.pdf} +\filedef/x[doc-local]{optex-doc.pdf} + +% We then try to reference them using external references: +\hlink[extref:doc-internet:ref:langphrases]{OpTeX documentation, section \"Multilingual phrases and quotation marks".} +\hlink[extpgref:doc-internet:12]{OpTeX documentation, page 12.} + + + +% Insert a video twice with different settings: +\filedef/e[video]{example-movie.mp4} +% insert video into page using Renditions mechanism with controls and autoplay +\render[video][ + controls=true, + aactions=\renditionautoplay, +]{\picwidth=\hsize \inspic{example-image.pdf}} + +% Maybe add action buttons? +\hlink[rendition::play]{play} \hlink[rendition::pause]{pause} +\hlink[rendition::stop]{stop} \hlink[rendition::resume]{resume} + +% Render the same file again, but with different dimensions, no controls +% and explicit activation. +\render[video]{\inspic{example-image.pdf}} +% This one can't have buttons, because it doesn't have its own name ("video") is used by the previous one. + + + +% Add already embedded video to the list of attachments shown in user +% interface. +\attach[video] + + +% We are done for this page, who not go to the next one? +% +% \hlink typesets in group, so we locally disable lining links (our button is +% bigger than normal line) +\hlink[named:NextPage]{\nolininglinks\typoscale[2000/2000]\inoval{NEXT PAGE}} + + + +\vfil\break + + + +% deliver fresh random number to everyone who sees this page using "page open" +% trigger event of page's actions +\pageactions[ + {O} {js:{app.alert("Random number for you is " + getRandomNumber());}} +] + +% "previous page" link with "Split" transition +\hlink[pg:1, transition:Split]{Go to previous page (with transition).} + + + +\vfil\break + +% A 3D Rich Media annotation with a custom view and script follows: + +% First we define the 3D file, so we can use same name for the view and have it auto included. +\filedef/e[example]{pdfextra-example-part.prc} + +% Then a simplistic "front" view. +\DDDview[example][ + projection=ortho, + roo=400, +] + +% A 3D JavaScript script that will define function to use with action button. +% (we write the script only now, so we don't have to carry around an extra file in the package) +\newwrite\js +\immediate\openout\js=turn.js +% rotate every node by angle degrees along $x$ axis +\immediate\write\js{\detokenize{ +function turn(angle) { + angle = angle * Math.PI / 180; + for (var i = 0; i < scene.nodes.count; i++) { + var node = scene.nodes.getByIndex(i); + node.transform.rotateAboutXInPlace(angle); + } +} +}} +\closeout\js + +% The annotation itself, with our script above. +\RM[example][ + activation=auto, + scripts=turn.js, +]{{\White\vrule width\hsize height\hsize}} + +\hlink[js:\DDDcontext{example}.turn(10);]{Turn by 10 degrees along $x$ axis.}\par +\hlink[js:\DDDcontext{example}.turn(30);]{Turn by 30 degrees along $x$ axis.}\par +\hlink[js:\DDDcontext{example}.turn(90);]{Turn by 90 degrees along $x$ axis.} + + + +\vfil\break + + +% Here is the "epix" 3D model example from media9 documentation ported to pdfextra +% +% First we define a view with the same name as the future Rich Media +% annotation. This view will then automatically be used if no `views` is +% specified. No need to be excessive with decimal numbers. +\DDDview[epix][ + FOV=30, + c2c=4 2 3, + coo=4.41 2.19 0, + roo=430, +] + +% 3Dmenu is used often, lets use shortcut instead. +\filedef/e[3dmenu]{3Dmenu.js} +% We want to use the nice "epix" name for the view and annotation. +\filedef/e[epix]{epix.prc} + +% Just to spice things up, we diverge a bit from media9 and define custom background color. +\colordef\GreyBG{0.1\Black} + +% Define the 3D Rich Media annotation. One view is automatically detected from +% name ("epix"). Scripts will run in turn at initialization time. +\RM[epix][ + scripts={ + asylabels.js, + 3Dspintool.js, + 3dmenu, + }, + background=\GreyBG, +]{\picwidth=0.8\hsize \picheight=0.8\hsize \inspic{epixposter.pdf}} + + + +\vfil\break + + + +% Second media9 example is "dice" it has a lot of views, but they are simple. +% This time we can't use the deduction with same name. +\DDDview[Front][roo=27] +\DDDview[Back][roo=27, c2c=0 1 0] +\DDDview[Left][roo=27, c2c=-1 0 0] +\DDDview[Right][roo=27, c2c=1 0 0] +\DDDview[Top][roo=27, c2c=0 0 1] +\DDDview[Bottom][roo=27, c2c=0 0 -1] +\DDDview[Fish Eye at Centre][fov=120] + +% We want to use all the defined views, as well as autoactivate the annotation. +% This means that the previews mostly sets dimensions, because it will not be +% shown much. (Except in viewers that don't support 3D Rich Media -- all except +% Acrobat). +\RM[dice.u3d][ + views={Front, Back, Left, Right, Top, Bottom, Fish Eye at Centre}, + activation=auto, + scripts=3dmenu, +]{{\Red \vrule height.5\hsize width.5\hsize}} + +% A few buttons for switching views. +\hlink[goto3dview::/N]{\frame{Next view}} +\hlink[goto3dview::(Back)]{\frame{View \"Back"}} +\hlink[goto3dview::5]{\frame{6th view in the list}} + +% And define the action buttons using this new custom action. +\hlink[diceview:/N]{Next view} +\hlink[diceview:(Back)]{View \"Back"} +\hlink[diceview:5]{6th view in the list} + + +\vfil\break + + +% Last media9 example ported. It has its own JavaScript file for animation, +% which can be customized at runtime using JavaScript actions that access 3D +% conotext. +\filedef/e[malte]{malte.u3d} +\DDDview[malte][c2c=1 1 1, roo=0.25] +\RM[malte][ + activation=auto, + scripts={3dmenu, malte.js}, +]{{\Blue \vrule height.5\hsize width0.5\hsize}} + +{\picheight=1.44em +% Normal JavaScript actions, but we access functions defined globaly in the 3D +% JavaScript context of "malte" Rich Media annotation. +\hlink[js:\DDDcontext{malte}.cntrClockWise();]{\inspic{boutona.pdf}} +\hlink[js:\DDDcontext{malte}.pause();]{\inspic{boutonb.pdf}} +\hlink[js:\DDDcontext{malte}.clockWise();]{\inspic{boutonc.pdf}} +\hlink[js:\DDDcontext{malte}.scaleSpeed(1/1.1);]{\inspic{boutond.pdf}} +\hlink[js:\DDDcontext{malte}.origSpeed();]{\inspic{boutone.pdf}} +\hlink[js:\DDDcontext{malte}.scaleSpeed(1.1);]{\inspic{boutonf.pdf}} +} + + +\vfil\break + + +% Lastly a showcase of transitions / page durations in \OpTeX/ slideshow. +% Because transitions are displayed only in fullscreen mode, we could request +% it by using "\fullscreen". But we have more pages before this, so we didn't. + +% We just turn the rest of the document into slideshow. +\slides +\slideshow +% To see the transitions better, we color each page with a background color. +\global\pgbackground={\bgcolor \hrule height\pdfpageheight width\pdfpagewidth} +\glet\bgcolor=\Yellow + +% Transitions on all pages where it is not said otherwise will be of type +% "Wipe" and be 1 second long. +\transitions[Wipe:1] + +% The slides will by default be shown for 3 seconds before advancing to the next one. +\defaultpageduration[3] +% But the first slide has override to only be shown for 1 second. +\pageduration[1] + +\tit Presentation + +\subtit Transistions and durations + +\pg; +\glet\bgcolor=\Red +% All transitions are defined on the page object and they are shown when we go +% to that page. That means that we probably didn't see the "Wipe:1" animation +% of the first slide, because we already were there. However, this second slide +% with "Fade" is now shown correctly. (The first one also will, when we go +% back.) +\transition[Fade] + +\sec First slide + +Some\pg+ +% In a slideshow, by using \pg+ we are on a new PDF page with independently set +% transition/duration. We can use this to disable page durations -- we have +% seen the "single page override" in action on previous page, and the default +% duration on this "page". +\defaultpageduration[] + +% Also apply a long transition on this "page"/"slide"/"subslide". +\transition[Dissolve:4] + +% More uses of currently set default values follow. +text\pg+ + +to\pg+ + +test\pg+ + +slideshow + +\pg; +% Now show different transitions on differently colored pages: +\glet\bgcolor=\Green +\transition[Split:3:/Dm /V /M /I] + +\sec Second slide + +\transitions[Blinds:2] + +more\pg+ + +text + +\transitions[Wipe] + +\pg; +\glet\bgcolor=\Brown +\transition[Dissolve] + +\sec Third slide + +\pg; +\glet\bgcolor=\Red +\transition[Box] + +\sec More + +\pg; +\glet\bgcolor=\Yellow + +\sec slides + +\pg; +\glet\bgcolor=\Red + +\sec using + +\pg; +\glet\bgcolor=\Yellow + +\sec default transition + +bye\pg+ + +bye + +\bye diff --git a/macros/luatex/optex/pdfextra/pdfextra-doc.pdf b/macros/luatex/optex/pdfextra/pdfextra-doc.pdf new file mode 100644 index 0000000000..e5a6b8e30d Binary files /dev/null and b/macros/luatex/optex/pdfextra/pdfextra-doc.pdf differ diff --git a/macros/luatex/optex/pdfextra/pdfextra-doc.tex b/macros/luatex/optex/pdfextra/pdfextra-doc.tex new file mode 100644 index 0000000000..38f6cd9795 --- /dev/null +++ b/macros/luatex/optex/pdfextra/pdfextra-doc.tex @@ -0,0 +1,684 @@ +% vim: tw=80 +\load [doc, pdfextra] +\catcode`\.=11 + +\hyperlinks\Green\Green + +% table notes (http://petr.olsak.net/optex/optex-tricks.html#tnote) +\newcount\tnotenum +\def\tnotelist{} +\def\tnote#1{\incr\tnotenum $^{\rm\_romannumeral\tnotenum}$\global\addto\tnotelist{{#1}}} +\def\tnoteprint{\typoscale[920/920]\par \tnotenum=0 + \ea\foreach\tnotelist + \do{\advance\tnotenum by1 \par $^{\rm\_romannumeral\tnotenum}$##1 }\par + \global\tnotenum=0 \gdef\tnotelist{}% +} + +% use `\hlink` instead of OpTeX `\*link` s +\protected\def\_link[#1]#2#3{\hlink[#1]{#3}} +\protected\def\_ilink[#1]#2{\hlink[#1]{#2}} +\protected\def\_ulink[#1]#2{\hlink[url:#1]{#2}} +\public \link \ilink \ulink ; + +\let\_cslinkcolor\Blue + +% allow hyperlinking of \OpTeX's control sequences (see doc.opm) +\let\_pdfextra_opdocaction\_pdfextra_urlaction +\let\_pdfextra_opdoclinkcolor\Blue +\def\_Xindex#1#2{\sdef{,#1}{}\slet{el:#1}{optexdoclink}} +\def\optexdoclink{\hlink[opdoc:\optexdocurl\#cs:\_tmpa]{\csstring\\\_tmpb}} +\def\optexdocurl{http://petr.olsak.net/ftp/olsak/optex/optex-doc.pdf} +\isfile{optex-doc.eref}\iftrue \input{optex-doc.eref}\fi + +\insertoutline{PDF extra} +\tit PDF extra -- extra PDF features for \OpTeX/ + +\hfill Version \_pdfextra_version + +\centerline{\it Michal Vlasák, 2021} +\bigskip + +\noindent +`PDFextra` is a third party package for \OpTeX/. It aims to provide access to +more advanced PDF features, which are currently not supported in \OpTeX/ -- +especially interactive and multimedia features. The development is hosted at +\url{https://github.com/vlasakm/pdfextra}. + +In the spirit of \OpTeX/ you may use these macros in any form you want. Either +by installing this package and doing `\load[pdfextra]` in \OpTeX/, or just by +copying some useful parts of this package into your documents / packages. +\OpTeX/ namespacing is used, but it can be easily stripped, if you wish to +incorporate these macros into other macro packages. The code currently depends +on \LuaTeX/, but mostly uses only pdf\TeX/ primitives and a few simple macros +from \OpTeX/. + +User documentation (`pdfextra-doc.tex`) and technical documentation interleaved +with source code (`pdfextra.opm`) are all typeset in this PDF file. Some +examples of usage are in the user documentation, but file +`pdfextra-example.tex` contains more examples. + +\insertoutline{Contents}\outlines{0} +\notoc\nonum \sec Contents +\maketoc + +\vfil\break + +\chap User documentation + +\sec Defining files + +Many commands provided by this package require you to supply a file . This +is because many commands either work directly (like inserting attachments or +multimedia) or can optionally use files (like inserting JavaScript). +The \"right" way to use is to first define the with:\nl\indent +\^`\filedef``/[]{}`. + +Where is the name you will use to refer to this file. It is currently +limited to ASCII only (as all \"s" required by this package). +Interpretation of +depends on the type, which may be: + +\begitems + * `e`, \"embedded file". The file with path will be embedded to the PDF + file. A file that is embedded this once, can later be used many times in + different contexts, e.g. you may use it to attach a video as an attachment but + also have it play on page 1 and even other pages. This is the best way, because + the resulting PDF file is self contained. + * `x`, \"external file". can only be a path to the current directory. + To refer to the file only is used, sort of like a reference. This way + the file you want to refer to {\em has} to be present in the same directory as + the PDF file when it is {\em viewed}! + * `u`, \"URL file". is the URL of the file you want to refer to. +\enditems + +All these create the same type of object, which ideally could be used +interchangibly everywhere a {\em file specification} is required in PDF. This is +sadly not always true. The limitations to only certain types of `\filedef`'s +will be mentioned in due sections. But as a rule of thumb, most of the time you +want to embed the files into PDF. The external/URL references are good for +refering to external files, although other methods are also possible there. + +Because most of the times you want to be embedded file, you may omit the +prior definition and instead use the itself. The file will be +autoembedded. + +Examples: + +\begtt +\filedef/u[doc-internet]{http://petr.olsak.net/ftp/olsak/optex/optex-doc.pdf} +\filedef/x[doc-local]{optex-doc.pdf} +\filedef/e[doc-embedded]{optex-doc.pdf} +\endtt + +\label[user:multimedia] +\sec Multimedia + +It is possible to insert video, audio and 3D files for playback/display inside +a PDF file (on a page). There are several different PDF mechanisms for +inserting multimedia. For audio/video this package uses the so called +\"Renditions", which currently have the best support in PDF viewers (fully +works in Acrobat and Foxit, partly in Evince and Okular). Rich Media +annotations are used for 3D art (works only in Acrobat Reader), although it is +possible to also insert audio/video using this mechanism it is very restricting +and Renditions are recommended. + +Use command \^`\render``[][]{}` for +inserting audio/video with Renditions or +\^`\RM``[][]{}` for inserting +audio/video/3D as Rich Media annnotation. +The result of this command is similiar to what `\inspic` +produces\fnote{But because annotations are involved, transformations using PDF +literals will not work as expected.}. Both commands expect to be +\~`\filedef`'d name of the file to play/display. As usual, fallback for +interpreting as path (and embedding it) is in place. It is recommended +to only use embedded files with both mechanisms (Rich Media requires it, +Renditions with other than embedded files do not work in Acrobat). Optional +key-value parameters may be used to customize default values. They may be left +out enitrely (including brackets). Last parameter, , defines so +called \"normal apperance", which is shown before the annotation is activated +(audio/video starts playing or 3D scene is displayed). The dimensions of +resulting multimedia annotation will be taken from . Most likely +you want to use a \"poster" picture (inserted with `\inspic`) as appearance -- +the dimensions will be taken from it and e.g. aspect ratio will be nicely +preserved. + +Customization of Renditions is possible using key-value parameters, but beware +that it mostly doesn't work in Evince and Okular (Acrobat and Foxit are fine in +this regard). The available parameters are in Table~\ref[tab:kv-renditions]. +Most customizations of Rich Media concern 3D art. Available parameters are +listed in Table~\ref[tab:kv-rm]. + +\midinsert +\label[tab:kv-renditions] +\caption/t Key value parameters available for Renditions (\~`\render`) +\cskip +\centerline{\table{lllp{72mm\fL}}{ +Key & Possible values & Default & Description \crll +`controls` & `true` or `false` & `false` & Whether to display audio/video player controls. \crl +`volume` & decimal betwen 0 and 100 & 100 & Audio volume. \crl +`repeat` & integer $\geq$ 0 & 1 & Number of repetitions (0 means loop forever). \crl +`background` & \OpTeX/ color & `\White` & Color used for part of the annotation not covered by video player (for wrong aspect ratios). \crl +`opacity` & decimal between 0 and 1 & 1 & Opacity of `background`. \crl +`aactions` & `\renditionautoplay` & (none) & Can be used for autoplay on page open. \crl +`name` & ascii string & `` & Name for use with actions and scripts. \crll +}} +\endinsert + +\midinsert +\label[tab:kv-rm] +\caption/t Key value parameters available for Rich Media (\~`\RM`) +\cskip +\centerline{\table{lp{31mm\fL}lp{75mm\fL}}{ +Key & Possible values & Default & Description \crll +`activation` & `explicit` or `auto` & `explicit` & Whether to automatically activate the annotation on page open or display normal apperance until user clicks. \crl +`deactivation` & `explicit` or `auto` & `explicit` & Whether to automatically deactivate the annotation on page close or require explicit deactivation by user (from right click menu). \crl +`toolbar` & `true` or `false` & `true` & Whether to show 3D toolbar (with view and other options). \crl +`views` & comma separated list of view s & `` & List of names of 3D views to be used. The default is to try a view of same . Beware that unknown views are silently ignored. \crl +`scripts` & comma separated list of script s & (none) & List of names of JavaScript script file s to be used. \crl +`name` & ascii string & `` & Name for use with actions and scripts. \crll +}} +\endinsert + +The weird `name` key is only required if one media file is used +more than once and control using actions or JavaScript scripts is needed. + +Examples of video insertion: + +\begtt +% embed file under name "video" +\filedef/e[video]{example-movie.mp4} +% insert video into page using Renditions mechanism with controls and autoplay +\render[video][ + name=bigvideo, + controls=true, + aactions=\renditionautoplay, +]{\picwidth=\hsize \inspic{example-image.pdf}} + +% render the same file again, but with different dimensions, no controls +% and explicit activation +\render[video]{\inspic{example-image.pdf}} +\endtt + +When displaying 3D there are more things involved. First, only U3D and PRC can +be included in PDF files. The simplest way to show the 3D scene on page is without +any optional parameters: +\par\nobreak\begtt +\RM[part.prc]{\picwidth=\hsize \inspic{part.png}} +\endtt + +The resulting view will be what is defined in the 3D file. But it is possible +to customize it, by creating custom view. Or even more of them -- they will be +available in the user interface for easy switching, first one is considered +default. Parameters not defined in a custom view often take what is in the 3D +file as default value. \^`\DDDview``[][]` is +the command for defining 3D views. The brackets surrounding key-value +parameters have to be included even if no key-value parameters are used. The +available parameters are explained in Table~\ref[tab:kv-3dview]. + +\midinsert +\label[tab:kv-3dview] +\caption/t Key value parameters available for 3D views (\~`\DDDview`) +\cskip +\centerline{\table{lp{38mm\fL}lp{55mm\fL}}{ +Key & Possible values & Default & Description \crll +`projection` & `perspective` or `ortho` & `perspective` & Projection type to use (perspective distorts the view, e.g. parallel lines are not shown as such, but is more natural to human eye, orthogonal projection is what is generally used with technical parts). \crl +`scale` & decimal number & 1 & Scaling to use when orthogonal projection is used. \crl +`FOV` & number between 0 and 180 & 30 & Field of view for use with perspective projection. \crl +`background` & \OpTeX/ color & `\White` & Color used as background in the 3D scene. \crl +`rendermode` & {\typosize[9/10]`Solid`,\hfil\break`SolidWireframe`,\hfil\break`Transparent`,\hfil\break`TransparentWireframe`,\hfil\break`BoundingBox`,\hfil\break`TransparentBoundingBox`,\hfil\break`Wireframe`,\hfil\break`ShadedWireframe`,\hfil\break`Vertices`,\hfil\break`ShadedVertices`,\hfil\break`Illustration`,\hfil\break`SolidOutline`,\hfil\break`ShadedIllustration`} & (taken from 3D file) & Used rendering mode. See PDF standard\tnote{\url{https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf\#G12.2358303}} for more details. \crl +`lighting` & `White`, `Day`, `Night`, `Hard`, `Primary`, `Blue`, `Red`, `Cube`, `CAD`, `Headlamp` & (taken from 3D file) & Used lighting scheme. See PDF standard\tnote{\url{https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf\#G12.2358356}} for more details.\crl +`method` & `media9`, `manual`, `u3d` & `media9` & Method used for defining 3D camera position and orientation. \crll +}} +\tnoteprint +\endinsert + +The value of `method` key influences what other key-value +parameters are available. For details about the manual method see the technical +documentation~(\ref[mm-3dviews]). The `u3d` method works only with U3D files +(not with PRC files) and requires you to know the internal \"path" of the view +contained in the file and is hence not always useful (especially when the paths +are weirdly constructed by exporting applications). But if you know the path +you can use \"`method=u3d, u3dpath=`". All Unicode characters are allowed in +. + +The most useful method of specifying the camera position/orientation is +`method=media9`. The same method is also used in a number of other packages +(movie15, rmannot, Con\TeX/t). Its input are key-value parameters, listed in +Table~\ref[tab:kv-media9]. For illustration of the parameters check the +documentation\fnote{\url{https://mirrors.ctan.org/macros/latex/contrib/media9/doc/media9.pdf\#figure.8}} +of media9. + +\midinsert +\label[tab:kv-media9] +\caption/t Key value parameters available for media9 method of 3D views (\^`\DDDview`) +\cskip +\centerline{\table{lp{38mm\fL}lp{50mm\fL}}{ +Key & Possible values & Default & Description \crll +`coo` & three space separated (decimal) numbers & `0 0 0` & \"Center of orbit". Coordinates of the point camera is supposed to look at. \crl +`roo` & (decimal) number & `0` & Distance of camera from `coo`. \crl +`c2c` & three space separated (decimal) numbers & `0 -1 0` & \"Center of orbit to camera" vector. A directional vector (i.e. length doesn't matter). The direction the camera will be looking at is opposite of this vector. Default is view towards positive $y$.\crll +}} +\endinsert + +You can construct simple views only by using these few parameters. When talking +about meanings/names of different views it is needed to know the real placement +of the 3D object in the 3D world. But for a reasonably orientated object in the +center (`coo=0 0 0`) constructing simple views is very easy (keep in mind +`method=media9` is default): + +\begtt +\DDDview[front][ + projection=ortho, + roo=400, +] +\DDDview[left][ + projection=ortho, + roo=400, + c2c=-1 0 0, +] +\DDDview[top][ + projection=ortho, + roo=400, + c2c=0 0 1, +] +\DDDview[isometric][ + projection=ortho, + roo=500, + c2c=-1 -1 1, +] +\endtt + +We can then perhaps use these views in \^`\RM`: + +\begtt +% Auto activated 3D Rich Media annotation. White background just ensures +% the right dimensions. Comma in `views` is escaped using "{}". +\RM[part.prc][ + activation=auto, + views={front, left}, +]{{\White\vrule width\hsize height\vsize}} + +\RM[part.prc][ % the same 3D file, now with different views + name=part2, + activation=auto, + views={top, isometric}, +]{{\White\vrule width\hsize height\vsize}} +\endtt + +If you want to deduce the view parameters automatically it is possible. You can +just not specify any view, but include the `3Dmenu.js` script from media9 +package. It enables you to right click the annotation and select \"Get Current +View" (or even \"Generate Default View" which finds the view all by itself). A +window with generated parameters will show up. You can then copy the ones this +package understands (`c2c`, `coo`, `roo`) and use them. You don't have to be +excessive with precision, because after calculation everything gets rounded to +6 decimal places anyways. + +\begtt +% using 3Dmenu.js to generate 3D view parameters automatically +\RM[part.prc][ + name=part3, + activation=auto, + scripts=3Dmenu.js, +]{{\White\vrule width\hsize height\vsize}} +\endtt + +The use of `scripts` isn't limited to this though, there are many other +possibilities. First, you can use as many scripts as you want +(`scripts={script1.js, script2.js, ...}`), but be careful that 3D JavaScript is +kind of special, and has to come from embedded files (here we +were using the auto-embedding, but we could have used e.g. +\~`\filedef/e[3dmenu]{3Dmenu.js}` and then \"`3dmenu`" instead). For creating +your own scripts check out the Acrobat 3D JavaScript +API\fnote{\url{https://wwwimages.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/AcrobatDC_js_3d_api_reference.pdf}}. +It is possible to do different transformations and achieve animations using +\"time events". The implicit \"context" of 3D scripts can be accessed from +normal JavaScript actions (see~\ref[user:actions-3djs]). Vice versa 3D scripts +may access the global JavaScript environment using `host` object. + +More examples of 3D Rich Media, including usage of 3D JavaScript, are available +in the example file `pdfextra-example.tex`. They show how it is possible to +port the examples used by media9. + +\sec Actions + +Actions are very important aspect of interactivity in the context of PDF. There +are a few very useful types of actions, like \"goto" actions which jump to +other part of document. There are also a few ways how to {\em execute} actions. +The most usual is a clickable area on page, but clickable bookmarks (\"document +outline") also execute actions behind the scenes. \OpTeX/ supports only basic +\"goto" and \"URI" actions using `\ilink` (used for `\ref`, `\cite`, etc.) and +`\ulink` (used for `\url`). + +This package offers generalization of this mechanism. The core of it is a way +of specifying an action. This syntax is called and is used for +example by `\hlink` command, which can replace both `\ilink` and `\ulink`. + is a comma separated list of `:`. where +refers to the action type and the syntax of arguments is dependant on . +Leading spaces are ignored, trailing aren't. You probably won't often use the +possiblity of specifying multiple actions, but it is for chaining execution of +several actions. + +\^`\pdfaction``[]` is available for lower level creation of +different actions, but for clickable areas on page you will use +\^`\hlink``[]{}` with a very similiar syntax. Although note, +that `\hlink`'s interface is also not really high level and wrapping it inside +macros like `\ref` or `\url` might be beneficial. will be typeset +directly and the area it occupies will be clickable. Clicking it executes +action defined by . Line breaks inside will be possible, in +that case several clickable rectangles will be created, one for each line. +Normally in text you want the ares to be of the same height and depth +(calculated from `\baselineskip`), to achieve sort of a lining, uniform effect. +If you want to define big clickable buttons, you may need to turn off the +lining effect using \^`\nolininglinks`. It respects groups, but a counterpart +(\^`\lininglinks`) is also available. + +There are a few predefined action types (): `url`, `extref`, `extpgref`, +`named`, `transition`, `js`, `goto3dview` and `rendition`. They will be explained in a +moment. Any unrecognized is understood as an \"internal link", where +`:` is the destination of the link. Hence it is possible to +use `\hlink` as `\ilink` for example with \OpTeX/'s normal types +of internal links. For example: +\begtt +See section~\hlink[ref:section]{2.2.13} or page~\hlink[pg:5]{5}. +\endtt +`\ulink` may be replaced like this: +\begtt +Visit CTAN's \hlink[url:https://www.ctan.org/]{website}. +\endtt + +Before we really get into different types of actions, there is a nicer command +for setting the initial (\"open") action of PDF document, which is executed +when the document is opened. It defaults to opening the page with the zoom +level according to viewing user's preferences. But you can change this using +\^`\openaction``[]`: + +\begtt +\openaction[pg:2] +\endtt + +\secc External references +There are two actions analogous to internal links that can be used to link to +external documents. `[extref::]` can be used to refer +to named locations in a PDF document prepared by `\filedef` with . +`[extpgref::]` is similiar but refers to a page number. +Although it would be nice, these actions aren't well supported by all viewers. + +Example: + +\begtt +\hlink[extref:doc-internet:ref:langphrases]{OpTeX documentation, + section \"Multilingual phrases and quotation marks".} +\hlink[extpgref:doc-internet:12]{OpTeX documentation, page 12.} +\endtt + +(Note that \"`:`" in \"`ref:langphrase`" is not part of the syntactic rule, it +is just the value of in this case.) + +A little bit of customization is possible, see~\ref[actions-jump]. + +Because of the poor support you may find luck with the less universal url action with `#fragment`: + +\begtt +\hlink[url:http://petr.olsak.net/ftp/olsak/optex/optex-doc.pdf#ref:langphrases] + {OpTeX documentation, section \"Multilingual phrases and quotation marks".} +\endtt + +\secc Named actions +There are four defined in PDF standard, but viewers may support more. All in +examples: + +\begtt +\hlink[named:NextPage]{Go to next page,} +\hlink[named:PrevPage]{go to previous page,} +\hlink[named:FirstPage]{go to first page,} +\hlink[named:LastPage]{go to last page.} +\endtt + +\secc Transition actions + +Transition actions generally make sense only when chained {\em after} jump +actions. The specified transition/animation will occur, before destination is +opened, but it will not override a transition defined for the particular page. +The syntax is `[transition:]`. See~\ref[user:transitions] for +more information about ``. + +Example: +\begtt +\hlink[ref:yellow-slide, transition:Box:3:/M /O] + {Go to yellow slide with long outward Box transition} +\endtt + +\secc JavaScript actions + +They allow executing pieces of JavaScript code using syntax: +`[js:]`. If is a validly `\filedef`'d the script from file + will be executed (only embedded files are valid). Otherwise