summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-12-17 03:01:00 +0000
committerNorbert Preining <norbert@preining.info>2021-12-17 03:01:00 +0000
commit6827f87d3315fc677ae89a9260d455a312a90864 (patch)
tree88318243546c8d29294c2d21d5d7998ccd9d57a4
parent16b22a983bc0f05cbbb201a6e0f5cbbfc3c8fffb (diff)
CTAN sync 202112170300
-rw-r--r--FILES.byname864
-rw-r--r--FILES.byname.gzbin2402900 -> 2403066 bytes
-rw-r--r--FILES.last07days956
-rw-r--r--graphics/pstricks/contrib/pst-hsb/Changes8
-rw-r--r--graphics/pstricks/contrib/pst-hsb/README19
-rw-r--r--graphics/pstricks/contrib/pst-hsb/doc/pst-hsb-doc.bib106
-rw-r--r--graphics/pstricks/contrib/pst-hsb/doc/pst-hsb-doc.pdfbin0 -> 200014 bytes
-rw-r--r--graphics/pstricks/contrib/pst-hsb/doc/pst-hsb-doc.tex153
-rw-r--r--graphics/pstricks/contrib/pst-hsb/latex/pst-hsb.sty11
-rw-r--r--graphics/pstricks/contrib/pst-hsb/tex/pst-hsb.tex131
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-spbasic/Changes4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-spbasic/doc/biblatex-spbasic.bib44
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-spbasic/doc/biblatex-spbasic.pdfbin71043 -> 73881 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-spbasic/doc/biblatex-spbasic.tex35
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-spbasic/latex/biblatex-spbasic.bbx116
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-spbasic/latex/biblatex-spbasic.cbx64
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-spbasic/latex/biblatex-spbasic.lbx478
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx89
-rw-r--r--macros/latex/contrib/easybook/easybook.pdfbin593159 -> 593346 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.tex16
-rw-r--r--macros/latex/contrib/gzt/doc/french/gzt-fr.pdfbin539021 -> 541777 bytes
-rw-r--r--macros/latex/contrib/gzt/source/gzt.dtx166
-rw-r--r--macros/latex/contrib/mindflow/mindflow.dtx38
-rw-r--r--macros/latex/contrib/mindflow/mindflow.pdfbin208084 -> 172607 bytes
-rw-r--r--macros/latex/contrib/minimalist/minimalist-doc.pdfbin98036 -> 112379 bytes
-rw-r--r--macros/latex/contrib/minimalist/minimalist-doc.tex4
-rw-r--r--macros/latex/contrib/minimalist/minimalist.sty45
-rw-r--r--macros/latex/contrib/minimalist/minimart.cls6
-rw-r--r--macros/latex/contrib/minimalist/minimbook.cls6
-rw-r--r--macros/latex/contrib/moderncv/CHANGELOG5
-rw-r--r--macros/latex/contrib/moderncv/README.md2
-rw-r--r--macros/latex/contrib/moderncv/moderncv.cls21
-rw-r--r--macros/latex/contrib/moderncv/moderncvbodyi.sty2
-rw-r--r--macros/latex/contrib/moderncv/moderncvbodyiii.sty2
-rw-r--r--macros/latex/contrib/moderncv/moderncvbodyiv.sty2
-rw-r--r--macros/latex/contrib/moderncv/moderncvbodyv.sty2
-rw-r--r--macros/latex/contrib/moderncv/moderncvcollection.sty2
-rw-r--r--macros/latex/contrib/moderncv/moderncvcolorblack.sty2
-rw-r--r--macros/latex/contrib/moderncv/moderncvcolorblue.sty2
-rw-r--r--macros/latex/contrib/moderncv/moderncvcolorburgundy.sty2
-rw-r--r--macros/latex/contrib/moderncv/moderncvcolorgreen.sty2
-rw-r--r--macros/latex/contrib/moderncv/moderncvcolorgrey.sty2
-rw-r--r--macros/latex/contrib/moderncv/moderncvcolororange.sty2
-rw-r--r--macros/latex/contrib/moderncv/moderncvcolorpurple.sty2
-rw-r--r--macros/latex/contrib/moderncv/moderncvcolorred.sty2
-rw-r--r--macros/latex/contrib/moderncv/moderncvcompatibility.sty2
-rw-r--r--macros/latex/contrib/moderncv/moderncvdebugtools.sty2
-rw-r--r--macros/latex/contrib/moderncv/moderncvfooti.sty2
-rw-r--r--macros/latex/contrib/moderncv/moderncvheadi.sty2
-rw-r--r--macros/latex/contrib/moderncv/moderncvheadii.sty2
-rw-r--r--macros/latex/contrib/moderncv/moderncvheadiii.sty2
-rw-r--r--macros/latex/contrib/moderncv/moderncvheadiv.sty2
-rw-r--r--macros/latex/contrib/moderncv/moderncvheadv.sty2
-rw-r--r--macros/latex/contrib/moderncv/moderncvheadvi.sty2
-rw-r--r--macros/latex/contrib/moderncv/moderncviconsacademic.sty54
-rw-r--r--macros/latex/contrib/moderncv/moderncviconsawesome.sty38
-rw-r--r--macros/latex/contrib/moderncv/moderncviconsletters.sty18
-rw-r--r--macros/latex/contrib/moderncv/moderncviconsmarvosym.sty251
-rw-r--r--macros/latex/contrib/moderncv/moderncviconssymbols.sty33
-rw-r--r--macros/latex/contrib/moderncv/moderncviconstikz.sty466
-rw-r--r--macros/latex/contrib/moderncv/moderncvskillmatrix.sty2
-rw-r--r--macros/latex/contrib/moderncv/moderncvstylebanking.sty10
-rw-r--r--macros/latex/contrib/moderncv/moderncvstylecasual.sty10
-rw-r--r--macros/latex/contrib/moderncv/moderncvstyleclassic.sty10
-rw-r--r--macros/latex/contrib/moderncv/moderncvstyleempty.sty10
-rw-r--r--macros/latex/contrib/moderncv/moderncvstylefancy.sty10
-rw-r--r--macros/latex/contrib/moderncv/moderncvstyleoldstyle.sty2
-rw-r--r--macros/latex/contrib/moderncv/template.tex19
-rw-r--r--macros/latex/contrib/projlib/ProjLib-doc-cn.pdfbin322521 -> 322407 bytes
-rw-r--r--macros/latex/contrib/projlib/ProjLib-doc-en.pdfbin200811 -> 200297 bytes
-rw-r--r--macros/latex/contrib/projlib/ProjLib-doc-fr.pdfbin202446 -> 201834 bytes
-rw-r--r--macros/latex/contrib/projlib/ProjLib-doc.dtx103
-rw-r--r--macros/latex/contrib/projlib/ProjLib.dtx27
-rw-r--r--macros/latex/contrib/spbmark/spbmark.pdfbin68252 -> 68292 bytes
-rw-r--r--macros/latex/contrib/spbmark/spbmark.sty26
-rw-r--r--macros/latex/contrib/spbmark/spbmark.tex14
-rw-r--r--macros/latex/contrib/tcolorbox/CHANGES.md (renamed from macros/latex/contrib/tcolorbox/CHANGES)240
-rw-r--r--macros/latex/contrib/tcolorbox/README95
-rw-r--r--macros/latex/contrib/tcolorbox/README.md96
-rw-r--r--macros/latex/contrib/tcolorbox/tcbbreakable.code.tex12
-rw-r--r--macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex10
-rw-r--r--macros/latex/contrib/tcolorbox/tcbexternal.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbfitting.code.tex20
-rw-r--r--macros/latex/contrib/tcolorbox/tcbhooks.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcblistings.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcblistingscore.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbmagazine.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbminted.code.tex134
-rw-r--r--macros/latex/contrib/tcolorbox/tcbposter.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbprocessing.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbraster.code.tex14
-rw-r--r--macros/latex/contrib/tcolorbox/tcbskins.code.tex44
-rw-r--r--macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbtheorems.code.tex296
-rw-r--r--macros/latex/contrib/tcolorbox/tcbvignette.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcbxparse.code.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdfbin281257 -> 281300 bytes
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex2
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-example.pdfbin468990 -> 469092 bytes
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-example.tex2
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdfbin455955 -> 455894 bytes
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex2
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.bib2
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex3
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex4
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex44
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty47
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.skins.tex63
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.doc.theorems.tex52
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.pdfbin7270565 -> 7598115 bytes
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.sty115
-rw-r--r--macros/latex/contrib/tcolorbox/tcolorbox.tex9
-rw-r--r--macros/unicodetex/latex/einfart/einfart-doc-cn.pdfbin250445 -> 250375 bytes
-rw-r--r--macros/unicodetex/latex/einfart/einfart-doc-cn.tex4
-rw-r--r--macros/unicodetex/latex/einfart/einfart-doc-en.pdfbin157077 -> 156990 bytes
-rw-r--r--macros/unicodetex/latex/einfart/einfart-doc-en.tex4
-rw-r--r--macros/unicodetex/latex/einfart/einfart-doc-fr.pdfbin162102 -> 162067 bytes
-rw-r--r--macros/unicodetex/latex/einfart/einfart-doc-fr.tex62
-rw-r--r--macros/unicodetex/latex/einfart/einfart.cls6
-rw-r--r--macros/unicodetex/latex/simplivre/simplivre-doc-cn.pdfbin310432 -> 310348 bytes
-rw-r--r--macros/unicodetex/latex/simplivre/simplivre-doc-cn.tex4
-rw-r--r--macros/unicodetex/latex/simplivre/simplivre-doc-en.pdfbin211883 -> 211798 bytes
-rw-r--r--macros/unicodetex/latex/simplivre/simplivre-doc-en.tex4
-rw-r--r--macros/unicodetex/latex/simplivre/simplivre-doc-fr.pdfbin214790 -> 214738 bytes
-rw-r--r--macros/unicodetex/latex/simplivre/simplivre-doc-fr.tex48
-rw-r--r--macros/unicodetex/latex/simplivre/simplivre.cls6
-rw-r--r--support/texlogsieve/LICENCE.txt674
-rw-r--r--support/texlogsieve/README.md143
-rwxr-xr-xsupport/texlogsieve/texlogsieve4022
-rw-r--r--support/texlogsieve/texlogsieve.1229
-rw-r--r--support/texlogsieve/texlogsieve.pdfbin0 -> 46978 bytes
-rw-r--r--support/texlogsieve/texlogsieve.tex312
-rwxr-xr-xsystems/texlive/tlnet/tlpkg/installer/config.guess7
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl3
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb169
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.md52
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha5122
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc14
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.xzbin2331488 -> 2329176 bytes
-rw-r--r--systems/win32/miktex/tm/packages/files.csv.lzmabin629274 -> 629460 bytes
-rw-r--r--systems/win32/miktex/tm/packages/next/pr.ini8
-rw-r--r--systems/win32/miktex/tm/packages/pr.ini8
-rw-r--r--timestamp2
144 files changed, 9446 insertions, 2171 deletions
diff --git a/FILES.byname b/FILES.byname
index ab1bb2afe5..2266775391 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -5107,7 +5107,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/12/15 | 158456 | FILES.last07days
+2021/12/16 | 122845 | FILES.last07days
2021/07/24 | 1139410 | fonts/aboensis/Aboensis.glyphs
2021/07/24 | 18907382 | fonts/aboensis/aboensis.pdf
2021/07/24 | 137860 | fonts/aboensis/Aboensis-Regular.otf
@@ -157294,6 +157294,14 @@
2011/03/13 | 1124 | graphics/pstricks/contrib/pst-graphicx/pst-graphicx.tex
2011/03/13 | 374 | graphics/pstricks/contrib/pst-graphicx/README
2011/03/14 | 1743 | graphics/pstricks/contrib/pst-graphicx.zip
+2021/12/16 | 137 | graphics/pstricks/contrib/pst-hsb/Changes
+2021/12/16 | 2970 | graphics/pstricks/contrib/pst-hsb/doc/pst-hsb-doc.bib
+2021/12/16 | 200014 | graphics/pstricks/contrib/pst-hsb/doc/pst-hsb-doc.pdf
+2021/12/16 | 3863 | graphics/pstricks/contrib/pst-hsb/doc/pst-hsb-doc.tex
+2021/12/16 | 414 | graphics/pstricks/contrib/pst-hsb/latex/pst-hsb.sty
+2021/12/16 | 832 | graphics/pstricks/contrib/pst-hsb/README
+2021/12/16 | 3778 | graphics/pstricks/contrib/pst-hsb/tex/pst-hsb.tex
+2021/12/16 | 198931 | graphics/pstricks/contrib/pst-hsb.zip
2005/05/16 | 108 | graphics/pstricks/contrib/pst-infixplot/infix-RPN.sty
2005/05/16 | 13010 | graphics/pstricks/contrib/pst-infixplot/infix-RPN.tex
2005/05/16 | 144791 | graphics/pstricks/contrib/pst-infixplot/pst-infixplot-doc.ps
@@ -183304,7 +183312,7 @@
2009/10/14 | 121304 | install/macros/latex/contrib/gmverse.tds.zip
2019/12/03 | 314941 | install/macros/latex/contrib/grfext.tds.zip
2020/02/12 | 232319 | install/macros/latex/contrib/gridset.tds.zip
-2021/12/01 | 1289344 | install/macros/latex/contrib/gzt.tds.zip
+2021/12/16 | 1291390 | install/macros/latex/contrib/gzt.tds.zip
2009/09/02 | 158493 | install/macros/latex/contrib/hanging.tds.zip
2011/02/12 | 134911 | install/macros/latex/contrib/hardwrap.tds.zip
2016/06/07 | 215651 | install/macros/latex/contrib/he-she.tds.zip
@@ -183455,7 +183463,7 @@
2014/05/20 | 721827 | install/macros/latex/contrib/sympytexpackage.tds.zip
2014/01/26 | 526292 | install/macros/latex/contrib/tablefootnote.tds.zip
2013/01/22 | 615461 | install/macros/latex/contrib/tabvar.tds.zip
-2021/06/14 | 6244324 | install/macros/latex/contrib/tcolorbox.tds.zip
+2021/12/16 | 6318226 | install/macros/latex/contrib/tcolorbox.tds.zip
2009/06/22 | 771373 | install/macros/latex/contrib/tdsfrmath.tds.zip
2019/09/29 | 5325410 | install/macros/latex/contrib/testidx.tds.zip
2021/09/26 | 482772 | install/macros/latex/contrib/thalie.tds.zip
@@ -203293,13 +203301,15 @@
2017/09/21 | 445 | macros/latex/contrib/biblatex-contrib/biblatex-source-division/makefile
2017/09/21 | 474 | macros/latex/contrib/biblatex-contrib/biblatex-source-division/README
2017/09/21 | 67286 | macros/latex/contrib/biblatex-contrib/biblatex-source-division.zip
-2021/07/12 | 70 | macros/latex/contrib/biblatex-contrib/biblatex-spbasic/Changes
-2021/07/12 | 71043 | macros/latex/contrib/biblatex-contrib/biblatex-spbasic/doc/biblatex-spbasic.pdf
-2021/07/12 | 3597 | macros/latex/contrib/biblatex-contrib/biblatex-spbasic/doc/biblatex-spbasic.tex
-2021/07/12 | 1722 | macros/latex/contrib/biblatex-contrib/biblatex-spbasic/latex/biblatex-spbasic.bbx
-2021/07/12 | 437 | macros/latex/contrib/biblatex-contrib/biblatex-spbasic/latex/biblatex-spbasic.cbx
+2021/12/16 | 275 | macros/latex/contrib/biblatex-contrib/biblatex-spbasic/Changes
+2021/12/15 | 1358 | macros/latex/contrib/biblatex-contrib/biblatex-spbasic/doc/biblatex-spbasic.bib
+2021/12/16 | 73881 | macros/latex/contrib/biblatex-contrib/biblatex-spbasic/doc/biblatex-spbasic.pdf
+2021/12/16 | 4038 | macros/latex/contrib/biblatex-contrib/biblatex-spbasic/doc/biblatex-spbasic.tex
+2021/12/16 | 4047 | macros/latex/contrib/biblatex-contrib/biblatex-spbasic/latex/biblatex-spbasic.bbx
+2021/12/16 | 2601 | macros/latex/contrib/biblatex-contrib/biblatex-spbasic/latex/biblatex-spbasic.cbx
+2021/12/16 | 29564 | macros/latex/contrib/biblatex-contrib/biblatex-spbasic/latex/biblatex-spbasic.lbx
2021/07/12 | 419 | macros/latex/contrib/biblatex-contrib/biblatex-spbasic/README
-2021/07/12 | 73830 | macros/latex/contrib/biblatex-contrib/biblatex-spbasic.zip
+2021/12/16 | 83441 | macros/latex/contrib/biblatex-contrib/biblatex-spbasic.zip
2015/05/06 | 252 | macros/latex/contrib/biblatex-contrib/biblatex-subseries/documentation/biblatex-subseries-example.bib
2017/02/24 | 8321 | macros/latex/contrib/biblatex-contrib/biblatex-subseries/documentation/biblatex-subseries-example.pdf
2015/05/05 | 180 | macros/latex/contrib/biblatex-contrib/biblatex-subseries/documentation/biblatex-subseries-example.tex
@@ -207789,12 +207799,12 @@
2008/02/10 | 19110 | macros/latex/contrib/ean13isbn/License.txt
2021/01/24 | 422 | macros/latex/contrib/ean13isbn/README
2021/01/24 | 322624 | macros/latex/contrib/ean13isbn.zip
-2021/12/15 | 83392 | macros/latex/contrib/easybook/easybook.dtx
+2021/12/16 | 83239 | macros/latex/contrib/easybook/easybook.dtx
2021/11/17 | 2075 | macros/latex/contrib/easybook/easybook.ins
-2021/12/15 | 593159 | macros/latex/contrib/easybook/easybook.pdf
-2021/12/15 | 84762 | macros/latex/contrib/easybook/easybook.tex
+2021/12/16 | 593346 | macros/latex/contrib/easybook/easybook.pdf
+2021/12/16 | 84707 | macros/latex/contrib/easybook/easybook.tex
2021/11/17 | 795 | macros/latex/contrib/easybook/README.md
-2021/12/15 | 635874 | macros/latex/contrib/easybook.zip
+2021/12/16 | 636009 | macros/latex/contrib/easybook.zip
2009/06/17 | 82589 | macros/latex/contrib/easy/doc/docbib.pdf
2009/06/17 | 78378 | macros/latex/contrib/easy/doc/docbmat.pdf
2009/06/17 | 99132 | macros/latex/contrib/easy/doc/doceqn.pdf
@@ -211895,21 +211905,21 @@
2020/07/03 | 495312 | macros/latex/contrib/GuIT/GuITlogo.zip
2007/01/19 | 1553 | macros/latex/contrib/gu/README
2007/01/20 | 738287 | macros/latex/contrib/gu.zip
-2021/12/01 | 569292 | macros/latex/contrib/gzt/doc/english/gzt-code.pdf
-2021/12/01 | 289 | macros/latex/contrib/gzt/doc/english/README-TRANSLATION.md
-2021/12/01 | 88304 | macros/latex/contrib/gzt/doc/french/denis.png
-2021/12/01 | 1434 | macros/latex/contrib/gzt/doc/french/gzt-fr.bib
-2021/12/01 | 539021 | macros/latex/contrib/gzt/doc/french/gzt-fr.pdf
-2021/12/01 | 2656 | macros/latex/contrib/gzt/doc/french/gzt-fr.tex
-2021/12/01 | 646 | macros/latex/contrib/gzt/doc/french/sections/fixed-footnotes.tex
-2021/12/01 | 60390 | macros/latex/contrib/gzt/doc/french/sections/gztarticle.tex
-2021/12/01 | 5671 | macros/latex/contrib/gzt/doc/french/sections/notations.tex
-2021/12/01 | 1432 | macros/latex/contrib/gzt/doc/french/sections/packages-charges.tex
-2021/12/01 | 385 | macros/latex/contrib/gzt/doc/french/sections/todo.tex
-2021/12/01 | 1077 | macros/latex/contrib/gzt/README.md
-2021/12/01 | 224328 | macros/latex/contrib/gzt/source/gzt.dtx
-2021/12/01 | 8134 | macros/latex/contrib/gzt/source/gzt-logo.pdf
-2021/12/01 | 1232917 | macros/latex/contrib/gzt.zip
+2021/12/16 | 569292 | macros/latex/contrib/gzt/doc/english/gzt-code.pdf
+2021/12/16 | 289 | macros/latex/contrib/gzt/doc/english/README-TRANSLATION.md
+2021/12/16 | 88304 | macros/latex/contrib/gzt/doc/french/denis.png
+2021/12/16 | 1434 | macros/latex/contrib/gzt/doc/french/gzt-fr.bib
+2021/12/16 | 541777 | macros/latex/contrib/gzt/doc/french/gzt-fr.pdf
+2021/12/16 | 2656 | macros/latex/contrib/gzt/doc/french/gzt-fr.tex
+2021/12/16 | 646 | macros/latex/contrib/gzt/doc/french/sections/fixed-footnotes.tex
+2021/12/16 | 60390 | macros/latex/contrib/gzt/doc/french/sections/gztarticle.tex
+2021/12/16 | 5671 | macros/latex/contrib/gzt/doc/french/sections/notations.tex
+2021/12/16 | 1432 | macros/latex/contrib/gzt/doc/french/sections/packages-charges.tex
+2021/12/16 | 385 | macros/latex/contrib/gzt/doc/french/sections/todo.tex
+2021/12/16 | 1077 | macros/latex/contrib/gzt/README.md
+2021/12/16 | 230698 | macros/latex/contrib/gzt/source/gzt.dtx
+2021/12/16 | 8134 | macros/latex/contrib/gzt/source/gzt-logo.pdf
+2021/12/16 | 1234917 | macros/latex/contrib/gzt.zip
2015/09/19 | 35147 | macros/latex/contrib/h2020proposal/gpl.txt
2015/09/19 | 41208 | macros/latex/contrib/h2020proposal/h2020proposal.cls
2015/09/19 | 62655 | macros/latex/contrib/h2020proposal/manual/h2020proposal.pdf
@@ -216260,11 +216270,11 @@
2016/07/03 | 1176 | macros/latex/contrib/milog/README.md
2016/07/03 | 488253 | macros/latex/contrib/milog.zip
2021/03/10 | 19106 | macros/latex/contrib/mindflow/LICENSE
-2021/09/15 | 21765 | macros/latex/contrib/mindflow/mindflow.dtx
+2021/12/16 | 20816 | macros/latex/contrib/mindflow/mindflow.dtx
2021/03/12 | 1705 | macros/latex/contrib/mindflow/mindflow.ins
-2021/09/15 | 208084 | macros/latex/contrib/mindflow/mindflow.pdf
+2021/12/16 | 172607 | macros/latex/contrib/mindflow/mindflow.pdf
2021/03/17 | 396 | macros/latex/contrib/mindflow/README.md
-2021/09/16 | 219853 | macros/latex/contrib/mindflow.zip
+2021/12/16 | 184217 | macros/latex/contrib/mindflow.zip
2013/06/21 | 72 | macros/latex/contrib/minibox/minibox.ins
2013/06/21 | 280644 | macros/latex/contrib/minibox/minibox.pdf
2013/06/21 | 7633 | macros/latex/contrib/minibox/minibox.tex
@@ -216276,14 +216286,14 @@
2017/04/11 | 187597 | macros/latex/contrib/minidocument/minidocument.pdf
2017/04/11 | 698 | macros/latex/contrib/minidocument/README
2017/04/11 | 190869 | macros/latex/contrib/minidocument.zip
-2021/11/09 | 19106 | macros/latex/contrib/minimalist/LICENSE
-2021/11/09 | 98036 | macros/latex/contrib/minimalist/minimalist-doc.pdf
-2021/11/09 | 29380 | macros/latex/contrib/minimalist/minimalist-doc.tex
-2021/11/09 | 31373 | macros/latex/contrib/minimalist/minimalist.sty
-2021/11/09 | 6727 | macros/latex/contrib/minimalist/minimart.cls
-2021/11/09 | 6724 | macros/latex/contrib/minimalist/minimbook.cls
-2021/11/09 | 2062 | macros/latex/contrib/minimalist/README.md
-2021/11/09 | 120165 | macros/latex/contrib/minimalist.zip
+2021/12/16 | 19106 | macros/latex/contrib/minimalist/LICENSE
+2021/12/16 | 112379 | macros/latex/contrib/minimalist/minimalist-doc.pdf
+2021/12/16 | 29380 | macros/latex/contrib/minimalist/minimalist-doc.tex
+2021/12/16 | 30763 | macros/latex/contrib/minimalist/minimalist.sty
+2021/12/16 | 6304 | macros/latex/contrib/minimalist/minimart.cls
+2021/12/16 | 6301 | macros/latex/contrib/minimalist/minimbook.cls
+2021/12/16 | 2062 | macros/latex/contrib/minimalist/README.md
+2021/12/16 | 133309 | macros/latex/contrib/minimalist.zip
2008/04/07 | 14406 | macros/latex/contrib/minipage-marginpar/minipage-marginpar.dtx
2008/04/07 | 2167 | macros/latex/contrib/minipage-marginpar/minipage-marginpar.ins
2008/04/07 | 197917 | macros/latex/contrib/minipage-marginpar/minipage-marginpar.pdf
@@ -216527,51 +216537,54 @@
2019/02/11 | 159 | macros/latex/contrib/modeles-factures-belges-assocs/README-facture-basique.md
2019/02/11 | 1817 | macros/latex/contrib/modeles-factures-belges-assocs/README.md
2019/02/12 | 270733 | macros/latex/contrib/modeles-factures-belges-assocs.zip
-2021/07/28 | 20848 | macros/latex/contrib/moderncv/CHANGELOG
-2021/07/28 | 985 | macros/latex/contrib/moderncv/KNOWN_BUGS
-2021/07/28 | 19039 | macros/latex/contrib/moderncv/LICENSE.txt
-2021/07/28 | 320611 | macros/latex/contrib/moderncv/manual/moderncv_userguide.pdf
-2021/07/28 | 15509 | macros/latex/contrib/moderncv/manual/moderncv_userguide.tex
-2021/07/28 | 10536 | macros/latex/contrib/moderncv/moderncvbodyiii.sty
-2021/07/28 | 7506 | macros/latex/contrib/moderncv/moderncvbodyi.sty
-2021/07/28 | 7220 | macros/latex/contrib/moderncv/moderncvbodyiv.sty
-2021/07/28 | 9379 | macros/latex/contrib/moderncv/moderncvbodyv.sty
-2021/07/28 | 34274 | macros/latex/contrib/moderncv/moderncv.cls
-2021/07/28 | 3575 | macros/latex/contrib/moderncv/moderncvcollection.sty
-2021/07/28 | 1040 | macros/latex/contrib/moderncv/moderncvcolorblack.sty
-2021/07/28 | 1063 | macros/latex/contrib/moderncv/moderncvcolorblue.sty
-2021/07/28 | 1117 | macros/latex/contrib/moderncv/moderncvcolorburgundy.sty
-2021/07/28 | 1062 | macros/latex/contrib/moderncv/moderncvcolorgreen.sty
-2021/07/28 | 1062 | macros/latex/contrib/moderncv/moderncvcolorgrey.sty
-2021/07/28 | 1067 | macros/latex/contrib/moderncv/moderncvcolororange.sty
-2021/07/28 | 1067 | macros/latex/contrib/moderncv/moderncvcolorpurple.sty
-2021/07/28 | 1052 | macros/latex/contrib/moderncv/moderncvcolorred.sty
-2021/07/28 | 4486 | macros/latex/contrib/moderncv/moderncvcompatibility.sty
-2021/07/28 | 2079 | macros/latex/contrib/moderncv/moderncvdebugtools.sty
-2021/07/28 | 7131 | macros/latex/contrib/moderncv/moderncvfooti.sty
-2021/07/28 | 7717 | macros/latex/contrib/moderncv/moderncvheadiii.sty
-2021/07/28 | 9720 | macros/latex/contrib/moderncv/moderncvheadii.sty
-2021/07/28 | 8930 | macros/latex/contrib/moderncv/moderncvheadi.sty
-2021/07/28 | 9357 | macros/latex/contrib/moderncv/moderncvheadiv.sty
-2021/07/28 | 8307 | macros/latex/contrib/moderncv/moderncvheadvi.sty
-2021/07/28 | 7990 | macros/latex/contrib/moderncv/moderncvheadv.sty
-2021/07/28 | 3541 | macros/latex/contrib/moderncv/moderncviconsawesome.sty
-2021/07/28 | 3373 | macros/latex/contrib/moderncv/moderncviconsletters.sty
-2021/07/28 | 15363 | macros/latex/contrib/moderncv/moderncviconsmarvosym.sty
-2021/07/28 | 69080 | macros/latex/contrib/moderncv/moderncvskillmatrix.sty
-2021/07/28 | 3345 | macros/latex/contrib/moderncv/moderncvstylebanking.sty
-2021/07/28 | 2473 | macros/latex/contrib/moderncv/moderncvstylecasual.sty
-2021/07/28 | 2459 | macros/latex/contrib/moderncv/moderncvstyleclassic.sty
-2021/07/28 | 2365 | macros/latex/contrib/moderncv/moderncvstyleempty.sty
-2021/07/28 | 2114 | macros/latex/contrib/moderncv/moderncvstylefancy.sty
-2021/07/28 | 2568 | macros/latex/contrib/moderncv/moderncvstyleoldstyle.sty
-2021/07/28 | 59416 | macros/latex/contrib/moderncv/picture.eps
-2021/07/28 | 1645 | macros/latex/contrib/moderncv/picture.jpg
-2021/07/28 | 823 | macros/latex/contrib/moderncv/publications.bib
-2021/07/28 | 926 | macros/latex/contrib/moderncv/README.md
-2021/07/28 | 15345 | macros/latex/contrib/moderncv/template.tex
-2021/07/28 | 2019 | macros/latex/contrib/moderncv/tweaklist.sty
-2021/07/28 | 336778 | macros/latex/contrib/moderncv.zip
+2021/12/16 | 20982 | macros/latex/contrib/moderncv/CHANGELOG
+2021/12/16 | 985 | macros/latex/contrib/moderncv/KNOWN_BUGS
+2021/12/16 | 19039 | macros/latex/contrib/moderncv/LICENSE.txt
+2021/12/16 | 320611 | macros/latex/contrib/moderncv/manual/moderncv_userguide.pdf
+2021/12/16 | 15509 | macros/latex/contrib/moderncv/manual/moderncv_userguide.tex
+2021/12/16 | 10536 | macros/latex/contrib/moderncv/moderncvbodyiii.sty
+2021/12/16 | 7506 | macros/latex/contrib/moderncv/moderncvbodyi.sty
+2021/12/16 | 7220 | macros/latex/contrib/moderncv/moderncvbodyiv.sty
+2021/12/16 | 9379 | macros/latex/contrib/moderncv/moderncvbodyv.sty
+2021/12/16 | 33835 | macros/latex/contrib/moderncv/moderncv.cls
+2021/12/16 | 3575 | macros/latex/contrib/moderncv/moderncvcollection.sty
+2021/12/16 | 1040 | macros/latex/contrib/moderncv/moderncvcolorblack.sty
+2021/12/16 | 1063 | macros/latex/contrib/moderncv/moderncvcolorblue.sty
+2021/12/16 | 1117 | macros/latex/contrib/moderncv/moderncvcolorburgundy.sty
+2021/12/16 | 1062 | macros/latex/contrib/moderncv/moderncvcolorgreen.sty
+2021/12/16 | 1062 | macros/latex/contrib/moderncv/moderncvcolorgrey.sty
+2021/12/16 | 1067 | macros/latex/contrib/moderncv/moderncvcolororange.sty
+2021/12/16 | 1067 | macros/latex/contrib/moderncv/moderncvcolorpurple.sty
+2021/12/16 | 1052 | macros/latex/contrib/moderncv/moderncvcolorred.sty
+2021/12/16 | 4486 | macros/latex/contrib/moderncv/moderncvcompatibility.sty
+2021/12/16 | 2079 | macros/latex/contrib/moderncv/moderncvdebugtools.sty
+2021/12/16 | 7131 | macros/latex/contrib/moderncv/moderncvfooti.sty
+2021/12/16 | 7717 | macros/latex/contrib/moderncv/moderncvheadiii.sty
+2021/12/16 | 9720 | macros/latex/contrib/moderncv/moderncvheadii.sty
+2021/12/16 | 8930 | macros/latex/contrib/moderncv/moderncvheadi.sty
+2021/12/16 | 9357 | macros/latex/contrib/moderncv/moderncvheadiv.sty
+2021/12/16 | 8307 | macros/latex/contrib/moderncv/moderncvheadvi.sty
+2021/12/16 | 7990 | macros/latex/contrib/moderncv/moderncvheadv.sty
+2021/12/16 | 2429 | macros/latex/contrib/moderncv/moderncviconsacademic.sty
+2021/12/16 | 3597 | macros/latex/contrib/moderncv/moderncviconsawesome.sty
+2021/12/16 | 2988 | macros/latex/contrib/moderncv/moderncviconsletters.sty
+2021/12/16 | 1552 | macros/latex/contrib/moderncv/moderncviconsmarvosym.sty
+2021/12/16 | 1109 | macros/latex/contrib/moderncv/moderncviconssymbols.sty
+2021/12/16 | 28043 | macros/latex/contrib/moderncv/moderncviconstikz.sty
+2021/12/16 | 69080 | macros/latex/contrib/moderncv/moderncvskillmatrix.sty
+2021/12/16 | 3192 | macros/latex/contrib/moderncv/moderncvstylebanking.sty
+2021/12/16 | 2320 | macros/latex/contrib/moderncv/moderncvstylecasual.sty
+2021/12/16 | 2306 | macros/latex/contrib/moderncv/moderncvstyleclassic.sty
+2021/12/16 | 2212 | macros/latex/contrib/moderncv/moderncvstyleempty.sty
+2021/12/16 | 1961 | macros/latex/contrib/moderncv/moderncvstylefancy.sty
+2021/12/16 | 2568 | macros/latex/contrib/moderncv/moderncvstyleoldstyle.sty
+2021/12/16 | 59416 | macros/latex/contrib/moderncv/picture.eps
+2021/12/16 | 1645 | macros/latex/contrib/moderncv/picture.jpg
+2021/12/16 | 823 | macros/latex/contrib/moderncv/publications.bib
+2021/12/16 | 1139 | macros/latex/contrib/moderncv/README.md
+2021/12/16 | 15797 | macros/latex/contrib/moderncv/template.tex
+2021/12/16 | 2019 | macros/latex/contrib/moderncv/tweaklist.sty
+2021/12/16 | 341917 | macros/latex/contrib/moderncv.zip
2018/04/03 | 196876 | macros/latex/contrib/modernposter/demo.pdf
2018/04/03 | 5959 | macros/latex/contrib/modernposter/demo.tex
2018/04/03 | 7042 | macros/latex/contrib/modernposter/modernposter.cls
@@ -220095,16 +220108,16 @@
2003/07/02 | 9461 | macros/latex/contrib/progress/progress.tex
2003/07/02 | 413 | macros/latex/contrib/progress/README
2006/05/20 | 88703 | macros/latex/contrib/progress.zip
-2021/11/09 | 19106 | macros/latex/contrib/projlib/LICENSE
-2021/11/09 | 322521 | macros/latex/contrib/projlib/ProjLib-doc-cn.pdf
-2021/11/09 | 97981 | macros/latex/contrib/projlib/ProjLib-doc.dtx
-2021/11/09 | 200811 | macros/latex/contrib/projlib/ProjLib-doc-en.pdf
-2021/11/09 | 202446 | macros/latex/contrib/projlib/ProjLib-doc-fr.pdf
-2021/11/09 | 857 | macros/latex/contrib/projlib/ProjLib-doc.ins
-2021/11/09 | 135750 | macros/latex/contrib/projlib/ProjLib.dtx
-2021/11/09 | 2832 | macros/latex/contrib/projlib/ProjLib.ins
-2021/11/09 | 4348 | macros/latex/contrib/projlib/README.md
-2021/11/09 | 774053 | macros/latex/contrib/projlib.zip
+2021/12/16 | 19106 | macros/latex/contrib/projlib/LICENSE
+2021/12/16 | 322407 | macros/latex/contrib/projlib/ProjLib-doc-cn.pdf
+2021/12/16 | 98208 | macros/latex/contrib/projlib/ProjLib-doc.dtx
+2021/12/16 | 200297 | macros/latex/contrib/projlib/ProjLib-doc-en.pdf
+2021/12/16 | 201834 | macros/latex/contrib/projlib/ProjLib-doc-fr.pdf
+2021/12/16 | 857 | macros/latex/contrib/projlib/ProjLib-doc.ins
+2021/12/16 | 135371 | macros/latex/contrib/projlib/ProjLib.dtx
+2021/12/16 | 2832 | macros/latex/contrib/projlib/ProjLib.ins
+2021/12/16 | 4348 | macros/latex/contrib/projlib/README.md
+2021/12/16 | 772758 | macros/latex/contrib/projlib.zip
2019/05/22 | 116402 | macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.pdf
2019/05/22 | 8959 | macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.tex
2019/05/22 | 49789 | macros/latex/contrib/proof-at-the-end/proof-at-the-end.dtx
@@ -223056,10 +223069,10 @@
2016/10/06 | 136549 | macros/latex/contrib/spalign/spalign.pdf
2016/10/06 | 132943 | macros/latex/contrib/spalign.zip
2021/06/27 | 571 | macros/latex/contrib/spbmark/README.md
-2021/12/15 | 68252 | macros/latex/contrib/spbmark/spbmark.pdf
-2021/12/15 | 11518 | macros/latex/contrib/spbmark/spbmark.sty
-2021/12/15 | 9600 | macros/latex/contrib/spbmark/spbmark.tex
-2021/12/15 | 72633 | macros/latex/contrib/spbmark.zip
+2021/12/16 | 68292 | macros/latex/contrib/spbmark/spbmark.pdf
+2021/12/16 | 11519 | macros/latex/contrib/spbmark/spbmark.sty
+2021/12/16 | 9608 | macros/latex/contrib/spbmark/spbmark.tex
+2021/12/16 | 72673 | macros/latex/contrib/spbmark.zip
2010/10/31 | 241052 | macros/latex/contrib/sphack/sphack-doc.pdf
2010/10/31 | 4122 | macros/latex/contrib/sphack/sphack-doc.tex
2010/12/23 | 4230 | macros/latex/contrib/sphack/sphack.sty
@@ -224505,75 +224518,75 @@
2003/07/20 | 8323 | macros/latex/contrib/tclldoc/tools/sourcedtx.dtx
2003/07/20 | 759 | macros/latex/contrib/tclldoc/tools/sourcedtx.ins
2005/07/26 | 525675 | macros/latex/contrib/tclldoc.zip
-2021/06/14 | 22407 | macros/latex/contrib/tcolorbox/Basilica_5.png
-2021/06/14 | 62882 | macros/latex/contrib/tcolorbox/blueshade.png
-2021/06/14 | 57640 | macros/latex/contrib/tcolorbox/CHANGES
-2021/06/14 | 21663 | macros/latex/contrib/tcolorbox/crinklepaper.png
-2021/06/14 | 76829 | macros/latex/contrib/tcolorbox/goldshade.png
-2021/06/14 | 35224 | macros/latex/contrib/tcolorbox/lichtspiel.jpg
-2021/06/14 | 15166 | macros/latex/contrib/tcolorbox/pink_marble.png
-2021/06/14 | 5277 | macros/latex/contrib/tcolorbox/README
-2021/06/14 | 34121 | macros/latex/contrib/tcolorbox/tcbbreakable.code.tex
-2021/06/14 | 27896 | macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex
-2021/06/14 | 9033 | macros/latex/contrib/tcolorbox/tcbexternal.code.tex
-2021/06/14 | 14533 | macros/latex/contrib/tcolorbox/tcbfitting.code.tex
-2021/06/14 | 8118 | macros/latex/contrib/tcolorbox/tcbhooks.code.tex
-2021/06/14 | 3412 | macros/latex/contrib/tcolorbox/tcblistings.code.tex
-2021/06/14 | 13911 | macros/latex/contrib/tcolorbox/tcblistingscore.code.tex
-2021/06/14 | 1412 | macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex
-2021/06/14 | 5630 | macros/latex/contrib/tcolorbox/tcbmagazine.code.tex
-2021/06/14 | 2670 | macros/latex/contrib/tcolorbox/tcbminted.code.tex
-2021/06/14 | 12451 | macros/latex/contrib/tcolorbox/tcbposter.code.tex
-2021/06/14 | 2589 | macros/latex/contrib/tcolorbox/tcbprocessing.code.tex
-2021/06/14 | 9063 | macros/latex/contrib/tcolorbox/tcbraster.code.tex
-2021/06/14 | 87118 | macros/latex/contrib/tcolorbox/tcbskins.code.tex
-2021/06/14 | 10038 | macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex
-2021/06/14 | 9057 | macros/latex/contrib/tcolorbox/tcbtheorems.code.tex
-2021/06/14 | 12745 | macros/latex/contrib/tcolorbox/tcbvignette.code.tex
-2021/06/14 | 10266 | macros/latex/contrib/tcolorbox/tcbxparse.code.tex
-2021/06/14 | 5404 | macros/latex/contrib/tcolorbox/tcolorbox.doc.abstract.tex
-2021/06/14 | 6424 | macros/latex/contrib/tcolorbox/tcolorbox.doc.beamer.tex
-2021/06/14 | 6102 | macros/latex/contrib/tcolorbox/tcolorbox.doc.bib
-2021/06/14 | 39859 | macros/latex/contrib/tcolorbox/tcolorbox.doc.breakable.tex
-2021/06/14 | 9907 | macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex
-2021/06/14 | 169197 | macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex
-2021/06/14 | 56340 | macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex
-2021/06/14 | 25816 | macros/latex/contrib/tcolorbox/tcolorbox.doc.external.tex
-2021/06/14 | 20201 | macros/latex/contrib/tcolorbox/tcolorbox.doc.filling.tex
-2021/06/14 | 19956 | macros/latex/contrib/tcolorbox/tcolorbox.doc.fitting.tex
-2021/06/14 | 7928 | macros/latex/contrib/tcolorbox/tcolorbox.doc.graphics.tex
-2021/06/14 | 24548 | macros/latex/contrib/tcolorbox/tcolorbox.doc.hooks.tex
-2021/06/14 | 112 | macros/latex/contrib/tcolorbox/tcolorbox.doc.index.tex
-2021/06/14 | 15656 | macros/latex/contrib/tcolorbox/tcolorbox.doc.initoptions.tex
-2021/06/14 | 8722 | macros/latex/contrib/tcolorbox/tcolorbox.doc.intro.tex
-2021/06/14 | 57164 | macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex
-2021/06/14 | 20274 | macros/latex/contrib/tcolorbox/tcolorbox.doc.magazine.tex
-2021/06/14 | 1106 | macros/latex/contrib/tcolorbox/tcolorbox.doc.picturecredits.tex
-2021/06/14 | 25557 | macros/latex/contrib/tcolorbox/tcolorbox.doc.poster.tex
-2021/06/14 | 5577 | macros/latex/contrib/tcolorbox/tcolorbox.doc.quickref.tex
-2021/06/14 | 33131 | macros/latex/contrib/tcolorbox/tcolorbox.doc.raster.tex
-2021/06/14 | 6386 | macros/latex/contrib/tcolorbox/tcolorbox.doc.recording.tex
-2021/06/14 | 148 | macros/latex/contrib/tcolorbox/tcolorbox.doc.references.tex
-2021/06/14 | 13613 | macros/latex/contrib/tcolorbox/tcolorbox.doc.sidebyside.tex
-2021/06/14 | 56212 | macros/latex/contrib/tcolorbox/tcolorbox.doc.skincatalog.tex
-2021/06/14 | 110973 | macros/latex/contrib/tcolorbox/tcolorbox.doc.skins.tex
-2021/06/14 | 11677 | macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty
-2021/06/14 | 6691 | macros/latex/contrib/tcolorbox/tcolorbox.doc.s_snippet.sty
-2021/06/14 | 29849 | macros/latex/contrib/tcolorbox/tcolorbox.doc.technical.tex
-2021/06/14 | 40056 | macros/latex/contrib/tcolorbox/tcolorbox.doc.theorems.tex
-2021/06/14 | 3448 | macros/latex/contrib/tcolorbox/tcolorbox.doc.verbatim.tex
-2021/06/14 | 28432 | macros/latex/contrib/tcolorbox/tcolorbox.doc.vignette.tex
-2021/06/14 | 27086 | macros/latex/contrib/tcolorbox/tcolorbox.doc.xparse.tex
-2021/06/14 | 468990 | macros/latex/contrib/tcolorbox/tcolorbox-example.pdf
-2021/06/14 | 281257 | macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdf
-2021/06/14 | 5989 | macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex
-2021/06/14 | 8354 | macros/latex/contrib/tcolorbox/tcolorbox-example.tex
-2021/06/14 | 7270565 | macros/latex/contrib/tcolorbox/tcolorbox.pdf
-2021/06/14 | 88953 | macros/latex/contrib/tcolorbox/tcolorbox.sty
-2021/06/14 | 3274 | macros/latex/contrib/tcolorbox/tcolorbox.tex
-2021/06/14 | 455955 | macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdf
-2021/06/14 | 44097 | macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex
-2021/06/14 | 6274223 | macros/latex/contrib/tcolorbox.zip
+2021/12/16 | 22407 | macros/latex/contrib/tcolorbox/Basilica_5.png
+2021/12/16 | 62882 | macros/latex/contrib/tcolorbox/blueshade.png
+2021/12/16 | 59686 | macros/latex/contrib/tcolorbox/CHANGES.md
+2021/12/16 | 21663 | macros/latex/contrib/tcolorbox/crinklepaper.png
+2021/12/16 | 76829 | macros/latex/contrib/tcolorbox/goldshade.png
+2021/12/16 | 35224 | macros/latex/contrib/tcolorbox/lichtspiel.jpg
+2021/12/16 | 15166 | macros/latex/contrib/tcolorbox/pink_marble.png
+2021/12/16 | 5048 | macros/latex/contrib/tcolorbox/README.md
+2021/12/16 | 34114 | macros/latex/contrib/tcolorbox/tcbbreakable.code.tex
+2021/12/16 | 28148 | macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex
+2021/12/16 | 9035 | macros/latex/contrib/tcolorbox/tcbexternal.code.tex
+2021/12/16 | 14922 | macros/latex/contrib/tcolorbox/tcbfitting.code.tex
+2021/12/16 | 8120 | macros/latex/contrib/tcolorbox/tcbhooks.code.tex
+2021/12/16 | 3414 | macros/latex/contrib/tcolorbox/tcblistings.code.tex
+2021/12/16 | 13913 | macros/latex/contrib/tcolorbox/tcblistingscore.code.tex
+2021/12/16 | 1414 | macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex
+2021/12/16 | 5632 | macros/latex/contrib/tcolorbox/tcbmagazine.code.tex
+2021/12/16 | 4444 | macros/latex/contrib/tcolorbox/tcbminted.code.tex
+2021/12/16 | 12453 | macros/latex/contrib/tcolorbox/tcbposter.code.tex
+2021/12/16 | 2591 | macros/latex/contrib/tcolorbox/tcbprocessing.code.tex
+2021/12/16 | 9359 | macros/latex/contrib/tcolorbox/tcbraster.code.tex
+2021/12/16 | 88290 | macros/latex/contrib/tcolorbox/tcbskins.code.tex
+2021/12/16 | 10040 | macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex
+2021/12/16 | 11530 | macros/latex/contrib/tcolorbox/tcbtheorems.code.tex
+2021/12/16 | 12747 | macros/latex/contrib/tcolorbox/tcbvignette.code.tex
+2021/12/16 | 10268 | macros/latex/contrib/tcolorbox/tcbxparse.code.tex
+2021/12/16 | 5404 | macros/latex/contrib/tcolorbox/tcolorbox.doc.abstract.tex
+2021/12/16 | 6424 | macros/latex/contrib/tcolorbox/tcolorbox.doc.beamer.tex
+2021/12/16 | 6182 | macros/latex/contrib/tcolorbox/tcolorbox.doc.bib
+2021/12/16 | 39859 | macros/latex/contrib/tcolorbox/tcolorbox.doc.breakable.tex
+2021/12/16 | 9907 | macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex
+2021/12/16 | 169300 | macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex
+2021/12/16 | 56438 | macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex
+2021/12/16 | 25816 | macros/latex/contrib/tcolorbox/tcolorbox.doc.external.tex
+2021/12/16 | 20201 | macros/latex/contrib/tcolorbox/tcolorbox.doc.filling.tex
+2021/12/16 | 19956 | macros/latex/contrib/tcolorbox/tcolorbox.doc.fitting.tex
+2021/12/16 | 7928 | macros/latex/contrib/tcolorbox/tcolorbox.doc.graphics.tex
+2021/12/16 | 24548 | macros/latex/contrib/tcolorbox/tcolorbox.doc.hooks.tex
+2021/12/16 | 112 | macros/latex/contrib/tcolorbox/tcolorbox.doc.index.tex
+2021/12/16 | 15656 | macros/latex/contrib/tcolorbox/tcolorbox.doc.initoptions.tex
+2021/12/16 | 8722 | macros/latex/contrib/tcolorbox/tcolorbox.doc.intro.tex
+2021/12/16 | 58854 | macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex
+2021/12/16 | 20274 | macros/latex/contrib/tcolorbox/tcolorbox.doc.magazine.tex
+2021/12/16 | 1106 | macros/latex/contrib/tcolorbox/tcolorbox.doc.picturecredits.tex
+2021/12/16 | 25557 | macros/latex/contrib/tcolorbox/tcolorbox.doc.poster.tex
+2021/12/16 | 5577 | macros/latex/contrib/tcolorbox/tcolorbox.doc.quickref.tex
+2021/12/16 | 33131 | macros/latex/contrib/tcolorbox/tcolorbox.doc.raster.tex
+2021/12/16 | 6386 | macros/latex/contrib/tcolorbox/tcolorbox.doc.recording.tex
+2021/12/16 | 148 | macros/latex/contrib/tcolorbox/tcolorbox.doc.references.tex
+2021/12/16 | 13613 | macros/latex/contrib/tcolorbox/tcolorbox.doc.sidebyside.tex
+2021/12/16 | 56212 | macros/latex/contrib/tcolorbox/tcolorbox.doc.skincatalog.tex
+2021/12/16 | 113296 | macros/latex/contrib/tcolorbox/tcolorbox.doc.skins.tex
+2021/12/16 | 11606 | macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty
+2021/12/16 | 6691 | macros/latex/contrib/tcolorbox/tcolorbox.doc.s_snippet.sty
+2021/12/16 | 29849 | macros/latex/contrib/tcolorbox/tcolorbox.doc.technical.tex
+2021/12/16 | 39345 | macros/latex/contrib/tcolorbox/tcolorbox.doc.theorems.tex
+2021/12/16 | 3448 | macros/latex/contrib/tcolorbox/tcolorbox.doc.verbatim.tex
+2021/12/16 | 28432 | macros/latex/contrib/tcolorbox/tcolorbox.doc.vignette.tex
+2021/12/16 | 27086 | macros/latex/contrib/tcolorbox/tcolorbox.doc.xparse.tex
+2021/12/16 | 469092 | macros/latex/contrib/tcolorbox/tcolorbox-example.pdf
+2021/12/16 | 281300 | macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdf
+2021/12/16 | 5990 | macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex
+2021/12/16 | 8355 | macros/latex/contrib/tcolorbox/tcolorbox-example.tex
+2021/12/16 | 7598115 | macros/latex/contrib/tcolorbox/tcolorbox.pdf
+2021/12/16 | 90325 | macros/latex/contrib/tcolorbox/tcolorbox.sty
+2021/12/16 | 3365 | macros/latex/contrib/tcolorbox/tcolorbox.tex
+2021/12/16 | 455894 | macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdf
+2021/12/16 | 44098 | macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex
+2021/12/16 | 6351981 | macros/latex/contrib/tcolorbox.zip
2014/02/24 | 399 | macros/latex/contrib/tdclock/Changelog
2014/02/24 | 421 | macros/latex/contrib/tdclock/README
2014/02/24 | 87447 | macros/latex/contrib/tdclock/tdclock-beamer-example.pdf
@@ -242602,16 +242615,16 @@
2021/06/12 | 237 | macros/unicodetex/latex/chhaya/ref.bib
2021/06/12 | 5309 | macros/unicodetex/latex/chhaya/sankshep.tex
2021/06/12 | 177243 | macros/unicodetex/latex/chhaya.zip
-2021/11/09 | 19263 | macros/unicodetex/latex/einfart/einfart.cls
-2021/11/09 | 250445 | macros/unicodetex/latex/einfart/einfart-doc-cn.pdf
-2021/11/09 | 25035 | macros/unicodetex/latex/einfart/einfart-doc-cn.tex
-2021/11/09 | 157077 | macros/unicodetex/latex/einfart/einfart-doc-en.pdf
-2021/11/09 | 26979 | macros/unicodetex/latex/einfart/einfart-doc-en.tex
-2021/11/09 | 162102 | macros/unicodetex/latex/einfart/einfart-doc-fr.pdf
-2021/11/09 | 29192 | macros/unicodetex/latex/einfart/einfart-doc-fr.tex
-2021/11/09 | 19106 | macros/unicodetex/latex/einfart/LICENSE
-2021/11/09 | 1116 | macros/unicodetex/latex/einfart/README.md
-2021/11/09 | 594414 | macros/unicodetex/latex/einfart.zip
+2021/12/16 | 18840 | macros/unicodetex/latex/einfart/einfart.cls
+2021/12/16 | 250375 | macros/unicodetex/latex/einfart/einfart-doc-cn.pdf
+2021/12/16 | 25035 | macros/unicodetex/latex/einfart/einfart-doc-cn.tex
+2021/12/16 | 156990 | macros/unicodetex/latex/einfart/einfart-doc-en.pdf
+2021/12/16 | 26979 | macros/unicodetex/latex/einfart/einfart-doc-en.tex
+2021/12/16 | 162067 | macros/unicodetex/latex/einfart/einfart-doc-fr.pdf
+2021/12/16 | 29161 | macros/unicodetex/latex/einfart/einfart-doc-fr.tex
+2021/12/16 | 19106 | macros/unicodetex/latex/einfart/LICENSE
+2021/12/16 | 1116 | macros/unicodetex/latex/einfart/README.md
+2021/12/16 | 594232 | macros/unicodetex/latex/einfart.zip
2021/12/09 | 460242 | macros/unicodetex/latex/fontsetup/doc/fontsetup-doc.pdf
2021/12/09 | 17927 | macros/unicodetex/latex/fontsetup/doc/fontsetup-doc.tex
2021/12/09 | 27714 | macros/unicodetex/latex/fontsetup/doc/fspsample-cmr.pdf
@@ -242962,16 +242975,16 @@
2016/02/13 | 1755 | macros/unicodetex/latex/realscripts/realscripts.ins
2016/02/13 | 106569 | macros/unicodetex/latex/realscripts/realscripts.pdf
2016/02/13 | 108915 | macros/unicodetex/latex/realscripts.zip
-2021/11/09 | 19106 | macros/unicodetex/latex/simplivre/LICENSE
-2021/11/09 | 1113 | macros/unicodetex/latex/simplivre/README.md
-2021/11/09 | 19267 | macros/unicodetex/latex/simplivre/simplivre.cls
-2021/11/09 | 310432 | macros/unicodetex/latex/simplivre/simplivre-doc-cn.pdf
-2021/11/09 | 24345 | macros/unicodetex/latex/simplivre/simplivre-doc-cn.tex
-2021/11/09 | 211883 | macros/unicodetex/latex/simplivre/simplivre-doc-en.pdf
-2021/11/09 | 26268 | macros/unicodetex/latex/simplivre/simplivre-doc-en.tex
-2021/11/09 | 214790 | macros/unicodetex/latex/simplivre/simplivre-doc-fr.pdf
-2021/11/09 | 28379 | macros/unicodetex/latex/simplivre/simplivre-doc-fr.tex
-2021/11/09 | 745199 | macros/unicodetex/latex/simplivre.zip
+2021/12/16 | 19106 | macros/unicodetex/latex/simplivre/LICENSE
+2021/12/16 | 1113 | macros/unicodetex/latex/simplivre/README.md
+2021/12/16 | 18844 | macros/unicodetex/latex/simplivre/simplivre.cls
+2021/12/16 | 310348 | macros/unicodetex/latex/simplivre/simplivre-doc-cn.pdf
+2021/12/16 | 24345 | macros/unicodetex/latex/simplivre/simplivre-doc-cn.tex
+2021/12/16 | 211798 | macros/unicodetex/latex/simplivre/simplivre-doc-en.pdf
+2021/12/16 | 26268 | macros/unicodetex/latex/simplivre/simplivre-doc-en.tex
+2021/12/16 | 214738 | macros/unicodetex/latex/simplivre/simplivre-doc-fr.pdf
+2021/12/16 | 28355 | macros/unicodetex/latex/simplivre/simplivre-doc-fr.tex
+2021/12/16 | 744849 | macros/unicodetex/latex/simplivre.zip
2021/02/09 | 13142 | macros/unicodetex/latex/texnegar/doc-ligature-texnegar.pdf
2021/02/09 | 10117 | macros/unicodetex/latex/texnegar/doc-ligature-xep.pdf
2021/02/09 | 63437 | macros/unicodetex/latex/texnegar/doc-samples-glyph.pdf
@@ -274062,6 +274075,13 @@
2015/09/07 | 12666 | support/texlog_extract/texlog_extract
2015/09/07 | 43353 | support/texlog_extract/texlog_extract.pdf
2015/09/07 | 47810 | support/texlog_extract.zip
+2021/12/16 | 35149 | support/texlogsieve/LICENCE.txt
+2021/12/16 | 5495 | support/texlogsieve/README.md
+2021/12/16 | 133646 | support/texlogsieve/texlogsieve
+2021/12/16 | 8524 | support/texlogsieve/texlogsieve.1
+2021/12/16 | 46978 | support/texlogsieve/texlogsieve.pdf
+2021/12/16 | 12631 | support/texlogsieve/texlogsieve.tex
+2021/12/16 | 103098 | support/texlogsieve.zip
2001/12/14 | 1585 | support/TeXmacs/README
2013/09/20 | 19826467 | support/TeXmacs/TeXmacs-1.0.7.20-1.i386.rpm
2013/09/24 | 29347074 | support/TeXmacs/TeXmacs-1.0.7.20.dmg
@@ -279451,8 +279471,8 @@
2019/02/28 | 2688 | systems/texlive/tlnet/archive/cntformats.r34668.tar.xz
2019/02/28 | 271048 | systems/texlive/tlnet/archive/cntperchap.doc.r37572.tar.xz
2019/02/28 | 3964 | systems/texlive/tlnet/archive/cntperchap.r37572.tar.xz
-2021/12/15 | 576832 | systems/texlive/tlnet/archive/cochineal.doc.r61299.tar.xz
-2021/12/15 | 2444212 | systems/texlive/tlnet/archive/cochineal.r61299.tar.xz
+2021/12/16 | 576908 | systems/texlive/tlnet/archive/cochineal.doc.r61309.tar.xz
+2021/12/16 | 2574116 | systems/texlive/tlnet/archive/cochineal.r61309.tar.xz
2019/07/13 | 257164 | systems/texlive/tlnet/archive/codeanatomy.doc.r51627.tar.xz
2019/07/13 | 1836 | systems/texlive/tlnet/archive/codeanatomy.r51627.tar.xz
2019/07/13 | 4596 | systems/texlive/tlnet/archive/codeanatomy.source.r51627.tar.xz
@@ -280846,9 +280866,9 @@
2021/07/19 | 313228 | systems/texlive/tlnet/archive/easing.doc.r59975.tar.xz
2021/07/19 | 2220 | systems/texlive/tlnet/archive/easing.r59975.tar.xz
2021/07/19 | 7876 | systems/texlive/tlnet/archive/easing.source.r59975.tar.xz
-2021/12/14 | 616228 | systems/texlive/tlnet/archive/easybook.doc.r61296.tar.xz
-2021/12/14 | 17960 | systems/texlive/tlnet/archive/easybook.r61296.tar.xz
-2021/12/14 | 17988 | systems/texlive/tlnet/archive/easybook.source.r61296.tar.xz
+2021/12/16 | 614840 | systems/texlive/tlnet/archive/easybook.doc.r61311.tar.xz
+2021/12/16 | 17948 | systems/texlive/tlnet/archive/easybook.r61311.tar.xz
+2021/12/16 | 17980 | systems/texlive/tlnet/archive/easybook.source.r61311.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
@@ -282295,11 +282315,11 @@
2019/02/28 | 1160 | systems/texlive/tlnet/archive/graphics-cfg.r41448.tar.xz
2021/11/22 | 604 | systems/texlive/tlnet/archive/graphics-def.doc.r61111.tar.xz
2021/11/22 | 10932 | systems/texlive/tlnet/archive/graphics-def.r61111.tar.xz
-2021/11/13 | 2028360 | systems/texlive/tlnet/archive/graphics.doc.r61041.tar.xz
+2021/12/16 | 2029540 | systems/texlive/tlnet/archive/graphics.doc.r61315.tar.xz
2021/11/16 | 2236 | systems/texlive/tlnet/archive/graphics-pln.doc.r61063.tar.xz
2021/11/16 | 8780 | systems/texlive/tlnet/archive/graphics-pln.r61063.tar.xz
-2021/11/13 | 15180 | systems/texlive/tlnet/archive/graphics.r61041.tar.xz
-2021/11/13 | 52372 | systems/texlive/tlnet/archive/graphics.source.r61041.tar.xz
+2021/12/16 | 15180 | systems/texlive/tlnet/archive/graphics.r61315.tar.xz
+2021/12/16 | 52412 | systems/texlive/tlnet/archive/graphics.source.r61315.tar.xz
2019/02/28 | 438064 | systems/texlive/tlnet/archive/graphicxbox.doc.r32630.tar.xz
2019/02/28 | 1400 | systems/texlive/tlnet/archive/graphicxbox.r32630.tar.xz
2019/02/28 | 3692 | systems/texlive/tlnet/archive/graphicxbox.source.r32630.tar.xz
@@ -283302,14 +283322,14 @@
2019/02/28 | 344 | systems/texlive/tlnet/archive/l3build.amd64-freebsd.r46894.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/l3build.amd64-netbsd.r46894.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/l3build.armhf-linux.r46894.tar.xz
-2021/12/10 | 743660 | systems/texlive/tlnet/archive/l3build.doc.r61260.tar.xz
+2021/12/16 | 743580 | systems/texlive/tlnet/archive/l3build.doc.r61312.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/l3build.i386-cygwin.r46894.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/l3build.i386-freebsd.r46894.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/l3build.i386-linux.r46894.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/l3build.i386-netbsd.r46894.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/l3build.i386-solaris.r46894.tar.xz
-2021/12/10 | 35516 | systems/texlive/tlnet/archive/l3build.r61260.tar.xz
-2021/12/10 | 30748 | systems/texlive/tlnet/archive/l3build.source.r61260.tar.xz
+2021/12/16 | 35536 | systems/texlive/tlnet/archive/l3build.r61312.tar.xz
+2021/12/16 | 30760 | systems/texlive/tlnet/archive/l3build.source.r61312.tar.xz
2021/02/25 | 340 | systems/texlive/tlnet/archive/l3build.universal-darwin.r57908.tar.xz
2019/02/28 | 684 | systems/texlive/tlnet/archive/l3build.win32.r46894.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/l3build.x86_64-cygwin.r46894.tar.xz
@@ -283573,15 +283593,15 @@
2019/02/28 | 344 | systems/texlive/tlnet/archive/latexindent.amd64-freebsd.r32150.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/latexindent.amd64-netbsd.r32150.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/latexindent.armhf-linux.r32150.tar.xz
-2021/11/17 | 1128296 | systems/texlive/tlnet/archive/latexindent.doc.r61075.tar.xz
+2021/12/16 | 1131368 | systems/texlive/tlnet/archive/latexindent.doc.r61316.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/latexindent.i386-cygwin.r32150.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/latexindent.i386-freebsd.r32150.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/latexindent.i386-linux.r32150.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/latexindent.i386-netbsd.r32150.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/latexindent.i386-solaris.r32150.tar.xz
-2021/11/17 | 67996 | systems/texlive/tlnet/archive/latexindent.r61075.tar.xz
+2021/12/16 | 68136 | systems/texlive/tlnet/archive/latexindent.r61316.tar.xz
2021/02/25 | 344 | systems/texlive/tlnet/archive/latexindent.universal-darwin.r57908.tar.xz
-2021/11/17 | 4061192 | systems/texlive/tlnet/archive/latexindent.win32.r61075.tar.xz
+2021/12/16 | 4061768 | systems/texlive/tlnet/archive/latexindent.win32.r61316.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/latexindent.x86_64-cygwin.r33557.tar.xz
2019/02/28 | 352 | systems/texlive/tlnet/archive/latexindent.x86_64-darwinlegacy.r43871.tar.xz
2019/02/28 | 348 | systems/texlive/tlnet/archive/latexindent.x86_64-linuxmusl.r46840.tar.xz
@@ -284316,9 +284336,9 @@
2021/01/08 | 3476 | systems/texlive/tlnet/archive/lua-visual-debug.r57349.tar.xz
2021/03/04 | 95132 | systems/texlive/tlnet/archive/luavlna.doc.r58087.tar.xz
2021/03/04 | 7628 | systems/texlive/tlnet/archive/luavlna.r58087.tar.xz
-2021/11/28 | 288216 | systems/texlive/tlnet/archive/lua-widow-control.doc.r61174.tar.xz
-2021/11/28 | 6488 | systems/texlive/tlnet/archive/lua-widow-control.r61174.tar.xz
-2021/11/28 | 11796 | systems/texlive/tlnet/archive/lua-widow-control.source.r61174.tar.xz
+2021/12/16 | 288532 | systems/texlive/tlnet/archive/lua-widow-control.doc.r61317.tar.xz
+2021/12/16 | 6512 | systems/texlive/tlnet/archive/lua-widow-control.r61317.tar.xz
+2021/12/16 | 11832 | systems/texlive/tlnet/archive/lua-widow-control.source.r61317.tar.xz
2021/10/08 | 123428 | systems/texlive/tlnet/archive/luaxml.doc.r60709.tar.xz
2021/10/08 | 32276 | systems/texlive/tlnet/archive/luaxml.r60709.tar.xz
2021/11/09 | 55628 | systems/texlive/tlnet/archive/lutabulartools.doc.r61003.tar.xz
@@ -285362,9 +285382,9 @@
2021/07/13 | 6572 | systems/texlive/tlnet/archive/newcastle-bst.r59904.tar.xz
2019/02/28 | 407624 | systems/texlive/tlnet/archive/newcommand.doc.r18704.tar.xz
2019/02/28 | 496 | systems/texlive/tlnet/archive/newcommand.r18704.tar.xz
-2021/12/10 | 1677452 | systems/texlive/tlnet/archive/newcomputermodern.doc.r61257.tar.xz
-2021/12/10 | 7441172 | systems/texlive/tlnet/archive/newcomputermodern.r61257.tar.xz
-2021/12/10 | 15135460 | systems/texlive/tlnet/archive/newcomputermodern.source.r61257.tar.xz
+2021/12/16 | 1669088 | systems/texlive/tlnet/archive/newcomputermodern.doc.r61310.tar.xz
+2021/12/16 | 7445240 | systems/texlive/tlnet/archive/newcomputermodern.r61310.tar.xz
+2021/12/16 | 15165200 | systems/texlive/tlnet/archive/newcomputermodern.source.r61310.tar.xz
2019/02/28 | 1632 | systems/texlive/tlnet/archive/newenviron.doc.r29331.tar.xz
2019/02/28 | 2488 | systems/texlive/tlnet/archive/newenviron.r29331.tar.xz
2019/02/28 | 147644 | systems/texlive/tlnet/archive/newfile.doc.r15878.tar.xz
@@ -287167,9 +287187,9 @@
2021/02/03 | 1874644 | systems/texlive/tlnet/archive/quran-ur.r57597.tar.xz
2020/09/12 | 599896 | systems/texlive/tlnet/archive/qyxf-book.doc.r56319.tar.xz
2020/09/12 | 5180 | systems/texlive/tlnet/archive/qyxf-book.r56319.tar.xz
-2021/02/07 | 664008 | systems/texlive/tlnet/archive/ragged2e.doc.r57638.tar.xz
-2021/02/07 | 2924 | systems/texlive/tlnet/archive/ragged2e.r57638.tar.xz
-2021/02/07 | 11392 | systems/texlive/tlnet/archive/ragged2e.source.r57638.tar.xz
+2021/12/16 | 676844 | systems/texlive/tlnet/archive/ragged2e.doc.r61313.tar.xz
+2021/12/16 | 2936 | systems/texlive/tlnet/archive/ragged2e.r61313.tar.xz
+2021/12/16 | 11492 | systems/texlive/tlnet/archive/ragged2e.source.r61313.tar.xz
2019/02/28 | 185360 | systems/texlive/tlnet/archive/raleway.doc.r42629.tar.xz
2019/02/28 | 2336284 | systems/texlive/tlnet/archive/raleway.r42629.tar.xz
2019/02/28 | 67312 | systems/texlive/tlnet/archive/randbild.doc.r15878.tar.xz
@@ -287854,8 +287874,8 @@
2021/02/23 | 1371428 | systems/texlive/tlnet/archive/spath3.doc.r57842.tar.xz
2021/02/23 | 21472 | systems/texlive/tlnet/archive/spath3.r57842.tar.xz
2021/02/23 | 31740 | systems/texlive/tlnet/archive/spath3.source.r57842.tar.xz
-2021/11/15 | 69112 | systems/texlive/tlnet/archive/spbmark.doc.r61057.tar.xz
-2021/11/15 | 2504 | systems/texlive/tlnet/archive/spbmark.r61057.tar.xz
+2021/12/16 | 70396 | systems/texlive/tlnet/archive/spbmark.doc.r61314.tar.xz
+2021/12/16 | 2876 | systems/texlive/tlnet/archive/spbmark.r61314.tar.xz
2021/01/03 | 80960 | systems/texlive/tlnet/archive/spectral.doc.r57296.tar.xz
2021/01/03 | 3545232 | systems/texlive/tlnet/archive/spectral.r57296.tar.xz
2021/07/20 | 1839584 | systems/texlive/tlnet/archive/spectralsequences.doc.r59992.tar.xz
@@ -288634,7 +288654,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/12/15 | 402028 | systems/texlive/tlnet/archive/texlive-scripts.doc.r61298.tar.xz
+2021/12/16 | 402028 | systems/texlive/tlnet/archive/texlive-scripts.doc.r61308.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
@@ -288658,7 +288678,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/12/15 | 108264 | systems/texlive/tlnet/archive/texlive-scripts.r61298.tar.xz
+2021/12/16 | 108288 | systems/texlive/tlnet/archive/texlive-scripts.r61308.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
@@ -290411,16 +290431,16 @@
2020/07/18 | 47816 | systems/texlive/tlnet/archive/zztex.doc.r55862.tar.xz
2020/07/18 | 101724 | systems/texlive/tlnet/archive/zztex.r55862.tar.xz
2021/12/06 | 105168 | systems/texlive/tlnet/install-tl
-2021/12/15 | 6812262 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2021/12/15 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2021/12/15 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2021/12/16 | 6811617 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2021/12/16 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2021/12/16 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2021/04/11 | 4945 | systems/texlive/tlnet/install-tl-windows.bat
-2021/12/15 | 20873099 | systems/texlive/tlnet/install-tl-windows.exe
-2021/12/15 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2021/12/15 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2021/12/15 | 25631428 | systems/texlive/tlnet/install-tl.zip
-2021/12/15 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2021/12/15 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2021/12/16 | 20872022 | systems/texlive/tlnet/install-tl-windows.exe
+2021/12/16 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2021/12/16 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2021/12/16 | 25631461 | systems/texlive/tlnet/install-tl.zip
+2021/12/16 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2021/12/16 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2021/04/01 | 1229 | systems/texlive/tlnet/README.md
2021/04/01 | 0 | systems/texlive/tlnet/TEXLIVE_2021
2021/07/03 | 7181 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
@@ -290428,9 +290448,9 @@
2016/04/12 | 0 | systems/texlive/tlnet/tlpkg/gpg/secring.gpg
2021/10/21 | 2100 | systems/texlive/tlnet/tlpkg/gpg/tl-key-extension.txt
2021/07/03 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
-2021/07/02 | 49348 | systems/texlive/tlnet/tlpkg/installer/config.guess
+2021/12/15 | 49408 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
-2021/12/14 | 6697 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2021/12/15 | 6751 | 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
@@ -290472,12 +290492,12 @@
2021/05/16 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2021/05/16 | 5402 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2021/05/16 | 27555 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2021/12/15 | 17021200 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2021/12/15 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2021/12/16 | 17021325 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2021/12/16 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2021/05/16 | 86511 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2021/12/15 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2021/12/15 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2021/12/15 | 2331488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2021/12/16 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2021/12/16 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2021/12/16 | 2329176 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2021/05/16 | 58801 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2021/05/16 | 42084 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2021/05/16 | 16103 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -295498,7 +295518,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/12/15 | 629274 | systems/win32/miktex/tm/packages/files.csv.lzma
+2021/12/16 | 629460 | 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
@@ -296976,9 +296996,9 @@
2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma
2021/12/09 | 39714 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma
2021/12/09 | 43639 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
-2021/12/15 | 256257 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2021/12/15 | 1395926 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2021/12/15 | 1293166 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2021/12/16 | 256254 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2021/12/16 | 1395367 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2021/12/16 | 1291910 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2021/12/09 | 13527 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma
2021/12/09 | 14417 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma
2016/07/15 | 35914 | systems/win32/miktex/tm/packages/mil3.tar.lzma
@@ -297198,193 +297218,193 @@
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/12/15 | 629475 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2021/12/15 | 51587 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2021/12/15 | 57408 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2021/12/15 | 959950 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2021/12/15 | 1087067 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2021/12/15 | 28893 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2021/12/15 | 31538 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2021/12/15 | 30179 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2021/12/15 | 35262 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2021/12/15 | 50732 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2021/12/15 | 58369 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2021/12/15 | 86767 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
-2021/12/15 | 95272 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2021/12/15 | 68799 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2021/12/15 | 77072 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2021/12/15 | 27240 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2021/12/15 | 31332 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2021/12/15 | 332373 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
-2021/12/15 | 394270 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2021/12/15 | 32989 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2021/12/15 | 37092 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2021/12/15 | 51429 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2021/12/15 | 57277 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2021/12/15 | 256198 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2021/12/15 | 281442 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2021/12/15 | 179706 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
-2021/12/15 | 196120 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2021/12/15 | 54947 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2021/12/15 | 62416 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2021/12/15 | 21371 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2021/12/15 | 24150 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2021/12/15 | 461243 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2021/12/15 | 46134 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2021/12/15 | 52095 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2021/12/15 | 285453 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2021/12/15 | 326388 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2021/12/15 | 41326 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2021/12/15 | 45685 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2021/12/15 | 120295 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2021/12/15 | 135072 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2021/12/15 | 1299132 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
-2021/12/15 | 1447743 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2021/12/15 | 99759 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2021/12/15 | 113045 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2021/12/15 | 43637 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2021/12/15 | 48803 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2021/12/15 | 25132 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2021/12/15 | 28545 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2021/12/15 | 56962 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2021/12/15 | 63311 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2021/12/15 | 135930 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2021/12/15 | 155287 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2021/12/15 | 73599 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2021/12/15 | 79137 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2021/12/15 | 72254 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2021/12/15 | 81708 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2021/12/15 | 259274 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2021/12/15 | 295887 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2021/12/15 | 22176 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
-2021/12/15 | 25060 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2021/12/15 | 97103 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2021/12/15 | 112482 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2021/12/15 | 64567 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2021/12/15 | 73181 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2021/12/15 | 96826 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2021/12/15 | 115671 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2021/12/15 | 38460 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2021/12/15 | 43809 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2021/12/15 | 484478 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
-2021/12/15 | 566758 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2021/12/15 | 152104 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
-2021/12/15 | 168850 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2021/12/15 | 95447 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2021/12/15 | 109544 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2021/12/15 | 16520 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
-2021/12/15 | 18371 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2021/12/15 | 28385 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2021/12/15 | 30568 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2021/12/15 | 631001 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2021/12/15 | 682342 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2021/12/15 | 532338 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2021/12/15 | 599046 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2021/12/15 | 477729 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
-2021/12/15 | 528530 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2021/12/15 | 93989 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2021/12/15 | 103460 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2021/12/15 | 1732470 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2021/12/15 | 2012704 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2021/12/15 | 67994 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2021/12/15 | 74053 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2021/12/15 | 27260 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2021/12/15 | 32154 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2021/12/15 | 7754 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2021/12/15 | 8791 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2021/12/15 | 197374 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2021/12/15 | 215851 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2021/12/15 | 251066 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2021/12/15 | 286702 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2021/12/15 | 99371 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2021/12/15 | 104746 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2021/12/15 | 64516 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
-2021/12/15 | 74621 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
-2021/12/15 | 126739 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2021/12/15 | 139312 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2021/12/15 | 181558 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2021/12/15 | 202239 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2021/12/15 | 199835 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2021/12/15 | 181467 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2021/12/15 | 68617 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2021/12/15 | 76232 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2021/12/15 | 31412 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2021/12/15 | 35165 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2021/12/15 | 38541 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2021/12/15 | 43895 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2021/12/15 | 43275 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2021/12/15 | 47894 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2021/12/15 | 45732 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2021/12/15 | 52278 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2021/12/15 | 199113 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
-2021/12/15 | 213456 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2021/12/15 | 36041 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
-2021/12/15 | 41219 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2021/12/15 | 753826 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2021/12/15 | 824228 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2021/12/15 | 200139 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2021/12/15 | 203079 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2021/12/15 | 209936 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2021/12/15 | 244962 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2021/12/15 | 78961 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2021/12/15 | 88227 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2021/12/15 | 1181003 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2021/12/15 | 1322404 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2021/12/15 | 20188 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2021/12/15 | 23932 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2021/12/15 | 31578 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2021/12/15 | 37373 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2021/12/15 | 64714 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2021/12/15 | 72848 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2021/12/15 | 50852 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2021/12/15 | 58544 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2021/12/15 | 694125 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-2.9.tar.lzma
-2021/12/15 | 693756 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
-2021/12/15 | 763149 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64-2.9.tar.lzma
-2021/12/15 | 762927 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
-2021/12/15 | 1353497 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2021/12/15 | 1497475 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2021/12/15 | 42766 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
-2021/12/15 | 52572 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2021/12/15 | 57566 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2021/12/15 | 63698 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2021/12/15 | 25670 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2021/12/15 | 27471 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2021/12/15 | 16564 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2021/12/15 | 18484 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2021/12/15 | 64451 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2021/12/15 | 70993 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2021/12/15 | 157438 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2021/12/15 | 172341 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2021/12/15 | 58641 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2021/12/15 | 67187 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2021/12/15 | 101507 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
-2021/12/15 | 109262 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2021/12/15 | 2675895 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
-2021/12/15 | 2798719 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2021/12/15 | 55291 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
-2021/12/15 | 62710 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2021/12/15 | 37152 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2021/12/15 | 41202 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2021/12/15 | 28676 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2021/12/15 | 34089 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2021/12/15 | 67857 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2021/12/15 | 71892 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2021/12/15 | 318735 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2021/12/15 | 351558 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2021/12/15 | 55723 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
-2021/12/15 | 57416 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2021/12/15 | 591062 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2021/12/15 | 629126 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2021/12/15 | 39743 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2021/12/15 | 43682 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2021/12/15 | 256285 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2021/12/15 | 1395903 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2021/12/15 | 1293594 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2021/12/15 | 13510 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2021/12/15 | 14417 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2021/12/16 | 629475 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2021/12/16 | 51588 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2021/12/16 | 57408 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2021/12/16 | 959952 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2021/12/16 | 1087069 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2021/12/16 | 28894 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2021/12/16 | 31538 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2021/12/16 | 30179 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2021/12/16 | 35264 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2021/12/16 | 50731 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2021/12/16 | 58370 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2021/12/16 | 86768 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2021/12/16 | 95273 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2021/12/16 | 68799 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2021/12/16 | 77072 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2021/12/16 | 27242 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2021/12/16 | 31332 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2021/12/16 | 332373 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2021/12/16 | 394270 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2021/12/16 | 32990 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2021/12/16 | 37092 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2021/12/16 | 51429 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2021/12/16 | 57278 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2021/12/16 | 256201 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2021/12/16 | 281441 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2021/12/16 | 179706 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2021/12/16 | 196120 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2021/12/16 | 54950 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2021/12/16 | 62418 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2021/12/16 | 21371 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2021/12/16 | 24151 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2021/12/16 | 461239 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2021/12/16 | 46134 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2021/12/16 | 52094 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2021/12/16 | 285453 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2021/12/16 | 326388 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2021/12/16 | 41326 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2021/12/16 | 45686 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2021/12/16 | 120295 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2021/12/16 | 135070 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2021/12/16 | 1299131 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2021/12/16 | 1447743 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2021/12/16 | 99760 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2021/12/16 | 113044 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2021/12/16 | 43637 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2021/12/16 | 48804 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2021/12/16 | 25133 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2021/12/16 | 28544 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2021/12/16 | 56962 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2021/12/16 | 63312 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2021/12/16 | 135931 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2021/12/16 | 155286 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2021/12/16 | 73598 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2021/12/16 | 79137 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2021/12/16 | 72255 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2021/12/16 | 81708 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2021/12/16 | 259273 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2021/12/16 | 295887 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2021/12/16 | 22176 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2021/12/16 | 25061 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2021/12/16 | 97105 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2021/12/16 | 112482 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2021/12/16 | 64568 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2021/12/16 | 73179 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2021/12/16 | 96826 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2021/12/16 | 115671 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2021/12/16 | 38460 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2021/12/16 | 43809 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2021/12/16 | 484478 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2021/12/16 | 566757 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2021/12/16 | 152104 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2021/12/16 | 168850 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2021/12/16 | 95448 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2021/12/16 | 109545 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2021/12/16 | 16521 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2021/12/16 | 18371 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2021/12/16 | 28385 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2021/12/16 | 30568 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2021/12/16 | 630999 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2021/12/16 | 682341 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2021/12/16 | 532339 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2021/12/16 | 599047 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2021/12/16 | 477730 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2021/12/16 | 528530 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2021/12/16 | 93990 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2021/12/16 | 103459 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2021/12/16 | 1732470 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2021/12/16 | 2012703 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2021/12/16 | 67993 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2021/12/16 | 74054 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2021/12/16 | 27262 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2021/12/16 | 32155 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2021/12/16 | 7756 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2021/12/16 | 8792 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2021/12/16 | 197376 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2021/12/16 | 215851 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2021/12/16 | 251068 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2021/12/16 | 286703 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2021/12/16 | 99371 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2021/12/16 | 104746 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2021/12/16 | 64516 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
+2021/12/16 | 74621 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
+2021/12/16 | 126740 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2021/12/16 | 139311 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2021/12/16 | 181560 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2021/12/16 | 202237 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2021/12/16 | 199834 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2021/12/16 | 181466 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2021/12/16 | 68617 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2021/12/16 | 76233 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2021/12/16 | 31411 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2021/12/16 | 35165 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2021/12/16 | 38541 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2021/12/16 | 43895 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2021/12/16 | 43275 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2021/12/16 | 47893 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2021/12/16 | 45733 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2021/12/16 | 52278 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2021/12/16 | 199114 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2021/12/16 | 213458 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2021/12/16 | 36042 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2021/12/16 | 41219 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2021/12/16 | 753827 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2021/12/16 | 824228 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2021/12/16 | 200141 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2021/12/16 | 203080 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2021/12/16 | 209938 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2021/12/16 | 244962 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2021/12/16 | 78961 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2021/12/16 | 88226 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2021/12/16 | 1181002 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2021/12/16 | 1322402 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2021/12/16 | 20189 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2021/12/16 | 23932 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2021/12/16 | 31577 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2021/12/16 | 37372 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2021/12/16 | 64717 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2021/12/16 | 72850 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2021/12/16 | 50852 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2021/12/16 | 58546 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2021/12/16 | 694124 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-2.9.tar.lzma
+2021/12/16 | 693756 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
+2021/12/16 | 763147 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64-2.9.tar.lzma
+2021/12/16 | 762929 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2021/12/16 | 1353498 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2021/12/16 | 1497475 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2021/12/16 | 42766 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2021/12/16 | 52572 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2021/12/16 | 57567 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2021/12/16 | 63699 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2021/12/16 | 25668 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2021/12/16 | 27470 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2021/12/16 | 16564 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2021/12/16 | 18486 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2021/12/16 | 64451 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2021/12/16 | 70993 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2021/12/16 | 157437 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2021/12/16 | 172343 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2021/12/16 | 58642 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2021/12/16 | 67186 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2021/12/16 | 101507 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2021/12/16 | 109262 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2021/12/16 | 2675898 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2021/12/16 | 2798719 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2021/12/16 | 55293 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2021/12/16 | 62711 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2021/12/16 | 37151 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2021/12/16 | 41202 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2021/12/16 | 28678 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2021/12/16 | 34091 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2021/12/16 | 67856 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2021/12/16 | 71893 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2021/12/16 | 318734 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2021/12/16 | 351558 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2021/12/16 | 55723 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2021/12/16 | 57417 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2021/12/16 | 591063 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2021/12/16 | 629126 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2021/12/16 | 39744 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2021/12/16 | 43684 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2021/12/16 | 256297 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2021/12/16 | 1396433 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2021/12/16 | 1292775 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2021/12/16 | 13511 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2021/12/16 | 14417 | 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/12/15 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2021/12/16 | 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
@@ -297824,7 +297844,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/12/15 | 934 | systems/win32/miktex/tm/packages/pr.ini
+2021/12/16 | 934 | 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
@@ -299526,7 +299546,7 @@
2004/06/04 | 404 | tds/tds.sed
2004/06/23 | 65418 | tds/tds.tex
2019/05/29 | 304264 | tds.zip
-2021/12/16 | 186 | timestamp
+2021/12/17 | 186 | timestamp
2002/08/26 | 61898 | usergrps/dante/antrag.pdf
2002/08/26 | 118217 | usergrps/dante/antrag.ps
2021/11/11 | 917 | usergrps/dante/dtk/doc/beispiel.bib
diff --git a/FILES.byname.gz b/FILES.byname.gz
index 1bc85214ce..f6fe67b957 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index 1e70b0321a..818c2c3caf 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,168 +1,498 @@
-2021/12/15 | 99759 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2021/12/15 | 99371 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2021/12/16 | 99760 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2021/12/16 | 99371 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2021/12/16 | 9907 | macros/latex/contrib/tcolorbox/tcolorbox.doc.coremacros.tex
+2021/12/16 | 985 | macros/latex/contrib/moderncv/KNOWN_BUGS
+2021/12/16 | 98208 | macros/latex/contrib/projlib/ProjLib-doc.dtx
+2021/12/16 | 9720 | macros/latex/contrib/moderncv/moderncvheadii.sty
+2021/12/16 | 97105 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2021/12/16 | 96826 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2021/12/16 | 9608 | macros/latex/contrib/spbmark/spbmark.tex
+2021/12/16 | 959952 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2021/12/16 | 95448 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2021/12/16 | 95273 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2021/12/16 | 93990 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2021/12/16 | 9379 | macros/latex/contrib/moderncv/moderncvbodyv.sty
+2021/12/16 | 9359 | macros/latex/contrib/tcolorbox/tcbraster.code.tex
+2021/12/16 | 9357 | macros/latex/contrib/moderncv/moderncvheadiv.sty
+2021/12/16 | 934 | systems/win32/miktex/tm/packages/pr.ini
+2021/12/16 | 9035 | macros/latex/contrib/tcolorbox/tcbexternal.code.tex
+2021/12/16 | 90325 | macros/latex/contrib/tcolorbox/tcolorbox.sty
+2021/12/16 | 8930 | macros/latex/contrib/moderncv/moderncvheadi.sty
+2021/12/16 | 88304 | macros/latex/contrib/gzt/doc/french/denis.png
+2021/12/16 | 88290 | macros/latex/contrib/tcolorbox/tcbskins.code.tex
+2021/12/16 | 88226 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2021/12/16 | 8792 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2021/12/16 | 8722 | macros/latex/contrib/tcolorbox/tcolorbox.doc.intro.tex
+2021/12/16 | 86768 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2021/12/16 | 857 | macros/latex/contrib/projlib/ProjLib-doc.ins
+2021/12/16 | 8524 | support/texlogsieve/texlogsieve.1
+2021/12/16 | 84707 | macros/latex/contrib/easybook/easybook.tex
+2021/12/16 | 8355 | macros/latex/contrib/tcolorbox/tcolorbox-example.tex
+2021/12/16 | 83441 | macros/latex/contrib/biblatex-contrib/biblatex-spbasic.zip
+2021/12/16 | 832 | graphics/pstricks/contrib/pst-hsb/README
+2021/12/16 | 83239 | macros/latex/contrib/easybook/easybook.dtx
+2021/12/16 | 8307 | macros/latex/contrib/moderncv/moderncvheadvi.sty
+2021/12/16 | 824228 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2021/12/16 | 823 | macros/latex/contrib/moderncv/publications.bib
+2021/12/16 | 81708 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2021/12/16 | 8134 | macros/latex/contrib/gzt/source/gzt-logo.pdf
+2021/12/16 | 8120 | macros/latex/contrib/tcolorbox/tcbhooks.code.tex
+2021/12/16 | 7990 | macros/latex/contrib/moderncv/moderncvheadv.sty
+2021/12/16 | 7928 | macros/latex/contrib/tcolorbox/tcolorbox.doc.graphics.tex
+2021/12/16 | 79137 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2021/12/16 | 78961 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2021/12/16 | 7756 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2021/12/16 | 772758 | macros/latex/contrib/projlib.zip
+2021/12/16 | 7717 | macros/latex/contrib/moderncv/moderncvheadiii.sty
+2021/12/16 | 77072 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2021/12/16 | 76829 | macros/latex/contrib/tcolorbox/goldshade.png
+2021/12/16 | 763147 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64-2.9.tar.lzma
+2021/12/16 | 762929 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2021/12/16 | 76233 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2021/12/16 | 7598115 | macros/latex/contrib/tcolorbox/tcolorbox.pdf
+2021/12/16 | 753827 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2021/12/16 | 7506 | macros/latex/contrib/moderncv/moderncvbodyi.sty
+2021/12/16 | 74621 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
+2021/12/16 | 744849 | macros/unicodetex/latex/simplivre.zip
+2021/12/16 | 7445240 | systems/texlive/tlnet/archive/newcomputermodern.r61310.tar.xz
+2021/12/16 | 743580 | systems/texlive/tlnet/archive/l3build.doc.r61312.tar.xz
+2021/12/16 | 74054 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2021/12/16 | 73881 | macros/latex/contrib/biblatex-contrib/biblatex-spbasic/doc/biblatex-spbasic.pdf
+2021/12/16 | 73598 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2021/12/16 | 73179 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2021/12/16 | 72850 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2021/12/16 | 72673 | macros/latex/contrib/spbmark.zip
+2021/12/16 | 72255 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2021/12/16 | 7220 | macros/latex/contrib/moderncv/moderncvbodyiv.sty
+2021/12/16 | 71893 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2021/12/16 | 7131 | macros/latex/contrib/moderncv/moderncvfooti.sty
+2021/12/16 | 70993 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2021/12/16 | 70396 | systems/texlive/tlnet/archive/spbmark.doc.r61314.tar.xz
+2021/12/16 | 694124 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-2.9.tar.lzma
+2021/12/16 | 693756 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
+2021/12/16 | 69080 | macros/latex/contrib/moderncv/moderncvskillmatrix.sty
+2021/12/16 | 68799 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2021/12/16 | 68617 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2021/12/16 | 68292 | macros/latex/contrib/spbmark/spbmark.pdf
+2021/12/16 | 682341 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2021/12/16 | 68136 | systems/texlive/tlnet/archive/latexindent.r61316.tar.xz
+2021/12/16 | 6811617 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2021/12/16 | 67993 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2021/12/16 | 67856 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2021/12/16 | 676844 | systems/texlive/tlnet/archive/ragged2e.doc.r61313.tar.xz
+2021/12/16 | 67186 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2021/12/16 | 6691 | macros/latex/contrib/tcolorbox/tcolorbox.doc.s_snippet.sty
+2021/12/16 | 6512 | systems/texlive/tlnet/archive/lua-widow-control.r61317.tar.xz
+2021/12/16 | 64717 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2021/12/16 | 646 | macros/latex/contrib/gzt/doc/french/sections/fixed-footnotes.tex
+2021/12/16 | 64568 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2021/12/16 | 64516 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
+2021/12/16 | 64451 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2021/12/16 | 6424 | macros/latex/contrib/tcolorbox/tcolorbox.doc.beamer.tex
+2021/12/16 | 6386 | macros/latex/contrib/tcolorbox/tcolorbox.doc.recording.tex
+2021/12/16 | 63699 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2021/12/16 | 636009 | macros/latex/contrib/easybook.zip
+2021/12/16 | 6351981 | macros/latex/contrib/tcolorbox.zip
+2021/12/16 | 63312 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2021/12/16 | 6318226 | install/macros/latex/contrib/tcolorbox.tds.zip
+2021/12/16 | 630999 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2021/12/16 | 6304 | macros/latex/contrib/minimalist/minimart.cls
+2021/12/16 | 6301 | macros/latex/contrib/minimalist/minimbook.cls
+2021/12/16 | 629475 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2021/12/16 | 629460 | systems/win32/miktex/tm/packages/files.csv.lzma
+2021/12/16 | 629126 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2021/12/16 | 62882 | macros/latex/contrib/tcolorbox/blueshade.png
+2021/12/16 | 62711 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2021/12/16 | 62418 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2021/12/16 | 6182 | macros/latex/contrib/tcolorbox/tcolorbox.doc.bib
+2021/12/16 | 614840 | systems/texlive/tlnet/archive/easybook.doc.r61311.tar.xz
+2021/12/16 | 60390 | macros/latex/contrib/gzt/doc/french/sections/gztarticle.tex
+2021/12/16 | 5990 | macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex
+2021/12/16 | 599047 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2021/12/16 | 59686 | macros/latex/contrib/tcolorbox/CHANGES.md
+2021/12/16 | 594232 | macros/unicodetex/latex/einfart.zip
+2021/12/16 | 59416 | macros/latex/contrib/moderncv/picture.eps
+2021/12/16 | 593346 | macros/latex/contrib/easybook/easybook.pdf
+2021/12/16 | 591063 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2021/12/16 | 58854 | macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex
+2021/12/16 | 58642 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2021/12/16 | 58546 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2021/12/16 | 58370 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2021/12/16 | 576908 | systems/texlive/tlnet/archive/cochineal.doc.r61309.tar.xz
+2021/12/16 | 57567 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2021/12/16 | 57417 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2021/12/16 | 57408 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2021/12/16 | 57278 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2021/12/16 | 56962 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2021/12/16 | 569292 | macros/latex/contrib/gzt/doc/english/gzt-code.pdf
+2021/12/16 | 5671 | macros/latex/contrib/gzt/doc/french/sections/notations.tex
+2021/12/16 | 566757 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2021/12/16 | 56438 | macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex
+2021/12/16 | 5632 | macros/latex/contrib/tcolorbox/tcbmagazine.code.tex
+2021/12/16 | 56212 | macros/latex/contrib/tcolorbox/tcolorbox.doc.skincatalog.tex
+2021/12/16 | 5577 | macros/latex/contrib/tcolorbox/tcolorbox.doc.quickref.tex
+2021/12/16 | 55723 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2021/12/16 | 55293 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2021/12/16 | 5495 | support/texlogsieve/README.md
+2021/12/16 | 54950 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2021/12/16 | 541777 | macros/latex/contrib/gzt/doc/french/gzt-fr.pdf
+2021/12/16 | 5404 | macros/latex/contrib/tcolorbox/tcolorbox.doc.abstract.tex
+2021/12/16 | 532339 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2021/12/16 | 528530 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2021/12/16 | 52572 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2021/12/16 | 52412 | systems/texlive/tlnet/archive/graphics.source.r61315.tar.xz
+2021/12/16 | 52278 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2021/12/16 | 52094 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2021/12/16 | 51588 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2021/12/16 | 51429 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2021/12/16 | 50852 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2021/12/16 | 50731 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2021/12/16 | 5048 | macros/latex/contrib/tcolorbox/README.md
+2021/12/16 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2021/12/16 | 48804 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2021/12/16 | 484478 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2021/12/16 | 47893 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2021/12/16 | 477730 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2021/12/16 | 46978 | support/texlogsieve/texlogsieve.pdf
+2021/12/16 | 469092 | macros/latex/contrib/tcolorbox/tcolorbox-example.pdf
+2021/12/16 | 46134 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2021/12/16 | 461239 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2021/12/16 | 45733 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2021/12/16 | 45686 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2021/12/16 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2021/12/16 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2021/12/16 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2021/12/16 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2021/12/16 | 455894 | macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdf
+2021/12/16 | 4486 | macros/latex/contrib/moderncv/moderncvcompatibility.sty
+2021/12/16 | 4444 | macros/latex/contrib/tcolorbox/tcbminted.code.tex
+2021/12/16 | 44098 | macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex
+2021/12/16 | 43895 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2021/12/16 | 43809 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2021/12/16 | 43684 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2021/12/16 | 43637 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2021/12/16 | 4348 | macros/latex/contrib/projlib/README.md
+2021/12/16 | 43275 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2021/12/16 | 42766 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2021/12/16 | 414 | graphics/pstricks/contrib/pst-hsb/latex/pst-hsb.sty
+2021/12/16 | 41326 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2021/12/16 | 41219 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2021/12/16 | 41202 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2021/12/16 | 4061768 | systems/texlive/tlnet/archive/latexindent.win32.r61316.tar.xz
+2021/12/16 | 4047 | macros/latex/contrib/biblatex-contrib/biblatex-spbasic/latex/biblatex-spbasic.bbx
+2021/12/16 | 4038 | macros/latex/contrib/biblatex-contrib/biblatex-spbasic/doc/biblatex-spbasic.tex
+2021/12/16 | 402028 | systems/texlive/tlnet/archive/texlive-scripts.doc.r61308.tar.xz
+2021/12/16 | 39859 | macros/latex/contrib/tcolorbox/tcolorbox.doc.breakable.tex
+2021/12/16 | 39744 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2021/12/16 | 394270 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2021/12/16 | 39345 | macros/latex/contrib/tcolorbox/tcolorbox.doc.theorems.tex
+2021/12/16 | 3863 | graphics/pstricks/contrib/pst-hsb/doc/pst-hsb-doc.tex
+2021/12/16 | 385 | macros/latex/contrib/gzt/doc/french/sections/todo.tex
+2021/12/16 | 38541 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2021/12/16 | 38460 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2021/12/16 | 3778 | graphics/pstricks/contrib/pst-hsb/tex/pst-hsb.tex
+2021/12/16 | 37372 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2021/12/16 | 37151 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2021/12/16 | 37092 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2021/12/16 | 36042 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2021/12/16 | 3597 | macros/latex/contrib/moderncv/moderncviconsawesome.sty
+2021/12/16 | 3575 | macros/latex/contrib/moderncv/moderncvcollection.sty
+2021/12/16 | 35536 | systems/texlive/tlnet/archive/l3build.r61312.tar.xz
+2021/12/16 | 35264 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2021/12/16 | 35224 | macros/latex/contrib/tcolorbox/lichtspiel.jpg
+2021/12/16 | 35165 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2021/12/16 | 351558 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2021/12/16 | 35149 | support/texlogsieve/LICENCE.txt
+2021/12/16 | 3448 | macros/latex/contrib/tcolorbox/tcolorbox.doc.verbatim.tex
+2021/12/16 | 341917 | macros/latex/contrib/moderncv.zip
+2021/12/16 | 3414 | macros/latex/contrib/tcolorbox/tcblistings.code.tex
+2021/12/16 | 34114 | macros/latex/contrib/tcolorbox/tcbbreakable.code.tex
+2021/12/16 | 34091 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2021/12/16 | 33835 | macros/latex/contrib/moderncv/moderncv.cls
+2021/12/16 | 3365 | macros/latex/contrib/tcolorbox/tcolorbox.tex
+2021/12/16 | 332373 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2021/12/16 | 33131 | macros/latex/contrib/tcolorbox/tcolorbox.doc.raster.tex
+2021/12/16 | 32990 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2021/12/16 | 326388 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2021/12/16 | 322407 | macros/latex/contrib/projlib/ProjLib-doc-cn.pdf
+2021/12/16 | 32155 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2021/12/16 | 320611 | macros/latex/contrib/moderncv/manual/moderncv_userguide.pdf
+2021/12/16 | 3192 | macros/latex/contrib/moderncv/moderncvstylebanking.sty
+2021/12/16 | 318734 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2021/12/16 | 31577 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2021/12/16 | 31538 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2021/12/16 | 31411 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2021/12/16 | 31332 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2021/12/16 | 310348 | macros/unicodetex/latex/simplivre/simplivre-doc-cn.pdf
+2021/12/16 | 30763 | macros/latex/contrib/minimalist/minimalist.sty
+2021/12/16 | 30760 | systems/texlive/tlnet/archive/l3build.source.r61312.tar.xz
+2021/12/16 | 30568 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2021/12/16 | 30179 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2021/12/16 | 2988 | macros/latex/contrib/moderncv/moderncviconsletters.sty
+2021/12/16 | 29849 | macros/latex/contrib/tcolorbox/tcolorbox.doc.technical.tex
+2021/12/16 | 2970 | graphics/pstricks/contrib/pst-hsb/doc/pst-hsb-doc.bib
+2021/12/16 | 295887 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2021/12/16 | 29564 | macros/latex/contrib/biblatex-contrib/biblatex-spbasic/latex/biblatex-spbasic.lbx
+2021/12/16 | 29380 | macros/latex/contrib/minimalist/minimalist-doc.tex
+2021/12/16 | 2936 | systems/texlive/tlnet/archive/ragged2e.r61313.tar.xz
+2021/12/16 | 29161 | macros/unicodetex/latex/einfart/einfart-doc-fr.tex
+2021/12/16 | 289 | macros/latex/contrib/gzt/doc/english/README-TRANSLATION.md
+2021/12/16 | 28894 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2021/12/16 | 288532 | systems/texlive/tlnet/archive/lua-widow-control.doc.r61317.tar.xz
+2021/12/16 | 2876 | systems/texlive/tlnet/archive/spbmark.r61314.tar.xz
+2021/12/16 | 28678 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2021/12/16 | 286703 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2021/12/16 | 285453 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2021/12/16 | 28544 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2021/12/16 | 28432 | macros/latex/contrib/tcolorbox/tcolorbox.doc.vignette.tex
+2021/12/16 | 28385 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2021/12/16 | 28355 | macros/unicodetex/latex/simplivre/simplivre-doc-fr.tex
+2021/12/16 | 2832 | macros/latex/contrib/projlib/ProjLib.ins
+2021/12/16 | 28148 | macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex
+2021/12/16 | 281441 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2021/12/16 | 281300 | macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdf
+2021/12/16 | 28043 | macros/latex/contrib/moderncv/moderncviconstikz.sty
+2021/12/16 | 2798719 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2021/12/16 | 275 | macros/latex/contrib/biblatex-contrib/biblatex-spbasic/Changes
+2021/12/16 | 27470 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2021/12/16 | 27262 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2021/12/16 | 27242 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2021/12/16 | 27086 | macros/latex/contrib/tcolorbox/tcolorbox.doc.xparse.tex
+2021/12/16 | 26979 | macros/unicodetex/latex/einfart/einfart-doc-en.tex
+2021/12/16 | 2675898 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2021/12/16 | 2656 | macros/latex/contrib/gzt/doc/french/gzt-fr.tex
+2021/12/16 | 26268 | macros/unicodetex/latex/simplivre/simplivre-doc-en.tex
+2021/12/16 | 2601 | macros/latex/contrib/biblatex-contrib/biblatex-spbasic/latex/biblatex-spbasic.cbx
+2021/12/16 | 259273 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2021/12/16 | 2591 | macros/latex/contrib/tcolorbox/tcbprocessing.code.tex
+2021/12/16 | 25816 | macros/latex/contrib/tcolorbox/tcolorbox.doc.external.tex
+2021/12/16 | 2574116 | systems/texlive/tlnet/archive/cochineal.r61309.tar.xz
+2021/12/16 | 2568 | macros/latex/contrib/moderncv/moderncvstyleoldstyle.sty
+2021/12/16 | 25668 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2021/12/16 | 25631461 | systems/texlive/tlnet/install-tl.zip
+2021/12/16 | 256297 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2021/12/16 | 256254 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2021/12/16 | 256201 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2021/12/16 | 25557 | macros/latex/contrib/tcolorbox/tcolorbox.doc.poster.tex
+2021/12/16 | 25133 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2021/12/16 | 251068 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2021/12/16 | 25061 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2021/12/16 | 250375 | macros/unicodetex/latex/einfart/einfart-doc-cn.pdf
+2021/12/16 | 25035 | macros/unicodetex/latex/einfart/einfart-doc-cn.tex
+2021/12/16 | 24548 | macros/latex/contrib/tcolorbox/tcolorbox.doc.hooks.tex
+2021/12/16 | 244962 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2021/12/16 | 24345 | macros/unicodetex/latex/simplivre/simplivre-doc-cn.tex
+2021/12/16 | 2429 | macros/latex/contrib/moderncv/moderncviconsacademic.sty
+2021/12/16 | 24151 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2021/12/16 | 23932 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2021/12/16 | 2329176 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2021/12/16 | 2320 | macros/latex/contrib/moderncv/moderncvstylecasual.sty
+2021/12/16 | 2306 | macros/latex/contrib/moderncv/moderncvstyleclassic.sty
+2021/12/16 | 230698 | macros/latex/contrib/gzt/source/gzt.dtx
+2021/12/16 | 22407 | macros/latex/contrib/tcolorbox/Basilica_5.png
+2021/12/16 | 22176 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2021/12/16 | 2212 | macros/latex/contrib/moderncv/moderncvstyleempty.sty
+2021/12/16 | 21663 | macros/latex/contrib/tcolorbox/crinklepaper.png
+2021/12/16 | 215851 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2021/12/16 | 214738 | macros/unicodetex/latex/simplivre/simplivre-doc-fr.pdf
+2021/12/16 | 21371 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2021/12/16 | 213458 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2021/12/16 | 211798 | macros/unicodetex/latex/simplivre/simplivre-doc-en.pdf
+2021/12/16 | 209938 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2021/12/16 | 20982 | macros/latex/contrib/moderncv/CHANGELOG
+2021/12/16 | 20872022 | systems/texlive/tlnet/install-tl-windows.exe
+2021/12/16 | 20816 | macros/latex/contrib/mindflow/mindflow.dtx
+2021/12/16 | 2079 | macros/latex/contrib/moderncv/moderncvdebugtools.sty
+2021/12/16 | 2062 | macros/latex/contrib/minimalist/README.md
+2021/12/16 | 203080 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2021/12/16 | 2029540 | systems/texlive/tlnet/archive/graphics.doc.r61315.tar.xz
+2021/12/16 | 20274 | macros/latex/contrib/tcolorbox/tcolorbox.doc.magazine.tex
+2021/12/16 | 202237 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2021/12/16 | 20201 | macros/latex/contrib/tcolorbox/tcolorbox.doc.filling.tex
+2021/12/16 | 2019 | macros/latex/contrib/moderncv/tweaklist.sty
+2021/12/16 | 20189 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2021/12/16 | 201834 | macros/latex/contrib/projlib/ProjLib-doc-fr.pdf
+2021/12/16 | 2012703 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2021/12/16 | 200297 | macros/latex/contrib/projlib/ProjLib-doc-en.pdf
+2021/12/16 | 200141 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2021/12/16 | 200014 | graphics/pstricks/contrib/pst-hsb/doc/pst-hsb-doc.pdf
+2021/12/16 | 199834 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2021/12/16 | 19956 | macros/latex/contrib/tcolorbox/tcolorbox.doc.fitting.tex
+2021/12/16 | 199114 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2021/12/16 | 198931 | graphics/pstricks/contrib/pst-hsb.zip
+2021/12/16 | 197376 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2021/12/16 | 1961 | macros/latex/contrib/moderncv/moderncvstylefancy.sty
+2021/12/16 | 196120 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2021/12/16 | 19106 | macros/unicodetex/latex/simplivre/LICENSE
+2021/12/16 | 19106 | macros/unicodetex/latex/einfart/LICENSE
+2021/12/16 | 19106 | macros/latex/contrib/projlib/LICENSE
+2021/12/16 | 19106 | macros/latex/contrib/minimalist/LICENSE
+2021/12/16 | 19039 | macros/latex/contrib/moderncv/LICENSE.txt
+2021/12/16 | 18844 | macros/unicodetex/latex/simplivre/simplivre.cls
+2021/12/16 | 18840 | macros/unicodetex/latex/einfart/einfart.cls
+2021/12/16 | 18486 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2021/12/16 | 184217 | macros/latex/contrib/mindflow.zip
+2021/12/16 | 18371 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2021/12/16 | 181560 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2021/12/16 | 181466 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2021/12/16 | 17980 | systems/texlive/tlnet/archive/easybook.source.r61311.tar.xz
+2021/12/16 | 179706 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2021/12/16 | 17948 | systems/texlive/tlnet/archive/easybook.r61311.tar.xz
+2021/12/16 | 1732470 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2021/12/16 | 172607 | macros/latex/contrib/mindflow/mindflow.pdf
+2021/12/16 | 172343 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2021/12/16 | 17021325 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2021/12/16 | 169300 | macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex
+2021/12/16 | 168850 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2021/12/16 | 1669088 | systems/texlive/tlnet/archive/newcomputermodern.doc.r61310.tar.xz
+2021/12/16 | 16564 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2021/12/16 | 16521 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2021/12/16 | 1645 | macros/latex/contrib/moderncv/picture.jpg
+2021/12/16 | 162067 | macros/unicodetex/latex/einfart/einfart-doc-fr.pdf
+2021/12/16 | 15797 | macros/latex/contrib/moderncv/template.tex
+2021/12/16 | 157437 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2021/12/16 | 156990 | macros/unicodetex/latex/einfart/einfart-doc-en.pdf
+2021/12/16 | 15656 | macros/latex/contrib/tcolorbox/tcolorbox.doc.initoptions.tex
+2021/12/16 | 1552 | macros/latex/contrib/moderncv/moderncviconsmarvosym.sty
+2021/12/16 | 155286 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2021/12/16 | 15509 | macros/latex/contrib/moderncv/manual/moderncv_userguide.tex
+2021/12/16 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2021/12/16 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2021/12/16 | 152104 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2021/12/16 | 15180 | systems/texlive/tlnet/archive/graphics.r61315.tar.xz
+2021/12/16 | 15166 | macros/latex/contrib/tcolorbox/pink_marble.png
+2021/12/16 | 15165200 | systems/texlive/tlnet/archive/newcomputermodern.source.r61310.tar.xz
+2021/12/16 | 1497475 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2021/12/16 | 14922 | macros/latex/contrib/tcolorbox/tcbfitting.code.tex
+2021/12/16 | 148 | macros/latex/contrib/tcolorbox/tcolorbox.doc.references.tex
+2021/12/16 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2021/12/16 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2021/12/16 | 1447743 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2021/12/16 | 14417 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2021/12/16 | 1434 | macros/latex/contrib/gzt/doc/french/gzt-fr.bib
+2021/12/16 | 1432 | macros/latex/contrib/gzt/doc/french/sections/packages-charges.tex
+2021/12/16 | 1414 | macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex
+2021/12/16 | 1396433 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2021/12/16 | 1395367 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2021/12/16 | 139311 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2021/12/16 | 13913 | macros/latex/contrib/tcolorbox/tcblistingscore.code.tex
+2021/12/16 | 137 | graphics/pstricks/contrib/pst-hsb/Changes
+2021/12/16 | 13613 | macros/latex/contrib/tcolorbox/tcolorbox.doc.sidebyside.tex
+2021/12/16 | 135931 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2021/12/16 | 135371 | macros/latex/contrib/projlib/ProjLib.dtx
+2021/12/16 | 1353498 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2021/12/16 | 13511 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2021/12/16 | 135070 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2021/12/16 | 133646 | support/texlogsieve/texlogsieve
+2021/12/16 | 133309 | macros/latex/contrib/minimalist.zip
+2021/12/16 | 1322402 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2021/12/16 | 1299131 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2021/12/16 | 1292775 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2021/12/16 | 1291910 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2021/12/16 | 1291390 | install/macros/latex/contrib/gzt.tds.zip
+2021/12/16 | 12747 | macros/latex/contrib/tcolorbox/tcbvignette.code.tex
+2021/12/16 | 126740 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2021/12/16 | 12631 | support/texlogsieve/texlogsieve.tex
+2021/12/16 | 12453 | macros/latex/contrib/tcolorbox/tcbposter.code.tex
+2021/12/16 | 1234917 | macros/latex/contrib/gzt.zip
+2021/12/16 | 120295 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2021/12/16 | 11832 | systems/texlive/tlnet/archive/lua-widow-control.source.r61317.tar.xz
+2021/12/16 | 1181002 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2021/12/16 | 11606 | macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty
+2021/12/16 | 115671 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2021/12/16 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2021/12/16 | 11530 | macros/latex/contrib/tcolorbox/tcbtheorems.code.tex
+2021/12/16 | 11519 | macros/latex/contrib/spbmark/spbmark.sty
+2021/12/16 | 11492 | systems/texlive/tlnet/archive/ragged2e.source.r61313.tar.xz
+2021/12/16 | 1139 | macros/latex/contrib/moderncv/README.md
+2021/12/16 | 113296 | macros/latex/contrib/tcolorbox/tcolorbox.doc.skins.tex
+2021/12/16 | 1131368 | systems/texlive/tlnet/archive/latexindent.doc.r61316.tar.xz
+2021/12/16 | 113044 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2021/12/16 | 112 | macros/latex/contrib/tcolorbox/tcolorbox.doc.index.tex
+2021/12/16 | 112482 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2021/12/16 | 112379 | macros/latex/contrib/minimalist/minimalist-doc.pdf
+2021/12/16 | 1117 | macros/latex/contrib/moderncv/moderncvcolorburgundy.sty
+2021/12/16 | 1116 | macros/unicodetex/latex/einfart/README.md
+2021/12/16 | 1113 | macros/unicodetex/latex/simplivre/README.md
+2021/12/16 | 1109 | macros/latex/contrib/moderncv/moderncviconssymbols.sty
+2021/12/16 | 1106 | macros/latex/contrib/tcolorbox/tcolorbox.doc.picturecredits.tex
+2021/12/16 | 109545 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2021/12/16 | 109262 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2021/12/16 | 1087069 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2021/12/16 | 108288 | systems/texlive/tlnet/archive/texlive-scripts.r61308.tar.xz
+2021/12/16 | 1077 | macros/latex/contrib/gzt/README.md
+2021/12/16 | 1067 | macros/latex/contrib/moderncv/moderncvcolorpurple.sty
+2021/12/16 | 1067 | macros/latex/contrib/moderncv/moderncvcolororange.sty
+2021/12/16 | 1063 | macros/latex/contrib/moderncv/moderncvcolorblue.sty
+2021/12/16 | 1062 | macros/latex/contrib/moderncv/moderncvcolorgrey.sty
+2021/12/16 | 1062 | macros/latex/contrib/moderncv/moderncvcolorgreen.sty
+2021/12/16 | 10536 | macros/latex/contrib/moderncv/moderncvbodyiii.sty
+2021/12/16 | 1052 | macros/latex/contrib/moderncv/moderncvcolorred.sty
+2021/12/16 | 104746 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2021/12/16 | 1040 | macros/latex/contrib/moderncv/moderncvcolorblack.sty
+2021/12/16 | 103459 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2021/12/16 | 103098 | support/texlogsieve.zip
+2021/12/16 | 10268 | macros/latex/contrib/tcolorbox/tcbxparse.code.tex
+2021/12/16 | 101507 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2021/12/16 | 10040 | macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex
2021/12/15 | 9717 | macros/luatex/generic/penlight/penlightextras.lua
-2021/12/15 | 97103 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2021/12/15 | 96826 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2021/12/15 | 9600 | macros/latex/contrib/spbmark/spbmark.tex
-2021/12/15 | 959950 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2021/12/15 | 95447 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2021/12/15 | 95272 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2021/12/15 | 93989 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2021/12/15 | 934 | systems/win32/miktex/tm/packages/pr.ini
2021/12/15 | 921072 | systems/texlive/tlnet/archive/tex4ht.r61306.tar.xz
2021/12/15 | 8985 | systems/win32/miktex/tm/packages/biblatex-publist.tar.lzma
-2021/12/15 | 88227 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2021/12/15 | 8791 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
2021/12/15 | 8772 | systems/texlive/tlnet/archive/biblatex-publist.r61302.tar.xz
2021/12/15 | 8695 | fonts/cochineal/README
-2021/12/15 | 86767 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
2021/12/15 | 857590 | systems/win32/miktex/tm/packages/l3backend__doc.tar.lzma
2021/12/15 | 855616 | systems/texlive/tlnet/archive/l3backend.doc.r61303.tar.xz
-2021/12/15 | 84762 | macros/latex/contrib/easybook/easybook.tex
2021/12/15 | 8376399 | fonts/newcomputermodern/sfd/NewCM08-Book.sfd
2021/12/15 | 8370 | macros/luatex/generic/lua-widow-control/lwc-documentation.mkxl
2021/12/15 | 835208 | fonts/newcomputermodern/otf/NewCMMono10-Book.otf
-2021/12/15 | 83392 | macros/latex/contrib/easybook/easybook.dtx
2021/12/15 | 831812 | fonts/newcomputermodern/otf/NewCM08-Italic.otf
2021/12/15 | 82891 | systems/win32/miktex/tm/packages/arabi.tar.lzma
-2021/12/15 | 824228 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
2021/12/15 | 8184259 | fonts/newcomputermodern/sfd/NewCMMath-Book.sfd
-2021/12/15 | 81708 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2021/12/15 | 79137 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2021/12/15 | 78961 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2021/12/15 | 7754 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2021/12/15 | 77072 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2021/12/15 | 763149 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64-2.9.tar.lzma
-2021/12/15 | 762927 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
-2021/12/15 | 76232 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2021/12/15 | 753826 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2021/12/15 | 74621 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
-2021/12/15 | 74053 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2021/12/15 | 73599 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
2021/12/15 | 734392 | systems/win32/miktex/tm/packages/l3build__doc.tar.lzma
-2021/12/15 | 73181 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2021/12/15 | 72848 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2021/12/15 | 72633 | macros/latex/contrib/spbmark.zip
-2021/12/15 | 72254 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2021/12/15 | 71892 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
2021/12/15 | 717588 | fonts/newcomputermodern/otf/NewCMMono10-Italic.otf
-2021/12/15 | 70993 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
2021/12/15 | 709828 | fonts/newcomputermodern/otf/NewCMSans08-BookOblique.otf
2021/12/15 | 695933 | macros/latex/contrib/ragged2e/ragged2e.pdf
-2021/12/15 | 694125 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-2.9.tar.lzma
-2021/12/15 | 693756 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
-2021/12/15 | 68799 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
2021/12/15 | 687421 | macros/latex/contrib/ragged2e.zip
2021/12/15 | 6872989 | fonts/newcomputermodern/sfd/NewCMMath-Regular.sfd
-2021/12/15 | 68617 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2021/12/15 | 68252 | macros/latex/contrib/spbmark/spbmark.pdf
-2021/12/15 | 682342 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2021/12/15 | 6812262 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2021/12/15 | 67994 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2021/12/15 | 67857 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
2021/12/15 | 67544 | systems/win32/miktex/tm/packages/latexindent.tar.lzma
+2021/12/15 | 6751 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2021/12/15 | 6723158 | fonts/newcomputermodern/sfd/NewCM10-BookItalic.sfd
-2021/12/15 | 67187 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
2021/12/15 | 65145 | systems/win32/miktex/tm/packages/graphics__source.tar.lzma
2021/12/15 | 6501786 | fonts/newcomputermodern/sfd/NewCM10-Book.sfd
-2021/12/15 | 64714 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2021/12/15 | 64567 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2021/12/15 | 64516 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
-2021/12/15 | 64451 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2021/12/15 | 63698 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2021/12/15 | 635874 | macros/latex/contrib/easybook.zip
2021/12/15 | 634992 | fonts/newcomputermodern/otf/NewCMSans10-BoldOblique.otf
2021/12/15 | 634424 | fonts/newcomputermodern/otf/NewCMSans08-Oblique.otf
2021/12/15 | 633220 | fonts/newcomputermodern/otf/NewCMSans08-Book.otf
-2021/12/15 | 63311 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2021/12/15 | 631001 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2021/12/15 | 629475 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2021/12/15 | 629274 | systems/win32/miktex/tm/packages/files.csv.lzma
-2021/12/15 | 629126 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2021/12/15 | 62710 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2021/12/15 | 62416 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
2021/12/15 | 6141165 | fonts/cochineal.zip
-2021/12/15 | 599046 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
2021/12/15 | 597365 | systems/win32/miktex/tm/packages/easybook__doc.tar.lzma
-2021/12/15 | 593159 | macros/latex/contrib/easybook/easybook.pdf
-2021/12/15 | 591062 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
2021/12/15 | 590890 | systems/win32/miktex/tm/packages/tikzsymbols__doc.tar.lzma
2021/12/15 | 588256 | systems/texlive/tlnet/archive/tikzsymbols.doc.r61300.tar.xz
-2021/12/15 | 58641 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2021/12/15 | 58544 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2021/12/15 | 58369 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
2021/12/15 | 582024 | fonts/newcomputermodern/otf/NewCMSans10-BookOblique.otf
-2021/12/15 | 576832 | systems/texlive/tlnet/archive/cochineal.doc.r61299.tar.xz
-2021/12/15 | 57566 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2021/12/15 | 57416 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2021/12/15 | 57408 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
2021/12/15 | 574011 | systems/win32/miktex/tm/packages/cochineal__doc.tar.lzma
-2021/12/15 | 57277 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2021/12/15 | 56962 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2021/12/15 | 566758 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
2021/12/15 | 56249 | macros/luatex/latex/yamlvars.zip
-2021/12/15 | 55723 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
-2021/12/15 | 55291 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
2021/12/15 | 552540 | fonts/newcomputermodern/otf/NewCMSans10-Book.otf
-2021/12/15 | 54947 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
2021/12/15 | 547508 | fonts/newcomputermodern/otf/NewCM10-Regular.otf
2021/12/15 | 537136 | fonts/newcomputermodern/otf/NewCMMono10-BoldOblique.otf
2021/12/15 | 5363782 | fonts/newcomputermodern/sfd/NewCM08-BookItalic.sfd
-2021/12/15 | 532338 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2021/12/15 | 528530 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2021/12/15 | 52572 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2021/12/15 | 52278 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2021/12/15 | 52095 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2021/12/15 | 51587 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2021/12/15 | 51429 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2021/12/15 | 50852 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
2021/12/15 | 508388 | fonts/newcomputermodern/otf/NewCMSans08-Regular.otf
-2021/12/15 | 50732 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
2021/12/15 | 503704 | fonts/newcomputermodern/otf/NewCM08-Regular.otf
2021/12/15 | 500788 | fonts/newcomputermodern/otf/NewCM10-Italic.otf
2021/12/15 | 499128 | fonts/newcomputermodern/otf/NewCM10-Bold.otf
2021/12/15 | 4971 | macros/luatex/generic/penlight/penlight.tex
+2021/12/15 | 49408 | systems/texlive/tlnet/tlpkg/installer/config.guess
2021/12/15 | 4920807 | fonts/newcomputermodern/sfd/NewCMMono10-Italic.sfd
-2021/12/15 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
-2021/12/15 | 48803 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2021/12/15 | 484478 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
2021/12/15 | 47975 | macros/latex/contrib/ragged2e/ragged2e.dtx
-2021/12/15 | 47894 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2021/12/15 | 477729 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
2021/12/15 | 46890 | macros/luatex/latex/yamlvars/YAMLvars.pdf
2021/12/15 | 4671044 | fonts/newcomputermodern/sfd/NewCMSans08-BookOblique.sfd
-2021/12/15 | 46134 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2021/12/15 | 461243 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2021/12/15 | 45732 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
2021/12/15 | 4569521 | fonts/newcomputermodern/sfd/NewCM08-Italic.sfd
-2021/12/15 | 45685 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2021/12/15 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2021/12/15 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2021/12/15 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2021/12/15 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2021/12/15 | 4532908 | fonts/newcomputermodern/sfd/NewCMSans08-Book.sfd
2021/12/15 | 4504300 | fonts/newcomputermodern/sfd/NewCM10-Bold.sfd
-2021/12/15 | 43895 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2021/12/15 | 43809 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2021/12/15 | 43682 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2021/12/15 | 43637 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
2021/12/15 | 435220 | fonts/newcomputermodern/otf/NewCM10-BoldItalic.otf
-2021/12/15 | 43275 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2021/12/15 | 42766 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
2021/12/15 | 4238525 | fonts/newcomputermodern/sfd/NewCM10-Regular.sfd
2021/12/15 | 4238263 | fonts/newcomputermodern/sfd/NewCMMono10-Book.sfd
2021/12/15 | 4147277 | fonts/newcomputermodern/sfd/NewCM10-Italic.sfd
-2021/12/15 | 41326 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2021/12/15 | 41219 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2021/12/15 | 41202 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
2021/12/15 | 406992 | macros/luatex/generic/penlight/penlight.lua
2021/12/15 | 40398 | systems/win32/miktex/tm/packages/easybook__source.tar.lzma
-2021/12/15 | 402028 | systems/texlive/tlnet/archive/texlive-scripts.doc.r61298.tar.xz
-2021/12/15 | 39743 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2021/12/15 | 394270 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
2021/12/15 | 3866101 | fonts/newcomputermodern/sfd/NewCM10-BoldItalic.sfd
-2021/12/15 | 38541 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2021/12/15 | 38460 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
2021/12/15 | 383584 | systems/texlive/tlnet/archive/biblatex-publist.doc.r61302.tar.xz
2021/12/15 | 3835323 | fonts/newcomputermodern/sfd/NewCMSans10-BoldOblique.sfd
2021/12/15 | 38272 | systems/win32/miktex/tm/packages/tikzsymbols__source.tar.lzma
@@ -171,202 +501,95 @@
2021/12/15 | 37969188 | fonts/newcomputermodern.zip
2021/12/15 | 3795 | macros/luatex/generic/lua-widow-control/lwc-sample.tex
2021/12/15 | 375658 | systems/win32/miktex/tm/packages/biblatex-publist__doc.tar.lzma
-2021/12/15 | 37373 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2021/12/15 | 37152 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2021/12/15 | 37092 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
2021/12/15 | 3671749 | fonts/newcomputermodern/sfd/NewCMSans08-Oblique.sfd
-2021/12/15 | 36041 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
2021/12/15 | 35706 | systems/win32/miktex/tm/packages/l3build.tar.lzma
2021/12/15 | 3543295 | fonts/newcomputermodern/sfd/NewCMMono10-BoldOblique.sfd
2021/12/15 | 3532461 | fonts/newcomputermodern/sfd/NewCMMono10-BookItalic.sfd
-2021/12/15 | 35262 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2021/12/15 | 35165 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2021/12/15 | 351558 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
2021/12/15 | 3448 | systems/texlive/tlnet/archive/datestamp.source.r61304.tar.xz
2021/12/15 | 3409273 | fonts/newcomputermodern/sfd/NewCMSans10-BookOblique.sfd
-2021/12/15 | 34089 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2021/12/15 | 332373 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
2021/12/15 | 3306602 | fonts/newcomputermodern/sfd/NewCMSans10-Book.sfd
-2021/12/15 | 32989 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2021/12/15 | 326388 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
2021/12/15 | 32403 | systems/win32/miktex/tm/packages/l3backend__source.tar.lzma
2021/12/15 | 32188 | systems/texlive/tlnet/archive/l3backend.source.r61303.tar.xz
-2021/12/15 | 32154 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
2021/12/15 | 3199333 | fonts/newcomputermodern/sfd/NewCMSans10-Bold.sfd
-2021/12/15 | 318735 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2021/12/15 | 31578 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2021/12/15 | 31538 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
2021/12/15 | 314157 | macros/luatex/generic/lua-widow-control/lua-widow-control.pdf
-2021/12/15 | 31412 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2021/12/15 | 31332 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
2021/12/15 | 313267 | install/macros/luatex/generic/lua-widow-control.tds.zip
2021/12/15 | 3127186 | fonts/newcomputermodern/sfd/NewCM08-Regular.sfd
2021/12/15 | 31170 | systems/win32/miktex/tm/packages/l3build__source.tar.lzma
2021/12/15 | 310303 | macros/luatex/generic/lua-widow-control.zip
2021/12/15 | 3063130 | fonts/newcomputermodern/sfd/NewCMSans08-Regular.sfd
-2021/12/15 | 30568 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2021/12/15 | 30179 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
2021/12/15 | 30064 | fonts/newcomputermodern/otf/NewCMUncial10-Regular.otf
2021/12/15 | 296488 | fonts/newcomputermodern/otf/NewCMSans10-Bold.otf
2021/12/15 | 29642 | macros/luatex/generic/penlight/penlight.pdf
-2021/12/15 | 295887 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2021/12/15 | 28893 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2021/12/15 | 28676 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2021/12/15 | 286702 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2021/12/15 | 28545 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2021/12/15 | 285453 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2021/12/15 | 28385 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
2021/12/15 | 28354 | fonts/newcomputermodern/doc/newcm-doc.tex
2021/12/15 | 2833429 | fonts/newcomputermodern/sfd/NewCMSans10-Regular.sfd
-2021/12/15 | 281442 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
2021/12/15 | 280504 | fonts/newcomputermodern/otf/NewCMSans10-Regular.otf
2021/12/15 | 280436 | fonts/newcomputermodern/otf/NewCMMono10-Regular.otf
-2021/12/15 | 2798719 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2021/12/15 | 27471 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2021/12/15 | 27260 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2021/12/15 | 27240 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2021/12/15 | 2675895 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
2021/12/15 | 263584 | fonts/newcomputermodern/otf/NewCMSans10-Oblique.otf
-2021/12/15 | 259274 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2021/12/15 | 25670 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2021/12/15 | 25631428 | systems/texlive/tlnet/install-tl.zip
-2021/12/15 | 256285 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2021/12/15 | 256257 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2021/12/15 | 256198 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2021/12/15 | 25132 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2021/12/15 | 251066 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2021/12/15 | 25060 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
2021/12/15 | 2477 | macros/luatex/latex/yamlvars/YAMLvars.sty
2021/12/15 | 2475762 | fonts/newcomputermodern/sfd/NewCMSans10-Oblique.sfd
2021/12/15 | 2459842 | systems/win32/miktex/tm/packages/cochineal.tar.lzma
-2021/12/15 | 244962 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2021/12/15 | 2444212 | systems/texlive/tlnet/archive/cochineal.r61299.tar.xz
2021/12/15 | 2431 | macros/luatex/generic/lua-widow-control/README.md
-2021/12/15 | 24150 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2021/12/15 | 23932 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
2021/12/15 | 2375166 | fonts/newcomputermodern/sfd/NewCMMono10-Regular.sfd
2021/12/15 | 23696 | fonts/newcomputermodern/otf/NewCMUncial10-Bold.otf
-2021/12/15 | 2331488 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2021/12/15 | 22332 | fonts/newcomputermodern/otf/NewCMUncial08-Regular.otf
2021/12/15 | 22285 | macros/luatex/generic/lua-widow-control/lwc-documentation.tex
-2021/12/15 | 22176 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
2021/12/15 | 221696 | fonts/newcomputermodern/otf/NewCMMono10-Bold.otf
2021/12/15 | 21648 | fonts/newcomputermodern/otf/NewCMUncial08-Bold.otf
2021/12/15 | 2160300 | fonts/newcomputermodern/otf/NewCMMath-Book.otf
-2021/12/15 | 215851 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
2021/12/15 | 215551 | fonts/newcomputermodern/doc/newcm-doc.pdf
-2021/12/15 | 21371 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2021/12/15 | 213456 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2021/12/15 | 209936 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2021/12/15 | 20873099 | systems/texlive/tlnet/install-tl-windows.exe
2021/12/15 | 2058772 | systems/texlive/tlnet/archive/arara.doc.r61305.tar.xz
2021/12/15 | 20571 | macros/luatex/latex/yamlvars/tinyyaml.lua
2021/12/15 | 20460 | fonts/newcomputermodern/otf/NewCMUncial08-Book.otf
2021/12/15 | 2044680 | systems/win32/miktex/tm/packages/arara__doc.tar.lzma
2021/12/15 | 20376 | fonts/newcomputermodern/otf/NewCMUncial10-Book.otf
-2021/12/15 | 203079 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2021/12/15 | 202239 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2021/12/15 | 20188 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
2021/12/15 | 2014148 | systems/win32/miktex/tm/packages/graphics__doc.tar.lzma
-2021/12/15 | 2012704 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2021/12/15 | 200139 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2021/12/15 | 199835 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2021/12/15 | 199113 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
2021/12/15 | 1989 | macros/luatex/generic/lua-widow-control/t-lua-widow-control.mkxl
-2021/12/15 | 197374 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
2021/12/15 | 1962 | macros/luatex/generic/lua-widow-control/lua-widow-control.sty
-2021/12/15 | 196120 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
2021/12/15 | 1907343 | fonts/newcomputermodern/sfd/NewCMMono10-Bold.sfd
2021/12/15 | 1898718 | systems/win32/miktex/tm/packages/arabi__source.tar.lzma
-2021/12/15 | 18484 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2021/12/15 | 18371 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2021/12/15 | 181558 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2021/12/15 | 181467 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2021/12/15 | 179706 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
-2021/12/15 | 1732470 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
2021/12/15 | 1723 | macros/luatex/generic/penlight/penlight.sty
-2021/12/15 | 172341 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2021/12/15 | 17021200 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
2021/12/15 | 1699 | systems/win32/miktex/tm/packages/datestamp.tar.lzma
2021/12/15 | 1690080 | fonts/newcomputermodern/otf/NewCM08-BookItalic.otf
-2021/12/15 | 168850 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
2021/12/15 | 16661 | systems/win32/miktex/tm/packages/easybook.tar.lzma
-2021/12/15 | 16564 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2021/12/15 | 16520 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
2021/12/15 | 1579 | macros/luatex/generic/lua-widow-control/lua-widow-control.tex
-2021/12/15 | 157438 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
2021/12/15 | 15589 | systems/win32/miktex/tm/packages/graphics.tar.lzma
2021/12/15 | 1552 | systems/texlive/tlnet/archive/datestamp.r61304.tar.xz
-2021/12/15 | 155287 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2021/12/15 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2021/12/15 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2021/12/15 | 152104 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
2021/12/15 | 15125 | systems/win32/miktex/tm/packages/l3backend.tar.lzma
2021/12/15 | 14984 | systems/texlive/tlnet/archive/l3backend.r61303.tar.xz
-2021/12/15 | 1497475 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
2021/12/15 | 14942 | systems/win32/miktex/tm/packages/tikzsymbols.tar.lzma
2021/12/15 | 1492 | macros/luatex/generic/lua-widow-control/lwc-documentation.bib
2021/12/15 | 14852 | systems/texlive/tlnet/archive/tikzsymbols.r61300.tar.xz
-2021/12/15 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
2021/12/15 | 145552 | fonts/newcomputermodern/sfd/NewCMUncial10-Regular.sfd
2021/12/15 | 145039 | macros/luatex/generic/penlight.zip
-2021/12/15 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2021/12/15 | 1447743 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2021/12/15 | 14417 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
2021/12/15 | 1409 | macros/latex/contrib/ragged2e/ragged2e.ins
-2021/12/15 | 1395926 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2021/12/15 | 1395903 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2021/12/15 | 139312 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
2021/12/15 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r61306.tar.xz
-2021/12/15 | 135930 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2021/12/15 | 1358 | macros/latex/contrib/biblatex-contrib/biblatex-spbasic/doc/biblatex-spbasic.bib
2021/12/15 | 13566 | macros/luatex/generic/lua-widow-control/lua-widow-control.lua
-2021/12/15 | 1353497 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2021/12/15 | 13510 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2021/12/15 | 135072 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
2021/12/15 | 1340956 | fonts/newcomputermodern/otf/NewCM08-Book.otf
2021/12/15 | 1333 | macros/luatex/latex/yamlvars/README.md
2021/12/15 | 13308 | macros/luatex/latex/yamlvars/YAMLvars.lua
-2021/12/15 | 1322404 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
2021/12/15 | 1299 | macros/latex/contrib/ragged2e/README.md
-2021/12/15 | 1299132 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
-2021/12/15 | 1293594 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2021/12/15 | 1293166 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2021/12/15 | 12759 | systems/win32/miktex/tm/packages/biblatex-publist__source.tar.lzma
-2021/12/15 | 126739 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
2021/12/15 | 1259 | macros/luatex/generic/penlight/README.md
2021/12/15 | 125759 | fonts/newcomputermodern/sfd/NewCMUncial10-Bold.sfd
2021/12/15 | 1233004 | systems/texlive/tlnet/archive/tex4ht.source.r61306.tar.xz
2021/12/15 | 1229208 | fonts/newcomputermodern/otf/NewCMMath-Regular.otf
-2021/12/15 | 120295 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
2021/12/15 | 1184036 | fonts/newcomputermodern/otf/NewCM10-Book.otf
2021/12/15 | 11835 | macros/luatex/latex/yamlvars/YAMLvars.tex
-2021/12/15 | 1181003 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
2021/12/15 | 117992 | systems/win32/miktex/tm/packages/latexindent__source.tar.lzma
2021/12/15 | 116478 | fonts/newcomputermodern/sfd/NewCMUncial08-Regular.sfd
-2021/12/15 | 115671 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2021/12/15 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
2021/12/15 | 115355 | systems/win32/miktex/tm/packages/datestamp__doc.tar.lzma
-2021/12/15 | 11518 | macros/latex/contrib/spbmark/spbmark.sty
2021/12/15 | 114964 | systems/texlive/tlnet/archive/datestamp.doc.r61304.tar.xz
2021/12/15 | 11386 | fonts/newcomputermodern/README
2021/12/15 | 1131136 | fonts/newcomputermodern/otf/NewCM10-BookItalic.otf
-2021/12/15 | 113045 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2021/12/15 | 112482 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
2021/12/15 | 111672 | fonts/newcomputermodern/sfd/NewCMUncial08-Bold.sfd
-2021/12/15 | 109544 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2021/12/15 | 109262 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
2021/12/15 | 109183 | fonts/newcomputermodern/sfd/NewCMUncial08-Book.sfd
2021/12/15 | 10904 | systems/texlive/tlnet/archive/context-vim.doc.r61301.tar.xz
2021/12/15 | 108981 | fonts/newcomputermodern/sfd/NewCMUncial10-Book.sfd
-2021/12/15 | 1087067 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2021/12/15 | 108264 | systems/texlive/tlnet/archive/texlive-scripts.r61298.tar.xz
2021/12/15 | 1066856 | fonts/newcomputermodern/otf/NewCMMono10-BookItalic.otf
2021/12/15 | 10596116 | systems/texlive/tlnet/archive/arara.r61305.tar.xz
2021/12/15 | 10580054 | systems/win32/miktex/tm/packages/arara.tar.lzma
-2021/12/15 | 104746 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2021/12/15 | 103460 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
2021/12/15 | 1015366 | systems/win32/miktex/tm/packages/latexindent__doc.tar.lzma
-2021/12/15 | 101507 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
2021/12/15 | 10104 | systems/texlive/tlnet/archive/context-vim.r61301.tar.xz
2021/12/15 | 100785 | systems/win32/miktex/tm/packages/arara__source.tar.lzma
2021/12/15 | 100292 | systems/texlive/tlnet/archive/arara.source.r61305.tar.xz
@@ -432,7 +655,6 @@
2021/12/14 | 682 | support/arara/scripts/rules/arara-rule-sketch.yaml
2021/12/14 | 6742 | support/latexindent/LatexIndent/Environment.pm
2021/12/14 | 6735 | macros/latex/contrib/l3build/l3build-typesetting.lua
-2021/12/14 | 6697 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2021/12/14 | 6682 | systems/win32/miktex/tm/packages/fontsetup.tar.lzma
2021/12/14 | 6645 | support/latexindent/LatexIndent/BackUpFileProcedure.pm
2021/12/14 | 66231 | support/latexindent/documentation/subsec-poly-switches.tex
@@ -455,7 +677,6 @@
2021/12/14 | 621 | support/arara/scripts/rules/arara-rule-bibtex8.yaml
2021/12/14 | 62164 | fonts/cochineal/tfm/Cochineal-Bold-osf-swash-t1.tfm
2021/12/14 | 61713 | support/latexindent/LatexIndent/AlignmentAtAmpersand.pm
-2021/12/14 | 616228 | systems/texlive/tlnet/archive/easybook.doc.r61296.tar.xz
2021/12/14 | 61172 | support/arara/doc/figures/optionbox1.pdf
2021/12/14 | 6107 | systems/win32/miktex/tm/packages/unbtex.tar.lzma
2021/12/14 | 6104066 | support/latexindent.zip
@@ -799,8 +1020,6 @@
2021/12/14 | 1837 | support/arara/scripts/rules/arara-rule-detex.yaml
2021/12/14 | 1816 | macros/latex/contrib/l3build/l3build.1
2021/12/14 | 18045 | systems/win32/miktex/tm/packages/numerica.tar.lzma
-2021/12/14 | 17988 | systems/texlive/tlnet/archive/easybook.source.r61296.tar.xz
-2021/12/14 | 17960 | systems/texlive/tlnet/archive/easybook.r61296.tar.xz
2021/12/14 | 1728 | fonts/cochineal/vf/Cochineal-Bold-osf-swash-t1.vf
2021/12/14 | 1727 | support/arara/doc/arara.1
2021/12/14 | 1724 | fonts/cochineal/vf/Cochineal-Bold-osf-t1.vf
@@ -1187,8 +1406,6 @@
2021/12/11 | 10168 | language/japanese/platex/kinsoku.dtx
2021/12/10 | 972 | macros/latex/contrib/unbtex/unbtex-example/codigos/ModalReduction.jl
2021/12/10 | 746964 | macros/latex/contrib/microtype/microtype.dtx
-2021/12/10 | 7441172 | systems/texlive/tlnet/archive/newcomputermodern.r61257.tar.xz
-2021/12/10 | 743660 | systems/texlive/tlnet/archive/l3build.doc.r61260.tar.xz
2021/12/10 | 7153 | biblio/bibtex/contrib/gbt7714/CHANGELOG.md
2021/12/10 | 6883 | macros/latex/contrib/microtype/microtype.ins
2021/12/10 | 68746 | macros/latex/contrib/microtype/microtype-utf.dtx
@@ -1205,11 +1422,9 @@
2021/12/10 | 424 | macros/latex/contrib/unbtex/unbtex-example/anexo-b.tex
2021/12/10 | 3814 | macros/latex/contrib/unbtex/unbtex-example/capitulo3.tex
2021/12/10 | 373 | macros/latex/contrib/unbtex/unbtex-example/codigos/controle.m
-2021/12/10 | 35516 | systems/texlive/tlnet/archive/l3build.r61260.tar.xz
2021/12/10 | 3395 | macros/latex/contrib/microtype/README.md
2021/12/10 | 33698 | macros/latex/contrib/numerica-plus/numerica-plus.sty
2021/12/10 | 31319 | macros/latex/contrib/unbtex/unbtex-example/figuras/img-grafico.pdf
-2021/12/10 | 30748 | systems/texlive/tlnet/archive/l3build.source.r61260.tar.xz
2021/12/10 | 3009927 | install/macros/latex/contrib/microtype.tds.zip
2021/12/10 | 2890006 | macros/latex/contrib/microtype.zip
2021/12/10 | 2735 | macros/latex/contrib/unbtex/unbtex-example/capitulo1.tex
@@ -1223,301 +1438,10 @@
2021/12/10 | 2149691 | macros/latex/contrib/microtype/microtype-code.pdf
2021/12/10 | 19971 | macros/latex/contrib/unbtex/unbtex-example/figuras/1280px-LaTeX-logo.png
2021/12/10 | 17407 | macros/latex/contrib/unbtex/unbtex.cls
-2021/12/10 | 1677452 | systems/texlive/tlnet/archive/newcomputermodern.doc.r61257.tar.xz
2021/12/10 | 1671 | macros/latex/contrib/unbtex/unbtex-example/codigos/controleSmithPredictor.py
-2021/12/10 | 15135460 | systems/texlive/tlnet/archive/newcomputermodern.source.r61257.tar.xz
2021/12/10 | 1466053 | macros/latex/contrib/unbtex.zip
2021/12/10 | 1356 | macros/latex/contrib/unbtex/unbtex-example/figuras/capa_fundo.pdf
2021/12/10 | 1208776 | macros/latex/contrib/unbtex/unbtex-example.pdf
2021/12/10 | 1204 | macros/latex/contrib/unbtex/README.md
2021/12/10 | 11947 | macros/latex/contrib/unbtex/unbtex-example.tex
2021/12/10 | 11441 | macros/latex/contrib/unbtex/unbtex-example/referencias.bib
-2021/12/09 | 99717 | systems/win32/miktex/tm/packages/miktex-epstopdf-bin-2.9.tar.lzma
-2021/12/09 | 99189 | systems/win32/miktex/tm/packages/miktex-mfware-bin-2.9.tar.lzma
-2021/12/09 | 9801 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/63b2ca3a984022db627f256b59e7c244097378e6a7dc0be545a5b22978d841eb-filelists.sqlite.bz2
-2021/12/09 | 97227 | systems/win32/miktex/tm/packages/miktex-gd-bin-2.9.tar.lzma
-2021/12/09 | 96893 | systems/win32/miktex/tm/packages/miktex-gregorio-bin-2.9.tar.lzma
-2021/12/09 | 959164 | systems/win32/miktex/tm/packages/miktex-asymptote-bin-2.9.tar.lzma
-2021/12/09 | 95425 | systems/win32/miktex/tm/packages/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2021/12/09 | 95424 | systems/win32/miktex/tm/packages/miktex-jpeg-bin-2.9.tar.lzma
-2021/12/09 | 952 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/692243b61bf87673d82acc46c7a1d8ec15f32292341ede5bd6f33d6551310766-other.xml.gz
-2021/12/09 | 952 | systems/win32/miktex/setup/rpm/fedora/28/repodata/277b4f359a00fa92515ffc775eef11dde1e227d2728f5d454184924d1957191e-other.xml.gz
-2021/12/09 | 94049 | systems/win32/miktex/tm/packages/miktex-lua53-bin-2.9.tar.lzma
-2021/12/09 | 89 | systems/win32/miktex/setup/deb/dists/buster/universe/binary-amd64/Release
-2021/12/09 | 89 | systems/win32/miktex/setup/deb/dists/bionic/universe/binary-amd64/Release
-2021/12/09 | 887 | fonts/newcomputermodern/tex/NewCMSans10-Book.fontspec
-2021/12/09 | 886 | fonts/newcomputermodern/tex/NewCMSans10-Regular.fontspec
-2021/12/09 | 88110 | systems/win32/miktex/tm/packages/miktex-png-bin-x64-2.9.tar.lzma
-2021/12/09 | 8761 | systems/win32/miktex/tm/packages/miktex-md5-bin-x64-2.9.tar.lzma
-2021/12/09 | 86 | systems/win32/miktex/setup/deb/dists/focal/universe/binary-amd64/Release
-2021/12/09 | 86820 | systems/win32/miktex/tm/packages/miktex-bibtex8bit-bin-2.9.tar.lzma
-2021/12/09 | 828382 | macros/unicodetex/latex/fontsetup.zip
-2021/12/09 | 824593 | systems/win32/miktex/tm/packages/miktex-pdftex-bin-x64-2.9.tar.lzma
-2021/12/09 | 81552 | systems/win32/miktex/tm/packages/miktex-freeglut-bin-x64-2.9.tar.lzma
-2021/12/09 | 8015 | fonts/newcomputermodern/doc/newcomputermodern-sample.tex
-2021/12/09 | 79264 | systems/win32/miktex/tm/packages/miktex-fonts-bin-x64-2.9.tar.lzma
-2021/12/09 | 79102 | systems/win32/miktex/tm/packages/miktex-png-bin-2.9.tar.lzma
-2021/12/09 | 7733 | systems/win32/miktex/tm/packages/miktex-md5-bin-2.9.tar.lzma
-2021/12/09 | 77120 | systems/win32/miktex/tm/packages/miktex-bibtex-bin-x64-2.9.tar.lzma
-2021/12/09 | 76247 | systems/win32/miktex/tm/packages/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2021/12/09 | 754080 | systems/win32/miktex/tm/packages/miktex-pdftex-bin-2.9.tar.lzma
-2021/12/09 | 752743 | systems/win32/miktex/tm/packages/miktex-ptex-bin-x64.tar.lzma
-2021/12/09 | 74601 | systems/win32/miktex/tm/packages/miktex-mkfntmap-bin-x64-2.9.tar.lzma
-2021/12/09 | 74008 | systems/win32/miktex/tm/packages/miktex-lzma-bin-x64-2.9.tar.lzma
-2021/12/09 | 73426 | systems/win32/miktex/tm/packages/miktex-fonts-bin-2.9.tar.lzma
-2021/12/09 | 73205 | systems/win32/miktex/tm/packages/miktex-graphite2-bin-x64-2.9.tar.lzma
-2021/12/09 | 72810 | systems/win32/miktex/tm/packages/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2021/12/09 | 72200 | systems/win32/miktex/setup/rpm/fedora/28/repodata/9ba4838415ca1b1a12c8c97c3cd8e38ca57576b238012c4e9d9759ff85995642-filelists.sqlite.bz2
-2021/12/09 | 72111 | systems/win32/miktex/tm/packages/miktex-freeglut-bin-2.9.tar.lzma
-2021/12/09 | 71933 | systems/win32/miktex/tm/packages/miktex-web-bin-x64-2.9.tar.lzma
-2021/12/09 | 70942 | systems/win32/miktex/tm/packages/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2021/12/09 | 700 | macros/unicodetex/latex/fontsetup/fspfiraot.sty
-2021/12/09 | 688550 | systems/win32/miktex/tm/packages/miktex-ptex-bin.tar.lzma
-2021/12/09 | 68750 | systems/win32/miktex/tm/packages/miktex-bibtex-bin-2.9.tar.lzma
-2021/12/09 | 68564 | systems/win32/miktex/tm/packages/miktex-mpmcli-bin-2.9.tar.lzma
-2021/12/09 | 681897 | systems/win32/miktex/tm/packages/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2021/12/09 | 67960 | systems/win32/miktex/tm/packages/miktex-lzma-bin-2.9.tar.lzma
-2021/12/09 | 676 | macros/unicodetex/latex/fontsetup/fsptimesot.sty
-2021/12/09 | 671 | macros/unicodetex/latex/fontsetup/fspgfsartemisiaot.sty
-2021/12/09 | 67091 | systems/win32/miktex/tm/packages/miktex-texify-bin-x64-2.9.tar.lzma
-2021/12/09 | 65923 | systems/win32/miktex/tm/packages/miktex-web-bin-2.9.tar.lzma
-2021/12/09 | 64997 | systems/win32/miktex/tm/packages/miktex-bibarts-bin-x64-2.9.tar.lzma
-2021/12/09 | 64692 | systems/win32/miktex/tm/packages/miktex-ps2pk-bin-2.9.tar.lzma
-2021/12/09 | 64608 | systems/win32/miktex/tm/packages/miktex-tex4ht-bin-2.9.tar.lzma
-2021/12/09 | 64564 | systems/win32/miktex/tm/packages/miktex-graphite2-bin-2.9.tar.lzma
-2021/12/09 | 64527 | systems/win32/miktex/tm/packages/miktex-mkfntmap-bin-2.9.tar.lzma
-2021/12/09 | 63692 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin-x64.tar.lzma
-2021/12/09 | 63518346 | systems/win32/miktex/setup/darwin-x86_64/miktex-21.12.10-darwin-x86_64.dmg
-2021/12/09 | 63342 | systems/win32/miktex/tm/packages/miktex-fmt-bin-x64-2.9.tar.lzma
-2021/12/09 | 630554 | systems/win32/miktex/tm/packages/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2021/12/09 | 629147 | systems/win32/miktex/tm/packages/miktex-yap-bin-x64-2.9.tar.lzma
-2021/12/09 | 62405 | systems/win32/miktex/tm/packages/miktex-cweb-bin-x64-2.9.tar.lzma
-2021/12/09 | 62207 | systems/win32/miktex/tm/packages/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2021/12/09 | 597983 | systems/win32/miktex/tm/packages/miktex-libressl-bin-x64-2.9.tar.lzma
-2021/12/09 | 590915 | systems/win32/miktex/tm/packages/miktex-yap-bin-2.9.tar.lzma
-2021/12/09 | 58567 | systems/win32/miktex/tm/packages/miktex-texify-bin-2.9.tar.lzma
-2021/12/09 | 58468 | systems/win32/miktex/tm/packages/miktex-psutils-bin-x64-2.9.tar.lzma
-2021/12/09 | 57519 | systems/win32/miktex/tm/packages/miktex-tdsutil-bin.tar.lzma
-2021/12/09 | 57445 | systems/win32/miktex/tm/packages/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2021/12/09 | 57406 | systems/win32/miktex/tm/packages/miktex-xml2pmx-bin-x64.tar.lzma
-2021/12/09 | 57331 | systems/win32/miktex/tm/packages/miktex-arctrl-bin-x64-2.9.tar.lzma
-2021/12/09 | 57032 | systems/win32/miktex/tm/packages/miktex-fmt-bin-2.9.tar.lzma
-2021/12/09 | 56755 | systems/win32/miktex/tm/packages/miktex-bibarts-bin-2.9.tar.lzma
-2021/12/09 | 566265 | systems/win32/miktex/tm/packages/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2021/12/09 | 55721 | systems/win32/miktex/tm/packages/miktex-xml2pmx-bin.tar.lzma
-2021/12/09 | 55310 | systems/win32/miktex/tm/packages/miktex-ttf2pk2-bin-2.9.tar.lzma
-2021/12/09 | 55021 | systems/win32/miktex/tm/packages/miktex-cweb-bin-2.9.tar.lzma
-2021/12/09 | 532421 | systems/win32/miktex/tm/packages/miktex-libressl-bin-2.9.tar.lzma
-2021/12/09 | 527718 | systems/win32/miktex/tm/packages/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2021/12/09 | 5274 | systems/win32/miktex/setup/rpm/fedora/28/repodata/4287a66763a88a6e6fa0cabbc052ae2c99b7eedcfbfda6aa71d24ef2ec2a50d9-primary.xml.gz
-2021/12/09 | 5249 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/8ffbe25ceefd3eb5181ed46fd0c01e58520a6861aff7f55c987b144d866bbb35-primary.xml.gz
-2021/12/09 | 52488 | systems/win32/miktex/tm/packages/miktex-synctex-bin-x64-2.9.tar.lzma
-2021/12/09 | 52299 | systems/win32/miktex/tm/packages/miktex-m-tx-bin-x64-2.9.tar.lzma
-2021/12/09 | 52267 | systems/win32/miktex/setup/rpm/fedora/28/repodata/d27d89a7b110da23f26f388165bbdde873eec1833b0ec9e954ec85eb2c77ca6e-primary.sqlite.bz2
-2021/12/09 | 52080 | systems/win32/miktex/tm/packages/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2021/12/09 | 52049 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/32ae447ac3dcd08923ffdb07bc10ae0842efa70d0d577ba1407a075cf63494f5-primary.sqlite.bz2
-2021/12/09 | 51576 | systems/win32/miktex/tm/packages/miktex-arctrl-bin-2.9.tar.lzma
-2021/12/09 | 51467 | systems/win32/miktex/tm/packages/miktex-cjkutils-bin-2.9.tar.lzma
-2021/12/09 | 51170 | systems/win32/miktex/tm/packages/miktex-psutils-bin-2.9.tar.lzma
-2021/12/09 | 508929 | systems/win32/miktex/doc/miktex.pdf
-2021/12/09 | 507822 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus.zip
-2021/12/09 | 504 | systems/win32/miktex/setup/rpm/fedora/33/repodata/f4fb87bd8d17345d9ee4060f1f7fba0301cdb61a0754c54aeba002f21c28de7e-other.xml.gz
-2021/12/09 | 488 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/repomd.xml.asc
-2021/12/09 | 488 | systems/win32/miktex/setup/rpm/fedora/34/repodata/repomd.xml.asc
-2021/12/09 | 488 | systems/win32/miktex/setup/rpm/fedora/33/repodata/repomd.xml.asc
-2021/12/09 | 488 | systems/win32/miktex/setup/rpm/fedora/28/repodata/repomd.xml.asc
-2021/12/09 | 48797 | systems/win32/miktex/tm/packages/miktex-expat-bin-x64-2.9.tar.lzma
-2021/12/09 | 483597 | systems/win32/miktex/tm/packages/miktex-harfbuzz-bin-2.9.tar.lzma
-2021/12/09 | 47877 | systems/win32/miktex/tm/packages/miktex-mtprint-bin-x64-2.9.tar.lzma
-2021/12/09 | 477744 | systems/win32/miktex/tm/packages/miktex-log4cxx-bin-2.9.tar.lzma
-2021/12/09 | 47401 | systems/win32/miktex/setup/rpm/fedora/28/repodata/1edf135fed289b17cb232006085602999bee4462ed6fa07d2369bea76027dcd7-filelists.xml.gz
-2021/12/09 | 473 | systems/win32/miktex/setup/deb/dists/focal/Release.gpg
-2021/12/09 | 473 | systems/win32/miktex/setup/deb/dists/buster/Release.gpg
-2021/12/09 | 473 | systems/win32/miktex/setup/deb/dists/bionic/Release.gpg
-2021/12/09 | 469 | macros/unicodetex/latex/fontsetup/fspkerkisot.sty
-2021/12/09 | 461 | macros/unicodetex/latex/fontsetup/fspstixtwoot.sty
-2021/12/09 | 461418 | systems/win32/miktex/tm/packages/miktex-doc.tar.lzma
-2021/12/09 | 4608 | macros/unicodetex/latex/fontsetup/fontsetup.sty
-2021/12/09 | 46064 | systems/win32/miktex/tm/packages/miktex-dvicopy-bin-2.9.tar.lzma
-2021/12/09 | 460242 | macros/unicodetex/latex/fontsetup/doc/fontsetup-doc.pdf
-2021/12/09 | 45856 | systems/win32/miktex/tm/packages/miktex-m-tx-bin-2.9.tar.lzma
-2021/12/09 | 45773 | systems/win32/miktex/tm/packages/miktex-dvipng-bin-x64-2.9.tar.lzma
-2021/12/09 | 456 | systems/win32/miktex/setup/rpm/fedora/34/repodata/4822b30f7ea37400bca11458a28d52d4387864b770ec508863161fe010e99f2a-other.xml.gz
-2021/12/09 | 44495 | macros/unicodetex/latex/fontsetup/doc/fspsample-newdefault.pdf
-2021/12/09 | 43879 | systems/win32/miktex/tm/packages/miktex-mthelp-bin-x64-2.9.tar.lzma
-2021/12/09 | 43833 | systems/win32/miktex/tm/packages/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2021/12/09 | 43640 | systems/win32/miktex/tm/packages/miktex-expat-bin-2.9.tar.lzma
-2021/12/09 | 43639 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
-2021/12/09 | 43299 | systems/win32/miktex/tm/packages/miktex-mtprint-bin-2.9.tar.lzma
-2021/12/09 | 42771 | systems/win32/miktex/tm/packages/miktex-synctex-bin-2.9.tar.lzma
-2021/12/09 | 41315 | systems/win32/miktex/tm/packages/miktex-dvipng-bin-2.9.tar.lzma
-2021/12/09 | 41183 | systems/win32/miktex/tm/packages/miktex-patgen-bin-x64.tar.lzma
-2021/12/09 | 41180 | systems/win32/miktex/tm/packages/miktex-upmendex-bin-x64.tar.lzma
-2021/12/09 | 4100 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/5c4cc35df75e498935e0524dd14b967a7f270401776052170e0d3295856f39e0-filelists.xml.gz
-2021/12/09 | 39714 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma
-2021/12/09 | 394047 | systems/win32/miktex/tm/packages/miktex-cairo-bin-x64-2.9.tar.lzma
-2021/12/09 | 3889932 | systems/texlive/tlnet/archive/newpx.r61250.tar.xz
-2021/12/09 | 38532 | systems/win32/miktex/tm/packages/miktex-mthelp-bin-2.9.tar.lzma
-2021/12/09 | 38436 | systems/win32/miktex/tm/packages/miktex-gsf2pk-bin-2.9.tar.lzma
-2021/12/09 | 37365 | systems/win32/miktex/tm/packages/miktex-posix-bin-x64-2.9.tar.lzma
-2021/12/09 | 37064 | systems/win32/miktex/tm/packages/miktex-chktex-bin-x64-2.9.tar.lzma
-2021/12/09 | 37034 | systems/win32/miktex/tm/packages/miktex-upmendex-bin.tar.lzma
-2021/12/09 | 369 | macros/unicodetex/latex/fontsetup/README
-2021/12/09 | 36054 | systems/win32/miktex/tm/packages/miktex-patgen-bin.tar.lzma
-2021/12/09 | 35239 | systems/win32/miktex/tm/packages/miktex-axohelp-bin-x64-2.9.tar.lzma
-2021/12/09 | 35189 | systems/win32/miktex/tm/packages/miktex-mspack-bin-x64-2.9.tar.lzma
-2021/12/09 | 351712 | systems/win32/miktex/tm/packages/miktex-xetex-bin-x64-2.9.tar.lzma
-2021/12/09 | 34510130 | systems/win32/miktex/setup/deb/pool/universe/m/miktex/miktex_21.12.10-bionic1_amd64.deb
-2021/12/09 | 341 | fonts/newcomputermodern/tex/newcomputermodern.sty
-2021/12/09 | 34181036 | systems/win32/miktex/setup/deb/pool/universe/m/miktex/miktex_21.12.10-focal1_amd64.deb
-2021/12/09 | 34017 | systems/win32/miktex/tm/packages/miktex-uriparser-bin-x64-2.9.tar.lzma
-2021/12/09 | 33644 | macros/unicodetex/latex/fontsetup/doc/fspsample-libertinus.pdf
-2021/12/09 | 33590950 | systems/win32/miktex/setup/deb/pool/universe/m/miktex/miktex_21.12.10-buster1_amd64.deb
-2021/12/09 | 332289 | systems/win32/miktex/tm/packages/miktex-cairo-bin-2.9.tar.lzma
-2021/12/09 | 32956 | systems/win32/miktex/tm/packages/miktex-chktex-bin-2.9.tar.lzma
-2021/12/09 | 32654 | macros/unicodetex/latex/fontsetup/doc/fspsample-gfsdidotclassic.pdf
-2021/12/09 | 326544 | systems/win32/miktex/tm/packages/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2021/12/09 | 32112 | systems/win32/miktex/tm/packages/miktex-makeindex-bin-x64-2.9.tar.lzma
-2021/12/09 | 318 | macros/unicodetex/latex/fontsetup/fspebgaramondot.sty
-2021/12/09 | 316285 | systems/win32/miktex/tm/packages/miktex-xetex-bin-2.9.tar.lzma
-2021/12/09 | 31551 | systems/win32/miktex/tm/packages/miktex-posix-bin-2.9.tar.lzma
-2021/12/09 | 31549 | systems/win32/miktex/tm/packages/miktex-autosp-bin-x64-2.9.tar.lzma
-2021/12/09 | 31406 | systems/win32/miktex/tm/packages/miktex-mspack-bin-2.9.tar.lzma
-2021/12/09 | 31325 | systems/win32/miktex/tm/packages/miktex-bzip2-bin-x64-2.9.tar.lzma
-2021/12/09 | 31224 | macros/unicodetex/latex/fontsetup/doc/fspsample-gfsdidot.pdf
-2021/12/09 | 30994 | macros/unicodetex/latex/fontsetup/doc/fspsample-ebgaramond.pdf
-2021/12/09 | 30546 | systems/win32/miktex/tm/packages/miktex-lacheck-bin-x64-2.9.tar.lzma
-2021/12/09 | 30188 | systems/win32/miktex/tm/packages/miktex-axohelp-bin-2.9.tar.lzma
-2021/12/09 | 2999 | systems/win32/miktex/setup/rpm/fedora/33/repodata/1d6cdff4a60849cd85deaa1821ce05598927fa0e25338dadee33d8773cb40ca6-primary.xml.gz
-2021/12/09 | 2980 | systems/win32/miktex/setup/rpm/fedora/28/repodata/repomd.xml
-2021/12/09 | 2979 | systems/win32/miktex/setup/rpm/fedora/33/repodata/repomd.xml
-2021/12/09 | 2978 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/repomd.xml
-2021/12/09 | 2977 | systems/win32/miktex/setup/rpm/fedora/34/repodata/repomd.xml
-2021/12/09 | 296096 | systems/win32/miktex/tm/packages/miktex-freetype2-bin-x64-2.9.tar.lzma
-2021/12/09 | 28947 | macros/unicodetex/latex/fontsetup/doc/fspsample-stixtwo.pdf
-2021/12/09 | 28823 | systems/win32/miktex/tm/packages/miktex-autosp-bin-2.9.tar.lzma
-2021/12/09 | 28692 | systems/win32/miktex/tm/packages/miktex-uriparser-bin-2.9.tar.lzma
-2021/12/09 | 286576 | systems/win32/miktex/tm/packages/miktex-metapost-bin-x64-2.9.tar.lzma
-2021/12/09 | 285490 | systems/win32/miktex/tm/packages/miktex-dvipdfmx-bin-2.9.tar.lzma
-2021/12/09 | 28516 | systems/win32/miktex/tm/packages/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2021/12/09 | 28482 | macros/unicodetex/latex/fontsetup/doc/fspsample-neoeuler.pdf
-2021/12/09 | 28400 | systems/win32/miktex/tm/packages/miktex-lacheck-bin-2.9.tar.lzma
-2021/12/09 | 281689 | systems/win32/miktex/tm/packages/miktex-console-bin-x64-2.9.tar.lzma
-2021/12/09 | 2799257 | systems/win32/miktex/tm/packages/miktex-texworks-bin-x64-2.9.tar.lzma
-2021/12/09 | 27819 | macros/unicodetex/latex/fontsetup/doc/fspsample-gfsartemisia.pdf
-2021/12/09 | 2771 | systems/win32/miktex/setup/rpm/fedora/34/repodata/6abdd0ab9ab7b24cd43a2c19f489b93b9cddec8be319e62192dd3eb5fa3ceab9-primary.xml.gz
-2021/12/09 | 27714 | macros/unicodetex/latex/fontsetup/doc/fspsample-cmr.pdf
-2021/12/09 | 27606 | systems/win32/miktex/tm/packages/miktex-makeindex-bin-2.9.tar.lzma
-2021/12/09 | 27539 | macros/unicodetex/latex/fontsetup/doc/fspsample-gfsneohellenic.pdf
-2021/12/09 | 27509 | systems/win32/miktex/tm/packages/miktex-teckit-bin-x64-2.9.tar.lzma
-2021/12/09 | 27239 | systems/win32/miktex/tm/packages/miktex-bzip2-bin-2.9.tar.lzma
-2021/12/09 | 2712 | macros/unicodetex/latex/fontsetup/doc/fspsample.tex
-2021/12/09 | 2671920 | systems/win32/miktex/tm/packages/miktex-texworks-bin-2.9.tar.lzma
-2021/12/09 | 26175 | systems/win32/miktex/setup/rpm/fedora/33/repodata/678154ae6244477cfb0dc2be382e1197878b68a81f84a2ebe3f450469089c40f-filelists.sqlite.bz2
-2021/12/09 | 26105168 | systems/win32/miktex/setup/rpm/fedora/28/miktex-21.12.10-1.fc28.x86_64.rpm
-2021/12/09 | 259249 | systems/win32/miktex/tm/packages/miktex-freetype2-bin-2.9.tar.lzma
-2021/12/09 | 255964 | systems/texlive/tlnet/archive/newpx.doc.r61250.tar.xz
-2021/12/09 | 25436 | systems/win32/miktex/tm/packages/miktex-teckit-bin-2.9.tar.lzma
-2021/12/09 | 253275 | systems/win32/miktex/tm/packages/miktex-console-bin-2.9.tar.lzma
-2021/12/09 | 25282 | macros/unicodetex/latex/fontsetup/doc/fspsample-kerkis.pdf
-2021/12/09 | 251122 | systems/win32/miktex/tm/packages/miktex-metapost-bin-2.9.tar.lzma
-2021/12/09 | 25092 | systems/win32/miktex/tm/packages/miktex-findtexmf-bin-2.9.tar.lzma
-2021/12/09 | 25061 | systems/win32/miktex/tm/packages/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2021/12/09 | 2497 | systems/win32/miktex/setup/deb/dists/focal/universe/binary-amd64/Packages.bz2
-2021/12/09 | 244935 | systems/win32/miktex/tm/packages/miktex-pmx-bin-x64-2.9.tar.lzma
-2021/12/09 | 24205928 | systems/win32/miktex/setup/rpm/opensuse/15/miktex-21.12.10-1.x86_64.rpm
-2021/12/09 | 24141 | systems/win32/miktex/tm/packages/miktex-devnag-bin-x64-2.9.tar.lzma
-2021/12/09 | 23914 | systems/win32/miktex/tm/packages/miktex-popt-bin-x64-2.9.tar.lzma
-2021/12/09 | 234 | fonts/newcomputermodern/tex/NewCMMono10-Regular.fontspec
-2021/12/09 | 232 | fonts/newcomputermodern/tex/NewCMMono10-Book.fontspec
-2021/12/09 | 2314 | systems/win32/miktex/setup/deb/dists/buster/universe/binary-amd64/Packages.bz2
-2021/12/09 | 23139 | macros/unicodetex/latex/fontsetup/doc/fspsample-times.pdf
-2021/12/09 | 2272 | macros/unicodetex/latex/fontsetup/fspneoeulerot.sty
-2021/12/09 | 2267 | systems/win32/miktex/setup/deb/dists/bionic/universe/binary-amd64/Packages.bz2
-2021/12/09 | 22150 | systems/win32/miktex/tm/packages/miktex-fribidixetex-bin-2.9.tar.lzma
-2021/12/09 | 215854 | systems/win32/miktex/tm/packages/miktex-metafont-bin-x64-2.9.tar.lzma
-2021/12/09 | 21408652 | systems/win32/miktex/setup/rpm/fedora/34/miktex-21.12.10-1.fc34.x86_64.rpm
-2021/12/09 | 21396 | macros/unicodetex/latex/fontsetup/doc/fspsample-fira.pdf
-2021/12/09 | 21386298 | systems/win32/miktex/setup/rpm/fedora/33/miktex-21.12.10-1.fc33.x86_64.rpm
-2021/12/09 | 213726 | systems/win32/miktex/tm/packages/miktex-omegaware-bin-x64-2.9.tar.lzma
-2021/12/09 | 21303 | systems/win32/miktex/tm/packages/miktex-devnag-bin-2.9.tar.lzma
-2021/12/09 | 210112 | systems/win32/miktex/tm/packages/miktex-pmx-bin-2.9.tar.lzma
-2021/12/09 | 20916 | systems/win32/miktex/setup/rpm/fedora/33/repodata/914770bc024dd7f8678263f337b7b29e2a04c4dcfbf4efdea9062e9d44a73321-primary.sqlite.bz2
-2021/12/09 | 2045 | macros/unicodetex/latex/fontsetup/fspgfsneohellenicot.sty
-2021/12/09 | 2033 | systems/win32/miktex/setup/deb/dists/buster/InRelease
-2021/12/09 | 2033 | systems/win32/miktex/setup/deb/dists/bionic/InRelease
-2021/12/09 | 2029 | systems/win32/miktex/setup/deb/dists/focal/InRelease
-2021/12/09 | 202753 | systems/win32/miktex/tm/packages/miktex-pixman-bin-x64-2.9.tar.lzma
-2021/12/09 | 202387 | systems/win32/miktex/tm/packages/miktex-mo-bin-x64-2.9.tar.lzma
-2021/12/09 | 20168 | systems/win32/miktex/tm/packages/miktex-popt-bin-2.9.tar.lzma
-2021/12/09 | 2014 | macros/unicodetex/latex/fontsetup/fspgfsdidotot.sty
-2021/12/09 | 2010829 | systems/win32/miktex/tm/packages/miktex-luatex-bin-x64-2.9.tar.lzma
-2021/12/09 | 20020 | systems/win32/miktex/setup/rpm/fedora/34/repodata/8fff7d07ea4fce884e7b9eb0d2f5cc728cfab23b0e2b4cef27396e5a8ccf01b5-filelists.sqlite.bz2
-2021/12/09 | 200029 | systems/win32/miktex/tm/packages/miktex-pixman-bin-2.9.tar.lzma
-2021/12/09 | 199658 | systems/win32/miktex/tm/packages/miktex-mpfr-bin-2.9.tar.lzma
-2021/12/09 | 1987 | systems/win32/miktex/setup/deb/dists/focal/universe/binary-amd64/Packages.gz
-2021/12/09 | 197348 | systems/win32/miktex/tm/packages/miktex-metafont-bin-2.9.tar.lzma
-2021/12/09 | 196933 | systems/win32/miktex/tm/packages/miktex-omegaware-bin-2.9.tar.lzma
-2021/12/09 | 196156 | systems/win32/miktex/tm/packages/miktex-curl-bin-x64-2.9.tar.lzma
-2021/12/09 | 1915 | systems/win32/miktex/setup/rpm/fedora/28/repodata/25db756013223a31ea916773eea39cd3e073f6bbfb7304874c9ab177e118bd9c-other.sqlite.bz2
-2021/12/09 | 1897 | systems/win32/miktex/setup/rpm/opensuse/15/repodata/e74653865a4e32051aa5b71d07b7d4bc4b969d6eae0de9bcda72476aff566401-other.sqlite.bz2
-2021/12/09 | 1889 | systems/win32/miktex/setup/deb/dists/buster/universe/binary-amd64/Packages.gz
-2021/12/09 | 18497 | systems/win32/miktex/tm/packages/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2021/12/09 | 18381 | systems/win32/miktex/tm/packages/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2021/12/09 | 1832 | systems/win32/miktex/setup/deb/dists/bionic/universe/binary-amd64/Packages.gz
-2021/12/09 | 181770 | systems/win32/miktex/tm/packages/miktex-mo-bin-2.9.tar.lzma
-2021/12/09 | 181441 | systems/win32/miktex/tm/packages/miktex-mpfr-bin-x64-2.9.tar.lzma
-2021/12/09 | 179945 | systems/win32/miktex/tm/packages/miktex-curl-bin-2.9.tar.lzma
-2021/12/09 | 17927 | macros/unicodetex/latex/fontsetup/doc/fontsetup-doc.tex
-2021/12/09 | 17289 | systems/win32/miktex/setup/rpm/fedora/34/repodata/e40ed8d3e58a0f59ec7e35c180dc1f3d5069d6efc402ccf162f88ae33c73a62b-primary.sqlite.bz2
-2021/12/09 | 172270 | systems/win32/miktex/tm/packages/miktex-tex-bin-x64-2.9.tar.lzma
-2021/12/09 | 1716208 | systems/win32/miktex/tm/packages/miktex-luatex-bin-2.9.tar.lzma
-2021/12/09 | 168819 | systems/win32/miktex/tm/packages/miktex-hunspell-bin-x64-2.9.tar.lzma
-2021/12/09 | 16581 | systems/win32/miktex/tm/packages/miktex-tex2xindy-bin-2.9.tar.lzma
-2021/12/09 | 16503 | systems/win32/miktex/tm/packages/miktex-kpathsea-bin-2.9.tar.lzma
-2021/12/09 | 16144 | fonts/newcomputermodern/doc/newcm-unimath-symbols.ltx
-2021/12/09 | 1612 | systems/win32/miktex/setup/deb/dists/focal/universe/Contents-amd64.gz
-2021/12/09 | 1612 | systems/win32/miktex/setup/deb/dists/buster/universe/Contents-amd64.gz
-2021/12/09 | 1612 | systems/win32/miktex/setup/deb/dists/bionic/universe/Contents-amd64.gz
-2021/12/09 | 16126 | systems/win32/miktex/setup/rpm/fedora/33/repodata/df26ebe60c0cd782bfeafff2106a4bdd44f501800202a0171b3330f679b7e692-filelists.xml.gz
-2021/12/09 | 15806 | systems/win32/miktex/setup/deb/dists/focal/universe/binary-amd64/Packages
-2021/12/09 | 156568 | systems/win32/miktex/tm/packages/miktex-tex-bin-2.9.tar.lzma
-2021/12/09 | 155571 | systems/win32/miktex/tm/packages/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2021/12/09 | 152099 | systems/win32/miktex/tm/packages/miktex-hunspell-bin-2.9.tar.lzma
-2021/12/09 | 1511 | systems/win32/miktex/setup/deb/dists/buster/Release
-2021/12/09 | 1511 | systems/win32/miktex/setup/deb/dists/bionic/Release
-2021/12/09 | 1507 | systems/win32/miktex/setup/deb/dists/focal/Release
-2021/12/09 | 1497414 | systems/win32/miktex/tm/packages/miktex-runtime-bin-x64-2.9.tar.lzma
-2021/12/09 | 14635 | macros/unicodetex/latex/fontsetup/fspolddefault.sty
-2021/12/09 | 14590 | macros/unicodetex/latex/fontsetup/fspdefault.sty
-2021/12/09 | 1448227 | systems/win32/miktex/tm/packages/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2021/12/09 | 14417 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma
-2021/12/09 | 14142 | systems/win32/miktex/setup/deb/dists/buster/universe/binary-amd64/Packages
-2021/12/09 | 141279 | fonts/newcomputermodern/doc/newcomputermodern-sample.pdf
-2021/12/09 | 139075 | systems/win32/miktex/tm/packages/miktex-mktex-bin-x64-2.9.tar.lzma
-2021/12/09 | 136158 | systems/win32/miktex/tm/packages/miktex-fontconfig-bin-2.9.tar.lzma
-2021/12/09 | 1353166 | systems/win32/miktex/tm/packages/miktex-runtime-bin-2.9.tar.lzma
-2021/12/09 | 13527 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma
-2021/12/09 | 135194 | systems/win32/miktex/tm/packages/miktex-dvips-bin-x64-2.9.tar.lzma
-2021/12/09 | 13394 | systems/win32/miktex/setup/deb/dists/bionic/universe/binary-amd64/Packages
-2021/12/09 | 1322449 | systems/win32/miktex/tm/packages/miktex-poppler-bin-x64-2.9.tar.lzma
-2021/12/09 | 1303962 | fonts/newcomputermodern/doc/newcm-unimath-symbols.pdf
-2021/12/09 | 1297506 | systems/win32/miktex/tm/packages/miktex-dvisvgm-bin-2.9.tar.lzma
-2021/12/09 | 126605 | systems/win32/miktex/tm/packages/miktex-mktex-bin-2.9.tar.lzma
-2021/12/09 | 120259 | systems/win32/miktex/tm/packages/miktex-dvips-bin-2.9.tar.lzma
-2021/12/09 | 1181634 | systems/win32/miktex/tm/packages/miktex-poppler-bin-2.9.tar.lzma
-2021/12/09 | 11665 | systems/win32/miktex/setup/rpm/fedora/34/repodata/71c30a6254c66d2ecb8689e9de1dde9e51ed2c4fbeb8838ef70702ad4bfc0d0a-filelists.xml.gz
-2021/12/09 | 115671 | systems/win32/miktex/tm/packages/miktex-gregorio-bin-x64-2.9.tar.lzma
-2021/12/09 | 112931 | systems/win32/miktex/tm/packages/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2021/12/09 | 112765 | systems/win32/miktex/tm/packages/miktex-gd-bin-x64-2.9.tar.lzma
-2021/12/09 | 1105 | systems/win32/miktex/setup/rpm/fedora/33/repodata/d7a880345313da57b83930745cb49556a320093794acc4b20eb13fae3a0008d6-other.sqlite.bz2
-2021/12/09 | 109486 | systems/win32/miktex/tm/packages/miktex-jpeg-bin-x64-2.9.tar.lzma
-2021/12/09 | 1087002 | systems/win32/miktex/tm/packages/miktex-asymptote-bin-x64-2.9.tar.lzma
-2021/12/09 | 107663 | systems/win32/miktex/tm/packages/miktex-texware-bin-x64-2.9.tar.lzma
-2021/12/09 | 105125 | systems/win32/miktex/tm/packages/miktex-mfware-bin-x64-2.9.tar.lzma
-2021/12/09 | 1036 | macros/unicodetex/latex/fontsetup/fspgfsdidotclassicot.sty
-2021/12/09 | 1034 | fonts/newcomputermodern/tex/NewCM10-Regular.fontspec
-2021/12/09 | 103335 | systems/win32/miktex/tm/packages/miktex-lua53-bin-x64-2.9.tar.lzma
-2021/12/09 | 1014 | fonts/newcomputermodern/tex/NewCM10-Book.fontspec
-2021/12/09 | 1012 | systems/win32/miktex/setup/rpm/fedora/34/repodata/c39ce97f097a8995844378811388b80a3405c87235d0a37eae20b4021a48ad6f-other.sqlite.bz2
-2021/12/09 | 100370 | systems/win32/miktex/tm/packages/miktex-texware-bin-2.9.tar.lzma
diff --git a/graphics/pstricks/contrib/pst-hsb/Changes b/graphics/pstricks/contrib/pst-hsb/Changes
new file mode 100644
index 0000000000..8a38b6c68a
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-hsb/Changes
@@ -0,0 +1,8 @@
+..... pst-hsb.tex
+0.02 2017-12-17 - small fixes
+0.01 2012-01-01 - first version
+
+
+..... pst-hsb.sty
+ 2012-01-01 first version
+
diff --git a/graphics/pstricks/contrib/pst-hsb/README b/graphics/pstricks/contrib/pst-hsb/README
new file mode 100644
index 0000000000..cd130d90cc
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-hsb/README
@@ -0,0 +1,19 @@
+If you have one of the official TeX distribution installed, then
+all files are still present or can be installed by using the file manager.
+Otherwise save the files pst-hsb.sty|tex in a directory, which is part of your
+local TeX tree.
+Then do not forget to run texhash to update this tree.
+
+pst-hsb needs pst-plot (pstricks-add) and pstricks, which should
+be part of your local TeX installation, otherwise get it from a
+CTAN server, https://mirror.ctan.org
+
+PSTricks is PostScript Tricks, the documentation cannot be run
+with pdftex, use the sequence latex->dvips->ps2pdf or simply lualatex.
+
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN archives
+%% in directory macros/latex/base/lppl.txt.
+
+
+%% $Id: README 350 2021-12-16 10:20:18Z herbert $
diff --git a/graphics/pstricks/contrib/pst-hsb/doc/pst-hsb-doc.bib b/graphics/pstricks/contrib/pst-hsb/doc/pst-hsb-doc.bib
new file mode 100644
index 0000000000..f6ac03b8a0
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-hsb/doc/pst-hsb-doc.bib
@@ -0,0 +1,106 @@
+%% -*-bibtex-*-
+@STRING{tugboat = {TUGboat} }
+@STRING{beiprogramm = {{\TeX}-Beiprogramm} }
+@STRING{bretter = {Bretter, die die Welt bedeuten} }
+@STRING{dtk = {{D}ie {\TeX}nische {K}om{\"o}die} }
+@STRING{editorial = {Editorial} }
+@STRING{fremdebuehne = {Von fremden B{\"u}hnen} }
+@STRING{fundus = {Aus dem Fundus} }
+@STRING{hinterbuehne = {Hinter der B{\"u}hne} }
+@STRING{leserbrief = {Leserbrief(e)} }
+@STRING{magazin = {Magazin} }
+@STRING{rezension = {Rezensionen} }
+@STRING{schonimmer = {Was Sie schon immer {\"u}ber {\TeX} wissen wollten \dots} }
+@STRING{theaterkasse = {Von der Theaterkasse} }
+@STRING{theatertage = {{\TeX}-Theatertage} }
+
+@Book{PSTricks2,
+ author = {Herbert Vo\ss},
+ title = {{\PST} {G}rafik f\"ur \TeX{} und \LaTeX},
+ edition = {7},
+ publisher = {DANTE and Lehmanns},
+ year = {2016},
+ address = {Heidelberg/Berlin}
+}
+
+@Book{PSTricks-E,
+ author = {Herbert Vo\ss},
+ title = {{\PST} {G}raphics for \LaTeX},
+ edition = {1},
+ publisher = {UIT},
+ year = {2011},
+ address = {Cambridge}
+}
+
+@Book{companion04,
+ author = {Frank Mittelbach and Michel Goosens et al},
+ title = {The {\LaTeX} {C}ompanion},
+ edition = {2},
+ publisher = {Addison-Wesley Publishing Company},
+ year = {2004},
+ address = {Boston}
+}
+
+@Book{unbound,
+ author = {Alan Hoenig},
+ title = {\TeX{} {U}nbound: \LaTeX{} \& \TeX{} {S}trategies, {F}onts, {G}raphics, and {M}ore},
+ publisher = {Oxford University Press},
+ year = {1998},
+ address = {London}
+}
+@Book{tlgc2,
+ author = {Michel Goosens and Frank Mittelbach and Sebastian Rahtz and Denis Roegel and Herbert Vo{\ss}},
+ title = {The {\LaTeX} {G}raphics {C}ompanion},
+ publisher = {{Addison-Wesley Publishing Company}},
+ edition = 2,
+ year = {2007},
+ address = {Reading, Mass.}
+}
+
+@Article{girou:01:,
+ author = {Denis Girou},
+ title = {Pr\'esentation de {PST}ricks},
+ journal = {Cahier {GUT}enberg},
+ year = 1994,
+ volume = {16},
+ month = apr,
+ pages = {21-70}
+}
+
+@Article{girou:02:,
+ author = {{Timothy Van} Zandt and Denis Girou},
+ title = {Inside {PST}ricks},
+ journal = TUGboat,
+ year = 1994,
+ volume = {15},
+ month = sep,
+ pages = {239-246}
+}
+
+@Book{PostScript,
+ Author = {Kollock, Nikolai G.},
+ Title = {PostScript richtig eingesetzt: vom {K}onzept zum
+ praktischen {E}insatz},
+ Publisher = {IWT},
+ Address = {Vaterstetten},
+ year = 1989,
+}
+
+@Manual{pstricks,
+ Title = {PSTricks - {\PS} macros for generic {\TeX}},
+ Author = {{Timothy Van} Zandt},
+ Organization = {},
+ Address = {\url{http://www.tug.org/application/PSTricks}},
+ Note = {},
+ year = 1993
+}
+
+@Manual{multido,
+ Title = {\texttt{multido.tex} - a loop macro, that supports fixed-point addition},
+ Author = {{Timothy Van} Zandt},
+ Organization = {},
+ Address = {\url{CTAN:/graphics/pstricks/generic/multido.tex}},
+ Note = {},
+ year = 1997
+}
+
diff --git a/graphics/pstricks/contrib/pst-hsb/doc/pst-hsb-doc.pdf b/graphics/pstricks/contrib/pst-hsb/doc/pst-hsb-doc.pdf
new file mode 100644
index 0000000000..013dc6d181
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-hsb/doc/pst-hsb-doc.pdf
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-hsb/doc/pst-hsb-doc.tex b/graphics/pstricks/contrib/pst-hsb/doc/pst-hsb-doc.tex
new file mode 100644
index 0000000000..08bbc20527
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-hsb/doc/pst-hsb-doc.tex
@@ -0,0 +1,153 @@
+%% $Id: pst-hsb-doc.tex 351 2021-12-16 10:37:40Z herbert $
+\RequirePackage{pdfmanagement-testphase}
+\DeclareDocumentMetadata{}
+% $Id: pst-hsb-doc.tex 351 2021-12-16 10:37:40Z herbert $
+\documentclass[11pt,english,BCOR=10mm,DIV=12,bibliography=totoc,parskip=false,headings=small,
+ headinclude=false,footinclude=false,twoside]{pst-doc}
+\usepackage{pst-hsb}
+\let\psthsbFV\fileversion
+\usepackage{xltabular}
+\usepackage{pst-plot}
+\renewcommand\bgImage{\begin{pspicture}(0,-5)(11,5)
+% \psgrid(0,-4)(10,4)
+\psaxes{->}(0,0)(0,-4)(11,5)
+\psset{plotpoints=300,algebraic}%
+\psparametricplotHSB[linewidth=1mm,HueBegin=0,HueEnd=0.5]{0}{6.28}{t/0.628 | sin(t)*4}
+\psparametricplotHSB[linewidth=1mm,HueBegin=0.5,HueEnd=0.7]{0}{6.28}{t/0.628 | cos(t)*4}
+\psparametricplotHSB[linewidth=1mm,HueBegin=0.8,HueEnd=1]{0}{6.28}{t/0.628 | sin(t)*2}
+\end{pspicture}}
+
+\lstset{language=PSTricks,
+ morekeywords={psPrintValue},basicstyle=\footnotesize\ttfamily}
+%
+%\usepackage{biblatex}
+\addbibresource{pst-hsb-doc.bib}
+\begin{document}
+
+\title{\texttt{pst-hsb}}
+\subtitle{Curves with continoues color; v.\psthsbFV}
+\author{Denis Girout\\Manuel Luque\\Herbert Voß}
+\docauthor{}
+%\date{\today}
+\settitle
+
+\begin{abstract}
+This package defines the macros \Lcs{pslineHSB}
+ \Lcs{parametricplotHSB} for curves with a continous color.
+
+
+\tableofcontents
+
+
+
+\vfill
+\noindent
+Thanks to:
+%Denis Girou; Manuel Luque
+\end{abstract}
+
+\newpage
+
+
+\section{Examples}
+
+\subsection{Lines}
+\begin{LTXexample}
+\begin{pspicture}(-0.5,-0.5)(11,5)
+% \psgrid(0,-4)(10,4)
+\psaxes{->}(0,0)(11,5)
+\pslineHSB[linewidth=1mm,HueBegin=0,HueEnd=0.5](0,0)(10,1)
+\pslineHSB[linewidth=1mm,HueBegin=0.5,HueEnd=0.7](0,1)(10,3)
+\pslineHSB[linewidth=1mm,HueBegin=0.8,HueEnd=1](0,2)(10,5)
+\end{pspicture}
+\end{LTXexample}
+
+
+
+\clearpage
+
+\subsection{Parametric plot}
+
+\begin{LTXexample}
+\begin{pspicture}(0,-5)(11,5)
+% \psgrid(0,-4)(10,4)
+\psaxes{->}(0,0)(0,-4)(11,5)
+\psset{plotpoints=10}%
+\psparametricplotHSB[linewidth=1mm,HSB=false,linecolor=red]{0}{360}{t 36 div t sin 4 mul}
+\psparametricplotHSB[linewidth=1mm,algebraic]{0}{6.28}{t/0.628 | cos(t)*4}
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}
+\begin{pspicture}(0,-5)(11,5)
+% \psgrid(0,-4)(10,4)
+\psaxes{->}(0,0)(0,-4)(11,5)
+\psset{plotpoints=300}%
+\psparametricplotHSB[linewidth=1mm,HSB=false,linecolor=red]{0}{360}{t 36 div t sin 4 mul}
+\psparametricplotHSB[linewidth=1mm,algebraic]{0}{6.28}{t/0.628 | cos(t)*4}
+\end{pspicture}
+ \end{LTXexample}
+
+\begin{LTXexample}
+\begin{pspicture}(0,-5)(11,5)
+% \psgrid(0,-4)(10,4)
+\psaxes{->}(0,0)(0,-4)(11,5)
+\psset{plotpoints=300,algebraic}%
+\psparametricplotHSB[linewidth=1mm,HueBegin=0,HueEnd=0.5]{0}{6.28}{t/0.628 | sin(t)*4}
+\psparametricplotHSB[linewidth=1mm,HueBegin=0.5,HueEnd=0.7]{0}{6.28}{t/0.628 | cos(t)*4}
+\psparametricplotHSB[linewidth=1mm,HueBegin=0.8,HueEnd=1]{0}{6.28}{t/0.628 | sin(t)*2}
+\end{pspicture}
+\end{LTXexample}
+
+\begin{LTXexample}
+\begin{pspicture}(-5,-5)(5,5)
+ \psframe*[linecolor=lightgray](-5,-4)(5,4)
+ \psgrid[gridlabels=0,subgriddiv=0](-5,-4)(5,4)
+ \multido{\nxDiv=-5+0.2}{50}{%
+ \psline(\nxDiv,-.1)(\nxDiv,0.1)}
+ \multido{\nyDiv=-4.0+0.2}{40}{%
+ \psline(-0.1,\nyDiv)(0.1,\nyDiv)}
+ \psset{linewidth=1mm}%
+ \psparametricplotHSB[plotpoints=2000,linecolor=blue,HSB=false,yunit=0.5]{-5}{5}{%
+ /temps t 2e-3 mul def
+ /frequence2 100 def
+ frequence2 360 mul temps mul cos
+ 1 mul 3 add
+ }
+ \psparametricplotHSB[plotpoints=2000,yunit=1]{-5}{5}{%
+ /temps t 2e-3 mul def
+ /frequence1 1200 def
+ /frequence2 100 def
+ frequence2 360 mul temps mul cos
+ 1 mul 3 add
+ frequence1 360 mul temps mul cos
+ 4 mul
+ mul
+ 0.1 mul
+ }
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
+
+
+\clearpage
+\section{List of all optional arguments for \texttt{pst-hsb}}
+
+\xkvview{family=pst-hsb,columns={key,type,default}}
+
+
+\RaggedRight
+\nocite{*}
+%\bibliographystyle{plain}
+\printbibliography
+
+\printindex
+
+
+
+\end{document}
+
+
diff --git a/graphics/pstricks/contrib/pst-hsb/latex/pst-hsb.sty b/graphics/pstricks/contrib/pst-hsb/latex/pst-hsb.sty
new file mode 100644
index 0000000000..0a8996be21
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-hsb/latex/pst-hsb.sty
@@ -0,0 +1,11 @@
+\RequirePackage{pstricks}
+\ProvidesPackage{pst-hsb}[2021/12/16 package wrapper for
+ pst-hsb.tex (hv)]
+\input{pst-hsb.tex}
+\ProvidesFile{pst-hsb.tex}[\filedate\space v\fileversion\space `PST-hsb' (hv)]
+%\IfFileExists{pst-hsb.pro}{%
+% \ProvidesFile{pst-hsb.pro}[2013/10/26 v 0.04, PostScript prologue file]
+% \@addtofilelist{pst-hsb.pro}}{}%
+
+\endinput
+%% $Id: pst-hsb.sty 350 2021-12-16 10:20:18Z herbert $
diff --git a/graphics/pstricks/contrib/pst-hsb/tex/pst-hsb.tex b/graphics/pstricks/contrib/pst-hsb/tex/pst-hsb.tex
new file mode 100644
index 0000000000..975e054fc2
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-hsb/tex/pst-hsb.tex
@@ -0,0 +1,131 @@
+%% $Id: pst-hsb.tex 350 2021-12-16 10:20:18Z herbert $
+%%
+%% This is file `pst-hsb.tex',
+%%
+%% IMPORTANT NOTICE:
+%%
+%% Package `pst-hsb.tex'
+%%
+%% Denis Girout
+%% Manuel Luque
+%% Herbert Voss <hvoss@tug.org>
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN archives
+%% in directory macros/latex/base/lppl.txt.
+%%
+%% DESCRIPTION:
+%% `pst-hsb' is a PSTricks package for continous color
+%%
+%%
+\csname PSThsbLoaded\endcsname
+\let\PSThsbLoaded\endinput
+
+\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi
+\ifx\PSTplotLoaded\endinput\else \input pst-plot \fi
+\ifx\PSTXKeyLoaded\endinput\else \input pst-xkey.tex \fi
+%
+\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
+% interface to the `xkeyval' package
+\pst@addfams{pst-hsb}
+%
+\def\fileversion{0.02}
+\def\filedate{2021/12/16}
+\message{`PST-hsb' v\fileversion, \filedate\space (hv)}
+%
+\define@key[psset]{pst-hsb}{HueBegin}{\def\psparametricplotHSB@HueBegin{#1}}% Between 0 and 1
+\define@key[psset]{pst-hsb}{HueEnd}{\def\psparametricplotHSB@HueEnd{#1}}% Between 0 and 1
+\define@boolkey[psset]{pst-hsb}[Pst@]{HSB}[true]{}
+% Default values
+\psset[pst-hsb]{HueBegin=0,HueEnd=1,HSB=true}
+\psset{dimen=outer}
+
+\def\psparametricplotHSB{\pst@object{psparametricplotHSB}}
+\def\psparametricplotHSB@i#1#2#3{{%
+ \begin@ClosedObj
+ \addto@pscode{%
+ /t #1 def
+ /dt #2 t sub \psk@plotpoints\space div def
+ /t t dt sub def
+ /F@pstplot
+ \ifPst@algebraic (#3)
+ \ifx\psk@PlotDerivative\@none\else
+ \psk@PlotDerivative\space { (t) tx@Derive begin Derive end } repeat
+ \fi
+ tx@AlgToPs begin AlgToPs end cvx
+ \else
+ { #3 }
+ \fi
+ def
+ /Counter 0 def
+ 1 setlinejoin
+ \psk@plotpoints {
+ /t t dt add def
+ /Counter Counter 1 add def
+ t F@pstplot
+ \pst@number\psyunit mul exch
+ \pst@number\psxunit mul exch
+ 1 Counter eq { moveto currentpoint /OldY ED /OldX ED } % First point
+ {\ifPst@HSB % Other points than the first one
+ /PointY exch def
+ /PointX exch def
+ Counter \psk@plotpoints\space div
+ \psparametricplotHSB@HueEnd\space
+ \psparametricplotHSB@HueBegin\space sub mul
+ \psparametricplotHSB@HueBegin\space add
+ 1 1 sethsbcolor
+ OldX OldY PointX PointY lineto lineto
+ stroke
+ PointX PointY moveto
+ /OldX PointX def /OldY PointY def
+ \else lineto \fi } ifelse
+ } repeat }% fin du code ps
+ \end@ClosedObj
+ }\ignorespaces}
+%
+\def\pslineHSB{\pst@object{pslineHSB}}
+\def\pslineHSB@i(#1)(#2){{%
+ \begin@OpenObj
+ \pst@getcoor{#1}\pst@tempA
+ \pst@getcoor{#2}\pst@tempB
+ \addto@pscode{%
+ \pst@tempA
+ /y0 ED /x0 ED
+ \pst@tempB
+ /y1 ED /x1 ED
+ /dx x1 x0 sub \psk@plotpoints\space div def
+ /m y1 y0 sub x1 x0 sub div def
+ /t x0 dx sub def
+ /Counter 0 def
+ gsave
+ x0 y0 translate
+ \psk@plotpoints {
+ /t t dx add def
+ /Counter Counter 1 add def
+ t dup m mul
+ 1 Counter eq
+ { moveto currentpoint /OldY ED /OldX ED } % First point
+ {\ifPst@HSB % Other points than the first one
+ /PointY exch def
+ /PointX exch def
+ Counter \psk@plotpoints\space div
+ \psparametricplotHSB@HueEnd\space
+ \psparametricplotHSB@HueBegin\space sub mul
+ \psparametricplotHSB@HueBegin\space add
+ 1 1 sethsbcolor
+ OldX OldY PointX PointY lineto lineto
+ stroke
+ PointX PointY moveto
+ /OldX PointX def /OldY PointY def
+ \else lineto \fi
+ } ifelse
+ } repeat
+ grestore
+ }%
+ \end@OpenObj
+ }\ignorespaces}
+\catcode`\@=\TheAtCode\relax
+%
+\endinput
+%%
+%% END pst-hsb.tex
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-spbasic/Changes b/macros/latex/contrib/biblatex-contrib/biblatex-spbasic/Changes
index 49fc0d39a0..da56be7468 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-spbasic/Changes
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-spbasic/Changes
@@ -1,3 +1,7 @@
--- biblatex-spbasic.bbx|cbx
+0.02 2021/12/15 - fix for hyperref option
+ - added lbx file
+ - fix for double dot after title
+ - add option pubstate to print the publication state
0.01 2021/07/12 - first CTAN version
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-spbasic/doc/biblatex-spbasic.bib b/macros/latex/contrib/biblatex-contrib/biblatex-spbasic/doc/biblatex-spbasic.bib
new file mode 100644
index 0000000000..864a5da5d3
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-spbasic/doc/biblatex-spbasic.bib
@@ -0,0 +1,44 @@
+% Encoding: UTF-8
+
+@Article{Daan1984,
+ author = {Daan, S. and Beersma, D. G. and Borbely, A. A.},
+ journal = {Am J Physiol},
+ title = {Timing of human sleep: recovery process gated by a circadian pacemaker},
+ year = {1984},
+ pages = {161--183},
+ volume = {246},
+ groups = {Imported MODELLE-WITTE-BUCH.bib},
+ owner = {we},
+ timestamp = {2015.12.12},
+}
+
+@Article{Young2018,
+ author = {Young, Michael W.},
+ title = {Time travels: a 40-year journey from \emph{{D}rosophila}'s clock mutants to human circadian disorders ({N}obel {L}ecture).},
+ issue = {36},
+ pages = {11532--11539},
+ pubstate = {published},
+ volume = {57},
+ chemicals = {Circadian Rhythm Signaling Peptides and Proteins},
+ completed = {2019-08-14},
+ country = {Germany},
+ issn-linking = {1433-7851},
+ journal = {Angewandte Chemie (International ed. in English)},
+ nlm-id = {0370543},
+ owner = {NLM},
+ pmid = {30003624},
+ pubmodel = {Print-Electronic},
+ revised = {2020-05-04},
+ year = {2018},
+}
+
+@Book{McClure1966,
+ author = {McClure, F. A.},
+ title = {The bamboos. A fresh perspective},
+ publisher = {Harvard Univ. Press},
+ owner = {we},
+ timestamp = {2016.08.04},
+ year = {1966},
+}
+
+@Comment{jabref-meta: databaseType:bibtex;}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-spbasic/doc/biblatex-spbasic.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-spbasic/doc/biblatex-spbasic.pdf
index 820bf91239..781b743a49 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-spbasic/doc/biblatex-spbasic.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-spbasic/doc/biblatex-spbasic.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-spbasic/doc/biblatex-spbasic.tex b/macros/latex/contrib/biblatex-contrib/biblatex-spbasic/doc/biblatex-spbasic.tex
index c9b17c5883..31451056da 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-spbasic/doc/biblatex-spbasic.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-spbasic/doc/biblatex-spbasic.tex
@@ -1,6 +1,7 @@
% biblatex-spbasic documentation 2021/07/11
%
% Copyright (c) 2021 Herbert Voß hvoss@tug.org
+%% $Id: biblatex-spbasic.tex 347 2021-12-16 08:40:36Z herbert $
\documentclass[toc=graduated,parskip=half-,DIV=13,fontsize=11pt,paper=a4]{scrartcl}
@@ -10,38 +11,29 @@
\usepackage[english]{babel}
\usepackage{listings}
\lstset{basicstyle=\ttfamily}
-\usepackage{dtk-logos}
+\usepackage{hvlogos}
+\usepackage{xcolor}
\usepackage{enumitem}
\setlist{nosep}
\usepackage[babel]{csquotes}
\usepackage{xurl}
-\usepackage[style=biblatex-spbasic]{biblatex}
+\usepackage[style=biblatex-spbasic,hyperref]{biblatex}
\usepackage{xspace}
\addbibresource{biblatex-examples.bib}
+\addbibresource{\jobname.bib}
\def\bibsp{\texttt{biblatex-spbasic}\xspace}
\def\bib{\texttt{biblatex}\xspace}
\def\cs#1{\texttt{\textbackslash#1}}
-\usepackage{mdframed,xcolor}
-\def\showbib#1{%
-\begin{mdframed}[
- leftmargin=0pt,
- rightmargin=0pt,
- linecolor=black,
- backgroundcolor=black!10]
-\vspace{-\normalbaselineskip}
-\printbibliography
-\end{mdframed}}
-
-\usepackage[colorlinks,linktocpage]{hyperref}
+\usepackage[colorlinks,linktocpage,citecolor=blue!100!black!60]{hyperref}
\begin{document}
\title{biblatex-spbasic}
-\subtitle{Ver. 0.01}
+\subtitle{Ver. 0.02}
\author{Herbert Voß}
\maketitle
@@ -70,6 +62,7 @@ installed, then copy the two files
\begin{verbatim}
biblatex-spbasic.bbx
biblatex-spbasic.cbx
+biblatex-spbasic.lbx
\end{verbatim}
into your local \TeX\ directory and update the so-called file name database by running \texttt{texhash}.
@@ -88,14 +81,20 @@ It is obvious that using \texttt{biblatex-spbasic} needs the \texttt{biblatex} p
\texttt{biblatex-spbasic}is loaded by
\begin{verbatim}
-\usepackage[style=biblatex-spbasic]{biblatex}
+\usepackage[style=biblatex-spbasic,pubstate=<true|false>]{biblatex}
\end{verbatim}
It is possible to load additional optional arguments which refer to \texttt{biblatex}, the package
-\texttt{biblatex-spbasic} itself has no special arguments.
+\texttt{biblatex-spbasic} itself has only the option \texttt{pubstate}, which is set by default to false. There
+is no need to set it, if you want this presettings. For printing the publication state use \texttt{pubstate=true}.
+
+\section{Example}
+This is some senseless\footfullcite{Young2018} text but with a citation (\verb|\parencite|).~\parencite[See][pp.~16]{Daan1984}
+And this is a \verb|\textcite|, what \textcite[See][pp.~16]{Young2018} already wrote. Remember, this
+text is nonsense for this example!\footcite{Young2018}
\nocite{*}
-\printbibliography[title=Example-Bibliography]
+\printbibliography[title=Bibliography]
\end{document}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-spbasic/latex/biblatex-spbasic.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-spbasic/latex/biblatex-spbasic.bbx
index 65c09bc05b..17e77dacda 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-spbasic/latex/biblatex-spbasic.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-spbasic/latex/biblatex-spbasic.bbx
@@ -1,3 +1,5 @@
+%% $Id: biblatex-spbasic.bbx 346 2021-12-15 20:24:43Z herbert $
+%
% biblatex-spbasic.bbx, Herbert Voß
% Herbert Voß -- 2021
% this style is an biblatex style for Springer's spbasic.bst
@@ -6,10 +8,18 @@
%% See https://latex-project.org/lppl/ for the details of that license.
%%
%
-\ProvidesFile{biblatex-spbasic.bbx}[2021/07/12 v0.01 biblatex bibliography style]
+\ProvidesFile{biblatex-spbasic.bbx}[2021/12/15 v0.02 biblatex bibliography style]
% Release Notes can be found in the README
\RequireBibliographyStyle{authoryear}
+
+\DeclareLanguageMapping{english}{biblatex-spbasic}
+
+\newbool{bbx:pubstate}
+\setbool{bbx:pubstate}{false}
+
+\DeclareBibliographyOption[boolean]{pubstate}[true]{\setbool{bbx:pubstate}{#1}}
+
\ExecuteBibliographyOptions{maxnames=3,minnames=1,terseinits,giveninits}
\DeclareDelimFormat[bib,biblist]{nametitledelim}{\space}
@@ -18,9 +28,17 @@
\renewcommand*{\finentrypunct}{}% abschliessenden Punkt entfernen
\renewcommand*{\newunitpunct}{\addspace}% Punkte entfernen
-\DeclareFieldFormat[article]{title}{#1.\isdot}% keine Anfuehrungsstriche und .
-\DeclareFieldFormat{title}{\mkbibemph{#1}.}% Punkt hinter Titel
+\DeclareFieldFormat{title}{\mkbibemph{#1}\adddot}% Punkt hinter Titel
+\DeclareFieldFormat[article]{title}{#1\adddot}% keine Anfuehrungsstriche und .
\DeclareFieldFormat[article]{number}{\mkbibparens{#1}}% (No)
+\DeclareFieldFormat{pages}{\mkpageprefix[bookpagination]{#1}}
+
+\renewbibmacro*{addendum+pubstate}{%
+ \printfield{addendum}%
+ \ifbool{bbx:pubstate}%
+ {\iffieldundef{pubstate}{}{\setunit*{\addcomma\space}\printfield{pubstate}}}%
+ {}%
+}
\renewbibmacro*{publisher+location+date}{% Reihenfolge aendern
\printlist{publisher}\setunit*{\addcomma\space}\printlist{location}\newunit}
@@ -30,7 +48,11 @@
\iffieldundef{series}{}{\newunit\printfield{series}\setunit{\addspace}}%
\printfield{volume}\printfield{number}\setunit{\addcomma\space}%
\printfield{eid}\setunit{\addspace}%
- \usebibmacro{issue+date}\setunit{\addcolon\space}\usebibmacro{issue}\newunit}
+ \usebibmacro{issue+date}%
+ \setunit{\addcolon\space}%
+ \usebibmacro{issue}%
+ \newunit
+}
\DeclareNameAlias{sortname}{family-given}
\renewcommand*{\revsdnamepunct}{}
@@ -41,5 +63,91 @@
\DeclareDelimAlias{finalnamedelim}{multinamedelim}
+\iffalse
+\newbibmacro*{journal+issuetitle}{%
+ \usebibmacro{journal}%
+ \setunit*{\addspace}%
+ \iffieldundef{series}
+ {}
+ {\newunit
+ \printfield{series}%
+ \setunit{\addspace}}%
+ \usebibmacro{volume+number+eid}%
+ \setunit{\addcolon}%
+ \usebibmacro{issue+date}%
+ \setunit{\addcolon\space}%
+ \usebibmacro{issue}%
+ \newunit
+}
+\fi
+
+\renewcommand*{\bibpagespunct}{\addcolon}
+
+\newbibmacro*{note+pages}{%
+ \printfield{note}%
+ %\setunit{
+ \bibpagespunct%}%
+ \printfield{pages}%
+ \newunit}
+
+\renewbibmacro*{title}{%
+ \ifboolexpr{
+ test {\iffieldundef{title}}
+ and
+ test {\iffieldundef{subtitle}}
+ }%
+ {}%
+ {\printtext[title]{%
+ \printfield[titlecase]{title}%
+ \setunit{\subtitlepunct}%
+ \printfield[titlecase]{subtitle}%
+ }%
+ \newunit
+ }%
+ \iffieldundef{titleaddon}{}{\printfield{titleaddon}}%
+}
+
+
+\iffalse
+\DeclareBibliographyDriver{article}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/translator+others}%
+ \setunit{\printdelim{nametitledelim}}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{bytranslator+others}%
+ \newunit\newblock
+ \printfield{version}%
+ \newunit\newblock
+ \usebibmacro{in:}%
+ \usebibmacro{journal+issuetitle}%
+ \newunit
+ \usebibmacro{byeditor+others}%
+ \newunit
+ \usebibmacro{note+pages}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{issn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+\fi
+
+
\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-spbasic/latex/biblatex-spbasic.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-spbasic/latex/biblatex-spbasic.cbx
index aa2c6ce23c..4c819a8566 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-spbasic/latex/biblatex-spbasic.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-spbasic/latex/biblatex-spbasic.cbx
@@ -5,10 +5,72 @@
%% This material is subject to the LaTeX Project Public License.
%% See https://latex-project.org/lppl/ for the details of that license.
%%
-\ProvidesFile{biblatex-spbasic.cbx}[2021/07/12 v0.01 biblatex bibliography style]
+\ProvidesFile{biblatex-spbasic.cbx}[2021/12/15 v0.02 biblatex bibliography style]
% Release Notes can be found in the README
\RequireCitationStyle{authoryear}
+\renewbibmacro*{textcite}{%
+ \ifnameundef{labelname}
+ {\iffieldundef{shorthand}
+ {\usebibmacro{cite:label}%
+ \setunit{%
+ \global\booltrue{cbx:parens}%
+ \printtext[bibhyperref]{\printdelim{nonameyeardelim}\bibopenparen}}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \usebibmacro{cite:labeldate+extradate}}
+ {\usebibmacro{cite:shorthand}}}
+ {\printtext[bibhyperref]{\printnames{labelname}}%
+ \setunit{%
+ \global\booltrue{cbx:parens}%
+% \printtext[bibhyperref]{\printdelim{nameyeardelim}\bibopenparen}}%
+ \printdelim{nameyeardelim}\bibopenparen}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \usebibmacro{citeyear}}}
+
+\renewbibmacro*{cite}{%
+ \iffieldundef{shorthand}
+ {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
+ {\usebibmacro{cite:label}%
+ \setunit{\printdelim{nonameyeardelim}}}
+ {\printtext[bibhyperref]{\printnames{labelname}}%
+ \setunit{\printdelim{nameyeardelim}}}%
+ \usebibmacro{cite:labeldate+extradate}}
+ {\usebibmacro{cite:shorthand}}}
+
+\renewbibmacro*{textcite:postnote}{%
+ \iffieldundef{postnote}%
+ {\ifbool{cbx:parens}%
+ {\bibcloseparen}%
+% {\printtext[bibhyperref]{\bibcloseparen}}%
+ {}}%
+ {\ifbool{cbx:parens}%
+% {\setunit{\printtext[bibhyperref]{\printdelim{postnotedelim}}}}%
+ {\setunit{\printdelim{postnotedelim}}}%
+% {\setunit{\printtext[bibhyperref]{\printdelim{extpostnotedelim}\bibopenparen}}}%
+ {\setunit{\printdelim{extpostnotedelim}\bibopenparen}}%
+ \printtext[bibhyperref]{\printfield{postnote}}\bibcloseparen}}
+
+\renewbibmacro*{prenote}{%
+ \iffieldundef{prenote}
+ {}
+ {\printtext[bibhyperref]{\printfield{prenote}}%
+% \setunit{\printtext[bibhyperref]{\printdelim{prenotedelim}}}}}
+ \setunit{\printdelim{prenotedelim}}}}
+
+\renewbibmacro*{postnote}{%
+ \iffieldundef{postnote}
+ {}
+% {\setunit{\printtext[bibhyperref]{\printdelim{postnotedelim}}}%
+ {\setunit{\printdelim{postnotedelim}}%
+ \printtext[bibhyperref]{\printfield{postnote}}}}
+
+
+
+
\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-spbasic/latex/biblatex-spbasic.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-spbasic/latex/biblatex-spbasic.lbx
new file mode 100644
index 0000000000..ce596a604e
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-spbasic/latex/biblatex-spbasic.lbx
@@ -0,0 +1,478 @@
+% biblatex-spbasic.lbx, Herbert Voß
+% Herbert Voß -- 2021
+% this style is an biblatex style for Springer's spbasic.bst
+%
+%% This material is subject to the LaTeX Project Public License.
+%% See https://latex-project.org/lppl/ for the details of that license.
+%%
+\ProvidesFile{biblatex-spbasic.lbx}[2021/12/15 v0.02 biblatex bibliography style]
+% Release Notes can be found in the README
+
+\InheritBibliographyExtras{english}
+
+\DeclareBibliographyStrings{%
+ bibliography = {{Bibliography}{Bibliography}},
+ references = {{References}{References}},
+ shorthands = {{List of Abbreviations}{Abbreviations}},
+ editor = {{editor}{ed\adddot}},
+ editors = {{editors}{eds\adddot}},
+ compiler = {{compiler}{comp\adddot}},
+ compilers = {{compilers}{comp\adddot}},
+ redactor = {{redactor}{red\adddot}},
+ redactors = {{redactors}{red\adddot}},
+ reviser = {{reviser}{rev\adddot}},
+ revisers = {{revisers}{rev\adddot}},
+ founder = {{founder}{found\adddot}},
+ founders = {{founders}{found\adddot}},
+ continuator = {{continued}{cont\adddot}},% FIXME: unsure
+ continuators = {{continued}{cont\adddot}},% FIXME: unsure
+ collaborator = {{collaborator}{collab\adddot}},% FIXME: unsure
+ collaborators = {{collaborators}{collab\adddot}},% FIXME: unsure
+ translator = {{translator}{trans\adddot}},
+ translators = {{translators}{trans\adddot}},
+ commentator = {{commentator}{comm\adddot}},
+ commentators = {{commentators}{comm\adddot}},
+ annotator = {{annotator}{annot\adddot}},
+ annotators = {{annotators}{annot\adddot}},
+ commentary = {{commentary}{comm\adddot}},
+ annotations = {{annotations}{annot\adddot}},
+ introduction = {{introduction}{intro\adddot}},
+ foreword = {{foreword}{forew\adddot}},
+ afterword = {{afterword}{afterw\adddot}},
+ editortr = {{editor and translator}%
+ {ed\adddotspace and trans\adddot}},
+ editorstr = {{editors and translators}%
+ {eds\adddotspace and trans\adddot}},
+ editorco = {{editor and commentator}%
+ {ed\adddotspace and comm\adddot}},
+ editorsco = {{editors and commentators}%
+ {eds\adddotspace and comm\adddot}},
+ editoran = {{editor and annotator}%
+ {ed\adddotspace and annot\adddot}},
+ editorsan = {{editors and annotators}%
+ {eds\adddotspace and annot\adddot}},
+ editorin = {{editor and introduction}%
+ {ed\adddotspace and introd\adddot}},
+ editorsin = {{editors and introduction}%
+ {eds\adddotspace and introd\adddot}},
+ editorfo = {{editor and foreword}%
+ {ed\adddotspace and forew\adddot}},
+ editorsfo = {{editors and foreword}%
+ {eds\adddotspace and forew\adddot}},
+ editoraf = {{editor and afterword}%
+ {ed\adddotspace and afterw\adddot}},
+ editorsaf = {{editors and afterword}%
+ {eds\adddotspace and afterw\adddot}},
+ editortrco = {{editor, translator\finalandcomma\ and commentator}%
+ {ed.,\addabbrvspace trans\adddot\finalandcomma\ and comm\adddot}},
+ editorstrco = {{editors, translators\finalandcomma\ and commentators}%
+ {eds.,\addabbrvspace trans\adddot\finalandcomma\ and comm\adddot}},
+ editortran = {{editor, translator\finalandcomma\ and annotator}%
+ {ed.,\addabbrvspace trans\adddot\finalandcomma\ and annot\adddot}},
+ editorstran = {{editors, translators\finalandcomma\ and annotators}%
+ {eds.,\addabbrvspace trans\adddot\finalandcomma\ and annot\adddot}},
+ editortrin = {{editor, translator\finalandcomma\ and introduction}%
+ {ed.,\addabbrvspace trans\adddot\finalandcomma\ and introd\adddot}},
+ editorstrin = {{editors, translators\finalandcomma\ and introduction}%
+ {eds.,\addabbrvspace trans\adddot\finalandcomma\ and introd\adddot}},
+ editortrfo = {{editor, translator\finalandcomma\ and foreword}%
+ {ed.,\addabbrvspace trans\adddot\finalandcomma\ and forew\adddot}},
+ editorstrfo = {{editors, translators\finalandcomma\ and foreword}%
+ {eds.,\addabbrvspace trans\adddot\finalandcomma\ and forew\adddot}},
+ editortraf = {{editor, translator\finalandcomma\ and afterword}%
+ {ed.,\addabbrvspace trans\adddot\finalandcomma\ and afterw\adddot}},
+ editorstraf = {{editors, translators\finalandcomma\ and afterword}%
+ {eds.,\addabbrvspace trans\adddot\finalandcomma\ and afterw\adddot}},
+ editorcoin = {{editor, commentator\finalandcomma\ and introduction}%
+ {ed.,\addabbrvspace comm\adddot\finalandcomma\ and introd\adddot}},
+ editorscoin = {{editors, commentators\finalandcomma\ and introduction}%
+ {eds.,\addabbrvspace comm\adddot\finalandcomma\ and introd\adddot}},
+ editorcofo = {{editor, commentator\finalandcomma\ and foreword}%
+ {ed.,\addabbrvspace comm\adddot\finalandcomma\ and forew\adddot}},
+ editorscofo = {{editors, commentators\finalandcomma\ and foreword}%
+ {eds.,\addabbrvspace comm\adddot\finalandcomma\ and forew\adddot}},
+ editorcoaf = {{editor, commentator\finalandcomma\ and afterword}%
+ {ed.,\addabbrvspace comm\adddot\finalandcomma\ and afterw\adddot}},
+ editorscoaf = {{editors, commentators\finalandcomma\ and afterword}%
+ {eds.,\addabbrvspace comm\adddot\finalandcomma\ and afterw\adddot}},
+ editoranin = {{editor, annotator\finalandcomma\ and introduction}%
+ {ed.,\addabbrvspace annot\adddot\finalandcomma\ and introd\adddot}},
+ editorsanin = {{editors, annotators\finalandcomma\ and introduction}%
+ {eds.,\addabbrvspace annot\adddot\finalandcomma\ and introd\adddot}},
+ editoranfo = {{editor, annotator\finalandcomma\ and foreword}%
+ {ed.,\addabbrvspace annot\adddot\finalandcomma\ and forew\adddot}},
+ editorsanfo = {{editors, annotators\finalandcomma\ and foreword}%
+ {eds.,\addabbrvspace annot\adddot\finalandcomma\ and forew\adddot}},
+ editoranaf = {{editor, annotator\finalandcomma\ and afterword}%
+ {ed.,\addabbrvspace annot\adddot\finalandcomma\ and afterw\adddot}},
+ editorsanaf = {{editors, annotators\finalandcomma\ and afterword}%
+ {eds.,\addabbrvspace annot\adddot\finalandcomma\ and afterw\adddot}},
+ editortrcoin = {{editor, translator, commentator\finalandcomma\ and introduction}%
+ {ed.,\addabbrvspace trans., comm\adddot\finalandcomma\ and introd\adddot}},
+ editorstrcoin = {{editors, translators, commentators\finalandcomma\ and introduction}%
+ {eds.,\addabbrvspace trans., comm\adddot\finalandcomma\ and introd\adddot}},
+ editortrcofo = {{editor, translator, commentator\finalandcomma\ and foreword}%
+ {ed.,\addabbrvspace trans., comm\adddot\finalandcomma\ and forew\adddot}},
+ editorstrcofo = {{editors, translators, commentators\finalandcomma\ and foreword}%
+ {eds.,\addabbrvspace trans., comm\adddot\finalandcomma\ and forew\adddot}},
+ editortrcoaf = {{editor, translator, commentator\finalandcomma\ and afterword}%
+ {ed.,\addabbrvspace trans., comm\adddot\finalandcomma\ and afterw\adddot}},
+ editorstrcoaf = {{editors, translators, commentators\finalandcomma\ and afterword}%
+ {eds.,\addabbrvspace trans., comm\adddot\finalandcomma\ and afterw\adddot}},
+ editortranin = {{editor, translator, annotator\finalandcomma\ and introduction}%
+ {ed.,\addabbrvspace trans., annot\adddot\finalandcomma\ and introd\adddot}},
+ editorstranin = {{editors, translators, annotators\finalandcomma\ and introduction}%
+ {eds.,\addabbrvspace trans., annot\adddot\finalandcomma\ and introd\adddot}},
+ editortranfo = {{editor, translator, annotator\finalandcomma\ and foreword}%
+ {ed.,\addabbrvspace trans., annot\adddot\finalandcomma\ and forew\adddot}},
+ editorstranfo = {{editors, translators, annotators\finalandcomma\ and foreword}%
+ {eds.,\addabbrvspace trans., annot\adddot\finalandcomma\ and forew\adddot}},
+ editortranaf = {{editor, translator, annotator\finalandcomma\ and afterword}%
+ {ed.,\addabbrvspace trans., annot\adddot\finalandcomma\ and afterw\adddot}},
+ editorstranaf = {{editors, translators, annotators\finalandcomma\ and afterword}%
+ {eds.,\addabbrvspace trans., annot\adddot\finalandcomma\ and afterw\adddot}},
+ translatorco = {{translator and commentator}%
+ {trans\adddot\ and comm\adddot}},
+ translatorsco = {{translators and commentators}%
+ {trans\adddot\ and comm\adddot}},
+ translatoran = {{translator and annotator}%
+ {trans\adddot\ and annot\adddot}},
+ translatorsan = {{translators and annotators}%
+ {trans\adddot\ and annot\adddot}},
+ translatorin = {{translation and introduction}%
+ {trans\adddot\ and introd\adddot}},
+ translatorsin = {{translation and introduction}%
+ {trans\adddot\ and introd\adddot}},
+ translatorfo = {{translation and foreword}%
+ {trans\adddot\ and forew\adddot}},
+ translatorsfo = {{translation and foreword}%
+ {trans\adddot\ and forew\adddot}},
+ translatoraf = {{translation and afterword}%
+ {trans\adddot\ and afterw\adddot}},
+ translatorsaf = {{translation and afterword}%
+ {trans\adddot\ and afterw\adddot}},
+ translatorcoin = {{translation, commentary\finalandcomma\ and introduction}%
+ {trans., comm\adddot\finalandcomma\ and introd\adddot}},
+ translatorscoin = {{translation, commentary\finalandcomma\ and introduction}%
+ {trans., comm\adddot\finalandcomma\ and introd\adddot}},
+ translatorcofo = {{translation, commentary\finalandcomma\ and foreword}%
+ {trans., comm\adddot\finalandcomma\ and forew\adddot}},
+ translatorscofo = {{translation, commentary\finalandcomma\ and foreword}%
+ {trans., comm\adddot\finalandcomma\ and forew\adddot}},
+ translatorcoaf = {{translation, commentary\finalandcomma\ and afterword}%
+ {trans., comm\adddot\finalandcomma\ and afterw\adddot}},
+ translatorscoaf = {{translation, commentary\finalandcomma\ and afterword}%
+ {trans., comm\adddot\finalandcomma\ and afterw\adddot}},
+ translatoranin = {{translation, annotations\finalandcomma\ and introduction}%
+ {trans., annot\adddot\finalandcomma\ and introd\adddot}},
+ translatorsanin = {{translation, annotations\finalandcomma\ and introduction}%
+ {trans., annot\adddot\finalandcomma\ and introd\adddot}},
+ translatoranfo = {{translation, annotations\finalandcomma\ and foreword}%
+ {trans., annot\adddot\finalandcomma\ and forew\adddot}},
+ translatorsanfo = {{translation, annotations\finalandcomma\ and foreword}%
+ {trans., annot\adddot\finalandcomma\ and forew\adddot}},
+ translatoranaf = {{translation, annotations\finalandcomma\ and afterword}%
+ {trans., annot\adddot\finalandcomma\ and afterw\adddot}},
+ translatorsanaf = {{translation, annotations\finalandcomma\ and afterword}%
+ {trans., annot\adddot\finalandcomma\ and afterw\adddot}},
+ organizer = {{organizer}{org\adddot}},
+ organizers = {{organizers}{orgs\adddot}},
+ byorganizer = {{organized by}{org\adddotspace by}},
+ byauthor = {{by}{by}},
+ byeditor = {{edited by}{ed\adddotspace by}},
+ bycompiler = {{compiled by}{comp\adddotspace by}},
+ byredactor = {{redacted by}{red\adddotspace by}},
+ byreviser = {{revised by}{rev\adddotspace by}},
+ byreviewer = {{reviewed by}{rev\adddotspace by}},
+ byfounder = {{founded by}{found\adddotspace by}},
+ bycontinuator = {{continued by}{cont\adddotspace by}},
+ bycollaborator = {{in collaboration with}{in collab\adddotspace with}},% FIXME: unsure
+ bytranslator = {{translated \lbx@lfromlang\ by}{trans\adddot\ \lbx@sfromlang\ by}},
+ bycommentator = {{commented by}{comm\adddot\ by}},
+ byannotator = {{annotated by}{annot\adddot\ by}},
+ withcommentator = {{with a commentary by}{with a comment\adddot\ by}},
+ withannotator = {{with annotations by}{with annots\adddot\ by}},
+ withintroduction = {{with an introduction by}{with an intro\adddot\ by}},
+ withforeword = {{with a foreword by}{with a forew\adddot\ by}},
+ withafterword = {{with an afterword by}{with an afterw\adddot\ by}},
+ byeditortr = {{edited and translated \lbx@lfromlang\ by}%
+ {ed\adddotspace and trans\adddot\ \lbx@sfromlang\ by}},
+ byeditorco = {{edited and commented by}%
+ {ed\adddotspace and comm\adddot\ by}},
+ byeditoran = {{edited and annotated by}%
+ {ed\adddotspace and annot\adddot\ by}},
+ byeditorin = {{edited, with an introduction, by}%
+ {ed.,\addabbrvspace with an introd., by}},
+ byeditorfo = {{edited, with a foreword, by}%
+ {ed.,\addabbrvspace with a forew., by}},
+ byeditoraf = {{edited, with an afterword, by}%
+ {ed.,\addabbrvspace with an afterw., by}},
+ byeditortrco = {{edited, translated \lbx@lfromlang\finalandcomma\ and commented by}%
+ {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and comm\adddot\ by}},
+ byeditortran = {{edited, translated \lbx@lfromlang\finalandcomma\ and annotated by}%
+ {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and annot\adddot\ by}},
+ byeditortrin = {{edited and translated \lbx@lfromlang, with an introduction, by}%
+ {ed\adddotspace and trans\adddot\ \lbx@sfromlang, with an introd., by}},
+ byeditortrfo = {{edited and translated \lbx@lfromlang, with a foreword, by}%
+ {ed\adddotspace and trans\adddot\ \lbx@sfromlang, with a forew., by}},
+ byeditortraf = {{edited and translated \lbx@lfromlang, with an afterword, by}%
+ {ed\adddotspace and trans\adddot\ \lbx@sfromlang, with an afterw., by}},
+ byeditorcoin = {{edited and commented, with an introduction, by}%
+ {ed\adddotspace and comm., with an introd., by}},
+ byeditorcofo = {{edited and commented, with a foreword, by}%
+ {ed\adddotspace and comm., with a forew., by}},
+ byeditorcoaf = {{edited and commented, with an afterword, by}%
+ {ed\adddotspace and comm., with an afterw., by}},
+ byeditoranin = {{edited and annotated, with an introduction, by}%
+ {ed\adddotspace and annot., with an introd., by}},
+ byeditoranfo = {{edited and annotated, with a foreword, by}%
+ {ed\adddotspace and annot., with a forew., by}},
+ byeditoranaf = {{edited and annotated, with an afterword, by}%
+ {ed\adddotspace and annot., with an afterw., by}},
+ byeditortrcoin = {{edited, translated \lbx@lfromlang\finalandcomma\ and commented, with an introduction, by}%
+ {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and comm., with an introd., by}},
+ byeditortrcofo = {{edited, translated \lbx@lfromlang\finalandcomma\ and commented, with a foreword, by}%
+ {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and comm., with a forew., by}},
+ byeditortrcoaf = {{edited, translated \lbx@lfromlang\finalandcomma\ and commented, with an afterword, by}%
+ {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and comm., with an afterw., by}},
+ byeditortranin = {{edited, translated \lbx@lfromlang\finalandcomma\ and annotated, with an introduction, by}%
+ {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and annot., with an introd., by}},
+ byeditortranfo = {{edited, translated \lbx@lfromlang\finalandcomma\ and annotated, with a foreword, by}%
+ {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and annot., with a forew., by}},
+ byeditortranaf = {{edited, translated \lbx@lfromlang\finalandcomma\ and annotated, with an afterword, by}%
+ {ed.,\addabbrvspace trans\adddot\ \lbx@sfromlang\finalandcomma\ and annot., with an afterw., by}},
+ bytranslatorco = {{translated \lbx@lfromlang\ and commented by}%
+ {trans\adddot\ \lbx@sfromlang\ and comm\adddot\ by}},
+ bytranslatoran = {{translated \lbx@lfromlang\ and annotated by}%
+ {trans\adddot\ \lbx@sfromlang\ and annot\adddot\ by}},
+ bytranslatorin = {{translated \lbx@lfromlang, with an introduction, by}%
+ {trans\adddot\ \lbx@sfromlang, with an introd., by}},
+ bytranslatorfo = {{translated \lbx@lfromlang, with a foreword, by}%
+ {trans\adddot\ \lbx@sfromlang, with a forew., by}},
+ bytranslatoraf = {{translated \lbx@lfromlang, with an afterword, by}%
+ {trans\adddot\ \lbx@sfromlang, with an afterw., by}},
+ bytranslatorcoin = {{translated \lbx@lfromlang\ and commented, with an introduction, by}%
+ {trans\adddot\ \lbx@sfromlang\ and comm., with an introd., by}},
+ bytranslatorcofo = {{translated \lbx@lfromlang\ and commented, with a foreword, by}%
+ {trans\adddot\ \lbx@sfromlang\ and comm., with a forew., by}},
+ bytranslatorcoaf = {{translated \lbx@lfromlang\ and commented, with an afterword, by}%
+ {trans\adddot\ \lbx@sfromlang\ and comm., with an afterw., by}},
+ bytranslatoranin = {{translated \lbx@lfromlang\ and annotated, with an introduction, by}%
+ {trans\adddot\ \lbx@sfromlang\ and annot., with an introd., by}},
+ bytranslatoranfo = {{translated \lbx@lfromlang\ and annotated, with a foreword, by}%
+ {trans\adddot\ \lbx@sfromlang\ and annot., with a forew., by}},
+ bytranslatoranaf = {{translated \lbx@lfromlang\ and annotated, with an afterword, by}%
+ {trans\adddot\ \lbx@sfromlang\ and annot., with an afterw., by}},
+ and = {{and}{and}},
+ andothers = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}},
+ andmore = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}},
+ volume = {{volume}{vol\adddot}},
+ volumes = {{volumes}{vols\adddot}},
+ involumes = {{in}{in}},
+ jourvol = {{volume}{vol\adddot}},
+ jourser = {{series}{ser\adddot}},
+ book = {{book}{book}},
+ part = {{part}{part}},
+ issue = {{issue}{issue}},
+ newseries = {{new series}{new ser\adddot}},
+ oldseries = {{old series}{old ser\adddot}},
+ edition = {{edition}{ed\adddot}},
+ reprint = {{reprint}{repr\adddot}},
+ reprintof = {{reprint of}{repr\adddotspace of}},
+ reprintas = {{reprinted as}{rpt\adddotspace as}},
+ reprintfrom = {{reprinted from}{repr\adddotspace from}},
+ reviewof = {{review of}{rev\adddotspace of}},
+ translationof = {{translation of}{trans\adddotspace of}},
+ translationas = {{translated as}{trans\adddotspace as}},
+ translationfrom = {{translated from}{trans\adddotspace from}},
+ origpubas = {{originally published as}{orig\adddotspace pub\adddotspace as}},
+ origpubin = {{originally published in}{orig\adddotspace pub\adddotspace in}},
+ astitle = {{as}{as}},
+ bypublisher = {{by}{by}},
+ nodate = {{no date}{n\adddot d\adddot}},
+ pages = {{}{}},
+ page = {{}{}},
+ column = {{column}{col\adddot}},
+ columns = {{columns}{cols\adddot}},
+ line = {{line}{l\adddot}},
+ lines = {{lines}{ll\adddot}},
+ verse = {{verse}{v\adddot}},
+ verses = {{verses}{vv\adddot}},
+ section = {{section}{\S}},
+ sections = {{sections}{\S\S}},
+ paragraph = {{paragraph}{par\adddot}},
+ paragraphs = {{paragraphs}{par\adddot}},
+ pagetotal = {{page}{p\adddot}},
+ pagetotals = {{pages}{pp\adddot}},
+ columntotal = {{column}{col\adddot}},
+ columntotals = {{columns}{cols\adddot}},
+ linetotal = {{line}{l\adddot}},
+ linetotals = {{lines}{ll\adddot}},
+ versetotal = {{verse}{v\adddot}},
+ versetotals = {{verses}{vv\adddot}},
+ sectiontotal = {{section}{\S}},
+ sectiontotals = {{sections}{\S\S}},
+ paragraphtotal = {{paragraph}{par\adddot}},
+ paragraphtotals = {{paragraphs}{par\adddot}},
+ in = {{in}{in}},
+ inseries = {{in}{in}},
+ ofseries = {{of}{of}},
+ number = {{number}{no\adddot}},
+ chapter = {{chapter}{chap\adddot}},
+ bathesis = {{Bachelor's thesis}{BA\addabbrvspace thesis}},
+ mathesis = {{Master's thesis}{MA\addabbrvspace thesis}},
+ phdthesis = {{PhD\addabbrvspace thesis}{PhD\addabbrvspace thesis}},
+ candthesis = {{Candidate thesis}{Cand\adddotspace thesis}},
+ resreport = {{research report}{research rep\adddot}},
+ techreport = {{technical report}{tech\adddotspace rep\adddot}},
+ software = {{computer software}{comp\adddotspace software}},
+ datacd = {{CD-ROM}{CD-ROM}},
+ audiocd = {{audio CD}{audio CD}},
+ version = {{version}{version}},
+ url = {{address}{address}},
+ urlfrom = {{available from}{available from}},
+ urlseen = {{visited on}{visited on}},
+ inpreparation = {{in preparation}{in preparation}},
+ submitted = {{submitted}{submitted}},
+ forthcoming = {{forthcoming}{forthcoming}},
+ inpress = {{in press}{in press}},
+ prepublished = {{pre-published}{pre-published}},
+ citedas = {{henceforth cited as}{henceforth cited as}},
+ thiscite = {{especially}{esp\adddot}},
+ seenote = {{see note}{see n\adddot}},
+ quotedin = {{quoted in}{qtd\adddotspace in}},
+ idem = {{idem}{idem}},
+ idemsm = {{idem}{idem}},
+ idemsf = {{eadem}{eadem}},
+ idemsn = {{idem}{idem}},
+ idempm = {{eidem}{eidem}},
+ idempf = {{eaedem}{eaedem}},
+ idempn = {{eadem}{eadem}},
+ idempp = {{eidem}{eidem}},
+ ibidem = {{ibidem}{ibid\adddot}},
+ opcit = {{op\adddotspace cit\adddot}{op\adddotspace cit\adddot}},
+ loccit = {{loc\adddotspace cit\adddot}{loc\adddotspace cit\adddot}},
+ confer = {{cf\adddot}{cf\adddot}},
+ sequens = {{sq\adddot}{sq\adddot}},
+ sequentes = {{sqq\adddot}{sqq\adddot}},
+ passim = {{passim}{pass\adddot}},
+ see = {{see}{see}},
+ seealso = {{see also}{see also}},
+ backrefpage = {{cited on page}{cit\adddotspace on p\adddot}},
+ backrefpages = {{cited on pages}{cit\adddotspace on pp\adddot}},
+ january = {{January}{Jan\adddot}},
+ february = {{February}{Feb\adddot}},
+ march = {{March}{Mar\adddot}},
+ april = {{April}{Apr\adddot}},
+ may = {{May}{May}},
+ june = {{June}{June}},
+ july = {{July}{July}},
+ august = {{August}{Aug\adddot}},
+ september = {{September}{Sept\adddot}},
+ october = {{October}{Oct\adddot}},
+ november = {{November}{Nov\adddot}},
+ december = {{December}{Dec\adddot}},
+ langamerican = {{American}{American}},
+ langbasque = {{Basque}{Basque}},
+ langbrazilian = {{Brazilian}{Brazilian}},
+ langbulgarian = {{Bulgarian}{Bulgarian}},
+ langcatalan = {{Catalan}{Catalan}},
+ langcroatian = {{Croatian}{Croatian}},
+ langczech = {{Czech}{Czech}},
+ langdanish = {{Danish}{Danish}},
+ langdutch = {{Dutch}{Dutch}},
+ langenglish = {{English}{English}},
+ langestonian = {{Estonian}{Estonian}},
+ langfinnish = {{Finnish}{Finnish}},
+ langfrench = {{French}{French}},
+ langgalician = {{Galician}{Galician}},
+ langgerman = {{German}{German}},
+ langgreek = {{Greek}{Greek}},
+ langhungarian = {{Hungarian}{Hungarian}},
+ langitalian = {{Italian}{Italian}},
+ langjapanese = {{Japanese}{Japanese}},
+ langlatin = {{Latin}{Latin}},
+ langlatvian = {{Latvian}{Latvian}},
+ langlithuanian = {{Lithuanian}{Lithuanian}},
+ langnorwegian = {{Norwegian}{Norwegian}},
+ langpolish = {{Polish}{Polish}},
+ langportuguese = {{Portuguese}{Portuguese}},
+ langrussian = {{Russian}{Russian}},
+ langserbian = {{Serbian}{Serbian}},
+ langslovak = {{Slovak}{Slovak}},
+ langslovene = {{Slovene}{Slovene}},
+ langspanish = {{Spanish}{Spanish}},
+ langswedish = {{Swedish}{Swedish}},
+ langturkish = {{Turkish}{Turkish}},
+ langukrainian = {{Ukrainian}{Ukrainian}},
+ fromamerican = {{from the American}{from the American}},
+ frombasque = {{from the Basque}{from the Basque}},
+ frombrazilian = {{from the Brazilian}{from the Brazilian}},
+ frombulgarian = {{from the Bulgarian}{from the Bulgarian}},
+ fromcatalan = {{from the Catalan}{from the Catalan}},
+ fromcroatian = {{from the Croatian}{from the Croatian}},
+ fromczech = {{from the Czech}{from the Czech}},
+ fromdanish = {{from the Danish}{from the Danish}},
+ fromdutch = {{from the Dutch}{from the Dutch}},
+ fromenglish = {{from the English}{from the English}},
+ fromestonian = {{from the Estonian}{from the Estonian}},
+ fromfinnish = {{from the Finnish}{from the Finnish}},
+ fromfrench = {{from the French}{from the French}},
+ fromgalician = {{from the Galician}{from the Galician}},
+ fromgerman = {{from the German}{from the German}},
+ fromgreek = {{from the Greek}{from the Greek}},
+ fromhungarian = {{from the Hungarian}{from the Hungarian}},
+ fromitalian = {{from the Italian}{from the Italian}},
+ fromjapanese = {{from the Japanese}{from the Japanese}},
+ fromlatin = {{from the Latin}{from the Latin}},
+ fromlatvian = {{from the Latvian}{from the Latvian}},
+ fromlithuanian = {{from the Lithuanian}{from the Lithuanian}},
+ fromnorwegian = {{from the Norwegian}{from the Norwegian}},
+ frompolish = {{from the Polish}{from the Polish}},
+ fromportuguese = {{from the Portuguese}{from the Portuguese}},
+ fromrussian = {{from the Russian}{from the Russian}},
+ fromserbian = {{from the Serbian}{from the Serbian}},
+ fromslovak = {{from the Slovak}{from the Slovak}},
+ fromslovene = {{from the Slovene}{from the Slovene}},
+ fromspanish = {{from the Spanish}{from the Spanish}},
+ fromswedish = {{from the Swedish}{from the Swedish}},
+ fromturkish = {{from the Turkish}{from the Turkish}},
+ fromukrainian = {{from the Ukrainian}{from the Ukrainian}},
+ countryde = {{Germany}{DE}},
+ countryeu = {{European Union}{EU}},
+ countryep = {{European Union}{EP}},
+ countryfr = {{France}{FR}},
+ countryuk = {{United Kingdom}{GB}},
+ countryus = {{United States of America}{US}},
+ patent = {{patent}{pat\adddot}},
+ patentde = {{German patent}{German pat\adddot}},
+ patenteu = {{European patent}{European pat\adddot}},
+ patentfr = {{French patent}{French pat\adddot}},
+ patentuk = {{British patent}{British pat\adddot}},
+ patentus = {{U.S\adddotspace patent}{U.S\adddotspace pat\adddot}},
+ patreq = {{patent request}{pat\adddot\ req\adddot}},
+ patreqde = {{German patent request}{German pat\adddot\ req\adddot}},
+ patreqeu = {{European patent request}{European pat\adddot\ req\adddot}},
+ patreqfr = {{French patent request}{French pat\adddot\ req\adddot}},
+ patrequk = {{British patent request}{British pat\adddot\ req\adddot}},
+ patrequs = {{U.S\adddotspace patent request}{U.S\adddotspace pat\adddot\ req\adddot}},
+ file = {{file}{file}},
+ library = {{library}{library}},
+ abstract = {{abstract}{abstract}},
+ annotation = {{annotations}{annotations}},
+ commonera = {{Common Era}{CE}},
+ beforecommonera = {{Before Common Era}{BCE}},
+ annodomini = {{Anno Domini}{AD}},
+ beforechrist = {{Before Christ}{BC}},
+ circa = {{circa}{ca\adddot}},
+ spring = {{Spring}{Spr\adddot}},
+ summer = {{Summer}{Sum\adddot}},
+ autumn = {{Autumn}{Aut\adddot}},
+ winter = {{Winter}{Win\adddot}},
+ am = {{AM}{AM}},
+ pm = {{PM}{PM}},
+}
+
+
+\endinput
+
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index 0765fb3ecc..655d567ae0 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -15,7 +15,7 @@
%<*class>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2021/12/15}{1.41U}
+\ProvidesExplClass{easybook}{2021/12/15}{1.41V}
{Typeset Chinese theses or books}
\bool_set_false:N \l__eb_compile_draft_bool
@@ -79,7 +79,6 @@
\cs_new_eq:NN \eb_set_family:nnn \ctex_ltj_set_family:nnn
\cs_new_eq:NN \eb_switch_family:n \ctex_ltj_switch_family:n
}
-\cs_generate_variant:Nn \eb_switch_family:n { V }
\cs_new_protected:Npn \eb_setmainfont:nn #1#2
{ \__fontspec_main_setmainfont:nn {#2} {#1} }
\cs_new_protected:Npn \eb_setsansfont:nn #1#2
@@ -101,7 +100,7 @@
\RenewDocumentCommand{\newCJKfontfamily}{omO{}mO{}}
{
\tl_set:Nx \l_tmpa_tl { \tl_if_novalue:nTF {#1} { \cs_to_str:N #2 } {#1} }
- \cs_new_protected:Npx #2 { \eb_switch_family:V \l_tmpa_tl }
+ \cs_new_protected:Npx #2 { \eb_switch_family:n { \l_tmpa_tl } }
\eb_set_family:nnn { \l_tmpa_tl } {#3,#5} {#4}
}
@@ -308,7 +307,7 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e,etoolbox}
-\ProvidesExplPackage{easybase}{2021/12/15}{1.41U}
+\ProvidesExplPackage{easybase}{2021/12/15}{1.41V}
{Typeset Chinese theses or books}
\cs_generate_variant:Nn \dim_set:Nn { NV }
@@ -534,7 +533,7 @@
{ fancyhdr } { 2021/01/28 },
{ siunitx } { 2021/06/22 },
{ tabularray } { 2021/07/01 },
- { spbmark } { 2021/06/30 }
+ { spbmark } { 2021/12/15 }
}
{ \eb_package_date_check:nn #1 }
@@ -727,7 +726,7 @@
\bool_if:NF \l__eb_ps_used_bool { \pagestyle{fancy} }
\tl_if_empty:NF \l_eb_graphics_path_tl
{ \exp_args:NV \graphicspath \l_eb_graphics_path_tl }
- \cs_if_exist:NF \kaishu { \cs_gset_eq:NN \kaishu \itshape }
+ \providecommand{\kaishu}{\itshape}
}
\ctex_define:nn { style }
@@ -781,10 +780,10 @@
{ s } { \eb_int_to_symbols:n }
}
}
-\cs_new_protected:Npn \eb_fnmate_normal_label_set:nn #1#2
+\cs_new_protected:Npn \eb_fnmate_normal_label_set:Nn #1#2
{
- \tl_set:Nn \l__eb_fnmate_number_type_tl {#1}
- \cs_set:cpx {#2}
+ \tl_set:Nn \l__eb_fnmate_number_type_tl {#2}
+ \cs_set:Npx #1
{
\str_case:VnT \l__eb_fnmate_number_type_tl
{
@@ -802,20 +801,20 @@
{ \exp_not:N \c@footnote }
}
}
-\cs_new_protected:Npn \eb_fnmate_short_label_set:nn #1#2
+\cs_new_protected:Npn \eb_fnmate_short_label_set:Nn #1#2
{
- \tl_set:Nn \l__eb_fnmate_short_tokens_tl {#1}
+ \tl_set:Nn \l__eb_fnmate_short_tokens_tl {#2}
\eb_seq_map_inline:nn
{ A,a,1,I,i,c,s }
{
- \tl_if_in:nnT {#1} {##1}
+ \tl_if_in:nnT {#2} {##1}
{
\tl_replace_once:Nnn \l__eb_fnmate_short_tokens_tl {##1}
{ \eb_int_format_trans:NN ##1 \c@footnote }
\seq_map_break:
}
}
- \cs_set_eq:cN {#2} \l__eb_fnmate_short_tokens_tl
+ \cs_set_eq:NN #1 \l__eb_fnmate_short_tokens_tl
}
\cs_new_protected:Npn \eb_footnote_value_handle:n #1
{
@@ -892,14 +891,14 @@
fnmark-num .choices:nn =
{ plain,pifont,pifont*,pifont-sans,pifont-sans* }
- { \eb_fnmate_normal_label_set:nn {#1} { the@footnote } },
+ { \eb_fnmate_normal_label_set:Nn \the@up@footnote {#1} },
fnmark-num .value_required:n = true,
- fnmark-num/unknown .code:n = \eb_fnmate_short_label_set:nn {#1} { the@footnote },
+ fnmark-num/unknown .code:n = \eb_fnmate_short_label_set:Nn \the@up@footnote {#1},
fntext-num .choices:nn =
{ plain,pifont,pifont*,pifont-sans,pifont-sans* }
- { \eb_fnmate_normal_label_set:nn {#1} { thefootnote } },
+ { \eb_fnmate_normal_label_set:Nn \thefootnote {#1} },
fntext-num .value_required:n = true,
- fntext-num/unknown .code:n = \eb_fnmate_short_label_set:nn {#1} { thefootnote },
+ fntext-num/unknown .code:n = \eb_fnmate_short_label_set:Nn \thefootnote {#1},
fnmate-num .meta:n = { fntext-num = #1,fnmark-num = #1 },
fnmate-num .initial:n = plain,
unknown .code:n = \eb_msg_abandon_option:n { hdrset }
@@ -1016,12 +1015,12 @@
\tl_if_eq:NnT \l__eb_footnote_value_tl { hang } { \par }
\group_end:
}
-\cs_set_eq:NN \eb@makefntext \@makefntext
+\cs_set_eq:NN \eb@makefntext@save \@makefntext
\ctex_at_end_package:nn { footmisc }
{
\notbool{FN@para}
{
- \cs_set_eq:NN \@makefntext \eb@makefntext
+ \cs_set_eq:NN \@makefntext \eb@makefntext@save
\msg_warning:nn { easybase } { footmisc }
}{}
}
@@ -1035,7 +1034,7 @@
\cs_set_protected:Npn \footref #1
{
\group_begin:
- \unrestored@protected@xdef\eb@thefnmark{\ref{#1}}
+ \unrestored@protected@xdef\@the@up@fnmark{\ref{#1}}
\group_end:
\H@@footnotemark
}
@@ -1045,9 +1044,9 @@
{ \@xfootnote }
{
\exp_args:NV \stepcounter \@mpfn
- \eb_current_label:n { @footnote }
+ \eb_current_label:n { @up@footnote }
\protected@xdef\@thefnmark{\thempfn}
- \protected@xdef\eb@thefnmark{\the@footnote}
+ \protected@xdef\@the@up@fnmark{\the@up@footnote}
\@footnotemark
\@footnotetext
}
@@ -1058,12 +1057,12 @@
{ \@xfootnotemark }
{
\stepcounter{footnote}
- \protected@xdef\eb@thefnmark{\the@footnote}
+ \protected@xdef\@the@up@fnmark{\the@up@footnote}
\@footnotemark
}
}
\eb_patch_cmd:wnn { \@footnotetext,\@mpfootnotetext }
- { \footnotesize }
+ { \reset@font }
{
\setspread{\fp_use:N \l__eb_spread_footnote_fp}
\tl_use:N \l__eb_subfont_footnote_tl
@@ -1074,7 +1073,7 @@
{
\group_begin:
\setcounter{footnote}{#1}
- \unrestored@protected@xdef\eb@thefnmark{\the@footnote}
+ \unrestored@protected@xdef\@the@up@fnmark{\the@up@footnote}
\group_end:
\H@@footnotemark
}
@@ -1105,8 +1104,7 @@
\bool_if:NT \l__eb_fncust_format_match_bool
{ \tl_clear:N \l__eb_fnmate_format_tl }
}
- \bool_if:NF \l__eb_fnmate_format_match_bool
- { \spbset{super-format = { }} }
+ \bool_if:NF \l__eb_fnmate_format_match_bool { \spbset{spcmd = { }} }
\tl_use:N \l__eb_subfont_footnote_tl
}
\bool_set_true:N \l__eb_normal_footnote_bool
@@ -1118,7 +1116,7 @@
{
\eb_fnmate_format_initial:
\tl_if_eq:NnTF \@mpfn { footnote }
- { \eb@fnmate@super{\eb@thefnmark} }
+ { \eb@fnmate@super{\@the@up@fnmark} }
{ \eb@fnmate@super{\@thefnmark} }
}
}
@@ -1140,13 +1138,13 @@
}
\tl_clear:N \@thefnmark
-\tl_new:N \eb@thefnmark
+\tl_new:N \@the@up@fnmark
\cs_new:Npn \eb@@makefnmark #1#2
{
\tl_if_empty:oF {#2}
{
\group_begin:
- \unrestored@protected@xdef\eb@thefnmark{#1}
+ \unrestored@protected@xdef\@the@up@fnmark{#1}
\unrestored@protected@xdef\@thefnmark{#2}
\group_end:
}
@@ -1272,7 +1270,7 @@
\ctex_define:nn { tocset }
{
- lolskip .skip_set:N = \eb@toc@lolskip,
+ lolskip .skip_set:N = \eb@toc@lol@skip,
lolskip .initial:n = 10pt,
between .tl_set:N = \l__eb_toc_main_between_hook_tl,
between .initial:n =
@@ -1467,8 +1465,8 @@
{
\eb_appto_cmd:Nn \@chapter
{
- \skip_if_eq:nnF { \eb@toc@lolskip } { \c_zero_skip }
- { \addtocontents{lol}{\protect\addvspace{\skip_use:N \eb@toc@lolskip}} }
+ \skip_if_eq:nnF { \eb@toc@lol@skip } { \c_zero_skip }
+ { \addtocontents{lol}{\protect\addvspace{\skip_use:N \eb@toc@lol@skip}} }
}
}
@@ -1712,9 +1710,8 @@
},
caption-every .initial:n = \sffamily\small,
footnote .tl_set:N = \l__eb_subfont_footnote_tl,
- footnote .initial:n = \rmfamily\footnotesize,
marginpar .tl_set:N = \l__eb_subfont_marginpar_tl,
- marginpar .initial:n = \rmfamily\footnotesize,
+ marginpar .initial:n = \footnotesize,
unknown .code:n = \eb_msg_abandon_option:n { subfont }
}
\cs_new_protected:Npn \addtosubfont #1#2
@@ -1743,7 +1740,7 @@
table .fp_set:N = \l__eb_spread_table_fp,
table .initial:n = 1.354,
math .fp_set:N = \l__eb_spread_math_fp,
- math .initial:n = 1.2,
+ math .initial:n = 1.3,
footnote .fp_set:N = \l__eb_spread_footnote_fp,
footnote .initial:n = 1.2,
caption-table .fp_set:N = \l__eb_spread_cap_table_fp,
@@ -1976,7 +1973,7 @@
\eb_thm_biname_set:nnn {#1} {#2} {#3}
\declaretheorem{#1}[
name = \tl_use:c { l__eb_thm_biname_#1_tl },
- style = eb-theorem,#5
+ style = fancy,#5
]
\eb_if_thmframe_with_tcolorbox:TF
{
@@ -2049,7 +2046,7 @@
\clist_put_right:Nx
\c__eb_thmtools_entry_clist { notebraces = \l__eb_thm_notebraces_tl }
\exp_last_unbraced:NNV
- \declaretheoremstyle[\c__eb_thmtools_entry_clist]{eb-theorem}
+ \declaretheoremstyle[\c__eb_thmtools_entry_clist]{fancy}
\deftheorem{proof}{证明}[numbered = no,qed = \qedsymbol]
\deftheorem{remark}{注}[numbered = no]
\deftheorem{proposition}{性质}
@@ -2138,12 +2135,12 @@
bibstyle .initial:n = numerical,
citestyle .code:n = \tl_set:Nn \l__eb_bib_cite_style_tl {#1},
datafile .clist_set:N = \l__eb_bib_datafile_clist,
- bitoc-title .tl_set:N = \l__eb_bib_en_bitoc_title_tl,
- bitoc-title .initial:n = Reference,
+ bititle .tl_set:N = \l__eb_bib_en_bitoc_title_tl,
+ bititle .initial:n = Bibliography,
unknown .code:n = \eb_msg_abandon_option:n { bibset }
}
-\cs_new_protected:Npn \eb_natbib_bibtex_set:
+\cs_new_protected:Npn \eb_bibtex_natbib_set:
{
\LoadPackage[sort&compress]{natbib}
\str_case:VnTF \l__eb_bib_both_style_tl
@@ -2180,7 +2177,7 @@
}
\cs_new_protected:Npn \eb_put_biblatex:n #1
{ \PassOptionsToPackage{#1}{biblatex} }
-\cs_new_protected:Npn \eb_biblatex_biber_set:
+\cs_new_protected:Npn \eb_biber_biblatex_set:
{
\str_case:VnF \l__eb_bib_both_style_tl
{
@@ -2204,8 +2201,8 @@
\clist_if_empty:NF \l__eb_bib_datafile_clist
{
\bool_if:NTF \l__eb_backend_bibtex_bool
- { \eb_natbib_bibtex_set: }
- { \eb_biblatex_biber_set: }
+ { \eb_bibtex_natbib_set: }
+ { \eb_biber_biblatex_set: }
}
}
@@ -2394,7 +2391,7 @@
\labelformat{chapter}{\CTEXthechapter}
\labelformat{figure}{\figurename~#1}
\labelformat{table}{\tablename~#1}
-\cs_if_free:NT \bibname { \cs_set_eq:NN \bibname \refname }
+\providecommand{\bibname}{\refname}
\ctex_define:n
{
lstlistlistingname .tl_set:N = \listlstlistingname,
@@ -2432,7 +2429,7 @@
}
%</package>
%<*tcolorbox>
-\ProvidesExplFile{eb-tcolorbox.cfg}{2021/12/15}{1.41U}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2021/12/15}{1.41V}
{Customization of tcolorbox for easybook}
\cs_set_protected:Npn \setexercise #1
diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf
index 8676768a4a..1369c58630 100644
--- a/macros/latex/contrib/easybook/easybook.pdf
+++ b/macros/latex/contrib/easybook/easybook.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex
index f52cbce436..9773c1cd4a 100644
--- a/macros/latex/contrib/easybook/easybook.tex
+++ b/macros/latex/contrib/easybook/easybook.tex
@@ -20,7 +20,7 @@
name = easybook,
color-scheme = blue,
title = EASYBOOK 使用手册,
- version = v1.41U,
+ version = v1.41V,
date = 2021/12/15,
authors = 瞿毅,
info = 排版简体中文学位论文和书籍,
@@ -356,12 +356,12 @@
\end{commands}
\subsection{上标和下标}
-上标和下标的功能来自 \pkg*{spbmark} 宏包,下面三个命令可以用于输出上标和下标。可以使用键值列表的形式对上下标格式进行局部或全局设置,这些命令两个可选参数的键值列表是等效的。全局设置的详情见\ref{subsubsec:super-sub-script}。
+上标和下标的功能来自 \pkg*{spbmark} 宏包,下面三个命令可以用于输出上标和下标。可以使用键值列表的形式对上下标格式进行局部或全局设置,下面命令中两个可选参数的键值列表是等效的。全局设置的详情见\ref{subsubsec:super-sub-script}。
\begin{commands}
\command{super}[\oarg{键值列表1}\splitoarg{高度,深度}\marg{内容}\oarg{键值列表2}]
输出上标的命令,与简短命令 \cs{sp} 等效。
\command{sub}[\oarg{键值列表1}\splitoarg{高度,深度}\marg{内容}\oarg{键值列表2}]
- 输出下标的命令,与简短命令 \cs{sp} 等效。用法和参数与上标命令 \cs{super} 类似。
+ 输出下标的命令,与简短命令 \cs{sb} 等效。用法和参数与上标命令 \cs{super} 类似。
\command{supersub}[\oarg{键值列表1}\marg{上标内容}\marg{下标内容}\oarg{键值列表2}]
同时输出上标和下标的命令,与简短命令 \cs{spb} 等效。
\end{commands}
@@ -511,7 +511,7 @@
正文行距因子,注意 C\TeX 宏集原有的行距选项 \option*{linespread} 失效。
\keyval-{table}{数值}\Default{1.354}
表格内容行距因子,对传统表格 \env*{tabular} 和 \env*{tabularx} 等环境以及 \pkg*{tabularray} 宏包的 \env{tblr} 环境生效,同时 \env{tblr} 也自带有 \option*{stretch} 选项设置行距系数。
- \keyval-{math}{数值}\Default{1.2}
+ \keyval-{math}{数值}\Default{1.3}
数学环境的行距因子,包含了 \pkg*{amsmath} 和 \pkg*{mathtools} 宏包提供的公式环境。
\keyval-{caption-figure}{数值}\Default{1.2}
图片题注的行距因子。
@@ -542,9 +542,9 @@
代码题注的字体设置,包括字体族、字体系列、字体尺寸和字体形状命令。
\keyval-{caption-every}{字体命令}\Default{\cs*{sffamily}\cs*{small}}
同时设置图片、表格和代码题注的字体命令。
- \keyval-{footnote}{字体命令}\Default{\cs*{rmfamily}\cs*{footnotesize}}
+ \keyval-{footnote}{字体命令}\Default
设置脚注标记与内容的字体,包括字体族、字体系列、字体尺寸和字体形状命令。
- \keyval-{marginpar}{字体命令}\Default{\cs*{rmfamily}\cs*{footnotesize}}
+ \keyval-{marginpar}{字体命令}\Default{\cs*{footnotesize}}
边注的字体设置,包括字体族、字体系列、字体尺寸和字体形状命令。
\end{options}
@@ -600,7 +600,7 @@
\subsection{定理样式}
\label{subsec:theorem of style}
-文档类已预置 12 个定理环境,环境名及对应的定理名见\ref{subsec:theorem},它们均使用预置的定理样式 \code{eb-theorem}。下面 \module*{thmset} 模块选项的用法名称与 \pkg*{thmtools} 宏包基本一致,且仅对预置定理样式生效。如果下面的选项不满足需求,可使用支持完整选项的相关命令创建定理环境。
+文档类已预置 12 个定理环境,环境名及对应的定理名见\ref{subsec:theorem},它们均使用预置的定理样式 \code{fancy}。下面 \module*{thmset} 模块选项的用法名称与 \pkg*{thmtools} 宏包基本一致,且仅对预置定理样式生效。如果下面的选项不满足需求,可使用支持完整选项的相关命令创建定理环境。
\begin{options}
\keybool{thmframe}\Module{thmset}\Default{false}
给定理环境使用彩色盒子。这个特殊选项在本模块中使用 \pkg*{tcolorbox} 宏包来支持,\meta{盒子风格} 默认为 \code{tc-theorem}。注意它应当在定理声明命令前使用。\pkg*{thmtools} 具有类似的选项 \option*{thmbox}。
@@ -655,7 +655,7 @@
\item 中英文模式下定理标题自动切换。针对中文定理标题的特点将 \meta{中文标题} 设计为必选参数,\meta{英文标题} 则默认为首字母大写的 \meta{环境名}。
\item 自动定义交叉引用的格式,引用标签前缀为相应定理名。
\item 定理盒子选项 \option{thmframe} 仍然生效,\meta{盒子风格} 可以使用 \cs{deftcbstyle} 命令创建。
- \item 新建定理环境默认使用的 \meta{定理样式} 为 \code{eb-theorem},而不是 \pkg*{thmtools} 的默认样式。
+ \item 新建定理环境默认使用的 \meta{定理样式} 为 \code{fancy},而不是 \pkg*{thmtools} 的默认样式。
\end{itemize}
下面新建一个与\ref{exam:new theorem env} 相同的定理环境猜想,并使用 \cs{addtotcbstyle} 命令调整 \option{thmframe} 开启时默认的盒子风格。它的第一个参数为 \code{tc-theorem},关于命令的介绍在\ref{subsec:box}。
diff --git a/macros/latex/contrib/gzt/doc/french/gzt-fr.pdf b/macros/latex/contrib/gzt/doc/french/gzt-fr.pdf
index a727c46b26..53f04a5010 100644
--- a/macros/latex/contrib/gzt/doc/french/gzt-fr.pdf
+++ b/macros/latex/contrib/gzt/doc/french/gzt-fr.pdf
Binary files differ
diff --git a/macros/latex/contrib/gzt/source/gzt.dtx b/macros/latex/contrib/gzt/source/gzt.dtx
index 50d03f6642..ce19443f14 100644
--- a/macros/latex/contrib/gzt/source/gzt.dtx
+++ b/macros/latex/contrib/gzt/source/gzt.dtx
@@ -70,10 +70,155 @@ $quote_filenames = 0;
% \end{macrocode}
%
% \begin{macrocode}
+%<*ctanomat>
+% \end{macrocode}
+% This is a description file for ctan-o-mat.
+% It manages uploads of a package to
+% CTAN -- the Comprehensive TeX Archive Network.
+%
+% The syntax is roughly oriented towards (La)TeX.
+% Two form of the macros are used. The simple macros take one argument
+% in braces. Here the argument may not contain embedded macros.
+%
+% The second form uses an environment enclosed in \begin{}/\end{}.
+% In the long text fields logo macros can be used.
+%
+% You should enter your values between the begin and the end of the
+% named type.
+% -------------------------------------------------------------------------
+% This field contains the CTAN id of the package.
+% The value is optional.
+% The value is restricted to 32 characters.
+\pkg{gzt}
+% -------------------------------------------------------------------------
+% This field contains the version of the package.
+% The value is optional.
+% The value is restricted to 32 characters.
+\version{1.1.1 2021-12-16}
+% -------------------------------------------------------------------------
+% This field contains the name of the author(s).
+% The value is optional.
+% The value is restricted to 128 characters.
+\author{Denis Bitouzé}
+% -------------------------------------------------------------------------
+% This field contains the email address of the uploader.
+% The value is an email address.
+% The value is restricted to 255 characters.
+\email{denis.bitouze@univ-littoral.fr}
+% -------------------------------------------------------------------------
+% This field contains the name of the uploader.
+% The value is restricted to 255 characters.
+\uploader{Denis Bitouzé}
+% -------------------------------------------------------------------------
+% This field contains the directory on CTAN.
+% The value is optional.
+% The value is restricted to 255 characters.
+\ctanPath{/macros/latex/contrib/gzt}
+% -------------------------------------------------------------------------
+% This field contains the license.
+% The value is optional.
+% The value is restricted to 2048 characters.
+% Multiple values are allowed.
+\license{lppl1.3c}
+% -------------------------------------------------------------------------
+% This field contains the URL of the home page.
+% The value is optional.
+% The value is a URL.
+% The value is restricted to 255 characters.
+% Multiple values are allowed.
+\home{}
+% -------------------------------------------------------------------------
+% This field contains the URL of the bug tracker.
+% The value is optional.
+% The value is a URL.
+% The value is restricted to 255 characters.
+% Multiple values are allowed.
+\bugtracker{https://github.com/dbitouze/gzt/issues/}
+% -------------------------------------------------------------------------
+% This field contains the support channel.
+% The value is optional.
+% The value is a URL.
+% The value is restricted to 255 characters.
+% Multiple values are allowed.
+\support{}
+% -------------------------------------------------------------------------
+% This field contains the version management.
+% The value is optional.
+% The value is a URL.
+% The value is restricted to 255 characters.
+% Multiple values are allowed.
+\repository{https://github.com/dbitouze/gzt/}
+% -------------------------------------------------------------------------
+% This field contains the developer's channel.
+% The value is optional.
+% The value is a URL.
+% The value is restricted to 255 characters.
+% Multiple values are allowed.
+\development{}
+% -------------------------------------------------------------------------
+% This field contains the update indicator; true for update.
+% The value is optional.
+% The value is restricted to 8 characters.
+\update{true}
+% -------------------------------------------------------------------------
+% This field contains the topics id.
+% The value is optional.
+% The value is restricted to 1024 characters.
+% Multiple values are allowed.
+\topic{}
+% -------------------------------------------------------------------------
+% This field contains the text for the mail announcement.
+% The value is optional.
+% The value is restricted to 8192 characters.
+\begin{announcement}
+\end{announcement}
+% -------------------------------------------------------------------------
+% This field contains the one-liner for the package.
+% The value is optional.
+% The value is restricted to 128 characters.
+\summary{Bundle of classes for “La Gazette de la Société Mathématique de France”}
+% -------------------------------------------------------------------------
+% This field contains the descriptive abstract for the package.
+% The value is optional.
+% The value is restricted to 4096 characters.
+\begin{description}
+This bundle provides two classes and `BibLaTeX` styles for the French journal
+[“La Gazette de la Société Mathématique de
+France”](https://smf.emath.fr/les-publications/la-gazette):
+
+- gzt for the complete issues of the journal, aimed at the Gazette’s team,
+- gztarticle, intended for authors who wish to publish an article in the
+ Gazette. This class’s goals are to
+ - faithfully reproduce the layout of the Gazette, thus enabling the authors to
+ be able to work their document in actual conditions, and
+ - provide a number of tools (commands and environments) to facilitate the
+ drafting of documents, in particular those containing mathematical formulas.
+\end{description}
+% -------------------------------------------------------------------------
+% This field contains the note to the CTAN upload managers.
+% The value is optional.
+% The value is restricted to 2048 characters.
+\begin{note}
+\end{note}
+% -------------------------------------------------------------------------
+% This field contains the archive file.
+% The value is the file name of the archive to be uploaded.
+% It may have a relative or absolute directory.
+\file{../dtx-forge/gzt.zip}
+% \begin{macrocode}
+%</ctanomat>
+% \end{macrocode}
+%
+% \begin{macrocode}
%<*changelog>
% \end{macrocode}
# [Unreleased]
+# [1.1.1] - 2021-12-16
+
+## Fixed
+All bibliographic numeric labels equal 0
+
# [1.1.0] - 2021-11-30
## Added
@@ -180,8 +325,8 @@ Gazette de la Société Mathématique de France”](https://smf.emath.fr/les-pub
\fi
%</internal>
%<*class|class-article|install>
-\def\gztfileversion{1.1.0}
-\def\gztfiledate{2021-11-30}
+\def\gztfileversion{1.1.1}
+\def\gztfiledate{2021-12-16}
%</class|class-article|install>
%<*install>
\input l3docstrip.tex
@@ -236,6 +381,11 @@ Running "make install" installs the files in the local TeX tree.
%</install>
%<install>\endbatchfile
%<*internal>
+\usedir{.}
+\generate{
+ \nopreamble\nopostamble
+ \file{\GZT@classname.pkg}{\from{\jobname.dtx}{ctanomat}}
+}%
\usedir{source/latex/\GZT@classname}
\generate{
\file{\GZT@classname.ins}{\from{\jobname.dtx}{install}}
@@ -315,6 +465,7 @@ Running "make install" installs the files in the local TeX tree.
% \changes{v1.0.0}{2020-03-17}{Eighth CTAN version.}
% \changes{v1.0.1}{2021-02-14}{Nineth CTAN version.}
% \changes{v1.1.0}{2021-11-30}{Tenth CTAN version.}
+% \changes{v1.1.1}{2021-12-16}{Eleventh CTAN version.}
%
% \begin{abstract}
% This bundle provides two classes and \Pkg{biblatex} styles for the French journal
@@ -6551,13 +6702,16 @@ Running "make install" installs the files in the local TeX tree.
% If we don't ask the cover page (only), the inside back cover and back cover
% pages are automatically included at the end of the document, the former
% containing some condensed instructions to authors. But, this cannot be done
-% within ×\AddToHook{enddocument}× and ×\preto\@enddocumenthook× should be used instead
-% (see \url{https://tex.stackexchange.com/q/240318/18401}). (Update (2021-02-14):
-% we now rely on the new ×\AddToHook{env/document/end}×.)
+% within ×\AddToHook{enddocument}× and ×\preto\@enddocumenthook× should be used
+% instead (see \url{https://tex.stackexchange.com/q/240318/18401}). (Update
+% (2021-02-14): we now rely on the new ×\AddToHook{env/document/end}×.) (Update
+% (2021-12-16): we have to be more carefull with the hooks, see
+% \url{https://github.com/plk/biblatex/issues/1197}.)
% \begin{macrocode}
+\DeclareHookRule{enddocument}{citations}{before}{biblatex}
\bool_if:NF {\g_@@_coverpage_bool} {
\bool_if:NF {\g_@@_inside_pages_bool} {
- \AddToHook{enddocument}{
+ \AddToHook{enddocument}[citations]{
\bool_gset_true:N \g_@@_backmatter_bool
\g_@@_display_inside_backcover_tl
\newpage
diff --git a/macros/latex/contrib/mindflow/mindflow.dtx b/macros/latex/contrib/mindflow/mindflow.dtx
index b8f60fe220..8111c872ec 100644
--- a/macros/latex/contrib/mindflow/mindflow.dtx
+++ b/macros/latex/contrib/mindflow/mindflow.dtx
@@ -18,7 +18,7 @@
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{mindflow}
%<*package>
- [2021/09/15 mindflow environment]
+ [2021/12/16 mindflow environment]
%</package>
%
%<*driver>
@@ -82,7 +82,7 @@
\lstnewenvironment{code*}%
{\setkeys{lst}{columns=fullflexible,keepspaces=true}}{}
\lstnewenvironment{code}%
-{\setkeys{lst}{columns=fullflexible,keepspaces=true,numbers=left,numberstyle=\scriptsize, stepnumber=1, numbersep=5pt,lastline=263}}{}
+{\setkeys{lst}{columns=fullflexible,keepspaces=true,numbers=left,numberstyle=\scriptsize, stepnumber=1, numbersep=5pt,lastline=231}}{}
\EnableCrossrefs
\CodelineIndex
\RecordChanges
@@ -393,7 +393,7 @@
%%================================
%% Initialization
%%================================
-\RequirePackage{lineno}
+\RequirePackage{linenoamsmath}
\RequirePackage{xcolor}
\colorlet{mfSavedColor}{.}
@@ -597,38 +597,6 @@
\newcommand{\mindflowset}[1]{%
\setkeys{mindflow}{#1}%
}
-
-%%================================
-%% lineno patch
-%%================================
-\ifdefined\linenomathpatch\else
- \RequirePackage{amsmath}
- \RequirePackage{etoolbox}
- \newcommand*\linenomathpatch[1]{%
- \cspreto{#1}{\linenomath}%
- \cspreto{#1*}{\linenomath}%
- \csappto{end#1}{\endlinenomath}%
- \csappto{end#1*}{\endlinenomath}%
- }
- \newcommand*\linenomathpatchAMS[1]{%
- \cspreto{#1}{\linenomathAMS}%
- \cspreto{#1*}{\linenomathAMS}%
- \csappto{end#1}{\endlinenomath}%
- \csappto{end#1*}{\endlinenomath}%
- }
- \expandafter\ifx\linenomath\linenomathWithnumbers
- \let\linenomathAMS\linenomathWithnumbers
- \patchcmd\linenomathAMS{\advance\postdisplaypenalty\linenopenalty}{}{}{}
- \else
- \let\linenomathAMS\linenomathNonumbers
- \fi
- \linenomathpatch{equation}
- \linenomathpatchAMS{gather}
- \linenomathpatchAMS{multline}
- \linenomathpatchAMS{align}
- \linenomathpatchAMS{alignat}
- \linenomathpatchAMS{flalign}
-\fi
% \end{code}
%
% \Finale
diff --git a/macros/latex/contrib/mindflow/mindflow.pdf b/macros/latex/contrib/mindflow/mindflow.pdf
index 0da7c9b6c1..5771109955 100644
--- a/macros/latex/contrib/mindflow/mindflow.pdf
+++ b/macros/latex/contrib/mindflow/mindflow.pdf
Binary files differ
diff --git a/macros/latex/contrib/minimalist/minimalist-doc.pdf b/macros/latex/contrib/minimalist/minimalist-doc.pdf
index 6e77ea33b0..4cf1db38d8 100644
--- a/macros/latex/contrib/minimalist/minimalist-doc.pdf
+++ b/macros/latex/contrib/minimalist/minimalist-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/minimalist/minimalist-doc.tex b/macros/latex/contrib/minimalist/minimalist-doc.tex
index dc178f15b3..28577a6bcc 100644
--- a/macros/latex/contrib/minimalist/minimalist-doc.tex
+++ b/macros/latex/contrib/minimalist/minimalist-doc.tex
@@ -98,9 +98,9 @@
\title{\minimalist{}, write your articles or books in a simple and clear way}
\author{Jinwen XU}
-\thanks{Corresponding to: \texttt{\minimalist{} 2021/11/09}}
+\thanks{Corresponding to: \texttt{\minimalist{} 2021/12/16}}
\email{\href{mailto:ProjLib@outlook.com}{ProjLib@outlook.com}}
-\date{November 2021, in Paris}
+\date{December 2021, in Paris}
\maketitle
diff --git a/macros/latex/contrib/minimalist/minimalist.sty b/macros/latex/contrib/minimalist/minimalist.sty
index 418ffb55e4..85a64926d6 100644
--- a/macros/latex/contrib/minimalist/minimalist.sty
+++ b/macros/latex/contrib/minimalist/minimalist.sty
@@ -17,7 +17,7 @@
%%
\NeedsTeXFormat{LaTeX2e}[2020-10-01]
\ProvidesPackage{minimalist}
- [2021/11/09 A simple and clear style for articles and books]
+ [2021/12/16 A simple and clear style for articles and books]
\RequirePackage{kvoptions}
\RequirePackage{etoolbox}
\SetupKeyvalOptions{%
@@ -198,40 +198,10 @@
%% Line numbers
%%================================
\PassOptionsToPackage{pagewise,mathlines}{lineno}
-\RequirePackage{lineno}
+\RequirePackage{linenoamsmath}
\renewcommand\linenumberfont{\ttfamily\color{maintext!7!paper}\footnotesize}
\setlength\linenumbersep{1em}
-\RequirePackage{mathtools}
-
-\ifdefined\linenomathpatch\else
-\newcommand*\linenomathpatch[1]{%
- \cspreto{#1}{\linenomath}%
- \cspreto{#1*}{\linenomath}%
- \csappto{end#1}{\endlinenomath}%
- \csappto{end#1*}{\endlinenomath}%
-}
-\newcommand*\linenomathpatchAMS[1]{%
- \cspreto{#1}{\linenomathAMS}%
- \cspreto{#1*}{\linenomathAMS}%
- \csappto{end#1}{\endlinenomath}%
- \csappto{end#1*}{\endlinenomath}%
-}
-\expandafter\ifx\linenomath\linenomathWithnumbers
- \let\linenomathAMS\linenomathWithnumbers
- \patchcmd\linenomathAMS{\advance\postdisplaypenalty\linenopenalty}{}{}{}
-\else
- \let\linenomathAMS\linenomathNonumbers
-\fi
-
-\linenomathpatch{equation}
-\linenomathpatchAMS{gather}
-\linenomathpatchAMS{multline}
-\linenomathpatchAMS{align}
-\linenomathpatchAMS{alignat}
-\linenomathpatchAMS{flalign}
-\fi
-
\newif\ifLNturnsON
\def\LocallyStopLineNumbers{\LNturnsONfalse%
\ifLineNumbers\LNturnsONtrue\fi\nolinenumbers}
@@ -490,7 +460,7 @@
ref = \arabic{enumi}.\emph{\roman{enumii}}.\emph{\alph*}$)$}
\setlist[description]{font=\normalfont\conditionalbfseries}
\if@minimalist@classical
-\newcommand\desculine{\bgroup\markoverwith{\color{maintext!27!paper}%
+\newcommand\desculine{\colorlet{currentcolor}{.}\bgroup\markoverwith{\color{currentcolor!50!paper}%
\rule[-.45ex]{2pt}{.75pt}}\ULon}
\renewcommand{\descriptionlabel}[1]{%
\hspace{\labelsep}\normalfont\desculine{#1}%
@@ -498,10 +468,10 @@
\fi
\setlist[itemize]{leftmargin=*}
-\gappto{\PJLlang@langconfig@common}{\setlist[itemize,1]{label=\textcolor{maintext!25}{$\bullet$}}}
-\gappto{\PJLlang@langconfig@FR}{\setlist[itemize,1]{label=\textcolor{maintext!50}{---}}}
-\setlist[itemize,2]{label=\textcolor{maintext!27}{--}}
-\setlist[itemize,3]{label=\textcolor{maintext!27}{\texttt{*}}}
+\gappto{\PJLlang@langconfig@common}{\setlist[itemize,1]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{$\bullet$}}}
+\gappto{\PJLlang@langconfig@FR}{\setlist[itemize,1]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!50!paper}{---}}}
+\setlist[itemize,2]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{--}}
+\setlist[itemize,3]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{\texttt{*}}}
%%================================
%% Blank page
@@ -525,6 +495,7 @@
%%================================
%% Theorems
%%================================
+\RequirePackage{mathtools}
\RequirePackage{amsthm}
\if@minimalist@classical
\def\simpleqedsymbol{%
diff --git a/macros/latex/contrib/minimalist/minimart.cls b/macros/latex/contrib/minimalist/minimart.cls
index f3193c183b..e671b25d65 100644
--- a/macros/latex/contrib/minimalist/minimart.cls
+++ b/macros/latex/contrib/minimalist/minimart.cls
@@ -17,7 +17,7 @@
%%
\NeedsTeXFormat{LaTeX2e}[2020-10-01]
\ProvidesClass{minimart}
- [2021/11/09 A simple and clear article style]
+ [2021/12/16 A simple and clear article style]
\def\minimclass@baseclass{article}
\RequirePackage{kvoptions}
\RequirePackage{etoolbox}
@@ -213,10 +213,6 @@
\PassOptionsToPackage{verbose=silent}{microtype}
\RequirePackage{microtype}
-\AtEndPreamble{\AtBeginDocument{\microtypesetup{deactivate}{\scshape}\microtypesetup{reactivate}}}
-\AtEndPreamble{\AtBeginDocument{\microtypesetup{deactivate}{\bfseries\scshape}\microtypesetup{reactivate}}}
-\AtEndPreamble{\AtBeginDocument{\microtypesetup{deactivate}{\sffamily\scshape}\microtypesetup{reactivate}}}
-\AtEndPreamble{\AtBeginDocument{\microtypesetup{deactivate}{\ttfamily\scshape}\microtypesetup{reactivate}}}
\PassOptionsToPackage{all}{nowidow}
\RequirePackage{nowidow}
\RequirePackage{embrac}
diff --git a/macros/latex/contrib/minimalist/minimbook.cls b/macros/latex/contrib/minimalist/minimbook.cls
index d67e657c15..384451f8f1 100644
--- a/macros/latex/contrib/minimalist/minimbook.cls
+++ b/macros/latex/contrib/minimalist/minimbook.cls
@@ -17,7 +17,7 @@
%%
\NeedsTeXFormat{LaTeX2e}[2020-10-01]
\ProvidesClass{minimbook}
- [2021/11/09 A simple and clear book style]
+ [2021/12/16 A simple and clear book style]
\def\minimclass@baseclass{book}
\RequirePackage{kvoptions}
\RequirePackage{etoolbox}
@@ -213,10 +213,6 @@
\PassOptionsToPackage{verbose=silent}{microtype}
\RequirePackage{microtype}
-\AtEndPreamble{\AtBeginDocument{\microtypesetup{deactivate}{\scshape}\microtypesetup{reactivate}}}
-\AtEndPreamble{\AtBeginDocument{\microtypesetup{deactivate}{\bfseries\scshape}\microtypesetup{reactivate}}}
-\AtEndPreamble{\AtBeginDocument{\microtypesetup{deactivate}{\sffamily\scshape}\microtypesetup{reactivate}}}
-\AtEndPreamble{\AtBeginDocument{\microtypesetup{deactivate}{\ttfamily\scshape}\microtypesetup{reactivate}}}
\PassOptionsToPackage{all}{nowidow}
\RequirePackage{nowidow}
\RequirePackage{embrac}
diff --git a/macros/latex/contrib/moderncv/CHANGELOG b/macros/latex/contrib/moderncv/CHANGELOG
index 5509461d13..325e2b7f35 100644
--- a/macros/latex/contrib/moderncv/CHANGELOG
+++ b/macros/latex/contrib/moderncv/CHANGELOG
@@ -1,3 +1,8 @@
+version 2.3.0 (2021-12-16)
+- Remove font loading from class (#87)
+- Add Matrix and Signal icon (#84)
+- Improved symbol loading (#84)
+
version: 2.2.0 (2021-07-28)
- Remove dot in cventry when using moderncvbodyi.
- Remove http baseurl in hyperref.
diff --git a/macros/latex/contrib/moderncv/README.md b/macros/latex/contrib/moderncv/README.md
index d87ba73ad0..53adf48fad 100644
--- a/macros/latex/contrib/moderncv/README.md
+++ b/macros/latex/contrib/moderncv/README.md
@@ -8,6 +8,8 @@ Most commands are defined in such a way that arguments are optional.
Until a decent manual is written, one can always look in the `template.tex` file for an example. It can be compiled to pdf via `latexmk -pdf ./template.tex`.
+If using [`academicons`](https://ctan.org/tex-archive/fonts/academicons) in the template, you need to use a Xe(La)TeX or Lua(La)TeX engine for them to render. Otherwise an alternative will be used automatically.
+
## Licence
moderncv is licensed under the [LPPL-1.3c](https://spdx.org/licenses/LPPL-1.3c.html).
diff --git a/macros/latex/contrib/moderncv/moderncv.cls b/macros/latex/contrib/moderncv/moderncv.cls
index b14fc53e24..2c1f9a0ef0 100644
--- a/macros/latex/contrib/moderncv/moderncv.cls
+++ b/macros/latex/contrib/moderncv/moderncv.cls
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{moderncv}[2021-07-28 v2.2.0 modern curriculum vitae and letter document class]
+\ProvidesClass{moderncv}[2021-12-16 v2.3.0 modern curriculum vitae and letter document class]
%-------------------------------------------------------------------------------
@@ -83,8 +83,8 @@
% color
\RequirePackage[table]{xcolor}
-% font loading
-\RequirePackage{ifxetex,ifluatex}
+% tex compiler checking for symbol loading
+\RequirePackage{iftex}
\newif\ifxetexorluatex
\ifxetex
\xetexorluatextrue
@@ -96,21 +96,6 @@
\fi
\fi
-% for luatex and xetex, do not use inputenc and fontenc
-% see https://tex.stackexchange.com/a/496643
-\ifxetexorluatex
- \RequirePackage{fontspec}
- \defaultfontfeatures{Ligatures=TeX}
- \RequirePackage{unicode-math}
- \setmainfont{Latin Modern Roman}
- \setsansfont{Latin Modern Sans}
- \setmonofont{Latin Modern Mono}
- \setmathfont{Latin Modern Math}
-\else
- \RequirePackage[utf8]{inputenc}
- \RequirePackage[T1]{fontenc}
- \RequirePackage{lmodern}
-\fi
% hyper links (hyperref is loaded at the end of the preamble to pass options required by loaded packages such as CJK)
\newcommand*\pdfpagemode{UseNone}% do not show thumbnails or bookmarks on opening (on supporting browsers); set \pdfpagemode to "UseOutlines" to show bookmarks
diff --git a/macros/latex/contrib/moderncv/moderncvbodyi.sty b/macros/latex/contrib/moderncv/moderncvbodyi.sty
index d45364133a..c83b7da6b7 100644
--- a/macros/latex/contrib/moderncv/moderncvbodyi.sty
+++ b/macros/latex/contrib/moderncv/moderncvbodyi.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvbodyi}[2021-07-28 v2.2.0 modern curriculum vitae and letter body variant: 1]
+\ProvidesPackage{moderncvbodyi}[2021-12-16 v2.3.0 modern curriculum vitae and letter body variant: 1]
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvbodyiii.sty b/macros/latex/contrib/moderncv/moderncvbodyiii.sty
index 53a61a716f..4f542b779e 100644
--- a/macros/latex/contrib/moderncv/moderncvbodyiii.sty
+++ b/macros/latex/contrib/moderncv/moderncvbodyiii.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvbodyiii}[2021-07-28 v2.2.0 modern curriculum vitae and letter body variant: 3]
+\ProvidesPackage{moderncvbodyiii}[2021-12-16 v2.3.0 modern curriculum vitae and letter body variant: 3]
% rules type options: "fullrules", "shortrules", "mixedrules" (default) or "norules"
\@initializeif{\if@fullrules}\@fullrulesfalse
diff --git a/macros/latex/contrib/moderncv/moderncvbodyiv.sty b/macros/latex/contrib/moderncv/moderncvbodyiv.sty
index c00896d6a5..b3c03a158d 100644
--- a/macros/latex/contrib/moderncv/moderncvbodyiv.sty
+++ b/macros/latex/contrib/moderncv/moderncvbodyiv.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvbodyiv}[2021-07-28 v2.2.0 modern curriculum vitae and letter body variant: 4]
+\ProvidesPackage{moderncvbodyiv}[2021-12-16 v2.3.0 modern curriculum vitae and letter body variant: 4]
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvbodyv.sty b/macros/latex/contrib/moderncv/moderncvbodyv.sty
index ffeaf8f1d9..fd6f760299 100644
--- a/macros/latex/contrib/moderncv/moderncvbodyv.sty
+++ b/macros/latex/contrib/moderncv/moderncvbodyv.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvbodyv}[2021-07-28 v2.2.0 modern curriculum vitae and letter body variant: 5]
+\ProvidesPackage{moderncvbodyv}[2021-12-16 v2.3.0 modern curriculum vitae and letter body variant: 5]
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvcollection.sty b/macros/latex/contrib/moderncv/moderncvcollection.sty
index aec3beae81..3c5ee25358 100644
--- a/macros/latex/contrib/moderncv/moderncvcollection.sty
+++ b/macros/latex/contrib/moderncv/moderncvcollection.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvcollection}[2021-07-28 v2.2.0 moderncv collections]
+\ProvidesPackage{moderncvcollection}[2021-12-16 v2.3.0 moderncv collections]
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvcolorblack.sty b/macros/latex/contrib/moderncv/moderncvcolorblack.sty
index 96bf928896..d594d184af 100644
--- a/macros/latex/contrib/moderncv/moderncvcolorblack.sty
+++ b/macros/latex/contrib/moderncv/moderncvcolorblack.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvcolorblack}[2021-07-28 v2.2.0 modern curriculum vitae and letter color scheme: black]
+\ProvidesPackage{moderncvcolorblack}[2021-12-16 v2.3.0 modern curriculum vitae and letter color scheme: black]
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvcolorblue.sty b/macros/latex/contrib/moderncv/moderncvcolorblue.sty
index 09d1770ffa..35229cff33 100644
--- a/macros/latex/contrib/moderncv/moderncvcolorblue.sty
+++ b/macros/latex/contrib/moderncv/moderncvcolorblue.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvcolorblue}[2021-07-28 v2.2.0 modern curriculum vitae and letter color scheme: blue]
+\ProvidesPackage{moderncvcolorblue}[2021-12-16 v2.3.0 modern curriculum vitae and letter color scheme: blue]
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvcolorburgundy.sty b/macros/latex/contrib/moderncv/moderncvcolorburgundy.sty
index a27690ea1f..454658b1c5 100644
--- a/macros/latex/contrib/moderncv/moderncvcolorburgundy.sty
+++ b/macros/latex/contrib/moderncv/moderncvcolorburgundy.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvcolorburgundy}[2021-07-28 v2.2.0 modern curriculum vitae and letter color scheme: burgundy]
+\ProvidesPackage{moderncvcolorburgundy}[2021-12-16 v2.3.0 modern curriculum vitae and letter color scheme: burgundy]
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvcolorgreen.sty b/macros/latex/contrib/moderncv/moderncvcolorgreen.sty
index 0f4de1fabc..36bdf64a09 100644
--- a/macros/latex/contrib/moderncv/moderncvcolorgreen.sty
+++ b/macros/latex/contrib/moderncv/moderncvcolorgreen.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvcolorgreen}[2021-07-28 v2.2.0 modern curriculum vitae and letter color scheme: green]
+\ProvidesPackage{moderncvcolorgreen}[2021-12-16 v2.3.0 modern curriculum vitae and letter color scheme: green]
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvcolorgrey.sty b/macros/latex/contrib/moderncv/moderncvcolorgrey.sty
index 46e9bed487..0a9a80528c 100644
--- a/macros/latex/contrib/moderncv/moderncvcolorgrey.sty
+++ b/macros/latex/contrib/moderncv/moderncvcolorgrey.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvcolorgrey}[2021-07-28 v2.2.0 modern curriculum vitae and letter color scheme: grey]
+\ProvidesPackage{moderncvcolorgrey}[2021-12-16 v2.3.0 modern curriculum vitae and letter color scheme: grey]
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvcolororange.sty b/macros/latex/contrib/moderncv/moderncvcolororange.sty
index 6a63e65eb8..5d4cae58cb 100644
--- a/macros/latex/contrib/moderncv/moderncvcolororange.sty
+++ b/macros/latex/contrib/moderncv/moderncvcolororange.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvcolororange}[2021-07-28 v2.2.0 modern curriculum vitae and letter color scheme: orange]
+\ProvidesPackage{moderncvcolororange}[2021-12-16 v2.3.0 modern curriculum vitae and letter color scheme: orange]
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvcolorpurple.sty b/macros/latex/contrib/moderncv/moderncvcolorpurple.sty
index c1c44e195a..f67530ed08 100644
--- a/macros/latex/contrib/moderncv/moderncvcolorpurple.sty
+++ b/macros/latex/contrib/moderncv/moderncvcolorpurple.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvcolorpurple}[2021-07-28 v2.2.0 modern curriculum vitae and letter color scheme: purple]
+\ProvidesPackage{moderncvcolorpurple}[2021-12-16 v2.3.0 modern curriculum vitae and letter color scheme: purple]
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvcolorred.sty b/macros/latex/contrib/moderncv/moderncvcolorred.sty
index e9a689bb1c..6a6445e66e 100644
--- a/macros/latex/contrib/moderncv/moderncvcolorred.sty
+++ b/macros/latex/contrib/moderncv/moderncvcolorred.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvcolorred}[2021-07-28 v2.2.0 modern curriculum vitae and letter color scheme: red]
+\ProvidesPackage{moderncvcolorred}[2021-12-16 v2.3.0 modern curriculum vitae and letter color scheme: red]
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvcompatibility.sty b/macros/latex/contrib/moderncv/moderncvcompatibility.sty
index e2a29aaadc..f9155f6245 100644
--- a/macros/latex/contrib/moderncv/moderncvcompatibility.sty
+++ b/macros/latex/contrib/moderncv/moderncvcompatibility.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvcompatibility}[2021-07-28 v2.2.0 modern curriculum vitae and letter compatibility patches]
+\ProvidesPackage{moderncvcompatibility}[2021-12-16 v2.3.0 modern curriculum vitae and letter compatibility patches]
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvdebugtools.sty b/macros/latex/contrib/moderncv/moderncvdebugtools.sty
index a19a1928ac..577406130e 100644
--- a/macros/latex/contrib/moderncv/moderncvdebugtools.sty
+++ b/macros/latex/contrib/moderncv/moderncvdebugtools.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvdebugtools}[2021-07-28 v2.2.0 modern curriculum vitae and letter debug tools]
+\ProvidesPackage{moderncvdebugtools}[2021-12-16 v2.3.0 modern curriculum vitae and letter debug tools]
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvfooti.sty b/macros/latex/contrib/moderncv/moderncvfooti.sty
index b2e8657d99..45ca74e66b 100644
--- a/macros/latex/contrib/moderncv/moderncvfooti.sty
+++ b/macros/latex/contrib/moderncv/moderncvfooti.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvfooti}[2021-07-28 v2.2.0 modern curriculum vitae and letter footer variant: 1]
+\ProvidesPackage{moderncvfooti}[2021-12-16 v2.3.0 modern curriculum vitae and letter footer variant: 1]
%-------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/moderncv/moderncvheadi.sty b/macros/latex/contrib/moderncv/moderncvheadi.sty
index c7e4af54cb..86a0e54c67 100644
--- a/macros/latex/contrib/moderncv/moderncvheadi.sty
+++ b/macros/latex/contrib/moderncv/moderncvheadi.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvheadi}[2021-07-28 v2.2.0 modern curriculum vitae and letter header variant: 1]
+\ProvidesPackage{moderncvheadi}[2021-12-16 v2.3.0 modern curriculum vitae and letter header variant: 1]
% details options: "details" (default) or "nodetails"
\@initializeif{\if@details}\@detailsfalse
diff --git a/macros/latex/contrib/moderncv/moderncvheadii.sty b/macros/latex/contrib/moderncv/moderncvheadii.sty
index dccd2fc97b..1444b39c1f 100644
--- a/macros/latex/contrib/moderncv/moderncvheadii.sty
+++ b/macros/latex/contrib/moderncv/moderncvheadii.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvheadii}[2021-07-28 v2.2.0 modern curriculum vitae and letter header variant: 2]
+\ProvidesPackage{moderncvheadii}[2021-12-16 v2.3.0 modern curriculum vitae and letter header variant: 2]
% details options: "details" or "nodetails" (default)
\@initializeif{\if@details}\@detailsfalse
diff --git a/macros/latex/contrib/moderncv/moderncvheadiii.sty b/macros/latex/contrib/moderncv/moderncvheadiii.sty
index c13f1bfce4..0a022de802 100644
--- a/macros/latex/contrib/moderncv/moderncvheadiii.sty
+++ b/macros/latex/contrib/moderncv/moderncvheadiii.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvheadiii}[2021-07-28 v2.2.0 modern curriculum vitae and letter header variant: 3]
+\ProvidesPackage{moderncvheadiii}[2021-12-16 v2.3.0 modern curriculum vitae and letter header variant: 3]
% details options: "details" (default) or "nodetails"
\@initializeif{\if@details}\@detailsfalse
diff --git a/macros/latex/contrib/moderncv/moderncvheadiv.sty b/macros/latex/contrib/moderncv/moderncvheadiv.sty
index d8cf4f5b26..f5a534e25a 100644
--- a/macros/latex/contrib/moderncv/moderncvheadiv.sty
+++ b/macros/latex/contrib/moderncv/moderncvheadiv.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvheadiv}[2021-07-28 v2.2.0 modern curriculum vitae and letter header variant: 4]
+\ProvidesPackage{moderncvheadiv}[2021-12-16 v2.3.0 modern curriculum vitae and letter header variant: 4]
% details options: "details" (default) or "nodetails"
\@initializeif{\if@details}\@detailsfalse
diff --git a/macros/latex/contrib/moderncv/moderncvheadv.sty b/macros/latex/contrib/moderncv/moderncvheadv.sty
index 1bed0962c9..1a5d9391db 100644
--- a/macros/latex/contrib/moderncv/moderncvheadv.sty
+++ b/macros/latex/contrib/moderncv/moderncvheadv.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvheadv}[2021-07-28 v2.2.0 modern curriculum vitae and letter header variant: 5]
+\ProvidesPackage{moderncvheadv}[2021-12-16 v2.3.0 modern curriculum vitae and letter header variant: 5]
% details options: "details" (default) or "nodetails"
\@initializeif{\if@details}\@detailsfalse
diff --git a/macros/latex/contrib/moderncv/moderncvheadvi.sty b/macros/latex/contrib/moderncv/moderncvheadvi.sty
index 0734552487..1169e21dc5 100644
--- a/macros/latex/contrib/moderncv/moderncvheadvi.sty
+++ b/macros/latex/contrib/moderncv/moderncvheadvi.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvheadvi}[2021-07-28 v2.2.0 modern curriculum vitae and letter header: 6]
+\ProvidesPackage{moderncvheadvi}[2021-12-16 v2.3.0 modern curriculum vitae and letter header: 6]
% details options: "details" (default) or "nodetails"
\@initializeif{\if@details}\@detailsfalse
diff --git a/macros/latex/contrib/moderncv/moderncviconsacademic.sty b/macros/latex/contrib/moderncv/moderncviconsacademic.sty
new file mode 100644
index 0000000000..280eb9b70d
--- /dev/null
+++ b/macros/latex/contrib/moderncv/moderncviconsacademic.sty
@@ -0,0 +1,54 @@
+%% start of file `moderncviconsacademic.sty'.
+%% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License version 1.3c,
+% available at http://www.latex-project.org/lppl/.
+
+
+%-------------------------------------------------------------------------------
+% identification
+%-------------------------------------------------------------------------------
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{moderncviconsacademic}[2021-12-16 v2.3.0 modern curriculum vitae icons: academicons]
+
+
+%-------------------------------------------------------------------------------
+% required packages
+%-------------------------------------------------------------------------------
+% Package for academic icons
+\RequirePackage{academicons}
+
+
+%-------------------------------------------------------------------------------
+% all symbols described in moderncv.cls
+%-------------------------------------------------------------------------------
+%\newcommand*{\listitemsymbol} {\labelitemi~}
+%\newcommand*{\addresssymbol} {}
+%\newcommand*{\bornsymbol} {}
+%\newcommand*{\mobilephonesymbol} {}
+%\newcommand*{\fixedphonesymbol} {}
+%\newcommand*{\faxphonesymbol} {}
+%\newcommand*{\emailsymbol} {}
+%\newcommand*{\homepagesymbol} {}
+%\newcommand*{\linkedinsocialsymbol} {}
+%\newcommand*{\xingsocialsymbol} {}
+%\newcommand*{\twittersocialsymbol} {}
+%\newcommand*{\githubsocialsymbol} {}
+%\newcommand*{\gitlabsocialsymbol} {}
+%\newcommand*{\stackoverflowsocialsymbol}{}
+%\newcommand*{\bitbucketsocialsymbol} {}
+%\newcommand*{\skypesocialsymbol} {}
+\renewcommand*{\orcidsocialsymbol} {{\small\aiOrcid}~}
+\renewcommand*{\researchgatesocialsymbol} {{\small\aiResearchGateSquare}~} % alternative: \aiResearchGate
+\renewcommand*{\researcheridsocialsymbol} {{\small\aiResearcherIDSquare}~} % alternative: \aiResearcherID
+\renewcommand*{\googlescholarsocialsymbol}{{\small\aiGoogleScholar}~}
+%\newcommand*{\telegramsocialsymbol} {}
+%\newcommand*{\whatsappsocialsymbol} {}
+%\newcommand*{\matrixsocialsymbol} {}
+%\newcommand*{\signalsocialsymbol} {}
+
+
+\endinput
+
+%% end of file `moderncviconsacademic.sty'.
diff --git a/macros/latex/contrib/moderncv/moderncviconsawesome.sty b/macros/latex/contrib/moderncv/moderncviconsawesome.sty
index 4c833d32d6..bef20b362c 100644
--- a/macros/latex/contrib/moderncv/moderncviconsawesome.sty
+++ b/macros/latex/contrib/moderncv/moderncviconsawesome.sty
@@ -10,50 +10,46 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncviconsawesome}[2021-07-28 v2.2.0 modern curriculum vitae and letter icons: awesome]
+\ProvidesPackage{moderncviconsawesome}[2021-12-16 v2.3.0 modern curriculum vitae icons: awesome]
%-------------------------------------------------------------------------------
% required packages
%-------------------------------------------------------------------------------
% Font Awesome font
\RequirePackage{fontawesome5}
-% Package for academic icons
-\RequirePackage{academicons}
-
%-------------------------------------------------------------------------------
-% symbols definition
+% all symbols described in moderncv.cls
%-------------------------------------------------------------------------------
-\renewcommand*{\labelitemi} {\strut\textcolor{color1}{\tiny\faCircle}}
+\renewcommand*{\labelitemi} {\strut\textcolor{color1}{\tiny\faCircle[regular]}} % alternative: \faCircle (solid style)
%\renewcommand*{\labelitemii} {\strut\textcolor{color1}{\large\bfseries-}} % no change from default in moderncv.cls
%\renewcommand*{\labelitemiii} {\strut\textcolor{color1}{\rmfamily\textperiodcentered}}% no change from default in moderncv.cls
%\renewcommand*{\labelitemiv} {\labelitemiii} % no change from default in moderncv.cls
-\renewcommand*{\addresssymbol} {}
-\renewcommand*{\mobilephonesymbol} {{\small\faMobile}~}
-\renewcommand*{\fixedphonesymbol} {{\small\faPhone}~}
+%\renewcommand*{\addresssymbol} {}
+\renewcommand*{\mobilephonesymbol} {{\small\faMobile*}~} % alternative: \faMobile (solid style)
+\renewcommand*{\fixedphonesymbol} {{\small\faPhone*}~} % alternative: \faPhone (reversed)
\renewcommand*{\faxphonesymbol} {{\small\faFax}~} % alternative: \faPrint
-\renewcommand*{\emailsymbol} {{\small\faEnvelope}~} % alternative: \faInbox
-\renewcommand*{\homepagesymbol} {{\small\faGlobe}~} % alternative: \faHome
-\renewcommand*{\linkedinsocialsymbol} {{\small\faLinkedin}~} % alternative: \faLinkedinSquare
+\renewcommand*{\emailsymbol} {{\small\faEnvelope[regular]}~} % alternative: \faInbox, \faEnvelope (solid style)
+\renewcommand*{\homepagesymbol} {{\small\faGlobeAmericas}~} % alternative: \faHome, \faGlobe, \faGlobeEurope, \faGlobeAfrica, \faGlobeAsia
+\renewcommand*{\linkedinsocialsymbol} {{\small\faLinkedinIn}~} % alternative: \faLinkedin
\renewcommand*{\xingsocialsymbol} {{\small\faXing}~} % alternative: \faXingSquare
\renewcommand*{\twittersocialsymbol} {{\small\faTwitter}~} % alternative: \faTwitterSquare
-\renewcommand*{\githubsocialsymbol} {{\small\faGithub}~} % alternative: \faGithubSquare, \faGithubSquare
+\renewcommand*{\githubsocialsymbol} {{\small\faGithub}~} % alternative: \faGithubSquare, \faGithub*
\renewcommand*{\gitlabsocialsymbol} {{\small\faGitlab}~}
\renewcommand*{\stackoverflowsocialsymbol}{{\small\faStackOverflow}~}
\renewcommand*{\bitbucketsocialsymbol} {{\small\faBitbucket}~}
\renewcommand*{\skypesocialsymbol} {{\small\faSkype}~}
-\renewcommand*{\orcidsocialsymbol} {{\small\aiOrcid}~}
-\renewcommand*{\researchgatesocialsymbol} {{\small\aiResearchGate}~}
-\renewcommand*{\researcheridsocialsymbol} {{\small\aiResearcherID}~} % alternative: \aiResearcherIDSquare
-\renewcommand*{\telegramsocialsymbol} {{\small\faTelegram}~}
-\renewcommand*{\googlescholarsocialsymbol}{{\small\aiGoogleScholar}~}
+\renewcommand*{\orcidsocialsymbol} {{\small\faOrcid}~}
+\renewcommand*{\researchgatesocialsymbol} {{\small\faResearchgate}~}
+%\renewcommand*{\researcheridsocialsymbol} {}
+%\renewcommand*{\googlescholarsocialsymbol}{}
\renewcommand*{\telegramsocialsymbol} {{\small\faTelegram}~}
\renewcommand*{\whatsappsocialsymbol} {{\small\faWhatsapp}~}
-\renewcommand*{\signalsocialsymbol} {}
-\renewcommand*{\matrixsocialsymbol} {}
-\renewcommand*{\bornsymbol} {{\small\faAsterisk}~}
+%\renewcommand*{\signalsocialsymbol} {}
+%\renewcommand*{\matrixsocialsymbol} {}
+\renewcommand*{\bornsymbol} {{\small\faAsterisk}~} % alternative: \faBabyCarriage
\endinput
diff --git a/macros/latex/contrib/moderncv/moderncviconsletters.sty b/macros/latex/contrib/moderncv/moderncviconsletters.sty
index 20c74f655c..edce723d15 100644
--- a/macros/latex/contrib/moderncv/moderncviconsletters.sty
+++ b/macros/latex/contrib/moderncv/moderncviconsletters.sty
@@ -10,25 +10,13 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncviconsletters}[2021-07-28 v2.2.0 modern curriculum vitae and letter icons: letters]
-
-
-%-------------------------------------------------------------------------------
-% required packages
-%-------------------------------------------------------------------------------
-% MarVoSym font
-%\RequirePackage{marvosym}
-\newcommand*{\marvosymbol}[1]{}
-%\ifxetexorluatex
-% \renewcommand*{\marvosymbol}[1]{{\fontspec{MarVoSym}\char#1}}
-%\else
- \renewcommand*{\marvosymbol}[1]{{\fontfamily{mvs}\fontencoding{U}\fontseries{m}\fontshape{n}\selectfont\char#1}}
-%\fi
-
+\ProvidesPackage{moderncviconsletters}[2021-12-16 v2.3.0 modern curriculum vitae icons: letter]
%-------------------------------------------------------------------------------
% symbols definition
%-------------------------------------------------------------------------------
+\newcommand*{\marvosymbol}[1]{{\fontfamily{mvs}\fontencoding{U}\fontseries{m}\fontshape{n}\selectfont\char#1}}
+
\renewcommand*{\labelitemi} {\strut\textcolor{color1}{\marvosymbol{123}}} % equivalent to \Neutral from marvosym package; alternative: \fontencoding{U}\fontfamily{ding}\selectfont\tiny\symbol{'102}
%\renewcommand*{\labelitemii} {\strut\textcolor{color1}{\large\bfseries-}} % no change from default in moderncv.cls
%\renewcommand*{\labelitemiii} {\strut\textcolor{color1}{\rmfamily\textperiodcentered}}% no change from default in moderncv.cls
diff --git a/macros/latex/contrib/moderncv/moderncviconsmarvosym.sty b/macros/latex/contrib/moderncv/moderncviconsmarvosym.sty
index 34962fab46..ea2dddfa70 100644
--- a/macros/latex/contrib/moderncv/moderncviconsmarvosym.sty
+++ b/macros/latex/contrib/moderncv/moderncviconsmarvosym.sty
@@ -10,265 +10,20 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncviconsmarvosym}[2021-07-28 v2.2.0 modern curriculum vitae and letter icons: marvosym]
-
+\ProvidesPackage{moderncviconsmarvosym}[2021-12-16 v2.3.0 modern curriculum vitae icons: marvosym]
%-------------------------------------------------------------------------------
-% required packages
+% all symbols described in moderncv.cls
%-------------------------------------------------------------------------------
-% MarVoSym font
-%\RequirePackage{marvosym}
-\newcommand*{\marvosymbol}[1]{}
-%\ifxetexorluatex
-% \renewcommand*{\marvosymbol}[1]{{\fontspec{MarVoSym}\char#1}}
-%\else
- \renewcommand*{\marvosymbol}[1]{{\fontfamily{mvs}\fontencoding{U}\fontseries{m}\fontshape{n}\selectfont\char#1}}
-%\fi
-
-% tikz drawings
-\RequirePackage{tikz}
-
+\newcommand*{\marvosymbol}[1]{{\fontfamily{mvs}\fontencoding{U}\fontseries{m}\fontshape{n}\selectfont\char#1}}
-%-------------------------------------------------------------------------------
-% symbols definition
-%-------------------------------------------------------------------------------
\renewcommand*{\labelitemi} {\strut\textcolor{color1}{\marvosymbol{123}}} % equivalent to \Neutral from marvosym package; alternative: \fontencoding{U}\fontfamily{ding}\selectfont\tiny\symbol{'102}
-%\renewcommand*{\labelitemii} {\strut\textcolor{color1}{\large\bfseries-}} % no change from default in moderncv.cls
-%\renewcommand*{\labelitemiii} {\strut\textcolor{color1}{\rmfamily\textperiodcentered}}% no change from default in moderncv.cls
-%\renewcommand*{\labelitemiv} {\labelitemiii} % no change from default in moderncv.cls
-\renewcommand*{\addresssymbol} {}
\renewcommand*{\mobilephonesymbol} {\marvosymbol{72}~}
\renewcommand*{\fixedphonesymbol} {\marvosymbol{84}~}
\renewcommand*{\faxphonesymbol} {\marvosymbol{117}~}
\renewcommand*{\emailsymbol} {\marvosymbol{66}~}
\renewcommand*{\homepagesymbol} {{\Large\marvosymbol{205}}~}
-\renewcommand*{\linkedinsocialsymbol}{%
- \protect\raisebox{-0.165em}{%
- \protect\begin{tikzpicture}[x=0.08em, y=0.08em, xscale=0.25, yscale=-0.25, inner sep=0pt, outer sep=0pt]
- \protect\begin{scope}[cm={{0.60,0.0,0.0,0.60,(346.39,123.07)}}]
- \protect\path[fill=color2]
- (381,202) -- (434,202) .. controls (439,202) and (442,205) ..
- (442,210) -- (442,264) .. controls (442,268) and (439,272) ..
- (434,272) -- (381,272) .. controls (376,272) and (372,268) ..
- (372,264) -- (372,210) .. controls (372,205) and (376,202) ..
- (381,202) -- cycle;
- \protect\begin{scope}[xscale=0.98, yscale=1.02, fill=white]
- \protect\path[fill=white]
- (403,253) -- (403,224) -- (394,224) -- (394,253) --
- cycle(398,211) .. controls (397,211) and (395,212) ..
- (395,213) .. controls (394,213) and (393,215) ..
- (393,216) .. controls (393,217) and (394,218) ..
- (395,219) .. controls (395,220) and (397,220) ..
- (398,220) .. controls (400,220) and (401,220) ..
- (402,219) .. controls (402,218) and (403,217) ..
- (403,216) .. controls (403,215) and (402,213) ..
- (402,213) .. controls (401,212) and (400,211) ..
- (398,211) -- cycle;
- \protect\path[fill=white]
- (410,253) -- (419,253) --
- (419,236) .. controls (419,236) and (419,235) ..
- (419,235) .. controls (419,235) and (419,234) ..
- (419,234) .. controls (419,233) and (420,232) ..
- (421,232) .. controls (422,231) and (423,231) ..
- (424,231) .. controls (425,231) and (427,231) ..
- (427,232) .. controls (428,234) and (428,235) ..
- (428,237) -- (428,253) -- (437,253) --
- (437,236) .. controls (437,232) and (436,228) ..
- (434,226) .. controls (433,224) and (430,223) ..
- (427,223) .. controls (425,223) and (423,224) ..
- (421,225) .. controls (420,226) and (419,227) ..
- (418,228) -- (418,228) -- (417,224) --
- (410,224) .. controls (410,225) and (410,227) ..
- (410,228) .. controls (410,230) and (410,231) ..
- (410,233) -- cycle;
- \protect\end{scope}%
- \protect\end{scope}%
- \protect\end{tikzpicture}}%
- ~}
-\renewcommand*{\xingsocialsymbol}{}
-\renewcommand*{\twittersocialsymbol} {%
- \protect\raisebox{0em}{%
- \protect\begin{tikzpicture}[x=0.08em, y=0.08em, xscale=0.005, yscale=-0.005, inner sep=0pt, outer sep=0pt]
- \protect\path[fill=color2]
- (2000, 192) .. controls (1926, 225) and (1847, 247) ..
- (1764, 257) .. controls (1849, 206) and (1914, 126) ..
- (1945, 30) .. controls (1865, 77) and (1778, 111) ..
- (1684, 130) .. controls (1609, 50) and (1503, 0) ..
- (1385, 0) .. controls (1158, 0) and ( 974, 184) ..
- ( 974, 410) .. controls ( 974, 442) and ( 978, 474) ..
- ( 985, 504) .. controls ( 644, 487) and ( 342, 323) ..
- ( 139, 75) .. controls ( 104, 136) and ( 84, 206) ..
- ( 84, 281) .. controls ( 84, 424) and ( 156, 549) ..
- ( 266, 623) .. controls ( 199, 621) and ( 136, 602) ..
- ( 80, 572) .. controls ( 80, 573) and ( 80, 575) ..
- ( 80, 577) .. controls ( 80, 776) and ( 222, 941) ..
- ( 409, 979) .. controls ( 375, 988) and ( 339, 993) ..
- ( 301, 993) .. controls ( 275, 993) and ( 249, 991) ..
- ( 224, 986) .. controls ( 276,1149) and ( 428,1268) ..
- ( 607,1271) .. controls ( 467,1381) and ( 290,1447) ..
- ( 98,1447) .. controls ( 65,1447) and ( 32,1445) ..
- ( 0,1441) .. controls ( 182,1557) and ( 397,1625) ..
- ( 629,1625) .. controls (1384,1625) and (1796,1000) ..
- (1796, 458) .. controls (1796, 440) and (1796, 422) ..
- (1795, 405) .. controls (1875, 347) and (1945, 275) ..
- (2000, 192);
- \protect\end{tikzpicture}}%
- ~}
-\renewcommand*{\githubsocialsymbol} {%
- \protect\raisebox{-0.15em}{%
- \protect\begin{tikzpicture}[x=0.08em, y=0.08em, xscale=0.25, yscale=-0.25, inner sep=0pt, outer sep=0pt]
- \protect\begin{scope}[shift={(507,387)}]
- \protect\path[fill=color2]
- (117, 60) .. controls (117, 71) and (108, 81) ..
- ( 96, 81) .. controls ( 85, 81) and ( 75, 71) ..
- ( 75, 60) .. controls ( 75, 48) and ( 85, 39) ..
- ( 96, 39) .. controls (108, 39) and (117, 48) ..
- (117, 60) -- cycle;
- \protect\path[cm={{0.88,0.0,0.0,0.88,(11.10,6.89)}}, fill=white]
- (117, 60) .. controls (117, 71) and (108, 81) ..
- ( 96, 81) .. controls ( 85, 81) and ( 75, 71) ..
- ( 75, 60) .. controls ( 75, 48) and ( 85, 39) ..
- ( 96, 39) .. controls (108, 39) and (117, 48) ..
- (117, 60) -- cycle;
- \protect\path[fill=color2, nonzero rule]
- (103, 45) .. controls (103, 45) and (101, 46) ..
- (101, 47) -- (100, 47) --
- ( 99, 47) .. controls ( 99, 47) and ( 98, 47) ..
- ( 97, 47) .. controls ( 94, 47) and ( 93, 47) ..
- ( 92, 47) -- ( 92, 47) --
- ( 91, 47) .. controls ( 90, 46) and ( 88, 45) ..
- ( 88, 45) .. controls ( 88, 45) and ( 88, 45) ..
- ( 87, 45) .. controls ( 87, 45) and ( 87, 45) ..
- ( 87, 45) .. controls ( 86, 46) and ( 86, 48) ..
- ( 86, 49) -- ( 87, 50) --
- ( 86, 51) .. controls ( 85, 51) and ( 85, 52) ..
- ( 85, 53) .. controls ( 85, 54) and ( 85, 57) ..
- ( 85, 58) .. controls ( 85, 58) and ( 85, 58) ..
- ( 82, 59) .. controls ( 79, 59) and ( 77, 59) ..
- ( 77, 59) .. controls ( 77, 59) and ( 77, 59) ..
- ( 78, 59) .. controls ( 80, 59) and ( 83, 59) ..
- ( 85, 59) .. controls ( 85, 59) and ( 85, 59) ..
- ( 85, 59) .. controls ( 86, 59) and ( 86, 59) ..
- ( 86, 59) .. controls ( 86, 59) and ( 85, 59) ..
- ( 84, 59) .. controls ( 82, 60) and ( 80, 60) ..
- ( 79, 60) .. controls ( 78, 61) and ( 77, 61) ..
- ( 77, 61) .. controls ( 77, 61) and ( 78, 61) ..
- ( 79, 61) .. controls ( 81, 60) and ( 83, 60) ..
- ( 85, 60) .. controls ( 86, 60) and ( 86, 60) ..
- ( 86, 60) .. controls ( 86, 60) and ( 87, 61) ..
- ( 88, 62) .. controls ( 89, 63) and ( 90, 63) ..
- ( 92, 63) .. controls ( 92, 63) and ( 93, 64) ..
- ( 93, 64) .. controls ( 93, 64) and ( 93, 64) ..
- ( 93, 64) .. controls ( 92, 64) and ( 92, 65) ..
- ( 92, 65) .. controls ( 92, 66) and ( 90, 66) ..
- ( 89, 66) .. controls ( 88, 66) and ( 88, 66) ..
- ( 87, 65) .. controls ( 87, 64) and ( 86, 63) ..
- ( 86, 63) .. controls ( 85, 63) and ( 84, 63) ..
- ( 84, 63) .. controls ( 84, 63) and ( 84, 63) ..
- ( 84, 63) .. controls ( 85, 64) and ( 86, 65) ..
- ( 86, 66) .. controls ( 87, 67) and ( 87, 68) ..
- ( 88, 68) .. controls ( 89, 68) and ( 89, 68) ..
- ( 90, 68) -- ( 92, 68) -- ( 92, 70) -- ( 92, 72) --
- ( 91, 72) .. controls ( 91, 72) and ( 91, 73) ..
- ( 91, 73) .. controls ( 90, 73) and ( 90, 73) ..
- ( 91, 73) .. controls ( 92, 73) and ( 92, 73) ..
- ( 92, 73) .. controls ( 93, 73) and ( 93, 73) ..
- ( 93, 70) .. controls ( 93, 67) and ( 93, 67) ..
- ( 94, 66) -- ( 94, 66) --
- ( 94, 69) .. controls ( 94, 71) and ( 94, 73) ..
- ( 94, 73) .. controls ( 94, 73) and ( 94, 73) ..
- ( 93, 74) .. controls ( 93, 74) and ( 93, 74) ..
- ( 93, 74) .. controls ( 93, 74) and ( 93, 74) ..
- ( 94, 74) .. controls ( 94, 74) and ( 95, 74) ..
- ( 96, 73) .. controls ( 96, 72) and ( 96, 71) ..
- ( 96, 68) -- ( 96, 66) -- ( 96, 66) --
- ( 96, 69) .. controls ( 96, 72) and ( 96, 72) ..
- ( 97, 73) .. controls ( 97, 74) and ( 99, 74) ..
- ( 99, 74) .. controls ( 99, 74) and ( 99, 74) ..
- ( 99, 73) .. controls ( 99, 73) and ( 98, 73) ..
- ( 98, 72) .. controls ( 98, 72) and ( 98, 66) ..
- ( 98, 66) .. controls ( 98, 66) and ( 99, 66) ..
- ( 99, 66) .. controls ( 99, 67) and ( 99, 67) ..
- ( 99, 69) .. controls ( 99, 71) and ( 99, 72) ..
- ( 99, 72) .. controls ( 99, 73) and (100, 73) ..
- (100, 73) .. controls (101, 73) and (101, 73) ..
- (101, 73) .. controls (102, 73) and (102, 73) ..
- (102, 73) .. controls (101, 72) and (101, 72) ..
- (101, 69) .. controls (101, 66) and (101, 65) ..
- (100, 65) .. controls (100, 64) and (100, 64) ..
- (100, 64) -- ( 99, 64) --
- (100, 63) .. controls (101, 63) and (102, 63) ..
- (103, 63) .. controls (104, 62) and (106, 61) ..
- (106, 60) -- (106, 60) --
- (107, 60) .. controls (109, 60) and (113, 60) ..
- (115, 61) .. controls (115, 61) and (115, 61) ..
- (115, 61) .. controls (115, 60) and (111, 60) ..
- (108, 59) .. controls (107, 59) and (107, 59) ..
- (107, 59) .. controls (107, 59) and (107, 59) ..
- (107, 59) -- (107, 59) --
- (108, 59) .. controls (110, 59) and (112, 59) ..
- (114, 59) .. controls (115, 59) and (115, 59) ..
- (115, 59) .. controls (115, 59) and (112, 59) ..
- (109, 59) .. controls (108, 58) and (107, 58) ..
- (107, 58) .. controls (107, 58) and (107, 58) ..
- (107, 58) .. controls (107, 57) and (107, 56) ..
- (107, 55) .. controls (107, 53) and (107, 53) ..
- (107, 53) .. controls (107, 52) and (106, 51) ..
- (106, 50) -- (105, 50) --
- (105, 48) .. controls (105, 47) and (105, 46) ..
- (105, 46) -- (105, 45) --
- (104, 45) .. controls (104, 45) and (104, 45) ..
- (103, 45) -- cycle;
- \protect\end{scope}%
- \protect\end{tikzpicture}}%
- ~}
-\renewcommand*{\gitlabsocialsymbol}{}
-\renewcommand*{\stackoverflowsocialsymbol}{}
-\renewcommand*{\googlescholarsocialsymbol}{}
-\renewcommand*{\telegramsocialsymbol}{}
-\renewcommand*{\whatsappsocialsymbol}{}
-\renewcommand*{\signalsocialsymbol}{}
-\renewcommand*{\matrixsocialsymbol}{}
-\renewcommand*{\orcidsocialsymbol}{}
-\renewcommand*{\researchgatesocialsymbol}{}
-\renewcommand*{\researcheridsocialsymbol}{}
-\renewcommand*{\bitbucketsocialsymbol}{}
-\renewcommand*{\skypesocialsymbol} {%
- \protect\raisebox{-0.15em}{%
- \protect\begin{tikzpicture}[y=0.08em, x=0.08em, xscale=0.020, yscale=-0.020, inner sep=0pt, outer sep=0pt]
- \protect\begin{scope}[shift={(507,387)}]
- \protect\path[fill=color2,even odd rule]
- (487.6550,288.9690) .. controls (489.0610,278.5690) and (489.8700,267.9960) ..
- (489.8700,257.2330) .. controls (489.8700,128.0770) and (384.5990,23.3610) ..
- (254.7670,23.3610) .. controls (241.8630,23.3610) and (229.2120,24.4210) ..
- (216.9010,26.4410) .. controls (194.8280,12.0570) and (168.5590,3.6740) ..
- (140.2880,3.6740) .. controls (62.7660,3.6740) and (0.0000,66.4820) ..
- (0.0000,143.9800) .. controls (0.0000,172.1780) and (8.2990,198.3740) ..
- (22.5900,220.3690) .. controls (20.6650,232.3860) and (19.6810,244.6920) ..
- (19.6810,257.2290) .. controls (19.6810,386.4050) and (124.8980,491.1100) ..
- (254.7660,491.1100) .. controls (269.4230,491.1100) and (283.6930,489.6840) ..
- (297.5620,487.1780) .. controls (319.1120,500.5470) and (344.4960,508.3260) ..
- (371.7080,508.3260) .. controls (449.2100,508.3260) and (512.0010,445.5020) ..
- (512.0010,368.0120) .. controls (511.9980,338.7190) and (503.0410,311.4840) ..
- (487.6550,288.9690) -- cycle(276.7400,429.5960) .. controls (202.0340,433.4870) and (167.0750,416.9590) .. (135.0500,386.9050) .. controls (99.2850,353.3370) and (113.6520,315.0500) ..
- (142.7900,313.1040) .. controls (171.9120,311.1590) and (189.3980,346.1160) ..
- (204.9410,355.8400) .. controls (220.4650,365.5280) and (279.5340,387.6000) ..
- (310.7350,351.9320) .. controls (344.7100,313.1040) and (288.1410,293.0120) ..
- (246.6760,286.9300) .. controls (187.4730,278.1640) and (112.7260,246.1370) ..
- (118.5410,183.0230) .. controls (124.3580,119.9490) and (172.1230,87.6090) ..
- (222.3910,83.0470) .. controls (286.4680,77.2300) and (328.1820,92.7540) ..
- (361.1760,120.9070) .. controls (399.3270,153.4360) and (378.6840,189.8010) ..
- (354.3770,192.7270) .. controls (330.1660,195.6360) and (302.9730,139.2230) ..
- (249.5860,138.3750) .. controls (194.5590,137.5110) and (157.3690,195.6360) ..
- (225.3000,212.1590) .. controls (293.2660,228.6640) and (366.0500,235.4450) ..
- (392.2610,297.5760) .. controls (418.4900,359.7130) and (351.5070,425.7010) ..
- (276.7400,429.5960) -- cycle;
- \protect\end{scope}%
- \protect\end{tikzpicture}}%
- ~}
- \renewcommand*{\bornsymbol}{}
-
\endinput
diff --git a/macros/latex/contrib/moderncv/moderncviconssymbols.sty b/macros/latex/contrib/moderncv/moderncviconssymbols.sty
new file mode 100644
index 0000000000..b728536357
--- /dev/null
+++ b/macros/latex/contrib/moderncv/moderncviconssymbols.sty
@@ -0,0 +1,33 @@
+%% start of file `moderncviconssymbols.sty'.
+%% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License version 1.3c,
+% available at http://www.latex-project.org/lppl/.
+
+
+%-------------------------------------------------------------------------------
+% identification
+%-------------------------------------------------------------------------------
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{moderncviconssymbols}[2021-12-12 v2.2.0 modern curriculum vitae icons selector]
+
+
+\ifxetexorluatex
+ \RequirePackage{moderncviconsawesome}
+ \RequirePackage{moderncviconsacademic}
+\else
+ \ClassWarningNoLine{moderncv}{"academicons requires xetex/luatex to work. Using alternatives."}
+ \ifpdftex
+ \RequirePackage{moderncviconsawesome}
+ \else
+ \RequirePackage{moderncviconsmarvosym}
+ \fi
+\fi
+
+% Define symbols that are not defined at this level
+\RequirePackage{moderncviconstikz}
+
+\endinput
+
+%% end of file `moderncviconssymbols.sty'. \ No newline at end of file
diff --git a/macros/latex/contrib/moderncv/moderncviconstikz.sty b/macros/latex/contrib/moderncv/moderncviconstikz.sty
new file mode 100644
index 0000000000..078a0e99f7
--- /dev/null
+++ b/macros/latex/contrib/moderncv/moderncviconstikz.sty
@@ -0,0 +1,466 @@
+%% start of file `moderncviconstikz.sty'.
+%% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com), 2020-2021 moderncv maintainers (github.com/moderncv).
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License version 1.3c,
+% available at http://www.latex-project.org/lppl/.
+
+
+%-------------------------------------------------------------------------------
+% identification
+%-------------------------------------------------------------------------------
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{moderncviconstikz}[2021-12-16 v2.3.0 modern curriculum vitae and letter icons: tickz]
+
+
+%-------------------------------------------------------------------------------
+% required packages
+%-------------------------------------------------------------------------------
+\RequirePackage{tikz}
+\RequirePackage{etoolbox}
+
+
+%-------------------------------------------------------------------------------
+% all symbols described in moderncv.cls
+% only redefine symbols that are not defined at this level
+%-------------------------------------------------------------------------------
+\ifdefempty{\linkedinsocialsymbol} {
+ \renewcommand*{\linkedinsocialsymbol} {
+ \protect\raisebox{-0.165em}{
+ \protect\begin{tikzpicture}[x=0.08em, y=0.08em, xscale=0.25, yscale=-0.25, inner sep=0pt, outer sep=0pt]
+ \protect\begin{scope}[cm={{0.60,0.0,0.0,0.60,(346.39,123.07)}}]
+ \protect\path[fill=color2]
+ (381,202) -- (434,202) .. controls (439,202) and (442,205) ..
+ (442,210) -- (442,264) .. controls (442,268) and (439,272) ..
+ (434,272) -- (381,272) .. controls (376,272) and (372,268) ..
+ (372,264) -- (372,210) .. controls (372,205) and (376,202) ..
+ (381,202) -- cycle;
+ \protect\begin{scope}[xscale=0.98, yscale=1.02, fill=white]
+ \protect\path[fill=white]
+ (403,253) -- (403,224) -- (394,224) -- (394,253) --
+ cycle(398,211) .. controls (397,211) and (395,212) ..
+ (395,213) .. controls (394,213) and (393,215) ..
+ (393,216) .. controls (393,217) and (394,218) ..
+ (395,219) .. controls (395,220) and (397,220) ..
+ (398,220) .. controls (400,220) and (401,220) ..
+ (402,219) .. controls (402,218) and (403,217) ..
+ (403,216) .. controls (403,215) and (402,213) ..
+ (402,213) .. controls (401,212) and (400,211) ..
+ (398,211) -- cycle;
+ \protect\path[fill=white]
+ (410,253) -- (419,253) --
+ (419,236) .. controls (419,236) and (419,235) ..
+ (419,235) .. controls (419,235) and (419,234) ..
+ (419,234) .. controls (419,233) and (420,232) ..
+ (421,232) .. controls (422,231) and (423,231) ..
+ (424,231) .. controls (425,231) and (427,231) ..
+ (427,232) .. controls (428,234) and (428,235) ..
+ (428,237) -- (428,253) -- (437,253) --
+ (437,236) .. controls (437,232) and (436,228) ..
+ (434,226) .. controls (433,224) and (430,223) ..
+ (427,223) .. controls (425,223) and (423,224) ..
+ (421,225) .. controls (420,226) and (419,227) ..
+ (418,228) -- (418,228) -- (417,224) --
+ (410,224) .. controls (410,225) and (410,227) ..
+ (410,228) .. controls (410,230) and (410,231) ..
+ (410,233) -- cycle;
+ \protect\end{scope}
+ \protect\end{scope}
+ \protect\end{tikzpicture}}
+ ~}
+}{}\par
+
+\ifdefempty{\twittersocialsymbol} {
+ \renewcommand*{\twittersocialsymbol} {
+ \protect\raisebox{0em}{%
+ \protect\begin{tikzpicture}[x=0.08em, y=0.08em, xscale=0.005, yscale=-0.005, inner sep=0pt, outer sep=0pt]
+ \protect\path[fill=color2]
+ (2000, 192) .. controls (1926, 225) and (1847, 247) ..
+ (1764, 257) .. controls (1849, 206) and (1914, 126) ..
+ (1945, 30) .. controls (1865, 77) and (1778, 111) ..
+ (1684, 130) .. controls (1609, 50) and (1503, 0) ..
+ (1385, 0) .. controls (1158, 0) and ( 974, 184) ..
+ ( 974, 410) .. controls ( 974, 442) and ( 978, 474) ..
+ ( 985, 504) .. controls ( 644, 487) and ( 342, 323) ..
+ ( 139, 75) .. controls ( 104, 136) and ( 84, 206) ..
+ ( 84, 281) .. controls ( 84, 424) and ( 156, 549) ..
+ ( 266, 623) .. controls ( 199, 621) and ( 136, 602) ..
+ ( 80, 572) .. controls ( 80, 573) and ( 80, 575) ..
+ ( 80, 577) .. controls ( 80, 776) and ( 222, 941) ..
+ ( 409, 979) .. controls ( 375, 988) and ( 339, 993) ..
+ ( 301, 993) .. controls ( 275, 993) and ( 249, 991) ..
+ ( 224, 986) .. controls ( 276,1149) and ( 428,1268) ..
+ ( 607,1271) .. controls ( 467,1381) and ( 290,1447) ..
+ ( 98,1447) .. controls ( 65,1447) and ( 32,1445) ..
+ ( 0,1441) .. controls ( 182,1557) and ( 397,1625) ..
+ ( 629,1625) .. controls (1384,1625) and (1796,1000) ..
+ (1796, 458) .. controls (1796, 440) and (1796, 422) ..
+ (1795, 405) .. controls (1875, 347) and (1945, 275) ..
+ (2000, 192);
+ \protect\end{tikzpicture}}
+ ~}
+}{}\par
+
+\ifdefempty{\githubsocialsymbol} {
+ \renewcommand*{\githubsocialsymbol} {
+ \protect\raisebox{-0.15em} {
+ \protect\begin{tikzpicture}[x=0.08em, y=0.08em, xscale=0.25, yscale=-0.25, inner sep=0pt, outer sep=0pt]
+ \protect\begin{scope}[shift={(507,387)}]
+ \protect\path[fill=color2]
+ (117, 60) .. controls (117, 71) and (108, 81) ..
+ ( 96, 81) .. controls ( 85, 81) and ( 75, 71) ..
+ ( 75, 60) .. controls ( 75, 48) and ( 85, 39) ..
+ ( 96, 39) .. controls (108, 39) and (117, 48) ..
+ (117, 60) -- cycle;
+ \protect\path[cm={{0.88,0.0,0.0,0.88,(11.10,6.89)}}, fill=white]
+ (117, 60) .. controls (117, 71) and (108, 81) ..
+ ( 96, 81) .. controls ( 85, 81) and ( 75, 71) ..
+ ( 75, 60) .. controls ( 75, 48) and ( 85, 39) ..
+ ( 96, 39) .. controls (108, 39) and (117, 48) ..
+ (117, 60) -- cycle;
+ \protect\path[fill=color2, nonzero rule]
+ (103, 45) .. controls (103, 45) and (101, 46) ..
+ (101, 47) -- (100, 47) --
+ ( 99, 47) .. controls ( 99, 47) and ( 98, 47) ..
+ ( 97, 47) .. controls ( 94, 47) and ( 93, 47) ..
+ ( 92, 47) -- ( 92, 47) --
+ ( 91, 47) .. controls ( 90, 46) and ( 88, 45) ..
+ ( 88, 45) .. controls ( 88, 45) and ( 88, 45) ..
+ ( 87, 45) .. controls ( 87, 45) and ( 87, 45) ..
+ ( 87, 45) .. controls ( 86, 46) and ( 86, 48) ..
+ ( 86, 49) -- ( 87, 50) --
+ ( 86, 51) .. controls ( 85, 51) and ( 85, 52) ..
+ ( 85, 53) .. controls ( 85, 54) and ( 85, 57) ..
+ ( 85, 58) .. controls ( 85, 58) and ( 85, 58) ..
+ ( 82, 59) .. controls ( 79, 59) and ( 77, 59) ..
+ ( 77, 59) .. controls ( 77, 59) and ( 77, 59) ..
+ ( 78, 59) .. controls ( 80, 59) and ( 83, 59) ..
+ ( 85, 59) .. controls ( 85, 59) and ( 85, 59) ..
+ ( 85, 59) .. controls ( 86, 59) and ( 86, 59) ..
+ ( 86, 59) .. controls ( 86, 59) and ( 85, 59) ..
+ ( 84, 59) .. controls ( 82, 60) and ( 80, 60) ..
+ ( 79, 60) .. controls ( 78, 61) and ( 77, 61) ..
+ ( 77, 61) .. controls ( 77, 61) and ( 78, 61) ..
+ ( 79, 61) .. controls ( 81, 60) and ( 83, 60) ..
+ ( 85, 60) .. controls ( 86, 60) and ( 86, 60) ..
+ ( 86, 60) .. controls ( 86, 60) and ( 87, 61) ..
+ ( 88, 62) .. controls ( 89, 63) and ( 90, 63) ..
+ ( 92, 63) .. controls ( 92, 63) and ( 93, 64) ..
+ ( 93, 64) .. controls ( 93, 64) and ( 93, 64) ..
+ ( 93, 64) .. controls ( 92, 64) and ( 92, 65) ..
+ ( 92, 65) .. controls ( 92, 66) and ( 90, 66) ..
+ ( 89, 66) .. controls ( 88, 66) and ( 88, 66) ..
+ ( 87, 65) .. controls ( 87, 64) and ( 86, 63) ..
+ ( 86, 63) .. controls ( 85, 63) and ( 84, 63) ..
+ ( 84, 63) .. controls ( 84, 63) and ( 84, 63) ..
+ ( 84, 63) .. controls ( 85, 64) and ( 86, 65) ..
+ ( 86, 66) .. controls ( 87, 67) and ( 87, 68) ..
+ ( 88, 68) .. controls ( 89, 68) and ( 89, 68) ..
+ ( 90, 68) -- ( 92, 68) -- ( 92, 70) -- ( 92, 72) --
+ ( 91, 72) .. controls ( 91, 72) and ( 91, 73) ..
+ ( 91, 73) .. controls ( 90, 73) and ( 90, 73) ..
+ ( 91, 73) .. controls ( 92, 73) and ( 92, 73) ..
+ ( 92, 73) .. controls ( 93, 73) and ( 93, 73) ..
+ ( 93, 70) .. controls ( 93, 67) and ( 93, 67) ..
+ ( 94, 66) -- ( 94, 66) --
+ ( 94, 69) .. controls ( 94, 71) and ( 94, 73) ..
+ ( 94, 73) .. controls ( 94, 73) and ( 94, 73) ..
+ ( 93, 74) .. controls ( 93, 74) and ( 93, 74) ..
+ ( 93, 74) .. controls ( 93, 74) and ( 93, 74) ..
+ ( 94, 74) .. controls ( 94, 74) and ( 95, 74) ..
+ ( 96, 73) .. controls ( 96, 72) and ( 96, 71) ..
+ ( 96, 68) -- ( 96, 66) -- ( 96, 66) --
+ ( 96, 69) .. controls ( 96, 72) and ( 96, 72) ..
+ ( 97, 73) .. controls ( 97, 74) and ( 99, 74) ..
+ ( 99, 74) .. controls ( 99, 74) and ( 99, 74) ..
+ ( 99, 73) .. controls ( 99, 73) and ( 98, 73) ..
+ ( 98, 72) .. controls ( 98, 72) and ( 98, 66) ..
+ ( 98, 66) .. controls ( 98, 66) and ( 99, 66) ..
+ ( 99, 66) .. controls ( 99, 67) and ( 99, 67) ..
+ ( 99, 69) .. controls ( 99, 71) and ( 99, 72) ..
+ ( 99, 72) .. controls ( 99, 73) and (100, 73) ..
+ (100, 73) .. controls (101, 73) and (101, 73) ..
+ (101, 73) .. controls (102, 73) and (102, 73) ..
+ (102, 73) .. controls (101, 72) and (101, 72) ..
+ (101, 69) .. controls (101, 66) and (101, 65) ..
+ (100, 65) .. controls (100, 64) and (100, 64) ..
+ (100, 64) -- ( 99, 64) --
+ (100, 63) .. controls (101, 63) and (102, 63) ..
+ (103, 63) .. controls (104, 62) and (106, 61) ..
+ (106, 60) -- (106, 60) --
+ (107, 60) .. controls (109, 60) and (113, 60) ..
+ (115, 61) .. controls (115, 61) and (115, 61) ..
+ (115, 61) .. controls (115, 60) and (111, 60) ..
+ (108, 59) .. controls (107, 59) and (107, 59) ..
+ (107, 59) .. controls (107, 59) and (107, 59) ..
+ (107, 59) -- (107, 59) --
+ (108, 59) .. controls (110, 59) and (112, 59) ..
+ (114, 59) .. controls (115, 59) and (115, 59) ..
+ (115, 59) .. controls (115, 59) and (112, 59) ..
+ (109, 59) .. controls (108, 58) and (107, 58) ..
+ (107, 58) .. controls (107, 58) and (107, 58) ..
+ (107, 58) .. controls (107, 57) and (107, 56) ..
+ (107, 55) .. controls (107, 53) and (107, 53) ..
+ (107, 53) .. controls (107, 52) and (106, 51) ..
+ (106, 50) -- (105, 50) --
+ (105, 48) .. controls (105, 47) and (105, 46) ..
+ (105, 46) -- (105, 45) --
+ (104, 45) .. controls (104, 45) and (104, 45) ..
+ (103, 45) -- cycle;
+ \protect\end{scope}
+ \protect\end{tikzpicture}}
+ ~}
+}{}\par
+
+\ifdefempty{\gitlabsocialsymbol} {
+ \renewcommand*{\gitlabsocialsymbol} {
+ \protect\raisebox{-0.12em}{
+ \protect\begin{tikzpicture}[x=0.11em, y=0.11em, xscale=0.015, yscale=-0.015, inner sep=0pt, outer sep=0pt]
+ \protect\begin{scope}[shift={(507,387)}]
+ \path[fill=color2,line width=0.057pt]
+ (105.2000,24.9000) .. controls (102.1000,16.0000) and (89.5000,16.0000) ..
+ (86.3000,24.9000) -- (29.8000,199.7000) -- (161.7000,199.7000) .. controls
+ (161.7000,199.7000) and (105.2000,24.9000) .. (105.2000,24.9000) -- cycle
+ (0.9000,287.7000) .. controls (-1.7000,295.7000) and (1.2000,304.6000) ..
+ (8.0000,309.7000) -- (255.9000,493.7000) -- (29.7000,199.7000) -- cycle
+ (161.7000,199.7000) -- (161.7000,199.7000) -- (256.0000,493.7000) -- (350.3000,199.7000) -- cycle
+ (511.1000,287.7000) -- (482.3000,199.7000) -- (256.0000,493.7000) --
+ (503.9000,309.7000) .. controls (510.8000,304.6000) and (513.6000,295.7000) ..
+ (511.1000,287.7000) -- cycle(425.7000,24.9000) .. controls (422.6000,16.0000)
+ and (410.0000,16.0000) .. (406.8000,24.9000) -- (350.2000,199.7000) -- (482.2000,199.7000) -- cycle;
+ \protect\end{scope}
+ \protect\end{tikzpicture}}
+ ~}
+}{}\par
+
+\ifdefempty{\skypesocialsymbol} {
+ \renewcommand*{\skypesocialsymbol} {
+ \protect\raisebox{-0.15em}{
+ \protect\begin{tikzpicture}[y=0.08em, x=0.08em, xscale=0.020, yscale=-0.020, inner sep=0pt, outer sep=0pt]
+ \protect\begin{scope}[shift={(507,387)}]
+ \protect\path[fill=color2,even odd rule]
+ (487.6550,288.9690) .. controls (489.0610,278.5690) and (489.8700,267.9960) ..
+ (489.8700,257.2330) .. controls (489.8700,128.0770) and (384.5990,23.3610) ..
+ (254.7670,23.3610) .. controls (241.8630,23.3610) and (229.2120,24.4210) ..
+ (216.9010,26.4410) .. controls (194.8280,12.0570) and (168.5590,3.6740) ..
+ (140.2880,3.6740) .. controls (62.7660,3.6740) and (0.0000,66.4820) ..
+ (0.0000,143.9800) .. controls (0.0000,172.1780) and (8.2990,198.3740) ..
+ (22.5900,220.3690) .. controls (20.6650,232.3860) and (19.6810,244.6920) ..
+ (19.6810,257.2290) .. controls (19.6810,386.4050) and (124.8980,491.1100) ..
+ (254.7660,491.1100) .. controls (269.4230,491.1100) and (283.6930,489.6840) ..
+ (297.5620,487.1780) .. controls (319.1120,500.5470) and (344.4960,508.3260) ..
+ (371.7080,508.3260) .. controls (449.2100,508.3260) and (512.0010,445.5020) ..
+ (512.0010,368.0120) .. controls (511.9980,338.7190) and (503.0410,311.4840) ..
+ (487.6550,288.9690) -- cycle(276.7400,429.5960) .. controls (202.0340,433.4870) and (167.0750,416.9590) .. (135.0500,386.9050) .. controls (99.2850,353.3370) and (113.6520,315.0500) ..
+ (142.7900,313.1040) .. controls (171.9120,311.1590) and (189.3980,346.1160) ..
+ (204.9410,355.8400) .. controls (220.4650,365.5280) and (279.5340,387.6000) ..
+ (310.7350,351.9320) .. controls (344.7100,313.1040) and (288.1410,293.0120) ..
+ (246.6760,286.9300) .. controls (187.4730,278.1640) and (112.7260,246.1370) ..
+ (118.5410,183.0230) .. controls (124.3580,119.9490) and (172.1230,87.6090) ..
+ (222.3910,83.0470) .. controls (286.4680,77.2300) and (328.1820,92.7540) ..
+ (361.1760,120.9070) .. controls (399.3270,153.4360) and (378.6840,189.8010) ..
+ (354.3770,192.7270) .. controls (330.1660,195.6360) and (302.9730,139.2230) ..
+ (249.5860,138.3750) .. controls (194.5590,137.5110) and (157.3690,195.6360) ..
+ (225.3000,212.1590) .. controls (293.2660,228.6640) and (366.0500,235.4450) ..
+ (392.2610,297.5760) .. controls (418.4900,359.7130) and (351.5070,425.7010) ..
+ (276.7400,429.5960) -- cycle;
+ \protect\end{scope}
+ \protect\end{tikzpicture}}
+ ~}
+}{}\par
+
+\ifdefempty{\gitlabsocialsymbol} {
+ \renewcommand*{\gitlabsocialsymbol} {
+ \protect\raisebox{-0.12em}{
+ \protect\begin{tikzpicture}[x=0.11em, y=0.11em, xscale=0.015, yscale=-0.015, inner sep=0pt, outer sep=0pt]
+ \protect\begin{scope}[shift={(507,387)}]
+ \path[fill=color2,line width=0.057pt]
+ (105.2000,24.9000) .. controls (102.1000,16.0000) and (89.5000,16.0000) ..
+ (86.3000,24.9000) -- (29.8000,199.7000) -- (161.7000,199.7000) .. controls
+ (161.7000,199.7000) and (105.2000,24.9000) .. (105.2000,24.9000) -- cycle
+ (0.9000,287.7000) .. controls (-1.7000,295.7000) and (1.2000,304.6000) ..
+ (8.0000,309.7000) -- (255.9000,493.7000) -- (29.7000,199.7000) -- cycle
+ (161.7000,199.7000) -- (161.7000,199.7000) -- (256.0000,493.7000) -- (350.3000,199.7000) -- cycle
+ (511.1000,287.7000) -- (482.3000,199.7000) -- (256.0000,493.7000) --
+ (503.9000,309.7000) .. controls (510.8000,304.6000) and (513.6000,295.7000) ..
+ (511.1000,287.7000) -- cycle(425.7000,24.9000) .. controls (422.6000,16.0000)
+ and (410.0000,16.0000) .. (406.8000,24.9000) -- (350.2000,199.7000) -- (482.2000,199.7000) -- cycle;
+ \protect\end{scope}
+ \protect\end{tikzpicture}}
+ ~}
+}{}\par
+
+\ifdefempty{\googlescholarsocialsymbol} {
+ \renewcommand*{\googlescholarsocialsymbol} {
+ \protect\raisebox{-0.12em}{
+ \protect\begin{tikzpicture}[y=2.0pt, x=2.0pt, yscale=-0.1, xscale=0.1, inner sep=0pt, outer sep=0pt]
+ \protect\begin{scope}[shift={(507,387)}]
+ \path[fill=color2] (25.0000,2.0000) .. controls (12.3095,2.0000) and (2.0000,12.3095)
+ .. (2.0000,25.0000) .. controls (2.0000,37.6905) and (12.3095,48.0000) ..
+ (25.0000,48.0000) .. controls (37.6905,48.0000) and (48.0000,37.6905) ..
+ (48.0000,25.0000) .. controls (48.0000,12.3095) and (37.6905,2.0000) ..
+ (25.0000,2.0000) -- cycle(25.0000,4.0000) .. controls (36.6095,4.0000) and
+ (46.0000,13.3905) .. (46.0000,25.0000) .. controls (46.0000,36.6095) and
+ (36.6095,46.0000) .. (25.0000,46.0000) .. controls (13.3905,46.0000) and
+ (4.0000,36.6095) .. (4.0000,25.0000) .. controls (4.0000,13.3905) and
+ (13.3905,4.0000) .. (25.0000,4.0000) -- cycle(21.0000,11.0000) --
+ (11.0000,20.0000) -- (17.7812,20.0000) .. controls (17.8012,22.8470) and
+ (19.9675,25.7305) .. (23.7695,25.7305) .. controls (24.1295,25.7305) and
+ (24.5297,25.6904) .. (24.9297,25.6504) .. controls (24.7497,26.1004) and
+ (24.5605,26.4701) .. (24.5605,27.0801) .. controls (24.5605,28.2301) and
+ (25.1404,28.9201) .. (25.6504,29.5801) .. controls (24.0204,29.6901) and
+ (20.9898,29.8795) .. (18.7598,31.2695) .. controls (16.6298,32.5595) and
+ (15.9805,34.4300) .. (15.9805,35.7500) .. controls (15.9805,38.4700) and
+ (18.5005,41.0000) .. (23.7305,41.0000) .. controls (29.9305,41.0000) and
+ (33.2207,37.5105) .. (33.2207,34.0605) .. controls (33.2207,31.5305) and
+ (31.7795,30.2799) .. (30.1895,28.9199) -- (28.9004,27.8906) .. controls
+ (28.5004,27.5706) and (27.9492,27.1203) .. (27.9492,26.3203) .. controls
+ (27.9492,25.5103) and (28.5007,24.9898) .. (28.9707,24.5098) .. controls
+ (30.4807,23.3098) and (32.0000,21.9602) .. (32.0000,19.2402) .. controls
+ (32.0000,18.1972) and (31.7562,17.3484) .. (31.4082,16.6504) --
+ (35.0000,13.5703) -- (35.0000,17.2773) .. controls (34.4050,17.6233) and
+ (34.0000,18.2610) .. (34.0000,19.0000) -- (34.0000,25.0000) .. controls
+ (34.0000,26.1040) and (34.8960,27.0000) .. (36.0000,27.0000) .. controls
+ (37.1040,27.0000) and (38.0000,26.1040) .. (38.0000,25.0000) --
+ (38.0000,19.0000) .. controls (38.0000,18.2620) and (37.5950,17.6243) ..
+ (37.0000,17.2773) -- (37.0000,12.0000) .. controls (37.0000,11.9570) and
+ (36.9806,11.9209) .. (36.9746,11.8789) -- (38.0000,11.0000) --
+ (21.0000,11.0000) -- cycle(24.2695,14.2402) .. controls (27.2695,14.2402) and
+ (28.8203,18.3500) .. (28.8203,21.0000) .. controls (28.8203,21.6500) and
+ (28.7399,22.8199) .. (27.9199,23.6699) .. controls (27.3399,24.2599) and
+ (26.3709,24.6992) .. (25.4609,24.6992) .. controls (22.3709,24.6992) and
+ (20.9492,20.6202) .. (20.9492,18.1602) .. controls (20.9492,17.2102) and
+ (21.1400,16.2209) .. (21.7500,15.4609) .. controls (22.3300,14.7109) and
+ (23.3395,14.2402) .. (24.2695,14.2402) -- cycle(26.0391,30.6094) .. controls
+ (26.4091,30.6094) and (26.5909,30.6104) .. (26.8809,30.6504) .. controls
+ (29.6209,32.6304) and (30.8008,33.6202) .. (30.8008,35.4902) .. controls
+ (30.8008,37.7602) and (28.9700,39.4609) .. (25.5000,39.4609) .. controls
+ (21.6400,39.4609) and (19.1602,37.5905) .. (19.1602,34.9805) .. controls
+ (19.1602,32.3705) and (21.4598,31.4992) .. (22.2598,31.1992) .. controls
+ (23.7698,30.6792) and (25.7191,30.6094) .. (26.0391,30.6094) -- cycle;
+ \protect\end{scope}
+ \protect\end{tikzpicture}}
+~}
+}{}\par
+
+\ifdefempty{\matrixsocialsymbol} {
+ \renewcommand*{\matrixsocialsymbol} {
+ \protect\raisebox{-0.12em}{
+ \protect\begin{tikzpicture}[y=1.8pt, x=1.8pt, yscale=-0.15, xscale=0.15, inner sep=0pt, outer sep=0pt]
+ \protect\begin{scope}[shift={(507,387)}]
+ \path[fill=color2]
+ (0.9360,0.7320) .. controls (0.9360,10.9053) and (0.9360,21.0787) ..
+ (0.9360,31.2520) .. controls (1.6673,31.2520) and (2.3987,31.2520) ..
+ (3.1300,31.2520) .. controls (3.3452,32.0075) and (2.8778,32.0803) ..
+ (2.2413,31.9840) .. controls (1.5258,31.9840) and (0.8104,31.9840) ..
+ (0.0950,31.9840) .. controls (0.0950,21.3240) and (0.0950,10.6640) ..
+ (0.0950,0.0040) .. controls (1.1063,0.0040) and (2.1177,0.0040) ..
+ (3.1290,0.0040) .. controls (3.3442,0.7598) and (2.8768,0.8319) ..
+ (2.2403,0.7344) .. controls (1.8055,0.7336) and (1.3708,0.7328) ..
+ (0.9360,0.7320) -- cycle(9.3860,10.4070) .. controls (9.4181,10.9043) and
+ (9.3236,11.5281) .. (9.4300,11.9510) .. controls (10.7306,9.8293) and
+ (14.1727,9.3918) .. (15.8298,11.2910) .. controls (16.3916,12.8310) and
+ (17.3334,10.0899) .. (18.5637,10.2414) .. controls (20.4575,9.7636) and
+ (23.0149,10.3893) .. (23.6011,12.4937) .. controls (24.0197,14.2344) and
+ (23.7678,16.0478) .. (23.8370,17.8238) .. controls (23.8370,19.1536) and
+ (23.8370,20.4833) .. (23.8370,21.8130) .. controls (22.7947,21.8130) and
+ (21.7523,21.8130) .. (20.7100,21.8130) .. controls (20.6777,19.2218) and
+ (20.7833,16.6250) .. (20.6389,14.0382) .. controls (20.4668,12.0762) and
+ (17.2764,12.0985) .. (16.8890,13.9332) .. controls (16.5424,15.7480) and
+ (16.7622,17.6175) .. (16.7000,19.4583) .. controls (16.7000,20.2432) and
+ (16.7000,21.0281) .. (16.7000,21.8130) .. controls (15.6573,21.8130) and
+ (14.6147,21.8130) .. (13.5720,21.8130) .. controls (13.5377,19.1909) and
+ (13.6502,16.5608) .. (13.4952,13.9452) .. controls (13.2700,12.0546) and
+ (10.3372,12.2098) .. (9.8050,13.8370) .. controls (9.3690,15.2175) and
+ (9.6378,16.6981) .. (9.5630,18.1268) .. controls (9.5630,19.3556) and
+ (9.5630,20.5843) .. (9.5630,21.8130) .. controls (8.5200,21.8130) and
+ (7.4770,21.8130) .. (6.4340,21.8130) .. controls (6.4340,18.0097) and
+ (6.4340,14.2063) .. (6.4340,10.4030) .. controls (7.4180,10.4043) and
+ (8.4020,10.4057) .. (9.3860,10.4070) -- cycle(30.0980,31.2470) .. controls
+ (30.0980,21.0737) and (30.0980,10.9003) .. (30.0980,0.7270) .. controls
+ (29.3667,0.7270) and (28.6353,0.7270) .. (27.9040,0.7270) .. controls
+ (27.6888,-0.0285) and (28.1562,-0.1013) .. (28.7927,-0.0050) .. controls
+ (29.5082,-0.0050) and (30.2236,-0.0050) .. (30.9390,-0.0050) .. controls
+ (30.9390,10.6550) and (30.9390,21.3150) .. (30.9390,31.9750) .. controls
+ (29.9273,31.9750) and (28.9157,31.9750) .. (27.9040,31.9750) .. controls
+ (27.6888,31.2192) and (28.1562,31.1471) .. (28.7927,31.2446) .. controls
+ (29.2278,31.2454) and (29.6629,31.2462) .. (30.0980,31.2470) -- cycle;
+ \protect\end{scope}
+ \protect\end{tikzpicture}}
+ ~}
+}{}\par
+
+\ifdefempty{\signalsocialsymbol} {
+ \renewcommand*{\signalsocialsymbol} {
+ \protect\raisebox{-0.12em}{
+ \protect\begin{tikzpicture}[y=0.1pt, x=0.1pt, yscale=-0.13, xscale=0.13, inner sep=0pt, outer sep=0pt]
+ \protect\begin{scope}[shift={(507,387)}]
+ \path[fill=color2]
+ (430.1000,180.9000) -- (437.8000,211.9000) .. controls (407.6000,219.3000)
+ and (378.7000,231.3000) .. (352.1000,247.3000) -- (335.7000,220.0000) ..
+ controls (365.0000,202.3000) and (396.9000,189.1000) .. (430.1000,180.9000) --
+ cycle(593.9000,180.9000) -- (586.2000,211.9000) .. controls
+ (616.4000,219.3000) and (645.3000,231.3000) .. (671.9000,247.3000) --
+ (688.4000,219.9000) .. controls (659.0000,202.3000) and (627.2000,189.1000) ..
+ (593.9000,180.9000) -- cycle(220.0000,335.7000) .. controls
+ (202.3000,365.0000) and (189.1000,396.9000) .. (180.9000,430.1000) --
+ (211.9000,437.8000) .. controls (219.3000,407.6000) and (231.3000,378.7000) ..
+ (247.3000,352.1000) -- cycle(202.9000,512.0000) .. controls
+ (202.9000,496.5000) and (204.0000,481.0000) .. (206.4000,465.7000) --
+ (174.8000,460.9000) .. controls (169.7000,494.8000) and (169.7000,529.2000) ..
+ (174.8000,563.1000) -- (206.4000,558.3000) .. controls (204.1000,543.0000) and
+ (202.9000,527.5000) .. (202.9000,512.0000) -- cycle(688.3000,804.0000) --
+ (671.9000,776.6000) .. controls (645.3000,792.7000) and (616.5000,804.6000) ..
+ (586.3000,812.0000) -- (594.0000,843.0000) .. controls (627.2000,834.8000) and
+ (659.0000,821.7000) .. (688.3000,804.0000) -- cycle(821.1000,512.0000) ..
+ controls (821.1000,527.5000) and (820.0000,543.0000) .. (817.6000,558.3000) --
+ (849.2000,563.1000) .. controls (854.3000,529.2000) and (854.3000,494.8000) ..
+ (849.2000,460.9000) -- (817.6000,465.7000) .. controls (819.9000,481.0000) and
+ (821.1000,496.5000) .. (821.1000,512.0000) -- cycle(843.1000,593.8000) --
+ (812.1000,586.1000) .. controls (804.7000,616.3000) and (792.7000,645.2000) ..
+ (776.7000,671.8000) -- (804.1000,688.3000) .. controls (821.7000,659.0000) and
+ (834.9000,627.1000) .. (843.1000,593.8000) -- cycle(558.3000,817.6000) ..
+ controls (527.6000,822.2000) and (496.4000,822.2000) .. (465.7000,817.6000) --
+ (460.9000,849.2000) .. controls (494.8000,854.3000) and (529.2000,854.3000) ..
+ (563.1000,849.2000) -- cycle(760.8000,695.3000) .. controls
+ (742.4000,720.3000) and (720.3000,742.3000) .. (695.3000,760.7000) --
+ (714.3000,786.4000) .. controls (741.9000,766.1000) and (766.2000,741.9000) ..
+ (786.6000,714.4000) -- cycle(695.3000,263.2000) .. controls
+ (720.3000,281.6000) and (742.4000,303.7000) .. (760.8000,328.7000) --
+ (786.5000,309.5000) .. controls (766.2000,282.0000) and (741.9000,257.7000) ..
+ (714.5000,237.5000) -- cycle(263.2000,328.7000) .. controls
+ (281.6000,303.7000) and (303.7000,281.6000) .. (328.7000,263.2000) --
+ (309.5000,237.5000) .. controls (282.0000,257.8000) and (257.7000,282.1000) ..
+ (237.5000,309.5000) -- cycle(804.0000,335.7000) -- (776.6000,352.1000) ..
+ controls (792.7000,378.7000) and (804.6000,407.5000) .. (812.0000,437.7000) --
+ (843.0000,430.0000) .. controls (834.9000,396.8000) and (821.7000,365.0000) ..
+ (804.0000,335.7000) -- cycle(465.7000,206.4000) .. controls
+ (496.4000,201.8000) and (527.6000,201.8000) .. (558.3000,206.4000) --
+ (563.1000,174.8000) .. controls (529.2000,169.7000) and (494.8000,169.7000) ..
+ (460.9000,174.8000) -- cycle(279.6000,795.0000) -- (213.6000,810.4000) --
+ (229.0000,744.4000) -- (197.9000,737.1000) -- (182.5000,803.1000) .. controls
+ (180.0000,813.9000) and (183.2000,825.2000) .. (191.0000,833.0000) .. controls
+ (198.8000,840.8000) and (210.1000,844.0000) .. (220.9000,841.5000) --
+ (286.9000,826.4000) -- cycle(204.5000,708.5000) -- (235.6000,715.7000) --
+ (246.3000,669.9000) .. controls (230.8000,643.8000) and (219.2000,615.5000) ..
+ (211.9000,586.0000) -- (180.9000,593.7000) .. controls (187.9000,622.0000) and
+ (198.4000,649.2000) .. (212.3000,674.7000) -- cycle(353.7000,777.8000) --
+ (308.0000,788.5000) -- (315.2000,819.6000) -- (348.9000,811.8000) .. controls
+ (374.5000,825.7000) and (401.7000,836.3000) .. (430.0000,843.2000) --
+ (437.7000,812.2000) .. controls (408.3000,804.9000) and (380.1000,793.2000) ..
+ (354.0000,777.6000) -- cycle(512.0000,234.9000) .. controls
+ (411.2000,235.0000) and (318.3000,289.8000) .. (269.6000,378.0000) .. controls
+ (220.9000,466.2000) and (223.9000,574.0000) .. (277.6000,659.4000) --
+ (251.0000,773.1000) -- (364.7000,746.5000) .. controls (464.4000,809.3000) and
+ (592.9000,802.2000) .. (685.1000,728.8000) .. controls (777.3000,655.4000) and
+ (812.9000,531.7000) .. (774.0000,420.5000) .. controls (734.8000,309.2000) and
+ (629.8000,234.8000) .. (512.0000,234.9000) -- cycle;
+ \protect\end{scope}
+ \protect\end{tikzpicture}}
+ ~}
+}{}\par
+
+
+\endinput
+
+%% end of file `moderncviconstikz.sty'.
diff --git a/macros/latex/contrib/moderncv/moderncvskillmatrix.sty b/macros/latex/contrib/moderncv/moderncvskillmatrix.sty
index 479edeecb1..696448a2db 100644
--- a/macros/latex/contrib/moderncv/moderncvskillmatrix.sty
+++ b/macros/latex/contrib/moderncv/moderncvskillmatrix.sty
@@ -203,7 +203,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvskillmatrix}[2021-07-28 v2.2.0 modern curriculum vitae and letter skill matrix]
+\ProvidesPackage{moderncvskillmatrix}[2021-12-16 v2.3.0 modern curriculum vitae and letter skill matrix]
% The definitions need to be adjusted depending on which moderncvbody<i-v>.sty style is usde.
% body type options: "moderncvbodyi" (default), "moderncvbodyii", "moderncvbodyiii", "moderncvbodyiv" or "moderncvbodyv"
diff --git a/macros/latex/contrib/moderncv/moderncvstylebanking.sty b/macros/latex/contrib/moderncv/moderncvstylebanking.sty
index 2cfc75e98a..756d4be1ee 100644
--- a/macros/latex/contrib/moderncv/moderncvstylebanking.sty
+++ b/macros/latex/contrib/moderncv/moderncvstylebanking.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvstylebanking}[2021-07-28 v2.2.0 modern curriculum vitae and letter style scheme: banking]
+\ProvidesPackage{moderncvstylebanking}[2021-12-16 v2.3.0 modern curriculum vitae and letter style scheme: banking]
% body rules type options: "fullrules", "shortrules", "mixedrules" (default) or "norules"
\@initializecommand{\moderncvstylebodyoptions}{}
@@ -55,13 +55,9 @@
% symbols
\if@symbols
- \ifxetexorluatex
- \moderncvicons{awesome} % use font-awesome symbols if lualatex or xelatex is used
- \else
- \moderncvicons{marvosym} % use marvosym symbols pdflatex is used
- \fi
+ \moderncvicons{symbols} % use symbols
\else
- \moderncvicons{letters} % do not use symbols, use letters
+ \moderncvicons{letters} % do not use symbols, use letters
\fi
diff --git a/macros/latex/contrib/moderncv/moderncvstylecasual.sty b/macros/latex/contrib/moderncv/moderncvstylecasual.sty
index f5918309f5..3f8cb8c78e 100644
--- a/macros/latex/contrib/moderncv/moderncvstylecasual.sty
+++ b/macros/latex/contrib/moderncv/moderncvstylecasual.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvstylecasual}[2021-07-28 v2.2.0 modern curriculum vitae and letter style scheme: casual]
+\ProvidesPackage{moderncvstylecasual}[2021-12-16 v2.3.0 modern curriculum vitae and letter style scheme: casual]
% head section alignment options: "left" (default) or "right"
\@initializecommand{\moderncvstyleheadoptions}{}
@@ -42,13 +42,9 @@
% symbols
\if@symbols
- \ifxetexorluatex
- \moderncvicons{awesome} % use font-awesome symbols if lualatex or xelatex is used
- \else
- \moderncvicons{marvosym} % use marvosym symbols pdflatex is used
- \fi
+ \moderncvicons{symbols} % use symbols
\else
- \moderncvicons{letters} % do not use symbols, use letters
+ \moderncvicons{letters} % do not use symbols, use letters
\fi
diff --git a/macros/latex/contrib/moderncv/moderncvstyleclassic.sty b/macros/latex/contrib/moderncv/moderncvstyleclassic.sty
index fe4a511eec..2c119e6d81 100644
--- a/macros/latex/contrib/moderncv/moderncvstyleclassic.sty
+++ b/macros/latex/contrib/moderncv/moderncvstyleclassic.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvstyleclassic}[2021-07-28 v2.2.0 modern curriculum vitae and letter style scheme: classic]
+\ProvidesPackage{moderncvstyleclassic}[2021-12-16 v2.3.0 modern curriculum vitae and letter style scheme: classic]
% head section alignment options: "left" (default) or "right"
\@initializecommand{\moderncvstyleheadoptions}{}
@@ -42,13 +42,9 @@
% symbols
\if@symbols
- \ifxetexorluatex
- \moderncvicons{awesome} % use font-awesome symbols if lualatex or xelatex is used
- \else
- \moderncvicons{marvosym} % use marvosym symbols pdflatex is used
- \fi
+ \moderncvicons{symbols} % use symbols
\else
- \moderncvicons{letters} % do not use symbols, use letters
+ \moderncvicons{letters} % do not use symbols, use letters
\fi
diff --git a/macros/latex/contrib/moderncv/moderncvstyleempty.sty b/macros/latex/contrib/moderncv/moderncvstyleempty.sty
index f41e0680b6..c19c132114 100644
--- a/macros/latex/contrib/moderncv/moderncvstyleempty.sty
+++ b/macros/latex/contrib/moderncv/moderncvstyleempty.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvstyleempty}[2021-07-28 v2.2.0 modern curriculum vitae scheme: empty]
+\ProvidesPackage{moderncvstyleempty}[2021-12-16 v2.3.0 modern curriculum vitae scheme: empty]
%-------------------------------------------------------------------------------
% required packages
@@ -37,13 +37,9 @@
%-------------------------------------------------------------------------------
% symbols
\if@symbols
- \ifxetexorluatex
- \moderncvicons{awesome} % use font-awesome symbols if lualatex or xelatex is used
- \else
- \moderncvicons{marvosym} % use marvosym symbols pdflatex is used
- \fi
+ \moderncvicons{symbols} % use symbols
\else
- \moderncvicons{letters} % do not use symbols, use letters
+ \moderncvicons{letters} % do not use symbols, use letters
\fi
% see moderncv.cls for command declarations that needs to be implemented, e.g. \maketitle, \section, \subsections, \cvline, etc
diff --git a/macros/latex/contrib/moderncv/moderncvstylefancy.sty b/macros/latex/contrib/moderncv/moderncvstylefancy.sty
index 5756eec86b..b23e530ae7 100644
--- a/macros/latex/contrib/moderncv/moderncvstylefancy.sty
+++ b/macros/latex/contrib/moderncv/moderncvstylefancy.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvstylefancy}[2021-07-28 v2.2.0 modern curriculum vitae and letter style scheme: fancy]
+\ProvidesPackage{moderncvstylefancy}[2021-12-16 v2.3.0 modern curriculum vitae and letter style scheme: fancy]
% toggle use of symbol fonts.
\@initializeif{\if@symbols}\@symbolsfalse
@@ -38,13 +38,9 @@
% symbols
\if@symbols
- \ifxetexorluatex
- \moderncvicons{awesome} % use font-awesome symbols if lualatex or xelatex is used
- \else
- \moderncvicons{marvosym} % use marvosym symbols pdflatex is used
- \fi
+ \moderncvicons{symbols} % use symbols
\else
- \moderncvicons{letters} % do not use symbols, use letters
+ \moderncvicons{letters} % do not use symbols, use letters
\fi
diff --git a/macros/latex/contrib/moderncv/moderncvstyleoldstyle.sty b/macros/latex/contrib/moderncv/moderncvstyleoldstyle.sty
index 6a2921e681..c4a29281e6 100644
--- a/macros/latex/contrib/moderncv/moderncvstyleoldstyle.sty
+++ b/macros/latex/contrib/moderncv/moderncvstyleoldstyle.sty
@@ -10,7 +10,7 @@
% identification
%-------------------------------------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{moderncvstyleoldstyle}[2021-07-28 v2.2.0 modern curriculum vitae and letter style scheme: oldstyle]
+\ProvidesPackage{moderncvstyleoldstyle}[2021-12-16 v2.3.0 modern curriculum vitae and letter style scheme: oldstyle]
% toggle use of symbol fonts.
\@initializeif{\if@symbols}\@symbolsfalse
diff --git a/macros/latex/contrib/moderncv/template.tex b/macros/latex/contrib/moderncv/template.tex
index 1083fc8758..34abd843f3 100644
--- a/macros/latex/contrib/moderncv/template.tex
+++ b/macros/latex/contrib/moderncv/template.tex
@@ -20,10 +20,27 @@
% adjust the page margins
\usepackage[scale=0.75]{geometry}
-\setlength{\footskip}{122.40004pt} % depending on the amount of information in the footer, you need to change this value. comment this line out and set it to the size given in the warning
+\setlength{\footskip}{136.00005pt} % depending on the amount of information in the footer, you need to change this value. comment this line out and set it to the size given in the warning
%\setlength{\hintscolumnwidth}{3cm} % if you want to change the width of the column with the dates
%\setlength{\makecvheadnamewidth}{10cm} % for the 'classic' style, if you want to force the width allocated to your name and avoid line breaks. be careful though, the length is normally calculated to avoid any overlap with your personal info; use this at your own typographical risks...
+% font loading
+% for luatex and xetex, do not use inputenc and fontenc
+% see https://tex.stackexchange.com/a/496643
+\ifxetexorluatex
+ \usepackage{fontspec}
+ \usepackage{unicode-math}
+ \defaultfontfeatures{Ligatures=TeX}
+ \setmainfont{Latin Modern Roman}
+ \setsansfont{Latin Modern Sans}
+ \setmonofont{Latin Modern Mono}
+ \setmathfont{Latin Modern Math}
+\else
+ \usepackage[utf8]{inputenc}
+ \usepackage[T1]{fontenc}
+ \usepackage{lmodern}
+\fi
+
% personal data
\name{John}{Doe}
\title{Résumé title} % optional, remove / comment the line if not wanted
diff --git a/macros/latex/contrib/projlib/ProjLib-doc-cn.pdf b/macros/latex/contrib/projlib/ProjLib-doc-cn.pdf
index b4072bab6f..254abce622 100644
--- a/macros/latex/contrib/projlib/ProjLib-doc-cn.pdf
+++ b/macros/latex/contrib/projlib/ProjLib-doc-cn.pdf
Binary files differ
diff --git a/macros/latex/contrib/projlib/ProjLib-doc-en.pdf b/macros/latex/contrib/projlib/ProjLib-doc-en.pdf
index c0e738d0ea..b6acacad5a 100644
--- a/macros/latex/contrib/projlib/ProjLib-doc-en.pdf
+++ b/macros/latex/contrib/projlib/ProjLib-doc-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/projlib/ProjLib-doc-fr.pdf b/macros/latex/contrib/projlib/ProjLib-doc-fr.pdf
index 22e221b53e..c64a69a816 100644
--- a/macros/latex/contrib/projlib/ProjLib-doc-fr.pdf
+++ b/macros/latex/contrib/projlib/ProjLib-doc-fr.pdf
Binary files differ
diff --git a/macros/latex/contrib/projlib/ProjLib-doc.dtx b/macros/latex/contrib/projlib/ProjLib-doc.dtx
index f874a9f029..be967754ec 100644
--- a/macros/latex/contrib/projlib/ProjLib-doc.dtx
+++ b/macros/latex/contrib/projlib/ProjLib-doc.dtx
@@ -54,7 +54,7 @@
}
\providecommand{\meta}[1]{$\langle${\normalfont\itshape#1}$\rangle$}
\lstset{moretexcs=%
- {color,NameTheorem,CreateTheorem,proofideanameCN,proofideanameEN,proofideanameFR,cref,dnf,needgraph,UseLanguage,UseOtherLanguage,AddLanguageSetting,maketitle,address,curraddr,email,keywords,subjclass,thanks,dedicatory,PLdate,PJLdate,ProjLib,
+ {color,NameTheorem,CreateTheorem,proofideanameCN,proofideanameEN,proofideanameFR,cref,dnf,needgraph,UseLanguage,UseOtherLanguage,AddLanguageSetting,maketitle,address,curraddr,email,keywords,subjclass,thanks,dedicatory,TheDate,PLdate,PJLdate,ProjLib,
mathfrak,mf,frak,mfA,mathbb,bb,N,Z,Q,R,C,F,A,mathcal,mc,cal,mathscr,ms,scr,
abs,norm,injection,surjection,bijection,legendre,tlegendre,dlegendre,pmod
}
@@ -107,25 +107,25 @@
%<*ProjLib-doc-cn>
\title{\ProjLib{} 工具集\\[.3\baselineskip]\normalsize 使用指南}
\author{许锦文}
-\thanks{对应版本.~~\texttt{\ProjLib{}~2021/11/09}}
+\thanks{对应版本.~~\texttt{\ProjLib{}~2021/12/16}}
\email{\href{mailto:ProjLib@outlook.com}{ProjLib@outlook.com}}
-\date{2021年11月,巴黎}
+\date{2021年12月,巴黎}
%</ProjLib-doc-cn>
%
%<*ProjLib-doc-en>
\title{\ProjLib{}~\,Toolkit\\[.3\baselineskip]\normalsize User Manual}
\author{Jinwen XU}
-\thanks{Corresponding to: \texttt{\ProjLib{}~2021/11/09}}
+\thanks{Corresponding to: \texttt{\ProjLib{}~2021/12/16}}
\email{\href{mailto:ProjLib@outlook.com}{ProjLib@outlook.com}}
-\date{November 2021, in Paris}
+\date{December 2021, in Paris}
%</ProjLib-doc-en>
%
%<*ProjLib-doc-fr>
\title{La boîte à outils~\,\ProjLib{}\\[.3\baselineskip]\normalsize Manuel d'utilisation}
\author{Jinwen XU}
-\thanks{Correspondant à : \texttt{\ProjLib{}~2021/11/09}}
+\thanks{Correspondant à : \texttt{\ProjLib{}~2021/12/16}}
\email{\href{mailto:ProjLib@outlook.com}{ProjLib@outlook.com}}
-\date{Novembre 2021, à Paris}
+\date{Décembre 2021, à Paris}
%</ProjLib-doc-fr>
\maketitle
@@ -250,7 +250,7 @@ Just add the following line to your preamble:
\subsection{Comment l'ajouter}
-Ajoutez simplement la ligne suivante à votre préambule :
+Ajoutez simplement la ligne suivante à votre préambule :
\begin{code}
\usepackage{ProjLib}
@@ -495,7 +495,7 @@ In addition, you can also write the abstract before \lstinline|\maketitle|, as t
\date{\PLdate{2022-04-01}}
\end{code}
-Cette partie est le titre et le bloc d'informations de l'auteur. L'exemple montre l'utilisation la plus fondamentale, mais en fait, vous pouvez également écrire comme :
+Cette partie est le titre et le bloc d'informations de l'auteur. L'exemple montre l'utilisation la plus fondamentale, mais en fait, vous pouvez également écrire comme :
\begin{code}
\author{(*\meta{author 1}*)}
\address{(*\meta{address 1}*)}
@@ -510,13 +510,13 @@ De plus, si la simulation d'\AmS{} est activée, alors vous pouvez également é
\begin{code}
\usepackage[amsfashion,palatino]{ProjLib}
\end{code}
-Et en conséquence, vous pourrez également utiliser ces macros :
+Et en conséquence, vous pourrez également utiliser ces macros :
\begin{code}
\dedicatory{(*\meta{dedicatory}*)}
\subjclass{*****}
\keywords{(*\meta{keywords}*)}
\end{code}
-De plus, vous pouvez également placé le résumé avant \lstinline|\maketitle|, comme requis dans les classes \AmS{} :
+De plus, vous pouvez également placé le résumé avant \lstinline|\maketitle|, comme requis dans les classes \AmS{} :
\begin{code}
\begin{abstract}
(*\meta{abstract text}*)
@@ -649,7 +649,7 @@ In addition, there are also some options of the components that should be passed
%<*ProjLib-doc-fr>
\section{Options du package principal}
-\ProjLibPackage{} a les options suivantes :
+\ProjLibPackage{} a les options suivantes :
\begin{itemize}
\item \texttt{draft} ou \texttt{fast}
\begin{itemize}
@@ -812,9 +812,9 @@ For example, \lstinline|\AddLanguageSetting(German){\color{orange}}| can make al
%</ProjLib-doc-en>
%
%<*ProjLib-doc-fr>
-\subsubsection{PJLlang : support multilingue}
+\subsubsection{PJLlang : support multilingue}
-\PJLlang{} offre le support multilingue, notamment : chinois simplifié, chinois traditionnel, anglais, français, allemand, japonais et russe (parmi eux, le chinois, le japonais et le russe requièrent des moteurs \TeX{} et des polices appropriés).
+\PJLlang{} offre le support multilingue, notamment : chinois simplifié, chinois traditionnel, anglais, français, allemand, japonais et russe (parmi eux, le chinois, le japonais et le russe requièrent des moteurs \TeX{} et des polices appropriés).
\medskip
\PJLlang{} fournit des options de langue. Les noms de ces options ont trois types, qui sont des abréviations (comme \texttt{EN}), des minuscules (comme \texttt{english}) et des majuscules (comme \texttt{English}). Pour les noms d'options d'une langue spécifique, veuillez vous référer à \meta{language name} ci-dessous. Parmi eux, la première langue spécifiée \meta{first language} sera considérée comme langue par défaut, ce qui équivaut à spécifier \lstinline|\UseLanguage{|\meta{first language}\lstinline|}| au début de votre document.
@@ -824,31 +824,31 @@ For example, \lstinline|\AddLanguageSetting(German){\color{orange}}| can make al
\end{tip}
\medskip
-La langue peut être sélectionnée par les macros suivantes :
+La langue peut être sélectionnée par les macros suivantes :
\begin{itemize}
- \item \lstinline|\UseLanguage{|\meta{language name}\lstinline|}| est utilisé pour spécifier la langue. Le réglage correspondant de la langue sera appliqué après celui-ci. Il peut être utilisé soit dans le préambule ou dans le texte. Lorsqu'aucune langue n'est spécifiée, « English » est sélectionné par défaut.
+ \item \lstinline|\UseLanguage{|\meta{language name}\lstinline|}| est utilisé pour spécifier la langue. Le réglage correspondant de la langue sera appliqué après celui-ci. Il peut être utilisé soit dans le préambule ou dans le texte. Lorsqu'aucune langue n'est spécifiée, « English » est sélectionné par défaut.
\item \lstinline|\UseOtherLanguage{|\meta{language name}\lstinline|}{|\meta{content}\lstinline|}|, qui utilise les paramètres de langue spécifiés pour composer \meta{content}. Par rapport à \lstinline|\UseLanguage|, il ne modifiera pas l'interligne, donc l'interligne restera stable lorsque les textes CJK et occidentaux sont mélangés.
\end{itemize}
\medskip
-\meta{language name} peut être (il n'est pas sensible à la casse, par exemple, \texttt{French} et \texttt{french} ont le même effet) :
+\meta{language name} peut être (il n'est pas sensible à la casse, par exemple, \texttt{French} et \texttt{french} ont le même effet) :
\begin{itemize}
\item chinois simplifié : \texttt{CN}, \texttt{Chinese}, \texttt{SChinese} ou \texttt{SimplifiedChinese}
- \item chinois traditionnel : \texttt{TC}, \texttt{TChinese} ou \texttt{TraditionalChinese}
- \item anglais : \texttt{EN} ou \texttt{English}
+ \item chinois traditionnel : \texttt{TC}, \texttt{TChinese} ou \texttt{TraditionalChinese}
+ \item anglais : \texttt{EN} ou \texttt{English}
\item français : \texttt{FR} ou \texttt{French}
- \item allemand : \texttt{DE}, \texttt{German} ou \texttt{ngerman}
- \item italien : \texttt{IT} ou \texttt{Italian}
- \item portugais : \texttt{PT} ou \texttt{Portuguese}
- \item portugais (brésilien) : \texttt{BR} ou \texttt{Brazilian}
- \item espagnol : \texttt{ES} ou \texttt{Spanish}
- \item japonais : \texttt{JP} ou \texttt{Japanese}
- \item russe : \texttt{RU} ou \texttt{Russian}
+ \item allemand : \texttt{DE}, \texttt{German} ou \texttt{ngerman}
+ \item italien : \texttt{IT} ou \texttt{Italian}
+ \item portugais : \texttt{PT} ou \texttt{Portuguese}
+ \item portugais (brésilien) : \texttt{BR} ou \texttt{Brazilian}
+ \item espagnol : \texttt{ES} ou \texttt{Spanish}
+ \item japonais : \texttt{JP} ou \texttt{Japanese}
+ \item russe : \texttt{RU} ou \texttt{Russian}
\end{itemize}
\medskip
-De plus, vous pouvez également ajouter de nouveaux paramètres à la langue sélectionnée :
+De plus, vous pouvez également ajouter de nouveaux paramètres à la langue sélectionnée :
\begin{itemize}
\item \lstinline|\AddLanguageSetting{|\meta{settings}\lstinline|}|
\begin{itemize}
@@ -1208,7 +1208,7 @@ or set the names while defining them (for \lstinline|proofidea*| and \lstinline|
%</ProjLib-doc-en>
%
%<*ProjLib-doc-fr>
-\subsubsection{PJLthm : environnements de type théorème avec référence intelligente et support multilingue}
+\subsubsection{PJLthm : environnements de type théorème avec référence intelligente et support multilingue}
\PJLthm{} offre la configuration d'environnements de type théorème. Il a l'option suivante :
@@ -1232,13 +1232,13 @@ or set the names while defining them (for \lstinline|proofidea*| and \lstinline|
\end{itemize}
\item \texttt{regionalref}, \texttt{originalref}
\begin{itemize}
- \item Lors du référencement, si le nom de l'environnement de type théorème change avec la langue actuelle. Par défaut \texttt{regionalref} est activé, c'est-à-dire que le nom correspondant à la langue courante est utilisé ; par exemple, lors du référencement d'un environnement de type théorème dans un contexte français, les noms «~Théorème, Définition ...~» seront utilisés quel que soit le contexte linguistique dans lequel se trouve l'environnement d'origine. Si \texttt{originalref} est activé, alors le nom restera toujours le même que l'environnement d'origine ; par exemple, lors du référencement d'un théorème écrit dans le contexte français, même si l'on est actuellement dans le contexte anglais, il sera toujours affiché comme «~Théorème~».
+ \item Lors du référencement, si le nom de l'environnement de type théorème change avec la langue actuelle. Par défaut \texttt{regionalref} est activé, c'est-à-dire que le nom correspondant à la langue courante est utilisé ; par exemple, lors du référencement d'un environnement de type théorème dans un contexte français, les noms «~Théorème, Définition ...~» seront utilisés quel que soit le contexte linguistique dans lequel se trouve l'environnement d'origine. Si \texttt{originalref} est activé, alors le nom restera toujours le même que l'environnement d'origine ; par exemple, lors du référencement d'un théorème écrit dans le contexte français, même si l'on est actuellement dans le contexte anglais, il sera toujours affiché comme «~Théorème~».
\item En mode \texttt{fast}, l'option \texttt{originalref} n'aura aucun effet.
\end{itemize}
\end{itemize}
\medskip
-Les environnements prédéfinis incluent : \texttt{assumption}, \texttt{axiom}, \texttt{conjecture}, \texttt{convention}, \texttt{corollary}, \texttt{definition}, \texttt{definition-proposition}, \texttt{definition-theorem}, \texttt{example}, \texttt{exercise}, \texttt{fact}, \texttt{hypothesis}, \texttt{lemma}, \texttt{notation}, \texttt{observation}, \texttt{problem}, \texttt{property}, \texttt{proposition}, \texttt{question}, \texttt{remark}, \texttt{theorem}, et la version non numérotée correspondante avec un astérisque \lstinline|*| dans le nom. Les titres changeront avec la langue actuelle. Par exemple, \texttt{theorem} sera affiché comme «~Theorem~» en mode anglais et «~Théorème~» en mode français. Pour plus de détails sur la façon de sélectionner une langue, veuillez vous référer à la section sur \PJLlang{}.
+Les environnements prédéfinis incluent : \texttt{assumption}, \texttt{axiom}, \texttt{conjecture}, \texttt{convention}, \texttt{corollary}, \texttt{definition}, \texttt{definition-proposition}, \texttt{definition-theorem}, \texttt{example}, \texttt{exercise}, \texttt{fact}, \texttt{hypothesis}, \texttt{lemma}, \texttt{notation}, \texttt{observation}, \texttt{problem}, \texttt{property}, \texttt{proposition}, \texttt{question}, \texttt{remark}, \texttt{theorem}, et la version non numérotée correspondante avec un astérisque \lstinline|*| dans le nom. Les titres changeront avec la langue actuelle. Par exemple, \texttt{theorem} sera affiché comme «~Theorem~» en mode anglais et «~Théorème~» en mode français. Pour plus de détails sur la façon de sélectionner une langue, veuillez vous référer à la section sur \PJLlang{}.
\begin{tip}
Lors du référencement d'un environnement de type théorème, il est recommandé d'utiliser \lstinline|\cref{|\meta{label}\texttt{\}}. De cette façon, il n'est pas nécessaire d'écrire explicitement le nom de l'environnement correspondant à chaque fois.
@@ -1251,7 +1251,7 @@ Si vous avez besoin de définir un nouvel environnement de type théorème, vous
\begin{itemize}
\item Cette approche ne définit qu'un seul nom principal. Les autres noms, tels que ceux utilisés pour référence intelligente, sont définis pour être identiques (en particulier, pour référence intelligente, les noms singulier et pluriel ne seront pas distingués). Lorsque \meta{language name} n'est pas spécifié, le nom sera défini pour toutes les langues prises en charge. De plus, les environnements avec ou sans astérisque partagent le même nom, donc, \lstinline|\NameTheorem{envname*}| a le même effet que \lstinline|\NameTheorem{envname}| .
\end{itemize}
- \item Paramètres détaillés (recommandés) :
+ \item Paramètres détaillés (recommandés) :
\begin{code}
\NameTheorem{(*\meta{name of environment}*)}{
(*\meta{language name 1}*)={
@@ -1275,7 +1275,7 @@ ou
}
\end{code}
\begin{itemize}
- \item Cette approche définit tous les noms. Lorsque \meta{language name} n'est pas spécifié, l'interface complète sera activée ; lorsqu'il est spécifié, seuls les noms de la langue correspondante sont définis. De même, les environnements avec ou sans astérisque partagent le même nom, donc \lstinline|\NameTheorem{envname*}| a le même effet que \lstinline|\NameTheorem{envname}| .
+ \item Cette approche définit tous les noms. Lorsque \meta{language name} n'est pas spécifié, l'interface complète sera activée ; lorsqu'il est spécifié, seuls les noms de la langue correspondante sont définis. De même, les environnements avec ou sans astérisque partagent le même nom, donc \lstinline|\NameTheorem{envname*}| a le même effet que \lstinline|\NameTheorem{envname}| .
\end{itemize}
\end{itemize}
@@ -1283,7 +1283,7 @@ ou
De plus, vous pouvez également nommer un environnement de type théorème tout en le définissant, voir la description de \lstinline|\CreateTheorem| plus tard.
\end{tip}
-Ensuite, créez cet environnement de l'une des cinq manières suivantes :
+Ensuite, créez cet environnement de l'une des cinq manières suivantes :
\vspace{-.3\baselineskip}
\begin{itemize}
\item \lstinline|\CreateTheorem*{|\meta{name of environment}\lstinline|}|
@@ -1319,7 +1319,7 @@ Ensuite, créez cet environnement de l'une des cinq manières suivantes :
\end{tip}
\bigskip
-Vous pouvez également nommer un environnement de type théorème lors de sa définition, en ajoutant ensuite un groupe de parenthèses contenant les paramètres :
+Vous pouvez également nommer un environnement de type théorème lors de sa définition, en ajoutant ensuite un groupe de parenthèses contenant les paramètres :
\begin{code}
\CreateTheorem{(*\meta{name of environment}*)}{
(*\meta{language name 1}*)={
@@ -1344,7 +1344,7 @@ Voici un exemple. Le code suivant :
\CreateTheorem*{proofidea*}
\CreateTheorem{proofidea}<subsection>
\end{code}
-définit un environnement non numéroté \lstinline|proofidea*| et un environnement numéroté \lstinline|proofidea| (numérotés dans la sous-section) respectivement. Ils peuvent être utilisés dans le contexte français. L'effet est le suivant (le style réel est lié à votre classe de document) :
+définit un environnement non numéroté \lstinline|proofidea*| et un environnement numéroté \lstinline|proofidea| (numérotés dans la sous-section) respectivement. Ils peuvent être utilisés dans le contexte français. L'effet est le suivant (le style réel est lié à votre classe de document) :
\begin{proofidea*}
La environnement \lstinline|proofidea*| .
@@ -1355,7 +1355,7 @@ définit un environnement non numéroté \lstinline|proofidea*| et un environnem
\end{proofidea}
\medskip
-Bien sûr, vous pouvez également utiliser un ensemble de nom plus détaillé :
+Bien sûr, vous pouvez également utiliser un ensemble de nom plus détaillé :
\begin{code}
\NameTheorem{proofidea}{
FR = {
@@ -1367,7 +1367,7 @@ Bien sûr, vous pouvez également utiliser un ensemble de nom plus détaillé :
\CreateTheorem*{proofidea*}
\CreateTheorem{proofidea}<subsection>
\end{code}
-ou définissez les noms en les définissant (pour \lstinline|proofidea*| et \lstinline|proofidea|, définir une fois suffit) :
+ou définissez les noms en les définissant (pour \lstinline|proofidea*| et \lstinline|proofidea|, définir une fois suffit) :
\begin{code}
\CreateTheorem*{proofidea*}
\CreateTheorem{proofidea}<subsection>{
@@ -1453,7 +1453,7 @@ In addition, you can use the option \texttt{amsfashion} to enable the \AmS{} fas
%</ProjLib-doc-en>
%
%<*ProjLib-doc-fr>
-\subsubsection{PJLauthor : bloc auteur amélioré}
+\subsubsection{PJLauthor : bloc auteur amélioré}
\PJLauthor{} propose les macros \lstinline|\address|, \lstinline|\curraddr| et \lstinline|\email|, et vous permet de saisir plusieurs groupes d'informations sur l'auteur. L'utilisation standard est comme ceci :
\begin{code}
@@ -1483,7 +1483,8 @@ De plus, vous pouvez utiliser l'option \texttt{amsfashion} pour écrire à la ma
%<*ProjLib-doc-cn>
\subsubsection{PJLdate:智能日期处理}
-\PJLdatePackage{} 提供了 \lstinline|\PLdate|\meta{yyyy-mm-dd} (或 \lstinline|\PJLdate|\meta{yyyy-mm-dd}) 命令,以将 \meta{yyyy-mm-dd} 转换为当前语言的日期格式显示。例如,在当前的中文语境下,\lstinline|\PLdate{2022-04-01}| 会被显示为“\PJLdate{2022-04-01}”,而在英文语境下则会被显示为“\UseOtherLanguage{English}{\PJLdate{2022-04-01}}”。
+\PJLdatePackage{} 提供了 \lstinline|\TheDate|\meta{yyyy-mm-dd} 命令,以将 \meta{yyyy-mm-dd} 转换为当前语言的日期格式显示。例如,在当前的中文语境下,\lstinline|\TheDate{2022-04-01}| 会被显示为“\TheDate{2022-04-01}”,而在英文语境下则会被显示为“\UseOtherLanguage{English}{\TheDate{2022-04-01}}”。
+% 也可使用名称 \lstinline|\PJLdate| 或 \lstinline|\PLdate|,与\lstinline|\TheDate| 效果是相同的。
关于如何选定语言,请参阅关于 \PJLlang{} 的小节。
%</ProjLib-doc-cn>
@@ -1491,15 +1492,17 @@ De plus, vous pouvez utiliser l'option \texttt{amsfashion} pour écrire à la ma
%<*ProjLib-doc-en>
\subsubsection{PJLdate: date-time processing}
-\PJLdatePackage{} offers the \lstinline|\PLdate|\meta{yyyy-mm-dd} (or \lstinline|\PJLdate|\meta{yyyy-mm-dd}) macro to convert \meta{yyyy-mm-dd} into the date format of the currently selected language. For example, in current English context, \lstinline|\PLdate{2022-04-01}| would become ``\PLdate{2022-04-01}'', while in French context as ``\UseOtherLanguage{French}{\PLdate{2022-04-01}}''.
+\PJLdatePackage{} offers the macro \lstinline|\TheDate|\meta{yyyy-mm-dd} to convert \meta{yyyy-mm-dd} into the date format of the currently selected language. For example, in current English context, \lstinline|\TheDate{2022-04-01}| would become ``\TheDate{2022-04-01}'', while in French context as ``\UseOtherLanguage{French}{\TheDate{2022-04-01}}''.
+% Alternatively, you can use the macro names \lstinline|\PJLdate| or \lstinline|\PLdate|, which are the same as \lstinline|\TheDate|.
For details on how to select a language, please refer to the section on \PJLlang{}.
%</ProjLib-doc-en>
%
%<*ProjLib-doc-fr>
-\subsubsection{PJLdate : traitement de date-heure}
+\subsubsection{PJLdate : traitement de date-heure}
-\PJLdatePackage{} propose la macro \lstinline|\PLdate|\meta{yyyy-mm-dd} (ou \lstinline|\PJLdate|\meta{yyyy-mm-dd}) pour convertir \meta{yyyy-mm-dd} dans le format de date de la langue actuellement sélectionnée. Par exemple, dans le contexte français actuel, \lstinline|\PLdate{2022-04-01}| deviendrait «~\PLdate{2022-04-01}~», tandis que dans le contexte anglais «~\UseOtherLanguage{English}{\PLdate{2022-04-01}}~».
+\PJLdatePackage{} propose la macro \lstinline|\TheDate|\meta{yyyy-mm-dd} pour convertir \meta{yyyy-mm-dd} dans le format de date de la langue actuellement sélectionnée. Par exemple, dans le contexte français actuel, \lstinline|\TheDate{2022-04-01}| deviendrait «~\TheDate{2022-04-01}~», tandis que dans le contexte anglais «~\UseOtherLanguage{English}{\TheDate{2022-04-01}}~».
+% Vous pouvez également utiliser les noms \lstinline|\PJLdate| ou \lstinline|\PLdate|, qui sont identiques à \lstinline|\TheDate|.
Pour plus de détails sur la façon de sélectionner une langue, veuillez vous référer à la section sur \PJLlang{}.
%</ProjLib-doc-fr>
@@ -1529,9 +1532,9 @@ For details on how to select a language, please refer to the section on \PJLlang
%</ProjLib-doc-en>
%
%<*ProjLib-doc-fr>
-\subsubsection{PJLdraft : marques de brouillon}
+\subsubsection{PJLdraft : marques de brouillon}
-\PJLdraft{} propose les macros suivantes :
+\PJLdraft{} propose les macros suivantes :
\begin{itemize}
\item \lstinline|\dnf| ou \lstinline|\dnf<...>|. L'effet est : \dnf~ ou \dnf<...>. \\Le texte à l'intérieur changera en fonction de la langue actuelle. Par exemple, il sera affiché sous la forme \UseOtherLanguage{English}{\dnf} en mode anglais.
\item \lstinline|\needgraph| ou \lstinline|\needgraph<...>|. L'effet est : \needgraph ou \needgraph<...>Le texte de l'invite change en fonction de la langue actuelle. Par exemple, en mode anglais, il sera affiché sous la forme \UseOtherLanguage{English}{\needgraph}
@@ -1713,11 +1716,11 @@ These shortcuts and symbols are defined in such a way that they will not conflic
%</ProjLib-doc-en>
%
%<*ProjLib-doc-fr>
-\subsubsection{PJLmath : symboles et raccourcis mathématiques}
+\subsubsection{PJLmath : symboles et raccourcis mathématiques}
-\PJLmath{} propose les raccourcis suivants :
+\PJLmath{} propose les raccourcis suivants :
\begin{enumerate}[label=\roman*)]
- \item \lstinline|\mathfrak{|$\cdot$\lstinline|}| $\longrightarrow$ \lstinline|\mf|$\cdot$ ou \lstinline|\frak|$\cdot$ . Par exemple, \lstinline|\mfA| (ou \lstinline|\mf{A}|) a le même effet que \lstinline|\mathfrak{A}|. Cela fonctionne à la fois pour l'alphabet majuscule et minuscule, produisant :
+ \item \lstinline|\mathfrak{|$\cdot$\lstinline|}| $\longrightarrow$ \lstinline|\mf|$\cdot$ ou \lstinline|\frak|$\cdot$ . Par exemple, \lstinline|\mfA| (ou \lstinline|\mf{A}|) a le même effet que \lstinline|\mathfrak{A}|. Cela fonctionne à la fois pour l'alphabet majuscule et minuscule, produisant :
\begin{align*}
\mfa\mfb\mfc\mfd\mfe\mff\mfg\mfh\mfi\mfj\mfk\mfl\mfm\mfn&\mfo\mfp\mfq\mfr\mfs\mft\mfu\mfv\mfw\mfx\mfy\mfz\\
\mfA\mfB\mfC\mfD\mfE\mfF\mfG\mfH\mfI\mfJ\mfK\mfL\mfM\mfN&\mfO\mfP\mfQ\mfR\mfS\mfT\mfU\mfV\mfW\mfX\mfY\mfZ
@@ -1867,10 +1870,10 @@ Il est recommandé de les passer comme options globales de la classe de document
\begin{itemize}[itemsep=.6em]
\item \PJLauthor{} est encore à son stade préliminaire, son effet n'est pas aussi bon que le \textsf{authblk} qui est relativement mature.
- \item \PJLlang{} : C'est encore assez problématique avec la configuration de \textsf{polyglossia}, donc les fonctionnalités principales sont implémentées via \textsf{babel} pour le moment.
+ \item \PJLlang{} : C'est encore assez problématique avec la configuration de \textsf{polyglossia}, donc les fonctionnalités principales sont implémentées via \textsf{babel} pour le moment.
\item \PJLpaper{} : l'option \texttt{preview} est principalement implémentée à l'aide du package \textsf{geometry}, elle ne fonctionne donc pas aussi bien dans les classes de documents \textsc{\textsf{Koma}}.
- \item \PJLthm{} : les paramètres de numérotation et de style théorème des environnements de type théorème ne sont actuellement pas accessibles à l'utilisateur.
- \item \PJLthm{} : la localisation de \textsf{cleveref} n'est pas encore finie pour toutes les langues prises en charge par \PJLlang{}, en particulier pour le chinois, le japonais et le russe.
+ \item \PJLthm{} : les paramètres de numérotation et de style théorème des environnements de type théorème ne sont actuellement pas accessibles à l'utilisateur.
+ \item \PJLthm{} : la localisation de \textsf{cleveref} n'est pas encore finie pour toutes les langues prises en charge par \PJLlang{}, en particulier pour le chinois, le japonais et le russe.
\item Le mécanisme de gestion des erreurs est incomplet : pas de messages correspondants lorsque certains problèmes surviennent.
\item Il y a encore beaucoup de choses qui peuvent être optimisées dans le code. Certains codes prennent trop de temps à s'exécuter, en particulier la configuration d'environnements de type théorème dans \PJLthm{}.
\end{itemize}
diff --git a/macros/latex/contrib/projlib/ProjLib.dtx b/macros/latex/contrib/projlib/ProjLib.dtx
index df6346d91f..adfc509e76 100644
--- a/macros/latex/contrib/projlib/ProjLib.dtx
+++ b/macros/latex/contrib/projlib/ProjLib.dtx
@@ -18,47 +18,47 @@
%
%<*ProjLib>
\ProvidesPackage{ProjLib}
- [2021/11/09 The collective interface of ProjLib toolkit]
+ [2021/12/16 The collective interface of ProjLib toolkit]
%</ProjLib>
%
%<*PJLauthor>
\ProvidesPackage{PJLauthor}
- [2021/11/09 Enhanced author information block]
+ [2021/12/16 Enhanced author information block]
%</PJLauthor>
%
%<*PJLdate>
\ProvidesPackage{PJLdate}
- [2021/11/09 Convert yyyy-mm-dd to normal datetime format]
+ [2021/12/16 Convert yyyy-mm-dd to normal datetime format]
%</PJLdate>
%
%<*PJLdraft>
\ProvidesPackage{PJLdraft}
- [2021/11/09 Some useful macros for the draft stage]
+ [2021/12/16 Some useful macros for the draft stage]
%</PJLdraft>
%
%<*PJLlang>
\ProvidesPackage{PJLlang}
- [2021/11/09 Multi-language configuration]
+ [2021/12/16 Multi-language configuration]
%</PJLlang>
%
%<*PJLlogo>
\ProvidesPackage{PJLlogo}
- [2021/11/09 The ProjLib logo]
+ [2021/12/16 The ProjLib logo]
%</PJLlogo>
%
%<*PJLmath>
\ProvidesPackage{PJLmath}
- [2021/11/09 Useful math macros and shortcuts]
+ [2021/12/16 Useful math macros and shortcuts]
%</PJLmath>
%
%<*PJLpaper>
\ProvidesPackage{PJLpaper}
- [2021/11/09 Paper style configuration]
+ [2021/12/16 Paper style configuration]
%</PJLpaper>
%
%<*PJLthm>
\ProvidesPackage{PJLthm}
- [2021/11/09 Theorem setup and configuration]
+ [2021/12/16 Theorem setup and configuration]
%</PJLthm>
%
%# 下面两行引入宏包的代码是所有文件共用的。
@@ -380,8 +380,9 @@
\if@PJLdate@draft
\@PJLdate@fasttrue
\fi
-%# 将 PJLdate 与 PLdate 等同
-%# To make PLdate and PJLdate equivalent
+%# 定义 \PJLdate 的同义指令
+%# Define synonym macros of \PJLdate
+\DeclareDocumentCommand{\TheDate}{}{\PJLdate}
\DeclareDocumentCommand{\PLdate}{}{\PJLdate}
%# 快速模式下直接输出原日期字符串
%# Directly output the original date string in fast mode
@@ -3677,10 +3678,6 @@
%# 使用 microtype 优化排版细节
%# Use `microtype` to get details better
\RequirePackage{microtype}
-\AtEndPreamble{\AtBeginDocument{\microtypesetup{deactivate}{\scshape}\microtypesetup{reactivate}}}
-\AtEndPreamble{\AtBeginDocument{\microtypesetup{deactivate}{\bfseries\scshape}\microtypesetup{reactivate}}}
-\AtEndPreamble{\AtBeginDocument{\microtypesetup{deactivate}{\sffamily\scshape}\microtypesetup{reactivate}}}
-\AtEndPreamble{\AtBeginDocument{\microtypesetup{deactivate}{\ttfamily\scshape}\microtypesetup{reactivate}}}
%</ProjLib>
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/spbmark/spbmark.pdf b/macros/latex/contrib/spbmark/spbmark.pdf
index 2bdd91a752..a7d8f24997 100644
--- a/macros/latex/contrib/spbmark/spbmark.pdf
+++ b/macros/latex/contrib/spbmark/spbmark.pdf
Binary files differ
diff --git a/macros/latex/contrib/spbmark/spbmark.sty b/macros/latex/contrib/spbmark/spbmark.sty
index 099f871f20..37be59700c 100644
--- a/macros/latex/contrib/spbmark/spbmark.sty
+++ b/macros/latex/contrib/spbmark/spbmark.sty
@@ -9,7 +9,7 @@
% https://creativecommons.org/licenses/by/4.0/legalcode
\NeedsTeXFormat{LaTeX2e}[2018/12/31]
\RequirePackage{xparse,l3keys2e}
-\ProvidesExplPackage{spbmark}{2021/12/15}{1.2}
+\ProvidesExplPackage{spbmark}{2021/12/15}{1.2A}
{Customize superscripts and subscripts}
\cs_generate_variant:Nn \dim_max:nn { VV }
@@ -128,6 +128,18 @@
\use:c { hbox_overlap_#1:n }
{ \spb_boxb_move_down:V \l__spb_supersub_vsep_dim }
}
+\cs_set_eq:NN \spb@textsuperscript@save \textsuperscript
+\cs_set_eq:NN \spb@textsubscript@save \textsubscript
+\cs_set_eq:NN \spb@sp@save \sp
+\cs_set_eq:NN \spb@sb@save \sb
+\cs_new:Npn \spb_math:nn #1
+ {
+ \str_case:nn {#1}
+ {
+ { super } { \spb@sp@save }
+ { sub } { \spb@sb@save }
+ }
+ }
\cs_new:Npn \spb_math_print_store_i:nn #1#2
{
\hbox_set:Nn \l_tmpa_box
@@ -163,18 +175,6 @@
{ \spb@textsubscript@save{#2} }
}
}
-\cs_set_eq:NN \spb@textsuperscript@save \textsuperscript
-\cs_set_eq:NN \spb@textsubscript@save \textsubscript
-\cs_set_eq:NN \spb@sp@save \sp
-\cs_set_eq:NN \spb@sb@save \sb
-\cs_new:Npn \spb_math:nn #1
- {
- \str_case:nn {#1}
- {
- { super } { \spb@sp@save }
- { sub } { \spb@sb@save }
- }
- }
\cs_new_protected:Npn \spb_box_ht_dp_assign:nn #1#2
{
\tl_if_empty:nF {#1} { \box_set_ht:Nn \l_tmpb_box {#1} }
diff --git a/macros/latex/contrib/spbmark/spbmark.tex b/macros/latex/contrib/spbmark/spbmark.tex
index 9387433d0f..8a4e5d9a92 100644
--- a/macros/latex/contrib/spbmark/spbmark.tex
+++ b/macros/latex/contrib/spbmark/spbmark.tex
@@ -6,7 +6,7 @@
{
package = spbmark,
title = the spbmark package,
- version = v1.2,
+ version = v1.2A,
date = 2021/12/15,
authors = Qu Yi,
info = Customize superscript and subscript,
@@ -104,9 +104,9 @@ The following list of keys control the format both of superscript or subscript.
Cancel the horizontal offset of superscript and subscript at the same time.
\opt{novshift}\Default!
Cancel the vertical offset of superscript and subscript at the same time.
- \keyval{spcmd}{format code}\Default
+ \keyval{spcmd}{format cmds}\Default
Control the format of superscript, the last command in the code can take an argument, which is a superscript.
- \keyval{sbcmd}{format code}\Default
+ \keyval{sbcmd}{format cmds}\Default
Control the format of subscript, the last command in the code can take an argument, which is a subscript.
\end{options}
@@ -116,8 +116,8 @@ The following list of keys control the format of superscript and subscript.
\begin{options}
\keyval{spbhshift}{fixed length}\Default{0pt}
Extra vertical shift of the superscript and the subscript.
- \kvsplit{spbcmd}{super code}{sub code}\Default
- Control the format of superscript or subscript. The first part is in superscript format, and the latter part is in subscript format. The two are separated by commas, or only the first part exists.
+ \kvsplit{spbcmd}{super cmds}{sub cmds}\Default
+ Control the format of superscript or subscript. The first part is in superscript format, and the latter part is in subscript format. They are separated by commas, or only the first part exists.
\keyval{vsep}{fixed length}\Default{0.3ex}
The distance between superscript and subscript, its default value is \code{0.3ex}.
\keychoice{halign}{l,c,r}\Default{l}
@@ -147,9 +147,9 @@ It can also be used with the \pkg*{siunitx} package to output superscript and su
If you need to use the original definitions of \cs{textsuperscript}, \cs{textsubscript}, \cs{sp} and \cs{sb} after using the \option{text} or \option{math} option, then you can use the following commands:
\begin{commands}
\command{spb@textsuperscript@save}[\marg{content}]
- Save the original definition of the \cs{textsuperscript} command, output superscript in the text.
+ Save the original definition of the \cs{textsuperscript} command, output superscript in the text mode.
\command{spb@textsubscript@save}[\marg{content}]
- Save the original definition of the \cs{textsubscript} command, output subscript in the text.
+ Save the original definition of the \cs{textsubscript} command, output subscript in the text mode.
\command{spb@sp@save}[\marg{content}]
Save the original definition of the \cs{sp} command, output superscript in the math mode.
\command{spb@sb@save}[\marg{content}]
diff --git a/macros/latex/contrib/tcolorbox/CHANGES b/macros/latex/contrib/tcolorbox/CHANGES.md
index a8166b7894..382ed3d10b 100644
--- a/macros/latex/contrib/tcolorbox/CHANGES
+++ b/macros/latex/contrib/tcolorbox/CHANGES.md
@@ -1,21 +1,166 @@
-%% The LaTeX package tcolorbox - version 4.51 (2021/06/14)
-%%
-%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot 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 (at your option) any later version.
-%% The latest version of this license is in
-%% http://www.latex-project.org/lppl.txt
-%% and version 1.3 or later is part of all distributions of LaTeX
-%% version 2005/12/01 or later.
-%%
-%% This work has the LPPL maintenance status `author-maintained'.
-%%
-%% This work consists of all files listed in README
-%%
+# Changelog
+All notable changes to this project will be documented in this file.
+
+The format is based on
+[Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
+and this project adheres to
+[Semantic Versioning](http://semver.org/spec/v2.0.0.html).
+
+## [Unreleased]
+
+### Added
+
+### Changed
+
+### Deprecated
+
+### Removed
+
+### Fixed
+
+### Security
+
+
+
+## [5.0.0] - 2021-12-16
+
+### Added
+- Library `skins`: Option `attach boxed title to top text left`
+- Library `skins`: Option `attach boxed title to top text right`
+- Library `skins`: Option `attach boxed title to bottom text left`
+- Library `skins`: Option `attach boxed title to bottom text right`
+- Library `theorems`: Option `theorem number`
+- Library `minted`: Option `default minted options`
+- Library `minted`: Temporary patch `\tcbTemporaryPatchMintedFancyvrb`
+ for the current minted/fancyvrb package clash (issue #158)
+
+### Changed
+- Changelog is switched to Markdown for entries from 2021 on
+ [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+- From now on version numbers adhere to
+ [Semantic Versioning](http://semver.org/spec/v2.0.0.html)
+- Library `documentation`: warn about not installed `marvosym` and `pifont` (issue #153)
+- Environments wrapped with `\tcolorboxenvironment` are now compatible with
+ all three capture modes `minipage`, `hbox`, and `fitbox` (issue #154)
+- Meaningful error prompts when using unknown capture modes (issue #156)
+- Library `raster`: Inside a raster, `tcbrasternum` can now be
+ referenced using `label={mylabel}`, if the box is not numbered otherwise (issue #81 and #119)
+- Library `theorem`: Theorems with empty display name are now possible without glitches
+- Library `theorem`: Major code parts rewritten in expl3 code
+- Internal layer accounting changed from LaTeX to TeX code to avoid problems with counter macro
+ manipulations by amsmath alignment environments (issue #160)
+- Library `minted`: Option `minted options` now initialized with `default minted options`
+- Library `minted`: Code parts rewritten in expl3 code
+
+### Removed
+- Library 'theorems': `\tcbmaketheorem` removed which is deprecated since version 2.40 (2013/07/15).
+ Use `\newtcbtheorem` instead.
+
+### Fixed
+- Library `documentation`: Inconsistent local/global assignment corrected (issue #144)
+- Documentation: Changed bibtex link corrected (issue #145)
+- Library `breakable`: Option `use color stack` was order dependant (issue #157)
+- Library `raster`: Numbering for rasters inside rasters
+- In certain situations options were set twice
+
+
+
+## [4.51] - 2021-06-14
+
+### Changed
+- Library `documentation`: Package loading of `marvosym` and `pifont`
+ removed. Symbols are accessed directly now by `documentation`.
+
+### Fixed
+- Allocation error for write registers
+
+
+
+## [4.50] - 2021-05-21
+
+### Added
+- Library `skins`: Option `opacitybacklower`
+- Library `skins`: Option `bicolor jigsaw`
+- Library `skins`: Option `bicolorfirst jigsaw`
+- Library `skins`: Option `bicolormiddle jigsaw`
+- Library `skins`: Option `bicolorlast jigsaw`
+- Library `theorems`: Option `theorem hanging indent` (issue #126)
+
+### Changed
+- Documentation: Using group around arguments for title in the examples (issue #125)
+- Documentation: Recommend to use initialization options after loading hyperref (issue #135)
+- Documentation: Warn user about white title color becoming invisible
+ for the skin `empty` (issue #118)
+- Documentation: Corrections (issue #127)
+- Documentation of library `skins` is split into a general part and the catalog of skins
+- Allocate write registers `\tcb@out` and `\tcb@record@out` only when needed (issue #134)
+- `\tcblistof` enhanced to take an optional short title and mimic
+ `\listoffigures` where applicable (issue #124)
+- Library `skins`: Implementation of bicolor overhauled
+- Skin documentation complemented with sidebyside examples
+- Library `vignette`: Documentation examples for fading styles for every side added (issue #136)
+- Library `raster`: `\thetcbrasternum` changed to output the content of a counter (issue #119)
+- LaTeX counter `tcbrasterrow`, `tcbrastercolumn`, `tcbrasternum` documented.
+
+
+
+## [4.42] - 2020-10-09
+
+### Added
+- Library `breakble`: Option `use color stack`
+
+### Changed
+- Due to several problems with the color algorithm introduced with version 4.32,
+ essentially reversion to the proven pre 4.32 method.
+ - support of luacolor persists (since 4.32)
+ - color stacks (by pdfcol) are not mandatory any more,
+ but are optional now with `use color stack`. Note that effects of whatsits
+ on the vertical space have to be expected.
+
+
+
+## [4.41] - 2020-09-29
+
+### Fixed
+- Color bleeding for xelatex and breakable boxes (since 4.32) (issue #120)
+
+
+
+## [4.40] - 2020-09-25
+
+### Added
+- Support `hbox` for `minted` listings (issue #2)
+- New default vertical space options (issue #115)
+ - Option `before skip balanced`
+ - Option `after skip balanced`
+ - Option `beforeafter skip balanced`
+ - NOTE: These options replace the current default options
+ `parskip`, `noparskip`, `autoparskip`
+ - WARNING: Old documents may need adapted manual page breaks where used.
+ Otherwise: Use `\tcbsetforeverylayer{autoparskip}`
+ to restore the old behavior!
+
+### Changed
+- `capture=hbox` applies `\@parboxrestore` now to allow e.g. hbox style
+ listings inside indented environments like itemize (issue #113)
+- `before skip` and `before skip balanced` do not insert glue now, if
+ the tcolorbox is the first element in a minipage (or sourrounding tcolorbox)
+
+### Deprecated
+- Option `parskip`
+- Option `noparskip`
+- Option `autoparskip`
+
+### Fixed
+- `IfBooleanT`, `IfBooleanF` (issue #114)
+- `widget` set `toprule at break` and needed the breakable library (issue #117)
+- `marker` set `breakable` and needed the breakable library
+
+
+
+The following entries are following the old style (no Markdown, switched timeflow)
+==================================================================================
+
(2006-2011): pre publication usage
@@ -1165,62 +1310,3 @@ version 4.32 (2020/09/17)
* new options (#111): 'IfNoValueT', 'IfNoValueF', 'IfValueT', 'IfValueF',
'IfBooleanT', 'IfBooleanF'
-version 4.40 (2020/09/25)
-- bug fix (#114): 'IfBooleanT', 'IfBooleanF'
-- bug fix (#117): 'widget' set 'toprule at break' and needed the breakable library
-- (bug) fix: style 'marker' set 'breakable' and needed the breakable library
-- (#113) 'capture=hbox' applies '\@parboxrestore' now to allow e.g. hbox style
- listings inside indented environments like itemize
-- (#2) support 'hbox' for 'minted' listings
-- (#115) New default vertical space options
- 'before skip balanced', 'after skip balanced', 'beforeafter skip balanced'
- NOTE: These options replace the current default options
- 'parskip', 'noparskip', 'autoparskip'
- WARNING: Old documents may need adapted manual page breaks where used.
- Otherwise: Use \tcbsetforeverylayer{autoparskip}
- to restore the old behavior!
-- 'before skip' and 'before skip balanced' do not insert glue now, if
- the tcolorbox is the first element in a minipage (or sourrounding tcolorbox)
-
-version 4.41 (2020/09/29)
-- bug fix (#120): color bleeding for xelatex and breakable boxes (since 4.32)
-
-version 4.42 (2020/10/09)
-- due to several problems with the color algorithm introduced with version 4.32,
- essentially reversion to the proven pre 4.32 method.
- * support of luacolor persists (since 4.32)
- * color stacks (by pdfcol) are not mandatory any more,
- but are optional now with 'use color stack'. Note that effects of whatsits
- on the vertical space have to be expected.
-
-version 4.50 (2021/05/21)
-- bug fix (#128): 'tcbincludepdf' ignored some raster options
-- bug fix (#138): visible seam for 'bicolor' and 'tile' in 'sidebyside' mode
- around the lower (i.e. rightward) part
-- (#125) Using group around arguments for title in the examples
-- (#134) Allocate write registers \tcb@out and \tcb@record@out only when needed
-- (#135) Documentation: recommend to use initialization options after loading hyperref
-- (#118) Documentation: warn user about white title color becoming invisible
- for the skin 'empty'
-- documentation correction (#127)
-- documentation of library skins is split into a general part and the catalog of skins
-- (#124) '\tcblistof' enhanced to take an optional short title and mimic
- '\listoffigures' where applicable
-- library 'skins':
- * new option 'opacitybacklower'
- * new jigsaw variant of 'bicolor':
- 'bicolor jigsaw', 'bicolorfirst jigsaw', 'bicolormiddle jigsaw', 'bicolorlast jigsaw'
- * implementation of bicolor overhauled
- * skin documentation complemented with sidebyside examples.
-- library 'theorems':
- * (#126) new option 'theorem hanging indent'
-- library 'vignette':
- * (#133) documentation examples for fading styles for every side added
-- library 'raster':
- * (#119) '\thetcbrasternum' changed output the content of a counter.
- LaTeX counter 'tcbrasterrow', 'tcbrastercolumn', 'tcbrasternum' documented.
-
-version 4.51 (2021/06/14)
-- bug fix: allocation error for write registers
-- (#139) library 'documentation': package loading of 'marvosym' and 'pifont'
- removed. Symbols are accessed directly now by 'documentation'.
diff --git a/macros/latex/contrib/tcolorbox/README b/macros/latex/contrib/tcolorbox/README
deleted file mode 100644
index 5f0ebb3370..0000000000
--- a/macros/latex/contrib/tcolorbox/README
+++ /dev/null
@@ -1,95 +0,0 @@
-%% The LaTeX package tcolorbox - version 4.51 (2021/06/14)
-%%
-%% -------------------------------------------------------------------------------------------
-%% Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot 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 (at your option) any later version.
-%% The latest version of this license is in
-%% http://www.latex-project.org/lppl.txt
-%% and version 1.3 or later is part of all distributions of LaTeX
-%% version 2005/12/01 or later.
-%%
-%% This work has the LPPL maintenance status `author-maintained'.
-%%
-%% This work consists of all files listed in README
-%%
-
-tcolorbox provides an environment for colored and framed text boxes with a
-heading line. Optionally, such a box can be split in an upper and a lower
-part. The package tcolorbox can be used for the setting of LaTeX examples where
-one part of the box displays the source code and the other part shows the
-output. Another common use case is the setting of theorems. The package supports
-saving and reuse of source code and text parts.
-
-Contents of the package
-=======================
- 'README' this file
- 'CHANGES' log of changes (history)
- 'tcolorbox.sty' LaTeX package file (style file)
- 'tcbbreakable.code.tex' LaTeX package file (library of tcolorbox)
- 'tcbdocumenation.code.tex' LaTeX package file (library of tcolorbox)
- 'tcbexternal.code.tex' LaTeX package file (library of tcolorbox)
- 'tcbfitting.code.tex' LaTeX package file (library of tcolorbox)
- 'tcbhooks.code.tex' LaTeX package file (library of tcolorbox)
- 'tcblistings.code.tex' LaTeX package file (library of tcolorbox)
- 'tcblistingscore.code.tex' LaTeX package file (library of tcolorbox)
- 'tcblistingsutf8.code.tex' LaTeX package file (library of tcolorbox)
- 'tcbmagazine.code.tex' LaTeX package file (library of tcolorbox)
- 'tcbminted.code.tex' LaTeX package file (library of tcolorbox)
- 'tcbposter.code.tex' LaTeX package file (library of tcolorbox)
- 'tcbprocessing.code.tex' LaTeX package file (library of tcolorbox)
- 'tcbraster.code.tex' LaTeX package file (library of tcolorbox)
- 'tcbskins.code.tex' LaTeX package file (library of tcolorbox)
- 'tcbskinsjigsaw.code.tex' LaTeX package file (library of tcolorbox)
- 'tcbtheorems.code.tex' LaTeX package file (library of tcolorbox)
- 'tcbvignette.code.tex' LaTeX package file (library of tcolorbox)
- 'tcbxparse.code.tex' LaTeX package file (library of tcolorbox)
- 'blueshade.png' Picture (package)
- 'crinklepaper.png' Picture (package)
- 'goldshade.png' Picture (package)
- 'pink_marble.png' Picture (package)
- 'tcolorbox.pdf' Documentation for tcolorbox
- 'tcolorbox.tex' Source code of the documentation (main file)
- '*.doc.*' Source code of the documentation (include files)
- 'tcolorbox-tutorial-poster.pdf' Tutorial for poster creation
- 'tcolorbox-tutorial-poster.tex' Source code of the tutorial
- 'tcolorbox-example.tex' Example file for package usage
- 'tcolorbox-example.pdf' Compiled example
- 'tcolorbox-example-poster.tex' Example file for package usage
- 'tcolorbox-example-poster.pdf' Compiled example
- 'Basilica_5.png' Example picture
- 'lichtspiel.jpg' Example picture
-
-Installation
-============
-Copy the contents of the 'tcolorbox.tds.zip' from CTAN to your local TeX file tree.
-
-Alternatively, put the files to their respective locations within the TeX installation:
- 'tcolorbox.sty' -> /tex/latex/tcolorbox
- 'tcbbreakable.code.tex' -> /tex/latex/tcolorbox
- 'tcbdocumenation.code.tex' -> /tex/latex/tcolorbox
- 'tcbexternal.code.tex' -> /tex/latex/tcolorbox
- 'tcbfitting.code.tex' -> /tex/latex/tcolorbox
- 'tcbhooks.code.tex' -> /tex/latex/tcolorbox
- 'tcblistings.code.tex' -> /tex/latex/tcolorbox
- 'tcblistingscore.code.tex' -> /tex/latex/tcolorbox
- 'tcblistingsutf8.code.tex' -> /tex/latex/tcolorbox
- 'tcbmagazine.code.tex' -> /tex/latex/tcolorbox
- 'tcbminted.code.tex' -> /tex/latex/tcolorbox
- 'tcbposter.code.tex' -> /tex/latex/tcolorbox
- 'tcbprocessing.code.tex' -> /tex/latex/tcolorbox
- 'tcbraster.code.tex' -> /tex/latex/tcolorbox
- 'tcbskins.code.tex' -> /tex/latex/tcolorbox
- 'tcbskinsjigsaw.code.tex' -> /tex/latex/tcolorbox
- 'tcbtheorems.code.tex' -> /tex/latex/tcolorbox
- 'tcbvignette.code.tex' -> /tex/latex/tcolorbox
- 'tcbxparse.code.tex' -> /tex/latex/tcolorbox
- 'blueshade.png' -> /tex/latex/tcolorbox
- 'crinklepaper.png' -> /tex/latex/tcolorbox
- 'goldshade.png' -> /tex/latex/tcolorbox
- 'pink_marble.png' -> /tex/latex/tcolorbox
-
- all other files -> /doc/latex/tcolorbox
diff --git a/macros/latex/contrib/tcolorbox/README.md b/macros/latex/contrib/tcolorbox/README.md
new file mode 100644
index 0000000000..7948f69f80
--- /dev/null
+++ b/macros/latex/contrib/tcolorbox/README.md
@@ -0,0 +1,96 @@
+# The LaTeX package tcolorbox - version 5.0.0 (2021/12/16)
+
+
+> Copyright (c) 2006-2021 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot 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 (at your option) any later version.
+> The latest version of this license is in
+> http://www.latex-project.org/lppl.txt
+> and version 1.3 or later is part of all distributions of LaTeX
+> version 2005/12/01 or later.
+
+> This work has the LPPL maintenance status author-maintained.
+
+> This work consists of all files listed in README.md
+
+
+`tcolorbox` provides an environment for colored and framed text boxes with a
+heading line. Optionally, such a box can be split in an upper and a lower
+part. The package `tcolorbox` can be used for the setting of *LaTeX* examples where
+one part of the box displays the source code and the other part shows the
+output. Another common use case is the setting of theorems. The package supports
+saving and reuse of source code and text parts.
+
+
+## Contents of the package
+
+- `README.md` this file
+- `CHANGES.md` log of changes (history)
+- `tcolorbox.sty` LaTeX package file (style file)
+- `tcbbreakable.code.tex` LaTeX package file (library of tcolorbox)
+- `tcbdocumenation.code.tex` LaTeX package file (library of tcolorbox)
+- `tcbexternal.code.tex` LaTeX package file (library of tcolorbox)
+- `tcbfitting.code.tex` LaTeX package file (library of tcolorbox)
+- `tcbhooks.code.tex` LaTeX package file (library of tcolorbox)
+- `tcblistings.code.tex` LaTeX package file (library of tcolorbox)
+- `tcblistingscore.code.tex` LaTeX package file (library of tcolorbox)
+- `tcblistingsutf8.code.tex` LaTeX package file (library of tcolorbox)
+- `tcbmagazine.code.tex` LaTeX package file (library of tcolorbox)
+- `tcbminted.code.tex` LaTeX package file (library of tcolorbox)
+- `tcbposter.code.tex` LaTeX package file (library of tcolorbox)
+- `tcbprocessing.code.tex` LaTeX package file (library of tcolorbox)
+- `tcbraster.code.tex` LaTeX package file (library of tcolorbox)
+- `tcbskins.code.tex` LaTeX package file (library of tcolorbox)
+- `tcbskinsjigsaw.code.tex` LaTeX package file (library of tcolorbox)
+- `tcbtheorems.code.tex` LaTeX package file (library of tcolorbox)
+- `tcbvignette.code.tex` LaTeX package file (library of tcolorbox)
+- `tcbxparse.code.tex` LaTeX package file (library of tcolorbox)
+- `blueshade.png` Picture (package)
+- `crinklepaper.png` Picture (package)
+- `goldshade.png` Picture (package)
+- `pink_marble.png` Picture (package)
+- `tcolorbox.pdf` Documentation for tcolorbox
+- `tcolorbox.tex` Source code of the documentation (main file)
+- `*.doc.*` Source code of the documentation (include files)
+- `tcolorbox-tutorial-poster.pdf` Tutorial for poster creation
+- `tcolorbox-tutorial-poster.tex` Source code of the tutorial
+- `tcolorbox-example.tex` Example file for package usage
+- `tcolorbox-example.pdf` Compiled example
+- `tcolorbox-example-poster.tex` Example file for package usage
+- `tcolorbox-example-poster.pdf` Compiled example
+- `Basilica_5.png` Example picture
+- `lichtspiel.jpg` Example picture
+
+
+## Installation
+
+Copy the contents of the `tcolorbox.tds.zip` from CTAN to your local TeX file tree.
+
+Alternatively, put the files to their respective locations within the TeX installation:
+
+- `tcolorbox.sty` -> /tex/latex/tcolorbox
+- `tcbbreakable.code.tex` -> /tex/latex/tcolorbox
+- `tcbdocumenation.code.tex` -> /tex/latex/tcolorbox
+- `tcbexternal.code.tex` -> /tex/latex/tcolorbox
+- `tcbfitting.code.tex` -> /tex/latex/tcolorbox
+- `tcbhooks.code.tex` -> /tex/latex/tcolorbox
+- `tcblistings.code.tex` -> /tex/latex/tcolorbox
+- `tcblistingscore.code.tex` -> /tex/latex/tcolorbox
+- `tcblistingsutf8.code.tex` -> /tex/latex/tcolorbox
+- `tcbmagazine.code.tex` -> /tex/latex/tcolorbox
+- `tcbminted.code.tex` -> /tex/latex/tcolorbox
+- `tcbposter.code.tex` -> /tex/latex/tcolorbox
+- `tcbprocessing.code.tex` -> /tex/latex/tcolorbox
+- `tcbraster.code.tex` -> /tex/latex/tcolorbox
+- `tcbskins.code.tex` -> /tex/latex/tcolorbox
+- `tcbskinsjigsaw.code.tex` -> /tex/latex/tcolorbox
+- `tcbtheorems.code.tex` -> /tex/latex/tcolorbox
+- `tcbvignette.code.tex` -> /tex/latex/tcolorbox
+- `tcbxparse.code.tex` -> /tex/latex/tcolorbox
+- `blueshade.png` -> /tex/latex/tcolorbox
+- `crinklepaper.png` -> /tex/latex/tcolorbox
+- `goldshade.png` -> /tex/latex/tcolorbox
+- `pink_marble.png` -> /tex/latex/tcolorbox
+- all other files -> /doc/latex/tcolorbox
diff --git a/macros/latex/contrib/tcolorbox/tcbbreakable.code.tex b/macros/latex/contrib/tcolorbox/tcbbreakable.code.tex
index 90724439f4..9b51bcdc38 100644
--- a/macros/latex/contrib/tcolorbox/tcbbreakable.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbbreakable.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 4.51 (2021/06/14)
+%% The LaTeX package tcolorbox - version 5.0.0 (2021/12/16)
%% tcbbreakable.code.tex: Code for breakable colorboxes
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{4.51}
+\tcb@set@library@version{5.0.0}
\RequirePackage{pdfcol}
\pdfcolInitStack{tcb@breakable}
@@ -912,7 +912,7 @@
}
-\def\tcb@init@breakability{%
+\def\tcb@init@breakable{%
\let\tcb@savebox=\tcb@vbox%
\let\endtcb@savebox=\endtcb@vbox%
\let\tcb@drawcolorbox=\tcb@drawcolorbox@breakable%
@@ -927,16 +927,16 @@
\tcbset{%
breakable@true/.code={%
- \tcb@init@breakability%
+ \tcb@isbreakabletrue%
\let\tcb@defToTotalHeight=\tcb@defToTotalHeightBreakable},
breakable@unlimited/.code={%
- \tcb@init@breakability%
+ \tcb@isbreakabletrue%
\let\tcb@defToTotalHeight=\tcb@defToTotalHeightUnlimited},
breakable/.style={breakable@#1},
breakable/.default=true,%
unbreakable/.style={breakable=false},%
enforce breakable/.code={%
- \tcb@init@breakability%
+ \tcb@isbreakabletrue%
\let\tcb@defToTotalHeight=\tcb@defToTotalHeightBreakable},
title after break/.store in=\kvtcb@followingtitle,%
notitle after break/.style={title after break=},%
diff --git a/macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex b/macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex
index 0264f5406d..1c9689d7a7 100644
--- a/macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 4.51 (2021/06/14)
+%% The LaTeX package tcolorbox - version 5.0.0 (2021/12/16)
%% tcbdocumentation.code.tex: Code for LaTeX documentations
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{4.51}
+\tcb@set@library@version{5.0.0}
\tcbuselibrary{listings,skins,xparse,external,raster}
@@ -25,6 +25,8 @@
\RequirePackage{refcount}[2011/10/16]
\RequirePackage{hyperref}[2012/02/06]
\ifdefined\marginnote\else\RequirePackage{marginnote}[2012/03/29]\fi
+\IfFileExists{pifont.sty}{}{\tcb@warning{Library 'documentation' may need symbols from package 'pifont' (not installed)}}
+\IfFileExists{marvosym.sty}{}{\tcb@warning{Library 'documentation' may need symbols from package 'marvosym' (not installed)}}
\definecolor{Option}{rgb}{0.118,0.546,0.222}
\definecolor{Definition}{rgb}{0.784,0.06,0.176}
@@ -371,7 +373,7 @@
{
\tcbset{doc~name=, doc~parameter=, doc~description=, #1}
\begin{tcb@manual@entry}
- \seq_clear:N \g__tcobox_label_seq
+ \seq_gclear:N \g__tcobox_label_seq
\begin{tcbraster}[raster~columns=1,raster~row~skip=0pt,
raster~after~skip=4.1pt,raster~force~size=false,doc@raster@#3]
\seq_set_from_clist:Nn \l_tmpa_seq {#2}
@@ -391,7 +393,7 @@
\group_end:
}
\end{tcbraster}
- \seq_clear:N \g__tcobox_label_seq
+ \seq_gclear:N \g__tcobox_label_seq
\nobreak
\tcbset{before~upper=}
\use:c { kvtcb@doc@body@#3@before }
diff --git a/macros/latex/contrib/tcolorbox/tcbexternal.code.tex b/macros/latex/contrib/tcolorbox/tcbexternal.code.tex
index ffddc26eb5..fedb6fc58c 100644
--- a/macros/latex/contrib/tcolorbox/tcbexternal.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbexternal.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 4.51 (2021/06/14)
+%% The LaTeX package tcolorbox - version 5.0.0 (2021/12/16)
%% tcbexternal.code.tex: Code for externalization
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{4.51}
+\tcb@set@library@version{5.0.0}
\tcbuselibrary{pro@cessing}
diff --git a/macros/latex/contrib/tcolorbox/tcbfitting.code.tex b/macros/latex/contrib/tcolorbox/tcbfitting.code.tex
index f3498292ed..d65e520c9b 100644
--- a/macros/latex/contrib/tcolorbox/tcbfitting.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbfitting.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 4.51 (2021/06/14)
+%% The LaTeX package tcolorbox - version 5.0.0 (2021/12/16)
%% tcbfitting.code.tex: Code for fit boxes
%%
%% -------------------------------------------------------------------------------------------
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{4.51}
+\tcb@set@library@version{5.0.0}
\newdimen\tcbfitdim
\newdimen\tcb@lowerfitdim
@@ -71,7 +71,21 @@
\def\tcb@@capture@fitbox{%
\let\endtcolorbox=\relax%
- \Collect@Body\tcbox@inner@fitbox@collected%
+ \iftcb@wrap@environment%
+ \expandafter\@firstoftwo%
+ \else%
+ \expandafter\@secondoftwo%
+ \fi%
+ {\begingroup\tcb@hack@currenvir%
+ \Collect@Body\tcbox@inner@fitbox@collected@for@wrapping}%
+ {\Collect@Body\tcbox@inner@fitbox@collected}%
+}
+
+\long\def\tcbox@inner@fitbox@collected@for@wrapping#1\end#2{%
+ \endgroup%
+ \let\tcb@end@tcolorboxenvironment\relax%
+ \tcbox@inner@fitbox@collected{#1\end{#2}}%
+ \end{tcolorbox}%
}
\def\tcbfontsize#1{\fontsize{#1\tcbfitdim}{#1\dimexpr\kvtcb@fit@skip\tcbfitdim}\selectfont}
diff --git a/macros/latex/contrib/tcolorbox/tcbhooks.code.tex b/macros/latex/contrib/tcolorbox/tcbhooks.code.tex
index 8337770bdb..8ae95cee03 100644
--- a/macros/latex/contrib/tcolorbox/tcbhooks.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbhooks.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 4.51 (2021/06/14)
+%% The LaTeX package tcolorbox - version 5.0.0 (2021/12/16)
%% tcbhooks.code.tex: Code for adding hooks
%%
%% -------------------------------------------------------------------------------------------
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{4.51}
+\tcb@set@library@version{5.0.0}
\tcbset{%
before upper app/.code={\appto\kvtcb@before@upper{#1}},%
diff --git a/macros/latex/contrib/tcolorbox/tcblistings.code.tex b/macros/latex/contrib/tcolorbox/tcblistings.code.tex
index 992259c371..b519862468 100644
--- a/macros/latex/contrib/tcolorbox/tcblistings.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcblistings.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 4.51 (2021/06/14)
+%% The LaTeX package tcolorbox - version 5.0.0 (2021/12/16)
%% tcblistings.code.tex: Code for colorboxes with listings
%%
%% -------------------------------------------------------------------------------------------
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{4.51}
+\tcb@set@library@version{5.0.0}
\RequirePackage{listings}[2007/02/22]
diff --git a/macros/latex/contrib/tcolorbox/tcblistingscore.code.tex b/macros/latex/contrib/tcolorbox/tcblistingscore.code.tex
index 328ba79163..3ec7dd5ae5 100644
--- a/macros/latex/contrib/tcolorbox/tcblistingscore.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcblistingscore.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 4.51 (2021/06/14)
+%% The LaTeX package tcolorbox - version 5.0.0 (2021/12/16)
%% tcblistingscode.code.tex: Auxiliary code for colorboxes with listings
%%
%% -------------------------------------------------------------------------------------------
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{4.51}
+\tcb@set@library@version{5.0.0}
\tcbuselibrary{pro@cessing}
diff --git a/macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex b/macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex
index 76cb24dc43..1f1d771f59 100644
--- a/macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcblistingsutf8.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 4.51 (2021/06/14)
+%% The LaTeX package tcolorbox - version 5.0.0 (2021/12/16)
%% tcblistingsutf8.code.tex: Code for colorboxes with listings in UTF-8
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{4.51}
+\tcb@set@library@version{5.0.0}
\tcbuselibrary{listings}
diff --git a/macros/latex/contrib/tcolorbox/tcbmagazine.code.tex b/macros/latex/contrib/tcolorbox/tcbmagazine.code.tex
index a5bde8d84a..ca10489bee 100644
--- a/macros/latex/contrib/tcolorbox/tcbmagazine.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbmagazine.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 4.51 (2021/06/14)
+%% The LaTeX package tcolorbox - version 5.0.0 (2021/12/16)
%% tcbmagazine.code.tex: Code for box sets and magazine styles
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{4.51}
+\tcb@set@library@version{5.0.0}
\tcbuselibrary{breakable}
diff --git a/macros/latex/contrib/tcolorbox/tcbminted.code.tex b/macros/latex/contrib/tcolorbox/tcbminted.code.tex
index 8417ab97cd..6c3a2eea6b 100644
--- a/macros/latex/contrib/tcolorbox/tcbminted.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbminted.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 4.51 (2021/06/14)
+%% The LaTeX package tcolorbox - version 5.0.0 (2021/12/16)
%% tcbminted.code.tex: Code for colorboxes with listings
%%
%% -------------------------------------------------------------------------------------------
@@ -18,60 +18,128 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{4.51}
+\tcb@set@library@version{5.0.0}
\RequirePackage{minted}[2011/09/17]
% to be removed, if integrated into the minted package (#281)
\minted@def@optcl{envname}{-P envname}{#1}
+% to be removed, if minted becomes newer than v2.5 (2017/07/19)
+% and resolves the package clash with fancyvrb
+\ProvideDocumentCommand\tcbTemporaryPatchMintedFancyvrb{}{%
+ \@ifpackagelater{minted}{2021/12/01}{}{\@ifpackagelater{fancyvrb}{2021/11/19}{%
+ % patch from muzimuzhi
+ \RequirePackage{regexpatch}%
+ \def\minted@use@FancyVerbStartNum{\the\numexpr\FancyVerbStartNum}%
+ \def\minted@use@FancyVerbStopNum{\the\numexpr\FancyVerbStopNum}%
+ % patch for fivesum computation
+ \xpatchcmd*\minted@pygmentize%
+ {\ifx\FancyVerbStartNum\z@ 0\else\FancyVerbStartNum\fi}%
+ {\minted@use@FancyVerbStartNum}%
+ {}{}%
+ \xpatchcmd*\minted@pygmentize%
+ {\ifx\FancyVerbStopNum\z@ 0\else\FancyVerbStopNum\fi}%
+ {\minted@use@FancyVerbStopNum}%
+ {}{}%
+ % patch for option "autogobble"
+ \xpatchcmd\minted@autogobble%
+ {\ifx\FancyVerbStartNum\z@ 0\else\FancyVerbStartNum\fi}%
+ {\minted@use@FancyVerbStartNum}%
+ {}{}%
+ \xpatchcmd\minted@autogobble%
+ {\ifx\FancyVerbStopNum\z@ 0\else\FancyVerbStopNum\fi}%
+ {\minted@use@FancyVerbStopNum}%
+ {}{}%
+}{}}}
+
+\tcbTemporaryPatchMintedFancyvrb
+
\tcbuselibrary{listings@core}
-\def\tcb@minted@input@listing#1#2#3#4{%
- \edef\temp@a{#4}%
- \ifx\temp@a\@empty%
- \else%
- \toks@=\expandafter{#4}%
- \edef\tcb@temp{\noexpand\usemintedstyle{\the\toks@}}%
- \tcb@temp%
- \fi%
- \ifdefstring{\tcb@listing@capture}{hbox}{%
- \toks@=\expandafter{#1,envname=BVerbatim}%
- }{%
- \toks@=\expandafter{#1}%
- }%
- \edef\tcb@temp{\noexpand\inputminted[\the\toks@]}%
- \IfFileExists{\minted@outputdir#3}%
- {\tcb@temp{#2}{\minted@outputdir#3}}%
- {\tcb@temp{#2}{#3}}%
-}
+\ExplSyntaxOn
-\def\tcb@minted@uselistinglisting{%
- \tcb@minted@input@listing{\kvtcb@minted@options}{\kvtcb@minted@language}{\kvtcb@listingfile}{\kvtcb@minted@style}%
-}%
+\cs_new_nopar:Npn \__tcobox_minted_input_listing:nnnn #1#2#3#4
+ {
+ \tl_if_empty:nF { #4 }
+ {
+ \usemintedstyle { #4 }
+ }
+ \tl_set:Nn \l_tmpa_tl { \inputminted[#1 }
+ \str_if_eq:VnT \tcb@listing@capture { hbox }
+ {
+ \tl_put_right:Nn \l_tmpa_tl { ,envname=BVerbatim }
+ }
+ \tl_put_right:Nn \l_tmpa_tl { ] }
+ \file_if_exist:nTF { \minted@outputdir #3 }
+ {
+ \l_tmpa_tl { #2 }{ \minted@outputdir #3 }
+ }
+ {
+ \l_tmpa_tl { #2 }{ #3 }
+ }
+ }
-\def\tcb@minted@usetemplisting{%
- \tcb@minted@input@listing{\kvtcb@minted@options}{\kvtcb@minted@language}{\kvtcb@tempfile}{\kvtcb@minted@style}%
-}%
+\cs_generate_variant:Nn \__tcobox_minted_input_listing:nnnn {VVVV}
+
+
+\cs_new_nopar:Npn \__tcbbox_minted_uselistinglisting:
+ {
+ \__tcobox_minted_input_listing:VVVV
+ \kvtcb@minted@options
+ \kvtcb@minted@language
+ \kvtcb@listingfile
+ \kvtcb@minted@style
+ }
+
+
+\cs_new_nopar:Npn \__tcbbox_minted_usetemplisting:
+ {
+ \__tcobox_minted_input_listing:VVVV
+ \kvtcb@minted@options
+ \kvtcb@minted@language
+ \kvtcb@tempfile
+ \kvtcb@minted@style
+ }
+
+
+\cs_new_nopar:Npn \__tcbbox_minted_doc_usetemplisting:
+ {
+ \__tcobox_minted_input_listing:VVVV
+ \kvtcb@docmintoptions
+ \kvtcb@docminted@language
+ \kvtcb@tempfile
+ \kvtcb@docmintstyle
+ }
+
+
+\tcbset
+ {
+ listing~engine/minted/.code=
+ {
+ \cs_set_eq:NN \tcbuselistinglisting \__tcbbox_minted_uselistinglisting:
+ \cs_set_eq:NN \tcbusetemplisting \__tcbbox_minted_usetemplisting:
+ \cs_set_eq:NN \tcb@doc@usetemplisting \__tcbbox_minted_doc_usetemplisting:
+ },
+ }
+
+\ExplSyntaxOff
-\def\tcb@minted@doc@usetemplisting{%
- \tcb@minted@input@listing{\kvtcb@docmintoptions}{\kvtcb@docminted@language}{\kvtcb@tempfile}{\kvtcb@docmintstyle}%
-}
\tcbset{%
minted language/.store in=\kvtcb@minted@language,
minted options/.store in=\kvtcb@minted@options,
+ default@minted@options/.store in=\kvtcb@default@minted@options,
+ default minted options/.style={default@minted@options={#1},minted options={#1}},
minted style/.store in=\kvtcb@minted@style,
- listing engine/minted/.code={\let\tcbuselistinglisting\tcb@minted@uselistinglisting%
- \let\tcbusetemplisting\tcb@minted@usetemplisting%
- \let\tcb@doc@usetemplisting\tcb@minted@doc@usetemplisting},
}
\tcbset{%
+ default@minted@options={tabsize=2,fontsize=\small,breaklines,autogobble},
reset@minted/.style={%
minted language=latex,
- minted options={tabsize=2,fontsize=\small,breaklines,autogobble},
+ code={\let\kvtcb@minted@options\kvtcb@default@minted@options},
minted style=,
listing engine=minted,
},
diff --git a/macros/latex/contrib/tcolorbox/tcbposter.code.tex b/macros/latex/contrib/tcolorbox/tcbposter.code.tex
index b61f49a7b2..107d1f7bec 100644
--- a/macros/latex/contrib/tcolorbox/tcbposter.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbposter.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 4.51 (2021/06/14)
+%% The LaTeX package tcolorbox - version 5.0.0 (2021/12/16)
%% tcbposter.code.tex: Code for posters
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{4.51}
+\tcb@set@library@version{5.0.0}
\tcbuselibrary{breakable,magazine,skins,fitting}
diff --git a/macros/latex/contrib/tcolorbox/tcbprocessing.code.tex b/macros/latex/contrib/tcolorbox/tcbprocessing.code.tex
index 37fb7d65e7..d23d783885 100644
--- a/macros/latex/contrib/tcolorbox/tcbprocessing.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbprocessing.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 4.51 (2021/06/14)
+%% The LaTeX package tcolorbox - version 5.0.0 (2021/12/16)
%% tcbprocessing.code.tex: Code for conditional processing
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{4.51}
+\tcb@set@library@version{5.0.0}
\RequirePackage{pdftexcmds}
\RequirePackage{shellesc}
diff --git a/macros/latex/contrib/tcolorbox/tcbraster.code.tex b/macros/latex/contrib/tcolorbox/tcbraster.code.tex
index 8905f8a0b6..350f949466 100644
--- a/macros/latex/contrib/tcolorbox/tcbraster.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbraster.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 4.51 (2021/06/14)
+%% The LaTeX package tcolorbox - version 5.0.0 (2021/12/16)
%% tcbskinsjigsaw.code.tex: Code for colorboxes with different skins
%%
%% -------------------------------------------------------------------------------------------
@@ -17,12 +17,18 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{4.51}
+\tcb@set@library@version{5.0.0}
\newcounter{tcbrastercolumn}
\newcounter{tcbrasterrow}
\newcounter{tcbrasternum}
\newcounter{tcbraster}
+\def\tcb@raster@number{\@arabic\c@tcbraster}%
+\def\theHtcbrasternum{\tcb@raster@number.\@arabic\c@tcbrasternum}
+
+\setcounter{tcbrasternum}{1}
+\setcounter{tcbrastercolumn}{1}
+\setcounter{tcbrasterrow}{1}
\def\tcb@raster@ehg@all{%
\tcbset{equal height group={\kvtcb@raster@ehgid}}%
@@ -126,6 +132,7 @@
\tcb@layer@pushup%
\stepcounter{tcbraster}%
\edef\tcb@raster@number{\number\c@tcbraster}%
+ \edef\tcb@raster@save@num{\number\c@tcbrasternum}%
\edef\tcb@raster@save@column{\number\c@tcbrastercolumn}%
\edef\tcb@raster@save@row{\number\c@tcbrasterrow}%
\let\tcb@raster@change@fitbox\@empty%
@@ -179,6 +186,7 @@
\stepcounter{tcbrastercolumn}%
\fi},%
box align=\kvtcb@raster@valign,%
+ code={\preto\kvtcb@phantom{\addtocounter{tcbrasternum}{-1}\refstepcounter{tcbrasternum}}},%
}%
\tcbdimto\tcb@raster@box@width{(\tcb@raster@width+\tcb@raster@xskip-\tcb@raster@skip@left-\tcb@raster@skip@right)/\kvtcb@raster@columns-\tcb@raster@xskip}%
\tcb@raster@set@size{%
@@ -215,9 +223,9 @@
\addvspace{\glueexpr\tcb@raster@skip@after-\parskip}%
\endgroup%
\tcb@end@raster%
+ \setcounter{tcbrasternum}{\tcb@raster@save@num}%
\setcounter{tcbrastercolumn}{\tcb@raster@save@column}%
\setcounter{tcbrasterrow}{\tcb@raster@save@row}%
- \setcounter{tcbrasternum}{\the\numexpr(\c@tcbrasterrow-1)*\kvtcb@raster@columns+\c@tcbrastercolumn\relax}%
}
\newcommand{\tcbitem@following}[1][]{%
diff --git a/macros/latex/contrib/tcolorbox/tcbskins.code.tex b/macros/latex/contrib/tcolorbox/tcbskins.code.tex
index 54517b2ddd..0aaa34246d 100644
--- a/macros/latex/contrib/tcolorbox/tcbskins.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbskins.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 4.51 (2021/06/14)
+%% The LaTeX package tcolorbox - version 5.0.0 (2021/12/16)
%% tcbskins.code.tex: Code for colorboxes with different skins
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{4.51}
+\tcb@set@library@version{5.0.0}
\RequirePackage{tikz}[2010/10/13]
@@ -1124,7 +1124,7 @@
\fi%
\tcbdimto\kvtcb@bottom{\kvtcb@bottom+\kvtcb@yinnershift@boxedtitle}%
},
- attach@title@boxed/.style n args={5}{%
+ attach@title@boxed/.style n args={6}{%
detach title,
code={\def\tcb@specialtitle@hook{%
\ifx\tcbtitletext\@empty\else%
@@ -1135,7 +1135,15 @@
\let\tcb@trans@boxedstyle\kvtcb@style@boxedtitle%
\setbox\tcb@titlebox\color@hbox\bgroup\color{tcbcoltitle}\kvtcb@fonttitle\kvtcb@before@boxedtitle\kvtcb@haligntitle\kvtcb@before@title\tcbtitletext\kvtcb@after@title\kvtcb@after@boxedtitle\egroup\color@endbox%
\setbox\tcb@titlebox\color@hbox\tcbox[skin=\tcb@trans@skin@current,colframe=tcbtranscol@frame,colback=tcbtranscol@back,%
- code={\pgfkeysalsofrom\tcb@trans@boxedsize\pgfkeysalsofrom\tcb@trans@boxedstyle}]{\box\tcb@titlebox}\color@endbox%
+ code={\pgfkeysalsofrom\tcb@trans@boxedsize\pgfkeysalsofrom\tcb@trans@boxedstyle%
+ \ifcase#6
+ \or%
+ \global\tcbdimto\tcb@xshift@boxedtitle@delta{\kvtcb@left@rule+\kvtcb@boxsep+\kvtcb@leftupper}%
+ \else%
+ \global\tcbdimto\tcb@xshift@boxedtitle@delta{\kvtcb@right@rule+\kvtcb@boxsep+\kvtcb@rightupper}%
+ \fi%
+ }%
+ ]{\box\tcb@titlebox}\color@endbox%
%
\tcbdimto\tcboxedtitleheight{\ht\tcb@titlebox+\dp\tcb@titlebox}%
\tcbdimto\tcboxedtitlewidth{\wd\tcb@titlebox}%
@@ -1143,8 +1151,16 @@
\let\tcb@specialgeonodes@first\relax%
\let\tcb@specialgeonodes@middle\relax%
\let\tcb@specialgeonodes@last\relax%
+ \ifcase#6
+ \tcbdimto\tcb@xshift@boxedtitle{\kvtcb@xshift@boxedtitle}%
+ \or%
+ \tcbdimto\tcb@xshift@boxedtitle{\kvtcb@left@rule+\kvtcb@boxsep+\kvtcb@leftupper-\tcb@xshift@boxedtitle@delta}%
+ \else%
+ \tcbdimto\tcb@xshift@boxedtitle{\tcb@xshift@boxedtitle@delta-(\kvtcb@right@rule+\kvtcb@boxsep+\kvtcb@rightupper)}%
+ \fi%
\def\tcb@specialgeonodes@unbroken{%
- \node[#4,name=title,at={([xshift=\kvtcb@xshift@boxedtitle,yshift=\kvtcb@yshift@boxedtitle]frame.#5)},
+ \node[#4,name=title,at={([xshift=\tcb@xshift@boxedtitle,yshift=\kvtcb@yshift@boxedtitle]frame.#5)},
+ line width=0mm,inner sep=0mm,outer sep=0mm,draw=none,fill=none,rectangle,
minimum width=\tcboxedtitlewidth,minimum height=\tcboxedtitleheight]{};}%
\cslet{tcb@specialgeonodes@#3}{\tcb@specialgeonodes@unbroken}%
\def\tcb@specialgeonodes@hook{\csname tcb@specialgeonodes@\tcb@split@state\endcsname}%
@@ -1152,15 +1168,17 @@
\cspreto{tcb@underlay@#3}{\tcb@underlay@boxedtitle\pgftext[at={\pgfpointanchor{title}{center}}]{\box\tcb@titlebox}}%
\fi}}%
},
- attach@title@boxed@top/.style n args={3}{attach@title@boxed={#1}{top}{first}{#2}{#3}},%
- attach@title@boxed@bottom/.style n args={3}{attach@title@boxed={#1}{bottom}{last}{#2}{#3}},%
%
- attach boxed title to top left/.style={attach@title@boxed@top={#1}{above right}{north west}},
- attach boxed title to top center/.style={attach@title@boxed@top={#1}{above}{north}},
- attach boxed title to top right/.style={attach@title@boxed@top={#1}{above left}{north east}},
- attach boxed title to bottom left/.style={attach@title@boxed@bottom={#1}{below right}{south west}},
- attach boxed title to bottom center/.style={attach@title@boxed@bottom={#1}{below}{south}},
- attach boxed title to bottom right/.style={attach@title@boxed@bottom={#1}{below left}{south east}},
+ attach boxed title to top left/.style = {attach@title@boxed={#1}{top}{first}{above right}{north west}{0}},
+ attach boxed title to top text left/.style = {attach@title@boxed={#1}{top}{first}{above right}{north west}{1}},
+ attach boxed title to top center/.style = {attach@title@boxed={#1}{top}{first}{above}{north}{0}},
+ attach boxed title to top text right/.style = {attach@title@boxed={#1}{top}{first}{above left}{north east}{2}},
+ attach boxed title to top right/.style = {attach@title@boxed={#1}{top}{first}{above left}{north east}{0}},
+ attach boxed title to bottom left/.style = {attach@title@boxed={#1}{bottom}{last}{below right}{south west}{0}},
+ attach boxed title to bottom text left/.style = {attach@title@boxed={#1}{bottom}{last}{below right}{south west}{1}},
+ attach boxed title to bottom center/.style = {attach@title@boxed={#1}{bottom}{last}{below}{south}{0}},
+ attach boxed title to bottom text right/.style = {attach@title@boxed={#1}{bottom}{last}{below left}{south east}{2}},
+ attach boxed title to bottom right/.style = {attach@title@boxed={#1}{bottom}{last}{below left}{south east}{0}},
reduce@vertical@rules/.code={%
\ifdim\dimexpr\kvtcb@left@rule<\dimexpr\kvtcb@right@rule\relax%
\tcbdimto\tcb@temp{\kvtcb@left@rule/2}%
diff --git a/macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex b/macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex
index beeccff856..138b4b1bae 100644
--- a/macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbskinsjigsaw.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 4.51 (2021/06/14)
+%% The LaTeX package tcolorbox - version 5.0.0 (2021/12/16)
%% tcbskinsjigsaw.code.tex: Code for colorboxes with different skins
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{4.51}
+\tcb@set@library@version{5.0.0}
\tcbuselibrary{skins}
diff --git a/macros/latex/contrib/tcolorbox/tcbtheorems.code.tex b/macros/latex/contrib/tcolorbox/tcbtheorems.code.tex
index 3a992cad09..12a415fa4e 100644
--- a/macros/latex/contrib/tcolorbox/tcbtheorems.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbtheorems.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 4.51 (2021/06/14)
+%% The LaTeX package tcolorbox - version 5.0.0 (2021/12/16)
%% tcbtheorems.code.tex: Code for theorems in colorboxes
%%
%% -------------------------------------------------------------------------------------------
@@ -18,44 +18,218 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{4.51}
+\tcb@set@library@version{5.0.0}
\RequirePackage{amsmath}
-\def\tcb@hack@amsmath{\tcb@hack@currenvir\vskip-\abovedisplayskip}
-\def\tcb@theo@form@namenumber#1#2{\hbox{#1~#2}}
-\def\tcb@theo@form@numbername#1#2{\hbox{#2~#1}}
-\def\tcb@theo@form@name#1#2{\hbox{#1}}
+\ExplSyntaxOn
-\def\tcb@theo@desc@form@std#1{\tcb@desc@col\kvtcb@desc@font\kvtcb@desc@delim@left#1\kvtcb@desc@delim@right}
+\tl_new:N \l__tcobox_theo_description_color_tl
+\tl_new:N \l__tcobox_theo_description_delimiter_left_tl
+\tl_new:N \l__tcobox_theo_description_delimiter_right_tl
+\tl_new:N \l__tcobox_theo_description_font_tl
+\tl_new:N \l__tcobox_theo_hanging_indent_tl
+\tl_new:N \l__tcobox_theo_label_separator_tl
+\tl_new:N \l__tcobox_theo_separatorsign_tl
+\tl_new:N \l__tcobox_theo_terminatorsign_tl
-\def\tcb@theo@title@indent@std#1{\hangindent#1\hangafter=1\relax}
-\def\tcb@theo@title#1#2#3{%
- \ifdefempty{#2}{\setbox\z@=\color@hbox#1\color@endbox}{\setbox\z@=\tcb@theo@form{#1}{#2}}%
- \def\temp@a{#3}%
- \ifx\temp@a\@empty\relax%
- \unhbox\z@\kvtcb@terminatorsign%
- \else%
- \setbox\z@=\hbox{\unhbox\z@\kvtcb@separatorsign\ }%
- \tcb@theo@title@indent{\wd\z@}%
- \mbox{\unhbox\z@}{\tcb@theo@desc@form{#3}}\kvtcb@terminatorsign%
- \fi%
-}
+\cs_new_nopar:Npn \__tcobox_theo_format_name_number:nn #1#2
+ {
+ \tl_if_empty:nTF { #1 }
+ {
+ #2
+ }
+ {
+ #1
+ \tl_if_empty:nF { #2 }
+ {
+ \nobreakspace
+ #2
+ }
+ }
+ }
-\def\tcb@theo@listentry#1#2#3{%
- \def\kvtcb@listentry{\protect\numberline{#2}#3}%
-}
-\def\tcb@theo@label#1#2{%
- \def\temp@a{#2}%
- \ifx\temp@a\@empty%
- \else%
- \tcbset{label={#1\kvtcb@label@sep#2},%
- tcb@theo@full@label@supp={#1\kvtcb@label@sep#2},tcb@theo@label@supp={#2}}%
- \fi%
-}
+\cs_new_nopar:Npn \__tcobox_theo_format_number_name:nn #1#2
+ {
+ \__tcobox_theo_format_name_number:nn { #2 } { #1 }
+ }
+
+
+\cs_new:Npn \__tcobox_theo_format_description_standard:n #1
+ {
+ \l__tcobox_theo_description_color_tl
+ \l__tcobox_theo_description_font_tl
+ \l__tcobox_theo_description_delimiter_left_tl
+ #1
+ \l__tcobox_theo_description_delimiter_right_tl
+ }
+
+
+\cs_new:Npn \__tcobox_theo_title:nnn #1#2#3
+ {
+ % format and save display name and number
+ \tl_set:Nx \l_tmpa_tl { \__tcobox_theo_format:nn{#1}{#2} }
+ \tl_if_empty:nTF { #3 }
+ {
+ % no theorem title; insert name and number
+ \l_tmpa_tl
+ \l__tcobox_theo_terminatorsign_tl
+ }
+ {
+ % box display name and number
+ \tl_if_empty:NTF \l_tmpa_tl
+ {
+ \box_clear:N \l_tmpa_box
+ }
+ {
+ \hbox_set:Nn \l_tmpa_box
+ {
+ \tl_use:N \l_tmpa_tl
+ \l__tcobox_theo_separatorsign_tl
+ \nobreakspace
+ }
+ }
+ % set (hanging) indent for name and number
+ \str_if_eq:VnTF \l__tcobox_theo_hanging_indent_tl { auto }
+ {
+ \hangindent \box_wd:N \l_tmpa_box
+ \hangafter = 1
+ }
+ {
+ \dim_set:Nn \l_tmpa_dim { \l__tcobox_theo_hanging_indent_tl }
+ \if_dim:w \l_tmpa_dim = \c_zero_dim
+ \else:
+ \if_dim:w \l_tmpa_dim > \c_zero_dim
+ \hangindent \l_tmpa_dim
+ \hangafter = 1
+ \else:
+ \hangindent -\l_tmpa_dim
+ \hangafter = -1
+ \fi:
+ \fi:
+ }
+ % insert box with name and number
+ \mode_leave_vertical:
+ \box_use_drop:N \l_tmpa_box
+ % insert formated title
+ \group_begin:
+ \__tcobox_theo_format_description:n{#3}
+ \group_end:
+ \l__tcobox_theo_terminatorsign_tl
+ }
+ }
+
+
+\NewDocumentCommand \new@tcbtheorem { O{} m m +m m }
+ {
+ \@@newtcolorbox[auto~counter,#1]{#2}[3][]
+ {
+ #4,
+ title = {\__tcobox_theo_title:nnn{#3}{\thetcbcounter}{##2}},
+ list~entry = {\protect\numberline{\thetcbcounter}##2},
+ nameref = {##2},
+ theo@label = {#5}{##3},
+ ##1
+ }
+ \@@newtcolorbox[#1,no~counter,list~inside=]{#2*}[2][]
+ {
+ #4,
+ title = {\__tcobox_theo_title:nnn{#3}{}{##2}},
+ ##1
+ }
+ }
+
+
+\NewDocumentCommand \newtcbtheorem {}
+ {
+ \cs_set_eq:NN \@@newtcolorbox \newtcolorbox
+ \new@tcbtheorem
+ }
+
+
+\NewDocumentCommand \renewtcbtheorem {}
+ {
+ \cs_set_eq:NN \@@newtcolorbox \renewtcolorbox
+ \new@tcbtheorem
+ }
+
+
+\tcbset
+ {
+ theo@label/.code~n~args = {2}
+ {
+ \tl_if_empty:nF { #2 }
+ {
+ \tcbset
+ {
+ label = {#1\l__tcobox_theo_label_separator_tl#2},
+ tcb@theo@full@label@supp = {#1\l__tcobox_theo_label_separator_tl#2},
+ tcb@theo@label@supp = {#2}
+ }
+ }
+ },
+ theorem/.style~n~args = {4}
+ {
+ step~and~label={#2}{#4},
+ title={\__tcobox_theo_title:nnn{#1}{\cs:w the#2\cs_end:}{#3}}
+ },
+ theorem~name~and~number/.code =
+ {
+ \cs_set_eq:NN \__tcobox_theo_format:nn \__tcobox_theo_format_name_number:nn
+ },
+ theorem~number~and~name/.code =
+ {
+ \cs_set_eq:NN \__tcobox_theo_format:nn \__tcobox_theo_format_number_name:nn
+ },
+ theorem~name/.code =
+ {
+ \cs_set_eq:NN \__tcobox_theo_format:nn \use_i:nn
+ },
+ theorem~number/.code =
+ {
+ \cs_set_eq:NN \__tcobox_theo_format:nn \use_ii:nn
+ },
+ separator~sign/ .tl_set:N = \l__tcobox_theo_separatorsign_tl,
+ terminator~sign/ .tl_set:N = \l__tcobox_theo_terminatorsign_tl,
+ label~separator/ .tl_set:N = \l__tcobox_theo_label_separator_tl,
+ theorem~hanging~indent/ .tl_set:N = \l__tcobox_theo_hanging_indent_tl,
+ theorem~hanging~indent/.default=auto,
+ description~delimiters/.code~n~args = {2}
+ {
+ \tl_set:Nn \l__tcobox_theo_description_delimiter_left_tl { #1 }
+ \tl_set:Nn \l__tcobox_theo_description_delimiter_right_tl { #2 }
+ },
+ description~color/.code =
+ {
+ \tl_if_empty:nTF { #1 }
+ {
+ \tl_clear:N \l__tcobox_theo_description_color_tl
+ }
+ {
+ \tl_set:Nn \l__tcobox_theo_description_color_tl { \color{#1} }
+ }
+ },
+ description~color/.default=,
+ description~font/.tl_set:N = \l__tcobox_theo_description_font_tl,
+ description~font/.default =,
+ description~formatter/.code =
+ {
+ \cs_set_eq:NN \__tcobox_theo_format_description:n #1
+ },
+ description~formatter/.default = \__tcobox_theo_format_description_standard:n,
+ }
+
+\ExplSyntaxOff
+
+
+\newtcbox{\tcboxmath}[1][]{nobeforeafter,math upper,tcbox raise base,#1}
+\newtcbox{\tcbhighmath}[1][]{highlight math,nobeforeafter,math upper,tcbox raise base,#1}
+
+
+\def\tcb@hack@amsmath{\tcb@hack@currenvir\vskip-\abovedisplayskip}
\if@fleqn%
\tcbset{%
@@ -74,9 +248,6 @@
\fi
\tcbset{
- theorem/.style args={#1#2#3#4}{%
- step and label={#2}{#4},%
- title={\letcs\tcb@temp{the#2}\tcb@theo@title{#1}{\tcb@temp}{#3}}},%
math upper/.style={before upper*=$\displaystyle,after upper*=$},%
math lower/.style={before lower*=$\displaystyle,after lower*=$},%
math/.style={math upper,math lower},%
@@ -98,28 +269,14 @@
ams nodisplayskip lower/.style={before lower=\vskip-\abovedisplayskip},%
ams nodisplayskip/.style={ams nodisplayskip upper,ams nodisplayskip lower},%
highlight math style/.style={highlight math/.style={notitle,nophantom,#1}},%
- separator sign/.store in=\kvtcb@separatorsign,%
separator sign colon/.style={separator sign={:}},%
- separator sign dash/.style={separator sign={\ --}},%
+ separator sign dash/.style={separator sign={\nobreakspace --}},%
separator sign none/.style={separator sign=},%
- terminator sign/.store in=\kvtcb@terminatorsign,%
terminator sign colon/.style={terminator sign={:}},%
- terminator sign dash/.style={terminator sign={\ --}},%
+ terminator sign dash/.style={terminator sign={\nobreakspace --}},%
terminator sign none/.style={terminator sign=},%
- label separator/.store in=\kvtcb@label@sep,%
- description delimiters/.code n args={2}{\def\kvtcb@desc@delim@left{#1}\def\kvtcb@desc@delim@right{#2}},%
description delimiters parenthesis/.style={description delimiters=()},
description delimiters none/.style={description delimiters={}{}},
- description color/.code={\def\temp@a{#1}\ifx\temp@a\@empty\relax%
- \def\tcb@desc@col{}\else\def\tcb@desc@col{\color{#1}}\fi},%
- description color/.default=,
- description font/.store in=\kvtcb@desc@font,
- description font/.default=,
- description formatter/.code={\let\tcb@theo@desc@form=#1},%
- description formatter/.default={\tcb@theo@desc@form@std},%
- theorem name and number/.code={\let\tcb@theo@form=\tcb@theo@form@namenumber},
- theorem number and name/.code={\let\tcb@theo@form=\tcb@theo@form@numbername},
- theorem name/.code={\let\tcb@theo@form=\tcb@theo@form@name},
theorem style/.is choice,
theorem style/standard/.style={separator sign colon,description delimiters none,
terminator sign none,theorem name and number,attach title},
@@ -137,45 +294,8 @@
theorem style/margin break/.style={theorem style=margin,attach title to upper={\par}},
theorem label supplement/.style={tcb@theo@label@supp/.style={#1}},
theorem full label supplement/.style={tcb@theo@full@label@supp/.style={#1}},
- theorem hanging indent/.code={%
- \ifstrequal{#1}{auto}{%
- \let\tcb@theo@title@indent\tcb@theo@title@indent@std%
- }{%
- \def\tcb@theo@title@indent##1{%
- \ifdim#1=0pt\relax%
- \else%
- \ifdim#1>0pt\relax%
- \hangindent#1\hangafter=1\relax%
- \else%
- \hangindent\dimexpr-#1\relax\hangafter=-1\relax%
- \fi%
- \fi
- }%
- }%
- },
- theorem hanging indent/.default=auto,
-}
-
-\newcommand{\new@tcbtheorem}[5][]{%
- \@@newtcolorbox[auto counter,#1]{#2}[3][]{#4,%
- title={\tcb@theo@title{#3}{\thetcbcounter}{##2}},%
- list entry={\protect\numberline{\thetcbcounter}##2},%
- nameref={##2},%
- code={\tcb@theo@label{#5}{##3}},%
- ##1}%
- \@@newtcolorbox[#1,no counter,list inside=]{#2*}[2][]{#4,%
- title={\tcb@theo@title{#3}{\@empty}{##2}},%
- ##1}%
}
-\def\newtcbtheorem{\let\@@newtcolorbox\newtcolorbox%
- \new@tcbtheorem}
-
-\def\renewtcbtheorem{\let\@@newtcolorbox\renewtcolorbox%
- \new@tcbtheorem}
-
-\newtcbox{\tcboxmath}[1][]{nobeforeafter,math upper,tcbox raise base,#1}
-\newtcbox{\tcbhighmath}[1][]{highlight math,nobeforeafter,math upper,tcbox raise base,#1}
\tcbset{%
reset@theorems/.style={%
@@ -188,7 +308,3 @@
initialize@reset=reset@theorems,
}
-% DEPRECATED
-\newcommand{\tcbmaketheorem}[5]{%
- \newtcolorbox{#1}[3][]{#3,theorem={#2}{#4}{##2}{#5\kvtcb@label@sep##3},##1}%
-}
diff --git a/macros/latex/contrib/tcolorbox/tcbvignette.code.tex b/macros/latex/contrib/tcolorbox/tcbvignette.code.tex
index 2dd113a57c..56a837171e 100644
--- a/macros/latex/contrib/tcolorbox/tcbvignette.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbvignette.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 4.51 (2021/06/14)
+%% The LaTeX package tcolorbox - version 5.0.0 (2021/12/16)
%% tcbvignette.code.tex: Code for ornamental frames
%%
%% -------------------------------------------------------------------------------------------
@@ -17,7 +17,7 @@
%%
%% This work consists of all files listed in README
%%
-\tcb@set@library@version{4.51}
+\tcb@set@library@version{5.0.0}
\tcbuselibrary{skins}
diff --git a/macros/latex/contrib/tcolorbox/tcbxparse.code.tex b/macros/latex/contrib/tcolorbox/tcbxparse.code.tex
index e07be17169..cdefe0ab27 100644
--- a/macros/latex/contrib/tcolorbox/tcbxparse.code.tex
+++ b/macros/latex/contrib/tcolorbox/tcbxparse.code.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 4.51 (2021/06/14)
+%% The LaTeX package tcolorbox - version 5.0.0 (2021/12/16)
%% tcbxparse.code.tex: Code for xparse features
%%
%% -------------------------------------------------------------------------------------------
@@ -18,7 +18,7 @@
%% This work consists of all files listed in README
%%
%\makeatletter
-\tcb@set@library@version{4.51}
+\tcb@set@library@version{5.0.0}
\RequirePackage{xparse}[2013/12/31]
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdf b/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdf
index 06f648a861..5141f13bb7 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdf
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.pdf
Binary files differ
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex b/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex
index b84a2b2e0e..ca5965fa4e 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-example-poster.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 4.51 (2021/06/14)
+%% The LaTeX package tcolorbox - version 5.0.0 (2021/12/16)
%% tcolorbox-example-poster.tex: a poster example for tcolorbox
%%
%% -------------------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-example.pdf b/macros/latex/contrib/tcolorbox/tcolorbox-example.pdf
index 9aa9a2d302..f204554be2 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-example.pdf
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-example.tex b/macros/latex/contrib/tcolorbox/tcolorbox-example.tex
index c09a093519..4bce9e1069 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-example.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-example.tex
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 4.51 (2021/06/14)
+%% The LaTeX package tcolorbox - version 5.0.0 (2021/12/16)
%% tcolorbox-example.tex: an example for tcolorbox
%%
%% -------------------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdf b/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdf
index dfd5b1eb58..7df55268d2 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdf
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.pdf
Binary files differ
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex b/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex
index 851302103d..07a4e01a24 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox-tutorial-poster.tex
@@ -1,5 +1,5 @@
% \LaTeX-Main\
-%% The LaTeX package tcolorbox - version 4.51 (2021/06/14)
+%% The LaTeX package tcolorbox - version 5.0.0 (2021/12/16)
%% tcolorbox-tutorial-poster.tex: a tutorial for poster creation with tcolorbox
%%
%% -------------------------------------------------------------------------------------------
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.bib b/macros/latex/contrib/tcolorbox/tcolorbox.doc.bib
index be37700ea1..5569800e3d 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.bib
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.bib
@@ -54,7 +54,7 @@
address = {Hannover},
edition = 12,
series = {IT-Handb\"ucher},
- url = {https://www.luis.uni-hannover.de/buch.html?&titel=latex},
+ url = {https://www.luis.uni-hannover.de/de/services/schulung-beratung-und-support/handbuecher/it-handbuecher-und-ebooks/details/manuals/latex/},
date = {2019-07},
language = {german}
}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex
index 7fe459fc94..42679d832a 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.coreoptions.tex
@@ -4532,7 +4532,8 @@ B
For example, if several box environments with the same environment name
are nested, for the outer environment \refKey{/tcb/void} cannot be used,
since the end of the inner environment will be misinterpreted as
- end of the outer environment.
+ end of the outer environment. Also, \refKey{/tcb/void} cannot be used
+ for environments wrapped with \refCom{tcolorboxenvironment}.
\end{marker}
\end{docTcbKey}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex
index a9cf444206..385c662154 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.documentation.tex
@@ -21,6 +21,8 @@ the library \mylib{listings}, see \Vref{sec:listings},
the library \mylib{xparse}, see \Vref{sec:xparse},
and a bunch of packages, namely
|makeidx|, |marginnote|, |refcount|, and |hyperref|.
+The packages |pifont| and |marvosym| should be installed for some symbols, but
+need not to be loaded.
\begin{marker}
The package |makeidx| is loaded only, if \docAuxCommand*{printindex} is
@@ -1241,7 +1243,7 @@ keys to insert code before (or after) the description texts.
Used for \refKey{/tcb/listing engine}|=listings| only.
\end{docTcbKey}
-\begin{docTcbKey}{documentation minted options}{=\meta{minted style}}{no default,\\\hspace*{\fill} initially |tabsize=2,fontsize=\textbackslash small|}
+\begin{docTcbKey}{documentation minted options}{=\meta{key list}}{no default,\\\hspace*{\fill} initially |tabsize=2,fontsize=\textbackslash small|}
Sets the options from the package |minted| \cite{poore:minted}
which are used during typesetting of the listing, if used.
Note that this is not identical to the key
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex
index d6b884dc19..2aa5b31974 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.listings.tex
@@ -474,10 +474,11 @@ Sets a \meta{programming language} known to |Pygments| \cite{pygments:web}.
\end{docTcbKey}
-\begin{docTcbKey}[][doc updated={2017-07-05}]{minted options}{=\meta{key list}}{no default, initially
- |tabsize=2,fontsize=\textbackslash small,|\linebreak|breaklines,autogobble|}
+\begin{docTcbKey}[][doc updated={2021-12-15}]{minted options}{=\meta{key list}}{no default, initially
+ \linebreak see \refKey{/tcb/default minted options}}
Sets the options from the package |minted| \cite{poore:minted}
which are used during typesetting of the listing.
+ Also see \refKey{/tcb/minted options app} and \refKey{/tcb/minted options pre}.
\begin{dispExample}
% \tcbuselibrary{skins}
\newtcblisting{myjava}{listing engine=minted,
@@ -500,7 +501,25 @@ Sets a \meta{programming language} known to |Pygments| \cite{pygments:web}.
\end{dispExample}
\end{docTcbKey}
+
\clearpage
+\begin{docTcbKey}[][doc new={2021-12-15}]{default minted options}{=\meta{key list}}{no default, initially
+ |tabsize=2,fontsize=\textbackslash small,|\linebreak|breaklines,autogobble|}
+ Sets the options from the package |minted| \cite{poore:minted}
+ which are used during typesetting of the listing, if
+ \refKey{/tcb/minted options} are \emph{not} used. The intended use is
+ inside the preamble to change the default behavior.
+ Note that setting \refKey{/tcb/default minted options} also resets \refKey{/tcb/minted options}.
+\begin{dispListing}
+% inside the preamble
+\tcbset{%
+ default minted options={tabsize=4,fontsize=\normalsize},
+}
+\end{dispListing}
+\end{docTcbKey}
+
+
+
\begin{docTcbKey}{minted style}{=\meta{style}}{no default, initially unset}
Sets a \meta{style} known to |Pygments| \cite{pygments:web}. This is
independent from \refKey{/tcb/minted options}. Note that styles are always
@@ -514,6 +533,27 @@ For examples of different styles, see
See further options in \Vref{sec:commonlistingkeys}.
+\medskip
+
+\begin{docCommand}[doc new=2021-12-16]{tcbTemporaryPatchMintedFancyvrb}{}
+ \begin{marker}
+ There is a package clash between the package |minted| (version 2.5)
+ and the package |fancyvrb| (from version 4.0 on) which is used by
+ package |minted|. This is results in compilation errors, if the
+ |autogobble| option is used by the \mylib{minted} library.
+ At the time of writing this package clash is unresolved by official releases.
+ Therefore, the \mylib{minted} library contains a patch
+ \refCom{tcbTemporaryPatchMintedFancyvrb} which is automatically applied
+ (do not use this manually).\par
+ To deactivate the patch, define \refCom{tcbTemporaryPatchMintedFancyvrb}
+ with any content \emph{before} the \mylib{minted} library is loaded.\par
+ This patch is going to be removed as soon as the package clash is
+ resolved by official releases of |minted| (or |fancyvrb|).
+ \end{marker}
+\end{docCommand}
+
+
+
\clearpage
\subsection{Common Option Keys of all Libraries}\label{sec:commonlistingkeys}
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty b/macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty
index 63944de20a..4c4a85dce1 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.s_main.sty
@@ -4,38 +4,22 @@
\renewcommand*\l@subsubsection{\@dottedtocline{3}{4.2em}{3.2em}}
\RequirePackage[T1]{fontenc}
-\RequirePackage[latin1]{inputenc}
+\RequirePackage[utf8]{inputenc}
\RequirePackage[english]{babel}
\RequirePackage{lmodern,parskip,array,ifthen,calc}
\RequirePackage{amsmath,amssymb}
\RequirePackage[svgnames,table,hyperref]{xcolor}
-\RequirePackage{tikz}
-\RequirePackage{varioref}
-%\RequirePackage[makeindex]{imakeidx}
-\RequirePackage[pdftex,bookmarks,raiselinks,pageanchor,hyperindex,colorlinks]{hyperref}
-\RequirePackage{bookmark,varwidth,cleveref,incgraph}
-
-\RequirePackage[a4paper,left=2.5cm,right=2.5cm,top=1.5cm,bottom=1.5cm,
- marginparsep=3mm,marginparwidth=18mm,
- headheight=0mm,headsep=0cm,
- footskip=1.5cm,includeheadfoot%,showframe
- ]{geometry}
-\RequirePackage{fancyhdr}
-\fancyhf{}
-\fancyfoot[C]{\thepage}%
-\renewcommand{\headrulewidth}{0pt}
-\renewcommand{\footrulewidth}{0pt}
-\pagestyle{fancy}
-\tolerance=2000%
-\setlength{\emergencystretch}{20pt}%
-
+\RequirePackage{tikz}
\usetikzlibrary{shadings,shadows}
\usetikzlibrary{decorations.pathmorphing}
\usetikzlibrary{patterns}
\usetikzlibrary{spy}
\usetikzlibrary{arrows.meta}
+\RequirePackage[nospace]{varioref}
+
+\RequirePackage{bookmark,varwidth,incgraph}
\RequirePackage{array,tabularx}
\RequirePackage{amsmath}
\RequirePackage{lipsum}
@@ -46,11 +30,32 @@
\RequirePackage{\tcbpkgprefix tcolorbox}
\tcbuselibrary{most,documentation}
+
\tcbifexternal{}{%
\tcbuselibrary{minted}%
\tcbset{listing engine=listings,initialize@reset={listing engine=listings}}%
}
+\RequirePackage{hyperref}
+
+
+\RequirePackage[a4paper,left=2.5cm,right=2.5cm,top=1.5cm,bottom=1.5cm,
+ marginparsep=3mm,marginparwidth=18mm,
+ headheight=0mm,headsep=0cm,
+ footskip=1.5cm,includeheadfoot%,showframe
+ ]{geometry}
+\RequirePackage{fancyhdr}
+\fancyhf{}
+\fancyfoot[C]{\thepage}%
+\renewcommand{\headrulewidth}{0pt}
+\renewcommand{\footrulewidth}{0pt}
+\pagestyle{fancy}
+\tolerance=2000%
+\setlength{\emergencystretch}{20pt}%
+
+\RequirePackage{cleveref}
+
+
\tcbset{skin=enhanced,
doc head={colback=yellow!10!white,interior style=fill},
doc head key={colback=magenta!5!white,interior style=fill},
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.skins.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.skins.tex
index 1f3833a7f7..73d93d228b 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.skins.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.skins.tex
@@ -443,6 +443,18 @@ the top left corner of the main box.
\end{exdispExample*}
\end{docTcbKey}
+\begin{docTcbKey}[][doc new=2021-07-30]{attach boxed title to top text left}{\colOpt{=\marg{boxtitle options}}}{style, default empty}
+The title is boxed with a \refCom{tcbox} and attached to
+the top left corner of the main box
+and shifted to match title text and box text.
+\begin{exdispExample*}{attach_boxed_title_to_top_text_left}{sbs,lefthand ratio=0.66}
+\begin{tcolorbox}[enhanced,title=My title,
+ attach boxed title to top text left]
+ This is a \textbf{tcolorbox}.
+\end{tcolorbox}
+\end{exdispExample*}
+\end{docTcbKey}
+
\begin{docTcbKey}{attach boxed title to top center}{\colOpt{=\marg{boxtitle options}}}{style, default empty}
The title is boxed with a \refCom{tcbox} and attached to
the top of the main box.
@@ -454,6 +466,20 @@ the top of the main box.
\end{exdispExample*}
\end{docTcbKey}
+\begin{docTcbKey}[][doc new=2021-07-30]{attach boxed title to top text right}{\colOpt{=\marg{boxtitle options}}}{style, default empty}
+The title is boxed with a \refCom{tcbox} and attached to
+the top right corner of the main box
+and shifted to match title text and box text.
+\begin{exdispExample*}{attach_boxed_title_to_top_text_right}{sbs,lefthand ratio=0.66}
+\begin{tcolorbox}[enhanced,title=My title,
+ halign=right,
+ attach boxed title to top text right]
+ This is a \textbf{tcolorbox}.
+\end{tcolorbox}
+\end{exdispExample*}
+\end{docTcbKey}
+
+
\begin{docTcbKey}{attach boxed title to top right}{\colOpt{=\marg{boxtitle options}}}{style, default empty}
The title is boxed with a \refCom{tcbox} and attached to
the top right corner of the main box.
@@ -465,6 +491,8 @@ the top right corner of the main box.
\end{exdispExample*}
\end{docTcbKey}
+\clearpage
+
\begin{docTcbKey}{attach boxed title to bottom left}{\colOpt{=\marg{boxtitle options}}}{style, default empty}
The title is boxed with a \refCom{tcbox} and attached to
the bottom left corner of the main box.
@@ -476,7 +504,20 @@ the bottom left corner of the main box.
\end{exdispExample*}
\end{docTcbKey}
-\enlargethispage*{1cm}
+
+\begin{docTcbKey}[][doc new=2021-07-30]{attach boxed title to bottom text left}{\colOpt{=\marg{boxtitle options}}}{style, default empty}
+The title is boxed with a \refCom{tcbox} and attached to
+the bottom left corner of the main box
+and shifted to match title text and box text.
+Note that this matches the \emph{upper} part, even, if there is a \emph{lower} part.
+\begin{exdispExample*}{attach_boxed_title_to_bottom_text_left}{sbs,lefthand ratio=0.66}
+\begin{tcolorbox}[enhanced,title=My title,
+ attach boxed title to bottom text left]
+ This is a \textbf{tcolorbox}.
+\end{tcolorbox}
+\end{exdispExample*}
+\end{docTcbKey}
+
\begin{docTcbKey}{attach boxed title to bottom center}{\colOpt{=\marg{boxtitle options}}}{style, default empty}
The title is boxed with a \refCom{tcbox} and attached to
@@ -489,6 +530,22 @@ the bottom of the main box.
\end{exdispExample*}
\end{docTcbKey}
+
+\begin{docTcbKey}[][doc new=2021-07-30]{attach boxed title to bottom text right}{\colOpt{=\marg{boxtitle options}}}{style, default empty}
+The title is boxed with a \refCom{tcbox} and attached to
+the bottom right corner of the main box
+and shifted to match title text and box text.
+Note that this matches the \emph{upper} part, even, if there is a \emph{lower} part.
+\begin{exdispExample*}{attach_boxed_title_to_bottom_text_right}{sbs,lefthand ratio=0.66}
+\begin{tcolorbox}[enhanced,title=My title,
+ halign=right,
+ attach boxed title to bottom text right]
+ This is a \textbf{tcolorbox}.
+\end{tcolorbox}
+\end{exdispExample*}
+\end{docTcbKey}
+
+
\begin{docTcbKey}{attach boxed title to bottom right}{\colOpt{=\marg{boxtitle options}}}{style, default empty}
The title is boxed with a \refCom{tcbox} and attached to
the bottom right corner of the main box.
@@ -728,8 +785,8 @@ the \meta{options} are is appended.
colframe=red!50!black,colback=red!10!white,
arc=1mm,colbacktitle=red!10!white,
fonttitle=\bfseries,coltitle=red!50!black,
- attach boxed title to top left=
- {xshift=3.2mm,yshift=-0.50mm},
+ attach boxed title to top text left=
+ {yshift=-0.50mm},
boxed title style={skin=enhancedfirst jigsaw,
size=small,arc=1mm,bottom=-1mm,
interior style={fill=none,
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.doc.theorems.tex b/macros/latex/contrib/tcolorbox/tcolorbox.doc.theorems.tex
index abaf34a4d4..51d680c388 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.doc.theorems.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.doc.theorems.tex
@@ -83,27 +83,6 @@ To switch off the \texttt{nameref} feature permanently, add
\end{docCommand}
-\begin{docCommand}{tcbmaketheorem}{\marg{name}\marg{display name}\marg{options}\marg{counter}\marg{prefix}}
-\smallskip\begin{marker}
-\refCom{newtcbtheorem} supersedes this macro.
-\end{marker}
-\begin{deprecated}
- Creates a new environment \meta{name} based on |tcolorbox| to frame a
- (mathematical) theorem. The \meta{display name} is used in the title line
- with a number, e.\,g. \mbox{\flqq Theorem 5.1\frqq}.
- The \meta{options} are given to the underlying |tcolorbox| to control
- the appearance.
- The \meta{counter} is used for automatic numbering.
- The new environment \meta{name} takes one optional and two mandatory
- parameters. The optional parameter supplements the options and should be
- used only in rare cases.
- The first mandatory parameter is the title text for the theorem and
- the second mandatory parameter is a \meta{marker}. The theorem is
- automatically labeled with \meta{prefix}\meta{separator}\meta{marker}
- where \meta{separator} is predefined as \enquote{|:|}, see \refKey{/tcb/label separator}.
-\end{deprecated}
-\end{docCommand}
-
\clearpage
\begin{docCommand}{tcboxmath}{\oarg{options}\marg{mathematical box content}}
Creates a \refEnv{tcolorbox} which is fitted to the width of the given
@@ -507,18 +486,34 @@ My theorem text.
Prints theorem name without number inside the title.
\begin{dispExample}
\newtcbtheorem[use counter from=mytheo]{sometheorem}{Theorem}%
- {colback=white,colframe=red!50!black,fonttitle=\bfseries,
- theorem name,enhanced,watermark text={\thetcbcounter}}{theo}
+ {enhanced,colback=white,colframe=red!50!black,fonttitle=\bfseries,
+ theorem name,watermark text={\thetcbcounter}}{theo}
+\begin{sometheorem}{My example}{}
+My theorem text.
+\end{sometheorem}
+\end{dispExample}
+\end{docTcbKey}
+
+\enlargethispage*{20mm}
+
+\begin{docTcbKey}[][doc new=2021-12-03]{theorem number}{}{style, no value}
+Prints theorem name without name inside the title.
+\begin{dispExample}
+\newtcbtheorem[use counter from=mytheo]{sometheorem}{Theorem}%
+ {enhanced,colback=white,colframe=red!50!black,fonttitle=\bfseries,
+ theorem number}{theo}
\begin{sometheorem}{My example}{}
My theorem text.
\end{sometheorem}
\end{dispExample}
\end{docTcbKey}
+
\clearpage
\begin{docTcbKey}{theorem}{=\marg{display name}\marg{counter}\marg{title}\marg{marker}}{no default}
- This key is internally used by \refCom{tcbmaketheorem}, but can be used
- directly in a |tcolorbox| for a more flexible approach.
+ This key can be used
+ directly in a |tcolorbox| for a more flexible approach to create a
+ theorem type box.
The \meta{display name} is used together with the increased \meta{counter} value
and the \meta{title} for the title line of the box. Additionally, a
|\label| with the given \meta{marker} is created.
@@ -531,8 +526,7 @@ Here, we see the test \ref{myMarker}.
\end{dispExample}
For a common appearance inside the document, the key |theorem| should not be
used directly as in the example above, but as part of a new environment
-created by hand or using \refCom{tcbmaketheorem} or using its successor
-\refCom{newtcbtheorem}.
+created by hand or using \refCom{newtcbtheorem}.
\end{docTcbKey}
\clearpage
@@ -896,7 +890,7 @@ This is my theorem. \begin{equation*} a^2 + b^2 = c^2. \end{equation*}
%
\clearpage
\subsection{Examples for Definitions and Theorems}
-In the following, the application of \refCom{tcbmaketheorem}
+In the following, the application of \refCom{newtcbtheorem}
to highlight mathematical definitions, theorems, or the like is demonstrated.
At first, additional |tcb| keys are created for the appearance of
@@ -917,7 +911,7 @@ Now, everything is prepared for the following examples.
\begin{dispExample}
The following theorem is numbered as \Cref{theo:diffbarstetig} and
-referenced with the marker \texttt{theo:diffbarstetig}.\bigskip
+referenced with the marker \texttt{theo:diffbarstetig}.
\begin{Theorem}{Differenzierbarkeit bedingt Stetigkeit, wobei diese Benennung
zu Testzwecken ungew\"{o}hnlich lang ist}{diffbarstetig}%
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.pdf b/macros/latex/contrib/tcolorbox/tcolorbox.pdf
index 27d0c1e5e4..482a4a615f 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.pdf
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.pdf
Binary files differ
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.sty b/macros/latex/contrib/tcolorbox/tcolorbox.sty
index 47a03bc0cb..a60f658eb3 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.sty
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.sty
@@ -1,4 +1,4 @@
-%% The LaTeX package tcolorbox - version 4.51 (2021/06/14)
+%% The LaTeX package tcolorbox - version 5.0.0 (2021/12/16)
%% tcolorbox.sty: Text color boxes
%%
%% -------------------------------------------------------------------------------------------
@@ -18,8 +18,8 @@
%% This work consists of all files listed in README
%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{tcolorbox}[2021/06/14 version 4.51 text color boxes]
-\def\tcb@version{4.51}
+\ProvidesPackage{tcolorbox}[2021/12/16 version 5.0.0 text color boxes]
+\def\tcb@version{5.0.0}
\RequirePackage{pgf}[2008/01/15]
\RequirePackage{verbatim}[2003/08/22]
@@ -42,6 +42,8 @@
\newif\iftcb@ignorenobreak
\newif\iftcb@checkpage
\newif\iftcb@resetcounteronoverlays
+\newif\iftcb@wrap@environment
+\newif\iftcb@isbreakable
\newbox\tcb@titlebox
\newbox\tcb@upperbox
@@ -90,7 +92,7 @@
\tcbset{autoparskip}%
}
-\def\tcb@hack@currenvir{\edef\tcb@temp{\noexpand\def\noexpand\@currenvir{\kvtcb@savedelimiter}}\tcb@temp}
+\def\tcb@hack@currenvir{\edef\@currenvir{\kvtcb@savedelimiter}}
\def\tcb@sbs@quota@leftwidth{%
\tcbdimto\tcb@w@upper{\kvtcb@sbs@ratio}%
@@ -132,6 +134,13 @@
\pgfkeys{/handlers/.dimstore in/.code=\pgfkeysalso{\pgfkeyscurrentpath/.code=\def#1{\the\dimexpr##1\relax}}}
\pgfkeys{/handlers/.colorlet/.code=\pgfkeysalso{\pgfkeyscurrentpath/.code=\colorlet{#1}{##1}}}
+\ExplSyntaxOn
+
+\pgfkeys{/handlers/.tl_set:N/.code=\pgfkeysalso{\pgfkeyscurrentpath/.code=\tl_set:Nn#1{##1}}}
+
+\ExplSyntaxOff
+
+
\newcommand\tcbtitle{\ifx\tcbtitletext\@empty\else%
\leavevmode{\color{tcbcoltitle}\kvtcb@fonttitle\kvtcb@haligntitle\kvtcb@before@title\tcbtitletext\kvtcb@after@title}\fi}
@@ -708,15 +717,17 @@
lefthand ratio/.code={\def\kvtcb@sbs@ratio{#1}\let\tcb@sbs@quota=\tcb@sbs@quota@leftratio},
righthand ratio/.code={\def\kvtcb@sbs@ratio{#1}\let\tcb@sbs@quota=\tcb@sbs@quota@rightratio},
breakable@false/.code={%
- \let\tcb@savebox=\tcb@lrbox%
- \let\endtcb@savebox=\endtcb@lrbox%
+ \tcb@isbreakablefalse%
\let\tcb@defToTotalHeight=\tcb@defToTotalHeightStandard%
- \let\tcb@drawcolorbox=\tcb@drawcolorbox@standalone%
- \def\tcb@upperdraw@begin@hook{\color{tcbcolupper}}%
- \def\tcb@lowerdraw@begin@hook{\color{tcbcollower}}%
},
code/.code={#1},
- capture/.store in=\kvtcb@capture,%
+ capture/.code={%
+ \def\kvtcb@capture{#1}%
+ \ifcsname tcb@@capture@\kvtcb@capture\endcsname\else%
+ \tcb@error{Unknown capture mode `\kvtcb@capture'. Use `minipage', `hbox', or `fitbox'}{}%
+ \def\kvtcb@capture{minipage}%
+ \fi%
+ },%
hbox/.style={capture=hbox},%
minipage/.style={capture=minipage},%
void/.style={capture=v@@d,capture/.code=,options@for/.code=,code={\def\tcbinputlisting@core{}}},
@@ -808,16 +819,12 @@
verbatim ignore percent/true/.code={\def\tcb@verbatim@change@percent{\catcode`\^^e=9}},
verbatim ignore percent/false/.code={\let\tcb@verbatim@change@percent\@empty},
verbatim ignore percent/.default=true,
+ wrap@environment/.is if=tcb@wrap@environment,
}
\def\kvtcb@beforebox{}
\def\kvtcb@afterbox{}
-\tcbset{%
- autoparskip,minipage,savedelimiter=tcolorbox,%
- set@extensions@preframe=,set@extensions@postframe=,set@extensions@final=,%
-}%
-
\def\tcb@set@label#1{%
\ifx\kvtcb@label@type\@empty%
\label{#1}%
@@ -1031,8 +1038,29 @@
}
\def\tcb@@capture@hbox{%
- \let\endtcolorbox=\relax%
- \Collect@Body\tcbox@inner@hbox@collected%
+ \let\endtcolorbox\relax%
+ \iftcb@wrap@environment%
+ \expandafter\@firstoftwo%
+ \else%
+ \expandafter\@secondoftwo%
+ \fi%
+ {\begingroup\tcb@hack@currenvir%
+ \Collect@Body\tcbox@inner@hbox@collected@for@wrapping}%
+ {\Collect@Body\tcbox@inner@hbox@collected}%
+}
+
+\long\def\tcbox@inner@hbox@collected@for@wrapping#1\end#2{%
+ \endgroup%
+ \let\tcb@end@tcolorboxenvironment\relax%
+ \tcbox@inner@hbox@collected{#1\end{#2}}%
+ \end{tcolorbox}%
+}
+
+% will be overwritten in `fitting` library
+\def\tcb@@capture@fitbox{%
+ \tcb@error{You need to load `fitting' library to use capture mode `fitbox'}{}%
+ % fallback
+ \tcb@@capture@minipage%
}
% save 'comment' from 'verbatim'
@@ -1055,7 +1083,7 @@
}
\def\tcb@count@boxes{%
- \global\advance\c@tcolorbox@number by 1\relax%
+ \global\advance\c@tcolorbox@number 1\relax%
\edef\thetcolorboxnumber{\number\c@tcolorbox@number}%
\expandafter\ifx\csname tcolorboxpage@\thetcolorboxnumber\endcsname\relax%
\edef\thetcolorboxpage{\number\c@page}%
@@ -1097,10 +1125,10 @@
\def\tcb@managed@layers@max{0}
\def\tcbsetmanagedlayers#1{%
- \setcounter{tcblayer}{\tcb@managed@layers@max}%
+ \global\c@tcblayer\tcb@managed@layers@max\relax%
\ifnum\c@tcblayer<#1\relax%
\loop
- \stepcounter{tcblayer}%
+ \global\advance\c@tcblayer 1\relax%
\newbox\tcb@temp%
\cslet{tcb@footnote@\romannumeral\c@tcblayer}{\tcb@temp}%
\tcbset{every box on layer \number\c@tcblayer/.style={reset,every box}}
@@ -1108,7 +1136,7 @@
\else%
\fi%
\xdef\tcb@managed@layers@max{#1}%
- \setcounter{tcblayer}{0}%
+ \global\c@tcblayer 0\relax%
}
\@onlypreamble\tcbsetmanagedlayers
\tcbsetmanagedlayers{4}%
@@ -1121,7 +1149,7 @@
\def\tcb@layer@inc{%
\tcb@count@boxes%
- \stepcounter{tcblayer}%
+ \global\advance\c@tcblayer 1\relax%
\ifnum\c@tcblayer>1\relax%
\tcbset{breakable@true/.code=}%
\else%
@@ -1138,8 +1166,8 @@
\def\tcb@layer@pushup{%
\tcb@count@boxes%
- \global\advance\c@tcolorbox@number by -1\relax%
- \stepcounter{tcblayer}%
+ \global\advance\c@tcolorbox@number -1\relax%
+ \global\advance\c@tcblayer 1\relax%
\ifnum\c@tcblayer>1\relax%
\tcbset{breakable@true/.code=}%
\else%
@@ -1152,7 +1180,7 @@
\tcbset{every box on layer \number\c@tcblayer}%
\tcbset{every box on layer \number\c@tcblayer/.code=}%
\fi%
- \addtocounter{tcblayer}{-1}%
+ \global\advance\c@tcblayer -1\relax%
}
\def\tcb@layer@dec{%
@@ -1161,17 +1189,34 @@
\expandafter\global\setbox\@mpfootins\box\csname tcb@footnote@\romannumeral\c@tcblayer\endcsname%
\setcounter{mpfootnote}{\csname tcb@footnote@cnt@\romannumeral\c@tcblayer\endcsname}%
\fi%
- \addtocounter{tcblayer}{-1}%
+ \global\advance\c@tcblayer -1\relax%
}
\let\tcbtextheight\tcb@zpt%
+\def\tcb@init@breakable{}
+
+\def\tcb@init@unbreakable{%
+ \let\tcb@savebox=\tcb@lrbox%
+ \let\endtcb@savebox=\endtcb@lrbox%
+ \let\tcb@drawcolorbox=\tcb@drawcolorbox@standalone%
+ \def\tcb@upperdraw@begin@hook{\color{tcbcolupper}}%
+ \def\tcb@lowerdraw@begin@hook{\color{tcbcollower}}%
+}%
+
\long\def\tcb@apply@box@options#1{%
\let\tcb@space\tcb@zpt%
\let\tcb@outer@textheight\tcbtextheight%
\let\tcbtextheight\tcb@zpt%
\let\tcbtextwidth\tcb@zpt%
- \tcbset{#1}\tcb@lateoptions@hook\tcb@afteroptions@hook%
+ \tcbset{#1}%
+ \tcb@lateoptions@hook\let\tcb@lateoptions@hook\@empty%
+ \tcb@afteroptions@hook%
+ \iftcb@isbreakable%
+ \tcb@init@breakable%
+ \else%
+ \tcb@init@unbreakable%
+ \fi%
\let\iftcb@minipage\if@minipage%
\let\iftcb@nobreak\if@nobreak%
}
@@ -2041,8 +2086,13 @@
\tcb@process@newenvironment}
\newcommand{\tcolorboxenvironment}[2]{%
- \BeforeBeginEnvironment{#1}{\begin{tcolorbox}[savedelimiter={#1},#2]}%
- \AfterEndEnvironment{#1}{\end{tcolorbox}}%
+ \AddToHook{env/#1/before}{%
+ \begin{tcolorbox}[savedelimiter={#1},#2,wrap@environment,%
+ code={\def\tcb@end@tcolorboxenvironment{\end{tcolorbox}}}]%
+ }%
+ \AddToHook{env/#1/after}{%
+ \tcb@end@tcolorboxenvironment%
+ }%
}
% auxiliary code to remove a leading backspace
@@ -2299,12 +2349,17 @@
list entry=,no label type,
opacityupper=1.0,opacitylower=1.0,opacitytitle=1.0,opacityframe=1.0,opacityback=1.0,@opacitybacktitle=1.0,
subtitle style=,title filled=false,every float=,ignore nobreak=false,before nobreak=\noindent,
- tcbox width=auto,
+ tcbox width=auto,wrap@environment=false,
},
initialize@reset=reset@core,
shield externalize=false,
}
+\tcbset{%
+ autoparskip,minipage,savedelimiter=tcolorbox,%
+ set@extensions@preframe=,set@extensions@postframe=,set@extensions@final=,%
+}%
+
\def\tcbsetforeverylayer#1{\tcbset{initialize@reset={#1}}}
% libraries
diff --git a/macros/latex/contrib/tcolorbox/tcolorbox.tex b/macros/latex/contrib/tcolorbox/tcolorbox.tex
index 6bd27975ce..d7b89ec1ee 100644
--- a/macros/latex/contrib/tcolorbox/tcolorbox.tex
+++ b/macros/latex/contrib/tcolorbox/tcolorbox.tex
@@ -1,5 +1,5 @@
% \LaTeX-Main\
-%% The LaTeX package tcolorbox - version 4.51 (2021/06/14)
+%% The LaTeX package tcolorbox - version 5.0.0 (2021/12/16)
%% tcolorbox.tex: Manual
%%
%% -------------------------------------------------------------------------------------------
@@ -25,6 +25,7 @@
% arara: pdflatex: { shell: yes, synctex: yes }
% arara: pdflatex: { shell: yes, synctex: yes }
%
+\PassOptionsToPackage{pdftex,bookmarks,raiselinks,pageanchor,hyperindex,colorlinks}{hyperref}
\documentclass[a4paper,11pt]{ltxdoc}
\usepackage{tcolorbox.doc.s_main}
@@ -43,8 +44,8 @@
\setlength{\bibitemsep}{\smallskipamount}
\addbibresource{tcolorbox.doc.bib}
-\def\version{4.51}%
-\def\datum{2021/06/14}%
+\def\version{5.0.0}%
+\def\datum{2021/12/16}%
\makeindex
\hypersetup{
@@ -62,7 +63,7 @@
%\geometry{showframe}
%\tcbset{draftmode}
\tcbset{/tcb/external/-}% for final run
-%\includeonly{tcolorbox.doc.documentation}
+%\includeonly{tcolorbox.doc.listings}
%\hypersetup{colorlinks=false}
diff --git a/macros/unicodetex/latex/einfart/einfart-doc-cn.pdf b/macros/unicodetex/latex/einfart/einfart-doc-cn.pdf
index fb1f614a27..726b21ad8f 100644
--- a/macros/unicodetex/latex/einfart/einfart-doc-cn.pdf
+++ b/macros/unicodetex/latex/einfart/einfart-doc-cn.pdf
Binary files differ
diff --git a/macros/unicodetex/latex/einfart/einfart-doc-cn.tex b/macros/unicodetex/latex/einfart/einfart-doc-cn.tex
index 9251e873de..9126ab2048 100644
--- a/macros/unicodetex/latex/einfart/einfart-doc-cn.tex
+++ b/macros/unicodetex/latex/einfart/einfart-doc-cn.tex
@@ -98,9 +98,9 @@
\title{\einfart{},以极简主义风格排版你的文章}
\author{许锦文}
-\thanks{对应版本. \texttt{\einfart{} 2021/11/09}}
+\thanks{对应版本. \texttt{\einfart{} 2021/12/16}}
\email{\href{mailto:ProjLib@outlook.com}{ProjLib@outlook.com}}
-\date{2021年11月,巴黎}
+\date{2021年12月,巴黎}
\maketitle
diff --git a/macros/unicodetex/latex/einfart/einfart-doc-en.pdf b/macros/unicodetex/latex/einfart/einfart-doc-en.pdf
index 460fe1a43a..71f3fef857 100644
--- a/macros/unicodetex/latex/einfart/einfart-doc-en.pdf
+++ b/macros/unicodetex/latex/einfart/einfart-doc-en.pdf
Binary files differ
diff --git a/macros/unicodetex/latex/einfart/einfart-doc-en.tex b/macros/unicodetex/latex/einfart/einfart-doc-en.tex
index df10abb161..7b093e064d 100644
--- a/macros/unicodetex/latex/einfart/einfart-doc-en.tex
+++ b/macros/unicodetex/latex/einfart/einfart-doc-en.tex
@@ -98,9 +98,9 @@
\title{\einfart{}, write your articles in a simple and clear way}
\author{Jinwen XU}
-\thanks{Corresponding to: \texttt{\einfart{} 2021/11/09}}
+\thanks{Corresponding to: \texttt{\einfart{} 2021/12/16}}
\email{\href{mailto:ProjLib@outlook.com}{ProjLib@outlook.com}}
-\date{November 2021, in Paris}
+\date{December 2021, in Paris}
\maketitle
diff --git a/macros/unicodetex/latex/einfart/einfart-doc-fr.pdf b/macros/unicodetex/latex/einfart/einfart-doc-fr.pdf
index 7ed8237e37..824a41a673 100644
--- a/macros/unicodetex/latex/einfart/einfart-doc-fr.pdf
+++ b/macros/unicodetex/latex/einfart/einfart-doc-fr.pdf
Binary files differ
diff --git a/macros/unicodetex/latex/einfart/einfart-doc-fr.tex b/macros/unicodetex/latex/einfart/einfart-doc-fr.tex
index d7e47b3885..d773e5ddda 100644
--- a/macros/unicodetex/latex/einfart/einfart-doc-fr.tex
+++ b/macros/unicodetex/latex/einfart/einfart-doc-fr.tex
@@ -98,9 +98,9 @@
\title{\einfart{}, écrivez vos articles de manière simple et claire}
\author{Jinwen XU}
-\thanks{Correspondant à : \texttt{\einfart{} 2021/11/09}}
+\thanks{Correspondant à : \texttt{\einfart{} 2021/12/16}}
\email{\href{mailto:ProjLib@outlook.com}{ProjLib@outlook.com}}
-\date{Novembre 2021, à Paris}
+\date{Décembre 2021, à Paris}
\maketitle
@@ -217,7 +217,7 @@ Pour une description détaillée de cette commande et d'autres commandes associ
\end{keyword}
\end{code}
-Cette partie commence par le titre et le bloc d'informations sur l'auteur. L'exemple montre l'utilisation de base, mais en fait, vous pouvez également écrire comme :
+Cette partie commence par le titre et le bloc d'informations sur l'auteur. L'exemple montre l'utilisation de base, mais en fait, vous pouvez également écrire comme :
\begin{code}
\author{(*\meta{author 1}*)}
@@ -229,7 +229,7 @@ Cette partie commence par le titre et le bloc d'informations sur l'auteur. L'exe
...
\end{code}
-De plus, vous pouvez également écrire à la manière \AmS{}, c'est-à-dire :
+De plus, vous pouvez également écrire à la manière \AmS{}, c'est-à-dire :
\begin{code}
\title{(*\meta{title}*)}
@@ -271,7 +271,7 @@ Référence du théorème: \cref{thm:abc}
Les environnements de type théorème couramment utilisés ont été prédéfinis. De plus, lors du référencement d'un environnement de type théorème, il est recommandé d'utiliser \lstinline|\cref{|\meta{label}\texttt{\}} --- de cette manière, il ne serait pas nécessaire d'écrire explicitement le nom de l'environnement correspondant à chaque fois.
\begin{tip}
-Si vous souhaitez utiliser la classe standard à la place plus tard, remplacez simplement les deux premières lignes par :
+Si vous souhaitez utiliser la classe standard à la place plus tard, remplacez simplement les deux premières lignes par :
\begin{code}
\documentclass{article}
@@ -280,7 +280,7 @@ Si vous souhaitez utiliser la classe standard à la place plus tard, remplacez s
\usepackage[palatino,amsfashion]{ProjLib}
\end{code}
-ou utilisez la classe \AmS{} :
+ou utilisez la classe \AmS{} :
\begin{code}
\documentclass{amsart}
@@ -313,8 +313,8 @@ De plus, Source Code Pro est utilisé comme police anglaise sans empattement, Ne
\begin{itemize}
\item L'option \verb|fast| permet un style plus rapide mais légèrement plus rugueux, les principales différences sont :
\begin{itemize}
- \item Utilisez une configuration de police mathématique plus simple ;
- \item N'utilisez pas \textsf{hyperref} ;
+ \item Utilisez une configuration de police mathématique plus simple ;
+ \item N'utilisez pas \textsf{hyperref} ;
\item Activez le mode rapide de la boîte à outils \ProjLib{}.
\end{itemize}
\end{itemize}
@@ -360,7 +360,7 @@ De plus, Source Code Pro est utilisé comme police anglaise sans empattement, Ne
\end{itemize}
\item \texttt{regionalref}, \texttt{originalref}
\begin{itemize}
- \item Lors du référencement, si le nom de l'environnement de type théorème change avec la langue actuelle. Par défaut \texttt{regionalref} est activé, c'est-à-dire que le nom correspondant à la langue courante est utilisé ; par exemple, lors du référencement d'un environnement de type théorème dans un contexte français, les noms «~Théorème, Définition ...~» seront utilisés quel que soit le contexte linguistique dans lequel se trouve l'environnement d'origine. Si \texttt{originalref} est activé, alors le nom restera toujours le même que l'environnement d'origine ; par exemple, lors du référencement d'un théorème écrit dans le contexte français, même si l'on est actuellement dans le contexte anglais, il sera toujours affiché comme «~Théorème~».
+ \item Lors du référencement, si le nom de l'environnement de type théorème change avec la langue actuelle. Par défaut \texttt{regionalref} est activé, c'est-à-dire que le nom correspondant à la langue courante est utilisé ; par exemple, lors du référencement d'un environnement de type théorème dans un contexte français, les noms «~Théorème, Définition ...~» seront utilisés quel que soit le contexte linguistique dans lequel se trouve l'environnement d'origine. Si \texttt{originalref} est activé, alors le nom restera toujours le même que l'environnement d'origine ; par exemple, lors du référencement d'un théorème écrit dans le contexte français, même si l'on est actuellement dans le contexte anglais, il sera toujours affiché comme «~Théorème~».
\item En mode \texttt{fast}, l'option \texttt{originalref} n'aura aucun effet.
\end{itemize}
\end{itemize}
@@ -370,30 +370,30 @@ De plus, Source Code Pro est utilisé comme police anglaise sans empattement, Ne
\LevelTwoTitle{Configurer la langue}
-\einfart{} prend en charge plusieurs langues, notamment le chinois (simplifié et traditionnel), l'anglais, le français, l'allemand, l'italien, le japonais, le portugais (européen et brésilien), le russe et l'espagnol. La langue peut être sélectionnée par les macros suivantes :
+\einfart{} prend en charge plusieurs langues, notamment le chinois (simplifié et traditionnel), l'anglais, le français, l'allemand, l'italien, le japonais, le portugais (européen et brésilien), le russe et l'espagnol. La langue peut être sélectionnée par les macros suivantes :
\begin{itemize}
- \item \lstinline|\UseLanguage{|\meta{language name}\lstinline|}| est utilisé pour spécifier la langue. Le réglage correspondant de la langue sera appliqué après celui-ci. Il peut être utilisé soit dans le préambule ou dans le texte. Lorsqu'aucune langue n'est spécifiée, « English » est sélectionné par défaut.
+ \item \lstinline|\UseLanguage{|\meta{language name}\lstinline|}| est utilisé pour spécifier la langue. Le réglage correspondant de la langue sera appliqué après celui-ci. Il peut être utilisé soit dans le préambule ou dans le texte. Lorsqu'aucune langue n'est spécifiée, « English » est sélectionné par défaut.
\item \lstinline|\UseOtherLanguage{|\meta{language name}\lstinline|}{|\meta{content}\lstinline|}|, qui utilise les paramètres de langue spécifiés pour composer \meta{content}. Par rapport à \lstinline|\UseLanguage|, il ne modifiera pas l'interligne, donc l'interligne restera stable lorsque le texte CJK et occidental sont mélangés.
\end{itemize}
-\meta{language name} peut être (il n'est pas sensible à la casse, par exemple, \texttt{French} et \texttt{french} ont le même effet) :
+\meta{language name} peut être (il n'est pas sensible à la casse, par exemple, \texttt{French} et \texttt{french} ont le même effet) :
\begin{itemize}
\item chinois simplifié : \texttt{CN}, \texttt{Chinese}, \texttt{SChinese} ou \texttt{SimplifiedChinese}
- \item chinois traditionnel : \texttt{TC}, \texttt{TChinese} ou \texttt{TraditionalChinese}
- \item anglais : \texttt{EN} ou \texttt{English}
+ \item chinois traditionnel : \texttt{TC}, \texttt{TChinese} ou \texttt{TraditionalChinese}
+ \item anglais : \texttt{EN} ou \texttt{English}
\item français : \texttt{FR} ou \texttt{French}
- \item allemand : \texttt{DE}, \texttt{German} ou \texttt{ngerman}
- \item italien : \texttt{IT} ou \texttt{Italian}
- \item portugais : \texttt{PT} ou \texttt{Portuguese}
- \item portugais (brésilien) : \texttt{BR} ou \texttt{Brazilian}
- \item espagnol : \texttt{ES} ou \texttt{Spanish}
- \item japonais : \texttt{JP} ou \texttt{Japanese}
- \item russe : \texttt{RU} ou \texttt{Russian}
+ \item allemand : \texttt{DE}, \texttt{German} ou \texttt{ngerman}
+ \item italien : \texttt{IT} ou \texttt{Italian}
+ \item portugais : \texttt{PT} ou \texttt{Portuguese}
+ \item portugais (brésilien) : \texttt{BR} ou \texttt{Brazilian}
+ \item espagnol : \texttt{ES} ou \texttt{Spanish}
+ \item japonais : \texttt{JP} ou \texttt{Japanese}
+ \item russe : \texttt{RU} ou \texttt{Russian}
\end{itemize}
\medskip
-De plus, vous pouvez également ajouter de nouveaux paramètres à la langue sélectionnée :
+De plus, vous pouvez également ajouter de nouveaux paramètres à la langue sélectionnée :
\begin{itemize}
\item \lstinline|\AddLanguageSetting{|\meta{settings}\lstinline|}|
\begin{itemize}
@@ -410,7 +410,7 @@ Par exemple, \lstinline|\AddLanguageSetting(German){\color{orange}}| peut rendre
Des environnements tels que \texttt{definition} et \texttt{theorem} ont été prédéfinis et peuvent être utilisés directement.
-Plus précisement, les environnements prédéfinis incluent : \texttt{assumption}, \texttt{axiom}, \texttt{conjecture}, \texttt{convention}, \texttt{corollary}, \texttt{definition}, \texttt{definition-proposition}, \texttt{definition-theorem}, \texttt{example}, \texttt{exercise}, \texttt{fact}, \texttt{hypothesis}, \texttt{lemma}, \texttt{notation}, \texttt{observation}, \texttt{problem}, \texttt{property}, \texttt{proposition}, \texttt{question}, \texttt{remark}, \texttt{theorem}, et la version non numérotée correspondante avec un astérisque \lstinline|*| dans le nom. Les titres changeront avec la langue actuelle. Par exemple, \texttt{theorem} sera affiché comme «~Theorem~» en mode anglais et «~Théorème~» en mode français.
+Plus précisement, les environnements prédéfinis incluent : \texttt{assumption}, \texttt{axiom}, \texttt{conjecture}, \texttt{convention}, \texttt{corollary}, \texttt{definition}, \texttt{definition-proposition}, \texttt{definition-theorem}, \texttt{example}, \texttt{exercise}, \texttt{fact}, \texttt{hypothesis}, \texttt{lemma}, \texttt{notation}, \texttt{observation}, \texttt{problem}, \texttt{property}, \texttt{proposition}, \texttt{question}, \texttt{remark}, \texttt{theorem}, et la version non numérotée correspondante avec un astérisque \lstinline|*| dans le nom. Les titres changeront avec la langue actuelle. Par exemple, \texttt{theorem} sera affiché comme «~Theorem~» en mode anglais et «~Théorème~» en mode français.
Lors du référencement d'un environnement de type théorème, il est recommandé d'utiliser \lstinline|\cref{|\meta{label}\texttt{\}}. De cette façon, il n'est pas nécessaire d'écrire explicitement le nom de l'environnement correspondant à chaque fois.
@@ -424,9 +424,9 @@ will produce
C'est la définition de certains objets étranges. Il y a approximativement un espace d'une ligne avant et après l'environnement de type théorème, et il y aura un symbole pour marquer la fin de l'environnement.
\end{definition}
-\lstinline|\cref{def: strange}| s'affichera sous la forme : \cref{def: strange}.
+\lstinline|\cref{def: strange}| s'affichera sous la forme : \cref{def: strange}.
-Après avoir utilisé \lstinline|\UseLanguage{French}|, un théorème s'affichera sous la forme :
+Après avoir utilisé \lstinline|\UseLanguage{French}|, un théorème s'affichera sous la forme :
\UseLanguage{English}
\begin{theorem}[Useless]\label{thm}
@@ -440,14 +440,14 @@ Par défaut, lors du référencement, le nom du théorème correspond au context
\LevelTwoTitle{Définir un nouvel environnement de type théorème}
-Si vous avez besoin de définir un nouvel environnement de type théorème, vous devez d'abord définir le nom de l'environnement dans le langage à utiliser :
+Si vous avez besoin de définir un nouvel environnement de type théorème, vous devez d'abord définir le nom de l'environnement dans le langage à utiliser :
\begin{itemize}
\item \lstinline|\NameTheorem[|\meta{language name}\lstinline|]{|\meta{name of environment}\lstinline|}{|\meta{name string}\lstinline|}|
\end{itemize}
Pour \meta{language name}, veuillez vous référer à la section sur la configuration de la langue. Lorsqu'il n'est pas spécifié, le nom sera défini pour toutes les langues prises en charge. De plus, les environnements avec ou sans astérisque partagent le même nom, donc \lstinline|\NameTheorem{envname*}{...}| a le même effet que \lstinline|\NameTheorem{envname}{...}| .
\medskip
-Ensuite, créez cet environnement de l'une des cinq manières suivantes :
+Ensuite, créez cet environnement de l'une des cinq manières suivantes :
\begin{itemize}
\item \lstinline|\CreateTheorem*{|\meta{name of environment}\lstinline|}|
\begin{itemize}
@@ -495,7 +495,7 @@ Voici un exemple. Le code suivant :
\CreateTheorem{proofidea}<subsection>
\end{code}
-définit un environnement non numéroté \lstinline|proofidea*| et un environnement numéroté \lstinline|proofidea| (numérotés dans la sous-section) respectivement. Ils peuvent être utilisés dans le contexte français. L'effet est le suivant :
+définit un environnement non numéroté \lstinline|proofidea*| et un environnement numéroté \lstinline|proofidea| (numérotés dans la sous-section) respectivement. Ils peuvent être utilisés dans le contexte français. L'effet est le suivant :
\vspace{-0.3\baselineskip}
\begin{proofidea*}
@@ -523,7 +523,7 @@ De même, il y a aussi \lstinline|\needgraph| :
\einfart{} possède à la fois les caractéristiques des classes standard et celles des classes \AmS{}.
-Par conséquent, le titre et les informations sur l'auteur peuvent être soit écrits de la manière habituelle, conformément à la classe standard \textsf{article} :
+Par conséquent, le titre et les informations sur l'auteur peuvent être soit écrits de la manière habituelle, conformément à la classe standard \textsf{article} :
\begin{code}
\title{(*\meta{title}*)}
@@ -538,7 +538,7 @@ Par conséquent, le titre et les informations sur l'auteur peuvent être soit é
\end{keyword}
\end{code}
-ou écrit à la manière des classes \AmS{} :
+ou écrit à la manière des classes \AmS{} :
\begin{code}
\title{(*\meta{title}*)}
@@ -555,7 +555,7 @@ ou écrit à la manière des classes \AmS{} :
\maketitle
\end{code}
-Les informations sur l'auteur peuvent contenir plusieurs groupes, écrits comme suit :
+Les informations sur l'auteur peuvent contenir plusieurs groupes, écrits comme suit :
\begin{code}
\author{(*\meta{author 1}*)}
diff --git a/macros/unicodetex/latex/einfart/einfart.cls b/macros/unicodetex/latex/einfart/einfart.cls
index 4a9ff3fae2..1be1a1d20e 100644
--- a/macros/unicodetex/latex/einfart/einfart.cls
+++ b/macros/unicodetex/latex/einfart/einfart.cls
@@ -17,7 +17,7 @@
%%
\NeedsTeXFormat{LaTeX2e}[2020-10-01]
\ProvidesClass{einfart}
- [2021/11/09 A simple and clear article style]
+ [2021/12/16 A simple and clear article style]
\def\minimclass@baseclass{article}
\RequirePackage{kvoptions}
\RequirePackage{etoolbox}
@@ -553,10 +553,6 @@
\PassOptionsToPackage{verbose=silent}{microtype}
\RequirePackage{microtype}
-\AtEndPreamble{\AtBeginDocument{\microtypesetup{deactivate}{\scshape}\microtypesetup{reactivate}}}
-\AtEndPreamble{\AtBeginDocument{\microtypesetup{deactivate}{\bfseries\scshape}\microtypesetup{reactivate}}}
-\AtEndPreamble{\AtBeginDocument{\microtypesetup{deactivate}{\sffamily\scshape}\microtypesetup{reactivate}}}
-\AtEndPreamble{\AtBeginDocument{\microtypesetup{deactivate}{\ttfamily\scshape}\microtypesetup{reactivate}}}
\PassOptionsToPackage{all}{nowidow}
\RequirePackage{nowidow}
\RequirePackage{embrac}
diff --git a/macros/unicodetex/latex/simplivre/simplivre-doc-cn.pdf b/macros/unicodetex/latex/simplivre/simplivre-doc-cn.pdf
index f56713011e..86ab5be0e6 100644
--- a/macros/unicodetex/latex/simplivre/simplivre-doc-cn.pdf
+++ b/macros/unicodetex/latex/simplivre/simplivre-doc-cn.pdf
Binary files differ
diff --git a/macros/unicodetex/latex/simplivre/simplivre-doc-cn.tex b/macros/unicodetex/latex/simplivre/simplivre-doc-cn.tex
index cc1d3ce927..00f68d5292 100644
--- a/macros/unicodetex/latex/simplivre/simplivre-doc-cn.tex
+++ b/macros/unicodetex/latex/simplivre/simplivre-doc-cn.tex
@@ -103,9 +103,9 @@
\fill [cyan!90!black] ($(current page.south west)+(0,7)$) rectangle ($(current page.north west)+(21,-7)$);
\fill [yellow] (current page.south west) rectangle ($(current page.north west)+(3,0)$);
\node[text width=10cm] at ($(current page.north west)+(8.5,-6)$) {\huge\ProjLib};
- \node[text width=6cm,text height=3.5cm,scale=2.5] at ($(current page.north west)+(11,-9)$) {\textcolor{white}{\sffamily\simplivre{}\\[5pt]\footnotesize\hspace*{-.05em}以极简主义风格排版你的图书\\[10pt]\tiny 对应版本. \texttt{\simplivre{} 2021/11/09}}};
+ \node[text width=6cm,text height=3.5cm,scale=2.5] at ($(current page.north west)+(11,-9)$) {\textcolor{white}{\sffamily\simplivre{}\\[5pt]\footnotesize\hspace*{-.05em}以极简主义风格排版你的图书\\[10pt]\tiny 对应版本. \texttt{\simplivre{} 2021/12/16}}};
\node at ($(current page.south)+(1.5,3)$) {\fontsize{16pt}{0pt}\selectfont\textcolor{gray}{许锦文}};
- \node at ($(current page.south)+(1.5,2)$) {\fontsize{12pt}{0pt}\selectfont\textcolor{gray}{2021年11月,巴黎}};
+ \node at ($(current page.south)+(1.5,2)$) {\fontsize{12pt}{0pt}\selectfont\textcolor{gray}{2021年12月,巴黎}};
\end{tikzpicture}%
\end{titlepage}%
\cleardoublepage%
diff --git a/macros/unicodetex/latex/simplivre/simplivre-doc-en.pdf b/macros/unicodetex/latex/simplivre/simplivre-doc-en.pdf
index e9521f3c15..a2367b6dd9 100644
--- a/macros/unicodetex/latex/simplivre/simplivre-doc-en.pdf
+++ b/macros/unicodetex/latex/simplivre/simplivre-doc-en.pdf
Binary files differ
diff --git a/macros/unicodetex/latex/simplivre/simplivre-doc-en.tex b/macros/unicodetex/latex/simplivre/simplivre-doc-en.tex
index f3d1993bc1..505ec733ac 100644
--- a/macros/unicodetex/latex/simplivre/simplivre-doc-en.tex
+++ b/macros/unicodetex/latex/simplivre/simplivre-doc-en.tex
@@ -104,9 +104,9 @@
\fill [cyan!90!black] ($(current page.south west)+(0,7)$) rectangle ($(current page.north west)+(21,-7)$);
\fill [yellow] (current page.south west) rectangle ($(current page.north west)+(3,0)$);
\node[text width=10cm] at ($(current page.north west)+(8.5,-6)$) {\huge\ProjLib};
- \node[text width=6cm,text height=3.5cm,scale=2.5] at ($(current page.north west)+(11,-9)$) {\textcolor{white}{\sffamily\simplivre{}\\[5pt]\footnotesize\textsc{Write your books in \\a simple and clear way}\\[10pt]\tiny Corresponding to: \texttt{\simplivre{} 2021/11/09}}};
+ \node[text width=6cm,text height=3.5cm,scale=2.5] at ($(current page.north west)+(11,-9)$) {\textcolor{white}{\sffamily\simplivre{}\\[5pt]\footnotesize\textsc{Write your books in \\a simple and clear way}\\[10pt]\tiny Corresponding to: \texttt{\simplivre{} 2021/12/16}}};
\node at ($(current page.south)+(1.5,3)$) {\fontsize{16pt}{0pt}\selectfont\textcolor{gray}{\scshape Jinwen XU}};
- \node at ($(current page.south)+(1.5,2)$) {\fontsize{12pt}{0pt}\selectfont\textcolor{gray}{November 2021, in Paris}};
+ \node at ($(current page.south)+(1.5,2)$) {\fontsize{12pt}{0pt}\selectfont\textcolor{gray}{December 2021, in Paris}};
\end{tikzpicture}%
\end{titlepage}%
\cleardoublepage%
diff --git a/macros/unicodetex/latex/simplivre/simplivre-doc-fr.pdf b/macros/unicodetex/latex/simplivre/simplivre-doc-fr.pdf
index 9c63e16fa5..9f64509b1a 100644
--- a/macros/unicodetex/latex/simplivre/simplivre-doc-fr.pdf
+++ b/macros/unicodetex/latex/simplivre/simplivre-doc-fr.pdf
Binary files differ
diff --git a/macros/unicodetex/latex/simplivre/simplivre-doc-fr.tex b/macros/unicodetex/latex/simplivre/simplivre-doc-fr.tex
index 12f4eacb56..7d17d1ea17 100644
--- a/macros/unicodetex/latex/simplivre/simplivre-doc-fr.tex
+++ b/macros/unicodetex/latex/simplivre/simplivre-doc-fr.tex
@@ -103,9 +103,9 @@
\fill [cyan!90!black] ($(current page.south west)+(0,7)$) rectangle ($(current page.north west)+(21,-7)$);
\fill [yellow] (current page.south west) rectangle ($(current page.north west)+(3,0)$);
\node[text width=10cm] at ($(current page.north west)+(8.5,-6)$) {\huge\ProjLib};
- \node[text width=6cm,text height=3.5cm,scale=2.5] at ($(current page.north west)+(11,-9)$) {\textcolor{white}{\sffamily\simplivre{}\\[5pt]\footnotesize\textsc{Écrivez vos livres \\de manière simple et claire}\\[10pt]\tiny Correspondant à : \texttt{\simplivre{} 2021/11/09}}};
+ \node[text width=6cm,text height=3.5cm,scale=2.5] at ($(current page.north west)+(11,-9)$) {\textcolor{white}{\sffamily\simplivre{}\\[5pt]\footnotesize\textsc{Écrivez vos livres \\de manière simple et claire}\\[10pt]\tiny Correspondant à : \texttt{\simplivre{} 2021/12/16}}};
\node at ($(current page.south)+(1.5,3)$) {\fontsize{16pt}{0pt}\selectfont\textcolor{gray}{\scshape Jinwen XU}};
- \node at ($(current page.south)+(1.5,2)$) {\fontsize{12pt}{0pt}\selectfont\textcolor{gray}{Novembre 2021, à Paris}};
+ \node at ($(current page.south)+(1.5,2)$) {\fontsize{12pt}{0pt}\selectfont\textcolor{gray}{Décembre 2021, à Paris}};
\end{tikzpicture}%
\end{titlepage}%
\cleardoublepage%
@@ -276,8 +276,8 @@ De plus, Source Code Pro est utilisé comme police anglaise sans empattement, Ne
\begin{itemize}
\item L'option \verb|fast| permet un style plus rapide mais légèrement plus rugueux, les principales différences sont :
\begin{itemize}
- \item Utilisez une configuration de police mathématique plus simple ;
- \item N'utilisez pas \textsf{hyperref} ;
+ \item Utilisez une configuration de police mathématique plus simple ;
+ \item N'utilisez pas \textsf{hyperref} ;
\item Activez le mode rapide de la boîte à outils \ProjLib{}.
\end{itemize}
\end{itemize}
@@ -324,7 +324,7 @@ De plus, Source Code Pro est utilisé comme police anglaise sans empattement, Ne
\end{itemize}
\item \texttt{regionalref}, \texttt{originalref}
\begin{itemize}
- \item Lors du référencement, si le nom de l'environnement de type théorème change avec la langue actuelle. Par défaut \texttt{regionalref} est activé, c'est-à-dire que le nom correspondant à la langue courante est utilisé ; par exemple, lors du référencement d'un environnement de type théorème dans un contexte français, les noms «~Théorème, Définition ...~» seront utilisés quel que soit le contexte linguistique dans lequel se trouve l'environnement d'origine. Si \texttt{originalref} est activé, alors le nom restera toujours le même que l'environnement d'origine ; par exemple, lors du référencement d'un théorème écrit dans le contexte français, même si l'on est actuellement dans le contexte anglais, il sera toujours affiché comme «~Théorème~».
+ \item Lors du référencement, si le nom de l'environnement de type théorème change avec la langue actuelle. Par défaut \texttt{regionalref} est activé, c'est-à-dire que le nom correspondant à la langue courante est utilisé ; par exemple, lors du référencement d'un environnement de type théorème dans un contexte français, les noms «~Théorème, Définition ...~» seront utilisés quel que soit le contexte linguistique dans lequel se trouve l'environnement d'origine. Si \texttt{originalref} est activé, alors le nom restera toujours le même que l'environnement d'origine ; par exemple, lors du référencement d'un théorème écrit dans le contexte français, même si l'on est actuellement dans le contexte anglais, il sera toujours affiché comme «~Théorème~».
\item En mode \texttt{fast}, l'option \texttt{originalref} n'aura aucun effet.
\end{itemize}
\end{itemize}
@@ -335,30 +335,30 @@ De plus, les options \texttt{oneside} et \texttt{twoside} couramment utilisées
\LevelTwoTitle{Configurer la langue}
-\simplivre{} prend en charge plusieurs langues, notamment le chinois (simplifié et traditionnel), l'anglais, le français, l'allemand, l'italien, le japonais, le portugais (européen et brésilien), le russe et l'espagnol. La langue peut être sélectionnée par les macros suivantes :
+\simplivre{} prend en charge plusieurs langues, notamment le chinois (simplifié et traditionnel), l'anglais, le français, l'allemand, l'italien, le japonais, le portugais (européen et brésilien), le russe et l'espagnol. La langue peut être sélectionnée par les macros suivantes :
\begin{itemize}
- \item \lstinline|\UseLanguage{|\meta{language name}\lstinline|}| est utilisé pour spécifier la langue. Le réglage correspondant de la langue sera appliqué après celui-ci. Il peut être utilisé soit dans le préambule ou dans le texte. Lorsqu'aucune langue n'est spécifiée, « English » est sélectionné par défaut.
+ \item \lstinline|\UseLanguage{|\meta{language name}\lstinline|}| est utilisé pour spécifier la langue. Le réglage correspondant de la langue sera appliqué après celui-ci. Il peut être utilisé soit dans le préambule ou dans le texte. Lorsqu'aucune langue n'est spécifiée, « English » est sélectionné par défaut.
\item \lstinline|\UseOtherLanguage{|\meta{language name}\lstinline|}{|\meta{content}\lstinline|}|, qui utilise les paramètres de langue spécifiés pour composer \meta{content}. Par rapport à \lstinline|\UseLanguage|, il ne modifiera pas l'interligne, donc l'interligne restera stable lorsque le texte CJK et occidental sont mélangés.
\end{itemize}
-\meta{language name} peut être (il n'est pas sensible à la casse, par exemple, \texttt{French} et \texttt{french} ont le même effet) :
+\meta{language name} peut être (il n'est pas sensible à la casse, par exemple, \texttt{French} et \texttt{french} ont le même effet) :
\begin{itemize}
\item chinois simplifié : \texttt{CN}, \texttt{Chinese}, \texttt{SChinese} ou \texttt{SimplifiedChinese}
- \item chinois traditionnel : \texttt{TC}, \texttt{TChinese} ou \texttt{TraditionalChinese}
- \item anglais : \texttt{EN} ou \texttt{English}
+ \item chinois traditionnel : \texttt{TC}, \texttt{TChinese} ou \texttt{TraditionalChinese}
+ \item anglais : \texttt{EN} ou \texttt{English}
\item français : \texttt{FR} ou \texttt{French}
- \item allemand : \texttt{DE}, \texttt{German} ou \texttt{ngerman}
- \item italien : \texttt{IT} ou \texttt{Italian}
- \item portugais : \texttt{PT} ou \texttt{Portuguese}
- \item portugais (brésilien) : \texttt{BR} ou \texttt{Brazilian}
- \item espagnol : \texttt{ES} ou \texttt{Spanish}
- \item japonais : \texttt{JP} ou \texttt{Japanese}
- \item russe : \texttt{RU} ou \texttt{Russian}
+ \item allemand : \texttt{DE}, \texttt{German} ou \texttt{ngerman}
+ \item italien : \texttt{IT} ou \texttt{Italian}
+ \item portugais : \texttt{PT} ou \texttt{Portuguese}
+ \item portugais (brésilien) : \texttt{BR} ou \texttt{Brazilian}
+ \item espagnol : \texttt{ES} ou \texttt{Spanish}
+ \item japonais : \texttt{JP} ou \texttt{Japanese}
+ \item russe : \texttt{RU} ou \texttt{Russian}
\end{itemize}
\medskip
-De plus, vous pouvez également ajouter de nouveaux paramètres à la langue sélectionnée :
+De plus, vous pouvez également ajouter de nouveaux paramètres à la langue sélectionnée :
\begin{itemize}
\item \lstinline|\AddLanguageSetting{|\meta{settings}\lstinline|}|
\begin{itemize}
@@ -375,7 +375,7 @@ Par exemple, \lstinline|\AddLanguageSetting(German){\color{orange}}| peut rendre
Des environnements tels que \texttt{definition} et \texttt{theorem} ont été prédéfinis et peuvent être utilisés directement.
-Plus précisement, les environnements prédéfinis incluent : \texttt{assumption}, \texttt{axiom}, \texttt{conjecture}, \texttt{convention}, \texttt{corollary}, \texttt{definition}, \texttt{definition-proposition}, \texttt{definition-theorem}, \texttt{example}, \texttt{exercise}, \texttt{fact}, \texttt{hypothesis}, \texttt{lemma}, \texttt{notation}, \texttt{observation}, \texttt{problem}, \texttt{property}, \texttt{proposition}, \texttt{question}, \texttt{remark}, \texttt{theorem}, et la version non numérotée correspondante avec un astérisque \lstinline|*| dans le nom. Les titres changeront avec la langue actuelle. Par exemple, \texttt{theorem} sera affiché comme «~Theorem~» en mode anglais et «~Théorème~» en mode français.
+Plus précisement, les environnements prédéfinis incluent : \texttt{assumption}, \texttt{axiom}, \texttt{conjecture}, \texttt{convention}, \texttt{corollary}, \texttt{definition}, \texttt{definition-proposition}, \texttt{definition-theorem}, \texttt{example}, \texttt{exercise}, \texttt{fact}, \texttt{hypothesis}, \texttt{lemma}, \texttt{notation}, \texttt{observation}, \texttt{problem}, \texttt{property}, \texttt{proposition}, \texttt{question}, \texttt{remark}, \texttt{theorem}, et la version non numérotée correspondante avec un astérisque \lstinline|*| dans le nom. Les titres changeront avec la langue actuelle. Par exemple, \texttt{theorem} sera affiché comme «~Theorem~» en mode anglais et «~Théorème~» en mode français.
Lors du référencement d'un environnement de type théorème, il est recommandé d'utiliser \lstinline|\cref{|\meta{label}\texttt{\}}. De cette façon, il n'est pas nécessaire d'écrire explicitement le nom de l'environnement correspondant à chaque fois.
@@ -389,9 +389,9 @@ will produce
C'est la définition de certains objets étranges. Il y a approximativement un espace d'une ligne avant et après l'environnement de type théorème, et il y aura un symbole pour marquer la fin de l'environnement.
\end{definition}
-\lstinline|\cref{def: strange}| s'affichera sous la forme : \cref{def: strange}.
+\lstinline|\cref{def: strange}| s'affichera sous la forme : \cref{def: strange}.
-Après avoir utilisé \lstinline|\UseLanguage{French}|, un théorème s'affichera sous la forme :
+Après avoir utilisé \lstinline|\UseLanguage{French}|, un théorème s'affichera sous la forme :
\UseLanguage{English}
\begin{theorem}[Useless]\label{thm}
@@ -405,14 +405,14 @@ Par défaut, lors du référencement, le nom du théorème correspond au context
\LevelTwoTitle{Définir un nouvel environnement de type théorème}
-Si vous avez besoin de définir un nouvel environnement de type théorème, vous devez d'abord définir le nom de l'environnement dans le langage à utiliser :
+Si vous avez besoin de définir un nouvel environnement de type théorème, vous devez d'abord définir le nom de l'environnement dans le langage à utiliser :
\begin{itemize}
\item \lstinline|\NameTheorem[|\meta{language name}\lstinline|]{|\meta{name of environment}\lstinline|}{|\meta{name string}\lstinline|}|
\end{itemize}
Pour \meta{language name}, veuillez vous référer à la section sur la configuration de la langue. Lorsqu'il n'est pas spécifié, le nom sera défini pour toutes les langues prises en charge. De plus, les environnements avec ou sans astérisque partagent le même nom, donc \lstinline|\NameTheorem{envname*}{...}| a le même effet que \lstinline|\NameTheorem{envname}{...}| .
\medskip
-Ensuite, créez cet environnement de l'une des cinq manières suivantes :
+Ensuite, créez cet environnement de l'une des cinq manières suivantes :
\begin{itemize}
\item \lstinline|\CreateTheorem*{|\meta{name of environment}\lstinline|}|
\begin{itemize}
@@ -459,7 +459,7 @@ Voici un exemple. Le code suivant :
\CreateTheorem{proofidea}<section>
\end{code}
-définit un environnement non numéroté \lstinline|proofidea*| et un environnement numéroté \lstinline|proofidea| (numérotés dans la section) respectivement. Ils peuvent être utilisés dans le contexte français. L'effet est le suivant :
+définit un environnement non numéroté \lstinline|proofidea*| et un environnement numéroté \lstinline|proofidea| (numérotés dans la section) respectivement. Ils peuvent être utilisés dans le contexte français. L'effet est le suivant :
\vspace{-0.3\baselineskip}
\begin{proofidea*}
diff --git a/macros/unicodetex/latex/simplivre/simplivre.cls b/macros/unicodetex/latex/simplivre/simplivre.cls
index 1d75becd0c..0dfcb4a135 100644
--- a/macros/unicodetex/latex/simplivre/simplivre.cls
+++ b/macros/unicodetex/latex/simplivre/simplivre.cls
@@ -17,7 +17,7 @@
%%
\NeedsTeXFormat{LaTeX2e}[2020-10-01]
\ProvidesClass{simplivre}
- [2021/11/09 A simple and clear book style]
+ [2021/12/16 A simple and clear book style]
\def\minimclass@baseclass{book}
\RequirePackage{kvoptions}
\RequirePackage{etoolbox}
@@ -553,10 +553,6 @@
\PassOptionsToPackage{verbose=silent}{microtype}
\RequirePackage{microtype}
-\AtEndPreamble{\AtBeginDocument{\microtypesetup{deactivate}{\scshape}\microtypesetup{reactivate}}}
-\AtEndPreamble{\AtBeginDocument{\microtypesetup{deactivate}{\bfseries\scshape}\microtypesetup{reactivate}}}
-\AtEndPreamble{\AtBeginDocument{\microtypesetup{deactivate}{\sffamily\scshape}\microtypesetup{reactivate}}}
-\AtEndPreamble{\AtBeginDocument{\microtypesetup{deactivate}{\ttfamily\scshape}\microtypesetup{reactivate}}}
\PassOptionsToPackage{all}{nowidow}
\RequirePackage{nowidow}
\RequirePackage{embrac}
diff --git a/support/texlogsieve/LICENCE.txt b/support/texlogsieve/LICENCE.txt
new file mode 100644
index 0000000000..f288702d2f
--- /dev/null
+++ b/support/texlogsieve/LICENCE.txt
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<https://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<https://www.gnu.org/licenses/why-not-lgpl.html>.
diff --git a/support/texlogsieve/README.md b/support/texlogsieve/README.md
new file mode 100644
index 0000000000..acc3204d90
--- /dev/null
+++ b/support/texlogsieve/README.md
@@ -0,0 +1,143 @@
+# texlogsieve - (yet another program to) filter and summarize LaTeX log files
+
+`texlogsieve` reads a LaTeX log file (or the standard input if no file is
+specified), filters out less relevant messages, and displays a summary
+report. It is a `texlua` script, similar in spirit to tools such as
+`texfot`, `texloganalyser`, `rubber-info`, `textlog_extract`,
+`texlogparser`, and others. Highlights:
+
+* Two reports: the most important messages from the log file followed by
+ a summary of repeated messages, undefined references etc.;
+
+* The program goes to great lengths to correctly handle TeX line wrapping
+ and does a much better job at that than existing tools;
+
+* Multiline messages are treated as a single entity;
+
+* Several options to control which messages should be filtered out;
+
+* No messages are accidentally removed;
+
+* The summary report is currently simple, but useful.
+
+`texlogsieve` **must** be run from the same directory as `[pdf|lua|xe]latex`,
+because it searches for the files used during compilation (packages loaded
+from the current directory, files included with `\input` etc.).
+
+The defaults are reasonable; hopefully, you can just do
+
+```
+[pdf|lua|xe]latex myfile.tex | texlogsieve
+```
+
+and be satisfied with the result.
+
+Since it needs to know what messages to expect, `texlogsieve` is
+currently geared towards LaTeX; I have no idea how it would work with
+ConTeXt or plain TeX. Still, adding support to them should not be
+too difficult.
+
+If you want to know more about the TeX log file and the workings of
+the program, check the initial comments in the code.
+
+## Short-term improvements
+
+ * Create tests
+
+ - Synthetic unit tests: these should systematically test the code and the
+ features it implements with small "fake" log files
+
+ - Real-world files (for example, the docs for some packages or some papers
+ from arXiv): these should help us detect important log messages and
+ changes in messages whenever new versions of LaTeX and its packages are
+ released
+
+ * Include the line number in the summary for messages that have it
+
+ * Consider messages that only differ by "on line XXX" to be repetitions
+
+ * Implement option `--collapse-lines` (show multiline messages as a single
+ line)
+
+ * Implement option `--no-redundant` (makes messages that are going to be
+ summarized, such as `undefined reference blah`, not appear in the filtered
+ report, only in the summary)
+
+## Other improvements
+
+ * Improve the final summary format - we should look at other tools for
+ inspiration
+
+ * Filter the summary report too; look at `texloganalyser` for inspiration
+
+ * Consider indicating filenames more prominently in the filtered report;
+ something like
+
+ Messages for file ./somefile.tex:
+ LaTeX Warning: File `blah.txt' already exists on the system.
+ Messages for file ./someotherfile.tex:
+ Warning: Missing character: There is no " (U+0022) in font...
+ but only when there is actually something to report for the given file
+
+ * Do something smart about LaTeX errors (maybe just detecting them and saying
+ "there was an error here" is enough) - maybe get some inspiration from
+ <https://github.com/overleaf/latex-log-parser> (the parser from overleaf).
+ This can get complicated if we account for the possibility that the user
+ interactively solved whatever was the problem, but do we really want to or
+ need to handle that?
+
+ * Add colors (see `texlog_extract`)
+
+ * Improve error handling if/where possible
+
+ * Better aggregation in the summary:
+
+ - `under/overfull boxes: p.5 (chap1.tex, L27); p.7 (chap2.tex, L37); p.19
+ (chap2.tex, L176)`
+
+ - `missing characters X, Y, Z in font blah`
+
+ * Try to figure out a way to automatically extract possible messages from
+ LaTeX packages
+
+ * Stuff like
+ `LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right`
+ should trigger a specific "please rerun" message in the summary
+
+ * Maybe grep the .fls file first before trying to do `kpse.find_file()`; this
+ is probably more reliable and works even if the environment has changed,
+ but can we be sure it works correctly when reading the logfile from a pipe?
+
+## Refactorings to consider:
+
+ * Modify `heartbeat` to use `os.difftime()`
+
+ * Improve Lines:
+
+ - Eliminate `Lines.current` and instead always use `Lines.get(0)`,
+ `Lines.get(1)` etc. We might store stuff in indexes 1, 2, 3 etc. and
+ make something like `Lines:get(val) => return Lines[val +1]` (this is
+ better than actually using index 0 because the lua standard library
+ counts from one, so adhering to this convention makes using it easier)
+
+ - Reimplement the logic using <https://www.lua.org/pil/11.4.html> for a
+ small performance increase
+
+---
+
+Code etc: <https://gitlab.com/lago/texlogsieve>
+
+Copyright 2021 Nelson Lago <lago@ime.usp.br>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <https://www.gnu.org/licenses/>.
diff --git a/support/texlogsieve/texlogsieve b/support/texlogsieve/texlogsieve
new file mode 100755
index 0000000000..699bfa972d
--- /dev/null
+++ b/support/texlogsieve/texlogsieve
@@ -0,0 +1,4022 @@
+#!/usr/bin/env texlua
+
+-- texlogsieve - filter and summarize LaTeX log files
+--
+-- Copyright (C) 2021 Nelson Lago <lago@ime.usp.br>
+--
+-- This program is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program. If not, see <https://www.gnu.org/licenses/>.
+--
+-- Code etc: https://gitlab.com/lago/texlogsieve
+
+--[[
+
+----------------
+THE TeX LOG FILE
+----------------
+
+TeX uses three low-level commands for logging:
+
+ 1. \message -> outputs to both the console and the log file (most
+ low-level TeX messages, such as open/close files, shipouts etc.
+ behave *more or less* as if they were generated by \message)
+
+ 2. \write with an unallocated stream identifier (typically, 0) ->
+ also outputs to both the console and the log file.
+
+ 2. \write with a negative stream identifier (typically, -1) -> outputs
+ to the log file only
+
+\write and \message behave differently:
+
+ * Normally, \write appends a line feed character (LF) to the text, so
+ a sequence of \write commands results in multiple lines.
+
+ * \message checks whether the last thing that was sent out was another
+ \message; if so, it adds a space character and outputs the text (both
+ the previous text and the new one are on the same line, separated by
+ a space), otherwise it just outputs the text (in this case, the new
+ text is at the beginning of a line). Note, however, that there are
+ some \message's that are not separated by spaces, such as "))".
+ Also, in most cases (I could not figure out when this fails, but it
+ happens often), if \message realizes the new text will not fit in
+ the current line (the line would exceed max_print_line characters),
+ instead of wrapping the line as usual, it may output a LF and start
+ the text on a new line.
+
+ * \write also checks if the last thing that was sent out was a message;
+ if so, it sends LF before the text, so that it starts at the
+ beginning of a line (it also sends LF after the text too, as always)
+
+Therefore, in the console, text output with \write always appears on a
+new line. A sequence of calls to \message also always starts on a new
+line, but the texts of all of them appear on the same line, separated
+by spaces.
+
+However, things get messy in the log file. Basically, \message and
+\write0 modify the same filedescriptor, while \write-1 modifies a
+different filedescriptor. This means \message and \write0 are unaware
+of \write-1 and vice-versa. As a result, the spaces and LFs that are
+added according to what is output to the console get mixed up with what
+is written only to the log file with \write-1. Therefore, there may be
+unexpected empty lines or lines that start with a space character in
+the log file.
+
+The LaTeX command \GenericInfo uses \write-1, while \GenericWarning
+uses \write0. TeX and LaTeX also define \wlog, which is an alias for
+\write-1; LaTeX defines \typeout, which is an alias for \write0. Some
+packages define their own aliases; for example, pgfcore.code.tex does
+\def\pgf@typeout{\immediate\write0}, graphics.sty does \let\Gin@log\wlog,
+etc. Package infwarerr provides a compatibility layer for the LaTeX
+standard logging commands, so that they can be used both in LaTeX and
+in plain TeX, as \@PackageInfo, \@ClassWarning etc.
+
+With that in mind, we will consider that there are five kinds of message
+in the LaTeX log file:
+
+ * Ordinary messages -> messages that start at the beginning of the line
+ and end at the end of the line (they are created with \write), such as
+
+ Document Class: book 2019/08/27 v1.4j Standard LaTeX document class
+
+ For additional information on amsmath, use the `?' option.
+
+ \openout4 = `somefile'.
+
+ * Short messages -> messages that may begin/end anywhere on a line,
+ because the line they are in may contain multiple messages of
+ this type (they are created with \message), such as
+
+ ASCII Hyphenation patterns for American English
+
+ ) (/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
+ -> these mean 'close last file' and 'open file .../iftex.sty'
+
+ (/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty)
+ -> these mean 'open file .../etoolbox.sty' and 'close last file'
+ (which is etoolbox.sty, obviously)
+
+ ))
+ -> these mean 'close the last two files'
+
+ [1] [2] [3]
+ -> these mean 'shipout pages 1, 2, and 3'
+
+ * Multiline messages -> messages that start at the beginning of a line,
+ continue for a few lines and end at the end of a line (the programmer
+ explicitly used multiple \write commands, a single \write command
+ with embedded newline characters, or single/multiple \message
+ commands with leading/trailing newline characters), such as
+
+ Package biblatex Info: Automatic encoding selection.
+ (biblatex) Assuming data encoding 'utf8'.
+
+ *************************************
+ * Using libertinus math *
+ *************************************
+
+ **********************
+ * No checksum found! *
+ **********************
+ (from ydoc-doc.sty)
+
+ * "Best-effort" multiline messages -> similar to the previous ones,
+ but created using multiple \message commands or a single one with
+ embedded newline characters but no leading and/or trailing newline
+ characters. They *usually* begin at the beginning of the line and
+ end at the end of the line because, as mentioned before, TeX usually
+ inserts a line break if the line would not fit otherwise. However,
+ that is not always true, especially if max_print_line is large.
+ Therefore, sometimes the message may begin in the middle of a line
+ and/or the various lines may be strung together or wrapped.
+ Examples:
+
+ *****************************************************************
+ GFS-Solomos style file by A. Tsolomitis
+ *****************************************************************
+ (from gfssolomos.sty)
+
+ =============== Entering putframe ====================
+ \pagegoal =635.97621pt, \pagetotal =368.07768pt.
+ (from exam.cls)
+
+ * Error messages TODO describe them here
+
+To complicate things, TeX by default wraps (breaks) any line longer
+than max_print_line characters (by default, 79). Since some messages
+may be output together on a single line, even short messages may be
+broken across lines. At the same time, there are quite a few ordinary
+lines that in practice happen to be max_print_line characters long,
+which makes detecting line wrapping a real challenge. Also, for no
+apparent reason, LuaTeX wraps some lines at max_print_line characters
+and others at max_print_line +1 characters. More: I have seen at least
+two cases in which TeX "forgot" to wrap a line, and sometimes there is
+a blank line between the wrapped line and its continuation line. And
+even more! LuaTeX does not break a line in the middle of a multibyte
+UTF-8 character. That is obviously a good idea, but it means some lines
+may be broken at lengths smaller than max_print_line. While this may
+seem rare, it can happen when parts of the document text are included
+in the log, as is the case with over/underfull box messages.
+
+So, if at all possible, it is a very good idea to set max_print_line
+to a really large value (such as 100,000), effectively disabling line
+wrapping. It was useful in the 1980s, but not anymore (your terminal
+or editor wraps automatically).
+
+
+----------------------
+HOW THIS PROGRAM WORKS
+----------------------
+
+To read this section, pretend for a moment that TeX does not wrap long
+lines.
+
+We have a set of handlers, i.e., objects that process specific kinds
+of message. Each handler checks if a given line matches some patterns
+to decide whether it is supposed to process it (return true) or not
+(return false).
+
+There is a loop that, at each iteration, reads a new line from the log
+file with moreData() and uses chooseHandler() to call each handler in
+turn until one of them processes that line. After the right handler
+does its thing, it sends the message to the output, erases this input
+line and returns true, which causes the loop to restart, skipping the
+remaining handlers.
+
+The loop may behave a little differently in two cases:
+
+ 1. If the handler processes just a part of the input line, which may
+ happen if the line contains multiple short messages, it removes
+ the processed data from the line and leaves the rest. At the next
+ iteration, no new data is read: the loop processes the remaining
+ material from the same line.
+
+ 2. If the handler processes the input and expects specific lines of
+ content to follow, it can preset itself as the next handler,
+ temporarily bypassing the choice step.
+
+When the line (or part of it) is not recognized by any handler, it is
+appended to unrecognizedBuffer. We may sometimes concatenate multiple
+text chunks together here because, during processing, we may break the
+line into chunks when in fact it comprises a single message. In any
+case, we know for sure that the message (or messages) currently in
+unrecognizedBuffer is complete when either (1) we identify the next
+short message in the line or (2) we proceed to the next input line.
+When either happens, we send the buffer to the output.
+
+We know most messages, but not all, start at the beginning of a line.
+Therefore, we keep two sets of handlers: beginningOfLineHandlers and
+anywhereHandlers. We use the boolean atBeginningOfLine to know when
+we may skip trying the beginningOfLineHandlers.
+
+We mentioned that the handler "sends the message to the output". The
+handler actually creates a Message object and calls the dispatch()
+function to send that object to a coroutine that handles output. The
+coroutine aggregates messages by page, generates summaries for some
+kinds of message (for example, it may list all undefined references
+together) and prints out the report in different formats.
+
+Sometimes we need to be able to check the content of the next line
+to decide what to do about the current line (for example, different
+messages may begin with a line like "**********"). So, we do not only
+read one line from the input at each iteration; instead, we have a
+buffer with the next few lines. When the current line has been
+completely processed, moreData() simply refills the buffer and calls
+Lines:gotoNextLine(), which makes the next line (line 1) become the
+current line (line 0), the following line (line 2) become the next
+line (line 1) etc.
+
+That would be all if TeX did not wrap long lines, but it does. To unwrap
+lines when needed, we (1) check that the line is max_print_lines long;
+if so, we (2) check whether the next line is the beginning of a known
+message; if it is not, we (3) check whether unwrapping lines makes us
+recognize a message that was not identified without unwrapping. Because
+of 3, we do this in each of the handlers and not beforehand. To unwrap
+a line, we simply join the current line with the next one from the
+buffer.
+
+Note that, if you reconfigure the variable max_print_line to a value
+larger than 9999 (which is a good thing to do), this program assumes
+(quite reasonably) that there is no line wrapping.
+
+
+------------
+THE HANDLERS
+------------
+
+We want to be able to explicitly recognize as much messages as possible
+(and leave the least amount possible for the unrecognizedBuffer) for at
+least three reasons:
+
+ 1. A character such as "(", ")", "[", or "]" in an unrecognized message
+ may confuse the program (these chars may indicate open/close file
+ and begin/end shipout). If it is part of a known message, it will
+ not be mistaken for an open/close file etc.
+
+ 2. By default, TeX wraps lines longer than max_print_line characters,
+ and unwrapping them involves making sure that the following line
+ is not the start of a new message. For this to be reliable,
+ unknown messages should be kept to a minimum.
+
+ 3. We can assign severity levels to known messages; unknown messages
+ must always be handled as high-severity, polluting the output.
+
+At each iteration, chooseHandler() calls doit() for every handler. The
+handler returns true to signal that chooseHandler() should proceed to
+the next iteration. It does that if it did "something" to change the
+status for the next iteration:
+
+ * It processed a complete message in this iteration (i.e., the whole
+ message was contained in the current line);
+
+ * It processed the message partially and defined nextHandler;
+
+ * It finalized the processing of a previous partial message (i.e., it
+ realized the message has ended). This only happens if the handler
+ was previously set as nextHandler. When this happens, it sometimes
+ does nothing with the content of the current line, only outputs the
+ complete message. Still, when the loop restarts, it will no longer
+ be the nextHandler (and that is "something").
+
+A handler must provide:
+
+1. A doit() method that returns true or false to indicate whether it
+ actually did something with the current line or not.
+
+2. A canDoit(position) method that returns true or false to indicate
+ whether the handler can/should process the line given by "position"
+ (we use this to identify wrapped lines, as explained later).
+
+3. An init() method to do any necessary setup after the command line
+ has been read (it is ok to do nothing). The easiest way to do this
+ is to "inherit" from HandlerPrototype.
+
+4. For handlers that deal with messages that can appear in the middle
+ of a line, a lookahead(position) method to indicate whether there is
+ a message that the handler can/should process in the line indicated
+ by "position", even if there is something else in the line before
+ that message.
+
+Besides true/false, canDoit() also returns a table with extra data. In
+some cases, this table is empty; in others, the handler's doit() method
+knows what to do with it. There are two places outside the handler
+itself where this data is used:
+
+1. In handleUnrecognizedMessage(), where we call lookahead() and use
+ the value of "first" that should be embedded in this table.
+
+2. In Lines:noHandlersForNextLine(), where we treat openParensHandler
+ and openSquareBracketHandler specially and read file/page data from
+ them.
+
+A simple handler:
+-----------------
+
+ exampleHandler = {}
+ exampleHandler.pattern = '^%s*L3 programming layer %b<> xparse %b<>'
+
+ function exampleHandler:init()
+ end
+
+ function exampleHandler:canDoit(position)
+ local line
+ if position == nil then position = 0 end
+ line = Lines:get(position)
+
+ local first, last = string.find(line, self.pattern)
+ if first == nil then return false
+ return true, {first = first, last = last}
+ end
+
+ function exampleHandler:doit()
+ local myTurn, data = self:canDoit()
+ if not myTurn then return false end
+
+ flushUnrecognizedMessages()
+ local msg = Message:new()
+ msg.severity = DEBUG
+ msg.content = string.sub(Lines.current, 1, data.last)
+ dispatch(msg)
+ Lines:handledChars(data.last)
+ return true
+ end
+
+ function exampleHandler:lookahead(position)
+ local tmp = self.pattern
+ self.pattern = string.sub(self.pattern, 2) -- remove leading '^'
+ local result, data = self:canDoit()
+ self.pattern = tmp
+ return result, data
+ end
+
+There are two special handlers, which we use as prototypes
+(https://www.lua.org/pil/16.1.html ) and derive some other handlers
+from:
+
+ - stringsHandler - handles a list of predefined multiline strings
+ that may or may not begin at the beginning of a line and may or may
+ not end at the end of a line. We identify where the last line of
+ the message ends and remove that from the input line, leaving the
+ rest for the next handler. In general, the pattern we look for in
+ each line should match the whole line and should not end with
+ something like ".*", unless we are absolutely sure that (1) each line
+ always ends at the end of the line and (2) the line is short enough
+ that it is never wrapped (which also implies that the first line
+ always starts at the start of the line). This handler is quite
+ complex because it has to deal with many different scenarios. We
+ derive other handlers from the basic prototype so that we can assign
+ different severity levels to each one. Derived handlers differ from
+ the prototype only by severity level and the set of patterns to
+ search for.
+
+ - genericLatexHandler -> handles the multiline messages generated by
+ the \PackageInfo, \ClassWarning etc. LaTeX commands. The handler
+ does not need to know in advance the text for all these messages;
+ it looks for generic patterns instead and extracts from the message
+ itself the name of the package and severity level. It is able to
+ identify multiline messages by checking if the following lines are
+ prefixed with a specific pattern, so it can also handle messages
+ with an unknown number of lines. We derive other handlers from the
+ basic prototype because, for each kind of message, we use a different
+ set of pattern captures, and we need to treat these differently.
+ Derived handlers differ from the prototype by the set of patterns
+ to search for and by the unpackData() method, which deals with the
+ specific pattern captures.
+
+
+----------------
+UNWRAPPING LINES
+----------------
+
+As mentioned, each handler has a canDoit(position) method, where
+"position" is the line number in the Lines input buffer (0 is the
+current line, 1 is the next line etc.). As expected, doit() calls
+canDoit() to check whether it should proceed of not. However, that
+is not all: if canDoit() fails to find a match, it checks whether the
+line might be a wrapped line. To detect a wrapped line, canDoit()
+uses Lines:seemsWrapped() to do three things:
+
+1. Check that the line is the "right" size (in Lines:wrappingLength())
+
+2. Check that the next line is not the beginning of a known message
+ (in Lines:noHandlersForNextLine())
+
+3. Check whether unwrapping the line actually gives us something, i.e.,
+ the unwrapped line matches something that its two separate parts
+ did not.
+
+The problem is in step (2): this entails calling canDoit() from all
+handlers on the following line, which means that it may be called many
+times and may even call itself on a different line. Therefore, it is
+essential that canDoit() have no side effects, i.e., it should not set
+any state besides the return values. For the same reason, canDoit()
+cannot alter the content of the Lines buffer when it tries to unwrap a
+line; it should only use temporary variables instead (not only that:
+if unwrapping does not yield a match, we do not want to do it either).
+
+canDoit() may, however, return a "hint" about the line wrapping - either
+the text or the pattern that finally matched. Some handlers do that and,
+in doit(), take the string or pattern found by canDoit() and unwrap
+lines until finding a match to that string or pattern. Others cannot do
+this due to various reasons and need to repeat the work already done
+by canDoit() (the code is different, however).
+
+Note also that some handlers, such as underOverFullBoxHandler and
+genericLatexHandler, cannot do (3), as they do not know in advance
+how the end of a given message should look like. The bottom line is,
+line unwrapping is done in many different ways according to context.
+
+Finally, this all means that we may call canDoit() from all handlers on
+a given line many times. This gets really bad with stringsHandler: for
+a sequence of k consecutive lines that are max_print_line long, this
+handler alone is O(n^{k+1}), where n is the number of patterns that it
+checks for (around 40). A previous implementation proved this to be
+impractical, so we work around this problem with memoization.
+
+
+-----------------------------------------
+DETAILS ABOUT UNDER/OVERFULL BOX MESSAGES
+-----------------------------------------
+
+These are actually several different messages:
+
+Overfull \[hv]box (Npt too wide) SOMEWHERE
+Underfull \[hv]box (badness N) SOMEWHERE
+
+Possible SOMEWHEREs:
+
+1. detected at line N
+ -> this is something like a makebox (horizontal) or parbox (vertical)
+ with an explicit size argument. For hboxes, this is followed by
+ the offending text.
+
+2. has occurred while \output is active
+ -> If horizontal, this is probably in a header, footer or something
+ similar; if vertical, the vertical glues got too stretched
+
+3. in alignment at lines LINE NUMBERS
+ -> the problematic box is part of a tabular or math alignment
+ environment. The lines correspond to the whole align structure,
+ not only the problematic box. This should only appear as an
+ horizontal problem. This is followed by the offending text, but
+ it is more often than not just a bunch of "[]" to indicate nested
+ boxes
+
+4. in paragraph at lines LINE NUMBERS
+ -> "Normal" text. This also only appears as an horizontal problem.
+ This is followed by the offending text, which may include a
+ few "[]" for whatsits, glues etc. In particular, the text often
+ begins with "[]", indicating the left margin glue.
+
+In the log file, all under/overfull box messages are followed by a
+description of the boxes involved. This is *not* normally included in
+the console output (but it may be, depending on \tracingonline). The
+level of detail of this description is controlled by \showboxdepth
+and \showboxbreadth. The default for these in LaTeX is -1, which means
+this description is omitted and replaced by "[]", so it looks like this:
+
+Underfull \vbox (badness 10000) detected at line 128
+ [] <-- this is the description
+
+If the message includes the offending text, the description comes
+after it:
+
+Underfull \hbox (badness 3417) in paragraph at lines 128--128
+ []\T1/LibertinusSerif-TLF/b/n/14.4 (+20) Some document text...
+ [] <-- this is the description
+
+If there is no offending text, the description may appear in the same
+line as the under/overfull box message (both are \message's). The
+offending text, if any, always starts at the beginning of a line and
+ends at the end of a line.
+
+About the description: https://tex.stackexchange.com/a/367589/217608
+
+This all means that handling these messages from a pipe is different
+than from the log file, because in the log file you know there will
+be a "[]" after the message. What we do here is check whether that
+string is there; if it is, we remove it.
+
+under/overfull messages that do not include the offending text are
+\message's and, therefore, there may be extra text (such as a shipout)
+on the same line.
+
+--]]
+
+
+--[[ ##################################################################### ]]--
+--[[ ################ INIT, MAIN LOOP, CHOOSING HANDLER ################## ]]--
+--[[ ##################################################################### ]]--
+
+ DEBUG = 0
+ INFO = 1
+ WARNING = 2
+CRITICAL = 3
+ UNKNOWN = 4
+
+function main(arg)
+ processCommandLine(arg)
+ initializeGlobals()
+ initializeKpse()
+ registerHandlers()
+ registerSummaries()
+ convertFilterStringsToPatterns()
+
+ while moreData() do
+ if nextHandler == nil then
+ chooseHandler()
+ else
+ handler = nextHandler
+ nextHandler = nil
+ handler:doit()
+ end
+ end
+
+ -- dispatch remaining messages, if any
+ epilogueHandler:flush()
+ flushUnrecognizedMessages()
+ dispatch(nil) -- end the output coroutine
+end
+
+function moreData()
+ -- if there is remaining data from the previous iteration,
+ -- we leave everything as-is for it to be processed now
+ local tmp = Lines.current
+ if tmp ~= nil and string.len(tmp) > 0 then return true end
+
+ -- Refill the buffer. A simple experiment suggests 8 lines
+ -- is enough, but why not use a higher value?
+ while Lines:numLines() < 15 do
+ tmp = logfile:read("*line")
+ if tmp == nil then break end
+ -- We *need* to remove blank lines here because
+ -- sometimes a wrapped line is followed by a blank
+ -- line, which messes our detection of wrapped lines.
+ if string.len(tmp) > 0 then Lines:append(tmp) end
+ end
+
+ -- proceed to the next line
+ flushUnrecognizedMessages()
+ Lines:gotoNextLine()
+
+ return Lines.current ~= nil
+end
+
+--[[
+chooseHandler() never tries to process more than one message in a single
+iteration for at least three reasons:
+
+ * There may be no more data available on the current line, so we
+ need to call moreData();
+
+ * Maybe the next handler is one that we have already tried in this
+ iteration; skipping it and trying others may fail;
+
+ * Maybe the handler that last processed the data predefined the next
+ handler, and we should not interfere with that.
+--]]
+
+function chooseHandler()
+ -- Some messages can only appear at the beginning of a line
+ if Lines.atBeginningOfLine then
+ for _, candidateHandler in ipairs(beginningOfLineHandlers) do
+ if candidateHandler:doit() then return end
+ end
+ end
+
+ -- Others may appear anywhere
+ for _, candidateHandler in ipairs(anywhereHandlers) do
+ if candidateHandler:doit() then return end
+ end
+
+ -- No handler succeeded, which means this is an unrecognized message
+ -- (or a fragment of one); Add to unrecognizedBuffer.
+ handleUnrecognizedMessage()
+end
+
+function handleUnrecognizedMessage()
+ -- Before sending this to the unrecognizedBuffer, check if
+ -- there is another known message later on this same line.
+
+ local last = string.len(Lines.current)
+
+ for _, handler in ipairs(anywhereHandlers) do
+ local match, data = handler:lookahead()
+ if match and data.first -1 < last then last = data.first -1 end
+ end
+
+ unrecognizedBuffer = unrecognizedBuffer .. string.sub(Lines.current, 1, last)
+ Lines:handledChars(last)
+end
+
+function flushUnrecognizedMessages()
+ unrecognizedBuffer = trim(unrecognizedBuffer)
+ if unrecognizedBuffer == "" then return end
+
+ local msg = Message:new()
+ msg.content = unrecognizedBuffer
+ dispatch(msg)
+ unrecognizedBuffer = ""
+end
+
+-- Setup initial status (lots of globals, sue me)
+function initializeGlobals()
+
+ -- Chunks of text that were not recognized by any handler
+ unrecognizedBuffer = ""
+
+ -- The user may choose to silence some files. When one of these is
+ -- opened/closed, this is set to true or false accordingly. The value
+ -- is then used by Message:new()
+ mute = false
+
+ -- List of files that TeX had open at a given time during processing
+ openFiles = Stack:new()
+
+ -- "List" of currently active shipouts. There is only ever one shipout
+ -- active at any time, but we borrow the design of openFiles because
+ -- there may be "[" and "]" characters that do not correspond to any
+ -- shipout, so we use this to keep track of them.
+ shipouts = Stack:new()
+
+ -- Counter, so we know the physical page number
+ numShipouts = 0
+
+ -- map physicalPage (from numShipouts) to latexPage (LaTeX counter)
+ latexPages = {}
+
+ -- After printing each message, the output coroutine stores them
+ -- in currentPageMessages. When it receives a shipout message,
+ -- it traverses currentPageMessages adding the page number it
+ -- just learned about to each of the messages, calls :toSummary()
+ -- for each of them and and clears currentPageMessages (we do this
+ -- so the data in the summaries may include the page numbers). The
+ -- objects representing the summary for each kind of message are
+ -- stored in summaries, so after all messages we can just traverse
+ -- this list calling :toString() and get all the summaries. The
+ -- summaries table is populated by registerSummaries().
+ currentPageMessages = {}
+ summaries = {}
+
+ -- When the same message appears several times, we only output it
+ -- once, thanks to this table. This is used by showMessage()
+ alreadySeen = {}
+
+ -- All handlers should be in either of these. They are populated by
+ -- registerHandlers().
+ beginningOfLineHandlers = {}
+ anywhereHandlers = {}
+
+ -- Does the log file have wrapped lines?
+ -- This may be changed by initializeKpse().
+ badLogFile = true
+end
+
+function initializeKpse()
+ -- In texlua, the texconfig table (the table that records some TeX
+ -- config variables) is not initialized automatically; we need to
+ -- call this to initialize it so we can read "max_print_line". If
+ -- I understand things correctly, the name used here affects the
+ -- loaded configuration options: using a name such as "texlogsieve"
+ -- would allow us to add custom options to texmf.cnf. But since
+ -- all we want to do is search for files and read the value of
+ -- "max_print_line", let's just pretend we are luatex.
+ kpse.set_program_name("luatex")
+
+ max_print_line = tonumber(kpse.var_value("max_print_line"))
+ if max_print_line ~= nil and max_print_line > 9999 then
+ badLogfile = false
+ else
+ badLogfile = true
+ end
+end
+
+function registerHandlers()
+ table.insert(beginningOfLineHandlers, citationHandler)
+ table.insert(beginningOfLineHandlers, referenceHandler)
+ table.insert(beginningOfLineHandlers, labelHandler)
+ table.insert(beginningOfLineHandlers, genericLatexHandler)
+ table.insert(beginningOfLineHandlers, latex23MessageHandler)
+ table.insert(beginningOfLineHandlers, genericLatexVariantHandler)
+ table.insert(beginningOfLineHandlers, providesHandler)
+ table.insert(beginningOfLineHandlers, geometryDetailsHandler)
+ table.insert(beginningOfLineHandlers, epilogueHandler)
+ table.insert(beginningOfLineHandlers, underOverFullBoxHandler)
+ table.insert(beginningOfLineHandlers, utf8FontMapHandler)
+ table.insert(beginningOfLineHandlers, missingCharHandler)
+ table.insert(beginningOfLineHandlers, beginningOfLineDebugStringsHandler)
+ table.insert(beginningOfLineHandlers, beginningOfLineInfoStringsHandler)
+ table.insert(beginningOfLineHandlers, beginningOfLineWarningStringsHandler)
+ table.insert(anywhereHandlers, anywhereDebugStringsHandler)
+ table.insert(anywhereHandlers, anywhereInfoStringsHandler)
+ table.insert(anywhereHandlers, anywhereWarningStringsHandler)
+ table.insert(anywhereHandlers, openParensHandler)
+ table.insert(anywhereHandlers, closeParensHandler)
+ table.insert(anywhereHandlers, openSquareBracketHandler)
+ table.insert(anywhereHandlers, closeSquareBracketHandler)
+
+ for _, handler in ipairs(beginningOfLineHandlers) do
+ handler:init()
+ end
+
+ for _, handler in ipairs(anywhereHandlers) do
+ handler:init()
+ end
+end
+
+function registerSummaries()
+ table.insert(summaries, underOverSummary)
+ table.insert(summaries, missingCharSummary)
+ table.insert(summaries, repetitionsSummary)
+ table.insert(summaries, citationsSummary)
+ table.insert(summaries, referencesSummary)
+ table.insert(summaries, labelsSummary)
+end
+
+function convertFilterStringsToPatterns()
+ local tmp = {}
+ for _, pattern in ipairs(SEMISILENCE_FILES) do
+ table.insert(tmp, globtopattern(pattern))
+ end
+ SEMISILENCE_FILES = tmp
+
+ tmp = {}
+ for _, pattern in ipairs(SILENCE_FILES_RECURSIVE) do
+ table.insert(tmp, globtopattern(pattern))
+ end
+ SILENCE_FILES_RECURSIVE = tmp
+
+ tmp = {}
+ for _, str in ipairs(SILENCE_STRINGS) do
+ local pat = stringToPattern(str)
+ table.insert(tmp, pat)
+ end
+ SILENCE_STRINGS = tmp
+
+ tmp = {}
+ for _, str in ipairs(SILENCE_PKGS) do
+ local pat = stringToPattern(str)
+ table.insert(tmp, pat)
+ end
+ SILENCE_PKGS = tmp
+end
+
+function processCommandLine(args)
+ HEARTBEAT = true
+ PAGE_DELAY = true
+ ONLY_SUMMARY = false
+ SHOW_SUMMARY = true
+ SHOW_SHIPOUTS = false
+ RAW = false
+ SILENCE_REPETITIONS = true
+ MINLEVEL = WARNING
+
+ SILENCE_STRINGS = {}
+ SILENCE_PKGS = {} -- just the package names
+ SEMISILENCE_FILES = {} -- filenames (without leading path), file globs work
+ SILENCE_FILES_RECURSIVE = {} -- same
+
+
+ -- "-l level -c configFile"
+ local optionsWithArgs = "lc"
+ local vars = simpleGetopt(args, optionsWithArgs)
+
+ --help
+ -- "-h"
+ if vars.help or vars.h then
+ local msg = [[
+Usage: texlogsieve [OPTION]... [INPUT FILE]
+texlogsieve reads a LaTeX log file (or the standard input), filters
+out less relevant messages, and displays a summary report.
+
+Options:
+ --page-delay, --no-page-delay enable/disable grouping
+ messages by page before display
+ --summary, --no-summary enable/disable final summary
+ --only-summary no filtering, only final summary
+ --shipouts, --no-shipouts enable/disable reporting shipouts
+ --repetitions, --no-repetitions allow/prevent repeated messages
+ --heartbeat, --no-heartbeat enable/disable progress gauge
+ -l LEVEL, --minlevel=LEVEL filter out messages with severity
+ level lower than [LEVEL]. Valid
+ levels are DEBUG, INFO, WARNING,
+ CRITICAL, and UNKNOWN
+ -u, --unwrap-only no filtering or summary, only
+ unwrap long, wrapped lines
+ --silence-package=PKGNAME suppress messages from package
+ PKGNAME; can be used multiple times
+ --silence-string=EXCERPT suppress messages containing text
+ EXCERPT; can be used multiple times
+ --silence-file=FILENAME suppress messages generated during
+ processing of FILENAME; can be used
+ multiple times
+ --semisilence-file=FILENAME similar to --silence-file, but not
+ recursive
+ --add-debug-message=MESSAGE add new recognizable debug message
+ --add-info-message=MESSAGE add new recognizable info message
+ --add-warning-message=MESSAGE add new recognizable warning message
+ -c cfgfile, --config-file=cfgfile read options from config file
+ -h, --help give this help list
+ --version print program version]]
+
+ for _, line in ipairs(linesToTable(msg)) do print(line) end
+ os.exit(0)
+ end
+
+ --version
+ if vars.version then
+ print("texlogsieve 1.0.0-beta-1")
+ print("Copyright (C) 2021 Nelson Lago <lago@ime.usp.br>")
+ print("License GPLv3+: GNU GPL version 3 or later "
+ .. "<https://gnu.org/licenses/gpl.html>.")
+ print("This is free software: you are free to change "
+ .. "and redistribute it.")
+ print("There is NO WARRANTY, to the extent permitted by law.")
+ os.exit(0)
+ end
+
+ --config-file=file
+ -- "-c file"
+ local configFileName
+ if vars['config-file'] ~= nil then configFileName = vars['config-file'] end
+ if vars.c ~= nil then configFileName = vars.c end
+ if configFileName ~= nil then
+ configFileName = configFileName[1]
+ local filevars = processConfigFile(configFileName)
+
+ -- merge filevars with vars; vars has precedence
+ for k, v in pairs(vars) do
+ if type(v) == "boolean" then
+ filevars[k] = v
+ elseif filevars[k] == nil then
+ filevars[k] = v
+ else
+ -- the value is a table, so append
+ for _, item in ipairs(v) do
+ table.insert(filevars[k], item)
+ end
+ end
+ end
+
+ -- use the merged values
+ vars = filevars
+ end
+
+ --unwrap-only
+ -- "-u"
+ if vars['unwrap-only'] or vars.u then
+ -- these may be overriden below, so order matters
+ RAW = true
+ SHOW_SUMMARY = false
+ PAGE_DELAY = false
+ SHOW_SHIPOUTS = true
+ SILENCE_REPETITIONS = false
+ MINLEVEL = DEBUG
+ end
+
+ --page-delay
+ --no-page-delay
+ --page-delay=true/false
+ if vars['no-page-delay']
+ or vars['page-delay'] ~= nil and not vars['page-delay'] then
+
+ PAGE_DELAY = false
+ SHOW_SHIPOUTS = true -- this may be overriden below
+ end
+ if vars['page-delay'] then PAGE_DELAY = true end
+
+ --only-summary
+ if vars['only-summary'] then ONLY_SUMMARY = true end
+
+ --no-summary
+ --summary
+ --summary=true/false
+ if vars['no-summary'] or vars.summary ~= nil and not vars.summary then
+ SHOW_SUMMARY = false
+ SILENCE_REPETITIONS = false
+ end
+ if vars.summary then SHOW_SUMMARY = true end
+
+ --no-shipouts
+ --shipouts
+ --shipouts=true/false
+ if vars['no-shipouts'] or vars.shipouts ~= nil and not vars.shipouts then
+ SHOW_SHIPOUTS = false
+ end
+ if vars.shipouts then SHOW_SHIPOUTS = true end
+
+ --minlevel
+ -- "-l"
+ local level
+ if vars.minlevel ~= nil then level = vars.minlevel end
+ if vars.l ~= nil then level = vars.l end
+
+ if level ~= nil then
+ level = string.lower(level[1])
+ if level == "debug" then MINLEVEL = DEBUG
+ elseif level == "info" then MINLEVEL = INFO
+ elseif level == "warning" then MINLEVEL = WARNING
+ elseif level == "critical" then MINLEVEL = CRITICAL
+ else MINLEVEL = UNKNOWN
+ end
+ end
+
+ --no-repetitions
+ --repetitions
+ --repetitions=true/false
+ if vars['no-repetitions']
+ or vars.repetitions ~= nil and not vars.repetitions then
+
+ SILENCE_REPETITIONS = true
+ end
+ if vars.repetitions then SILENCE_REPETITIONS = false end
+
+ --no-heartbeat
+ --heartbeat
+ --heartbeat=true/false
+ if vars['no-heartbeat'] or vars.heartbeat ~= nil and not vars.heartbeat then
+ HEARTBEAT = false
+ end
+ if vars.heartbeat then HEARTBEAT = true end
+
+ if vars.filename == nil then
+ logfile = io.stdin
+ else
+ logfile = assert(io.open(vars.filename, "r"))
+ end
+
+ if vars['silence-string'] then SILENCE_STRINGS = vars['silence-string'] end
+
+ if vars['silence-package'] then SILENCE_PKGS = vars['silence-package'] end
+
+ if vars['silence-file'] then SILENCE_FILES_RECURSIVE =
+ vars['silence-file'] end
+
+ if vars['semisilence-file'] then SEMISILENCE_FILES =
+ vars['semisilence-file'] end
+
+ if vars['add-debug-message'] then
+ for _, msg in ipairs(vars['add-debug-message']) do
+ local pat = stringToPattern(msg)
+ if not string.find(pat, '^', 1, true) then pat = '^%s*' .. pat end
+ pat = string.gsub(pat, '\\n', '\n')
+ table.insert(anywhereDebugStringsHandler.patterns, pat)
+ end
+ end
+
+ if vars['add-info-message'] then
+ for _, msg in ipairs(vars['add-info-message']) do
+ local pat = stringToPattern(msg)
+ if not string.find(pat, '^', 1, true) then pat = '^%s*' .. pat end
+ pat = string.gsub(pat, '\\n', '\n')
+ table.insert(anywhereInfoStringsHandler.patterns, msg)
+ end
+ end
+
+ if vars['add-warning-message'] then
+ for _, msg in ipairs(vars['add-warning-message']) do
+ local pat = stringToPattern(msg)
+ if not string.find(pat, '^', 1, true) then pat = '^%s*' .. pat end
+ pat = string.gsub(pat, '\\n', '\n')
+ table.insert(anywhereWarningStringsHandler.patterns, msg)
+ end
+ end
+end
+
+function processConfigFile(filename)
+ configfile = assert(io.open(filename, "r"))
+ local fileOptions = {}
+
+ while true do
+ local line = configfile:read("*line")
+ if line == nil then break end
+
+ line = trim(line)
+ local first = string.find(line, '^#')
+ if first == nil and string.len(line) > 0 then
+
+ local equals = string.find(line, '=', 1, true)
+ if equals ~= nil then
+ optname = string.sub(line, 1, equals -1)
+ optval = string.sub(line, equals +1)
+ optname = trim(optname)
+ optval = trim(optval)
+ else
+ optname = line
+ optval = true
+ end
+ simpleGetoptStoreVal(fileOptions, optname, optval)
+ end
+ end
+
+ return fileOptions
+end
+
+
+--[[ ##################################################################### ]]--
+--[[ ################# OUTPUT COROUTINE AND FORMATTING ################### ]]--
+--[[ ##################################################################### ]]--
+
+outputCoroutine = coroutine.create(
+ function(msg)
+ while msg ~= nil do
+ processMessage(msg)
+ msg = coroutine.yield()
+ end
+ finishProcessingMessages()
+ end
+)
+
+dispatch = function(msg) coroutine.resume(outputCoroutine, msg) end
+
+function processMessage(msg)
+ if ONLY_SUMMARY or PAGE_DELAY then
+ heartbeat:tick()
+ else
+ showMessage(msg)
+ end
+
+ -- aggregate until shipout
+ table.insert(currentPageMessages, msg)
+
+ if msg.shipout then
+ heartbeat:stop()
+
+ for _, tmp in ipairs(currentPageMessages) do
+ tmp.physicalPage = msg.physicalPage
+ tmp:toSummary()
+ end
+
+ if PAGE_DELAY and not ONLY_SUMMARY then
+ showPageMessages()
+ end
+
+ currentPageMessages = {}
+ end
+end
+
+function finishProcessingMessages()
+ heartbeat:stop()
+
+ -- messages after the last shipout
+ if PAGE_DELAY and not ONLY_SUMMARY then
+ print("")
+ print("After last page:")
+ print("")
+ showPageMessages()
+ end
+
+ -- now, the summaries
+ if SHOW_SUMMARY then showSummary() end
+end
+
+function showMessage(msg)
+ local formatted = msg:toString()
+ if string.len(trim(formatted)) == 0 then return end
+
+ if RAW then
+ for _, line in ipairs(linesToTable(formatted)) do print(line) end
+ return
+ end
+
+ local pageinfo = ""
+ if msg.physicalPage ~= nil then
+ pageinfo = 'pg ' .. msg.physicalPage .. ': '
+ end
+ local spaces = string.rep(" ", string.len(pageinfo))
+
+ if not SILENCE_REPETITIONS then
+ local lines = linesToTable(formatted)
+ for _, line in ipairs(lines) do
+ print(pageinfo .. line)
+ pageinfo = spaces
+ end
+
+ return
+ end
+
+ if alreadySeen[formatted] == nil then
+ alreadySeen[formatted] = {msg}
+ local lines = linesToTable(formatted)
+ for _, line in ipairs(lines) do
+ print(pageinfo .. line)
+ pageinfo = spaces
+ end
+ else
+ table.insert(alreadySeen[formatted], msg)
+ end
+end
+
+function showPageMessages()
+ for _, msg in ipairs(currentPageMessages) do
+ showMessage(msg)
+ end
+end
+
+function showSummary()
+ if not ONLY_SUMMARY then for i = 1, 5 do print("") end end
+
+ for _, summary in ipairs(summaries) do
+ local formatted = summary:toString()
+ local prefix = ""
+ if string.len(trim(formatted)) > 0 then
+ for _, line in ipairs(linesToTable(formatted)) do
+ print(prefix .. line)
+ prefix = ' '
+ end
+ print("")
+ end
+ end
+end
+
+heartbeat = {}
+heartbeat.chars = {'/', '-', '\\', '|'}
+heartbeat.idx = 0
+heartbeat.cnt = 0
+heartbeat.startline = true
+
+function heartbeat:tick()
+ if not HEARTBEAT then return end
+
+ if self.cnt % 5 == 0 then
+ if self.startline then
+ self.startline = false
+ else
+ io.stderr:write('\b')
+ end
+ local i = self.idx %4 +1
+ io.stderr:write(self.chars[i])
+ self.idx = self.idx +1
+ end
+ self.cnt = self.cnt +1
+end
+
+function heartbeat:stop()
+ if not HEARTBEAT or self.startline then return end
+
+ io.stderr:write('\b \b')
+ self.startline = true
+end
+
+
+--[[ ##################################################################### ]]--
+--[[ ########################### THE HANDLERS ############################ ]]--
+--[[ ##################################################################### ]]--
+
+-- datepat and filepat will come in handy later on.
+--
+-- Note that, in some cases, it may be useful to start filepat with '^[%.]?/'.
+--
+-- filepat will fail:
+--
+-- 1. If the path or filename includes weird characters, such as ":" or "|"
+-- 2. If the file has no extension or the extension has only one character
+-- 3. If the extension includes "-", "_", or spaces
+-- 4. If filepat should match the end of the message and the matching line is
+-- wrapped in the middle of the file extension, for example "myfile.pd\nf"
+-- (but we have a hack in unwrapUntilPatternMatches() to work around that)
+--
+-- More importantly, filepat allows for spaces and multiple dots in filenames,
+-- but this means it may match something that is not really a filename. Don't
+-- blindly trust it! We do not use this to detect open/close file; for that,
+-- check guessFilename().
+
+datepat = '%d%d%d%d[/%-%.]%d%d[/%-%.]%d%d'
+
+filepat = '%a?[:]?'
+ .. '[^%%:;,%=%*%?%|%&%$%#%!%@"%`\'%<%>%[%]%{%}]+'
+ .. '%.'
+ .. '[^/ %-%_%.%%:;,%=%*%?%|%&%$%#%!%@"%`\'%<%>%[%]%{%}]'
+ .. '[^/ %-%_%.%%:;,%=%*%?%|%&%$%#%!%@"%`\'%<%>%[%]%{%}]+'
+
+
+-------------------------------------------------------------------------------
+-- HandlerPrototype
+-------------------------------------------------------------------------------
+
+HandlerPrototype = {}
+
+function HandlerPrototype:new()
+ local o = {}
+ setmetatable(o, self)
+ self.__index = self
+ return o
+end
+
+-- Some handlers need an init() method; by inheriting from this,
+-- we can simply iterate over all of them calling init().
+function HandlerPrototype:init()
+end
+
+-- Only some of the handlers use this implementation
+function HandlerPrototype:unwrapLines()
+ while Lines:seemsWrapped() do Lines:unwrapOneLine() end
+end
+
+function HandlerPrototype:newMessage()
+ return Message:new()
+end
+
+
+-------------------------------------------------------------------------------
+-- epilogueHandler
+--
+-- This handles the generic messages at the end of each LaTeX run. We could
+-- handle each one with stringsHandler, but this handler allows us to treat
+-- the whole group of lines together, which means we do not need to have
+-- dedicated rules for each line in them. Also, there are some lines here
+-- that are not wrapped as the rest.
+-------------------------------------------------------------------------------
+
+epilogueHandler = HandlerPrototype:new()
+
+function epilogueHandler:canDoit(position)
+ local line
+ if position == nil then position = 0 end
+ line = Lines:get(position)
+
+ -- This appears in the logfile but not on stdout
+ local _, last = string.find(line, "^Here is how much")
+ if last == nil then
+ -- This appears on stdout (and in the log, of course)
+ _, last = string.find(line,
+ "^%(see the transcript file for additional information%)")
+ else
+ last = string.len(line)
+ end
+
+ if last == nil then
+ return false, {}
+ else
+ return true, {last = last}
+ end
+end
+
+function epilogueHandler:doit()
+ local myTurn, data = self:canDoit()
+ if not myTurn then return false end
+
+ flushUnrecognizedMessages()
+ self.message = self:newMessage()
+ self.message.content = string.sub(Lines.current, 1, data.last)
+ self.message.severity = DEBUG
+ Lines:handledChars(data.last)
+ self.doit = self.handleOtherLines
+ nextHandler = self
+ self.processingFilelist = false
+ return true
+end
+
+-- We need to "manually" unwrap the file list because some
+-- lines are wrapped at lengths different from max_print_line
+function epilogueHandler:handleOtherLines()
+ local first = string.find(Lines.current, '^Output written')
+ if first ~= nil then
+ self.processingFilelist = false
+ self.message.content = '\n' .. self.message.content
+ end
+
+ if self.processingFilelist then
+ self.message.content = self.message.content .. Lines.current
+ else
+ self:unwrapLines()
+ self.message.content = self.message.content .. '\n' .. Lines.current
+ end
+
+ first = string.find(Lines.current, '^[%<%{]')
+ if first ~= nil then self.processingFilelist = true end
+
+ Lines:handledChars()
+ nextHandler = self
+ return true
+end
+
+-- We do not know when the epilogue ends, so main()
+-- calls this after the last line is read
+function epilogueHandler:flush()
+ if self.message ~= nil then dispatch(self.message) end
+end
+
+
+-------------------------------------------------------------------------------
+-- underOverFullBoxHandler
+--
+-- Handles under/overfull multiline messages. There are usually important,
+-- so we want to be able to filter them specifically and also to present
+-- a summary about them. Besides that, they may contain spurious "(", ")",
+-- "[", and "]" characters that might confuse the program if left as
+-- "unrecognized".
+-------------------------------------------------------------------------------
+
+underOverFullBoxHandler = HandlerPrototype:new()
+
+function underOverFullBoxHandler:canDoit(position)
+ local line
+ if position == nil then position = 0 end
+ line = Lines:get(position)
+
+ local basePattern = "^([UO][nv][de][e]?r)full \\(.)box (%b())"
+ local first, last, underover,
+ verthoriz, amount = string.find(line, basePattern)
+
+ if first == nil then
+ return false, {}
+ else
+ return true, {underover = underover, verthoriz = verthoriz,
+ amount = amount, last = last}
+ end
+end
+
+function underOverFullBoxHandler:handleFirstLine()
+ local myTurn, data = self:canDoit()
+ if not myTurn then return false end
+
+ flushUnrecognizedMessages()
+ self.message = underOverMessage:new()
+ self.message.content = string.sub(Lines.current, 1, data.last)
+ self.message.underover = data.underover
+ self.message.verthoriz = data.verthoriz
+ self.message.amount = data.amount
+ self.message.severity = WARNING
+ local first = string.find(data.amount, 'badness 10000')
+ if first ~= nil then self.message.severity = CRITICAL end
+ Lines:handledChars(data.last)
+
+ self.doit = self.handleClosing
+
+ _, last = string.find(Lines.current, "has occurred while \\output is active")
+ if last == nil then
+ _, last = string.find(Lines.current, "in %S+ at lines %d+%-%-%d+")
+ if last == nil then
+ _, last = string.find(Lines.current, "detected at line %d+")
+ if last ~= nil and data.verthoriz == 'h' then
+ self.doit = self.handleOffendingText
+ end
+ else
+ self.doit = self.handleOffendingText
+ end
+ end
+
+ if last == nil then
+ io.stderr:write(" texlogsieve: parsing error\n")
+ self.doit = self.handleFirstLine
+ dispatch(self.message)
+ return true
+ end
+
+ self.message.content = self.message.content
+ .. string.sub(Lines.current, 1, last)
+
+ Lines:handledChars(last)
+ nextHandler = self
+
+ return true
+end
+
+underOverFullBoxHandler.doit = underOverFullBoxHandler.handleFirstLine
+
+function underOverFullBoxHandler:handleOffendingText()
+ self:unwrapLines()
+ self.message.failedText = Lines.current
+ Lines:handledChars()
+ self.doit = self.handleClosing
+ nextHandler = self
+ return true
+end
+
+function underOverFullBoxHandler:handleClosing()
+ local _, last, closing = string.find(Lines.current, '^%s*(%b[])%s*$')
+ if last ~= nil then
+ Lines:handledChars(last)
+ self.message.closing = closing
+ end
+
+ dispatch(self.message)
+ self.doit = self.handleFirstLine
+ return true
+end
+
+
+-------------------------------------------------------------------------------
+-- stringsHandler
+--
+-- This is the most complex handler. It deals with predefined strings that
+-- may span multiple lines. The message may start anywhere on the line (this
+-- handler can be in anywhereHandlers) and may end before the end of the
+-- line. In fact, depending on max_print_line, it is even possible that the
+-- many lines of the message are concatenated in a single line in the log
+-- or, conversely, that some lines are wrapped. So, for example, the
+-- developer may have envisioned a message like
+--
+-- ********************
+-- * Hi there! *
+-- ********************
+--
+-- but this might turn to
+--
+-- ******************** * Hi there! * ********************
+--
+-- or
+--
+-- ******************
+-- **
+-- * Hi there!
+-- *
+-- ******************
+-- **
+--
+-- or even
+--
+-- ******************
+-- ** * Hi there!
+-- * ************
+-- ********
+--
+-- So, what we do here is to consider every line in the search pattern as a
+-- segment of the message that may start in the middle of a line and/or may
+-- be wrapped at the end of the line. We match each of these segments in
+-- turn. Because of that, the patterns should completely match all lines in
+-- the message, not just the beginning of the line followed by ".*" or ".+".
+--
+-- Still, if you know that a specific message or line (1) always starts
+-- at the beginning of the line, (2) never gets wrapped, and (3) is never
+-- followed by another message in the same line, then you can match just
+-- the beginning of the line and use ".*" for the rest. There are a few
+-- messages below defined like this.
+--
+-- Note that, when the handler is executed, the pattern *is* at the beginning
+-- of the current line (in some cases, with leading spaces) because, if there
+-- was any leading text originally in the line, some previous handler has
+-- already removed it. This is why we can (and should!) anchor the pattern
+-- with "^%s*". As before, if you do know that the line always starts at the
+-- beginning of a line, you may instead anchor the pattern with "^". Either
+-- way, we assume we cannot know the true length of the line, so it may be
+-- wrapped at any point. Also, do not forget about lookahead(), which removes
+-- the "^" anchor.
+-------------------------------------------------------------------------------
+
+stringsHandler = HandlerPrototype:new()
+
+function stringsHandler:canDoit(position)
+ for _, pattern in ipairs(self.patterns) do
+ local success, data = self:canDoitRecursive(pattern, position, 0, 0)
+ if success then
+ data.pattern = pattern
+ return true, data
+ end
+ end
+
+ return false, {}
+end
+
+function stringsHandler:handleFirstLine()
+ local myTurn, data = self:canDoit()
+ if not myTurn then return false end
+
+ flushUnrecognizedMessages()
+ self.message = self:newMessage()
+ self.message.severity = self.severity
+
+ local _, last = string.find(Lines.current, '^%s+')
+ if last ~= nil then Lines:handledChars(last) end
+
+ self.captures = {} -- just in case we want to use captures
+ self.patternLines = data.pattern -- the table with the pattern lines
+ self.patternLineNumber = 1
+ self.doit = self.handleLines -- for the next lines, if any
+
+ -- after this initial setup, the first line is handled like the others
+ self:handleLines()
+
+ return true
+end
+
+stringsHandler.doit = stringsHandler.handleFirstLine
+
+function stringsHandler:handleLines()
+
+ local pat = self.patternLines[self.patternLineNumber]
+
+ -- unwrapUntilPatternMatches() will probably not unwrap a line if
+ -- the pattern does not represent the whole line (think about it);
+ -- even if it does, it will fail to detect the correct end of the
+ -- line (how could it?). Conversely, it may try to unwrap needlessly
+ -- if the pattern ends with something like ".+" (think about it too).
+ -- So, you should only use such patterns when the line can never be
+ -- wrapped.
+ local last, tmp = unwrapUntilPatternMatches(pat)
+ for _, val in ipairs(tmp) do table.insert(self.captures, val) end
+
+ if last == nil then
+ io.stderr:write(" texlogsieve: parsing error\n")
+ dispatch(self.message)
+ self.doit = self.handleFirstLine
+ return true
+ end
+
+ if self.patternLineNumber == 1 then
+ self.message.content = string.sub(Lines.current, 1, last)
+ else
+ self.message.content = self.message.content .. '\n'
+ .. string.sub(Lines.current, 1, last)
+ end
+
+ Lines:handledChars(last)
+
+ if self.patternLineNumber >= #self.patternLines then
+ self:processCaptures()
+ dispatch(self.message)
+ self.doit = self.handleFirstLine
+ else
+ self.patternLineNumber = self.patternLineNumber +1
+ nextHandler = self
+ end
+
+ return true
+end
+
+-- When a pattern takes more than one line, we handle each
+-- line separately. To do that, we need to transform the
+-- multiline strings of the patterns into tables where each
+-- line is an element.
+function stringsHandler:init()
+ self.strictPatterns = {}
+ self.loosePatterns = {}
+
+ for _, pat in ipairs(self.patterns) do
+ local patternLinesAsTableItems = linesToTable(pat)
+ table.insert(self.strictPatterns, patternLinesAsTableItems)
+
+ -- remove the leading '^'
+ patternLinesAsTableItems = linesToTable(string.sub(pat, 2))
+ table.insert(self.loosePatterns, patternLinesAsTableItems)
+ end
+
+ self.patterns = self.strictPatterns
+end
+
+-- The pattern we want to check may stretch over several lines. This
+-- function recursively checks each line of the pattern against the
+-- corresponding input line, but only up to three lines, as that is
+-- enough to make sure the pattern really matches.
+function stringsHandler:canDoitRecursive(patternLines,
+ position, offset, depth)
+
+ local line
+ if position == nil then position = 0 end
+ line = Lines:get(position)
+
+ -- skip what was processed in a previous iteration/recursion
+ if offset > 0 then line = string.sub(line, offset +1) end
+
+ local nextline = ""
+
+ local patternLine = patternLines[1]
+
+ while true do
+ local first, last = string.find(line, patternLine)
+ local tmp = string.find(nextline, patternLine) -- see comment below
+
+ if first ~= nil and tmp == nil then
+ -- Found it!
+ if depth > 2 -- 3 lines matched, that is enough
+ or #patternLines == 1 -- no more pattern lines
+ or Lines:get(position +1) == nil -- no more input lines
+
+ then
+ return true, {first = first}
+ else
+ -- this line matches; check the next ones too just to make sure
+ if last < string.len(line) then
+ -- continue on the same line, skip what we already processed
+ offset = last + offset
+ else
+ position = position +1 -- proceed to next line...
+ offset = 0 -- ...starting at the beginning of the line
+ end
+
+ depth = depth +1
+ patternLines = {table.unpack(patternLines, 2)}
+
+ local success = self:canDoitRecursive(patternLines,
+ position, offset, depth)
+
+ return success, {first = first}
+ end
+ end
+
+ -- no success, but can we unwrap this line?
+ if not Lines:seemsWrapped(position) then return false, {} end
+ -- yep! However, we need to be careful: if we match
+ -- on the next line by itself, then the match is not
+ -- the result of unwrapping, so we should return false.
+ -- We only return true if the match occurs only when
+ -- the lines are concatenated. Do not trust that the
+ -- pattern is anchored to the beginning of the line,
+ -- lookahead() changes this.
+ offset = -1 * string.len(line)
+ nextline = Lines:get(position +1)
+ line = line .. nextline
+ position = position +1
+ end
+end
+
+-- Just like :canDoit(), but does not anchor patterns to the
+-- beginning of the line (used by handleUnrecognizedMessage).
+-- Notice the similarity to openCloseHandlerPrototype:lookahead().
+function stringsHandler:lookahead()
+ self.patterns = self.loosePatterns
+ local match, data = self:canDoit()
+ self.patterns = self.strictPatterns
+
+ return match, data
+end
+
+function stringsHandler:processCaptures()
+ -- by default, do nothing
+end
+
+
+-------------------------------------------------------------------------------
+-- beginningOfLineDebugStringsHandler
+-- beginningOfLineInfoStringsHandler
+-- beginningOfLineWarningStringsHandler
+-- anywhereDebugStringsHandler
+-- anywhereInfoStringsHandler
+-- anywhereWarningStringsHandler
+-- (from stringsHandler)
+--
+-- they differ from the prototype only by severity level
+-- and the set of patterns to search for.
+-------------------------------------------------------------------------------
+
+-- We know these messages always start at the beginning of a line
+-- Always start these patterns with "^", see lookahead().
+-- Order matters! The first match wins, so the longer ones should come first.
+beginningOfLineDebugStringsHandler = stringsHandler:new()
+beginningOfLineDebugStringsHandler.severity = DEBUG
+beginningOfLineDebugStringsHandler.patterns = {
+ '^This is .*TeX, Version.*',
+ '^%s*restricted system commands enabled%.',
+ '^%s*entering extended mode',
+ '^%s*restricted \\write18 enabled%.',
+ '^%s*%%%&%-line parsing enabled%.',
+ '^%*%*[%w%.]+', -- "**jobname"
+ '^file:line:error style messages enabled%.',
+ '^\\[^%s=]+=[^%s=]+', -- "\c@chapter=\count174"
+ "^\\openout%d+%s*=%s*`?[^']+'?%.?",
+
+ '^LaTeX2e <' .. datepat .. '>.*',
+
+ '^Lua module: lualibs%-extended ' .. datepat
+ .. ' %S+ ConTeXt Lua libraries %-%- extended collection%.',
+
+ '^Lua module: lualibs ' .. datepat
+ .. ' %S+ ConTeXt Lua standard libraries%.',
+
+ '^Lua module: fontspec ' .. datepat
+ .. ' %S+ Font selection for XeLaTeX and LuaLaTeX',
+
+ '^Lua module: lualatex%-math ' .. datepat
+ .. ' %S+ Patches for mathematics typesetting with LuaLaTeX',
+
+ '^Lua module: luaotfload ' .. datepat
+ .. ' %S+ Lua based OpenType font support',
+
+ '^luaotfload | init : Context OpenType loader version.*',
+
+ '^luaotfload | init : Loading fontloader '
+ .. '["“][^"]+["”] from .-["“][^"]+["”]%.',
+
+ -- there may be dots in the path, so we need to
+ -- anchor the final dot to the end of the line
+ '^luaotfload | conf : Root cache directory is "?[^"]-"?%.$',
+ '^luaotfload | db : Font names database loaded from .-%.luc',
+ '^luaotfload | cache : Lookup cache loaded from .-%.luc%.',
+ '^luaotfload | main : initialization completed in [%d%.]+ seconds',
+
+ '^Lua%-only attribute.-=%s*%S+',
+ "^Inserting %b`' at position .- in %b`'%.",
+
+ "^For additional information on amsmath, use the `%?' option%.",
+
+ "^Loading configuration file `" .. filepat .. "'%.",
+ "^contour: Using driver file `" .. filepat .. "'%.",
+
+ '^ABD: EverySelectfont initializing macros',
+ '^ABD: EveryShipout initializing macros',
+
+ '^%[Loading MPS to PDF converter %(version ' .. datepat .. '%)%.%]',
+
+
+ '^See the caption package documentation for explanation%.',
+
+ '^Lua module: luaotfload%-main ' .. datepat
+ .. ' [%d%.]+ luaotfload entry point',
+
+ '^Lua module: luaotfload%-init ' .. datepat
+ .. ' [%d%.]+ luaotfload submodule / initialization',
+
+ '^Lua module: luaotfload%-log ' .. datepat
+ .. ' [%d%.]+ luaotfload submodule / logging',
+
+ '^Lua module: luaotfload%-parsers ' .. datepat
+ .. ' [%d%.]+ luaotfload submodule / filelist',
+
+ '^Lua module: luaotfload%-configuration ' .. datepat
+ .. ' [%d%.]+ luaotfload submodule / config file reader',
+
+ '^Lua module: luaotfload%-loaders ' .. datepat
+ .. ' [%d%.]+ luaotfload submodule / callback handling',
+
+ '^Lua module: luaotfload%-database ' .. datepat
+ .. ' [%d%.]+ luaotfload submodule / database',
+
+ '^Lua module: luaotfload%-unicode ' .. datepat
+ .. ' [%d%.]+ luaotfload submodule / Unicode helpers',
+
+ '^Lua module: luaotfload%-colors ' .. datepat
+ .. ' [%d%.]+ luaotfload submodule / color',
+
+ '^Lua module: luaotfload%-resolvers ' .. datepat
+ .. ' [%d%.]+ luaotfload submodule / resolvers',
+
+ '^Lua module: luaotfload%-features ' .. datepat
+ .. ' [%d%.]+ luaotfload submodule / features',
+
+ '^Lua module: luaotfload%-letterspace ' .. datepat
+ .. ' [%d%.]+ luaotfload submodule / color',
+
+ '^Lua module: luaotfload%-embolden ' .. datepat
+ .. ' [%d%.]+ luaotfload submodule / color',
+
+ '^Lua module: luaotfload%-notdef ' .. datepat
+ .. ' [%d%.]+ luaotfload submodule / color',
+
+ '^Lua module: luaotfload%-auxiliary ' .. datepat
+ .. ' [%d%.]+ luaotfload submodule / auxiliary functions',
+
+ '^Lua module: luaotfload%-multiscript ' .. datepat
+ .. ' [%d%.]+ luaotfload submodule / multiscript',
+
+ '^' .. string.rep('%*', 37) .. '\n%* Using libertinus math %*\n'
+ .. string.rep('%*', 37),
+
+ '^`inconsolata%-zi4\' v%S-, ' .. datepat
+ .. ' Text macros for Inconsolata %(msharpe%)',
+
+ '^Requested font ".-" at [%d%.]+pt\n %-> ' .. filepat,
+ '^Requested font ".-" scaled %d+\n %-> ' .. filepat,
+}
+
+
+-- These messages may start anywhere in a line
+-- Always start these patterns with "^%s*", see lookahead().
+-- Order matters! The first match wins, so the longer ones should come first.
+anywhereDebugStringsHandler = stringsHandler:new()
+anywhereDebugStringsHandler.severity = DEBUG
+anywhereDebugStringsHandler.patterns = {
+ '^%s*L3 programming layer %b<> xparse %b<>',
+ '^%s*%{.*pdftex%.map%}',
+
+ -- <blah.jpg, id=555, [...,] 722.7pt x 722.7pt>
+ '^%s*%<' .. filepat .. ', id=.- [%d%.]+pt x [%d%.]+pt%>',
+ '^%s*%<use ' .. filepat .. '%>', -- <use blah.jpg>
+ '^%s*%<' .. filepat .. '%>', -- <blah.jpg>
+}
+
+
+-- We know these messages always start at the beginning of a line
+-- Always start these patterns with "^", see lookahead().
+-- Order matters! The first match wins, so the longer ones should come first.
+beginningOfLineInfoStringsHandler = stringsHandler:new()
+beginningOfLineInfoStringsHandler.severity = INFO
+beginningOfLineInfoStringsHandler.patterns = {
+ "^Writing index file.*%.idx",
+ "^%*geometry%* driver:.*",
+ "^%*geometry%* detected driver:.*",
+ "^Driver file for pgf:.*%.def",
+ "^%s*file:line:error style messages enabled",
+ "^Applying: %b[] float order in 2%-column on input line .-%.",
+ "^Already applied: %b[] float order in 2%-column on input line .-%.",
+ "^\\%S+ = a dialect from .*",
+ -- TODO: we should capture the jobname and use it here
+ "^No file .-%.aux%.",
+ "^No file .-%.ind%.",
+ "^No file .-%.bbl%.",
+ "^reledmac reminder:%s*\n"
+ .. "%s*The number of the footnotes in this section "
+ .. "has changed since the last run.\n"
+ .. "%s*You will need to run LaTeX two more times "
+ .. "before the footnote placement\n"
+ .. "%s*and line numbering in this section are correct%.",
+}
+
+
+-- These messages may start anywhere in a line
+-- Always start these patterns with "^%s*", see lookahead().
+-- Order matters! The first match wins, so the longer ones should come first.
+anywhereInfoStringsHandler = stringsHandler:new()
+anywhereInfoStringsHandler.severity = INFO
+anywhereInfoStringsHandler.patterns = {
+ -- TODO: there are other "... patterns for blah blah"
+ -- in texmf-dist/tex/generic/hyph-utf8/loadhyph
+ "^%s*German Hyphenation Patterns %(Traditional Orthography%) "
+ .. "`dehyphts?%-x' " .. datepat .. " %(WL%)",
+
+ '^%s*UTF%-8 German hyphenation patterns %(traditional orthography%)',
+ '^%s*EC German hyphenation patterns %(traditional orthography%)',
+ '^%s*German Hyphenation Patterns %(Traditional Orthography%)',
+
+ "^%s*Swiss%-German Hyphenation Patterns %(Traditional Orthography%) "
+ .. "`dehyphts?%-x' " .. datepat .. " %(WL%)",
+
+ '^%s*UTF%-8 Swiss%-German hyphenation patterns %(traditional orthography%)',
+ '^%s*EC Swiss%-German hyphenation patterns %(traditional orthography%)',
+ '^%s*Swiss%-German Hyphenation Patterns %(Traditional Orthography%)',
+
+ '^%s*ASCII Hyphenation patterns for American English',
+ '^%s*UTF%-8 %S+ hyphenation patterns',
+ '^%s*EC %S+ hyphenation patterns',
+}
+
+
+-- We know these messages always start at the beginning of a line
+-- Always start these patterns with "^", see lookahead().
+-- Order matters! The first match wins, so the longer ones should come first.
+beginningOfLineWarningStringsHandler = stringsHandler:new()
+beginningOfLineWarningStringsHandler.severity = WARNING
+beginningOfLineWarningStringsHandler.patterns = {
+ '^luaotfload | aux : font no .- does not define feature '
+ .. '.- for script .- with language %S+',
+
+ '^luaotfload | aux : font no .- %b() defines no feature for script %S+',
+ '^luaotfload | aux : no font with id %d+',
+
+ "^warning %(pdf backend%): ignoring duplicate destination "
+ .. "with the name '%-%.'",
+
+ "^Couldn't patch \\%S+",
+ "^Invalid UTF%-8 byte or sequence at line %d+ replaced by U%+FFFD%.",
+
+ '^Requested font ".-" at [%d%.]+pt\n'
+ .. "Unknown feature %b`' in font %b`'%.\n"
+ .. ' %-> ' .. filepat,
+}
+
+
+-- These messages may start anywhere in a line
+-- Always start these patterns with "^%s*", see lookahead().
+-- Order matters! The first match wins, so the longer ones should come first.
+anywhereWarningStringsHandler = stringsHandler:new()
+anywhereWarningStringsHandler.severity = WARNING
+anywhereWarningStringsHandler.patterns = {
+}
+
+
+-------------------------------------------------------------------------------
+-- missingCharHandler
+-- (from stringsHandler)
+--
+-- this differs from the prototype by severity level, the set of
+-- patterns to search for, and because it uses a different kind of
+-- Message object (we want to summarize missing characters specially)
+-------------------------------------------------------------------------------
+
+missingCharHandler = stringsHandler:new()
+missingCharHandler.severity = CRITICAL
+
+missingCharHandler.patterns = {
+ '^Missing character: There is no .- in font .*!',
+}
+
+function missingCharHandler:newMessage()
+ return missingCharMessage:new()
+end
+
+
+-------------------------------------------------------------------------------
+-- genericLatexHandler
+--
+-- Messages generated by GenericInfo, PackageWarning etc., such as
+--
+-- Package babel Info: \l@canadian = using hyphenrules for english
+-- (babel) (\language0) on input line 102.
+--
+-- or
+--
+-- LaTeX Info: Redefining \setlength on input line 80.
+--
+-- These messages always start at the beginning of a line and end at the
+-- end of a line. There may be more than one line; subsequent lines have
+-- a specific prefix derived from the package/class name (which can be
+-- obtained from the first line). We look for this prefix to detect such
+-- subsequent lines.
+-------------------------------------------------------------------------------
+
+genericLatexHandler = HandlerPrototype:new()
+
+genericLatexHandler.patterns = {
+ "^(Package)%s+(%S+)%s+(%S+): ",
+ "^(Class)%s+(%S+)%s+(%S+): ",
+ "^(LaTeX)%s+(%S+)%s+(%S+): ",
+ "^(Module)%s+(%S+)%s+(%S+): ", -- Only ever saw "Module microtype Info"
+ "^(Package)%s+(%S+)%s+(notification) ", -- pgfplots does this
+}
+
+function genericLatexHandler:canDoit(position)
+ local line
+ if position == nil then position = 0 end
+ line = Lines:get(position)
+
+ local last, data
+
+ for _,pattern in ipairs(self.patterns) do
+ -- Because this is a prototype that may be used with
+ -- other patterns, we do not know how many captures
+ -- are there in the pattern; put them all in a table
+ data = {string.find(line, pattern)}
+ table.remove(data, 1) -- remove "first"
+ last = data[1]
+ if last ~= nil then break end
+ end
+
+ if last == nil then
+ return false, {}
+ else
+ return true, data
+ end
+end
+
+function genericLatexHandler:unpackData(data)
+ local last = data[1]
+ local what = data[2]
+ local name = data[3]
+ local severity = data[4]
+ self.message.what = what
+ self.message.name = name
+ self.message.severity = self:parseSeverity(severity)
+ self.message.content = Lines.current
+
+ self:findPrefix(last, name, what)
+ self.message.prefix = self.prefix
+end
+
+function genericLatexHandler:handleFirstLine()
+ local myTurn, data = self:canDoit()
+ if not myTurn then return false end
+
+ flushUnrecognizedMessages()
+ self:unwrapLines()
+
+ -- erase any previous values; nil is not a good idea! If one of these
+ -- is nil in a derived object, the object may grab the value of the
+ -- parent object from some previous message.
+ self.linenum = ""
+ self.prefix = ""
+
+ self.message = self:newMessage()
+ self.message.content = ""
+ self.message.severity = self.severity
+ self:unpackData(data) -- process whatever canDoit() gave us
+
+ self:extractLinenum()
+ Lines:handledChars()
+
+ self.doit = self.handleOtherLines
+ nextHandler = self
+ return true
+end
+
+genericLatexHandler.doit = genericLatexHandler.handleFirstLine
+
+function genericLatexHandler:handleOtherLines()
+ local _, last = string.find(Lines.current, '^' .. self.prefix)
+
+ if last ~= nil then
+ self:unwrapLines()
+ Lines:handledChars(last)
+ self:extractLinenum()
+
+ self.message.content = self.message.content .. '\n' .. Lines.current
+
+ Lines:handledChars()
+ nextHandler = self
+ else
+ self.doit = self.handleFirstLine
+ if self.linenum ~= "" then
+ self.message.linenum = self.linenum
+ end
+ self:adjustSeverity()
+ dispatch(self.message)
+ end
+
+ return true
+end
+
+function genericLatexHandler:findPrefix(lastcol, name, what)
+ -- continuation lines look like
+ -- ^(pkgname) [padding spaces] blah blah
+ -- let's find out how many spaces and
+ -- build the pattern for the prefix
+
+ local numspaces
+
+ if name ~= nil then
+ name = "(" .. name .. ")"
+ numspaces = lastcol - string.len(name)
+ self.prefix = protect_metachars(name)
+ else
+ self.prefix = ""
+ numspaces = lastcol
+ end
+
+ self.prefix = self.prefix .. string.rep(" ", numspaces)
+end
+
+function genericLatexHandler:extractLinenum()
+ if self.linenum ~= "" then return end
+
+ _, _, self.linenum = string.find(Lines.current, "on input line (%d+)%.")
+ if self.linenum ~= "" then return end
+
+ -- LaTeX3-style messages (with \msg_something)
+ _, _, self.linenum = string.find(Lines.current, "on line (%d+)$")
+end
+
+function genericLatexHandler:parseSeverity(severity)
+ if severity == nil or severity == "" then return self.severity end
+
+ severity = string.lower(severity)
+
+ -- tocbibind uses "Note"
+ if severity == 'info'
+ or severity == 'notification'
+ or severity == 'note'
+ then
+ return INFO
+ else
+ return WARNING
+ end
+end
+
+-- similar to HandlerPrototype:unwrapLines(), but with extra checks
+function genericLatexHandler:unwrapLines()
+ while Lines:seemsWrapped() do
+ -- The current line is the right length and other handlers do
+ -- not know how to handle the next line, but we still need to
+ -- check another possibility: the next line might be a "normal"
+ -- continuation line
+ local first = string.find(Lines:get(1), '^' .. self.prefix)
+ if first ~= nil then break end
+
+ -- Ok, this is almost certainly a wrapped line, but it does
+ -- not hurt to also check this just in case
+ first = string.find(Lines.current, 'on input line %d+%.$')
+ if first ~= nil then break end
+
+ Lines:unwrapOneLine()
+ end
+end
+
+-- LaTeX only uses severity "INFO" and "WARNING", which
+-- is very limited. Let's demote some warnings to INFO
+-- and promote some others to CRITICAL.
+function genericLatexHandler:adjustSeverity()
+ for _, pat in ipairs(self.downgradePatterns) do
+ local first = string.find(self.message.content, pat)
+ if first ~= nil then
+ self.message.severity = INFO
+ break
+ end
+ end
+
+ for _, pat in ipairs(self.upgradePatterns) do
+ local first = string.find(self.message.content, pat)
+ if first ~= nil then
+ self.message.severity = CRITICAL
+ break
+ end
+ end
+end
+
+genericLatexHandler.downgradePatterns = {
+ -- No need to include the full message
+ "File %b`' already exists on the system%."
+ .. "%s*Not generating it from",
+ "You have requested package %b`',"
+ .. "%s*but the package provides",
+ "Writing file %b`'",
+ "Form Feed has been converted to Blank",
+ "Tab has been converted to Blank",
+ "The morewrites package is unnecessary",
+ 'Unused \\captionsetup%b[]',
+}
+
+genericLatexHandler.upgradePatterns = {
+ "Label %b`' multiply defined",
+ "Command .- invalid in math mode",
+ "Optional argument of \\twocolumn too tall on page",
+ "Marginpar on page %S- moved",
+ "Some font shapes were not available, defaults substituted%.",
+ "Font shape %b`' in size %b<> not available"
+ .. "%s+Font shape %b`' tried instead",
+ "Font shape %b`' in size %S+ not available"
+ .. "%s+external font %b`' used",
+ "Font shape %b`' undefined"
+ .. "%s+using %b`' instead",
+}
+
+
+-------------------------------------------------------------------------------
+-- latex23MessageHandler
+-- genericLatexVariantHandler
+-- (from genericLatexHandler)
+--
+-- They differ from the prototype by the set of patterns to search for and by
+-- the unpackData() method, which deals with the specific pattern captures
+-- defined in the search patterns.
+-------------------------------------------------------------------------------
+
+latex23MessageHandler = genericLatexHandler:new()
+
+latex23MessageHandler.patterns = {
+ "^(LaTeX3?)%s+(%S+): "
+}
+
+function latex23MessageHandler:unpackData(data)
+ local last = data[1]
+ local what = data[2]
+ local severity = data[3]
+ self.message.severity = self:parseSeverity(severity)
+ self.message.what = what
+ self.message.content = Lines.current
+
+ local name
+ -- When the message looks like "LaTeX...", there is no package
+ -- name, but with "LaTeX3...", that is used as the name
+ if what == 'LaTeX3' then name = 'LaTeX3' end
+
+ self:findPrefix(last, name, what)
+ self.message.prefix = self.prefix
+end
+
+genericLatexVariantHandler = genericLatexHandler:new()
+
+genericLatexVariantHandler.patterns = {
+ "^(Package) (%S+) (%S+) on input line (%S+): ",
+}
+
+function genericLatexVariantHandler:unpackData(data)
+ local last = data[1]
+ local what = data[2]
+ local name = data[3]
+ local severity = data[4]
+ self.linenum = data[5]
+ self.message.what = what
+ self.message.name = name
+ self.message.severity = self:parseSeverity(severity)
+ self.message.content = Lines.current
+
+ self:findPrefix(last, name, what)
+ self.message.prefix = self.prefix
+end
+
+
+-------------------------------------------------------------------------------
+-- citationHandler
+-- referenceHandler
+-- labelHandler
+-- (from genericLatexHandler)
+--
+-- They differ from the prototype by the set of patterns to search for, by
+-- the unpackData() method, and by the message type generated, because we
+-- want to generate dedicated summaries for them
+-------------------------------------------------------------------------------
+citationHandler = genericLatexHandler:new()
+
+citationHandler.patterns = {
+ "^(LaTeX)%s+(Warning): (Citation) (%b`') on page (.-) undefined",
+ "^(LaTeX)%s+(Warning): (Citation) (%b`') undefined",
+}
+
+function citationHandler:unpackData(data)
+ local last = data[1]
+ local what = data[2]
+ local severity = data[3]
+ local name = data[4]
+ local key = string.sub(data[5], 2, -2) -- remove quotes
+ local page = data[6] -- may be null
+
+ self.message.what = what
+ self.message.name = name
+ self.message.severity = self:parseSeverity(severity)
+ self.message.key = key
+ self.message.page = page
+ self.message.content = Lines.current
+ self:findPrefix(last, nil, what)
+ self.message.prefix = self.prefix
+end
+
+function citationHandler:newMessage()
+ return citationMessage:new()
+end
+
+referenceHandler = citationHandler:new()
+
+referenceHandler.patterns = {
+ "^(LaTeX)%s+(Warning): (Reference) (%b`') on page (.-) undefined",
+}
+
+function referenceHandler:newMessage()
+ return referenceMessage:new()
+end
+
+labelHandler = citationHandler:new()
+
+labelHandler.patterns = {
+ "^(LaTeX)%s+(Warning): (Label) (%b`') multiply defined",
+}
+
+function labelHandler:newMessage()
+ return labelMessage:new()
+end
+
+
+-------------------------------------------------------------------------------
+-- providesHandler
+-- (from genericLatexHandler)
+--
+-- Handles the lines generated by the \Provides* LaTeX commands, such as:
+--
+-- Package: etoolbox 2020/10/05 v2.5k e-TeX tools for LaTeX (JAW)
+--
+-- or
+--
+-- File: size11.clo 2020/04/10 v1.4m Standard LaTeX file (size option)
+--
+-- There is code to specifically handle a hardcoded line break
+-- in a few packages (atbegshi-ltx, atveryend-ltx etc.)
+-------------------------------------------------------------------------------
+
+providesHandler = genericLatexHandler:new()
+providesHandler.severity = INFO
+
+providesHandler.patterns = {
+ "^(Document Class):%s+(%S+)%s+",
+ "^(Package):%s+(%S+)%s+",
+ "^(File):%s+(%S+)%s+",
+ "^(Language):%s+(%S+)%s+", -- this and the next come from babel
+ "^(Dictionary):%s+(%S+)%s+"
+}
+
+function providesHandler:unpackData(data)
+ local last = data[1]
+ local what = data[2]
+ local name = data[3]
+
+ self.message.what = what
+ self.message.name = name
+ self.message.content = Lines.current
+
+ -- There are no continuation lines of this kind for
+ -- these messages, but the generic code still wants
+ -- to check for the prefix.
+ self.prefix = '[^%s%S]+' -- nothing matches
+
+ if not Lines:empty() then
+ local first = string.find(Lines:get(1), 'with kernel methods')
+ if first ~= nil then
+ self.message.content = self.message.content .. ' ' .. Lines:get(1)
+ Lines:gotoNextLine()
+ end
+ end
+ self.message.content = string.gsub(self.message.content,
+ '%s*with kernel methods', ' with kernel methods')
+end
+
+
+-------------------------------------------------------------------------------
+-- geometryDetailsHandler
+-- (from genericLatexHandler)
+--
+-- Handles the output from the geometry package with the "verbose" option.
+-- Iinheriting from genericLatexHandler is a little hackish, since
+-- the message does not really fit the "standard" message format (we define
+-- the prefix statically instead of computing it from the message itself),
+-- but works well and is simple.
+-------------------------------------------------------------------------------
+
+geometryDetailsHandler = genericLatexHandler:new()
+geometryDetailsHandler.severity = INFO
+
+geometryDetailsHandler.patterns = {
+ '^%*geometry%* verbose mode',
+}
+
+function geometryDetailsHandler:unpackData(data)
+ self.message.name = 'geometry'
+ self.message.content = Lines.current
+ self.prefix = '* '
+ self.message.prefix = self.prefix
+end
+
+-------------------------------------------------------------------------------
+-- openParensHandler
+-- closeParensHandler
+-- openSquareBracketHandler
+-- closeSquareBracketHandler
+--
+-- These determine whether the chars "(", ")", "[", and "]" are ordinary
+-- characters or if they indicate open/close file or begin/end shipout.
+-- Detecting files allows us to filter the output according to which file
+-- is being processed; detecting shipouts allows us to indicate the page
+-- that a message originated from.
+--
+-- Although openParensHandler is very similar to openSquareBracketsHandler
+-- and closeParensHandler is very similar to closeSquareBracketsHandler,
+-- we decided not to use inheritance to reuse the code (except for the
+-- lookahead() method). We would avoid a little repetition, but the code
+-- size would probably be the same and it would be more complex.
+--
+-- The fact that the code is similar may seem a little odd at first: While
+-- the openFiles stack may contain many entries (because an open file may
+-- request to open another file etc.), the same is obviously not true for
+-- the shipouts stack. Still, we use a stack too because we need to handle
+-- "[" and "]" characters that do not correspond to real shipouts, just
+-- like we do with "(" and ")".
+-------------------------------------------------------------------------------
+
+openCloseHandlerPrototype = HandlerPrototype:new()
+
+-- Just like :canDoit(), but does not anchor patterns to the
+-- beginning of the line (used by handleUnrecognizedMessage).
+-- Notice the similarity to stringsHandler:lookahead().
+function openCloseHandlerPrototype:lookahead()
+ self.pattern = self.loosePattern
+ match, data = self:canDoit()
+ self.pattern = self.strictPattern
+
+ return match, data
+end
+
+openParensHandler = openCloseHandlerPrototype:new()
+
+openParensHandler.strictPattern = "^(%s*)%("
+openParensHandler.loosePattern = "%s*%("
+openParensHandler.pattern = openParensHandler.strictPattern
+
+function openParensHandler:canDoit(position)
+ local line
+ if position == nil then position = 0 end
+ line = Lines:get(position)
+
+ local first, last = string.find(line, self.pattern)
+ if first == nil then return false, {} end
+
+ line = string.sub(line, last +1)
+
+ local filename = guessFilename(position)
+
+ return true, {first = first, filename = filename} -- might be nil
+end
+
+function openParensHandler:doit()
+ local myTurn, data = self:canDoit()
+ if not myTurn then return false end
+
+ local _, last, spaces = string.find(Lines.current, self.pattern)
+ unrecognizedBuffer = unrecognizedBuffer .. spaces
+
+ -- skip the spaces and the open parens character
+ Lines:handledChars(last)
+
+ if data.filename ~= nil then
+ flushUnrecognizedMessages()
+ local last = unwrapUntilStringMatches(data.filename)
+ if last == nil then
+ io.stderr:write(" texlogsieve: parsing error\n")
+ else
+ Lines:handledChars(last)
+ end
+ openFiles:push(data.filename)
+ mute = currentFileIsSilenced()
+ local msg = openFileMessage:new()
+ msg.severity = DEBUG
+ msg.filename = data.filename
+ msg.content = "Open file " .. data.filename
+ dispatch(msg)
+ else
+ openFiles:push("DUMMY")
+ unrecognizedBuffer = unrecognizedBuffer .. "("
+ end
+
+ return true
+end
+
+closeParensHandler = openCloseHandlerPrototype:new()
+
+closeParensHandler.strictPattern = "^(%s*)%)"
+closeParensHandler.loosePattern = "%s*%)"
+closeParensHandler.pattern = closeParensHandler.strictPattern
+
+function closeParensHandler:canDoit(position)
+ local line
+ if position == nil then position = 0 end
+ line = Lines:get(position)
+
+ local first = string.find(line, self.pattern)
+ if first == nil then return false, {} end
+
+ return true, {first = first}
+end
+
+function closeParensHandler:doit()
+ local myTurn = self:canDoit()
+ if not myTurn then return false end
+
+ local _, last, spaces = string.find(Lines.current, self.pattern)
+ unrecognizedBuffer = unrecognizedBuffer .. spaces
+
+ -- skip the spaces and the close parens character
+ Lines:handledChars(last)
+
+ local filename = openFiles:pop()
+ if filename == nil or filename == "DUMMY" then
+ unrecognizedBuffer = unrecognizedBuffer .. ")"
+ else
+ flushUnrecognizedMessages()
+ local msg = closeFileMessage:new()
+ msg.severity = DEBUG
+ msg.content = "Close file " .. filename
+ dispatch(msg)
+ mute = currentFileIsSilenced()
+ end
+
+ return true
+end
+
+openSquareBracketHandler = openCloseHandlerPrototype:new()
+
+openSquareBracketHandler.strictPattern = "^(%s*)%["
+openSquareBracketHandler.loosePattern = "%s*%["
+openSquareBracketHandler.pattern = openSquareBracketHandler.strictPattern
+
+function openSquareBracketHandler:canDoit(position)
+ local line
+ if position == nil then position = 0 end
+ line = Lines:get(position)
+
+ local first, last = string.find(line, self.pattern)
+ if first == nil then return false, {} end
+
+ line = string.sub(line, last +1)
+
+ local latexPage = guessShipoutPage(position)
+
+ return true, {first = first, latexPage = latexPage} -- may be nil
+end
+
+function openSquareBracketHandler:doit()
+ local myTurn, data = self:canDoit()
+ if not myTurn then return false end
+
+ local _, last, spaces = string.find(Lines.current, self.pattern)
+ unrecognizedBuffer = unrecognizedBuffer .. spaces
+
+ -- skip the spaces and the open square bracket character
+ Lines:handledChars(last)
+
+ if data.latexPage ~= nil then
+ flushUnrecognizedMessages()
+ local last = unwrapUntilStringMatches(data.latexPage)
+ if last == nil then
+ io.stderr:write(" texlogsieve: parsing error\n")
+ else
+ Lines:handledChars(last)
+ end
+ shipouts:push(data.latexPage)
+ numShipouts = numShipouts +1
+ table.insert(latexPages, numShipouts, data.latexPage)
+ local msg = beginShipoutMessage:new()
+ msg.physicalPage = numShipouts
+ dispatch(msg)
+ else
+ shipouts:push("DUMMY")
+ unrecognizedBuffer = unrecognizedBuffer .. "["
+ end
+
+ return true
+end
+
+closeSquareBracketHandler = openCloseHandlerPrototype:new()
+
+closeSquareBracketHandler.strictPattern = "^(%s*)%]"
+closeSquareBracketHandler.loosePattern = "%s*%]"
+closeSquareBracketHandler.pattern = closeSquareBracketHandler.strictPattern
+
+function closeSquareBracketHandler:canDoit(position)
+ local line
+ if position == nil then position = 0 end
+ line = Lines:get(position)
+
+ local first = string.find(line, self.pattern)
+ if first == nil then return false, {} end
+
+ return true, {first = first}
+end
+
+function closeSquareBracketHandler:doit()
+ local myTurn = self:canDoit()
+ if not myTurn then return false end
+
+ local _, last, spaces = string.find(Lines.current, self.pattern)
+ unrecognizedBuffer = unrecognizedBuffer .. spaces
+
+ -- skip the spaces and the close square bracket character
+ Lines:handledChars(last)
+
+ local latexPage = shipouts:pop()
+ if latexPage == nil or latexPage == "DUMMY" then
+ unrecognizedBuffer = unrecognizedBuffer .. "]"
+ else
+ flushUnrecognizedMessages()
+ local msg = endShipoutMessage:new()
+ msg.physicalPage = numShipouts
+ dispatch(msg)
+ end
+end
+
+
+-------------------------------------------------------------------------------
+-- utf8FontMapHandler
+--
+-- This handles the encoding-related multi-line messages generated by
+-- inputenc/fontenc with pdftex and utf8, similar to:
+--
+-- Now handling font encoding LS1 ...
+-- ... no UTF-8 mapping file for font encoding LS1
+--
+-- or
+--
+-- Now handling font encoding LY1 ...
+-- ... processing UTF-8 mapping file for font encoding LY1
+-- defining Unicode char U+00A0 (decimal 160)
+--
+-- We could handle these by inheriting from genericLatexHandler, which
+-- might be a good idea as this handler is quite complex. Still, the
+-- advantage of this handler is that it groups the first lines (that
+-- indicate the encoding) and the continuation lines as a unit, even
+-- though there are other messages in between that are handled by other
+-- handlers. We use two strategies to deal with continuation lines to
+-- accomplish this:
+--
+-- 1. After the first line, we change the self.doit method and define
+-- ourselves as nextHandler, because we know the next line "belongs"
+-- to us (nothing new here, genericLatexHandler does this too)
+--
+-- 2. After the second line, we do not know whether the next line "belongs"
+-- to us (actually, it most likely does not). So, we just change the
+-- self.doit method and wait to be called by chooseHandler() again a
+-- few lines down the road. When one of the patterns we are looking for
+-- matches, we are back in business. This is why handleOtherLines must
+-- check for the base "Now handling font encoding" pattern too: there
+-- might not be continuation lines and we need to handle a new message
+-- instead at some other point in the input file.
+-------------------------------------------------------------------------------
+
+utf8FontMapHandler = HandlerPrototype:new()
+
+-- we repeat here the tests we make on the other methods of this
+-- object, which is somewhat dirty.
+function utf8FontMapHandler:canDoit(position)
+ local line
+ if position == nil then position = 0 end
+ line = Lines:get(position)
+
+ local first, encoding
+ if self.doit == self.handleFirstLine then
+ first, _, encoding = string.find(line,
+ "^Now handling font encoding (%S+) %.%.%.")
+ elseif self.doit == self.handleSecondLine then
+ first = string.find(line,
+ "^%.%.%. no UTF%-8 mapping file for font encoding")
+
+ if first == nil then
+ first = string.find(
+ "^%.%.%. processing UTF%-8 mapping file for font encoding")
+ end
+ else
+ first = string.find(line, "^%s*defining Unicode char")
+ end
+
+ if first == nil then
+ return false, {}
+ else
+ return true, {encoding = encoding}
+ end
+end
+
+function utf8FontMapHandler:handleFirstLine()
+ local myTurn, data = self:canDoit()
+ if not myTurn then return false end
+
+ flushUnrecognizedMessages()
+ self.message = Message:new()
+ self.message.severity = DEBUG
+ self.message.content = Lines.current
+ self.message.encoding = data.encoding
+ Lines:handledChars()
+ self.encoding = data.encoding
+ self.doit = self.handleSecondLine
+ nextHandler = self
+ return true
+end
+
+utf8FontMapHandler.doit = utf8FontMapHandler.handleFirstLine
+
+function utf8FontMapHandler:handleSecondLine()
+ local first = string.find(Lines.current,
+ "^%.%.%. no UTF%-8 mapping file for font encoding")
+
+ if first ~= nil then
+ self.message.content = self.message.content .. '\n' .. Lines.current
+ Lines:handledChars()
+ dispatch(self.message)
+ self.doit = self.handleFirstLine
+ return true
+ end
+
+ first = string.find(Lines.current,
+ "^%.%.%. processing UTF%-8 mapping file for font encoding")
+
+ if first ~= nil then
+ self.message.content = self.message.content .. '\n' .. Lines.current
+ Lines:handledChars()
+ self.doit = self.handleOtherLines
+ self.numTries = 0
+ self.foundOtherLines = false
+ return true
+ end
+
+ -- The second line was neither "no UTF-8 mapping..." nor
+ -- "processing UTF-8 mapping" - this should never happen
+ dispatch(self.message)
+ io.stderr:write(" texlogsieve: parsing error\n")
+ Lines:handledChars()
+ self.doit = self.handleFirstLine
+ return true
+end
+
+-- Between handleSecondLine and handleOtherLines there usually are two
+-- messages: "open file ENCenc.dfu" and "ProvidesFile ENCenc.dfu".
+-- Therefore, we try to find the first "...defining Unicode char"
+-- message for the following 4 lines before giving up.
+function utf8FontMapHandler:handleOtherLines()
+ local first = string.find(Lines.current, "^%s*defining Unicode char")
+
+ if first ~= nil then
+ flushUnrecognizedMessages()
+ self.foundOtherLines = true
+ self.message.content = self.message.content .. '\n' .. Lines.current
+ Lines:handledChars()
+ nextHandler = self
+ return true
+ end
+
+ -- this line does not match; why? First possibility: there are no
+ -- "...defining Unicode char" lines to be found; instead, there is
+ -- another encoding being defined. This obviously should not happen
+ first = string.find(Lines.current,
+ "^Now handling font encoding (%S+) %.%.%.")
+
+ if first ~=nil then
+ -- give up and start processing the new message (should not happen)
+ dispatch(self.message)
+ flushUnrecognizedMessages()
+ io.stderr:write(" texlogsieve: parsing error\n")
+
+ self.numTries = 0
+ self.foundOtherLines = false
+ self.doit = self.handleFirstLine
+ return self:handleFirstLine()
+ end
+
+ -- second possibility: we have not yet reached the first "...defining
+ -- Unicode char" message, but we want to try again in the next line
+ if not self.foundOtherLines and self.numTries < 4 then
+ self.numTries = self.numTries +1
+ return false, {} -- we will try again later; for now, call chooseHandler()
+ end
+
+ -- third possibility: we never reached any "...defining Unicode char" line
+ -- but we already tried for too many lines (more than 4), so give up and
+ -- do nothing (we might output a "parsing error" message, but that is
+ -- probably unnecessary)
+
+ -- fourth possibility: we already found all lines, so
+ -- we are done and there is no need to do anything else
+
+ -- wrap up for the third and fourth possibilities
+ dispatch(self.message)
+ self.doit = self.handleFirstLine
+ self.numTries = 0
+ self.foundOtherLines = false
+ return true
+end
+
+
+--[[ ##################################################################### ]]--
+--[[ ############################# MESSAGES ############################## ]]--
+--[[ ##################################################################### ]]--
+
+Message = {}
+
+function Message:new()
+ local o = {}
+ setmetatable(o, self)
+ self.__index = self
+ o.mute = mute
+ o.content = ""
+ o.prefix = ""
+ if openFiles ~= nil and not openFiles:empty() then
+ o.filename = openFiles:peek()
+ end
+ return o
+end
+
+Message.severity = UNKNOWN
+
+function Message:toString()
+ if self.mute then return "" end
+
+ -- If we've already been here, just output the previous result
+ if self.formatted ~= nil then return self.formatted end
+
+ self.formatted = self:realToString()
+ if trim(self.formatted) == "" then self.formatted = "" return "" end
+
+ for _, val in ipairs(SILENCE_STRINGS) do
+ local first = string.find(self.formatted, val)
+ local other = string.find(self.content, val)
+ if first ~= nil or other ~= nil then self.formatted = "" return "" end
+ end
+
+ if self.name ~= nil then
+ for _, val in ipairs(SILENCE_PKGS) do
+ if self.name == val then self.formatted = "" return "" end
+ end
+ end
+
+ if self.severity < MINLEVEL then self.formatted = "" return "" end
+
+ return self.formatted
+end
+
+function Message:realToString()
+ if self.prefix == "" then return self.content end
+
+ local lines = linesToTable(self.content)
+ local msg = table.remove(lines, 1)
+ for _, line in ipairs(lines) do
+ msg = msg .. '\n' .. unprotect_metachars(self.prefix) .. line
+ end
+ return msg
+end
+
+function Message:toSummary()
+ local formatted = self:toString()
+ if string.len(trim(formatted)) == 0 then return end
+
+ repetitionsSummary:add(self)
+end
+
+
+function currentFileIsSilenced()
+ if openFiles:empty() then return false end
+
+ local filename = openFiles:peek()
+ local _, last = string.find(filename, '^.*/') -- get just the basename
+ if last ~= nil then filename = string.sub(filename, last +1) end
+ for _, pattern in ipairs(SEMISILENCE_FILES) do
+ local first = string.find(filename, pattern)
+ if first ~= nil then return true end
+ end
+
+ -- This is O(n*m) and gets executed for every message,
+ -- but "n" and "m" are unlikely to grow much beyond 10.
+ for _, filename in ipairs(openFiles) do
+ -- get just the basename
+ local basename = filename
+ local _, last = string.find(basename, '^.*/')
+ if last ~= nil then basename = string.sub(basename, last +1) end
+
+ for _, pattern in ipairs(SILENCE_FILES_RECURSIVE) do
+ _, last = string.find(basename, pattern)
+ if last ~= nil then return true end
+ end
+ end
+
+ return false
+end
+
+
+beginShipoutMessage = Message:new()
+function beginShipoutMessage:realToString()
+ if not SHOW_SHIPOUTS then return "" end
+
+ if RAW then return '[' .. latexPages[self.physicalPage] end
+
+ return ""
+end
+
+
+endShipoutMessage = Message:new()
+endShipoutMessage.shipout = true
+function endShipoutMessage:realToString()
+ if not SHOW_SHIPOUTS then return "" end
+
+ if RAW then return ']' end
+
+ -- print counter as [cnt], just as LaTeX does. With that, if a program is
+ -- monitoring output, it can show some sort of progress bar to the user
+ local msg = 'shipout - physical page ' .. self.physicalPage
+ .. ', LaTeX page counter ['
+ .. latexPages[self.physicalPage] .. ']'
+
+ return msg
+end
+
+
+openFileMessage = Message:new()
+function openFileMessage:realToString()
+ if RAW then return "(" .. self.filename end
+
+ return Message.realToString(self)
+end
+
+
+closeFileMessage = Message:new()
+function closeFileMessage:realToString()
+ if RAW then return ")" end
+
+ return Message.realToString(self)
+end
+
+
+underOverMessage = Message:new()
+underOverMessage.severity = WARNING
+function underOverMessage:realToString()
+ local tmp = self.content
+ if self.failedText ~= nil then
+ if not RAW then tmp = tmp .. '\nOffending text:' end
+ tmp = tmp .. '\n' .. self.failedText .. '\n'
+ end
+
+ -- in raw mode, add the final "[]"
+ if RAW and self.closing ~= nil then
+ tmp = tmp .. ' ' .. self.closing .. '\n'
+ end
+
+ return tmp
+end
+
+function underOverMessage:toSummary()
+ underOverSummary:add(self)
+end
+
+
+missingCharMessage = Message:new()
+
+-- This is a hack: it would be too painful to define
+-- pattern captures in the handler, so we do this here
+function missingCharMessage:realToString()
+ if self.char == nil then
+ _, _, self.char, self.font = string.find(self.content,
+ '^Missing character: There is no (.-) in font (.*)!')
+ end
+
+ return self.content
+end
+
+function missingCharMessage:toSummary()
+ missingCharSummary:add(self)
+end
+
+
+citationMessage = Message:new()
+function citationMessage:toSummary()
+ citationsSummary:add(self)
+end
+
+referenceMessage = Message:new()
+function referenceMessage:toSummary()
+ referencesSummary:add(self)
+end
+
+labelMessage = Message:new()
+function labelMessage:toSummary()
+ labelsSummary:add(self)
+end
+
+
+--[[ ##################################################################### ]]--
+--[[ ############################ SUMMARIES ############################## ]]--
+--[[ ##################################################################### ]]--
+
+-- A Summary handles a class of messages (for example, undefined citations).
+-- Some of these messages may be repeated (such as one specicic undefined
+-- citation that appears multiple times). We want to mention each repeated
+-- group as a single item ("citation blah undefined in pages X, Y, and Z").
+-- Therefore, we make self.messages a list of lists: Each "sub-list" holds
+-- the messages that correspond to a specific message content (such as a
+-- specific undefined citation).
+SummaryPrototype = {}
+
+function SummaryPrototype:new()
+ local o = {}
+ setmetatable(o, self)
+ self.__index = self
+ o.messages = {}
+ o.header = ""
+ return o
+end
+
+function SummaryPrototype:add(msg)
+ -- group messages by message content
+ local formatted = msg:toString()
+
+ if self.messages[formatted] == nil then
+ self.messages[formatted] = {}
+ end
+
+ table.insert(self.messages[formatted], msg)
+end
+
+function SummaryPrototype:toString()
+ -- check if the table is empty - https://stackoverflow.com/a/1252776
+ if next(self.messages) == nil then return "" end
+
+ local text = self:processAllMessages()
+
+ if text == "" then return "" end -- happens with repetitionsSummary
+
+ return self.header .. text
+end
+
+-- as mentioned above, self.messages holds a list of lists, such as
+-- all the "undefined reference blah" messages in one sublist and
+-- all the "undefined reference bleh" messages in another; process
+-- each sublist separately and concatenate the results. We sort
+-- because otherwise the order of the reports changes with each
+-- execution, which makes comparing outputs harder.
+function SummaryPrototype:processAllMessages()
+ local allText = ""
+ for _, messagesSublist in pairsSortedByKeys(self.messages) do
+ local tmp = self:processSingleMessageList(messagesSublist)
+ if tmp ~= "" then
+ allText = allText .. '\n\n' .. tmp
+ end
+ end
+
+ -- remove leading '\n\n'
+ return string.sub(allText, 3)
+end
+
+-- This is where we process each individual sublist, generating
+-- something like "undefined reference blah in pages X, Y Z".
+-- This obviously depends on the type of summary.
+function SummaryPrototype:processSingleMessageList(messages)
+ return ""
+end
+
+-- This receives a list of (equal) messages and returns
+-- the list of pages and files where they were found.
+function SummaryPrototype:pageAndFileList(messages)
+
+ -- Build a Set with the page numbers to eliminate repetitions...
+ local pages = {}
+ local files = {}
+ for _, msg in ipairs(messages) do
+ pages[msg.physicalPage] = true
+ if msg.filename ~= nil then
+ files[msg.filename] = true
+ end
+ end
+
+ -- and convert it to a "normal" table so we can sort it
+ local tmp = {}
+ for page, _ in pairs(pages) do -- not ipairs!
+ table.insert(tmp, page)
+ end
+ pages = tmp
+ table.sort(pages)
+
+ tmp = {}
+ for file, _ in pairs(files) do
+ table.insert(tmp, file)
+ end
+ files = tmp
+ table.sort(files)
+
+ -- Now turn these into strings
+ tmp = ""
+ for _, page in ipairs(pages) do
+ tmp = tmp .. ", " .. page
+ end
+ pages = tmp
+
+ local _, last = string.find(pages, '^, ')
+ if last ~= nil then pages = string.sub(pages, last +1) end
+
+ local tmp = ""
+ for _, file in ipairs(files) do
+ tmp = tmp .. ", " .. file
+ end
+ files = tmp
+
+ local _, last = string.find(files, '^, ')
+ if last ~= nil then files = string.sub(files, last +1) end
+
+ return pages, files
+end
+
+
+repetitionsSummary = SummaryPrototype:new()
+repetitionsSummary.header = 'Repeated messages:\n'
+
+function repetitionsSummary:toString()
+ if not SILENCE_REPETITIONS then return "" end
+
+ return SummaryPrototype.toString(self)
+end
+
+function repetitionsSummary:processSingleMessageList(messages)
+ local text = ""
+ if #messages > 1 then
+ local pages, files = self:pageAndFileList(messages)
+ local content = messages[1]:toString()
+
+ text = content .. '\n'
+ .. 'in pages ' .. pages
+ .. " (files " .. files .. ") - "
+ .. #messages .. ' repetitions'
+ end
+
+ return text
+end
+
+
+missingCharSummary = SummaryPrototype:new()
+missingCharSummary.header = 'Missing characters:\n'
+
+function missingCharSummary:processSingleMessageList(messages)
+ local text = ""
+ local pages, files = self:pageAndFileList(messages)
+ local char = messages[1].char
+ local font = messages[1].font
+
+ text = 'char ' .. char .. ', font ' .. font .. '\n'
+ .. 'in pages ' .. pages .. " (files " .. files .. ")"
+
+ return text
+end
+
+
+citationsSummary = SummaryPrototype:new()
+citationsSummary.header = 'Undefined citations:\n'
+
+function citationsSummary:add(msg)
+ -- group messages by problem key. We do not use msg:toString()
+ -- here because some messages may include the page number, making
+ -- messages that are otherwise the same appear to be different.
+ local key = msg.key
+
+ if self.messages[key] == nil then
+ self.messages[key] = {}
+ end
+
+ table.insert(self.messages[key], msg)
+end
+
+function citationsSummary:processSingleMessageList(messages)
+ local text = ""
+ local pages, files = self:pageAndFileList(messages)
+ local key = messages[1].key
+
+ text = key .. '\n'
+ .. 'in pages ' .. pages .. " (files " .. files .. ")"
+
+ return text
+end
+
+
+referencesSummary = citationsSummary:new()
+referencesSummary.header = 'Undefined references:\n'
+
+
+labelsSummary = citationsSummary:new()
+labelsSummary.header = 'Multiply defined labels:\n'
+
+
+-- This is a little different from the others; we do not want to
+-- treat different messages differently, only report that there were
+-- under/overfull boxes in pages X, Y, and Z. So we store messages
+-- directly in self.messages instead of using sublists.
+underOverSummary = SummaryPrototype:new()
+
+function underOverSummary:add(msg)
+ table.insert(self.messages, msg)
+end
+
+function underOverSummary:toString()
+ if #self.messages == 0 then return "" end
+
+ local pages, files = self:pageAndFileList(self.messages)
+
+ return "Under/overfull boxes in pages "
+ .. pages .. " (files " .. files .. ")"
+end
+
+
+--[[ ##################################################################### ]]--
+--[[ ########################## AUXILIARY STUFF ########################## ]]--
+--[[ ##################################################################### ]]--
+
+function protect_metachars(s)
+ s = string.gsub(s, "%%", "%%%%")
+ s = string.gsub(s, "%(", "%%(")
+ s = string.gsub(s, "%)", "%%)")
+ s = string.gsub(s, "%.", "%%.")
+ s = string.gsub(s, "%+", "%%+")
+ s = string.gsub(s, "%-", "%%-")
+ s = string.gsub(s, "%*", "%%*")
+ s = string.gsub(s, "%?", "%%?")
+ s = string.gsub(s, "%[", "%%[")
+ s = string.gsub(s, "%^", "%%^")
+ s = string.gsub(s, "%$", "%%$")
+ return s
+end
+
+function unprotect_metachars(s)
+ s = string.gsub(s, "%%%$", "$")
+ s = string.gsub(s, "%%%^", "^")
+ s = string.gsub(s, "%%%[", "[")
+ s = string.gsub(s, "%%%?", "?")
+ s = string.gsub(s, "%%%*", "*")
+ s = string.gsub(s, "%%%-", "-")
+ s = string.gsub(s, "%%%+", "+")
+ s = string.gsub(s, "%%%.", ".")
+ s = string.gsub(s, "%%%)", ")")
+ s = string.gsub(s, "%%%(", "(")
+ s = string.gsub(s, "%%%%", "%%")
+ return s
+end
+
+function trim(s) return (string.gsub(s, '^%s*(.-)%s*$', '%1')) end
+
+function stringToPattern(s)
+ local first, _ = string.find(s, '^////')
+ local pat
+ if first ~= nil then
+ pat = string.sub(s, 5)
+ else
+ pat = protect_metachars(s)
+ pat = string.gsub(pat, "%s+", "%%s+")
+ end
+
+ return pat
+end
+
+-- Given a string with multiple lines, returns
+-- a table in which each line is an element
+function linesToTable(s)
+ local size = string.len(s)
+ local i = 1
+ local lines = {}
+ while i < size do
+ -- check \r in case the user added to this file a pattern
+ -- with an embedded dos-style "CR LF" sequence.
+ local first, last, line = string.find(s, '(.-)[\r]?\n', i)
+
+ if first == nil then
+ table.insert(lines, string.sub(s, i))
+ i = size
+ else
+ table.insert(lines, line)
+ i = last +1
+ end
+ end
+ return lines
+end
+
+-- copied verbatim from https://www.lua.org/pil/19.3.html
+function pairsSortedByKeys (t, f)
+ local a = {}
+ for n in pairs(t) do table.insert(a, n) end
+ table.sort(a, f)
+ local i = 0 -- iterator variable
+ local iter = function () -- iterator function
+ i = i + 1
+ if a[i] == nil then return nil
+ else return a[i], t[a[i]]
+ end
+ end
+ return iter
+ end
+
+
+--[[ ##### STACK ##### ]]--
+
+Stack = {}
+
+function Stack:new()
+ local o = {}
+ setmetatable(o, self)
+ self.__index = self
+ return o
+end
+
+function Stack:push(val)
+ table.insert(self, val)
+end
+
+function Stack:pop()
+ if #self > 0 then
+ return table.remove(self)
+ else
+ return nil
+ end
+end
+
+function Stack:peek()
+ return self[#self]
+end
+
+function Stack:size()
+ return #self
+end
+
+function Stack:empty()
+ return #self == 0
+end
+
+
+--[[ ##### GLOBTOPATTERN ##### ]]--
+
+-- convert a file glob to a lua pattern
+
+-- globtopattern (c) 2008-2011 David Manura. Licensed under the same terms as Lua (MIT).
+-- copied verbatim from https://github.com/davidm/lua-glob-pattern
+
+function globtopattern(g)
+ -- Some useful references:
+ -- - apr_fnmatch in Apache APR. For example,
+ -- http://apr.apache.org/docs/apr/1.3/group__apr__fnmatch.html
+ -- which cites POSIX 1003.2-1992, section B.6.
+
+ local p = "^" -- pattern being built
+ local i = 0 -- index in g
+ local c -- char at index i in g.
+
+ -- unescape glob char
+ local function unescape()
+ if c == '\\' then
+ i = i + 1; c = g:sub(i,i)
+ if c == '' then
+ p = '[^]'
+ return false
+ end
+ end
+ return true
+ end
+
+ -- escape pattern char
+ local function escape(c)
+ return c:match("^%w$") and c or '%' .. c
+ end
+
+ -- Convert tokens at end of charset.
+ local function charset_end()
+ while 1 do
+ if c == '' then
+ p = '[^]'
+ return false
+ elseif c == ']' then
+ p = p .. ']'
+ break
+ else
+ if not unescape() then break end
+ local c1 = c
+ i = i + 1; c = g:sub(i,i)
+ if c == '' then
+ p = '[^]'
+ return false
+ elseif c == '-' then
+ i = i + 1; c = g:sub(i,i)
+ if c == '' then
+ p = '[^]'
+ return false
+ elseif c == ']' then
+ p = p .. escape(c1) .. '%-]'
+ break
+ else
+ if not unescape() then break end
+ p = p .. escape(c1) .. '-' .. escape(c)
+ end
+ elseif c == ']' then
+ p = p .. escape(c1) .. ']'
+ break
+ else
+ p = p .. escape(c1)
+ i = i - 1 -- put back
+ end
+ end
+ i = i + 1; c = g:sub(i,i)
+ end
+ return true
+ end
+
+ -- Convert tokens in charset.
+ local function charset()
+ i = i + 1; c = g:sub(i,i)
+ if c == '' or c == ']' then
+ p = '[^]'
+ return false
+ elseif c == '^' or c == '!' then
+ i = i + 1; c = g:sub(i,i)
+ if c == ']' then
+ -- ignored
+ else
+ p = p .. '[^'
+ if not charset_end() then return false end
+ end
+ else
+ p = p .. '['
+ if not charset_end() then return false end
+ end
+ return true
+ end
+
+ -- Convert tokens.
+ while 1 do
+ i = i + 1; c = g:sub(i,i)
+ if c == '' then
+ p = p .. '$'
+ break
+ elseif c == '?' then
+ p = p .. '.'
+ elseif c == '*' then
+ p = p .. '.*'
+ elseif c == '[' then
+ if not charset() then break end
+ elseif c == '\\' then
+ i = i + 1; c = g:sub(i,i)
+ if c == '' then
+ p = p .. '\\$'
+ break
+ end
+ p = p .. escape(c)
+ else
+ p = p .. escape(c)
+ end
+ end
+ return p
+end
+
+
+--[[ ##### PARSING THE COMMAND LINE ##### ]]--
+
+-- loosely inspired by http://lua-users.org/wiki/AlternativeGetOpt
+
+function simpleGetopt(args, optionsWithArgs)
+ local userOptions = {} -- results will be stored here
+
+ if optionsWithArgs == nil then optionsWithArgs = "" end
+
+ i = 1
+ while i <= #args do
+
+ -- lua does not have "continue", so we put the loop body
+ -- in a "repeat/until true" block and use break instead.
+ repeat
+ local optname, optval
+
+ -- this handles "--option=blah", "--option = blah",
+ -- "--option= blah" and "--option =blah"
+ if string.sub(args[i], 1, 2) == "--" then
+ optname = string.sub(args[i], 3)
+
+ -- check for "--option=..."
+ local equals = string.find(optname, "=", 1, true)
+ if equals ~= nil then
+ optval = string.sub(optname, equals +1)
+ optname = string.sub(optname, 1, equals -1)
+
+ -- check for "--option =..."
+ elseif i +1 <= #args and string.sub(args[i +1], 1, 1) == '=' then
+ optval = string.sub(args[i +1], 2)
+ i = i +1 -- do not process this again later on
+ end
+
+ if optval ~= nil then
+ if optval == "" then -- check for "...= blah"
+ optval = args[i +1]
+ i = i +1 -- do not process this again later on
+ end
+ else
+ -- check for "--option" without "="
+ optval = true
+ end
+
+ simpleGetoptStoreVal(userOptions, optname, optval)
+
+ break
+ end
+
+ -- this handles "-a -b", "-ab", "-cVAL", "-c VAL", "-abcVAL",
+ -- and "-abc VAL". Obviously, "-cVALab" does not work (where
+ -- does "VAL" end?).
+ --
+ -- To decide whether "-cVAL" means "c with param VAL" or
+ -- "options c, V, A, and L", we check optionsWithArgs.
+ if string.sub(args[i], 1, 1) == "-" then
+ local j = 2
+ local length = string.len(args[i])
+
+ while (j <= length) do
+ local optname = string.sub(args[i], j, j) -- a single letter
+ if string.find(optionsWithArgs, optname, 1, true) then
+ if j < length then
+ optval = string.sub(args[i], j +1)
+ j = length
+ else
+ optval = args[i +1]
+ i = i +1 -- do not process this again later on
+ end
+ else
+ optval = true
+ end
+
+ simpleGetoptStoreVal(userOptions, optname, optval)
+
+ j = j + 1 -- next letter
+ end
+
+ break
+ end
+
+ -- the filename is the only argument that does not start with "-"
+ userOptions['filename'] = args[i]
+ until true
+
+ i = i +1 -- next arg
+
+ end -- while i <= #args
+
+ return userOptions
+end
+
+function simpleGetoptStoreVal(userOptions, optname, optval)
+ if type(optval) == 'boolean' then
+ userOptions[optname] = optval
+ return
+ end
+
+ local tmp = string.lower(optval)
+ if tmp == "y" or tmp == "true" then
+ userOptions[optname] = true
+ elseif tmp == "n" or tmp == "false" then
+ userOptions[optname] = false
+ else
+ if type(userOptions[optname]) ~= 'table' then
+ userOptions[optname] = {}
+ end
+ table.insert(userOptions[optname], optval)
+ end
+end
+
+--[[
+-- TESTING THE COMMAND LINE PARSER --
+
+optionsWithArgs = 'abdg' -- these are followed by a parameter: "-b5", "-a true"
+
+args = {
+ '--should-be-true',
+ '-a', 'param-for-a',
+ '-bparam-for-b',
+ '-cdparam-for-d', -- c should be true
+ '-e', -- e should be true
+ '-fg', 'param-for-g', -- f should be true
+ '--opt1', '=', 'param-for-opt1',
+ '--opt2=', 'param-for-opt2',
+ '--opt3', '=param-for-opt3',
+ '--opt4=param-for-opt4',
+ '--also-should-be-true'
+}
+
+for k, v in pairs(simpleGetopt(args, optionsWithArgs)) do
+ print("Option " .. k .. ': ', v)
+end
+--]]
+
+
+--[[ ##################################################################### ]]--
+--[[ ######################### INPUT LINES BUFFER ######################## ]]--
+--[[ ##################################################################### ]]--
+
+--[[
+This is a buffer of lines from the logfile. The first line in the
+buffer (self.current) is treated specially: we may alter its content
+during processing and, therefore, we record its original size so
+later we can detect if it may be a wrapped line (i.e., if its
+original length was max_print_line characters).
+--]]
+
+Lines = {}
+Lines.wrapped = {} -- memoization
+
+function Lines:gotoNextLine()
+ self.current = table.remove(self, 1)
+ self.currentWrapped = table.remove(self.wrapped, 1)
+ self.atBeginningOfLine = true
+
+ -- When unwrapping lines, we need to check whether a line is of
+ -- the "right" size. However, we modify the content of currentLine
+ -- during processing, so we capture its initial length here
+ if self.current ~= nil then
+ self.currentLineInitialLength = string.len(self.current)
+ else
+ self.currentLineInitialLength = 0
+ self.currentWrapped = false
+ end
+end
+
+function Lines:handledChars(n)
+ -- After a handler processes currentLine, it indicates how much
+ -- from the line it processed, either leaving some trailing text
+ -- for the next handler or leaving nothing, indicating that it is
+ -- time to get more data and call gotoNextLine().
+ if n == nil then
+ self.current = nil
+ else
+ self.current = string.sub(self.current, n +1)
+ self.atBeginningOfLine = false
+ end
+
+end
+
+function Lines:len(n)
+ local n = n or 0
+ if n == 0 then return self.currentLineInitialLength end
+ return string.len(self[n])
+end
+
+function Lines:append(x)
+ table.insert(self, x)
+ table.insert(self.wrapped, "unknown") -- cannot use "nil"
+end
+
+function Lines:get(n)
+ local n = n or 0
+ if n == 0 then return self.current end
+ return self[n]
+end
+
+function Lines:empty()
+ return #self == 0
+end
+
+function Lines:numLines()
+ return #self
+end
+
+
+--[[ ##### UNWRAPPING LINES ##### ]]--
+
+function Lines:seemsWrappedMemo(n)
+ if n == 0 then
+ return self.currentWrapped
+ else
+ return self.wrapped[n]
+ end
+end
+
+function Lines:setWrappedMemo(n, val)
+ if n == 0 then
+ self.currentWrapped = val
+ else
+ self.wrapped[n] = val
+ end
+end
+
+function Lines:unwrapOneLine()
+ -- We trust the caller to check :seemsWrapped() before
+ -- calling this!
+ local old = self.current
+ self:gotoNextLine() -- this also updates currentLineInitialLength
+ self.current = old .. self.current
+end
+
+function Lines:seemsWrapped(position)
+ if not badLogfile then return false end
+
+ if position == nil then position = 0 end
+
+ if self:seemsWrappedMemo(position) ~= 'unknown' then
+ return self:seemsWrappedMemo(position)
+ end
+
+ -- No next line, so the current line cannot be a wrapped line.
+ -- The buffer should be large enough to guarantee this will
+ -- only happen when we are actually at the end of the input
+ if self:get(position +1) == nil then
+ -- BUT, just in case the buffer does get
+ -- empty before EOF, do not memoize
+ --self:setWrappedMemo(position, false)
+ return false
+ end
+
+ if not self:wrappingLength(position) then
+ self:setWrappedMemo(position, false)
+ return false
+ end
+
+ -- ok, the line length suggests this line continues on the
+ -- next, but we need to be sure; let's check if there are
+ -- no handlers that can manage the next line
+ local result = self:noHandlersForNextLine(position)
+ self:setWrappedMemo(position, result)
+ return result
+end
+
+function Lines:wrappingLength(position)
+ local line = self:get(position)
+ local n = self:len(position)
+
+ -- I have seen at least two cases where TeX "forgot" to
+ -- wrap a line. In this happens, the line is not wrapped.
+ if n > max_print_line +1 then return false end
+
+ -- Is the line the "right" length?
+ -- (max_print_line or max_print_line +1)
+ if n >= max_print_line then return true end
+
+ -- Ok, n < max_print_line, so it looks like this is not
+ -- a wrapped line. BUT! LuaTeX does not break a multibyte
+ -- UTF-8 character, which means some lines may be broken
+ -- at lengths < max_print_line; let's check for this.
+
+ -- Get the length of the first UTF-8 character on the next line:
+ -- https://www.lua.org/manual/5.3/manual.html#pdf-utf8.charpattern
+ local _, nextcharsize = string.find(self:get(position +1),
+ '^' .. utf8.charpattern)
+
+ -- if it is not a multibyte char, the line really is not wrapped
+ if nextcharsize == 1 then return false end
+
+ -- Some *very* simplistic experiments tell me that if a
+ -- multibyte UTF-8 character in the last position of a line
+ -- would make that line exactly max_print_line long, LuaTeX
+ -- still breaks the line, even though the character would fit.
+ -- This is why we do "+1" here.
+
+ -- If the multibyte char would fit, the line really is not wrapped
+ if n + nextcharsize +1 <= max_print_line then return false end
+
+ -- The line is shorter because of an UTF-8 multibyte
+ -- char, so it seems like a wrapped line
+ return true
+end
+
+function Lines:noHandlersForNextLine(position)
+ local line = self:get(position)
+
+ local wrapped = true
+ for _, candidateHandler in ipairs(beginningOfLineHandlers) do
+ if candidateHandler:canDoit(position +1) then wrapped = false break end
+ end
+
+ for _, candidateHandler in ipairs(anywhereHandlers) do
+ if candidateHandler:canDoit(position +1) then wrapped = false break end
+ end
+
+ if wrapped then return true end
+
+ -- TODO: the way we deal with these special cases is lame...
+
+ -- a close parens at the beginning of the next line might not be
+ -- a "close file" message, but instead refer to an open parens in
+ -- the current line; let's check for this exceptional case. We
+ -- traverse the current line looking for open/close parens and pair
+ -- every close parens to the corresponding open parens. A dangling
+ -- close parens is probably a continuation too, so we ignore it.
+ if closeParensHandler:canDoit(position +1) then
+ -- We previously decided the line is not wrapped because
+ -- there is a close parens in the following line; let's
+ -- revise that decision
+ local unpaired = 0
+ local i = 1
+ local size = string.len(line)
+ while i <= size do
+ local j = string.find(line, '[%(%)]', i)
+ if j ~= nil then
+ local open = string.find(line, '%(', i)
+ if open then
+ unpaired = unpaired +1
+ elseif unpaired > 0 then
+ unpaired = unpaired -1
+ end
+ i = j +1
+ else
+ i = size +1
+ end
+ end
+
+ if unpaired > 0 then return true end
+ end
+
+ -- Same thing for close square bracket
+ if closeSquareBracketHandler:canDoit(position +1) then
+ -- We previously decided the line is not wrapped because
+ -- there is a close square bracket in the following line;
+ -- let's revise that decision
+ local unpaired = 0
+ local i = 1
+ local size = string.len(line)
+ while i <= size do
+ local j = string.find(line, '[%[%]]', i)
+ if j ~= nil then
+ local open = string.find(line, '%[', i)
+ if open then
+ unpaired = unpaired +1
+ elseif unpaired > 0 then
+ unpaired = unpaired -1
+ end
+ i = j +1
+ else
+ i = size +1
+ end
+ end
+
+ if unpaired > 0 then return true end
+ end
+
+ local parens, data = openParensHandler:canDoit(position +1)
+ local filename = data[1]
+ if parens and filename == nil then
+ -- Next line could be handled as an "open parens" message, but
+ -- there is no filename, so the message is only "(". There is
+ -- a good chance that is just the continuation of a previous
+ -- wrapped message. If there is a close parens character on the
+ -- line too, we'll assume that is true and ignore the handler
+ local first = string.find(self:get(position +1), "%)")
+ if first ~= nil then return true end
+ end
+
+ local bracket, data = openSquareBracketHandler:canDoit(position +1)
+ local page = data[1]
+ if bracket and page == nil then
+ -- Next line could be handled as an "open square bracket" message,
+ -- but there is no page number, so the message is only "[". There
+ -- is a good chance that is just the continuation of a previous
+ -- wrapped message. If there is a close square bracket character on
+ -- the line too, we'll assume that is true and ignore the handler
+ local first = string.find(self:get(position +1), "%]")
+ if first ~= nil then return true end
+ end
+
+ return false
+end
+
+function unwrapUntilPatternMatches(pat)
+ local last, tmp
+ while true do
+ matches = {string.find(Lines.current, pat)}
+ table.remove(matches, 1) -- remove "first"
+ last = table.remove(matches, 1) -- remove "last"
+
+ if last ~= nil then break end
+
+ if Lines:seemsWrapped() then
+ Lines:unwrapOneLine()
+ else
+ io.stderr:write(" texlogsieve: parsing error\n")
+ end
+ end
+
+ -- We matched the given pattern. However, if the pattern ends with
+ -- something like ".+", it is possible that there is still some more
+ -- relevant material in the next line (this is why we should not use
+ -- such patterns). There is not much we can do about that in general,
+ -- but if the next line is really short, this is probably why, so we
+ -- might as well try to unwrap once more. This is obviously a hack,
+ -- but it saves us from problems with a couple of messages that use
+ -- "filepat" at the end of the pattern.
+
+ -- these might fit in 2 chars, so do not consider lines with that
+ local realMessage = string.find(Lines:get(1), '[%)%[%]]')
+ if string.len(Lines:get(1)) < 3 and not realMessage then
+ local together = Lines.current .. Lines:get(1)
+ local candidateMatches = {string.find(together, pat)}
+ table.remove(candidateMatches, 1)
+ local candidateLast = table.remove(candidateMatches, 1)
+ if candidateLast ~= nil then
+ Lines:unwrapOneLine()
+ last = candidateLast
+ matches = candidateMatches
+ end
+ end
+
+ return last, matches
+end
+
+function unwrapUntilStringMatches(s)
+ return unwrapUntilPatternMatches(protect_metachars(s))
+end
+
+
+--[[ ##################################################################### ]]--
+--[[ ################## GUESSING FILENAMES AND SHIPOUTS ################## ]]--
+--[[ ##################################################################### ]]--
+
+--[[
+To find the full path of a file in the TeX search path, we may use
+
+thepath = kpse.find_file("article")
+thepath = kpse.find_file("/usr/share/texlive/texmf-dist/tex/latex/base/article.cls")
+thepath = kpse.find_file("latex/base/article.cls")
+thepath = kpse.find_file("texmf.cnf", "cnf")
+
+The filename may or may not include the extension; kpathsea adds the
+extension if necessary according to the specified format (default is
+"tex", which means extensions .tex, .sty, .cls and some others). This
+is problematic, because (1) it does not recognize filenames with an
+unknown extension and (2) if there is a file named "what.ever.tex" and
+another one called "what.ever", it may find the wrong file.
+
+We want to check whether a string from the log file corresponds to the
+complete path of an existing filename, which means we already know the
+extension. Therefore, we will use the type "other text files". This
+prevents kpathsea from adding the extension automatically (which is what
+we want) and also prevents kpathsea from searching the standard TeX path,
+which is also nice because we are checking a complete path.
+--]]
+
+function guessFilename(position)
+ if position == nil then position = 0 end
+ local line = Lines:get(position)
+ local _, last = string.find(line, '^%s*%(')
+ if last ~= nil then line = string.sub(line, last +1) end
+
+ local quotes, filename = guessQuotedFilename(line, position)
+
+ if filename ~= nil then return filename end
+
+ if quotes then return nil end
+
+ return guessUnquotedFilename(line, position)
+end
+
+function guessShipoutPage(position)
+ -- In general, a shipout is identified by "[\count0.\count1.\count2..."
+ -- followed by a space or "]". However, there are complications:
+ --
+ -- 1. Dates, such as [2020/10/03] or [2020-10-03]
+ --
+ -- 2. Files added to the shipout, such as
+ -- "[3{somefile.tex}" or "[3<somefile.pdf>"
+ --
+ -- We can either:
+ --
+ -- 1. Specify what is allowed: "^(%d+[%d%.]*)[ %]<{]" or "^(%d+[%d%.]*)$"
+ --
+ -- 2. Exclude what is forbidden: "^(%d+[%d%.]*)[^/-]"
+ --
+ -- Let's go with option 1.
+
+ local patterns = {
+ "^(%d+[%d%.]*)[ %]<{]",
+ "^(%d+[%d%.]*)$"
+ }
+
+ if position == nil then position = 0 end
+ local line = Lines:get(position)
+ local _, last = string.find(line, '^%s*%[')
+ if last ~= nil then line = string.sub(line, last +1) end
+
+ while true do
+ for _, pattern in ipairs(patterns) do
+ _, _, page = string.find(line, pattern)
+ if page ~= nil then
+ -- just the number, please
+ local _, last = string.find(page, '^%d+[%d%.]*')
+ page = string.sub(page, 1, last)
+ break
+ end
+ end
+
+ if not Lines:seemsWrapped(position) then break end
+
+ local nextline = Lines:get(1)
+ line = line .. nextline
+ position = position +1
+ end
+
+ return page -- may be nil
+end
+
+function guessQuotedFilename(line, position)
+ -- luatex puts quotes around filenames with spaces, which makes things easier
+ while true do
+ local _, last = string.find(line, '^"')
+ if string.len(line) > 0 and last == nil then return false end -- no quotes
+
+ last = string.find(line, '^"[%.]?/') -- relative path or unix-style path
+ if last == nil then
+ last = string.find(line, '^"%a:/') -- windows-style path
+ end
+ -- there are quotes, but what follows is not a filename
+ if string.len(line) >= 4 and last == nil then return true, nil end
+
+ _, last = string.find(line, '^"%a?[:]?[%.]?/[^"%(%)%[%]]+"')
+ if last ~= nil then
+ local filename = string.sub(line, 2, last -1) -- remove quotes
+ if kpse.find_file(filename, 'other text files') == nil then
+ return true, nil -- there are quotes, but no filename
+ else
+ return true, '"' .. filename .. '"'
+ end
+ end
+
+ -- no closing quote or the line is too short; can we unwrap this line?
+ if not Lines:seemsWrapped(position) then
+ io.stderr:write(" texlogsieve: parsing error\n")
+ return true, nil
+ end
+
+ -- yep!
+ line = line .. Lines:get(position +1)
+ position = position +1
+ end
+end
+
+-- no quotes; let's exhaustively extract the substrings of currentLine
+-- and use kpse.find_file() to check if any of them is an existing
+-- filename.
+function guessUnquotedFilename(line, position)
+ -- In subsequent iterations, we do not check the smaller strings
+ -- we already checked in the previous ones.
+ local alreadyCheckedIdx = 0
+
+ while true do
+ local first = string.find(line, '^[%.]?/') -- relative or unix-style path
+ if first == nil then
+ first = string.find(line, '^%a:/') -- windows-style path
+ end
+ -- this does not look like a filename
+ if string.len(line) >= 3 and first == nil then return nil end
+
+ local longest = string.len(line)
+
+ -- if there is a ")", "(", "[", or "]" char, stop before that
+ first = string.find(line, "[%)%(%[%]]")
+ if first ~= nil then longest = first -1 end
+
+ -- From longest to shortest, to avoid problems if there is a
+ -- substring in the filename that matches some other filename.
+ for i = longest, alreadyCheckedIdx +1, -1 do
+ local filename = string.sub(line, 1, i)
+ if kpse.find_file(filename, 'other text files') ~= nil then
+ return filename
+ end
+ end
+
+ -- we did not find the filename; can we unwrap this line?
+ if not Lines:seemsWrapped(position) then return nil end
+ first = string.find(line, "[%)%(%[%]]")
+ if first ~= nil then return nil end
+
+ -- yep!
+ alreadyCheckedIdx = longest
+ line = line .. Lines:get(position +1)
+ position = position +1
+ end
+end
+
+--[[ ###################################################################### ]]--
+--[[ ######################## BEGINNING OF SCRIPT ######################### ]]--
+--[[ ###################################################################### ]]--
+
+
+main(arg)
diff --git a/support/texlogsieve/texlogsieve.1 b/support/texlogsieve/texlogsieve.1
new file mode 100644
index 0000000000..79cdbc68d1
--- /dev/null
+++ b/support/texlogsieve/texlogsieve.1
@@ -0,0 +1,229 @@
+.TH TEXLOGSIEVE "1" "December 2021" "texlogsieve 1.0.0-beta-1" "User Commands"
+
+.SH NAME
+
+texlogsieve \- filter and summarize LaTeX log files
+
+.SH SYNOPSIS
+
+\fBtexlogsieve\fR [\fI\,OPTION\/\fR]... [\fI\,INPUT FILE\/\fR]
+
+.SH DESCRIPTION
+
+texlogsieve reads a LaTeX log file (or the standard input if no file is
+specified), filters out less relevant messages, and displays a summary
+report.
+
+texlogsieve \fBmust\fR be run from the same directory as [pdf|lua|xe]latex,
+because it searches for the files used during compilation (packages loaded
+from the current directory, files included with \einput etc.).
+
+The program goes to great lengths to correctly handle TeX line wrapping. It
+understands the \fI\,max_print_line\/\fR TeX configuration variable and reads
+its value from the same places as TeX. Setting \fI\,max_print_line\/\fR to a
+value larger than 9999 makes texlogsieve ignore line wrapping.
+
+The defaults are reasonable; hopefully, you can just do
+
+.RS 3
+.EX
+[pdf|lua|xe]latex myfile.tex | texlogsieve
+.EE
+.RE
+
+and be satisfied with the result.
+
+.SH OPTIONS
+
+.TP
+\fB\-\-page\-delay\fR, \fB\-\-no\-page\-delay\fR
+Enable/disable grouping messages by page before display. When enabled,
+messages are only output after the current page is finished (shipout). \
+The advantage is that the page number is included in the message (default
+enabled).
+
+.TP
+\fB\-\-summary\fR, \fB\-\-no\-summary\fR
+Enable/disable final summary (default enabled).
+
+.TP
+\fB\-\-only\-summary\fR
+No messages, show only the final summary (default disabled).
+
+.TP
+\fB\-\-shipouts\fR, \fB\-\-no\-shipouts\fR
+Enable/disable reporting shipouts (default disabled with page-delay,
+enabled with no-page-delay).
+
+.TP
+\fB\-\-repetitions\fR, \fB\-\-no\-repetitions\fR
+Allow/prevent repeated messages (default disabled, i.e., repeated messages
+are supressed).
+
+.TP
+\fB\-\-heartbeat\fR, \fB\-\-no\-heartbeat\fR
+Enable/disable progress gauge in page-delay mode (default enabled).
+
+.TP
+\fB\-l\fR \fI\,LEVEL\/\fR, \fB\-\-minlevel\fR=\fI\,LEVEL\/\fR
+Filter out messages with severity level lower than LEVEL. Valid levels
+are DEBUG (no filtering), INFO, WARNING, CRITICAL, and UNKNOWN (default
+WARNING).
+
+.TP
+\fB\-u\fR, \fB\-\-unwrap\-only\fR
+Do not filter messages and do not output the summary, only unwrap long,
+wrapped lines. The output should be very similar (but not equal) to the
+input file, but with wrapped lines reconstructed. This activates \-l debug,
+\-\-no\-summary, \-\-no\-page\-delay, \-\-repetitions, and \-\-shipouts, and
+also supresses the verbose \[lq]open/close file\[rq] and \[lq]shipout\[rq]
+messages, simulating instead the TeX format, with parens and square brackets. \
+This is useful if you prefer the reports generated by some other tool but want
+to benefit from texlogsieve's line unwrapping algorithm; the output generated
+by this option should be parseable by other tools (but you probably need to
+coerce the other tool not to try to unwrap lines).
+
+.TP
+\fB\-\-silence\-package\fR=\fI\,PKGNAME\/\fR
+Filter out messages that can be identified as coming from the given package. \
+Use this option multiple times to suppress messages from several different
+packages.
+
+.TP
+\fB\-\-silence\-string\fR=\fI\,EXCERPT OF UNWANTED MESSAGE\/\fR
+Filter out messages that contain the given string (you only need to provide
+part of the message text for the whole message to be suppressed). Use this
+option multiple times to suppress several different messages. The string
+should be a single line, but that is not a problem for multiline log messages:
+space characters in the provided string match any sequence of whitespace
+characters in the message, including newlines. If needed, you may precede the
+string with \[lq]////\[rq], in which case you can use lua-style pattern matching
+(\c
+.UR https://www.lua.org/pil/20.2.html
+.UE ). Note that the string is used verbatim: you need not (and should not)
+enclose it in quotes nor escape special characters such as \[lq]\e\[rq].
+
+.TP
+\fB\-\-silence\-file\fR=\fI\,FILENAME OR FILE GLOB\/\fR
+Filter out messages that have been generated while the given file was being
+processed. Do \fBnot\fR use absolute or relative paths, only filenames. Simple
+file globs, such as \[lq]*.cls\[rq], work as expected. Use this option multiple
+times to suppress messages from several different files.
+
+.TP
+\fB\-\-semisilence\-file\fR=\fI\,FILENAME OR FILE GLOB\/\fR
+Just like the previous option, but non-recursive. This means that messages
+generated while the given file was being processed are excluded, but messages
+generated by some other file that was opened by it are not. For example, if
+\[lq]chapters.tex\[rq] includes (with \einput) the files \[lq]chapter1.tex\[rq]
+and \[lq]chapter2.tex\[rq], using \[lq]\-\-silence\-file=chapters.tex\[rq]
+will prevent messages generated by any of the three files from being
+displayed. If, however, you use \[lq]\-\-semisilence\-file=chapters.tex\[rq],
+messages generated by chapters.tex will be suppressed, but messages generated
+by chapter1.tex or chapter2.tex will not.
+
+.TP
+\fB\-\-add\-[debug|info|warning]\-message\fR=\fI\,MESSAGE\/\fR
+Add MESSAGE to the list of messages known to the program with the given
+severity level; see Section UNRECOGNIZED MESSAGES below for more information
+about this. Like \-\-silence\-string, these should be a single line; unlike
+\-\-silence\-string, you need to embed \en explicitly to indicate line
+breaks. You may precede the string with \[lq]////\[rq] to use lua-style
+pattern matching, but embedding \en to indicate line breaks is unavoidable.
+Use these options multiple times to add many different messages.
+
+.TP
+\fB\-c\fR \fI\,CFGFILE\/\fR, \fB\-\-config\-file\fR=\fI\,CFGFILE\/\fR
+Read options from the given configuration file. Options are exactly the
+same as the long command-line options, but without the preceding \[lq]\-\-\[rq]
+characters. Lines starting with a \[lq]#\[rq] sign are comments. An example
+configuration file:
+
+.RS
+.RS 3
+.EX
+no\-page\-delay
+.br
+# no\-page\-delay enables shipouts, but we do not want that
+.br
+no\-shipouts
+.br
+silence\-string = Hyperreferences in rotated content will be misplaced
+.br
+# no need to escape the \[dq]\e\[dq] (or any other) character
+.br
+silence\-string = Using \eoverbracket and \eunderbracket from \[ga]mathtools\[aq]
+.br
+# silence a string using lua pattern matching
+.br
+silence\-string = ////luaotfload | aux : font no %d+ %(.\-%)
+.br
+silence\-files = *.cls
+.EE
+.RE
+.RE
+
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Show concise options description.
+
+.TP
+\fB\-\-version\fR
+Print program version.
+
+.SH UNRECOGNIZED MESSAGES
+
+texlogsieve automatically handles messages such as \[lq]Package blah
+Info:...\[rq] or \[lq]LaTeX Warning:...\[rq]. However, many messages do not
+follow this pattern. To do its thing, texlogsieve should know about these
+other messages beforehand. This is important for three reasons:
+
+.IP 1. 3
+Unknown messages are given maximum priority; if you do not want to see them,
+you have to use \-\-silence\-string;
+.IP 2. 3
+If the message has more than one line, each line is treated as an independent
+message. This means you need to use \-\-silence\-string multiple times;
+.IP 3. 3
+In some rare cases, the line unwrapping algorithm may fail near an
+unrecognized message.
+
+.PP
+While texlogsieve recognizes quite a few messages out of the box, you may run
+into a message generated by some package that it does not know about (you can
+check for this using \[lq]\-l unknown\[rq]). If that is the case, you can use
+the \-\-add\-[debug|info|warning]\-message options to add it to the list of
+messages known to the program.
+
+.SH LIMITATIONS
+
+texlogsieve does not try to do anything smart about error messages (at least
+for now); if there is an error, you probably want to take a look directly
+at the log file anyway.
+
+Since it needs to know what messages to expect, texlogsieve is currently
+geared towards LaTeX; I have no idea how it would work with ConTeXt or plain
+TeX. Still, adding support to them should not be too difficult.
+
+.SH SEE ALSO
+
+The pdf documentation (in TeXLive, try \fI\,texdoc texlogsieve\/\fR).
+
+If you want to know more about the TeX log file and the workings of the
+program, check the initial comments in the code.
+
+.SH BUGS AND DEVELOPMENT
+
+.UR https://gitlab.com/lago/texlogsieve
+.UE
+
+.SH COPYRIGHT
+
+Copyright \[co] 2021 Nelson Lago <lago@ime.usp.br>
+.br
+License GPLv3+: GNU GPL version 3 or later
+.UR https://gnu.org/licenses/gpl.html
+.UE .
+
+This is free software: you are free to change and redistribute it. \
+There is NO WARRANTY, to the extent permitted by law.
diff --git a/support/texlogsieve/texlogsieve.pdf b/support/texlogsieve/texlogsieve.pdf
new file mode 100644
index 0000000000..80c47a3037
--- /dev/null
+++ b/support/texlogsieve/texlogsieve.pdf
Binary files differ
diff --git a/support/texlogsieve/texlogsieve.tex b/support/texlogsieve/texlogsieve.tex
new file mode 100644
index 0000000000..4d29abf8cc
--- /dev/null
+++ b/support/texlogsieve/texlogsieve.tex
@@ -0,0 +1,312 @@
+% texlogsieve - filter and summarize LaTeX log files
+%
+% Copyright (C) 2021 Nelson Lago <lago@ime.usp.br>
+%
+% This program is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program. If not, see <https://www.gnu.org/licenses/>.
+%
+% Code etc: https://gitlab.com/lago/texlogsieve
+
+\documentclass{ltxdoc}
+
+\usepackage[hyperref,svgnames,x11names,table]{xcolor}
+\usepackage{url}
+\urlstyle{sf}
+\usepackage{hyperref}
+\hypersetup{
+ colorlinks=true,
+ citecolor=DarkGreen,
+ linkcolor=NavyBlue,
+ urlcolor=DarkRed,
+ filecolor=green,
+ anchorcolor=black,
+}
+
+\usepackage{libertinus}
+\usepackage[scale=.85]{sourcecodepro}
+
+\RecordChanges
+
+\changes{v1.0.0-beta-1}{2021/12/16}{first public prerelease}
+
+\begin{document}
+
+\title{\textsf{texlogsieve}:\thanks{This document
+corresponds to \textsf{texlogsieve}~1.0.0-beta-1,
+dated~2021-12-16.}\\[.3\baselineskip]
+{\normalsize(yet another program to)\\[-.6\baselineskip]}
+{\large filter and summarize \LaTeX\ log files}
+}
+
+\author{
+Nelson Lago\\
+\texttt{lago@ime.usp.br}\\
+~\\
+\url{https://gitlab.com/lago/texlogsieve}
+}
+
+\maketitle
+
+\begin{abstract}
+
+\texttt{texlogsieve} reads a \LaTeX\ log file (or the standard input if
+no file is specified), filters out less relevant messages, and displays
+a summary report. Highlights:
+
+\begin{itemize}
+ \item Two reports: the most important messages from the log file
+ followed by a summary of repeated messages, undefined
+ references etc.;
+ \item The program goes to great lengths to correctly handle \TeX\ line
+ wrapping and does a much better job at that than existing tools;
+ \item Multiline messages are treated as a single entity;
+ \item Several options to control which messages should be filtered out;
+ \item No messages are accidentally removed;
+ \item The summary report is currently simple, but useful.
+\end{itemize}
+
+\end{abstract}
+
+\section{Introduction}
+
+The \LaTeX\ log file is very verbose, which is useful when debugging but
+a hindrance during document preparation, as warnings such as ``missing
+character'', ``undefined reference'', and others become buried among lots
+of less relevant messages. This program filters out such less relevant
+messages and outputs the rest, together with a final summary for the
+specially important ones. It is a \texttt{texlua} script, similar in
+spirit to tools such as \texttt{texfot}, \texttt{texloganalyser},
+\texttt{rubber-info}, \texttt{textlog\_extract}, \texttt{texlogparser},
+and others. Note that it does not try to do anything smart about error
+messages (at least for now); if there is an error, you probably want to
+take a look directly at the log file anyway.
+
+\texttt{texlogsieve} \textbf{must} be run from the same directory as
+\verb/[pdf|lua|xe]latex/, because it searches for the files used during
+compilation (packages loaded from the current directory, files included
+with \verb|\input| etc.).
+
+\pagebreak[1]
+The defaults are reasonable; hopefully, you can just do
+
+\begin{quote}
+\verb/[pdf|lua|xe]latex myfile.tex | texlogsieve/
+\end{quote}
+
+and be satisfied with the result.
+
+Since it needs to know what messages to expect, \texttt{texlogsieve} is
+currently geared towards \LaTeX; I have no idea how it would work with
+Con\TeX{}t or plain \TeX. Still, adding support to them should not be
+too difficult.
+
+If you want to know more about the \TeX\ log file and the workings of the
+program, check the initial comments in the code.
+
+\section{Unwrapping long lines}
+
+\TeX\ wraps (breaks) lines longer than \texttt{max\_print\_line} (by
+default, 79 characters). Most tools detect lines that are exactly 79
+characters long and treat the next line as a continuation, but that fails
+in quite a few cases (check the comments in the \texttt{texlogsieve} code
+for a discussion on that). So, if at all possible, it is a very good idea
+to set \texttt{max\_print\_line} to a really large value (such as 100,000),
+effectively disabling line wrapping. It was useful in the 1980s, but not
+anymore (your terminal or editor wraps automatically).
+
+Still, \texttt{texlogsieve} goes to great lengths to correctly handle
+\TeX{} line wrapping and does a pretty good job at that. It understands
+the \texttt{max\_print\_line} \TeX{} configuration variable and reads its
+value from the same places as \TeX. Setting \texttt{max\_print\_line} to
+a value larger than 9999 makes \texttt{texlogsieve} ignore line wrapping.
+
+\section{Options}
+
+\begin{description}
+\item[\texttt{-\/-page-delay}, \texttt{-\/-no-page-delay}]~\\
+Enable/disable grouping messages by page before display. When enabled, messages
+are only output after the current page is finished (shipout). The advantage is
+that the page number is included in the message (default enabled).
+\end{description}
+
+\begin{description}
+\item[\texttt{-\/-summary}, \texttt{-\/-no-summary}]~\\
+Enable/disable final summary (default enabled).
+\end{description}
+
+\begin{description}
+\item[\texttt{-\/-only-summary}]~\\
+No messages, show only the final summary (default disabled).
+\end{description}
+
+\begin{description}
+\item[\texttt{-\/-shipouts}, \texttt{-\/-no-shipouts}]~\\
+Enable/disable reporting shipouts (default disabled with page-delay, enabled
+with no-page-delay).
+\end{description}
+
+\begin{description}
+\item[\texttt{-\/-repetitions}, \texttt{-\/-no-repetitions}]~\\
+Allow/prevent repeated messages (default disabled, i.e., repeated messages
+are supressed).
+\end{description}
+
+\begin{description}
+\item[\texttt{-\/-heartbeat}, \texttt{-\/-no-heartbeat}]~\\
+Enable/disable progress gauge in page-delay mode (default enabled).
+\end{description}
+
+\begin{description}
+\item[\texttt{-l LEVEL}, \texttt{-\/-minlevel=LEVEL}]~\\
+Filter out messages with severity level lower than \texttt{LEVEL}. Valid
+levels are \texttt{DEBUG} (no filtering), \texttt{INFO}, \texttt{WARNING},
+\texttt{CRITICAL}, and \texttt{UNKNOWN} (default \texttt{WARNING}).
+\end{description}
+
+\begin{description}
+\item[\texttt{-u}, \texttt{-\/-unwrap-only}]~\\
+Do not filter messages and do not output the summary, only unwrap long,
+wrapped lines. The output should be very similar (but not equal) to the
+input file, but with wrapped lines reconstructed. This activates \texttt{-l
+debug}, \texttt{-\/-no-summary}, \texttt{-\/-no-page-delay},
+\texttt{-\/-repetitions}, and \texttt{-\/-shipouts}, and also supresses the
+verbose ``open/close file'' and ``shipout'' messages, simulating instead
+the \TeX{} format, with parens and square brackets. This is useful if you
+prefer the reports generated by some other tool but want to benefit from
+texlogsieve's line unwrapping algorithm; the output generated by this option
+should be parseable by other tools (but you probably need to coerce the other
+tool not to try to unwrap lines).
+\end{description}
+
+\begin{description}
+\item[\texttt{-\/-silence-package=PKGNAME}]~\\
+Filter out messages that can be identified as coming from the given package.
+Use this option multiple times to suppress messages from several different
+packages.
+\end{description}
+
+\begin{description}
+\item[\texttt{-\/-silence-string=EXCERPT OF UNWANTED MESSAGE}]~\\
+Filter out messages that contain the given string (you only need to provide
+part of the message text for the whole message to be suppressed). Use this
+option multiple times to suppress several different messages. The string
+should be a single line, but that is not a problem for multiline log
+messages: space characters in the provided string match any sequence of
+whitespace characters in the message, including newlines. If needed, you
+may precede the string with ``////'', in which case you can use lua-style
+pattern matching (\url{https://www.lua.org/pil/20.2.html}). Note that the
+string is used verbatim: you need not (and should not) enclose it in quotes
+nor escape special characters such as ``\textbackslash''.
+\end{description}
+
+\begin{description}
+\item[\texttt{-\/-silence-file=FILENAME OR FILE GLOB}]~\\
+Filter out messages that have been generated while the given file was being
+processed. Do \textbf{not} use absolute or relative paths, only filenames.
+Simple file globs, such as ``\texttt{*.cls}'', work as expected. Use this
+option multiple times to suppress messages from several different files.
+\end{description}
+
+\begin{description}
+\item[\texttt{-\/-semisilence-file=FILENAME OR FILE GLOB}]~\\
+Just like the previous option, but non-recursive. This means that messages
+generated while the given file was being processed are excluded, but messages
+generated by some other file that was opened by it are not. For example,
+if ``\texttt{chapters.tex}'' includes (with \textbackslash input) the
+files ``\texttt{chapter1.tex}'' and ``\texttt{chapter2.tex}'', using
+``\texttt{-\/-silence-file=chapters.tex}'' will prevent messages generated
+by any of the three files from being displayed. If, however, you use
+``\texttt{-\/-semisilence-file=chapters.tex}'', messages generated by
+\texttt{chapters.tex} will be suppressed, but messages generated by
+\texttt{chapter1.tex} or \texttt{chapter2.tex} will not.
+\end{description}
+
+\begin{description}
+\item[\texttt{-\/-add-[debug\textbar info\textbar warning]-message=MESSAGE}]~\\
+Add \texttt{MESSAGE} to the list of messages known to the program with the given
+severity level; see Section \ref{unrecognized} below for more information
+about this. Like \texttt{-\/-silence-string}, these should be a single line;
+unlike \texttt{-\/-silence-string}, you need to embed \verb|\n| explicitly
+to indicate line breaks. You may precede the string with ``////'' to use
+lua-style pattern matching, but embedding \verb|\n| to indicate line breaks
+is unavoidable. Use these options multiple times to add many different
+messages.
+\end{description}
+
+\begin{description}
+\item[\texttt{-c CFGFILE}, \texttt{-\/-config-file=CFGFILE}]~\\
+Read options from the given configuration file. Options are exactly the
+same as the long command-line options, but without the preceding ``-\/-''
+characters. Lines starting with a ``\#'' sign are comments. An example
+configuration file:
+
+\begin{quote}
+\begin{verbatim}
+no-page-delay
+# no-page-delay enables shipouts, but we do not want that
+no-shipouts
+silence-string = Hyperreferences in rotated content will be misplaced
+# no need to escape the "\" (or any other) character
+silence-string = Using \overbracket and \underbracket from `mathtools'
+# silence a string using lua pattern matching
+silence-string = ////luaotfload | aux : font no %d+ %(.-%)
+silence-files = *.cls
+\end{verbatim}
+\end{quote}
+\end{description}
+
+\begin{description}
+\item[\texttt{-h}, \texttt{-\/-help}]
+Show concise options description.
+\end{description}
+
+\begin{description}
+\item[\texttt{-\/-version}]
+Print program version.
+\end{description}
+
+\section{Unrecognized Messages}
+\label{unrecognized}
+
+\texttt{texlogsieve} automatically handles messages such as ``Package blah
+Info:\dots'' or ``LaTeX Warning:\dots''. However, many messages do not
+follow this pattern. To do its thing, \texttt{texlogsieve} should know about
+these other messages beforehand. This is important for three reasons:
+
+\begin{enumerate}
+ \item Unknown messages are given maximum priority; if you do not want to
+ see them, you have to use -\/-silence-string;
+ \item If the message has more than one line, each line is treated as an
+ independent message. This means you need to use -\/-silence-string
+ multiple times;
+ \item In some rare cases, the line unwrapping algorithm may fail near an
+ unrecognized message.
+\end{enumerate}
+
+While \texttt{texlogsieve} recognizes quite a few messages out of the box,
+you may run into a message generated by some package that it does not know
+about (you can check for this using \texttt{-l unknown}). If that is the
+case, you can use the \verb/--add-[debug|info|warning]-message/ options to
+add it to the list of messages known to the program.
+
+\section{License}
+
+Copyright © 2021 Nelson Lago \textless lago@ime.usp.br\textgreater\\
+License GPLv3+: GNU GPL version 3 or later
+\url{https://gnu.org/licenses/gpl.html}.\\
+This is free software: you are free to change and redistribute it.\\
+There is NO WARRANTY, to the extent permitted by law.
+
+\PrintChanges
+
+\end{document}
diff --git a/systems/texlive/tlnet/tlpkg/installer/config.guess b/systems/texlive/tlnet/tlpkg/installer/config.guess
index e81d3ae7c2..1105a74983 100755
--- a/systems/texlive/tlnet/tlpkg/installer/config.guess
+++ b/systems/texlive/tlnet/tlpkg/installer/config.guess
@@ -4,7 +4,7 @@
# shellcheck disable=SC2006,SC2268 # see below for rationale
-timestamp='2021-06-03'
+timestamp='2021-11-30'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -437,7 +437,7 @@ case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
# This test works for both compilers.
if test "$CC_FOR_BUILD" != no_compiler_found; then
if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
then
SUN_ARCH=x86_64
@@ -1522,6 +1522,9 @@ EOF
i*86:rdos:*:*)
GUESS=$UNAME_MACHINE-pc-rdos
;;
+ i*86:Fiwix:*:*)
+ GUESS=$UNAME_MACHINE-pc-fiwix
+ ;;
*:AROS:*:*)
GUESS=$UNAME_MACHINE-unknown-aros
;;
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index 11a93ff9d3..83fa21f0c6 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -46,8 +46,8 @@ $mirrors = {
'Korea' => {
'http://ftp.ktug.org/tex-archive/' => 1,
'https://cran.asia/tex/' => 1,
- 'https://ftp.harukasan.org/CTAN/' => 1,
'https://ftp.kaist.ac.kr/pub/tex-archive/' => 1,
+ 'https://mirror.kakao.com/CTAN/' => 1,
'https://mirror.navercorp.com/CTAN/' => 1,
'https://mirror.yongbok.net/ctan/' => 1,
},
@@ -171,6 +171,7 @@ $mirrors = {
'https://ctan.math.ca/tex-archive/' => 1,
'https://ctan.mirror.globo.tech/' => 1,
'https://ctan.mirror.rafal.ca/' => 1,
+ 'https://mirror.csclub.uwaterloo.ca/CTAN/' => 1,
'https://mirror.its.dal.ca/ctan/' => 1,
'https://muug.ca/mirror/ctan/' => 1,
},
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index bdad59e9b0..a11ebde944 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,7 +26,7 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2021
-depend revision/61306
+depend revision/61317
name 00texlive.image
category TLCore
@@ -4497,7 +4497,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 61298
+revision 61308
shortdesc TeX Live standalone installer package
longdesc This package defines the files to go into the installer
longdesc archives (install-tl-unx.tar.gz, install-tl.zip) built by the
@@ -64145,7 +64145,7 @@ catalogue-version 0.3
name cochineal
category Package
-revision 61299
+revision 61309
shortdesc Cochineal fonts with LaTeX support
relocated 1
longdesc Cochineal is a fork from the Crimson fonts (Roman, Italic,
@@ -64163,10 +64163,10 @@ longdesc adding about 2000 additional glyphs, which I could not even
longdesc contemplate. The fonts are provided in OpenType and PostScript
longdesc formats.
execute addMap Cochineal.map
-containersize 2444212
-containerchecksum f340134f06024343e6198a54375f0f3d4072e25ac39572fd20fd67d5b57b71577d2358429f46801a7ce368bb28e7d2134a4adb060e75ed718173d36867fd60cf
-doccontainersize 576832
-doccontainerchecksum e4d3f8c60c8495094acbbd88fe2ccdeca58610c8f96239f641a6b21ac8a767f6635a8e85c2a70826f5f4cc6b217a06f4152011ffe543edb83d2f04ba6cbe40a6
+containersize 2574116
+containerchecksum 8dad7837aaad184ece6f54ee03b39e1e988693d64b2cb31b370e2577b20a10bb2aa14c8575150ae71c218626f3d3f75be2d9a6af59eacb564860406d4abdeb1e
+doccontainersize 576908
+doccontainerchecksum 76dccdc0895a2f69bde1fec39ccc8ef5af68241c4938e49f69d8647f30539b21cedb58629ce136340f4114b78a0c7b1384d17f1e073332d4f0b077090f4f0656
docfiles size=174
RELOC/doc/fonts/cochineal/OFL-FAQ.txt
RELOC/doc/fonts/cochineal/OFL.txt
@@ -64175,10 +64175,11 @@ docfiles size=174
RELOC/doc/fonts/cochineal/cochineal-doc.tex
RELOC/doc/fonts/cochineal/cochineal-otf-doc.pdf
RELOC/doc/fonts/cochineal/cochineal-otf-doc.tex
-runfiles size=4608
- RELOC/fonts/afm/public/cochineal/CochIneal-Roman.afm
+runfiles size=5164
RELOC/fonts/afm/public/cochineal/Cochineal-Bold.afm
RELOC/fonts/afm/public/cochineal/Cochineal-BoldItalic.afm
+ RELOC/fonts/afm/public/cochineal/Cochineal-Italic.afm
+ RELOC/fonts/afm/public/cochineal/Cochineal-Roman.afm
RELOC/fonts/afm/public/cochineal/cochBMI.afm
RELOC/fonts/afm/public/cochineal/cochBRM.afm
RELOC/fonts/afm/public/cochineal/cochMI.afm
@@ -64925,7 +64926,7 @@ runfiles size=4608
catalogue-ctan /fonts/cochineal
catalogue-license ofl lppl1.3
catalogue-topics font font-body font-serif font-multilingual font-greek font-cyrillic font-proportional font-otf font-type1 font-t1enc font-supp
-catalogue-version 1.072
+catalogue-version 1.074
name codeanatomy
category Package
@@ -99446,21 +99447,21 @@ catalogue-topics notes editorial
name easybook
category Package
-revision 61296
+revision 61311
shortdesc Typeset Chinese theses or books
relocated 1
longdesc Easybook is a minimalist style template based on the ctexbook
longdesc book document class.
-containersize 17960
-containerchecksum 16f26c957ffb8246e37a3f8f816f4b2059ba6856457687429a73a1676b73468ba864821e407ae73699c9404227a7749079f227a128c43afdf07dcd24d502c4f0
-doccontainersize 616228
-doccontainerchecksum 60e3baea345f5f14cc5acee2fcc2c7c040dfdf9f5d2cb2eef074627af69373181380dfe7f581f525875cf975c0c29053ec076de63b801ed125f9f437e9d7990b
-docfiles size=168
+containersize 17948
+containerchecksum e42d641269cd76dede440f318bf5a3ee4f07aab4df41e6f334de2b32e21d23361d8e64f15875897a3d940c9e06c7ce9a4679dfa95613f3854431404e19dff13d
+doccontainersize 614840
+doccontainerchecksum 53f9617b4b4f7ab553ea08c5fe7fbc5db89f1171d6db193f9e6fde513c028cd49cd47f40bbd887486c371bb5efb263aa75776ee5405b645691cb801721af1073
+docfiles size=167
RELOC/doc/latex/easybook/README.md details="Readme"
RELOC/doc/latex/easybook/easybook.pdf details="Package documentation" language="zh"
RELOC/doc/latex/easybook/easybook.tex
-srccontainersize 17988
-srccontainerchecksum 5c467bfe9bd1b485f919528bf7dd49b5b748d99f201437d2d53499e34ae175ecb874ab4820533f2c8b4a44ce619f5f09f66ecc6f5948c12884728f0b01532650
+srccontainersize 17980
+srccontainerchecksum 7ffe44df7d79a300cceedf287856f2e2548fe18d325d40d19ef787eb37564a0ba2c57a209156696c3420f84c53c39b8ace30233a0447ad9d1fec00095eef6c8d
srcfiles size=22
RELOC/source/latex/easybook/easybook.dtx
RELOC/source/latex/easybook/easybook.ins
@@ -99473,7 +99474,7 @@ catalogue-contact-repository https://gitee.com/texl3/easybook
catalogue-ctan /macros/latex/contrib/easybook
catalogue-license lppl1.3c
catalogue-topics book-pub class chinese expl3
-catalogue-version 1.41S
+catalogue-version 1.41U
name easyfig
category Package
@@ -132713,7 +132714,7 @@ catalogue-version 1.1
name graphics
category Package
-revision 61041
+revision 61315
catalogue latex-graphics
shortdesc The LaTeX standard graphics bundle
relocated 1
@@ -132724,10 +132725,10 @@ longdesc graphics, graphicx, trig, epsfig, keyval, and lscape.
depend graphics-cfg
depend graphics-def
containersize 15180
-containerchecksum d10447ff0075c8f22dc82d73368306bb5113f38a83883981ea69033c4f26022f5c8bcfbf6a8c05a708b5e6aed53f7046187d3f587c7f59b68b04a926069bf48d
-doccontainersize 2028360
-doccontainerchecksum 995d5ce10eb04b0976b2e6be909384bbc57becb16d9b1edcae1bc005a317a69981727cc3b73234f99324316718ae215f3a4a8803a8af1b455f6b592251f425e4
-docfiles size=669
+containerchecksum 692b47e11cb0f25c3383d64ca8a71bc479da6157002b870e131250caa0539dc48d52409f932ab41cc75c1a9f463524ea3be4f73458bb0fae24059bc9ce828e20
+doccontainersize 2029540
+doccontainerchecksum 91e22a03b32d18e25663fc2d940dea620ded99fb0980bf31d9737591a9e1bc13c2507b6e07275714fa1ac1f181e952cd5e13806a5d01dd6ca953d9b691fdba8d
+docfiles size=659
RELOC/doc/latex/graphics/README.md details="Readme"
RELOC/doc/latex/graphics/cat.eps
RELOC/doc/latex/graphics/changes.txt
@@ -132744,8 +132745,8 @@ docfiles size=669
RELOC/doc/latex/graphics/rotex.pdf
RELOC/doc/latex/graphics/rotex.tex
RELOC/doc/latex/graphics/trig.pdf
-srccontainersize 52372
-srccontainerchecksum f1ac4cd568a3147a2c3dc628ee884fdf4881969044d0ac17d455e973196f78aaa82d836a96763afe98d7834e757512aa73fbb8434906e2fcbcb317a6756bdd2c
+srccontainersize 52412
+srccontainerchecksum d3fe1e52410fb13f764b5f0d63717f37123935642e2d46398e184a0da5e31fbf6b7e40b1381daa404edd76cf51f60d6a77f69f6a5eb40e552b8ef91adc7bb103
srcfiles size=65
RELOC/source/latex/graphics/color.dtx
RELOC/source/latex/graphics/drivers.dtx
@@ -163426,7 +163427,7 @@ catalogue-topics latex3 expl3 macro-supp pre-release
name l3build
category Package
-revision 61260
+revision 61312
shortdesc A testing and building system for (La)TeX
longdesc The build system supports testing and building LaTeX3 code, on
longdesc Linux, Mac OS X and Windows systems. The package offers: A unit
@@ -163438,19 +163439,19 @@ longdesc material released by the LaTeX3 team, and may be updated on a
longdesc different schedule.
depend l3build.ARCH
depend luatex
-containersize 35516
-containerchecksum 6921081cb2c29b71c2970398836a691ba2ebfed7bde7e500a918bbd3896db3c3c4652c5e00bf2a3b31c25391296177be131784c30c4e1b9860796de9c43d8965
-doccontainersize 743660
-doccontainerchecksum 5e03179aeb8ed5d24e78e926e0b647d115c5dca77460a0afab9a13ed652d46652b080dffc53c2cfd516f197b13f88ee072af47996870ec300cd6a8fc27dabe34
-docfiles size=192
+containersize 35536
+containerchecksum 332b834eb718a3e95942c1a293533effa8adf87bd7b0b3ae10b6192d72797dda095766f843ccc72309059c4fd577b1c45530551b95978d4c06a8dd4e1925d6d1
+doccontainersize 743580
+doccontainerchecksum 0e060167aaf50d10e3e68248b6beaf89bbeedac2504ea8628920889a64d1a9f52dbbf4b96ab319a088953f71f4dfe7e50812bc7212ce496d7045ec689f431fce
+docfiles size=193
texmf-dist/doc/latex/l3build/CHANGELOG.md
texmf-dist/doc/latex/l3build/CONTRIBUTING.md
texmf-dist/doc/latex/l3build/README.md details="Readme"
texmf-dist/doc/latex/l3build/l3build.pdf details="Package documentation"
texmf-dist/doc/man/man1/l3build.1
texmf-dist/doc/man/man1/l3build.man1.pdf
-srccontainersize 30748
-srccontainerchecksum 7136953624808ed8903bbe2a49e844f6d42f008191bb47619d516f51dfd9c189fd5b09289b7b8d6f1dbf0896e2a01c27301dd68d74c8accba362f2e19cab3420
+srccontainersize 30760
+srccontainerchecksum 5360b179f321bd517689bec2290ee126d1e25449cffdd72bfc918b2df7616b2261d901cce99dc36624cb1f594f80d012a0e0b7986f4b6394841e63250f112bf5
srcfiles size=29
texmf-dist/source/latex/l3build/l3build.dtx
texmf-dist/source/latex/l3build/l3build.ins
@@ -169208,17 +169209,17 @@ catalogue-topics version-control doc-mgmt
name latexindent
category Package
-revision 61075
+revision 61316
shortdesc Indent a LaTeX document, highlighting the programming structure
longdesc The Perl script (also available as a windows executable)
longdesc processes a LaTeX file, indenting parts so as to highlight the
longdesc structure for the reader.
depend latexindent.ARCH
-containersize 67996
-containerchecksum cc4df7bd7cfea01d0eb584a4f430bdb2574f5bc8f07b07778205b5031e3dd00bbe8e38ff33e2f7aeb31618ded325269f11e26936b517217f89a41a3228800e68
-doccontainersize 1128296
-doccontainerchecksum 64c0fa6a1823af41dd5872dfcaefe61d67d59f561d4bbb26a5dc8c81f8945ee238c072adcc6b300400d4f55e911aafcb23c4e8528df2cb0d5f9a3ab940a49c81
-docfiles size=386
+containersize 68136
+containerchecksum d116d2848cafb3d797f33cd692da2e1087db6386bf916fb181083a32353820681ec9256a252819014e2f65912f3cb5c2c6aa79eab7f6a03a4db5025741f20155
+doccontainersize 1131368
+doccontainerchecksum d8c45b1b65020f167f41a9040c7190619caa6cfe214a86c314373fea4d2ac7ce6a332626703fc6583b02e3a3d70ec767be6fbb848ba4d8f7314be3098ade8c30
+docfiles size=388
texmf-dist/doc/support/latexindent/README details="Readme"
texmf-dist/doc/support/latexindent/appendices.tex
texmf-dist/doc/support/latexindent/cmhlistings.tex
@@ -169304,7 +169305,7 @@ catalogue-contact-repository https://github.com/cmhughes/latexindent.pl
catalogue-ctan /support/latexindent
catalogue-license gpl3
catalogue-topics code-layout
-catalogue-version 3.13.2
+catalogue-version 3.13.3
name latexindent.aarch64-linux
category Package
@@ -169398,10 +169399,10 @@ binfiles arch=universal-darwin size=1
name latexindent.win32
category Package
-revision 61075
+revision 61316
shortdesc win32 files of latexindent
-containersize 4061192
-containerchecksum b31ff86420f3abdcd8e9c48cc47ab53ca2d11f8e3177237994fd28e49e5d56f0189c2248c8e87ac36562d225cba64fba97f1c4c442841df03039d74bd206c8be
+containersize 4061768
+containerchecksum 59fb336ad935aef32c7efdc06f0dd6743a0f3c079dfcb330375c7c6ac82471954e2023600093bed03cf0d7a6984b28b431c4b685cfc54bdb3ac22cf6f1a73bf5
binfiles arch=win32 size=2396
bin/win32/latexindent.exe
@@ -185889,7 +185890,7 @@ catalogue-version 0.8
name lua-widow-control
category Package
-revision 61174
+revision 61317
shortdesc Automatically remove widows and orphans from any document
relocated 1
longdesc Unmodified TeX has very few ways of preventing widows and
@@ -185909,15 +185910,15 @@ longdesc formats. All that is required is to load the package at the
longdesc start of your document. To load: Plain LuaTeX: \input
longdesc lua-widow-control LuaLaTeX: \usepackage{lua-widow-control}
longdesc ConTeXt (LMTX): \usemodule[lua-widow-control]
-containersize 6488
-containerchecksum 8a848141171f033b09b65dd4dc63973f026a37dcb24ecc0f1a0e48d96d31d22620d8d2fedffcf1e39bb3cc00cfd3fedb54063c46c8af4dade3b8dcdc65e1474d
-doccontainersize 288216
-doccontainerchecksum bebc8cada5f5a371e41912c49ce53d1c1bc65ce731b0d307c3f024ec9dbf2a002c8d754db283b4ccdd19ad20dbd3c637fa48f93cdc07a597f8e1dc189d5cb0fc
+containersize 6512
+containerchecksum 38fb32d72b52507e64d908f43cdb22321d70344ff96b7cda29214fdc13fb0f5012ef24785825d792590a9c712ce0059f062e892410c57e4bb7432c5399cb0885
+doccontainersize 288532
+doccontainerchecksum 033c6ac77ca441f042578f13d0a6df1421d6e9911d4c5b7cac93c2ac5a00e2ec75b89c16b2f32bd455f2dcd41bd931fc8c14ee083d9c568f74c9c30192dc4f8f
docfiles size=78
RELOC/doc/luatex/lua-widow-control/README.md details="Readme"
RELOC/doc/luatex/lua-widow-control/lua-widow-control.pdf details="Package documentation"
-srccontainersize 11796
-srccontainerchecksum 09dd9579833f3be526453d7b55026dc5d3abbb8c6c80a7d2461cdb3f438450b4b6e96f78ca3a5d796fe14be94e2d1aa53c0367afac14b9da155169b481272940
+srccontainersize 11832
+srccontainerchecksum ce31763c29f920cb39b0a73e66e54168049cc88c53094a5d1e69f5c0c4850af13822ecc32ad982dd5ee1f51ad46e391b370127378cbca10903a4ac7295196465
srcfiles size=11
RELOC/source/luatex/lua-widow-control/lwc-documentation.bib
RELOC/source/luatex/lua-widow-control/lwc-documentation.mkxl
@@ -185934,7 +185935,7 @@ catalogue-contact-support https://github.com/gucci-on-fleek/lua-widow-control/di
catalogue-ctan /macros/luatex/generic/lua-widow-control
catalogue-license other-free cc-by-sa-4
catalogue-topics layout luatex
-catalogue-version 1.1.1
+catalogue-version 1.1.2
name luabibentry
category Package
@@ -214498,7 +214499,7 @@ catalogue-version 2.0
name newcomputermodern
category Package
-revision 61257
+revision 61310
shortdesc Computer Modern fonts including matching non-latin alphabets
relocated 1
longdesc This is a new assembly of Computer Modern fonts including
@@ -214507,21 +214508,21 @@ longdesc non-Latin based languages and Mathematics, all compatible in
longdesc style to CM fonts. In addition to the Regular weight of
longdesc Computer Modern, it provides a Book weight for heavier
longdesc printing.
-containersize 7441172
-containerchecksum 2ff5b6532f60c0e89383e7c0a0925df804de989c7e2a037bb5bb5c4f5d1f5fdf6afb86b8e1c30dff55d2580702098668c193df04fcff44a0ea9d0ed0ae25fb5a
-doccontainersize 1677452
-doccontainerchecksum ed2d1474eece99f2c453009f55ccac4995e68bcd2880ece525dd53772bd60bf0fe169de754c9e6219a2c359c8351ff87ce40d34ad6f4cef350c3d8edf1e5e80c
-docfiles size=426
+containersize 7445240
+containerchecksum 98563a172632bf69930afcee577c5d4807677d0f700483818a02bc53f79dd142bb20065d1e10f982ec395270dd13335855ef95d521514263056473d9481e8aaf
+doccontainersize 1669088
+doccontainerchecksum e67e678f37108d9029ddc3a5daac567d1e9dbdc8869e1806361512cedf3478b0de64a7d091a71f595b49cdcd8c2c7e85d57ce47f9f9c6828518333446c1f30e9
+docfiles size=423
RELOC/doc/fonts/newcomputermodern/README details="Readme"
- RELOC/doc/fonts/newcomputermodern/newcm-doc.pdf
+ RELOC/doc/fonts/newcomputermodern/newcm-doc.pdf details="Package documentation"
RELOC/doc/fonts/newcomputermodern/newcm-doc.tex
RELOC/doc/fonts/newcomputermodern/newcm-unimath-symbols.ltx
RELOC/doc/fonts/newcomputermodern/newcm-unimath-symbols.pdf details="Math coverage and symbol comparison"
RELOC/doc/fonts/newcomputermodern/newcomputermodern-sample.pdf details="Font samples"
RELOC/doc/fonts/newcomputermodern/newcomputermodern-sample.tex
-srccontainersize 15135460
-srccontainerchecksum 188998dc8b7b7a3908f63818aea3759b58f855c710e3cdbca9bcdcce9badea2dc14d05a2ed09d6206e755eb4a922cdd69fede37fbb14ab442b8b8e34dfe80a2f
-srcfiles size=29800
+srccontainersize 15165200
+srccontainerchecksum 3da5168bc378e569742fc66d7264afda91f141c573ada94354e52fad420a8c0643fcf3609f514c43b88a01a32c46301c9df12a209a1ca975ac3ba2c2ada97cd9
+srcfiles size=29975
RELOC/source/fonts/newcomputermodern/NewCM08-Book.sfd
RELOC/source/fonts/newcomputermodern/NewCM08-BookItalic.sfd
RELOC/source/fonts/newcomputermodern/NewCM08-Italic.sfd
@@ -214556,7 +214557,7 @@ srcfiles size=29800
RELOC/source/fonts/newcomputermodern/NewCMUncial10-Bold.sfd
RELOC/source/fonts/newcomputermodern/NewCMUncial10-Book.sfd
RELOC/source/fonts/newcomputermodern/NewCMUncial10-Regular.sfd
-runfiles size=5132
+runfiles size=5140
RELOC/fonts/opentype/public/newcomputermodern/NewCM08-Book.otf
RELOC/fonts/opentype/public/newcomputermodern/NewCM08-BookItalic.otf
RELOC/fonts/opentype/public/newcomputermodern/NewCM08-Italic.otf
@@ -214601,8 +214602,8 @@ runfiles size=5132
catalogue-alias newcm
catalogue-ctan /fonts/newcomputermodern
catalogue-license gfl
-catalogue-topics font font-cm font-body font-proportional font-mono font-serif font-sans font-multilingual font-greek font-cyrillic font-hebrew font-maths font-otf cherokee font-supp
-catalogue-version 4.0
+catalogue-topics font font-archaic font-cm font-coptic font-body font-proportional font-mono font-serif font-sans font-multilingual font-greek font-cyrillic font-hebrew font-maths font-medieval font-otf cherokee font-supp
+catalogue-version 4.1
name newenviron
category Package
@@ -257431,7 +257432,7 @@ catalogue-version 1.3i
name ragged2e
category Package
-revision 57638
+revision 61313
shortdesc Alternative versions of "ragged"-type commands
relocated 1
longdesc The package defines new commands \Centering, \RaggedLeft, and
@@ -257439,15 +257440,15 @@ longdesc \RaggedRight and new environments Center, FlushLeft, and
longdesc FlushRight, which set ragged text and are easily configurable
longdesc to allow hyphenation (the corresponding commands in LaTeX, all
longdesc of whose names are lower-case, prevent hyphenation altogether).
-containersize 2924
-containerchecksum 716cc6067273735be2f4c9922b043441076d37f7d08fac0603564c9cb8f082f5dd91bceb336ecb3ad69e6d9a88367067c71fd08678c1ff606c21109daa66a140
-doccontainersize 664008
-doccontainerchecksum ecc36350f01e86f63ca54a2ae5ca1ccd17851756731af3997d9b172753673f39c05e82d9b3f736896b2be1c971bdd0c700678a6d44aec2226a7f57bcdc085e51
-docfiles size=164
+containersize 2936
+containerchecksum cc443dbb4280310eed2e4cab7a5801df47db4d5f920c19d74cddd6de35d9206cbcd1afe2fe42812c423f6c1ac45f9d220f0b265af79a2c3c853a58f90b4b63e8
+doccontainersize 676844
+doccontainerchecksum 0b0c412d7ba7d55e7bf2d64c98c2d4da50faae7a6bbc4e2d53b144ca7ebd91e5cde7d21a948b427184b773ac7f9fd3b32f7c8b6700f353ab80130de46c1b0306
+docfiles size=171
RELOC/doc/latex/ragged2e/README.md details="Readme"
RELOC/doc/latex/ragged2e/ragged2e.pdf details="Package documentation"
-srccontainersize 11392
-srccontainerchecksum 2a9a755a3f3978c3e9077e3c36eb642e18895e3bd5fce44af71d2fb094f1a46c3e61cce21940eba5b6d7a3d51aadf6229fd9e0941610e9bc42dfdeb67ee49514
+srccontainersize 11492
+srccontainerchecksum fc316bd0aa7bfd137079ddbcd0cbb0bc9392a85b885ce7568be364364ae63ea6f0a6e84f8547ef8e7e9e067e06820de68374667dd83a07f6cb3dab95f174136a
srcfiles size=13
RELOC/source/latex/ragged2e/ragged2e.dtx
RELOC/source/latex/ragged2e/ragged2e.ins
@@ -257459,7 +257460,7 @@ catalogue-contact-repository https://gitlab.com/TeXhackse/ragged2e
catalogue-ctan /macros/latex/contrib/ragged2e
catalogue-license lppl1.3c
catalogue-topics layout parshape
-catalogue-version 3.0
+catalogue-version 3.1
name raleway
category Package
@@ -275749,17 +275750,17 @@ catalogue-version 2.4
name spbmark
category Package
-revision 61057
+revision 61314
shortdesc Customize superscripts and subscripts
relocated 1
longdesc This package provides three commands \super, \sub and \supersub
longdesc to improve the layout of superscripts and subscripts which can
longdesc be adjusted with respect to relative position and format, and
longdesc can be used in text and math mode.
-containersize 2504
-containerchecksum c168fd5192c267a506ea252cf7b62198768634798fa47a0896410f4b1c895b5e548217a5c699cce6c4b594816b45b50fbdb07f97ec0c6514577d88b3e7ed6bf4
-doccontainersize 69112
-doccontainerchecksum 8cad70abde3d3b67a9e2375ac4eab449a5f4032dc5149c44d8d3ccd634f56acfff6aa6e9e907a48882387e0876030e616c282111aba37d190c26ca1cbbb7d93a
+containersize 2876
+containerchecksum db1a3910b9dee4be43424193637c753af2c4177c8483702d666ae16845db94b2c4bd970ca7b9e1b5aa5e46e4d0e5e835d41427677766c3001dfc9f514d6d1bbb
+doccontainersize 70396
+doccontainerchecksum d5cbd2250c841f9fbeff7fd4d756b0a82d1f26cc6dff21305206b8185447225c3762a90efb2cdda2a8df38be442c9e30d56c674cbbf3e9083f053e75ea347ac0
docfiles size=21
RELOC/doc/latex/spbmark/README.md details="Readme"
RELOC/doc/latex/spbmark/spbmark.pdf details="Package documentation"
@@ -275770,7 +275771,7 @@ catalogue-contact-repository https://github.com/texl3/spbmark
catalogue-ctan /macros/latex/contrib/spbmark
catalogue-license cc-by-4
catalogue-topics subsup-pos expl3
-catalogue-version 1.1J
+catalogue-version 1.2
name spectral
category Package
@@ -297577,7 +297578,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 61298
+revision 61308
shortdesc TeX Live infrastructure programs
longdesc Includes install-tl, tl-portable, rungs, etc.; not needed for
longdesc tlmgr to run but still ours. Not included in tlcritical.
@@ -297585,10 +297586,10 @@ depend texlive-scripts.ARCH
depend texlive.infra
execute addMap mathpple.map
postaction shortcut type=menu name="TeX Live command-line" cmd=TEXDIR/tlpkg/installer/tl-cmd.bat
-containersize 108264
-containerchecksum 27442d87b9c6f0af56c8ab26d1dfce1b38b3ea1782857e83d4421325a0264518fd8fe1d17ad4d8d84ff5818cab0464b5c95d094468c7c8c2cecca83eb1c4fc62
+containersize 108288
+containerchecksum c5359ecd8efe0fb6eb514494b8847acd31b4676bedf550e3329419f3b566c312e88be2d75925a080c4276e721e01540fdd77c5fb92476f304a2c48114c40af15
doccontainersize 402028
-doccontainerchecksum 0eaa95f62cef3488145c84f8fc2e6200de6f7c5c8c1f89acae17ca4cfa1a07b5987548e7bf38acc06a9fd71f06ca0820f10f0094742b68227f6adc68f6439334
+doccontainerchecksum 82334e818d5d007a617688cac75db7256cc62fb84e5d7832a299cfc0daebff883d57df8ee5a605d83007a6f51fb5e32fb7e0c776199d2b80bc2c6b4f0caa026d
docfiles size=499
doc.html
texmf-dist/doc/man/man1/fmtutil-sys.1
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index 0d276ae74e..b1d6eb1c89 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-74e7cb252aca62290fbea76b206d81b7 texlive.tlpdb
+63f6858d09877dd7f61fd611b104af1b texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index 500c492729..b5d56d6b96 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-3a3c5d8c9e9bf66a150bca173467db00cb7c3240593a5cce013f1ff971268529e10af7daa9c2d655d7dc29c9c271f2080be1cee595526b76d8833e60ce8c40e8 texlive.tlpdb
+6c5639e41a09cb31e12fbcb899ff526825738479393fe60470fdad35aca9b4e680adc94f9de955f826fe925fbecc54aaadb6e49b2f70e0be6a5ac1a0f3e99179 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index cf4daa3402..487a5ca0a8 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
@@ -1,10 +1,10 @@
-----BEGIN PGP SIGNATURE-----
-iQEcBAEBCgAGBQJhuTyhAAoJEEzhh34ZQ4xwMwwH/0i1WMtILJ10VYVhDKb3LxwZ
-7mJO4SIKQkY1qVJiwtzq8m2noXd8kguIvks3a34Z42Egv6lv3/MIwpTuWa0NDoDv
-OilWpgGtqHj98eJio8GKzuYYqd9wUk5qB+ssIqDgZcBENxwFumiiIyyu4CzeXfXD
-yjkRignhXHXa8cLfJFZZUQwG6Trnt0hK8KU/lPaYGYo4KbrP3FfxLfEDaoLZk3bi
-UfSLloc3BUVm0AGHrm87S4f/vOTqMECI3jNCskwSgIsWmGBbQzK3dUFGMlVOz8oD
-6LEOAygLX1Yn7DwZ/xTbGnKBAvTG0kf6vvq4W84iOetiKStm8lXe7mnyI5CpqgI=
-=EchM
+iQEcBAEBCgAGBQJhuo5MAAoJEEzhh34ZQ4xwMb0H+gOGUXjkfxbqXmLSxTcTeDlh
+UBd6KhOxhseCkZDK0rzc0xHaprA7QPi4j0xCyizn78DgxqF8Bnnuu2ZmRWJTVT7I
+kfZZWpcfjQSj2zGue2qizQoNrMrFAcG1ph9ecu/3GHihEuTlZlEeHnwDes39hDcf
+WaEUQXiv3fS7UabzDTk7ALwaJpdHiOiWzB/IIM+TcpRs5upH63pRX4JsYX+c2nCi
+qP1H8S9Tphm7vnv418+Z5aTCsIfnYC9MMo4HvUxqyhPgMsEV1MGRXHFkxhvJi/y5
+VcCnI+aV+BFgfEo+XFiubO5qCq67qEIeFRZH6b+iK+CG5fuhu8sGt5Ex8zeZEYQ=
+=ArxW
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index c081e1c23e..a833049f56 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/files.csv.lzma b/systems/win32/miktex/tm/packages/files.csv.lzma
index 3b987a8960..b322c66e96 100644
--- a/systems/win32/miktex/tm/packages/files.csv.lzma
+++ b/systems/win32/miktex/tm/packages/files.csv.lzma
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/next/pr.ini b/systems/win32/miktex/tm/packages/next/pr.ini
index 0bdf7b1057..1cc86434c2 100644
--- a/systems/win32/miktex/tm/packages/next/pr.ini
+++ b/systems/win32/miktex/tm/packages/next/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1639603096
+date=1639689420
lastupd=miktex-arctrl-bin-2.9 miktex-arctrl-bin-x64-2.9 miktex-asymptote-bin-2.9 miktex-asymptote-bin-x64-2.9 miktex-autosp-bin-2.9 miktex-autosp-bin-x64-2.9 miktex-axohelp-bin-2.9 miktex-axohelp-bin-x64-2.9 miktex-bibarts-bin-2.9 miktex-bibarts-bin-x64-2.9 miktex-bibtex-bin-2.9 miktex-bibtex-bin-x64-2.9 miktex-bibtex8bit-bin-2.9 miktex-bibtex8bit-bin-x64-2.9 miktex-bzip2-bin-2.9 miktex-bzip2-bin-x64-2.9 miktex-cairo-bin-2.9 miktex-cairo-bin-x64-2.9 miktex-chktex-bin-2.9 miktex-chktex-bin-x64-2.9
-lstdigest=3f22da5c63c2b9239a05aa941bda5c3e
+lstdigest=c63177034802ebef1c8e53a3fd21b25c
numpkg=5142
relstate=next
-version=8019
+version=8020
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: wSomLbNI8g+DPbeFSmgCcLkB19YDCUtUG3eedpTvFAPjv+DWJaUWMSsRyGa67PNbdBXQ5SE/N/j5sh7pWkNXi/XvAJR8ErgY77yTTG3GK82aesi/oCVDQIyLDAtnzCWcfQU5vsvEgFFZLk1swIO0pXiyzZZZsUvzles4aifap3rvb7VMMRfNDuoAbyiLIdRWSI1dl0E+0TfArE4SSTfzCVYpbkA9AdHnTXRpbPnpAuDmCadNoyxmTGy8qkyeXxpOOrEBLaWqA5VVa2lm8LbtGdyWSvDhp2ud14Grp2rmg8d15IociLLh7w9/XZ3MU8dfhLKi7lCrevc0RYBn60owPw==
+;;;; signature/miktex: FXvxDQJGHVOJHy+g5HfFZlNWQxouGm6kpev3u2rQvU62SqzlBr5oK//StmOGQBEtjU9vPJiluzsZABP26GCgDYtfoX7DnHuoO8IAIsA1pSeWhJ9QNfrZY/RTlOlyqYCBShTJ1pHTy0zWTvwnoflOk66LfliIin3bKrZVOSp8NV5TMQ9Obye+lKI9YKzT0o/WUsra4GSfaRtqf4xerAKUwkrhe8dY4o/BlY+rbruqCgQpfnCrCkJMX/eZOjK4kVnCMu7c519zvt7Ghor9FvsnhVxIQnwKy3wwAVTuX0kgJd421IMBFEBNgmLXy4jzlD/QvMzTrgNawEW9sx4f7BVDww==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/systems/win32/miktex/tm/packages/pr.ini b/systems/win32/miktex/tm/packages/pr.ini
index c6d06eeef5..5d9ca1239f 100644
--- a/systems/win32/miktex/tm/packages/pr.ini
+++ b/systems/win32/miktex/tm/packages/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1639602682
+date=1639689072
lastupd=arabi arabi__source arara arara__doc arara__source biblatex-publist biblatex-publist__doc biblatex-publist__source cochineal cochineal__doc datestamp datestamp__doc datestamp__source easybook easybook__doc easybook__source graphics graphics__doc graphics__source l3backend
-lstdigest=e715d95ed997cd3b7750709195cd0e40
+lstdigest=918c66a483784fc763e0c33172970419
numpkg=5140
relstate=stable
-version=8019
+version=8020
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: Fk1Uuoq/EhfJVZ4McFPAKfaw335rfEVbDkRoHzv3VhrHMiWbHlZxLgJX6GTaR2c0tzA8UVVZuQZCgzskJCCrQ1yw37laiavADidRsqhXj1RKX/J6TUvN/OD+4BjjvZxwlCCScff/BOkJ5E/hB/DwBin3Y0tueSviPv02SkH409jlrMkzt0+UQwWfK7UpAjS/mXS9BiY69CdBTQB2kD13cv5G9BFWsHII/lbVWHP0OebsoRxi86NkPIsAVUUJRchfRYzY0PgOpPPGtS0WA3Ra+licaSEHJDOKaHqUSFHttmGH/5g9WJMgfvmpcRk6Y83TWp5trw7bviJMwCyEZY9b5g==
+;;;; signature/miktex: A6aDqb54l11m3FT+NYTi03bVYrdJAT0V83lAVSNTLyQzGzUOKMhxXnIMAx47S/wYPr8Ps2I+0Aw70Q4IltGfYGLEY6FETMYUX2sYhslUHFwRIJM0R7tfnqRVimexTvVj/K49Dk+nv3fEkrYiHMtRi+weP4OFkGmv6uUluLgFZJJlqkOg8Gc7v2cTseXvOuIjbKo/5aBP2iUoOiFrmsafXvnLVEWX/R9B4vYoG7cQszrNvGDmwp58MGOEJtNT/Pa9RL5DJZcgW50ROmHBbacWchLQZgZq9vLVftoWOxnVibaQuiv2WgeLiyHiLzHZStkOl5SPpeN4ZOMhizvu6gA+yg==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/timestamp b/timestamp
index 747587aa02..ca928cf13e 100644
--- a/timestamp
+++ b/timestamp
@@ -2,4 +2,4 @@
# The source CTAN of this site's material:
dante.ctan.org
# The year-month-day-hour-minute of this site's material:
-2021-12-16-02-02
+2021-12-17-02-02