summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-03-12 03:00:45 +0000
committerNorbert Preining <norbert@preining.info>2022-03-12 03:00:45 +0000
commit0c73359c915c22297090c6c23c5ac23a8ec9603e (patch)
tree71530d469eba822bbed05346a76335bd276a602d
parentdc086771e418d7c66a541d2831b468375c5f7090 (diff)
CTAN sync 202203120300
-rw-r--r--FILES.byname916
-rw-r--r--FILES.byname.gzbin2435700 -> 2435695 bytes
-rw-r--r--FILES.last07days710
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/README.md47
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/VERSION2
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamercolorthemeArguelles.sty2
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerfontthemeArguelles.sty2
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerinnerthemeArguelles.sty2
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerouterthemeArguelles.sty2
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerthemeArguelles.sty4
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.gifbin0 -> 102975 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.pdf (renamed from macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo.pdf)bin606215 -> 611808 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.tex (renamed from macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo.tex)9
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-1.jpgbin22662 -> 0 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-2.jpgbin43382 -> 0 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-3.jpgbin23427 -> 0 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-4.jpgbin75463 -> 0 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-5.jpgbin14661 -> 0 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-6.jpgbin21536 -> 0 bytes
-rw-r--r--macros/latex/contrib/create-theorem/create-theorem-doc.pdfbin117097 -> 117260 bytes
-rw-r--r--macros/latex/contrib/create-theorem/create-theorem-doc.tex6
-rw-r--r--macros/latex/contrib/create-theorem/create-theorem.sty91
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx88
-rw-r--r--macros/latex/contrib/easybook/easybook.pdfbin592859 -> 591676 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.tex117
-rw-r--r--macros/latex/contrib/jmsdelim/README.md35
-rw-r--r--macros/latex/contrib/jmsdelim/jmsdelim.dtx693
-rw-r--r--macros/latex/contrib/jmsdelim/jmsdelim.ins15
-rw-r--r--macros/latex/contrib/jmsdelim/jmsdelim.pdfbin0 -> 415204 bytes
-rw-r--r--macros/latex/contrib/jmsdelim/refs.bib13
-rw-r--r--macros/latex/contrib/matapli/README.md4
-rw-r--r--macros/latex/contrib/matapli/doc/examples/modeleauteur/modele.pdfbin1662982 -> 1674698 bytes
-rw-r--r--macros/latex/contrib/matapli/doc/matapli-doc.fdb_latexmk310
-rw-r--r--macros/latex/contrib/matapli/doc/matapli-doc.fls742
-rw-r--r--macros/latex/contrib/matapli/doc/matapli-doc.pdfbin2929413 -> 2940922 bytes
-rw-r--r--macros/latex/contrib/matapli/doc/matapli-doc.tex6
-rw-r--r--macros/latex/contrib/matapli/tex/matapli.cls15
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.pdfbin501207 -> 501742 bytes
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.tex17
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.dtx352
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.pdfbin1502769 -> 1511486 bytes
-rw-r--r--macros/latex/contrib/projlib/ProjLib.dtx4569
-rw-r--r--macros/latex/contrib/projlib/ProjLib.ins74
-rw-r--r--macros/latex/contrib/projlib/ProjLib.sty38
-rw-r--r--macros/latex/contrib/projlib/README.md6
-rw-r--r--macros/latex/contrib/projlib/projlib-author.sty313
-rw-r--r--macros/latex/contrib/projlib/projlib-datetime.sty1649
-rw-r--r--macros/latex/contrib/projlib/projlib-draft.sty140
-rw-r--r--macros/latex/contrib/projlib/projlib-font.sty144
-rw-r--r--macros/latex/contrib/projlib/projlib-language.sty512
-rw-r--r--macros/latex/contrib/projlib/projlib-logo.sty100
-rw-r--r--macros/latex/contrib/projlib/projlib-math.sty234
-rw-r--r--macros/latex/contrib/projlib/projlib-paper.sty119
-rw-r--r--macros/latex/contrib/projlib/projlib-theorem.sty1184
-rw-r--r--macros/luatex/generic/luatexja/README8
-rw-r--r--macros/luatex/generic/luatexja/doc/luatexja-en.pdfbin717060 -> 717082 bytes
-rw-r--r--macros/luatex/generic/luatexja/doc/luatexja-ja.pdfbin1147252 -> 1147701 bytes
-rw-r--r--macros/luatex/generic/luatexja/src/luatexja.sty2
-rw-r--r--macros/luatex/generic/luatexja/src/patches/lltjp-footmisc.sty11
-rw-r--r--macros/optex/README15
-rw-r--r--macros/optex/base/alloc.opm42
-rw-r--r--macros/optex/base/bib-iso690.opm7
-rw-r--r--macros/optex/base/colors.opm42
-rw-r--r--macros/optex/base/doc.opm4
-rw-r--r--macros/optex/base/f-heros.opm9
-rw-r--r--macros/optex/base/f-lmfonts.opm4
-rw-r--r--macros/optex/base/fonts-catalog.opm15
-rw-r--r--macros/optex/base/fonts-opmac.opm9
-rw-r--r--macros/optex/base/fonts-preload.opm39
-rw-r--r--macros/optex/base/fonts-resize.opm286
-rw-r--r--macros/optex/base/fonts-select.opm366
-rw-r--r--macros/optex/base/graphics.opm59
-rw-r--r--macros/optex/base/hisyntax-lua.opm86
-rw-r--r--macros/optex/base/hyphen-lan.opm252
-rw-r--r--macros/optex/base/keyval.opm21
-rw-r--r--macros/optex/base/lang-data.opm100
-rw-r--r--macros/optex/base/lang-decl.opm312
-rw-r--r--macros/optex/base/languages.opm147
-rw-r--r--macros/optex/base/makeindex.opm66
-rw-r--r--macros/optex/base/math-preload.opm24
-rw-r--r--macros/optex/base/math-unicode.opm2
-rw-r--r--macros/optex/base/optex.ini8
-rw-r--r--macros/optex/base/optex.lua139
-rw-r--r--macros/optex/base/others.opm24
-rw-r--r--macros/optex/base/output.opm14
-rw-r--r--macros/optex/base/parameters.opm23
-rw-r--r--macros/optex/base/plain-macros.opm10
-rw-r--r--macros/optex/base/ref-file.opm23
-rw-r--r--macros/optex/base/references.opm2
-rw-r--r--macros/optex/base/slides.opm17
-rw-r--r--macros/optex/base/table.opm9
-rw-r--r--macros/optex/base/uni-lcuc.opm2
-rw-r--r--macros/optex/base/unimath-codes.opm72
-rw-r--r--macros/optex/base/unimath-table.opm2
-rw-r--r--macros/optex/base/usebib.opm5
-rw-r--r--macros/optex/base/verbatim.opm5
-rw-r--r--macros/optex/doc/optex-doc.pdfbin1399602 -> 1409811 bytes
-rw-r--r--macros/optex/doc/optex-doc.tex4
-rw-r--r--macros/optex/doc/optex-math.tex25
-rw-r--r--macros/optex/doc/optex-techdoc.tex19
-rw-r--r--macros/optex/doc/optex-userdoc.tex40
-rw-r--r--macros/optex/pkg/minim-mp.opm16
-rw-r--r--macros/optex/pkg/minim-pdf.opm96
-rw-r--r--macros/optex/pkg/minim.opm188
-rw-r--r--macros/optex/pkg/plain-at.opm9
-rw-r--r--macros/optex/pkg/tikz.opm123
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb204
-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.xzbin2357768 -> 2355992 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
115 files changed, 8678 insertions, 7649 deletions
diff --git a/FILES.byname b/FILES.byname
index 3ead66aeb7..517e92f371 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -2021,7 +2021,7 @@
1989/12/11 | 6196 | biblio/tib/tib.man
1989/03/29 | 23265 | biblio/tib/vitaMake
2005/12/15 | 366385 | biblio/tib.zip
-2022/03/09 | 17726 | CTAN.sites
+2022/03/11 | 17826 | CTAN.sites
1990/10/03 | 5032 | dviware/beebe/00readme.txt
1990/10/03 | 479 | dviware/beebe/doc/00dir.cmd
1990/10/03 | 1209 | dviware/beebe/doc/00dir.lst
@@ -5212,7 +5212,7 @@
1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp
1990/10/02 | 812 | dviware/vutex/vaxvms.ins
1990/10/02 | 127576 | dviware/vutex/vutex.web
-2022/03/10 | 513960 | FILES.last07days
+2022/03/11 | 518817 | 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
@@ -204516,23 +204516,18 @@
2018/10/31 | 201 | macros/latex/contrib/beamer-contrib/themes/beamerdarkthemes/makemagpie.sh
2020/05/10 | 2141 | macros/latex/contrib/beamer-contrib/themes/beamerdarkthemes/README
2020/05/10 | 9637048 | macros/latex/contrib/beamer-contrib/themes/beamerdarkthemes.zip
-2022/03/01 | 588 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamercolorthemeArguelles.sty
-2022/03/01 | 735 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerfontthemeArguelles.sty
-2022/03/01 | 1594 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerinnerthemeArguelles.sty
-2022/03/01 | 820 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerouterthemeArguelles.sty
-2022/03/01 | 1089 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerthemeArguelles.sty
-2022/03/01 | 606215 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo.pdf
-2022/03/01 | 3285 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo.tex
-2022/03/01 | 22662 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-1.jpg
-2022/03/01 | 43382 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-2.jpg
-2022/03/01 | 23427 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-3.jpg
-2022/03/01 | 75463 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-4.jpg
-2022/03/01 | 14661 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-5.jpg
-2022/03/01 | 21536 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-6.jpg
-2022/03/01 | 1072 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/LICENSE
-2022/03/01 | 6139 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/README.md
-2022/03/01 | 6 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/VERSION
-2022/03/02 | 780996 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles.zip
+2022/03/09 | 574 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamercolorthemeArguelles.sty
+2022/03/09 | 721 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerfontthemeArguelles.sty
+2022/03/09 | 1580 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerinnerthemeArguelles.sty
+2022/03/09 | 806 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerouterthemeArguelles.sty
+2022/03/09 | 1076 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerthemeArguelles.sty
+2022/03/06 | 102975 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.gif
+2022/03/06 | 611808 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.pdf
+2022/03/06 | 3352 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.tex
+2021/12/15 | 1072 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/LICENSE
+2022/03/09 | 5959 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/README.md
+2022/03/09 | 18 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/VERSION
+2022/03/11 | 716490 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles.zip
2016/09/24 | 12955 | macros/latex/contrib/beamer-contrib/themes/beamertheme-cuerna/beamertheme-cuerna.dtx
2016/09/24 | 1663 | macros/latex/contrib/beamer-contrib/themes/beamertheme-cuerna/beamertheme-cuerna.ins
2016/09/24 | 418475 | macros/latex/contrib/beamer-contrib/themes/beamertheme-cuerna/beamertheme-cuerna.pdf
@@ -208985,12 +208980,12 @@
2013/04/03 | 3607 | macros/latex/contrib/crbox/crbox.sty
2013/04/03 | 914 | macros/latex/contrib/crbox/README
2013/04/04 | 30542 | macros/latex/contrib/crbox.zip
-2022/03/10 | 117097 | macros/latex/contrib/create-theorem/create-theorem-doc.pdf
-2022/03/10 | 22463 | macros/latex/contrib/create-theorem/create-theorem-doc.tex
-2022/03/10 | 73921 | macros/latex/contrib/create-theorem/create-theorem.sty
-2022/03/10 | 19106 | macros/latex/contrib/create-theorem/LICENSE
-2022/03/10 | 676 | macros/latex/contrib/create-theorem/README.md
-2022/03/10 | 136814 | macros/latex/contrib/create-theorem.zip
+2022/03/11 | 117260 | macros/latex/contrib/create-theorem/create-theorem-doc.pdf
+2022/03/11 | 22527 | macros/latex/contrib/create-theorem/create-theorem-doc.tex
+2022/03/11 | 79344 | macros/latex/contrib/create-theorem/create-theorem.sty
+2022/03/11 | 19106 | macros/latex/contrib/create-theorem/LICENSE
+2022/03/11 | 676 | macros/latex/contrib/create-theorem/README.md
+2022/03/11 | 137395 | macros/latex/contrib/create-theorem.zip
2022/03/01 | 116473 | macros/latex/contrib/crefthe/crefthe-doc.pdf
2022/03/01 | 10806 | macros/latex/contrib/crefthe/crefthe-doc.tex
2022/03/01 | 10206 | macros/latex/contrib/crefthe/crefthe.sty
@@ -210641,12 +210636,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
-2022/03/10 | 75228 | macros/latex/contrib/easybook/easybook.dtx
+2022/03/11 | 75167 | macros/latex/contrib/easybook/easybook.dtx
2022/01/02 | 2085 | macros/latex/contrib/easybook/easybook.ins
-2022/03/10 | 592859 | macros/latex/contrib/easybook/easybook.pdf
-2022/03/10 | 83562 | macros/latex/contrib/easybook/easybook.tex
+2022/03/11 | 591676 | macros/latex/contrib/easybook/easybook.pdf
+2022/03/11 | 83441 | macros/latex/contrib/easybook/easybook.tex
2022/03/06 | 799 | macros/latex/contrib/easybook/README.md
-2022/03/10 | 634211 | macros/latex/contrib/easybook.zip
+2022/03/11 | 633024 | 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
@@ -216568,6 +216563,12 @@
2022/02/09 | 26092 | macros/latex/contrib/jmlr/pmlr-sample.tex
2022/02/09 | 1853 | macros/latex/contrib/jmlr/README
2022/02/09 | 1011245 | macros/latex/contrib/jmlr.zip
+2022/03/11 | 21135 | macros/latex/contrib/jmsdelim/jmsdelim.dtx
+2022/03/11 | 553 | macros/latex/contrib/jmsdelim/jmsdelim.ins
+2022/03/11 | 415204 | macros/latex/contrib/jmsdelim/jmsdelim.pdf
+2022/03/11 | 1032 | macros/latex/contrib/jmsdelim/README.md
+2022/03/11 | 380 | macros/latex/contrib/jmsdelim/refs.bib
+2022/03/11 | 407050 | macros/latex/contrib/jmsdelim.zip
2020/11/06 | 93702 | macros/latex/contrib/jnuexam/exam-a-a3input.pdf
2020/11/06 | 311 | macros/latex/contrib/jnuexam/exam-a-a3input.tex
2020/11/06 | 92282 | macros/latex/contrib/jnuexam/exam-a-a3split.pdf
@@ -218520,34 +218521,32 @@
2018/08/09 | 317456 | macros/latex/contrib/marginnote/marginnote.pdf
2018/08/09 | 836 | macros/latex/contrib/marginnote/README.txt
2018/08/09 | 325433 | macros/latex/contrib/marginnote.zip
-2021/03/22 | 146 | macros/latex/contrib/matapli/doc/auto/bibliomatapli.el
-2021/03/22 | 556 | macros/latex/contrib/matapli/doc/auto/matapli-doc.el
-2021/03/22 | 850 | macros/latex/contrib/matapli/doc/bibliomatapli.bib
-2021/03/22 | 5937 | macros/latex/contrib/matapli/doc/examples/couverture/3e.pdf
-2021/03/22 | 5889 | macros/latex/contrib/matapli/doc/examples/couverture/4e.pdf
-2021/03/22 | 775390 | macros/latex/contrib/matapli/doc/examples/couverture/CIMPA.png
-2021/03/22 | 52072 | macros/latex/contrib/matapli/doc/examples/couverture/corona.jpg
-2021/03/22 | 69935 | macros/latex/contrib/matapli/doc/examples/couverture/couverture.jpg
-2021/03/22 | 1173370 | macros/latex/contrib/matapli/doc/examples/couverture/couvertureModele.pdf
-2021/03/22 | 2570 | macros/latex/contrib/matapli/doc/examples/couverture/couvertureModele.tex
-2021/03/22 | 17880 | macros/latex/contrib/matapli/doc/examples/couverture/fond.pdf
-2021/03/22 | 19313 | macros/latex/contrib/matapli/doc/examples/couverture/fond-production.svg
-2021/03/22 | 20725 | macros/latex/contrib/matapli/doc/examples/couverture/Logo.pdf
-2021/03/22 | 2471 | macros/latex/contrib/matapli/doc/examples/couverture/redactionModele.tex
-2021/03/22 | 688 | macros/latex/contrib/matapli/doc/examples/modeleauteur/chap1.bib
-2021/03/22 | 1662982 | macros/latex/contrib/matapli/doc/examples/modeleauteur/modele.pdf
-2021/03/22 | 2267 | macros/latex/contrib/matapli/doc/examples/modeleauteur/modele.tex
-2021/03/22 | 1038362 | macros/latex/contrib/matapli/doc/examples/modeleauteur/portrait.png
-2021/03/22 | 1309 | macros/latex/contrib/matapli/doc/fond-doc.pdf
-2021/03/22 | 6520 | macros/latex/contrib/matapli/doc/mataplidoc.cls
-2021/03/22 | 38757 | macros/latex/contrib/matapli/doc/matapli-doc.fdb_latexmk
-2021/03/22 | 49048 | macros/latex/contrib/matapli/doc/matapli-doc.fls
-2021/03/22 | 2929413 | macros/latex/contrib/matapli/doc/matapli-doc.pdf
-2021/03/22 | 23940 | macros/latex/contrib/matapli/doc/matapli-doc.tex
-2021/03/22 | 4681 | macros/latex/contrib/matapli/doc/matapli-title.pdf
-2021/03/22 | 568 | macros/latex/contrib/matapli/README.md
-2021/03/22 | 34376 | macros/latex/contrib/matapli/tex/matapli.cls
-2021/03/22 | 7757824 | macros/latex/contrib/matapli.zip
+2022/03/11 | 146 | macros/latex/contrib/matapli/doc/auto/bibliomatapli.el
+2022/03/11 | 556 | macros/latex/contrib/matapli/doc/auto/matapli-doc.el
+2022/03/11 | 850 | macros/latex/contrib/matapli/doc/bibliomatapli.bib
+2022/03/11 | 5937 | macros/latex/contrib/matapli/doc/examples/couverture/3e.pdf
+2022/03/11 | 5889 | macros/latex/contrib/matapli/doc/examples/couverture/4e.pdf
+2022/03/11 | 775390 | macros/latex/contrib/matapli/doc/examples/couverture/CIMPA.png
+2022/03/11 | 52072 | macros/latex/contrib/matapli/doc/examples/couverture/corona.jpg
+2022/03/11 | 69935 | macros/latex/contrib/matapli/doc/examples/couverture/couverture.jpg
+2022/03/11 | 1173370 | macros/latex/contrib/matapli/doc/examples/couverture/couvertureModele.pdf
+2022/03/11 | 2570 | macros/latex/contrib/matapli/doc/examples/couverture/couvertureModele.tex
+2022/03/11 | 17880 | macros/latex/contrib/matapli/doc/examples/couverture/fond.pdf
+2022/03/11 | 19313 | macros/latex/contrib/matapli/doc/examples/couverture/fond-production.svg
+2022/03/11 | 20725 | macros/latex/contrib/matapli/doc/examples/couverture/Logo.pdf
+2022/03/11 | 2471 | macros/latex/contrib/matapli/doc/examples/couverture/redactionModele.tex
+2022/03/11 | 688 | macros/latex/contrib/matapli/doc/examples/modeleauteur/chap1.bib
+2022/03/11 | 1674698 | macros/latex/contrib/matapli/doc/examples/modeleauteur/modele.pdf
+2022/03/11 | 2267 | macros/latex/contrib/matapli/doc/examples/modeleauteur/modele.tex
+2022/03/11 | 1038362 | macros/latex/contrib/matapli/doc/examples/modeleauteur/portrait.png
+2022/03/11 | 1309 | macros/latex/contrib/matapli/doc/fond-doc.pdf
+2022/03/11 | 6520 | macros/latex/contrib/matapli/doc/mataplidoc.cls
+2022/03/11 | 2940922 | macros/latex/contrib/matapli/doc/matapli-doc.pdf
+2022/03/11 | 23941 | macros/latex/contrib/matapli/doc/matapli-doc.tex
+2022/03/11 | 4681 | macros/latex/contrib/matapli/doc/matapli-title.pdf
+2022/03/11 | 570 | macros/latex/contrib/matapli/README.md
+2022/03/11 | 34482 | macros/latex/contrib/matapli/tex/matapli.cls
+2022/03/11 | 7763980 | macros/latex/contrib/matapli.zip
2013/04/06 | 2338 | macros/latex/contrib/matc3/Makefile
2013/04/06 | 21300 | macros/latex/contrib/matc3/matc3.dtx
2013/04/06 | 2061 | macros/latex/contrib/matc3/matc3.ins
@@ -220338,13 +220337,13 @@
1996/03/22 | 18862 | macros/latex/contrib/niceframe/umrandb.mf
2015/01/17 | 1370 | macros/latex/contrib/niceframe/umrand.mf
2015/01/17 | 287910 | macros/latex/contrib/niceframe.zip
-2022/03/02 | 705294 | macros/latex/contrib/nicematrix/nicematrix.dtx
-2022/03/02 | 501207 | macros/latex/contrib/nicematrix/nicematrix-french.pdf
-2022/03/02 | 191096 | macros/latex/contrib/nicematrix/nicematrix-french.tex
+2022/03/11 | 709623 | macros/latex/contrib/nicematrix/nicematrix.dtx
+2022/03/11 | 501742 | macros/latex/contrib/nicematrix/nicematrix-french.pdf
+2022/03/11 | 191618 | macros/latex/contrib/nicematrix/nicematrix-french.tex
2022/01/22 | 1423 | macros/latex/contrib/nicematrix/nicematrix.ins
-2022/03/02 | 1502769 | macros/latex/contrib/nicematrix/nicematrix.pdf
+2022/03/11 | 1511486 | macros/latex/contrib/nicematrix/nicematrix.pdf
2021/11/10 | 1023 | macros/latex/contrib/nicematrix/README.md
-2022/03/02 | 2127339 | macros/latex/contrib/nicematrix.zip
+2022/03/11 | 2137470 | macros/latex/contrib/nicematrix.zip
2015/11/21 | 217 | macros/latex/contrib/nicetext/ANNOUNCE.txt
2012/03/18 | 254582 | macros/latex/contrib/nicetext/demo/arseneau.pdf
2011/09/14 | 10 | macros/latex/contrib/nicetext/demo/iso.txt
@@ -223042,23 +223041,15 @@
2021/12/16 | 2613 | macros/latex/contrib/projlib/old-modules/PJLpaper.sty
2021/12/16 | 74174 | macros/latex/contrib/projlib/old-modules/PJLthm.sty
2022/03/09 | 4984 | macros/latex/contrib/projlib/old-modules/PJLtoolkit.sty
-2022/03/09 | 11151 | macros/latex/contrib/projlib/projlib-author.sty
-2022/03/03 | 55207 | macros/latex/contrib/projlib/projlib-datetime.sty
2022/02/27 | 322407 | macros/latex/contrib/projlib/ProjLib-doc-cn.pdf
2022/02/27 | 98208 | macros/latex/contrib/projlib/ProjLib-doc.dtx
2022/02/27 | 200297 | macros/latex/contrib/projlib/ProjLib-doc-en.pdf
2022/02/27 | 201834 | macros/latex/contrib/projlib/ProjLib-doc-fr.pdf
2022/02/27 | 857 | macros/latex/contrib/projlib/ProjLib-doc.ins
-2022/02/24 | 4682 | macros/latex/contrib/projlib/projlib-draft.sty
-2022/03/09 | 4743 | macros/latex/contrib/projlib/projlib-font.sty
-2022/03/09 | 16869 | macros/latex/contrib/projlib/projlib-language.sty
-2022/02/24 | 2643 | macros/latex/contrib/projlib/projlib-logo.sty
-2022/02/26 | 7420 | macros/latex/contrib/projlib/projlib-math.sty
-2022/03/09 | 5062 | macros/latex/contrib/projlib/projlib-paper.sty
-2022/03/09 | 1413 | macros/latex/contrib/projlib/ProjLib.sty
-2022/03/09 | 54906 | macros/latex/contrib/projlib/projlib-theorem.sty
-2022/03/09 | 5426 | macros/latex/contrib/projlib/README.md
-2022/03/09 | 797193 | macros/latex/contrib/projlib.zip
+2022/03/11 | 171806 | macros/latex/contrib/projlib/ProjLib.dtx
+2022/03/09 | 3082 | macros/latex/contrib/projlib/ProjLib.ins
+2022/03/11 | 5482 | macros/latex/contrib/projlib/README.md
+2022/03/11 | 795140 | macros/latex/contrib/projlib.zip
2022/02/07 | 121559 | macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.pdf
2022/02/07 | 10484 | macros/latex/contrib/proof-at-the-end/proof-at-the-end_demo.tex
2022/02/07 | 84168 | macros/latex/contrib/proof-at-the-end/proof-at-the-end.dtx
@@ -236569,114 +236560,114 @@
2015/10/04 | 263467 | macros/luatex/generic/luatexbase/luatexbase.pdf
2015/10/04 | 450 | macros/luatex/generic/luatexbase/README.md
2015/10/04 | 270547 | macros/luatex/generic/luatexbase.zip
-2022/02/10 | 1536 | macros/luatex/generic/luatexja/COPYING
-2022/02/10 | 945 | macros/luatex/generic/luatexja/doc/jfm-testf.lua
-2022/02/10 | 3238 | macros/luatex/generic/luatexja/doc/jfm-test.lua
-2022/02/10 | 4452 | macros/luatex/generic/luatexja/doc/jfm-ujisc33.lua
-2022/02/10 | 166557 | macros/luatex/generic/luatexja/doc/lltjp-geometry.pdf
-2022/02/10 | 13726 | macros/luatex/generic/luatexja/doc/lltjp-geometry.tex
-2022/02/10 | 400068 | macros/luatex/generic/luatexja/doc/ltjclasses.pdf
-2022/02/10 | 69217 | macros/luatex/generic/luatexja/doc/ltjltxdoc.pdf
-2022/02/10 | 456779 | macros/luatex/generic/luatexja/doc/ltjsclasses.pdf
-2022/02/10 | 538845 | macros/luatex/generic/luatexja/doc/luatexja.dtx
-2022/02/10 | 717060 | macros/luatex/generic/luatexja/doc/luatexja-en.pdf
-2022/02/10 | 355 | macros/luatex/generic/luatexja/doc/luatexja.ins
-2022/02/10 | 1147252 | macros/luatex/generic/luatexja/doc/luatexja-ja.pdf
-2022/02/10 | 381090 | macros/luatex/generic/luatexja/doc/luatexja-ruby.pdf
-2022/02/10 | 52633 | macros/luatex/generic/luatexja/doc/luatexja-ruby.tex
-2022/02/10 | 3797 | macros/luatex/generic/luatexja/README
-2022/02/10 | 5302 | macros/luatex/generic/luatexja/src/addons/luatexja-adjust.sty
-2022/02/10 | 33461 | macros/luatex/generic/luatexja/src/addons/luatexja-ajmacros.sty
-2022/02/10 | 15839 | macros/luatex/generic/luatexja/src/addons/luatexja-fontspec-27c.sty
-2022/02/10 | 1637 | macros/luatex/generic/luatexja/src/addons/luatexja-fontspec.sty
-2022/02/10 | 6891 | macros/luatex/generic/luatexja/src/addons/luatexja-otf.sty
-2022/02/10 | 29181 | macros/luatex/generic/luatexja/src/addons/luatexja-preset.sty
-2022/02/10 | 9765 | macros/luatex/generic/luatexja/src/addons/luatexja-ruby.sty
-2022/02/10 | 2193 | macros/luatex/generic/luatexja/src/addons/luatexja-zhfonts.sty
-2022/02/10 | 2601 | macros/luatex/generic/luatexja/src/jfm-banjiao.lua
-2022/02/10 | 2207 | macros/luatex/generic/luatexja/src/jfm-CCT.lua
-2022/02/10 | 2342 | macros/luatex/generic/luatexja/src/jfm-jis.lua
-2022/02/10 | 2586 | macros/luatex/generic/luatexja/src/jfm-kaiming.lua
-2022/02/10 | 8106 | macros/luatex/generic/luatexja/src/jfm-min.lua
-2022/02/10 | 192 | macros/luatex/generic/luatexja/src/jfm-mono.lua
-2022/02/10 | 200 | macros/luatex/generic/luatexja/src/jfm-prop.lua
-2022/02/10 | 196 | macros/luatex/generic/luatexja/src/jfm-propv.lua
-2022/02/10 | 196 | macros/luatex/generic/luatexja/src/jfm-propw.lua
-2022/02/10 | 2575 | macros/luatex/generic/luatexja/src/jfm-quanjiao.lua
-2022/02/10 | 4808 | macros/luatex/generic/luatexja/src/jfm-tmin.lua
-2022/02/10 | 13899 | macros/luatex/generic/luatexja/src/jfm-ujis.lua
-2022/02/10 | 11508 | macros/luatex/generic/luatexja/src/jfm-ujisv.lua
-2022/02/10 | 26934 | macros/luatex/generic/luatexja/src/lltjext.sty
-2022/02/10 | 21867 | macros/luatex/generic/luatexja/src/ltj-adjust.lua
-2022/02/10 | 12151 | macros/luatex/generic/luatexja/src/ltj-base.lua
-2022/02/10 | 6203 | macros/luatex/generic/luatexja/src/ltj-base.sty
-2022/02/10 | 3961 | macros/luatex/generic/luatexja/src/ltj-charrange.lua
-2022/02/10 | 177499 | macros/luatex/generic/luatexja/src/ltjclasses.dtx
-2022/02/10 | 1278 | macros/luatex/generic/luatexja/src/ltjclasses.ins
-2022/02/10 | 3748 | macros/luatex/generic/luatexja/src/ltj-compat.lua
-2022/02/10 | 5222 | macros/luatex/generic/luatexja/src/ltj-debug.lua
-2022/02/10 | 39938 | macros/luatex/generic/luatexja/src/ltj-direction.lua
-2022/02/10 | 3425 | macros/luatex/generic/luatexja/src/ltj-inputbuf.lua
-2022/02/10 | 154928 | macros/luatex/generic/luatexja/src/ltj-ivd_aj1.lua
-2022/02/10 | 55450 | macros/luatex/generic/luatexja/src/ltj-jfmglue.lua
-2022/02/10 | 48649 | macros/luatex/generic/luatexja/src/ltj-jfont.lua
-2022/02/10 | 54427 | macros/luatex/generic/luatexja/src/ltj-jisx0208.lua
-2022/02/10 | 18722 | macros/luatex/generic/luatexja/src/ltj-kinsoku.tex
-2022/02/10 | 6235 | macros/luatex/generic/luatexja/src/ltj-latex.sty
-2022/02/10 | 3755 | macros/luatex/generic/luatexja/src/ltj-lineskip.lua
-2022/02/10 | 5940 | macros/luatex/generic/luatexja/src/ltj-lotf_aux.lua
-2022/02/10 | 8660 | macros/luatex/generic/luatexja/src/ltjltxdoc.dtx
-2022/02/10 | 126 | macros/luatex/generic/luatexja/src/ltjltxdoc.ins
-2022/02/10 | 7370 | macros/luatex/generic/luatexja/src/ltj-math.lua
-2022/02/10 | 8609 | macros/luatex/generic/luatexja/src/ltj-otf.lua
-2022/02/10 | 4408 | macros/luatex/generic/luatexja/src/ltj-plain.sty
-2022/02/10 | 7026 | macros/luatex/generic/luatexja/src/ltj-pretreat.lua
-2022/02/10 | 14929 | macros/luatex/generic/luatexja/src/ltj-rmlgbm.lua
-2022/02/10 | 32105 | macros/luatex/generic/luatexja/src/ltj-ruby.lua
-2022/02/10 | 188978 | macros/luatex/generic/luatexja/src/ltjsclasses.dtx
-2022/02/10 | 385 | macros/luatex/generic/luatexja/src/ltjsclasses.ins
-2022/02/10 | 13240 | macros/luatex/generic/luatexja/src/ltj-setwidth.lua
-2022/02/10 | 4871 | macros/luatex/generic/luatexja/src/ltj-stack.lua
-2022/02/10 | 7691 | macros/luatex/generic/luatexja/src/ltj-unicode-ccfix.lua
-2022/02/10 | 3451 | macros/luatex/generic/luatexja/src/luatexja-compat.sty
-2022/02/10 | 29814 | macros/luatex/generic/luatexja/src/luatexja-core.sty
-2022/02/10 | 22294 | macros/luatex/generic/luatexja/src/luatexja.lua
-2022/02/10 | 2042 | macros/luatex/generic/luatexja/src/luatexja.sty
-2022/02/10 | 12442 | macros/luatex/generic/luatexja/src/patches/lltjcore.sty
-2022/02/10 | 6497 | macros/luatex/generic/luatexja/src/patches/lltjdefs.sty
-2022/02/10 | 49557 | macros/luatex/generic/luatexja/src/patches/lltjfont.sty
-2022/02/10 | 617 | macros/luatex/generic/luatexja/src/patches/lltjp-array.sty
-2022/02/10 | 4196 | macros/luatex/generic/luatexja/src/patches/lltjp-atbegshi.sty
-2022/02/10 | 825 | macros/luatex/generic/luatexja/src/patches/lltjp-collcell.sty
-2022/02/10 | 405 | macros/luatex/generic/luatexja/src/patches/lltjp-everyshi.sty
-2022/02/10 | 5850 | macros/luatex/generic/luatexja/src/patches/lltjp-fontspec.sty
-2022/02/10 | 1362 | macros/luatex/generic/luatexja/src/patches/lltjp-footmisc.sty
-2022/02/10 | 19234 | macros/luatex/generic/luatexja/src/patches/lltjp-geometry.sty
-2022/02/10 | 14709 | macros/luatex/generic/luatexja/src/patches/lltjp-listings.sty
-2022/02/10 | 2057 | macros/luatex/generic/luatexja/src/patches/lltjp-microtype.sty
-2022/02/10 | 189 | macros/luatex/generic/luatexja/src/patches/lltjp-preview.sty
-2022/02/10 | 3893 | macros/luatex/generic/luatexja/src/patches/lltjp-siunitx.sty
-2022/02/10 | 885 | macros/luatex/generic/luatexja/src/patches/lltjp-stfloats.sty
-2022/02/10 | 5682 | macros/luatex/generic/luatexja/src/patches/lltjp-tascmac.sty
-2022/02/10 | 2374 | macros/luatex/generic/luatexja/src/patches/lltjp-unicode-math.sty
-2022/02/10 | 3371 | macros/luatex/generic/luatexja/src/patches/lltjp-xunicode.sty
-2022/02/10 | 580 | macros/luatex/generic/luatexja/tool/blocks2defcharrange.rb
-2022/02/10 | 1224 | macros/luatex/generic/luatexja/tool/chars2defcharrange.rb
-2022/02/10 | 1130 | macros/luatex/generic/luatexja/tool/function_uax50.lua
-2022/02/10 | 1397 | macros/luatex/generic/luatexja/tool/ivslist.tex
-2022/02/10 | 7790 | macros/luatex/generic/luatexja/tool/jfm-convert.lua
-2022/02/10 | 551 | macros/luatex/generic/luatexja/tool/jfm-readable.rb
-2022/02/10 | 6060 | macros/luatex/generic/luatexja/tool/kyoikukanjiChars.tex
-2022/02/10 | 4262 | macros/luatex/generic/luatexja/tool/kyoikukanji.txt
-2022/02/10 | 3313 | macros/luatex/generic/luatexja/tool/ltj-unicode-ccfix_make2.pl
-2022/02/10 | 355 | macros/luatex/generic/luatexja/tool/otf-AdobeMingStd-Light.txt
-2022/02/10 | 326 | macros/luatex/generic/luatexja/tool/otf-AdobeMyungjoStd-Medium.txt
-2022/02/10 | 317 | macros/luatex/generic/luatexja/tool/otf-AdobeSongStd-Light.txt
-2022/02/10 | 896 | macros/luatex/generic/luatexja/tool/otf-KozMinPr6N-Regular.txt
-2022/02/10 | 945 | macros/luatex/generic/luatexja/tool/table_ivd_aj1.lua
-2022/02/10 | 3100 | macros/luatex/generic/luatexja/tool/table_jisx0208.tex
-2022/02/10 | 11335 | macros/luatex/generic/luatexja/tool/unicodeBlocks.tex
-2022/02/11 | 3824371 | macros/luatex/generic/luatexja.zip
+2022/03/11 | 1536 | macros/luatex/generic/luatexja/COPYING
+2022/03/11 | 945 | macros/luatex/generic/luatexja/doc/jfm-testf.lua
+2022/03/11 | 3238 | macros/luatex/generic/luatexja/doc/jfm-test.lua
+2022/03/11 | 4452 | macros/luatex/generic/luatexja/doc/jfm-ujisc33.lua
+2022/03/11 | 166557 | macros/luatex/generic/luatexja/doc/lltjp-geometry.pdf
+2022/03/11 | 13726 | macros/luatex/generic/luatexja/doc/lltjp-geometry.tex
+2022/03/11 | 400068 | macros/luatex/generic/luatexja/doc/ltjclasses.pdf
+2022/03/11 | 69217 | macros/luatex/generic/luatexja/doc/ltjltxdoc.pdf
+2022/03/11 | 456779 | macros/luatex/generic/luatexja/doc/ltjsclasses.pdf
+2022/03/11 | 538845 | macros/luatex/generic/luatexja/doc/luatexja.dtx
+2022/03/11 | 717082 | macros/luatex/generic/luatexja/doc/luatexja-en.pdf
+2022/03/11 | 355 | macros/luatex/generic/luatexja/doc/luatexja.ins
+2022/03/11 | 1147701 | macros/luatex/generic/luatexja/doc/luatexja-ja.pdf
+2022/03/11 | 381090 | macros/luatex/generic/luatexja/doc/luatexja-ruby.pdf
+2022/03/11 | 52633 | macros/luatex/generic/luatexja/doc/luatexja-ruby.tex
+2022/03/11 | 3797 | macros/luatex/generic/luatexja/README
+2022/03/11 | 5302 | macros/luatex/generic/luatexja/src/addons/luatexja-adjust.sty
+2022/03/11 | 33461 | macros/luatex/generic/luatexja/src/addons/luatexja-ajmacros.sty
+2022/03/11 | 15839 | macros/luatex/generic/luatexja/src/addons/luatexja-fontspec-27c.sty
+2022/03/11 | 1637 | macros/luatex/generic/luatexja/src/addons/luatexja-fontspec.sty
+2022/03/11 | 6891 | macros/luatex/generic/luatexja/src/addons/luatexja-otf.sty
+2022/03/11 | 29181 | macros/luatex/generic/luatexja/src/addons/luatexja-preset.sty
+2022/03/11 | 9765 | macros/luatex/generic/luatexja/src/addons/luatexja-ruby.sty
+2022/03/11 | 2193 | macros/luatex/generic/luatexja/src/addons/luatexja-zhfonts.sty
+2022/03/11 | 2601 | macros/luatex/generic/luatexja/src/jfm-banjiao.lua
+2022/03/11 | 2207 | macros/luatex/generic/luatexja/src/jfm-CCT.lua
+2022/03/11 | 2342 | macros/luatex/generic/luatexja/src/jfm-jis.lua
+2022/03/11 | 2586 | macros/luatex/generic/luatexja/src/jfm-kaiming.lua
+2022/03/11 | 8106 | macros/luatex/generic/luatexja/src/jfm-min.lua
+2022/03/11 | 192 | macros/luatex/generic/luatexja/src/jfm-mono.lua
+2022/03/11 | 200 | macros/luatex/generic/luatexja/src/jfm-prop.lua
+2022/03/11 | 196 | macros/luatex/generic/luatexja/src/jfm-propv.lua
+2022/03/11 | 196 | macros/luatex/generic/luatexja/src/jfm-propw.lua
+2022/03/11 | 2575 | macros/luatex/generic/luatexja/src/jfm-quanjiao.lua
+2022/03/11 | 4808 | macros/luatex/generic/luatexja/src/jfm-tmin.lua
+2022/03/11 | 13899 | macros/luatex/generic/luatexja/src/jfm-ujis.lua
+2022/03/11 | 11508 | macros/luatex/generic/luatexja/src/jfm-ujisv.lua
+2022/03/11 | 26934 | macros/luatex/generic/luatexja/src/lltjext.sty
+2022/03/11 | 21867 | macros/luatex/generic/luatexja/src/ltj-adjust.lua
+2022/03/11 | 12151 | macros/luatex/generic/luatexja/src/ltj-base.lua
+2022/03/11 | 6203 | macros/luatex/generic/luatexja/src/ltj-base.sty
+2022/03/11 | 3961 | macros/luatex/generic/luatexja/src/ltj-charrange.lua
+2022/03/11 | 177499 | macros/luatex/generic/luatexja/src/ltjclasses.dtx
+2022/03/11 | 1278 | macros/luatex/generic/luatexja/src/ltjclasses.ins
+2022/03/11 | 3748 | macros/luatex/generic/luatexja/src/ltj-compat.lua
+2022/03/11 | 5222 | macros/luatex/generic/luatexja/src/ltj-debug.lua
+2022/03/11 | 39938 | macros/luatex/generic/luatexja/src/ltj-direction.lua
+2022/03/11 | 3425 | macros/luatex/generic/luatexja/src/ltj-inputbuf.lua
+2022/03/11 | 154928 | macros/luatex/generic/luatexja/src/ltj-ivd_aj1.lua
+2022/03/11 | 55450 | macros/luatex/generic/luatexja/src/ltj-jfmglue.lua
+2022/03/11 | 48649 | macros/luatex/generic/luatexja/src/ltj-jfont.lua
+2022/03/11 | 54427 | macros/luatex/generic/luatexja/src/ltj-jisx0208.lua
+2022/03/11 | 18722 | macros/luatex/generic/luatexja/src/ltj-kinsoku.tex
+2022/03/11 | 6235 | macros/luatex/generic/luatexja/src/ltj-latex.sty
+2022/03/11 | 3755 | macros/luatex/generic/luatexja/src/ltj-lineskip.lua
+2022/03/11 | 5940 | macros/luatex/generic/luatexja/src/ltj-lotf_aux.lua
+2022/03/11 | 8660 | macros/luatex/generic/luatexja/src/ltjltxdoc.dtx
+2022/03/11 | 126 | macros/luatex/generic/luatexja/src/ltjltxdoc.ins
+2022/03/11 | 7370 | macros/luatex/generic/luatexja/src/ltj-math.lua
+2022/03/11 | 8609 | macros/luatex/generic/luatexja/src/ltj-otf.lua
+2022/03/11 | 4408 | macros/luatex/generic/luatexja/src/ltj-plain.sty
+2022/03/11 | 7026 | macros/luatex/generic/luatexja/src/ltj-pretreat.lua
+2022/03/11 | 14929 | macros/luatex/generic/luatexja/src/ltj-rmlgbm.lua
+2022/03/11 | 32105 | macros/luatex/generic/luatexja/src/ltj-ruby.lua
+2022/03/11 | 188978 | macros/luatex/generic/luatexja/src/ltjsclasses.dtx
+2022/03/11 | 385 | macros/luatex/generic/luatexja/src/ltjsclasses.ins
+2022/03/11 | 13240 | macros/luatex/generic/luatexja/src/ltj-setwidth.lua
+2022/03/11 | 4871 | macros/luatex/generic/luatexja/src/ltj-stack.lua
+2022/03/11 | 7691 | macros/luatex/generic/luatexja/src/ltj-unicode-ccfix.lua
+2022/03/11 | 3451 | macros/luatex/generic/luatexja/src/luatexja-compat.sty
+2022/03/11 | 29814 | macros/luatex/generic/luatexja/src/luatexja-core.sty
+2022/03/11 | 22294 | macros/luatex/generic/luatexja/src/luatexja.lua
+2022/03/11 | 2042 | macros/luatex/generic/luatexja/src/luatexja.sty
+2022/03/11 | 12442 | macros/luatex/generic/luatexja/src/patches/lltjcore.sty
+2022/03/11 | 6497 | macros/luatex/generic/luatexja/src/patches/lltjdefs.sty
+2022/03/11 | 49557 | macros/luatex/generic/luatexja/src/patches/lltjfont.sty
+2022/03/11 | 617 | macros/luatex/generic/luatexja/src/patches/lltjp-array.sty
+2022/03/11 | 4196 | macros/luatex/generic/luatexja/src/patches/lltjp-atbegshi.sty
+2022/03/11 | 825 | macros/luatex/generic/luatexja/src/patches/lltjp-collcell.sty
+2022/03/11 | 405 | macros/luatex/generic/luatexja/src/patches/lltjp-everyshi.sty
+2022/03/11 | 5850 | macros/luatex/generic/luatexja/src/patches/lltjp-fontspec.sty
+2022/03/11 | 1611 | macros/luatex/generic/luatexja/src/patches/lltjp-footmisc.sty
+2022/03/11 | 19234 | macros/luatex/generic/luatexja/src/patches/lltjp-geometry.sty
+2022/03/11 | 14709 | macros/luatex/generic/luatexja/src/patches/lltjp-listings.sty
+2022/03/11 | 2057 | macros/luatex/generic/luatexja/src/patches/lltjp-microtype.sty
+2022/03/11 | 189 | macros/luatex/generic/luatexja/src/patches/lltjp-preview.sty
+2022/03/11 | 3893 | macros/luatex/generic/luatexja/src/patches/lltjp-siunitx.sty
+2022/03/11 | 885 | macros/luatex/generic/luatexja/src/patches/lltjp-stfloats.sty
+2022/03/11 | 5682 | macros/luatex/generic/luatexja/src/patches/lltjp-tascmac.sty
+2022/03/11 | 2374 | macros/luatex/generic/luatexja/src/patches/lltjp-unicode-math.sty
+2022/03/11 | 3371 | macros/luatex/generic/luatexja/src/patches/lltjp-xunicode.sty
+2022/03/11 | 580 | macros/luatex/generic/luatexja/tool/blocks2defcharrange.rb
+2022/03/11 | 1224 | macros/luatex/generic/luatexja/tool/chars2defcharrange.rb
+2022/03/11 | 1130 | macros/luatex/generic/luatexja/tool/function_uax50.lua
+2022/03/11 | 1397 | macros/luatex/generic/luatexja/tool/ivslist.tex
+2022/03/11 | 7790 | macros/luatex/generic/luatexja/tool/jfm-convert.lua
+2022/03/11 | 551 | macros/luatex/generic/luatexja/tool/jfm-readable.rb
+2022/03/11 | 6060 | macros/luatex/generic/luatexja/tool/kyoikukanjiChars.tex
+2022/03/11 | 4262 | macros/luatex/generic/luatexja/tool/kyoikukanji.txt
+2022/03/11 | 3313 | macros/luatex/generic/luatexja/tool/ltj-unicode-ccfix_make2.pl
+2022/03/11 | 355 | macros/luatex/generic/luatexja/tool/otf-AdobeMingStd-Light.txt
+2022/03/11 | 326 | macros/luatex/generic/luatexja/tool/otf-AdobeMyungjoStd-Medium.txt
+2022/03/11 | 317 | macros/luatex/generic/luatexja/tool/otf-AdobeSongStd-Light.txt
+2022/03/11 | 896 | macros/luatex/generic/luatexja/tool/otf-KozMinPr6N-Regular.txt
+2022/03/11 | 945 | macros/luatex/generic/luatexja/tool/table_ivd_aj1.lua
+2022/03/11 | 3100 | macros/luatex/generic/luatexja/tool/table_jisx0208.tex
+2022/03/11 | 11335 | macros/luatex/generic/luatexja/tool/unicodeBlocks.tex
+2022/03/11 | 3825006 | macros/luatex/generic/luatexja.zip
2021/07/10 | 9075 | macros/luatex/generic/luatexko/ChangeLog
2021/07/10 | 338346 | macros/luatex/generic/luatexko/luatexko-doc.pdf
2021/07/10 | 35829 | macros/luatex/generic/luatexko/luatexko-doc.tex
@@ -238535,13 +238526,13 @@
2007/07/13 | 9394 | macros/omega/latex/contrib/tamil-omega/yudit/Tamil2.my
2007/07/13 | 11462 | macros/omega/latex/contrib/tamil-omega/yudit/yudit.properties
2007/12/12 | 900761 | macros/omega/latex/contrib/tamil-omega.zip
-2021/05/16 | 6139 | macros/optex/base/alloc.opm
-2022/01/24 | 5439 | macros/optex/base/basic-macros.opm
-2021/04/07 | 33294 | macros/optex/base/bib-iso690.opm
+2022/03/08 | 6806 | macros/optex/base/alloc.opm
+2022/02/21 | 5439 | macros/optex/base/basic-macros.opm
+2022/02/04 | 33387 | macros/optex/base/bib-iso690.opm
2021/04/07 | 5800 | macros/optex/base/bib-simple.opm
2021/05/16 | 13887 | macros/optex/base/cite-bib.opm
-2021/07/16 | 18762 | macros/optex/base/colors.opm
-2022/01/13 | 14449 | macros/optex/base/doc.opm
+2022/03/07 | 20216 | macros/optex/base/colors.opm
+2022/02/05 | 14450 | macros/optex/base/doc.opm
2021/04/22 | 657 | macros/optex/base/f-adventor.opm
2021/07/07 | 9407 | macros/optex/base/fams-ini.opm
2021/04/22 | 1156 | macros/optex/base/f-antt.opm
@@ -238554,7 +238545,7 @@
2021/05/21 | 959 | macros/optex/base/f-erewhon.opm
2021/04/22 | 882 | macros/optex/base/f-garamondl.opm
2021/04/22 | 635 | macros/optex/base/f-gfsbodoni.opm
-2021/04/30 | 10138 | macros/optex/base/f-heros.opm
+2022/02/01 | 10721 | macros/optex/base/f-heros.opm
2021/01/07 | 1201 | macros/optex/base/f-kerkis.opm
2021/04/27 | 1468 | macros/optex/base/f-kpfonts.opm
2021/04/27 | 2393 | macros/optex/base/f-libertine.opm
@@ -238562,15 +238553,15 @@
2021/04/27 | 1527 | macros/optex/base/f-libertinus.opm
2021/04/22 | 658 | macros/optex/base/f-librecaslon.opm
2021/01/07 | 1536 | macros/optex/base/f-lido.opm
-2021/04/28 | 8821 | macros/optex/base/f-lmfonts.opm
+2022/02/22 | 8815 | macros/optex/base/f-lmfonts.opm
2021/04/22 | 1200 | macros/optex/base/f-merriweather.opm
2021/04/27 | 1337 | macros/optex/base/f-newcm.opm
2022/01/19 | 9000 | macros/optex/base/fnotes.opm
-2021/01/07 | 4446 | macros/optex/base/fonts-catalog.opm
-2021/05/16 | 9452 | macros/optex/base/fonts-opmac.opm
-2021/08/05 | 1671 | macros/optex/base/fonts-preload.opm
-2021/05/02 | 10066 | macros/optex/base/fonts-resize.opm
-2021/09/24 | 45971 | macros/optex/base/fonts-select.opm
+2022/02/22 | 4553 | macros/optex/base/fonts-catalog.opm
+2022/02/22 | 9448 | macros/optex/base/fonts-opmac.opm
+2022/02/12 | 2423 | macros/optex/base/fonts-preload.opm
+2022/02/22 | 13849 | macros/optex/base/fonts-resize.opm
+2022/03/06 | 39961 | macros/optex/base/fonts-select.opm
2021/04/22 | 694 | macros/optex/base/f-pagella.opm
2021/04/22 | 1515 | macros/optex/base/f-poltawski.opm
2021/04/27 | 2617 | macros/optex/base/f-roboto.opm
@@ -238579,51 +238570,53 @@
2021/04/22 | 1115 | macros/optex/base/f-technika.opm
2021/04/22 | 684 | macros/optex/base/f-termes.opm
2021/04/22 | 762 | macros/optex/base/f-xcharter.opm
-2021/07/16 | 20454 | macros/optex/base/graphics.opm
+2022/03/06 | 20440 | macros/optex/base/graphics.opm
2021/01/07 | 2741 | macros/optex/base/hisyntax-c.opm
2021/01/07 | 1005 | macros/optex/base/hisyntax-html.opm
+2022/02/11 | 2916 | macros/optex/base/hisyntax-lua.opm
2021/07/16 | 9751 | macros/optex/base/hi-syntax.opm
2021/07/16 | 3014 | macros/optex/base/hisyntax-python.opm
2021/01/07 | 1566 | macros/optex/base/hisyntax-tex.opm
2021/08/31 | 9966 | macros/optex/base/hyperlinks.opm
-2021/03/29 | 11861 | macros/optex/base/hyphen-lan.opm
2021/08/02 | 12428 | macros/optex/base/if-macros.opm
-2021/01/06 | 3270 | macros/optex/base/keyval.opm
-2022/01/14 | 9424 | macros/optex/base/languages.opm
+2022/02/28 | 3269 | macros/optex/base/keyval.opm
+2022/02/19 | 4588 | macros/optex/base/lang-data.opm
+2022/02/19 | 15985 | macros/optex/base/lang-decl.opm
+2022/02/19 | 7290 | macros/optex/base/languages.opm
2021/03/10 | 5218 | macros/optex/base/lists.opm
2021/01/11 | 2377 | macros/optex/base/logos.opm
2021/04/06 | 7398 | macros/optex/base/luatex-ini.opm
-2021/07/21 | 19140 | macros/optex/base/makeindex.opm
+2022/02/19 | 19130 | macros/optex/base/makeindex.opm
2021/07/18 | 6490 | macros/optex/base/maketoc.opm
2021/03/15 | 3770 | macros/optex/base/margins.opm
2021/04/20 | 13569 | macros/optex/base/mathclass.opm
2021/09/15 | 44605 | macros/optex/base/math-macros.opm
-2021/08/05 | 9694 | macros/optex/base/math-preload.opm
-2021/08/16 | 11589 | macros/optex/base/math-unicode.opm
-2021/04/25 | 12400 | macros/optex/base/more-macros.opm
+2022/02/22 | 9695 | macros/optex/base/math-preload.opm
+2022/02/21 | 11588 | macros/optex/base/math-unicode.opm
+2022/02/03 | 12400 | macros/optex/base/more-macros.opm
2022/01/13 | 4857 | macros/optex/base/multicolumns.opm
-2022/01/24 | 4127 | macros/optex/base/optex.ini
-2021/12/21 | 23464 | macros/optex/base/optex.lua
-2022/01/13 | 7116 | macros/optex/base/others.opm
+2022/03/11 | 4124 | macros/optex/base/optex.ini
+2022/03/10 | 26533 | macros/optex/base/optex.lua
+2022/02/16 | 7728 | macros/optex/base/others.opm
2021/02/15 | 4624 | macros/optex/base/outlines.opm
-2021/08/04 | 11206 | macros/optex/base/output.opm
-2021/07/16 | 25543 | macros/optex/base/parameters.opm
+2022/03/07 | 11274 | macros/optex/base/output.opm
+2022/02/04 | 25956 | macros/optex/base/parameters.opm
2021/02/08 | 5319 | macros/optex/base/pdfuni-string.opm
-2022/01/13 | 14183 | macros/optex/base/plain-macros.opm
+2022/02/19 | 14535 | macros/optex/base/plain-macros.opm
2022/01/13 | 13736 | macros/optex/base/prefixed.opm
2021/01/07 | 2203 | macros/optex/base/print-unimath.opm
-2022/01/22 | 5289 | macros/optex/base/references.opm
-2021/07/21 | 6240 | macros/optex/base/ref-file.opm
+2022/02/01 | 5290 | macros/optex/base/references.opm
+2022/02/05 | 6776 | macros/optex/base/ref-file.opm
2022/01/13 | 20808 | macros/optex/base/sections.opm
-2022/01/13 | 12909 | macros/optex/base/slides.opm
+2022/03/08 | 12879 | macros/optex/base/slides.opm
2022/01/13 | 2754 | macros/optex/base/styles.opm
-2021/08/04 | 27400 | macros/optex/base/table.opm
-2021/04/13 | 122831 | macros/optex/base/uni-lcuc.opm
-2022/01/06 | 19820 | macros/optex/base/unimath-codes.opm
-2021/01/31 | 241445 | macros/optex/base/unimath-table.opm
-2021/04/30 | 16097 | macros/optex/base/usebib.opm
-2022/01/13 | 17055 | macros/optex/base/verbatim.opm
-2020/12/05 | 9599 | macros/optex/demo/op-biblist.bib
+2022/02/25 | 27551 | macros/optex/base/table.opm
+2022/02/05 | 122830 | macros/optex/base/uni-lcuc.opm
+2022/02/22 | 20511 | macros/optex/base/unimath-codes.opm
+2022/02/08 | 241449 | macros/optex/base/unimath-table.opm
+2022/02/08 | 16053 | macros/optex/base/usebib.opm
+2022/02/22 | 17108 | macros/optex/base/verbatim.opm
+2022/02/19 | 9599 | macros/optex/demo/op-biblist.bib
2022/01/22 | 3498 | macros/optex/demo/op-demo.tex
2021/01/07 | 1192 | macros/optex/demo/op-letter-cs.tex
2021/01/07 | 573 | macros/optex/demo/op-letter-en.tex
@@ -238634,19 +238627,22 @@
2021/05/27 | 518 | macros/optex/doc/mte-doc.tex
2022/01/13 | 34625 | macros/optex/doc/omls.tex
2020/05/16 | 1460 | macros/optex/doc/optex.1
-2022/01/24 | 1399602 | macros/optex/doc/optex-doc.pdf
-2022/01/24 | 4476 | macros/optex/doc/optex-doc.tex
-2021/08/27 | 69274 | macros/optex/doc/optex-math.tex
-2022/01/13 | 8477 | macros/optex/doc/optex-techdoc.tex
-2022/01/24 | 87535 | macros/optex/doc/optex-userdoc.tex
+2022/03/11 | 1409811 | macros/optex/doc/optex-doc.pdf
+2022/03/11 | 4482 | macros/optex/doc/optex-doc.tex
+2022/02/21 | 69742 | macros/optex/doc/optex-math.tex
+2022/02/21 | 8441 | macros/optex/doc/optex-techdoc.tex
+2022/03/07 | 87984 | macros/optex/doc/optex-userdoc.tex
2021/05/02 | 1949 | macros/optex/pkg/emoji.opm
+2022/03/05 | 327 | macros/optex/pkg/minim-mp.opm
+2022/03/06 | 7513 | macros/optex/pkg/minim.opm
+2022/03/06 | 3196 | macros/optex/pkg/minim-pdf.opm
2021/05/27 | 21561 | macros/optex/pkg/mte.opm
-2020/12/20 | 1087 | macros/optex/pkg/plain-at.opm
+2022/02/19 | 1282 | macros/optex/pkg/plain-at.opm
2020/11/11 | 85045 | macros/optex/pkg/qrcode.opm
-2021/07/21 | 1318 | macros/optex/pkg/tikz.opm
+2022/03/05 | 4556 | macros/optex/pkg/tikz.opm
2021/05/02 | 7597 | macros/optex/pkg/vlna.opm
-2022/01/24 | 6789 | macros/optex/README
-2022/01/28 | 2364657 | macros/optex.zip
+2022/03/11 | 7489 | macros/optex/README
+2022/03/11 | 2386782 | macros/optex.zip
2022/01/06 | 732 | macros/pdftex/mptopdf/doc/context/scripts/mkii/mptopdf.man
2022/01/06 | 4557 | macros/pdftex/mptopdf/scripts/context/perl/mptopdf.pl
2022/01/06 | 4608 | macros/pdftex/mptopdf/scripts/context/stubs/mswin/mptopdf.exe
@@ -280997,9 +280993,9 @@
2019/02/28 | 6008 | systems/texlive/tlnet/archive/beamertheme-saintpetersburg.source.r45877.tar.xz
2021/07/26 | 40528 | systems/texlive/tlnet/archive/beamertheme-simpledarkblue.doc.r60061.tar.xz
2021/07/26 | 1568 | systems/texlive/tlnet/archive/beamertheme-simpledarkblue.r60061.tar.xz
-2021/11/11 | 578520 | systems/texlive/tlnet/archive/beamertheme-trigon.doc.r61020.tar.xz
-2021/11/11 | 6060 | systems/texlive/tlnet/archive/beamertheme-trigon.r61020.tar.xz
-2021/11/11 | 14932 | systems/texlive/tlnet/archive/beamertheme-trigon.source.r61020.tar.xz
+2022/03/11 | 586384 | systems/texlive/tlnet/archive/beamertheme-trigon.doc.r62597.tar.xz
+2022/03/11 | 6056 | systems/texlive/tlnet/archive/beamertheme-trigon.r62597.tar.xz
+2022/03/11 | 15120 | systems/texlive/tlnet/archive/beamertheme-trigon.source.r62597.tar.xz
2019/02/28 | 340140 | systems/texlive/tlnet/archive/beamertheme-upenn-bc.doc.r29937.tar.xz
2019/02/28 | 1660 | systems/texlive/tlnet/archive/beamertheme-upenn-bc.r29937.tar.xz
2019/02/28 | 919784 | systems/texlive/tlnet/archive/beamer-tut-pt.doc.r15878.tar.xz
@@ -282237,7 +282233,7 @@
2022/02/07 | 580 | systems/texlive/tlnet/archive/collection-langcjk.r61912.tar.xz
2020/03/04 | 608 | systems/texlive/tlnet/archive/collection-langcyrillic.r54074.tar.xz
2020/03/04 | 372 | systems/texlive/tlnet/archive/collection-langczechslovak.r54074.tar.xz
-2022/03/10 | 868 | systems/texlive/tlnet/archive/collection-langenglish.r62565.tar.xz
+2022/03/11 | 864 | systems/texlive/tlnet/archive/collection-langenglish.r62606.tar.xz
2021/12/28 | 716 | systems/texlive/tlnet/archive/collection-langeuropean.r61419.tar.xz
2022/02/15 | 608 | systems/texlive/tlnet/archive/collection-langfrench.r62027.tar.xz
2020/07/01 | 628 | systems/texlive/tlnet/archive/collection-langgerman.r55706.tar.xz
@@ -282554,8 +282550,8 @@
2020/06/24 | 31152 | systems/texlive/tlnet/archive/cquthesis.source.r55643.tar.xz
2019/02/28 | 29448 | systems/texlive/tlnet/archive/crbox.doc.r29803.tar.xz
2019/02/28 | 1544 | systems/texlive/tlnet/archive/crbox.r29803.tar.xz
-2022/03/05 | 127428 | systems/texlive/tlnet/archive/create-theorem.doc.r62402.tar.xz
-2022/03/05 | 8028 | systems/texlive/tlnet/archive/create-theorem.r62402.tar.xz
+2022/03/11 | 127496 | systems/texlive/tlnet/archive/create-theorem.doc.r62596.tar.xz
+2022/03/11 | 8036 | systems/texlive/tlnet/archive/create-theorem.r62596.tar.xz
2022/03/03 | 125188 | systems/texlive/tlnet/archive/crefthe.doc.r62350.tar.xz
2022/03/03 | 2900 | systems/texlive/tlnet/archive/crefthe.r62350.tar.xz
2020/03/24 | 34244 | systems/texlive/tlnet/archive/crimson.doc.r54512.tar.xz
@@ -283299,8 +283295,8 @@
2021/10/31 | 1000 | systems/texlive/tlnet/archive/dsserif.source.r60898.tar.xz
2021/12/25 | 426648 | systems/texlive/tlnet/archive/dtk-bibliography.doc.r61396.tar.xz
2021/12/25 | 516 | systems/texlive/tlnet/archive/dtk-bibliography.r61396.tar.xz
-2021/11/14 | 79408 | systems/texlive/tlnet/archive/dtk.doc.r61047.tar.xz
-2021/11/14 | 16608 | systems/texlive/tlnet/archive/dtk.r61047.tar.xz
+2022/03/11 | 78952 | systems/texlive/tlnet/archive/dtk.doc.r62608.tar.xz
+2022/03/11 | 16616 | systems/texlive/tlnet/archive/dtk.r62608.tar.xz
2021/02/26 | 20492 | systems/texlive/tlnet/archive/dtl.aarch64-linux.r57930.tar.xz
2021/02/27 | 21676 | systems/texlive/tlnet/archive/dtl.amd64-freebsd.r57941.tar.xz
2021/02/24 | 19228 | systems/texlive/tlnet/archive/dtl.amd64-netbsd.r57877.tar.xz
@@ -283599,9 +283595,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
-2022/03/10 | 614704 | systems/texlive/tlnet/archive/easybook.doc.r62556.tar.xz
-2022/03/10 | 16568 | systems/texlive/tlnet/archive/easybook.r62556.tar.xz
-2022/03/10 | 16472 | systems/texlive/tlnet/archive/easybook.source.r62556.tar.xz
+2022/03/11 | 614880 | systems/texlive/tlnet/archive/easybook.doc.r62599.tar.xz
+2022/03/11 | 16604 | systems/texlive/tlnet/archive/easybook.r62599.tar.xz
+2022/03/11 | 16516 | systems/texlive/tlnet/archive/easybook.source.r62599.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
@@ -289364,9 +289360,9 @@
2019/02/28 | 2324 | systems/texlive/tlnet/archive/progressbar.r33822.tar.xz
2019/02/28 | 80808 | systems/texlive/tlnet/archive/progress.doc.r19519.tar.xz
2019/02/28 | 4192 | systems/texlive/tlnet/archive/progress.r19519.tar.xz
-2022/02/28 | 692336 | systems/texlive/tlnet/archive/projlib.doc.r62251.tar.xz
-2022/02/28 | 16540 | systems/texlive/tlnet/archive/projlib.r62251.tar.xz
-2022/02/28 | 41260 | systems/texlive/tlnet/archive/projlib.source.r62251.tar.xz
+2022/03/11 | 680020 | systems/texlive/tlnet/archive/projlib.doc.r62601.tar.xz
+2022/03/11 | 33020 | systems/texlive/tlnet/archive/projlib.r62601.tar.xz
+2022/03/11 | 22204 | systems/texlive/tlnet/archive/projlib.source.r62601.tar.xz
2022/02/08 | 446708 | systems/texlive/tlnet/archive/proof-at-the-end.doc.r61933.tar.xz
2022/02/08 | 6944 | systems/texlive/tlnet/archive/proof-at-the-end.r61933.tar.xz
2022/02/08 | 20480 | systems/texlive/tlnet/archive/proof-at-the-end.source.r61933.tar.xz
@@ -290771,8 +290767,6 @@
2019/02/28 | 511988 | systems/texlive/tlnet/archive/startex.doc.r35718.tar.xz
2019/02/28 | 10172 | systems/texlive/tlnet/archive/startex.r35718.tar.xz
2019/02/28 | 25196 | systems/texlive/tlnet/archive/startex.source.r35718.tar.xz
-2020/10/31 | 243844 | systems/texlive/tlnet/archive/startlatex2e.doc.r56809.tar.xz
-2020/10/31 | 496 | systems/texlive/tlnet/archive/startlatex2e.r56809.tar.xz
2019/02/28 | 177524 | systems/texlive/tlnet/archive/statex2.doc.r23961.tar.xz
2019/02/28 | 5296 | systems/texlive/tlnet/archive/statex2.r23961.tar.xz
2019/02/28 | 177212 | systems/texlive/tlnet/archive/statex.doc.r20306.tar.xz
@@ -291439,7 +291433,7 @@
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r55172.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r55172.tar.xz
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r55172.tar.xz
-2022/03/10 | 404208 | systems/texlive/tlnet/archive/texlive-scripts.doc.r62542.tar.xz
+2022/03/11 | 404252 | systems/texlive/tlnet/archive/texlive-scripts.doc.r62579.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
@@ -291463,7 +291457,7 @@
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r55172.tar.xz
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r55172.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r55172.tar.xz
-2022/03/10 | 108824 | systems/texlive/tlnet/archive/texlive-scripts.r62542.tar.xz
+2022/03/11 | 108848 | systems/texlive/tlnet/archive/texlive-scripts.r62579.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
@@ -291928,8 +291922,8 @@
2022/02/22 | 14128 | systems/texlive/tlnet/archive/tipauni.source.r62131.tar.xz
2019/02/28 | 381176 | systems/texlive/tlnet/archive/tipfr.doc.r38646.tar.xz
2019/02/28 | 5880 | systems/texlive/tlnet/archive/tipfr.r38646.tar.xz
-2021/09/20 | 152220 | systems/texlive/tlnet/archive/tiscreen.doc.r60551.tar.xz
-2021/09/20 | 1584 | systems/texlive/tlnet/archive/tiscreen.r60551.tar.xz
+2022/03/11 | 228136 | systems/texlive/tlnet/archive/tiscreen.doc.r62603.tar.xz
+2022/03/11 | 3184 | systems/texlive/tlnet/archive/tiscreen.r62603.tar.xz
2019/02/28 | 261184 | systems/texlive/tlnet/archive/titlecaps.doc.r36170.tar.xz
2019/02/28 | 4148 | systems/texlive/tlnet/archive/titlecaps.r36170.tar.xz
2019/02/28 | 2928 | systems/texlive/tlnet/archive/titlefoot.r15878.tar.xz
@@ -292456,8 +292450,8 @@
2022/01/30 | 159756 | systems/texlive/tlnet/archive/uptex-base.doc.r61795.tar.xz
2022/01/30 | 9800 | systems/texlive/tlnet/archive/uptex-base.r61795.tar.xz
2022/02/23 | 241568 | systems/texlive/tlnet/archive/uptex.doc.r62145.tar.xz
-2020/03/04 | 5168 | systems/texlive/tlnet/archive/uptex-fonts.doc.r54045.tar.xz
-2020/03/04 | 169608 | systems/texlive/tlnet/archive/uptex-fonts.r54045.tar.xz
+2022/03/11 | 5156 | systems/texlive/tlnet/archive/uptex-fonts.doc.r62593.tar.xz
+2022/03/11 | 182744 | systems/texlive/tlnet/archive/uptex-fonts.r62593.tar.xz
2021/04/13 | 6986300 | systems/texlive/tlnet/archive/uptex.i386-cygwin.r58851.tar.xz
2021/04/13 | 7057044 | systems/texlive/tlnet/archive/uptex.i386-freebsd.r58850.tar.xz
2021/04/13 | 7297748 | systems/texlive/tlnet/archive/uptex.i386-linux.r58850.tar.xz
@@ -293105,9 +293099,9 @@
2019/02/28 | 4180 | systems/texlive/tlnet/archive/xpunctuate.source.r26641.tar.xz
2019/02/28 | 210248 | systems/texlive/tlnet/archive/xq.doc.r35211.tar.xz
2019/02/28 | 44060 | systems/texlive/tlnet/archive/xq.r35211.tar.xz
-2020/03/05 | 368976 | systems/texlive/tlnet/archive/xsavebox.doc.r54097.tar.xz
-2020/03/05 | 4244 | systems/texlive/tlnet/archive/xsavebox.r54097.tar.xz
-2020/03/05 | 4180 | systems/texlive/tlnet/archive/xsavebox.source.r54097.tar.xz
+2022/03/11 | 377388 | systems/texlive/tlnet/archive/xsavebox.doc.r62605.tar.xz
+2022/03/11 | 4244 | systems/texlive/tlnet/archive/xsavebox.r62605.tar.xz
+2022/03/11 | 4252 | systems/texlive/tlnet/archive/xsavebox.source.r62605.tar.xz
2022/02/13 | 3026636 | systems/texlive/tlnet/archive/xsim.doc.r61988.tar.xz
2022/02/13 | 32648 | systems/texlive/tlnet/archive/xsim.r61988.tar.xz
2019/06/24 | 789680 | systems/texlive/tlnet/archive/xskak.doc.r51432.tar.xz
@@ -293264,16 +293258,16 @@
2020/07/18 | 47816 | systems/texlive/tlnet/archive/zztex.doc.r55862.tar.xz
2020/07/18 | 101724 | systems/texlive/tlnet/archive/zztex.r55862.tar.xz
2022/02/22 | 106745 | systems/texlive/tlnet/install-tl
-2022/03/10 | 6810726 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2022/03/10 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2022/03/10 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2022/03/11 | 6810665 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2022/03/11 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2022/03/11 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2021/04/11 | 4945 | systems/texlive/tlnet/install-tl-windows.bat
-2022/03/10 | 20874617 | systems/texlive/tlnet/install-tl-windows.exe
-2022/03/10 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2022/03/10 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2022/03/10 | 25628851 | systems/texlive/tlnet/install-tl.zip
-2022/03/10 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2022/03/10 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2022/03/11 | 20871937 | systems/texlive/tlnet/install-tl-windows.exe
+2022/03/11 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2022/03/11 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2022/03/11 | 25628877 | systems/texlive/tlnet/install-tl.zip
+2022/03/11 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2022/03/11 | 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
@@ -293283,8 +293277,8 @@
2021/07/03 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
2022/01/12 | 49482 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
-2022/03/10 | 7464 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
-2022/03/09 | 213092 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt
+2022/03/11 | 7562 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2022/03/11 | 213092 | 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
2021/02/27 | 5390 | systems/texlive/tlnet/tlpkg/installer/install-menu-extl.pl
@@ -293325,12 +293319,12 @@
2021/05/16 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2021/12/21 | 5429 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2021/12/21 | 27582 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2022/03/10 | 17185194 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2022/03/10 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2022/03/11 | 17184093 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2022/03/11 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2021/12/21 | 86654 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2022/03/10 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2022/03/10 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2022/03/10 | 2357768 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2022/03/11 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2022/03/11 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2022/03/11 | 2355992 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2021/12/21 | 58848 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2021/12/21 | 42112 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2021/12/21 | 16130 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -296035,7 +296029,7 @@
2022/02/26 | 93844 | systems/texlive/tlnet/tlpkg/translations/fr.po
2022/02/26 | 87555 | systems/texlive/tlnet/tlpkg/translations/it.po
2022/02/26 | 62194 | systems/texlive/tlnet/tlpkg/translations/ja.po
-2022/03/10 | 46911 | systems/texlive/tlnet/tlpkg/translations/messages.pot
+2022/03/11 | 46911 | systems/texlive/tlnet/tlpkg/translations/messages.pot
2022/02/26 | 57618 | systems/texlive/tlnet/tlpkg/translations/nl.po
2022/02/26 | 66753 | systems/texlive/tlnet/tlpkg/translations/pl.po
2022/02/26 | 82407 | systems/texlive/tlnet/tlpkg/translations/pt_BR.po
@@ -298485,7 +298479,7 @@
2020/10/03 | 318630 | systems/win32/miktex/tm/packages/filehook.tar.lzma
2012/12/04 | 924573 | systems/win32/miktex/tm/packages/fileinfo.tar.lzma
2011/09/21 | 281409 | systems/win32/miktex/tm/packages/filemod.tar.lzma
-2022/03/10 | 643499 | systems/win32/miktex/tm/packages/files.csv.lzma
+2022/03/11 | 643499 | 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
@@ -300040,9 +300034,9 @@
2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma
2022/01/29 | 39717 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma
2022/01/29 | 43173 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/03/10 | 269743 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2022/03/10 | 1432287 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2022/03/10 | 1324445 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2022/03/11 | 269662 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2022/03/11 | 1431554 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2022/03/11 | 1323484 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2022/01/29 | 13505 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma
2022/01/29 | 14408 | 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
@@ -300266,192 +300260,192 @@
2018/04/09 | 400132 | systems/win32/miktex/tm/packages/newunicodechar.tar.lzma
2011/09/19 | 101312 | systems/win32/miktex/tm/packages/newvbtm.tar.lzma
2021/03/17 | 232249 | systems/win32/miktex/tm/packages/newverbs.tar.lzma
-2022/03/10 | 643487 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2022/03/10 | 51556 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2022/03/10 | 57329 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2022/03/10 | 1021841 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2022/03/10 | 1156461 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2022/03/10 | 28797 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2022/03/10 | 31519 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2022/03/10 | 30145 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2022/03/10 | 35240 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2022/03/10 | 56615 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2022/03/10 | 65052 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2022/03/10 | 86756 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
-2022/03/10 | 95281 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2022/03/10 | 68870 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2022/03/10 | 77064 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2022/03/10 | 27244 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2022/03/10 | 31339 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2022/03/10 | 332411 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
-2022/03/10 | 394367 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2022/03/10 | 32952 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2022/03/10 | 37078 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2022/03/10 | 51483 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2022/03/10 | 57267 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2022/03/10 | 5024 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma
-2022/03/10 | 244958 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2022/03/10 | 270298 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2022/03/10 | 179875 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
-2022/03/10 | 196114 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2022/03/10 | 92913 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2022/03/10 | 103091 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2022/03/10 | 21311 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2022/03/10 | 24118 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2022/03/10 | 481497 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2022/03/10 | 46063 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2022/03/10 | 52092 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2022/03/10 | 285712 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2022/03/10 | 326657 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2022/03/10 | 41304 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2022/03/10 | 45823 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2022/03/10 | 120614 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2022/03/10 | 135375 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2022/03/10 | 1302480 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
-2022/03/10 | 1454761 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2022/03/10 | 99814 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2022/03/10 | 113050 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2022/03/10 | 43643 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2022/03/10 | 48822 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2022/03/10 | 25104 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2022/03/10 | 28566 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2022/03/10 | 56992 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2022/03/10 | 63308 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2022/03/10 | 135947 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2022/03/10 | 155494 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2022/03/10 | 73476 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2022/03/10 | 78970 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2022/03/10 | 72011 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2022/03/10 | 81459 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2022/03/10 | 259254 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2022/03/10 | 296036 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2022/03/10 | 22146 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
-2022/03/10 | 25057 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2022/03/10 | 97199 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2022/03/10 | 112586 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2022/03/10 | 64540 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2022/03/10 | 73146 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2022/03/10 | 96630 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2022/03/10 | 115655 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2022/03/10 | 38426 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2022/03/10 | 43824 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2022/03/10 | 484369 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
-2022/03/10 | 565929 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2022/03/10 | 203835 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
-2022/03/10 | 247331 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
-2022/03/10 | 152030 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
-2022/03/10 | 168818 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2022/03/10 | 95432 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2022/03/10 | 109478 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2022/03/10 | 16501 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
-2022/03/10 | 18367 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2022/03/10 | 28421 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2022/03/10 | 30540 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2022/03/10 | 631279 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2022/03/10 | 681940 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2022/03/10 | 532455 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2022/03/10 | 598229 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2022/03/10 | 477846 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
-2022/03/10 | 528016 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2022/03/10 | 93958 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2022/03/10 | 103335 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2022/03/10 | 1752145 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2022/03/10 | 1982083 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2022/03/10 | 68008 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2022/03/10 | 74068 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2022/03/10 | 27590 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2022/03/10 | 32135 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2022/03/10 | 7752 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2022/03/10 | 8782 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2022/03/10 | 190505 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2022/03/10 | 208806 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2022/03/10 | 251128 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2022/03/10 | 286410 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2022/03/10 | 99255 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2022/03/10 | 104555 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2022/03/10 | 126532 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2022/03/10 | 139099 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2022/03/10 | 288199 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2022/03/10 | 325269 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2022/03/10 | 199831 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2022/03/10 | 181513 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2022/03/10 | 49769 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2022/03/10 | 55567 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2022/03/10 | 31411 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2022/03/10 | 35166 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2022/03/10 | 38561 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2022/03/10 | 43915 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2022/03/10 | 43360 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2022/03/10 | 47922 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2022/03/10 | 45740 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2022/03/10 | 52324 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2022/03/10 | 197035 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
-2022/03/10 | 213277 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2022/03/10 | 36048 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
-2022/03/10 | 41179 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2022/03/10 | 755740 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2022/03/10 | 824367 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2022/03/10 | 200394 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2022/03/10 | 202833 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2022/03/10 | 210273 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2022/03/10 | 245095 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2022/03/10 | 79023 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2022/03/10 | 88150 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2022/03/10 | 1181127 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2022/03/10 | 1322742 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2022/03/10 | 20183 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2022/03/10 | 23944 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2022/03/10 | 31587 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2022/03/10 | 37375 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2022/03/10 | 64708 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2022/03/10 | 72884 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2022/03/10 | 50798 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2022/03/10 | 58663 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2022/03/10 | 693067 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
-2022/03/10 | 758953 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
-2022/03/10 | 1357072 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2022/03/10 | 1501236 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2022/03/10 | 42817 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
-2022/03/10 | 52477 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2022/03/10 | 57617 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2022/03/10 | 63737 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2022/03/10 | 25549 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2022/03/10 | 27634 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2022/03/10 | 16559 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2022/03/10 | 18492 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2022/03/10 | 64488 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2022/03/10 | 71005 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2022/03/10 | 156962 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2022/03/10 | 173006 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2022/03/10 | 58665 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2022/03/10 | 67251 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2022/03/10 | 100485 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
-2022/03/10 | 107702 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2022/03/10 | 2694873 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
-2022/03/10 | 2820685 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2022/03/10 | 55284 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
-2022/03/10 | 62381 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2022/03/10 | 37116 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2022/03/10 | 41202 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2022/03/10 | 28690 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2022/03/10 | 34052 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2022/03/10 | 67703 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2022/03/10 | 73526 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2022/03/10 | 316241 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2022/03/10 | 351695 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2022/03/10 | 55756 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
-2022/03/10 | 57525 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2022/03/10 | 591568 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2022/03/10 | 629431 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2022/03/10 | 39725 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2022/03/10 | 43223 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/03/10 | 269777 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2022/03/10 | 1433005 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2022/03/10 | 1323321 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2022/03/10 | 13514 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2022/03/10 | 14409 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2022/03/11 | 643487 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2022/03/11 | 51557 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2022/03/11 | 57329 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2022/03/11 | 1021845 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2022/03/11 | 1156463 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2022/03/11 | 28795 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2022/03/11 | 31520 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2022/03/11 | 30145 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2022/03/11 | 35241 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2022/03/11 | 56616 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2022/03/11 | 65054 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2022/03/11 | 86758 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2022/03/11 | 95283 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2022/03/11 | 68872 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2022/03/11 | 77067 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2022/03/11 | 27246 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2022/03/11 | 31341 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2022/03/11 | 332411 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2022/03/11 | 394369 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2022/03/11 | 32953 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2022/03/11 | 37080 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2022/03/11 | 51484 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2022/03/11 | 57269 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2022/03/11 | 5027 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma
+2022/03/11 | 244959 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2022/03/11 | 270297 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2022/03/11 | 179876 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2022/03/11 | 196115 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2022/03/11 | 92916 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2022/03/11 | 103091 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2022/03/11 | 21313 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2022/03/11 | 24120 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2022/03/11 | 481497 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2022/03/11 | 46065 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2022/03/11 | 52091 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2022/03/11 | 285712 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2022/03/11 | 326659 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2022/03/11 | 41304 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2022/03/11 | 45823 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2022/03/11 | 120616 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2022/03/11 | 135375 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2022/03/11 | 1302480 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2022/03/11 | 1454763 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2022/03/11 | 99815 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2022/03/11 | 113050 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2022/03/11 | 43644 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2022/03/11 | 48824 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2022/03/11 | 25105 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2022/03/11 | 28568 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2022/03/11 | 56991 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2022/03/11 | 63308 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2022/03/11 | 135946 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2022/03/11 | 155496 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2022/03/11 | 73476 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2022/03/11 | 78974 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2022/03/11 | 72013 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2022/03/11 | 81459 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2022/03/11 | 259254 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2022/03/11 | 296037 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2022/03/11 | 22146 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2022/03/11 | 25058 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2022/03/11 | 97199 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2022/03/11 | 112588 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2022/03/11 | 64542 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2022/03/11 | 73147 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2022/03/11 | 96631 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2022/03/11 | 115655 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2022/03/11 | 38425 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2022/03/11 | 43824 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2022/03/11 | 484370 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2022/03/11 | 565927 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2022/03/11 | 203836 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
+2022/03/11 | 247332 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
+2022/03/11 | 152028 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2022/03/11 | 168820 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2022/03/11 | 95431 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2022/03/11 | 109478 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2022/03/11 | 16501 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2022/03/11 | 18368 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2022/03/11 | 28420 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2022/03/11 | 30541 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2022/03/11 | 631280 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2022/03/11 | 681940 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2022/03/11 | 532452 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2022/03/11 | 598229 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2022/03/11 | 477846 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2022/03/11 | 528017 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2022/03/11 | 93959 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2022/03/11 | 103337 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2022/03/11 | 1752145 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2022/03/11 | 1982083 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2022/03/11 | 68008 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2022/03/11 | 74068 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2022/03/11 | 27589 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2022/03/11 | 32132 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2022/03/11 | 7751 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2022/03/11 | 8782 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2022/03/11 | 190503 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2022/03/11 | 208806 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2022/03/11 | 251127 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2022/03/11 | 286410 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2022/03/11 | 99252 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2022/03/11 | 104555 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2022/03/11 | 126532 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2022/03/11 | 139100 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2022/03/11 | 288197 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2022/03/11 | 325268 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2022/03/11 | 199829 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2022/03/11 | 181516 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2022/03/11 | 49767 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2022/03/11 | 55567 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2022/03/11 | 31411 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2022/03/11 | 35165 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2022/03/11 | 38559 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2022/03/11 | 43916 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2022/03/11 | 43360 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2022/03/11 | 47922 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2022/03/11 | 45741 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2022/03/11 | 52325 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2022/03/11 | 197034 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2022/03/11 | 213276 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2022/03/11 | 36048 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2022/03/11 | 41181 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2022/03/11 | 755740 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2022/03/11 | 824369 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2022/03/11 | 200393 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2022/03/11 | 202833 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2022/03/11 | 210272 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2022/03/11 | 245096 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2022/03/11 | 79023 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2022/03/11 | 88150 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2022/03/11 | 1181123 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2022/03/11 | 1322741 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2022/03/11 | 20182 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2022/03/11 | 23943 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2022/03/11 | 31585 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2022/03/11 | 37373 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2022/03/11 | 64707 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2022/03/11 | 72885 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2022/03/11 | 50798 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2022/03/11 | 58663 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2022/03/11 | 693064 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
+2022/03/11 | 758952 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2022/03/11 | 1357069 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2022/03/11 | 1501235 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2022/03/11 | 42815 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2022/03/11 | 52478 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2022/03/11 | 57616 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2022/03/11 | 63738 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2022/03/11 | 25550 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2022/03/11 | 27635 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2022/03/11 | 16559 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2022/03/11 | 18490 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2022/03/11 | 64487 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2022/03/11 | 71004 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2022/03/11 | 156962 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2022/03/11 | 173007 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2022/03/11 | 58663 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2022/03/11 | 67253 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2022/03/11 | 100483 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2022/03/11 | 107703 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2022/03/11 | 2694875 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2022/03/11 | 2820684 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2022/03/11 | 55283 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2022/03/11 | 62380 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2022/03/11 | 37114 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2022/03/11 | 41201 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2022/03/11 | 28687 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2022/03/11 | 34050 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2022/03/11 | 67702 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2022/03/11 | 73528 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2022/03/11 | 316240 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2022/03/11 | 351695 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2022/03/11 | 55754 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2022/03/11 | 57524 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2022/03/11 | 591566 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2022/03/11 | 629430 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2022/03/11 | 39724 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2022/03/11 | 43223 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2022/03/11 | 269870 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2022/03/11 | 1432985 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2022/03/11 | 1324062 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2022/03/11 | 13509 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2022/03/11 | 14408 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
2019/03/12 | 1412 | systems/win32/miktex/tm/packages/nextpage.tar.lzma
-2022/03/10 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2022/03/11 | 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
@@ -300912,7 +300906,7 @@
2022/02/22 | 6917 | systems/win32/miktex/tm/packages/preview.tar.lzma
2019/06/20 | 375963 | systems/win32/miktex/tm/packages/prftree.tar.lzma
2021/04/23 | 274028 | systems/win32/miktex/tm/packages/principia.tar.lzma
-2022/03/10 | 1007 | systems/win32/miktex/tm/packages/pr.ini
+2022/03/11 | 1007 | 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
@@ -302471,7 +302465,7 @@
2007/02/12 | 395234 | systems/win32/texshell32/WinTeXShell32.zip
2021/10/01 | 2480 | systems/win32/TLW64/00README.TLW64
2021/10/01 | 61484773 | systems/win32/TLW64/gs9550w64full-gpl.exe
-2022/03/09 | 99081361 | systems/win32/TLW64/tl-win64.zip
+2022/03/10 | 99082408 | systems/win32/TLW64/tl-win64.zip
1996/11/26 | 1822 | systems/win32/tsconfig/readme
1996/11/26 | 30343 | systems/win32/tsconfig/tsconfig.zip
1998/01/20 | 766976 | systems/win32/util/cmdsh110.exe
@@ -302704,7 +302698,7 @@
2004/06/04 | 404 | tds/tds.sed
2004/06/23 | 65418 | tds/tds.tex
2019/05/29 | 304264 | tds.zip
-2022/03/11 | 186 | timestamp
+2022/03/12 | 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 27dc4714ed..69afaf6cd4 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index 41e161e79f..c3d8e9a22f 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,122 +1,451 @@
-2022/03/10 | 99814 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2022/03/11 | 99815 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2022/03/11 | 99252 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2022/03/11 | 9765 | macros/luatex/generic/luatexja/src/addons/luatexja-ruby.sty
+2022/03/11 | 97199 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2022/03/11 | 96631 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2022/03/11 | 95431 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2022/03/11 | 95283 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2022/03/11 | 945 | macros/luatex/generic/luatexja/tool/table_ivd_aj1.lua
+2022/03/11 | 945 | macros/luatex/generic/luatexja/doc/jfm-testf.lua
+2022/03/11 | 93959 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2022/03/11 | 92916 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2022/03/11 | 896 | macros/luatex/generic/luatexja/tool/otf-KozMinPr6N-Regular.txt
+2022/03/11 | 885 | macros/luatex/generic/luatexja/src/patches/lltjp-stfloats.sty
+2022/03/11 | 88150 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2022/03/11 | 8782 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2022/03/11 | 86758 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2022/03/11 | 8660 | macros/luatex/generic/luatexja/src/ltjltxdoc.dtx
+2022/03/11 | 864 | systems/texlive/tlnet/archive/collection-langenglish.r62606.tar.xz
+2022/03/11 | 8609 | macros/luatex/generic/luatexja/src/ltj-otf.lua
+2022/03/11 | 850 | macros/latex/contrib/matapli/doc/bibliomatapli.bib
+2022/03/11 | 83441 | macros/latex/contrib/easybook/easybook.tex
+2022/03/11 | 825 | macros/luatex/generic/luatexja/src/patches/lltjp-collcell.sty
+2022/03/11 | 824369 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2022/03/11 | 81459 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2022/03/11 | 8106 | macros/luatex/generic/luatexja/src/jfm-min.lua
+2022/03/11 | 8036 | systems/texlive/tlnet/archive/create-theorem.r62596.tar.xz
+2022/03/11 | 795140 | macros/latex/contrib/projlib.zip
+2022/03/11 | 79344 | macros/latex/contrib/create-theorem/create-theorem.sty
+2022/03/11 | 79023 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2022/03/11 | 78974 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2022/03/11 | 78952 | systems/texlive/tlnet/archive/dtk.doc.r62608.tar.xz
+2022/03/11 | 7790 | macros/luatex/generic/luatexja/tool/jfm-convert.lua
+2022/03/11 | 7763980 | macros/latex/contrib/matapli.zip
+2022/03/11 | 775390 | macros/latex/contrib/matapli/doc/examples/couverture/CIMPA.png
+2022/03/11 | 7751 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2022/03/11 | 77067 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2022/03/11 | 7691 | macros/luatex/generic/luatexja/src/ltj-unicode-ccfix.lua
+2022/03/11 | 758952 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2022/03/11 | 7562 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2022/03/11 | 755740 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2022/03/11 | 75167 | macros/latex/contrib/easybook/easybook.dtx
+2022/03/11 | 7489 | macros/optex/README
+2022/03/11 | 74068 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2022/03/11 | 7370 | macros/luatex/generic/luatexja/src/ltj-math.lua
+2022/03/11 | 73528 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2022/03/11 | 73476 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2022/03/11 | 73147 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2022/03/11 | 72885 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2022/03/11 | 72013 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2022/03/11 | 717082 | macros/luatex/generic/luatexja/doc/luatexja-en.pdf
+2022/03/11 | 716490 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles.zip
+2022/03/11 | 71004 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2022/03/11 | 709623 | macros/latex/contrib/nicematrix/nicematrix.dtx
+2022/03/11 | 7026 | macros/luatex/generic/luatexja/src/ltj-pretreat.lua
+2022/03/11 | 69935 | macros/latex/contrib/matapli/doc/examples/couverture/couverture.jpg
+2022/03/11 | 693064 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
+2022/03/11 | 69217 | macros/luatex/generic/luatexja/doc/ltjltxdoc.pdf
+2022/03/11 | 6891 | macros/luatex/generic/luatexja/src/addons/luatexja-otf.sty
+2022/03/11 | 688 | macros/latex/contrib/matapli/doc/examples/modeleauteur/chap1.bib
+2022/03/11 | 68872 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2022/03/11 | 681940 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2022/03/11 | 6810665 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2022/03/11 | 68008 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2022/03/11 | 680020 | systems/texlive/tlnet/archive/projlib.doc.r62601.tar.xz
+2022/03/11 | 67702 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2022/03/11 | 676 | macros/latex/contrib/create-theorem/README.md
+2022/03/11 | 67253 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2022/03/11 | 6520 | macros/latex/contrib/matapli/doc/mataplidoc.cls
+2022/03/11 | 65054 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2022/03/11 | 6497 | macros/luatex/generic/luatexja/src/patches/lltjdefs.sty
+2022/03/11 | 64707 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2022/03/11 | 64542 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2022/03/11 | 64487 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2022/03/11 | 643499 | systems/win32/miktex/tm/packages/files.csv.lzma
+2022/03/11 | 643487 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2022/03/11 | 63738 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2022/03/11 | 63308 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2022/03/11 | 633024 | macros/latex/contrib/easybook.zip
+2022/03/11 | 631280 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2022/03/11 | 629430 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2022/03/11 | 62380 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2022/03/11 | 6235 | macros/luatex/generic/luatexja/src/ltj-latex.sty
+2022/03/11 | 6203 | macros/luatex/generic/luatexja/src/ltj-base.sty
+2022/03/11 | 617 | macros/luatex/generic/luatexja/src/patches/lltjp-array.sty
+2022/03/11 | 614880 | systems/texlive/tlnet/archive/easybook.doc.r62599.tar.xz
+2022/03/11 | 6060 | macros/luatex/generic/luatexja/tool/kyoikukanjiChars.tex
+2022/03/11 | 6056 | systems/texlive/tlnet/archive/beamertheme-trigon.r62597.tar.xz
+2022/03/11 | 598229 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2022/03/11 | 5940 | macros/luatex/generic/luatexja/src/ltj-lotf_aux.lua
+2022/03/11 | 5937 | macros/latex/contrib/matapli/doc/examples/couverture/3e.pdf
+2022/03/11 | 591676 | macros/latex/contrib/easybook/easybook.pdf
+2022/03/11 | 591566 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2022/03/11 | 5889 | macros/latex/contrib/matapli/doc/examples/couverture/4e.pdf
+2022/03/11 | 58663 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2022/03/11 | 58663 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2022/03/11 | 586384 | systems/texlive/tlnet/archive/beamertheme-trigon.doc.r62597.tar.xz
+2022/03/11 | 5850 | macros/luatex/generic/luatexja/src/patches/lltjp-fontspec.sty
+2022/03/11 | 580 | macros/luatex/generic/luatexja/tool/blocks2defcharrange.rb
+2022/03/11 | 57616 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2022/03/11 | 57524 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2022/03/11 | 57329 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2022/03/11 | 57269 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2022/03/11 | 570 | macros/latex/contrib/matapli/README.md
+2022/03/11 | 56991 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2022/03/11 | 5682 | macros/luatex/generic/luatexja/src/patches/lltjp-tascmac.sty
+2022/03/11 | 56616 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2022/03/11 | 565927 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2022/03/11 | 55754 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2022/03/11 | 556 | macros/latex/contrib/matapli/doc/auto/matapli-doc.el
+2022/03/11 | 55567 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2022/03/11 | 55450 | macros/luatex/generic/luatexja/src/ltj-jfmglue.lua
+2022/03/11 | 553 | macros/latex/contrib/jmsdelim/jmsdelim.ins
+2022/03/11 | 55283 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2022/03/11 | 551 | macros/luatex/generic/luatexja/tool/jfm-readable.rb
+2022/03/11 | 5482 | macros/latex/contrib/projlib/README.md
+2022/03/11 | 54427 | macros/luatex/generic/luatexja/src/ltj-jisx0208.lua
+2022/03/11 | 538845 | macros/luatex/generic/luatexja/doc/luatexja.dtx
+2022/03/11 | 532452 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2022/03/11 | 5302 | macros/luatex/generic/luatexja/src/addons/luatexja-adjust.sty
+2022/03/11 | 528017 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2022/03/11 | 52633 | macros/luatex/generic/luatexja/doc/luatexja-ruby.tex
+2022/03/11 | 52478 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2022/03/11 | 52325 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2022/03/11 | 5222 | macros/luatex/generic/luatexja/src/ltj-debug.lua
+2022/03/11 | 52091 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2022/03/11 | 52072 | macros/latex/contrib/matapli/doc/examples/couverture/corona.jpg
+2022/03/11 | 5156 | systems/texlive/tlnet/archive/uptex-fonts.doc.r62593.tar.xz
+2022/03/11 | 51557 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2022/03/11 | 51484 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2022/03/11 | 50798 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2022/03/11 | 5027 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma
+2022/03/11 | 501742 | macros/latex/contrib/nicematrix/nicematrix-french.pdf
+2022/03/11 | 49767 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2022/03/11 | 49557 | macros/luatex/generic/luatexja/src/patches/lltjfont.sty
+2022/03/11 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2022/03/11 | 48824 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2022/03/11 | 4871 | macros/luatex/generic/luatexja/src/ltj-stack.lua
+2022/03/11 | 48649 | macros/luatex/generic/luatexja/src/ltj-jfont.lua
+2022/03/11 | 484370 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2022/03/11 | 481497 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2022/03/11 | 4808 | macros/luatex/generic/luatexja/src/jfm-tmin.lua
+2022/03/11 | 47922 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2022/03/11 | 477846 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2022/03/11 | 46911 | systems/texlive/tlnet/tlpkg/translations/messages.pot
+2022/03/11 | 4681 | macros/latex/contrib/matapli/doc/matapli-title.pdf
+2022/03/11 | 46065 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2022/03/11 | 45823 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2022/03/11 | 45741 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2022/03/11 | 456779 | macros/luatex/generic/luatexja/doc/ltjsclasses.pdf
+2022/03/11 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2022/03/11 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2022/03/11 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2022/03/11 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2022/03/11 | 4482 | macros/optex/doc/optex-doc.tex
+2022/03/11 | 4452 | macros/luatex/generic/luatexja/doc/jfm-ujisc33.lua
+2022/03/11 | 4408 | macros/luatex/generic/luatexja/src/ltj-plain.sty
+2022/03/11 | 43916 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2022/03/11 | 43824 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2022/03/11 | 43644 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2022/03/11 | 43360 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2022/03/11 | 43223 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2022/03/11 | 42815 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2022/03/11 | 4262 | macros/luatex/generic/luatexja/tool/kyoikukanji.txt
+2022/03/11 | 4252 | systems/texlive/tlnet/archive/xsavebox.source.r62605.tar.xz
+2022/03/11 | 4244 | systems/texlive/tlnet/archive/xsavebox.r62605.tar.xz
+2022/03/11 | 4196 | macros/luatex/generic/luatexja/src/patches/lltjp-atbegshi.sty
+2022/03/11 | 415204 | macros/latex/contrib/jmsdelim/jmsdelim.pdf
+2022/03/11 | 41304 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2022/03/11 | 4124 | macros/optex/base/optex.ini
+2022/03/11 | 41201 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2022/03/11 | 41181 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2022/03/11 | 407050 | macros/latex/contrib/jmsdelim.zip
+2022/03/11 | 405 | macros/luatex/generic/luatexja/src/patches/lltjp-everyshi.sty
+2022/03/11 | 404252 | systems/texlive/tlnet/archive/texlive-scripts.doc.r62579.tar.xz
+2022/03/11 | 400068 | macros/luatex/generic/luatexja/doc/ltjclasses.pdf
+2022/03/11 | 39938 | macros/luatex/generic/luatexja/src/ltj-direction.lua
+2022/03/11 | 39724 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2022/03/11 | 3961 | macros/luatex/generic/luatexja/src/ltj-charrange.lua
+2022/03/11 | 394369 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2022/03/11 | 3893 | macros/luatex/generic/luatexja/src/patches/lltjp-siunitx.sty
+2022/03/11 | 385 | macros/luatex/generic/luatexja/src/ltjsclasses.ins
+2022/03/11 | 38559 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2022/03/11 | 38425 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2022/03/11 | 3825006 | macros/luatex/generic/luatexja.zip
+2022/03/11 | 381090 | macros/luatex/generic/luatexja/doc/luatexja-ruby.pdf
+2022/03/11 | 380 | macros/latex/contrib/jmsdelim/refs.bib
+2022/03/11 | 3797 | macros/luatex/generic/luatexja/README
+2022/03/11 | 377388 | systems/texlive/tlnet/archive/xsavebox.doc.r62605.tar.xz
+2022/03/11 | 3755 | macros/luatex/generic/luatexja/src/ltj-lineskip.lua
+2022/03/11 | 3748 | macros/luatex/generic/luatexja/src/ltj-compat.lua
+2022/03/11 | 37373 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2022/03/11 | 37114 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2022/03/11 | 37080 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2022/03/11 | 36048 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2022/03/11 | 355 | macros/luatex/generic/luatexja/tool/otf-AdobeMingStd-Light.txt
+2022/03/11 | 355 | macros/luatex/generic/luatexja/doc/luatexja.ins
+2022/03/11 | 35241 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2022/03/11 | 351695 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2022/03/11 | 35165 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2022/03/11 | 3451 | macros/luatex/generic/luatexja/src/luatexja-compat.sty
+2022/03/11 | 34482 | macros/latex/contrib/matapli/tex/matapli.cls
+2022/03/11 | 3425 | macros/luatex/generic/luatexja/src/ltj-inputbuf.lua
+2022/03/11 | 34050 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2022/03/11 | 3371 | macros/luatex/generic/luatexja/src/patches/lltjp-xunicode.sty
+2022/03/11 | 33461 | macros/luatex/generic/luatexja/src/addons/luatexja-ajmacros.sty
+2022/03/11 | 332411 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2022/03/11 | 3313 | macros/luatex/generic/luatexja/tool/ltj-unicode-ccfix_make2.pl
+2022/03/11 | 33020 | systems/texlive/tlnet/archive/projlib.r62601.tar.xz
+2022/03/11 | 32953 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2022/03/11 | 326 | macros/luatex/generic/luatexja/tool/otf-AdobeMyungjoStd-Medium.txt
+2022/03/11 | 326659 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2022/03/11 | 325268 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2022/03/11 | 3238 | macros/luatex/generic/luatexja/doc/jfm-test.lua
+2022/03/11 | 32132 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2022/03/11 | 32105 | macros/luatex/generic/luatexja/src/ltj-ruby.lua
+2022/03/11 | 3184 | systems/texlive/tlnet/archive/tiscreen.r62603.tar.xz
+2022/03/11 | 317 | macros/luatex/generic/luatexja/tool/otf-AdobeSongStd-Light.txt
+2022/03/11 | 316240 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2022/03/11 | 31585 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2022/03/11 | 31520 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2022/03/11 | 31411 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2022/03/11 | 31341 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2022/03/11 | 3100 | macros/luatex/generic/luatexja/tool/table_jisx0208.tex
+2022/03/11 | 30541 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2022/03/11 | 30145 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2022/03/11 | 29814 | macros/luatex/generic/luatexja/src/luatexja-core.sty
+2022/03/11 | 296037 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2022/03/11 | 2940922 | macros/latex/contrib/matapli/doc/matapli-doc.pdf
+2022/03/11 | 29181 | macros/luatex/generic/luatexja/src/addons/luatexja-preset.sty
+2022/03/11 | 288197 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2022/03/11 | 28795 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2022/03/11 | 28687 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2022/03/11 | 286410 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2022/03/11 | 285712 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2022/03/11 | 28568 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2022/03/11 | 28420 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2022/03/11 | 2820684 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2022/03/11 | 27635 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2022/03/11 | 27589 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2022/03/11 | 27246 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2022/03/11 | 270297 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2022/03/11 | 269870 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2022/03/11 | 269662 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2022/03/11 | 2694875 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2022/03/11 | 26934 | macros/luatex/generic/luatexja/src/lltjext.sty
+2022/03/11 | 2601 | macros/luatex/generic/luatexja/src/jfm-banjiao.lua
+2022/03/11 | 259254 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2022/03/11 | 2586 | macros/luatex/generic/luatexja/src/jfm-kaiming.lua
+2022/03/11 | 2575 | macros/luatex/generic/luatexja/src/jfm-quanjiao.lua
+2022/03/11 | 2570 | macros/latex/contrib/matapli/doc/examples/couverture/couvertureModele.tex
+2022/03/11 | 25628877 | systems/texlive/tlnet/install-tl.zip
+2022/03/11 | 25550 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2022/03/11 | 251127 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2022/03/11 | 25105 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2022/03/11 | 25058 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2022/03/11 | 247332 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
+2022/03/11 | 2471 | macros/latex/contrib/matapli/doc/examples/couverture/redactionModele.tex
+2022/03/11 | 245096 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2022/03/11 | 244959 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2022/03/11 | 24120 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2022/03/11 | 23943 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2022/03/11 | 23941 | macros/latex/contrib/matapli/doc/matapli-doc.tex
+2022/03/11 | 2386782 | macros/optex.zip
+2022/03/11 | 2374 | macros/luatex/generic/luatexja/src/patches/lltjp-unicode-math.sty
+2022/03/11 | 2355992 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2022/03/11 | 2342 | macros/luatex/generic/luatexja/src/jfm-jis.lua
+2022/03/11 | 228136 | systems/texlive/tlnet/archive/tiscreen.doc.r62603.tar.xz
+2022/03/11 | 2267 | macros/latex/contrib/matapli/doc/examples/modeleauteur/modele.tex
+2022/03/11 | 22527 | macros/latex/contrib/create-theorem/create-theorem-doc.tex
+2022/03/11 | 22294 | macros/luatex/generic/luatexja/src/luatexja.lua
+2022/03/11 | 22204 | systems/texlive/tlnet/archive/projlib.source.r62601.tar.xz
+2022/03/11 | 22146 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2022/03/11 | 2207 | macros/luatex/generic/luatexja/src/jfm-CCT.lua
+2022/03/11 | 2193 | macros/luatex/generic/luatexja/src/addons/luatexja-zhfonts.sty
+2022/03/11 | 21867 | macros/luatex/generic/luatexja/src/ltj-adjust.lua
+2022/03/11 | 2137470 | macros/latex/contrib/nicematrix.zip
+2022/03/11 | 213276 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2022/03/11 | 21313 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2022/03/11 | 213092 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt
+2022/03/11 | 21135 | macros/latex/contrib/jmsdelim/jmsdelim.dtx
+2022/03/11 | 210272 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2022/03/11 | 208806 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2022/03/11 | 20871937 | systems/texlive/tlnet/install-tl-windows.exe
+2022/03/11 | 20725 | macros/latex/contrib/matapli/doc/examples/couverture/Logo.pdf
+2022/03/11 | 2057 | macros/luatex/generic/luatexja/src/patches/lltjp-microtype.sty
+2022/03/11 | 2042 | macros/luatex/generic/luatexja/src/luatexja.sty
+2022/03/11 | 203836 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
+2022/03/11 | 202833 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2022/03/11 | 20182 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2022/03/11 | 200 | macros/luatex/generic/luatexja/src/jfm-prop.lua
+2022/03/11 | 200393 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2022/03/11 | 199829 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2022/03/11 | 1982083 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2022/03/11 | 197034 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2022/03/11 | 196 | macros/luatex/generic/luatexja/src/jfm-propw.lua
+2022/03/11 | 196 | macros/luatex/generic/luatexja/src/jfm-propv.lua
+2022/03/11 | 196115 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2022/03/11 | 19313 | macros/latex/contrib/matapli/doc/examples/couverture/fond-production.svg
+2022/03/11 | 192 | macros/luatex/generic/luatexja/src/jfm-mono.lua
+2022/03/11 | 19234 | macros/luatex/generic/luatexja/src/patches/lltjp-geometry.sty
+2022/03/11 | 191618 | macros/latex/contrib/nicematrix/nicematrix-french.tex
+2022/03/11 | 19106 | macros/latex/contrib/create-theorem/LICENSE
+2022/03/11 | 190503 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2022/03/11 | 189 | macros/luatex/generic/luatexja/src/patches/lltjp-preview.sty
+2022/03/11 | 188978 | macros/luatex/generic/luatexja/src/ltjsclasses.dtx
+2022/03/11 | 18722 | macros/luatex/generic/luatexja/src/ltj-kinsoku.tex
+2022/03/11 | 18490 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2022/03/11 | 18368 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2022/03/11 | 182744 | systems/texlive/tlnet/archive/uptex-fonts.r62593.tar.xz
+2022/03/11 | 181516 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2022/03/11 | 179876 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2022/03/11 | 17880 | macros/latex/contrib/matapli/doc/examples/couverture/fond.pdf
+2022/03/11 | 17826 | CTAN.sites
+2022/03/11 | 177499 | macros/luatex/generic/luatexja/src/ltjclasses.dtx
+2022/03/11 | 1752145 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2022/03/11 | 173007 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2022/03/11 | 17184093 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2022/03/11 | 171806 | macros/latex/contrib/projlib/ProjLib.dtx
+2022/03/11 | 168820 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2022/03/11 | 1674698 | macros/latex/contrib/matapli/doc/examples/modeleauteur/modele.pdf
+2022/03/11 | 166557 | macros/luatex/generic/luatexja/doc/lltjp-geometry.pdf
+2022/03/11 | 16616 | systems/texlive/tlnet/archive/dtk.r62608.tar.xz
+2022/03/11 | 16604 | systems/texlive/tlnet/archive/easybook.r62599.tar.xz
+2022/03/11 | 16559 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2022/03/11 | 16516 | systems/texlive/tlnet/archive/easybook.source.r62599.tar.xz
+2022/03/11 | 16501 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2022/03/11 | 1637 | macros/luatex/generic/luatexja/src/addons/luatexja-fontspec.sty
+2022/03/11 | 1611 | macros/luatex/generic/luatexja/src/patches/lltjp-footmisc.sty
+2022/03/11 | 15839 | macros/luatex/generic/luatexja/src/addons/luatexja-fontspec-27c.sty
+2022/03/11 | 156962 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2022/03/11 | 155496 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2022/03/11 | 154928 | macros/luatex/generic/luatexja/src/ltj-ivd_aj1.lua
+2022/03/11 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2022/03/11 | 1536 | macros/luatex/generic/luatexja/COPYING
+2022/03/11 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2022/03/11 | 152028 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2022/03/11 | 15120 | systems/texlive/tlnet/archive/beamertheme-trigon.source.r62597.tar.xz
+2022/03/11 | 1511486 | macros/latex/contrib/nicematrix/nicematrix.pdf
+2022/03/11 | 1501235 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2022/03/11 | 14929 | macros/luatex/generic/luatexja/src/ltj-rmlgbm.lua
+2022/03/11 | 14709 | macros/luatex/generic/luatexja/src/patches/lltjp-listings.sty
+2022/03/11 | 146 | macros/latex/contrib/matapli/doc/auto/bibliomatapli.el
+2022/03/11 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2022/03/11 | 1454763 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2022/03/11 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2022/03/11 | 14408 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2022/03/11 | 1432985 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2022/03/11 | 1431554 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2022/03/11 | 1409811 | macros/optex/doc/optex-doc.pdf
+2022/03/11 | 1397 | macros/luatex/generic/luatexja/tool/ivslist.tex
+2022/03/11 | 139100 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2022/03/11 | 13899 | macros/luatex/generic/luatexja/src/jfm-ujis.lua
+2022/03/11 | 137395 | macros/latex/contrib/create-theorem.zip
+2022/03/11 | 13726 | macros/luatex/generic/luatexja/doc/lltjp-geometry.tex
+2022/03/11 | 135946 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2022/03/11 | 1357069 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2022/03/11 | 135375 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2022/03/11 | 13509 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2022/03/11 | 13240 | macros/luatex/generic/luatexja/src/ltj-setwidth.lua
+2022/03/11 | 1324062 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2022/03/11 | 1323484 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2022/03/11 | 1322741 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2022/03/11 | 1309 | macros/latex/contrib/matapli/doc/fond-doc.pdf
+2022/03/11 | 1302480 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2022/03/11 | 1278 | macros/luatex/generic/luatexja/src/ltjclasses.ins
+2022/03/11 | 127496 | systems/texlive/tlnet/archive/create-theorem.doc.r62596.tar.xz
+2022/03/11 | 126 | macros/luatex/generic/luatexja/src/ltjltxdoc.ins
+2022/03/11 | 126532 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2022/03/11 | 12442 | macros/luatex/generic/luatexja/src/patches/lltjcore.sty
+2022/03/11 | 1224 | macros/luatex/generic/luatexja/tool/chars2defcharrange.rb
+2022/03/11 | 12151 | macros/luatex/generic/luatexja/src/ltj-base.lua
+2022/03/11 | 120616 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2022/03/11 | 1181123 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2022/03/11 | 1173370 | macros/latex/contrib/matapli/doc/examples/couverture/couvertureModele.pdf
+2022/03/11 | 117260 | macros/latex/contrib/create-theorem/create-theorem-doc.pdf
+2022/03/11 | 115655 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2022/03/11 | 1156463 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2022/03/11 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2022/03/11 | 11508 | macros/luatex/generic/luatexja/src/jfm-ujisv.lua
+2022/03/11 | 1147701 | macros/luatex/generic/luatexja/doc/luatexja-ja.pdf
+2022/03/11 | 11335 | macros/luatex/generic/luatexja/tool/unicodeBlocks.tex
+2022/03/11 | 1130 | macros/luatex/generic/luatexja/tool/function_uax50.lua
+2022/03/11 | 113050 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2022/03/11 | 112588 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2022/03/11 | 109478 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2022/03/11 | 108848 | systems/texlive/tlnet/archive/texlive-scripts.r62579.tar.xz
+2022/03/11 | 107703 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2022/03/11 | 104555 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2022/03/11 | 1038362 | macros/latex/contrib/matapli/doc/examples/modeleauteur/portrait.png
+2022/03/11 | 103337 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2022/03/11 | 1032 | macros/latex/contrib/jmsdelim/README.md
+2022/03/11 | 103091 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2022/03/11 | 1021845 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2022/03/11 | 1007 | systems/win32/miktex/tm/packages/pr.ini
+2022/03/11 | 100483 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
2022/03/10 | 9949 | macros/latex/contrib/asmeconf/examples/asmeconf-lualatex-ode-example.tex
-2022/03/10 | 99255 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2022/03/10 | 99082408 | systems/win32/TLW64/tl-win64.zip
2022/03/10 | 9887 | macros/latex/contrib/asmeconf/README.md
2022/03/10 | 987468 | systems/texlive/tlnet/archive/kaytannollista-latexia.doc.r62550.tar.xz
-2022/03/10 | 97199 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2022/03/10 | 96630 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
2022/03/10 | 9638 | macros/luatex/latex/pyluatex/pyluatex-json.lua
2022/03/10 | 960 | fonts/uptex-fonts/tfm/utmin10.tfm
2022/03/10 | 960 | fonts/uptex-fonts/tfm/utgoth10.tfm
2022/03/10 | 956089 | macros/latex/contrib/beamer-contrib/themes/beamertheme-trigon.zip
-2022/03/10 | 95432 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2022/03/10 | 95281 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2022/03/10 | 93958 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2022/03/10 | 92913 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
2022/03/10 | 914 | fonts/uptex-fonts/source/uprml-h-hk.pl
2022/03/10 | 89364 | macros/latex/contrib/asmeconf/asmeconf.cls
-2022/03/10 | 88150 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2022/03/10 | 8782 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2022/03/10 | 868 | systems/texlive/tlnet/archive/collection-langenglish.r62565.tar.xz
-2022/03/10 | 86756 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
2022/03/10 | 8528 | systems/texlive/tlnet/archive/messagepassing.source.r62560.tar.xz
2022/03/10 | 849832 | systems/texlive/tlnet/archive/yet-another-guide-latex2e.doc.r62565.tar.xz
-2022/03/10 | 83562 | macros/latex/contrib/easybook/easybook.tex
2022/03/10 | 828 | macros/latex/contrib/tiscreen/README
-2022/03/10 | 824367 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
2022/03/10 | 81863 | macros/luatex/latex/pyluatex/pyluatex.pdf
-2022/03/10 | 81459 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
2022/03/10 | 812 | fonts/uptex-fonts/tfm/upjpnrm-h.tfm
2022/03/10 | 812 | fonts/uptex-fonts/tfm/upjpngt-h.tfm
2022/03/10 | 812 | fonts/uptex-fonts/tfm/upjisr-h.tfm
2022/03/10 | 812 | fonts/uptex-fonts/tfm/upjisg-h.tfm
2022/03/10 | 8052461 | install/fonts/uptex-fonts.tds.zip
2022/03/10 | 8043371 | fonts/uptex-fonts.zip
-2022/03/10 | 79023 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2022/03/10 | 78970 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2022/03/10 | 7752 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2022/03/10 | 77064 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
2022/03/10 | 76445 | fonts/uptex-fonts/cmap/UTF8-UTF16
-2022/03/10 | 758953 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
-2022/03/10 | 755740 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
2022/03/10 | 75432 | usergrps/dante/dtk/doc/beispiel.pdf
-2022/03/10 | 75228 | macros/latex/contrib/easybook/easybook.dtx
-2022/03/10 | 7464 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2022/03/10 | 7444 | macros/luatex/latex/pyluatex/pyluatex.lua
-2022/03/10 | 74068 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
2022/03/10 | 739938 | macros/latex/contrib/verifiche.zip
-2022/03/10 | 73921 | macros/latex/contrib/create-theorem/create-theorem.sty
-2022/03/10 | 73526 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2022/03/10 | 73476 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2022/03/10 | 73146 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2022/03/10 | 72884 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2022/03/10 | 72011 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
2022/03/10 | 717 | macros/luatex/latex/pyluatex/example/readme-example.tex
-2022/03/10 | 71005 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
2022/03/10 | 694136 | fonts/uptex-fonts/vf/upkorrm-v.vf
2022/03/10 | 694136 | fonts/uptex-fonts/vf/upkorrm-h.vf
2022/03/10 | 694132 | fonts/uptex-fonts/vf/upkorgt-v.vf
2022/03/10 | 694132 | fonts/uptex-fonts/vf/upkorgt-h.vf
-2022/03/10 | 693067 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
-2022/03/10 | 68870 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
2022/03/10 | 6880 | systems/texlive/tlnet/archive/robotarm.source.r62567.tar.xz
2022/03/10 | 6872 | fonts/academicons/academicons.tex
-2022/03/10 | 681940 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2022/03/10 | 6810726 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2022/03/10 | 68008 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2022/03/10 | 67703 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2022/03/10 | 676 | macros/latex/contrib/create-theorem/README.md
-2022/03/10 | 67251 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
2022/03/10 | 6650 | macros/latex/contrib/beamer-contrib/themes/beamertheme-trigon/source/beamercolorthemetrigon.dtx
2022/03/10 | 653500 | fonts/uptex-fonts/vf/upjisr-h.vf
2022/03/10 | 653500 | fonts/uptex-fonts/vf/upjisg-h.vf
2022/03/10 | 653468 | fonts/uptex-fonts/vf/upjisr-v.vf
2022/03/10 | 653468 | fonts/uptex-fonts/vf/upjisg-v.vf
-2022/03/10 | 65052 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2022/03/10 | 64708 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2022/03/10 | 64540 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
2022/03/10 | 644904 | fonts/uptex-fonts/vf/utmin10.vf
2022/03/10 | 644904 | fonts/uptex-fonts/vf/utgoth10.vf
-2022/03/10 | 64488 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
2022/03/10 | 644724 | fonts/uptex-fonts/vf/umin10.vf
2022/03/10 | 644724 | fonts/uptex-fonts/vf/ugoth10.vf
-2022/03/10 | 643499 | systems/win32/miktex/tm/packages/files.csv.lzma
-2022/03/10 | 643487 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2022/03/10 | 63737 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2022/03/10 | 634211 | macros/latex/contrib/easybook.zip
2022/03/10 | 63352 | fonts/academicons/academicons.ttf
-2022/03/10 | 63308 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2022/03/10 | 631279 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
2022/03/10 | 6295 | fonts/uptex-fonts/README_uptex_font.md
-2022/03/10 | 629431 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
2022/03/10 | 628 | macros/luatex/latex/pyluatex/example/readme-custom-env.tex
-2022/03/10 | 62381 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2022/03/10 | 614704 | systems/texlive/tlnet/archive/easybook.doc.r62556.tar.xz
2022/03/10 | 6082 | fonts/uptex-fonts/cmap/UniJIS2004up-UTF16-V
2022/03/10 | 6054 | fonts/uptex-fonts/cmap/UniJISup-UTF16-V
2022/03/10 | 60406 | macros/latex/contrib/verifiche/verifiche.dtx
-2022/03/10 | 598229 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
2022/03/10 | 596306 | macros/latex/contrib/asmeconf/examples/asmeconf-authorgrid-example.pdf
-2022/03/10 | 592859 | macros/latex/contrib/easybook/easybook.pdf
-2022/03/10 | 591568 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
2022/03/10 | 5895 | fonts/uptex-fonts/cmap/cid_mapping.md
-2022/03/10 | 58665 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2022/03/10 | 58663 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
2022/03/10 | 585147 | macros/latex/contrib/asmeconf/asmeconf-template.pdf
-2022/03/10 | 57617 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2022/03/10 | 57525 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2022/03/10 | 57329 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
2022/03/10 | 572 | systems/texlive/tlnet/archive/yet-another-guide-latex2e.r62565.tar.xz
2022/03/10 | 572 | systems/texlive/tlnet/archive/kaytannollista-latexia.r62550.tar.xz
-2022/03/10 | 57267 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
2022/03/10 | 5720 | systems/texlive/tlnet/archive/dtxdescribe.r62554.tar.xz
-2022/03/10 | 56992 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2022/03/10 | 56615 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2022/03/10 | 565929 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2022/03/10 | 55756 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
-2022/03/10 | 55567 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
2022/03/10 | 553 | fonts/uptex-fonts/README.md
-2022/03/10 | 55284 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
2022/03/10 | 551397 | macros/latex/contrib/verifiche/verifiche.pdf
2022/03/10 | 5411 | macros/latex/contrib/verifiche/verifiche-example.tex
2022/03/10 | 536 | fonts/uptex-fonts/tfm/upschrm-h.tfm
@@ -125,192 +454,84 @@
2022/03/10 | 536 | fonts/uptex-fonts/tfm/upjpngt-v.tfm
2022/03/10 | 536 | fonts/uptex-fonts/tfm/upjisr-v.tfm
2022/03/10 | 536 | fonts/uptex-fonts/tfm/upjisg-v.tfm
-2022/03/10 | 532455 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
2022/03/10 | 528 | fonts/uptex-fonts/tfm/upschrm-v.tfm
2022/03/10 | 528 | fonts/uptex-fonts/tfm/upschgt-v.tfm
-2022/03/10 | 528016 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
2022/03/10 | 5271 | fonts/uptex-fonts/source/makejvf-upjis.cnf
-2022/03/10 | 52477 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2022/03/10 | 52324 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2022/03/10 | 52092 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
2022/03/10 | 516 | fonts/uptex-fonts/tfm/upkorrm-v.tfm
2022/03/10 | 516 | fonts/uptex-fonts/tfm/upkorrm-h.tfm
2022/03/10 | 516 | fonts/uptex-fonts/tfm/upkorgt-v.tfm
2022/03/10 | 516 | fonts/uptex-fonts/tfm/upkorgt-h.tfm
-2022/03/10 | 51556 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2022/03/10 | 51483 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2022/03/10 | 50798 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
2022/03/10 | 504 | fonts/uptex-fonts/tfm/uptchrm-v.tfm
2022/03/10 | 504 | fonts/uptex-fonts/tfm/uptchrm-h.tfm
2022/03/10 | 504 | fonts/uptex-fonts/tfm/uptchgt-v.tfm
2022/03/10 | 504 | fonts/uptex-fonts/tfm/uptchgt-h.tfm
-2022/03/10 | 5024 | systems/win32/miktex/tm/packages/next/miktex-config-2.9.tar.lzma
-2022/03/10 | 49769 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2022/03/10 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
-2022/03/10 | 48822 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2022/03/10 | 484369 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
-2022/03/10 | 481497 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2022/03/10 | 47922 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2022/03/10 | 477846 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
2022/03/10 | 4769 | macros/latex/contrib/beamer-contrib/themes/beamertheme-trigon/source/beamerouterthemetrigon.dtx
-2022/03/10 | 46911 | systems/texlive/tlnet/tlpkg/translations/messages.pot
2022/03/10 | 4680 | systems/texlive/tlnet/archive/beamertheme-focus.r62552.tar.xz
-2022/03/10 | 46063 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2022/03/10 | 45823 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
2022/03/10 | 457976 | systems/texlive/tlnet/archive/lwarp.source.r62558.tar.xz
-2022/03/10 | 45740 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2022/03/10 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2022/03/10 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2022/03/10 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2022/03/10 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2022/03/10 | 4524183 | macros/latex/contrib/asmeconf.zip
-2022/03/10 | 43915 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2022/03/10 | 43824 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
2022/03/10 | 4380 | fonts/uptex-fonts/README_ASCII_Corp.txt
2022/03/10 | 4371 | macros/luatex/latex/pyluatex/pyluatex-interpreter.py
-2022/03/10 | 43643 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2022/03/10 | 43360 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
2022/03/10 | 4333 | macros/luatex/latex/pyluatex/example/data-visualization.tex
2022/03/10 | 432 | fonts/uptex-fonts/tfm/uprml-h.tfm
2022/03/10 | 432 | fonts/uptex-fonts/tfm/upgbm-h.tfm
-2022/03/10 | 43223 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/03/10 | 42817 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
2022/03/10 | 4252 | fonts/uptex-fonts/source/upjisr-h-hk.pl
2022/03/10 | 4240 | systems/texlive/tlnet/archive/mhequ.r62562.tar.xz
2022/03/10 | 42358 | macros/latex/contrib/asmeconf/asmeconf-template.tex
2022/03/10 | 419 | fonts/uptex-fonts/source/uprml-h.pl
2022/03/10 | 416666 | macros/latex/contrib/beamer-contrib/themes/beamertheme-trigon/demo/trigon_demo.pdf
-2022/03/10 | 41304 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2022/03/10 | 41202 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2022/03/10 | 41179 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
2022/03/10 | 4074 | macros/latex/contrib/beamer-contrib/themes/beamertheme-trigon/source/beamerthemetrigon.dtx
-2022/03/10 | 404208 | systems/texlive/tlnet/archive/texlive-scripts.doc.r62542.tar.xz
-2022/03/10 | 39725 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2022/03/10 | 394367 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
2022/03/10 | 39167 | macros/luatex/latex/pyluatex/example/population.csv
2022/03/10 | 386038 | install/macros/latex/contrib/xsavebox.tds.zip
-2022/03/10 | 38561 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
2022/03/10 | 384395 | macros/latex/contrib/xsavebox.zip
-2022/03/10 | 38426 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
2022/03/10 | 381840 | systems/texlive/tlnet/archive/dtxdescribe.doc.r62554.tar.xz
2022/03/10 | 378552 | macros/latex/contrib/xsavebox/xsavebox.pdf
-2022/03/10 | 37375 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2022/03/10 | 37116 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2022/03/10 | 37078 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
2022/03/10 | 369381 | macros/latex/contrib/asmeconf/examples/asmeconf-fontspec.pdf
2022/03/10 | 366853 | macros/latex/contrib/beamer-contrib/themes/beamertheme-trigon/docs/trigontheme.pdf
-2022/03/10 | 36048 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
-2022/03/10 | 35240 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2022/03/10 | 351695 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2022/03/10 | 35166 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2022/03/10 | 34052 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2022/03/10 | 332411 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
-2022/03/10 | 32952 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
2022/03/10 | 3291 | fonts/uptex-fonts/source/upjisr-v.pl
2022/03/10 | 3279 | fonts/uptex-fonts/source/upschr-v.pl
2022/03/10 | 3274 | fonts/uptex-fonts/source/upjisr-h.pl
2022/03/10 | 3270 | fonts/uptex-fonts/source/upschr-h.pl
-2022/03/10 | 326657 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
2022/03/10 | 3261 | fonts/uptex-fonts/source/upkorr-v.pl
-2022/03/10 | 325269 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
2022/03/10 | 3244 | fonts/uptex-fonts/source/upkorr-h.pl
-2022/03/10 | 32135 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2022/03/10 | 316241 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2022/03/10 | 31587 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2022/03/10 | 31519 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2022/03/10 | 31411 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2022/03/10 | 31339 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
2022/03/10 | 3072 | usergrps/dante/dtk/doc/beispiel.tex
2022/03/10 | 3056528 | systems/texlive/tlnet/archive/lwarp.doc.r62558.tar.xz
-2022/03/10 | 30540 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2022/03/10 | 30145 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
2022/03/10 | 2989 | fonts/uptex-fonts/source/Makefile
2022/03/10 | 2984 | macros/luatex/latex/pyluatex/pyluatex.sty
2022/03/10 | 2963 | macros/luatex/latex/pyluatex/example/beamer.tex
-2022/03/10 | 296036 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
2022/03/10 | 2930107 | macros/latex/contrib/asmeconf/examples/asmeconf-wide-equation-example/asmeconf-template-widetext.pdf
2022/03/10 | 2924 | systems/texlive/tlnet/archive/robotarm.r62567.tar.xz
2022/03/10 | 2918 | fonts/uptex-fonts/source/makepl.perl
2022/03/10 | 29158 | fonts/uptex-fonts/source/punctuation.md
2022/03/10 | 29114 | macros/latex/contrib/functional/functional.tex
-2022/03/10 | 288199 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2022/03/10 | 28797 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2022/03/10 | 28690 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2022/03/10 | 286410 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2022/03/10 | 285712 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2022/03/10 | 28566 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2022/03/10 | 28421 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2022/03/10 | 2820685 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
2022/03/10 | 2775168 | systems/texlive/tlnet/archive/liftarm.doc.r62548.tar.xz
2022/03/10 | 2770 | fonts/uptex-fonts/source/uptchr-v.pl
-2022/03/10 | 27634 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
2022/03/10 | 2760 | systems/texlive/tlnet/archive/liftarm.r62548.tar.xz
-2022/03/10 | 27590 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
2022/03/10 | 2753 | fonts/uptex-fonts/source/uptchr-h.pl
2022/03/10 | 27531 | macros/latex/contrib/asmeconf/examples/asmeconf-fontspec.tex
-2022/03/10 | 27244 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2022/03/10 | 270298 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2022/03/10 | 269777 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2022/03/10 | 269743 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2022/03/10 | 2694873 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
2022/03/10 | 268036 | systems/texlive/tlnet/archive/messagepassing.doc.r62560.tar.xz
+2022/03/10 | 26533 | macros/optex/base/optex.lua
2022/03/10 | 2628 | systems/texlive/tlnet/archive/messagepassing.r62560.tar.xz
-2022/03/10 | 259254 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2022/03/10 | 25628851 | systems/texlive/tlnet/install-tl.zip
-2022/03/10 | 25549 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
2022/03/10 | 254973 | macros/latex/contrib/asmeconf/examples/asmeconf-lualatex-ode-example.pdf
-2022/03/10 | 251128 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2022/03/10 | 25104 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2022/03/10 | 25057 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2022/03/10 | 247331 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
2022/03/10 | 247136 | systems/texlive/tlnet/archive/beamertheme-focus.doc.r62552.tar.xz
-2022/03/10 | 245095 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2022/03/10 | 244958 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2022/03/10 | 24118 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
2022/03/10 | 2400 | macros/luatex/latex/pyluatex/example/typesetting-listings.tex
-2022/03/10 | 23944 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2022/03/10 | 2357768 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2022/03/10 | 230562 | macros/latex/contrib/tiscreen.zip
2022/03/10 | 229778 | macros/latex/contrib/tiscreen/doc/tiscreen-doc.pdf
2022/03/10 | 2290 | fonts/uptex-fonts/source/makejvf-upjpn.cnf
2022/03/10 | 22851 | macros/latex/contrib/beamer-contrib/themes/beamertheme-trigon/source/beamerinnerthemetrigon.dtx
2022/03/10 | 2270 | macros/luatex/latex/pyluatex/example/repl.tex
-2022/03/10 | 22463 | macros/latex/contrib/create-theorem/create-theorem-doc.tex
-2022/03/10 | 22146 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
2022/03/10 | 21412 | macros/latex/contrib/functional/functional.sty
-2022/03/10 | 213277 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2022/03/10 | 21311 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
2022/03/10 | 210940 | systems/texlive/tlnet/archive/lwarp.r62558.tar.xz
2022/03/10 | 2105 | macros/luatex/latex/pyluatex/example/typesetting-minted.tex
-2022/03/10 | 210273 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2022/03/10 | 208806 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2022/03/10 | 20874617 | systems/texlive/tlnet/install-tl-windows.exe
-2022/03/10 | 203835 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
-2022/03/10 | 202833 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
2022/03/10 | 20216 | systems/texlive/tlnet/archive/dtxdescribe.source.r62554.tar.xz
-2022/03/10 | 20183 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2022/03/10 | 200394 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2022/03/10 | 199831 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2022/03/10 | 1982083 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2022/03/10 | 197035 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
-2022/03/10 | 196114 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
2022/03/10 | 19357 | fonts/academicons/academicons.sty
-2022/03/10 | 19106 | macros/latex/contrib/create-theorem/LICENSE
-2022/03/10 | 190505 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
2022/03/10 | 190102 | macros/latex/contrib/verifiche/verifiche-example.pdf
2022/03/10 | 189483 | macros/latex/contrib/functional/functional.pdf
2022/03/10 | 188427 | fonts/uptex-fonts/cmap/UniJIS2004up-UTF16-H
2022/03/10 | 188342 | fonts/uptex-fonts/cmap/UniJISup-UTF16-H
2022/03/10 | 1849 | macros/luatex/latex/pyluatex/example/matplotlib-pgf.tex
-2022/03/10 | 18492 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
2022/03/10 | 184696 | systems/texlive/tlnet/archive/robotarm.doc.r62567.tar.xz
-2022/03/10 | 18367 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2022/03/10 | 181513 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
2022/03/10 | 1801 | macros/luatex/latex/pyluatex/README.md
-2022/03/10 | 179875 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
2022/03/10 | 17905 | usergrps/dante/dtk/dtk-full.clo
-2022/03/10 | 1752145 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2022/03/10 | 173006 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
2022/03/10 | 172 | fonts/uptex-fonts/tfm/upstsl-h.tfm
2022/03/10 | 172 | fonts/uptex-fonts/tfm/upstht-h.tfm
2022/03/10 | 172 | fonts/uptex-fonts/tfm/uprml-hq.tfm
@@ -319,20 +540,14 @@
2022/03/10 | 172 | fonts/uptex-fonts/tfm/uphysmjm-h.tfm
2022/03/10 | 172 | fonts/uptex-fonts/tfm/uphygt-h.tfm
2022/03/10 | 172 | fonts/uptex-fonts/tfm/upgbm-hq.tfm
-2022/03/10 | 17185194 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
2022/03/10 | 17110 | macros/latex/contrib/beamer-contrib/themes/beamertheme-trigon/docs/trigontheme.dtx
-2022/03/10 | 168818 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
2022/03/10 | 1675 | fonts/academicons/README
2022/03/10 | 16745 | usergrps/dante/dtk/dtk.cls
2022/03/10 | 1662628 | fonts/uptex-fonts/vf/uptchrm-v.vf
2022/03/10 | 1662628 | fonts/uptex-fonts/vf/uptchrm-h.vf
2022/03/10 | 1662628 | fonts/uptex-fonts/vf/uptchgt-v.vf
2022/03/10 | 1662628 | fonts/uptex-fonts/vf/uptchgt-h.vf
-2022/03/10 | 16568 | systems/texlive/tlnet/archive/easybook.r62556.tar.xz
-2022/03/10 | 16559 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2022/03/10 | 16501 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
2022/03/10 | 164833 | macros/latex/contrib/functional.zip
-2022/03/10 | 16472 | systems/texlive/tlnet/archive/easybook.source.r62556.tar.xz
2022/03/10 | 16439 | macros/latex/contrib/asmeconf/examples/asmeconf-wide-equation-example/asmeconf-template-widetext.tex
2022/03/10 | 1642 | macros/latex/contrib/beamer-contrib/themes/beamertheme-trigon/demo/trigon_demo.tex
2022/03/10 | 1591 | fonts/uptex-fonts/LICENSE
@@ -341,55 +556,23 @@
2022/03/10 | 1590492 | fonts/uptex-fonts/vf/upjpnrm-v.vf
2022/03/10 | 1590492 | fonts/uptex-fonts/vf/upjpngt-v.vf
2022/03/10 | 1572 | systems/texlive/tlnet/archive/collection-mathscience.r62560.tar.xz
-2022/03/10 | 156962 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2022/03/10 | 155494 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2022/03/10 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2022/03/10 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
2022/03/10 | 1527 | macros/luatex/latex/pyluatex/example/matplotlib-external.tex
-2022/03/10 | 152030 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
2022/03/10 | 1512 | systems/texlive/tlnet/archive/collection-pictures.r62567.tar.xz
-2022/03/10 | 1501236 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2022/03/10 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2022/03/10 | 1454761 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2022/03/10 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2022/03/10 | 14409 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
-2022/03/10 | 1433005 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2022/03/10 | 1432287 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
2022/03/10 | 1429 | macros/luatex/latex/pyluatex/example/sessions.tex
2022/03/10 | 142402 | fonts/academicons.zip
-2022/03/10 | 139099 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
2022/03/10 | 1370968 | fonts/uptex-fonts/vf/upschrm-v.vf
2022/03/10 | 1370968 | fonts/uptex-fonts/vf/upschgt-v.vf
2022/03/10 | 1370960 | fonts/uptex-fonts/vf/upschrm-h.vf
2022/03/10 | 1370960 | fonts/uptex-fonts/vf/upschgt-h.vf
-2022/03/10 | 136814 | macros/latex/contrib/create-theorem.zip
-2022/03/10 | 135947 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2022/03/10 | 1357072 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2022/03/10 | 135375 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2022/03/10 | 13514 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
2022/03/10 | 13345 | macros/luatex/latex/pyluatex/pyluatex.tex
-2022/03/10 | 1324445 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
-2022/03/10 | 1323321 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2022/03/10 | 1322742 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2022/03/10 | 1302480 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
2022/03/10 | 1300 | fonts/uptex-fonts/tfm/umin10.tfm
2022/03/10 | 1300 | fonts/uptex-fonts/tfm/ugoth10.tfm
2022/03/10 | 12731 | macros/latex/contrib/tiscreen/doc/tiscreen-doc.tex
-2022/03/10 | 126532 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
2022/03/10 | 12636 | macros/latex/contrib/tiscreen/tex/tiscreen.sty
2022/03/10 | 1211 | macros/latex/contrib/xsavebox/ChangeLog
-2022/03/10 | 120614 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
2022/03/10 | 11995 | macros/latex/contrib/xsavebox/xsavebox.sty
2022/03/10 | 119280 | systems/texlive/tlnet/archive/mhequ.doc.r62562.tar.xz
2022/03/10 | 118927 | macros/luatex/latex/pyluatex.zip
-2022/03/10 | 1181127 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2022/03/10 | 117097 | macros/latex/contrib/create-theorem/create-theorem-doc.pdf
-2022/03/10 | 115655 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2022/03/10 | 1156461 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2022/03/10 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
-2022/03/10 | 113050 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2022/03/10 | 112586 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2022/03/10 | 109478 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
2022/03/10 | 108 | fonts/uptex-fonts/tfm/urmlv.tfm
2022/03/10 | 108 | fonts/uptex-fonts/tfm/urml.tfm
2022/03/10 | 108 | fonts/uptex-fonts/tfm/upstsl-v.tfm
@@ -404,22 +587,13 @@
2022/03/10 | 108 | fonts/uptex-fonts/tfm/upgbm-v.tfm
2022/03/10 | 108 | fonts/uptex-fonts/tfm/ugbmv.tfm
2022/03/10 | 108 | fonts/uptex-fonts/tfm/ugbm.tfm
-2022/03/10 | 108824 | systems/texlive/tlnet/archive/texlive-scripts.r62542.tar.xz
-2022/03/10 | 107702 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
2022/03/10 | 1049 | macros/luatex/latex/pyluatex/example/typesetting-example.tex
-2022/03/10 | 104555 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
2022/03/10 | 104071 | fonts/academicons/academicons.pdf
2022/03/10 | 10333 | macros/latex/contrib/xsavebox/xsavebox.tex
-2022/03/10 | 103335 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
2022/03/10 | 10317 | macros/latex/contrib/beamer-contrib/themes/beamertheme-trigon/source/beamerfontthemetrigon.dtx
-2022/03/10 | 103091 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2022/03/10 | 1021841 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
2022/03/10 | 101728 | usergrps/dante/dtk.zip
2022/03/10 | 100 | fonts/uptex-fonts/vf/upjisr-hq.vf
2022/03/10 | 100 | fonts/uptex-fonts/vf/upjisg-hq.vf
-2022/03/10 | 1007 | systems/win32/miktex/tm/packages/pr.ini
-2022/03/10 | 100485 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
-2022/03/09 | 99081361 | systems/win32/TLW64/tl-win64.zip
2022/03/09 | 97389 | macros/latex/contrib/dtxdescribe/dtxdescribe.dtx
2022/03/09 | 9717 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-focus.jpg
2022/03/09 | 938396 | info/yet-another-guide-latex2e/Yet-Another-Guide-LaTeX2e.pdf
@@ -430,24 +604,23 @@
2022/03/09 | 874252 | info/kaytannollista-latexia/kaytannollista-latexia.pdf
2022/03/09 | 86927 | info/kaytannollista-latexia/luku-merkintakieli.tex
2022/03/09 | 861091 | info/yet-another-guide-latex2e.zip
-2022/03/09 | 797193 | macros/latex/contrib/projlib.zip
+2022/03/09 | 806 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerouterthemeArguelles.sty
2022/03/09 | 7874 | systems/win32/miktex/tm/packages/footmisc.tar.lzma
2022/03/09 | 7672 | systems/texlive/tlnet/archive/footmisc.r62527.tar.xz
2022/03/09 | 7241 | systems/win32/miktex/tm/packages/robotarm__source.tar.lzma
+2022/03/09 | 721 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerfontthemeArguelles.sty
2022/03/09 | 719 | macros/latex/contrib/lwarp/lwarp_baseline_marker.eps
2022/03/09 | 6300 | info/kaytannollista-latexia/README.md
2022/03/09 | 602 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo_bibliography.bib
+2022/03/09 | 5959 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/README.md
2022/03/09 | 589749 | systems/win32/miktex/tm/packages/easybook__doc.tar.lzma
2022/03/09 | 57942 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-titlepage-color.jpg
-2022/03/09 | 54906 | macros/latex/contrib/projlib/projlib-theorem.sty
-2022/03/09 | 5426 | macros/latex/contrib/projlib/README.md
+2022/03/09 | 574 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamercolorthemeArguelles.sty
2022/03/09 | 512067 | systems/win32/miktex/tm/packages/footmisc__doc.tar.lzma
2022/03/09 | 511220 | systems/texlive/tlnet/archive/footmisc.doc.r62527.tar.xz
-2022/03/09 | 5062 | macros/latex/contrib/projlib/projlib-paper.sty
2022/03/09 | 504128 | systems/texlive/tlnet/archive/xindex.doc.r62521.tar.xz
2022/03/09 | 4984 | macros/latex/contrib/projlib/old-modules/PJLtoolkit.sty
2022/03/09 | 4862 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.tex
-2022/03/09 | 4743 | macros/latex/contrib/projlib/projlib-font.sty
2022/03/09 | 460837 | systems/win32/miktex/tm/packages/pmx__doc.tar.lzma
2022/03/09 | 4591 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerinnerthemefocus.sty
2022/03/09 | 45868 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-typeset.jpg
@@ -476,6 +649,7 @@
2022/03/09 | 3181333 | macros/latex/contrib/lwarp/lwarp.pdf
2022/03/09 | 316736 | info/kaytannollista-latexia/luku-rakenne.tex
2022/03/09 | 3134 | systems/win32/miktex/tm/packages/robotarm.tar.lzma
+2022/03/09 | 3082 | macros/latex/contrib/projlib/ProjLib.ins
2022/03/09 | 29 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/CHANGELOG.md
2022/03/09 | 29 | info/kaytannollista-latexia/versio.tex
2022/03/09 | 2989 | info/kaytannollista-latexia/kirjallisuutta.bib
@@ -493,23 +667,21 @@
2022/03/09 | 22925 | systems/win32/miktex/tm/packages/footmisc__source.tar.lzma
2022/03/09 | 22204 | systems/texlive/tlnet/archive/footmisc.source.r62527.tar.xz
2022/03/09 | 2150 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerthemefocus.sty
-2022/03/09 | 213092 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt
2022/03/09 | 20558 | info/kaytannollista-latexia/luku-valmistautuminen.tex
2022/03/09 | 20554 | info/kaytannollista-latexia/luku-erikoiset.tex
2022/03/09 | 2045 | macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerfontthemefocus.sty
+2022/03/09 | 18 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/VERSION
2022/03/09 | 185265 | systems/win32/miktex/tm/packages/robotarm__doc.tar.lzma
2022/03/09 | 184637 | support/TeX4ht/source/ChangeLog
2022/03/09 | 1796503 | systems/win32/miktex/tm/packages/pmx__source.tar.lzma
2022/03/09 | 1785199 | systems/win32/miktex/tm/packages/latex-for-undergraduates.tar.lzma
-2022/03/09 | 17726 | CTAN.sites
2022/03/09 | 169064 | systems/win32/miktex/tm/packages/xindex__source.tar.lzma
-2022/03/09 | 16869 | macros/latex/contrib/projlib/projlib-language.sty
2022/03/09 | 1668 | macros/latex/contrib/dtxdescribe/dtxdescribe.ins
2022/03/09 | 1624 | macros/latex/contrib/lwarp/README.txt
2022/03/09 | 16147 | systems/win32/miktex/tm/packages/easybook.tar.lzma
+2022/03/09 | 1580 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerinnerthemeArguelles.sty
2022/03/09 | 15461 | info/kaytannollista-latexia/kaytannollista-latexia.tex
2022/03/09 | 1446 | macros/latex/contrib/messagepassing/messagepassing.ins
-2022/03/09 | 1413 | macros/latex/contrib/projlib/ProjLib.sty
2022/03/09 | 14092 | systems/win32/miktex/tm/packages/lua-widow-control__source.tar.lzma
2022/03/09 | 1365137 | systems/win32/miktex/tm/packages/biblatex-gb7714-2015__doc.tar.lzma
2022/03/09 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r62532.tar.xz
@@ -524,8 +696,8 @@
2022/03/09 | 119925 | info/yet-another-guide-latex2e/Yet-Another-Guide-LaTeX2e.tex
2022/03/09 | 119518 | macros/latex/contrib/mhequ/example.pdf
2022/03/09 | 11876 | macros/latex/contrib/mhequ/mhequ.sty
-2022/03/09 | 11151 | macros/latex/contrib/projlib/projlib-author.sty
2022/03/09 | 1108925 | support/TeX4ht/source/tex4ht-4ht.tex
+2022/03/09 | 1076 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerthemeArguelles.sty
2022/03/09 | 10521 | systems/win32/miktex/tm/packages/lua-widow-control.tar.lzma
2022/03/09 | 10272 | systems/win32/miktex/tm/packages/pmx.tar.lzma
2022/03/09 | 10204 | systems/texlive/tlnet/archive/lua-widow-control.r62526.tar.xz
@@ -687,6 +859,7 @@
2022/03/08 | 685 | graphics/asymptote/LspCpp/third_party/rapidjson/example/simpledom/simpledom.cpp
2022/03/08 | 685716 | systems/texlive/tlnet/archive/pmx.doc.r62509.tar.xz
2022/03/08 | 6818 | graphics/asymptote/LspCpp/third_party/rapidjson/CHANGELOG.md
+2022/03/08 | 6806 | macros/optex/base/alloc.opm
2022/03/08 | 67 | graphics/asymptote/LspCpp/third_party/threadpool/project-root.jam
2022/03/08 | 678 | graphics/asymptote/LspCpp/third_party/rapidjson/contrib/natvis/README.md
2022/03/08 | 676 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentItem.h
@@ -1338,6 +1511,7 @@
2022/03/08 | 13060 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest-unittest-api_test.cc
2022/03/08 | 12 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail33.json
2022/03/08 | 1291 | graphics/asymptote/LspCpp/third_party/utfcpp/CMakeLists.txt
+2022/03/08 | 12879 | macros/optex/base/slides.opm
2022/03/08 | 1283 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/reference_header.htm
2022/03/08 | 1282 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/required.json
2022/03/08 | 1273 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/default.json
@@ -1513,6 +1687,7 @@
2022/03/07 | 88297 | systems/win32/miktex/tm/packages/markdown__source.tar.lzma
2022/03/07 | 880 | graphics/asymptote/doc/xasy.1x
2022/03/07 | 879 | graphics/asymptote/examples/markregular.asy
+2022/03/07 | 87984 | macros/optex/doc/optex-userdoc.tex
2022/03/07 | 8792 | graphics/asymptote/prc/PRCTools/iPRCFile.cc
2022/03/07 | 877 | graphics/asymptote/GUI/Widg_addPolyOpt.py
2022/03/07 | 877 | graphics/asymptote/doc/markers2.asy
@@ -2396,6 +2571,7 @@
2022/03/07 | 2028 | systems/win32/miktex/tm/packages/japanese-otf__doc.tar.lzma
2022/03/07 | 20277 | graphics/asymptote/base/contour.asy
2022/03/07 | 2023 | graphics/asymptote/examples/slope.asy
+2022/03/07 | 20216 | macros/optex/base/colors.opm
2022/03/07 | 2012 | graphics/asymptote/varinit.h
2022/03/07 | 2011 | graphics/asymptote/cudareflect/tinyexr/cmake/sanitizers/asan-wrapper
2022/03/07 | 20090 | graphics/asymptote/runpicture.in
@@ -2727,6 +2903,7 @@
2022/03/07 | 1131 | graphics/asymptote/gl-matrix-2.4.0-pruned/LICENSE.js
2022/03/07 | 1131 | graphics/asymptote/cudareflect/tinyexr/experimental/js/index.html
2022/03/07 | 1130 | graphics/asymptote/GUI/res/icons/redo.svg
+2022/03/07 | 11274 | macros/optex/base/output.opm
2022/03/07 | 1127425 | graphics/asymptote/cudareflect/tinyexr/asakusa.exr
2022/03/07 | 1126 | graphics/asymptote/coenv.cc
2022/03/07 | 1124 | graphics/asymptote/GUI/res/icons/android-locate.svg
@@ -2819,6 +2996,7 @@
2022/03/06 | 7975 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-l3draw.sty
2022/03/06 | 769 | support/pmx/doc/examples/netsoos.pmx
2022/03/06 | 758 | info/latex-for-undergraduates/README.md
+2022/03/06 | 7513 | macros/optex/pkg/minim.opm
2022/03/06 | 718 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.cbx
2022/03/06 | 715 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.cbx
2022/03/06 | 715 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.bbx
@@ -2867,6 +3045,7 @@
2022/03/06 | 619 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.bbx
2022/03/06 | 6171 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.cbx
2022/03/06 | 6137 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.cbx
+2022/03/06 | 611808 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.pdf
2022/03/06 | 609 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authornumber-tecomp.bbx
2022/03/06 | 608 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authornumber-tcomp.bbx
2022/03/06 | 6074 | macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-tikz.sty
@@ -2894,6 +3073,7 @@
2022/03/06 | 438059 | macros/latex/contrib/buctthesis/doc/buctthesis.pdf
2022/03/06 | 43448 | systems/texlive/tlnet/archive/texlogsieve.r62454.tar.xz
2022/03/06 | 4111 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.cbx
+2022/03/06 | 39961 | macros/optex/base/fonts-select.opm
2022/03/06 | 3985 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.cbx
2022/03/06 | 38973 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-standard.bbx
2022/03/06 | 3811 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.cbx
@@ -2904,10 +3084,12 @@
2022/03/06 | 355137 | support/pmx/doc/pmx298.pdf
2022/03/06 | 3548 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.cbx
2022/03/06 | 3424 | systems/texlive/tlnet/archive/spbmark.r62448.tar.xz
+2022/03/06 | 3352 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.tex
2022/03/06 | 32850 | support/pmx/doc/ChangeLog
2022/03/06 | 3279 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authornumber-tcomp.cbx
2022/03/06 | 3249 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.cbx
2022/03/06 | 32473 | support/pmx/doc/gpl.txt
+2022/03/06 | 3196 | macros/optex/pkg/minim-pdf.opm
2022/03/06 | 31808 | systems/texlive/tlnet/archive/chemmacros.r62449.tar.xz
2022/03/06 | 3153 | support/pmx/doc/examples/staffcrossall.pmx
2022/03/06 | 30828 | support/pmx/tex/pmx.tex
@@ -2926,6 +3108,7 @@
2022/03/06 | 210184 | systems/texlive/tlnet/archive/njustthesis.doc.r62452.tar.xz
2022/03/06 | 210116 | info/latex-for-undergraduates/alounsburymacros-doc.pdf
2022/03/06 | 2086 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.cbx
+2022/03/06 | 20440 | macros/optex/base/graphics.opm
2022/03/06 | 1976 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authornumber-terse.cbx
2022/03/06 | 19104 | macros/unicodetex/latex/fontsetup/doc/fontsetup-doc.tex
2022/03/06 | 1848 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.cbx
@@ -2952,6 +3135,7 @@
2022/03/06 | 10473 | info/latex-for-undergraduates/alounsburymacros-doc.tex
2022/03/06 | 1045832 | systems/texlive/tlnet/archive/chemmacros.doc.r62449.tar.xz
2022/03/06 | 1037770 | macros/unicodetex/latex/fontsetup.zip
+2022/03/06 | 102975 | macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.gif
2022/03/06 | 10147 | macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authornumber-comp.cbx
2022/03/05 | 9962 | language/japanese/japanese-otf/doc/test/uplatex/Makefile
2022/03/05 | 96824 | systems/texlive/tlnet/archive/minim-math.doc.r62420.tar.xz
@@ -3072,7 +3256,6 @@
2022/03/05 | 816 | language/japanese/japanese-otf/vf/utfjgbz-v.vf
2022/03/05 | 816 | language/japanese/japanese-otf/vf/utfjgbz-h.vf
2022/03/05 | 808 | language/japanese/japanese-otf/src/umakeotf_prop
-2022/03/05 | 8028 | systems/texlive/tlnet/archive/create-theorem.r62402.tar.xz
2022/03/05 | 784 | language/japanese/japanese-otf/vf/utfjmrk-v.vf
2022/03/05 | 784 | language/japanese/japanese-otf/vf/utfjmrk-h.vf
2022/03/05 | 784 | language/japanese/japanese-otf/vf/utfjmlk-v.vf
@@ -4456,6 +4639,7 @@
2022/03/05 | 468 | language/japanese/japanese-otf/tfm/cidjgr2-h.tfm
2022/03/05 | 468 | language/japanese/japanese-otf/tfm/cidjge2-h.tfm
2022/03/05 | 468 | language/japanese/japanese-otf/tfm/cidjgb2-h.tfm
+2022/03/05 | 4556 | macros/optex/pkg/tikz.opm
2022/03/05 | 4478 | info/latex-for-undergraduates/images/compiling.png
2022/03/05 | 44780 | language/japanese/japanese-otf/vf/cidtmr4-v.vf
2022/03/05 | 44780 | language/japanese/japanese-otf/vf/cidtmr4-h.vf
@@ -4649,6 +4833,7 @@
2022/03/05 | 3392 | language/japanese/japanese-otf/vf/upbrsgnmlgothb-h.vf
2022/03/05 | 33316 | systems/texlive/tlnet/archive/minim-math.r62420.tar.xz
2022/03/05 | 3290 | language/japanese/japanese-otf/src/basepl/base-v.pl
+2022/03/05 | 327 | macros/optex/pkg/minim-mp.opm
2022/03/05 | 32768 | language/japanese/japanese-otf/src/script/glyphdata
2022/03/05 | 3266 | language/japanese/japanese-otf/src/basepl/ubase-v.pl
2022/03/05 | 3264 | language/japanese/japanese-otf/vf/utftmrs-v.vf
@@ -6149,7 +6334,6 @@
2022/03/05 | 12916 | language/japanese/japanese-otf/vf/upnmkorminb-h.vf
2022/03/05 | 12892 | language/japanese/japanese-otf/doc/test/uplatex/utfmacro-cjk.tex
2022/03/05 | 1283 | language/japanese/japanese-otf/doc/test/uplatex/otfscale.tex
-2022/03/05 | 127428 | systems/texlive/tlnet/archive/create-theorem.doc.r62402.tar.xz
2022/03/05 | 127132 | info/latex-for-undergraduates/images/creatingDocument.png
2022/03/05 | 1238 | language/japanese/japanese-otf/doc/TeXLive-maps/otf-cktx.map
2022/03/05 | 12272 | language/japanese/japanese-otf/src/script/mktfm.pl
@@ -6518,59 +6702,3 @@
2022/03/05 | 10396 | language/japanese/japanese-otf/doc/test/uplatex/utfmacro-haranoaji.map
2022/03/05 | 1018644 | macros/latex/contrib/chemmacros/chemmacros-manual.pdf
2022/03/05 | 10064 | language/japanese/japanese-otf/src/script/mktfm_sp.pl
-2022/03/04 | 985645 | biblio/bibtex/contrib/bath-bst.zip
-2022/03/04 | 8928 | systems/texlive/tlnet/archive/ucharclasses.r62378.tar.xz
-2022/03/04 | 87101 | systems/doc/dvipng/dvipng.html
-2022/03/04 | 74401 | macros/latex/contrib/srdp-mathematik/srdp-mathematik.sty
-2022/03/04 | 65520 | systems/texlive/tlnet/archive/yamlvars.doc.r62376.tar.xz
-2022/03/04 | 6414664 | systems/texlive/tlnet/archive/newtx.r62370.tar.xz
-2022/03/04 | 639876 | systems/texlive/tlnet/archive/newtx.doc.r62370.tar.xz
-2022/03/04 | 607869 | biblio/bibtex/contrib/bath-bst/bath-bst.pdf
-2022/03/04 | 560296 | language/korean/kotex-oblivoir.zip
-2022/03/04 | 52325 | macros/latex/contrib/shtthesis/shtthesis.cls
-2022/03/04 | 52244 | macros/latex/contrib/shtthesis/shtthesis-user-guide.tex
-2022/03/04 | 4956 | systems/texlive/tlnet/archive/yamlvars.r62376.tar.xz
-2022/03/04 | 45702 | macros/latex/contrib/srdp-mathematik/srdp-mathematik.tex
-2022/03/04 | 456802 | macros/latex/contrib/msu-thesis.zip
-2022/03/04 | 4487 | biblio/bibtex/contrib/bath-bst/README.md
-2022/03/04 | 446569 | systems/doc/dvips/dvips.html
-2022/03/04 | 4414 | macros/latex/contrib/biblatex-contrib/biblatex-bath/README.md
-2022/03/04 | 43844 | language/korean/kotex-oblivoir/tex/memhangul-common/memhangul-common.sty
-2022/03/04 | 43844 | language/korean/kotex-oblivoir.new.../tex/memhangul-common/memhangul-common.sty
-2022/03/04 | 420510 | macros/latex/contrib/biblatex-contrib/biblatex-bath.zip
-2022/03/04 | 417101 | systems/doc/dvips/dvips.pdf
-2022/03/04 | 401951 | systems/doc/kpathsea/kpathsea.pdf
-2022/03/04 | 3979 | language/korean/kotex-oblivoir/tex/memhangul-common/ob-toclof.sty
-2022/03/04 | 397737 | macros/latex/contrib/biblatex-contrib/biblatex-bath/biblatex-bath.pdf
-2022/03/04 | 3790215 | info/biblio/tugboat.bib
-2022/03/04 | 365006 | systems/doc/kpathsea/kpathsea.html
-2022/03/04 | 3626 | macros/latex/contrib/shtthesis/README.md
-2022/03/04 | 360632 | biblio/bibtex/contrib/bath-bst/bath-bst-v1.pdf
-2022/03/04 | 3577 | info/biblio/tugboat.ltx
-2022/03/04 | 3540 | systems/texlive/tlnet/archive/biblatex-software.r62372.tar.xz
-2022/03/04 | 35182 | macros/latex/contrib/shtthesis/LICENSE
-2022/03/04 | 35004 | systems/texlive/tlnet/archive/penlight.doc.r62374.tar.xz
-2022/03/04 | 314620 | systems/texlive/tlnet/archive/biblatex-software.doc.r62372.tar.xz
-2022/03/04 | 27488 | systems/texlive/tlnet/archive/texdoc.r62380.tar.xz
-2022/03/04 | 2693 | biblio/bibtex/contrib/bath-bst/Makefile
-2022/03/04 | 26024 | macros/latex/contrib/hvpygmentex.zip
-2022/03/04 | 251 | macros/latex/contrib/shtthesis/DEPENDS.txt
-2022/03/04 | 2484 | macros/latex/contrib/biblatex-contrib/biblatex-bath/Makefile
-2022/03/04 | 22287 | language/korean/kotex-oblivoir/doc/ChangeLog
-2022/03/04 | 220487 | systems/doc/dvipng/dvipng.pdf
-2022/03/04 | 2166046 | macros/latex/contrib/shtthesis.zip
-2022/03/04 | 2130652 | macros/latex/contrib/shtthesis/shtthesis-user-guide.pdf
-2022/03/04 | 187793 | macros/latex/contrib/srdp-mathematik.zip
-2022/03/04 | 182053 | biblio/bibtex/contrib/bath-bst/bath-bst.dtx
-2022/03/04 | 178836 | macros/latex/contrib/srdp-mathematik/srdp-mathematik.pdf
-2022/03/04 | 16657 | language/korean/kotex-oblivoir/tex/oblivoir-xl.cls
-2022/03/04 | 16657 | language/korean/kotex-oblivoir.new.../tex/oblivoir-xl.cls
-2022/03/04 | 1594 | language/korean/kotex-oblivoir/tex/oblivoir.cls
-2022/03/04 | 1485 | language/korean/kotex-oblivoir/README
-2022/03/04 | 143332 | systems/texlive/tlnet/archive/ucharclasses.doc.r62378.tar.xz
-2022/03/04 | 143160 | macros/latex/contrib/biblatex-contrib/biblatex-bath/biblatex-bath.dtx
-2022/03/04 | 135720 | systems/texlive/tlnet/archive/texdoc.doc.r62380.tar.xz
-2022/03/04 | 1352 | macros/latex/contrib/srdp-mathematik/README.txt
-2022/03/04 | 12975 | macros/latex/contrib/shtthesis/CHANGELOG.md
-2022/03/04 | 1164 | systems/texlive/tlnet/archive/biblatex-software.source.r62372.tar.xz
-2022/03/04 | 105768 | systems/texlive/tlnet/archive/penlight.r62374.tar.xz
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/README.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/README.md
index 76bb73ed42..93a465be1c 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/README.md
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/README.md
@@ -1,38 +1,29 @@
-# arguelles
-
-Argüelles is a beamer theme that helps you create beautiful presentations. It aims for simplicity and readability by following best practices of graphic design. The layout is elegant but subtle, so as to keep the audience's attention on your content. This is brought to life by Alegreya, one of the 53 Fonts of the Decade selected by the Association Typographique Internationale (2011).
-
-The theme requires the packages [tikz](https://ctan.org/pkg/pgf), [microtype](https://ctan.org/pkg/microtype), [makecell](https://ctan.org/pkg/makecell), [Alegreya/AlegreyaSans](https://ctan.org/pkg/alegreya), [cancel](https://ctan.org/pkg/cancel), [euler](https://ctan.org/pkg/euler), and [fontawesome](https://ctan.org/pkg/fontawesome) to be installed on your computer. These are included in most LaTeX distributions, such as [MiKTeX](https://ctan.org/pkg/miktex) and [TeXLive](https://ctan.org/pkg/texlive).
+<!--
+- arguelles v1.2.1
+- Copyright (c) 2020 Michele Piazzai. Contact: michele.piazzai@uc3m.es
+- This work is released under the MIT License and is free to use, copy, modify,
+- merge, publish, distribute, sublicense, and/or sell. See LICENSE for details.
+-->
-### Table of contents
+# arguelles
-- [Demo](#demo)
-- [Installation](#installation)
-- [Customization](#customization)
- - [Colors](#colors)
- - [Font weights](#font-weights)
- - [Figures](#figures)
+Arguelles is a beamer theme that helps you create beautiful presentations. It aims for simplicity and readability by following best practices of graphic design. The layout is elegant but subtle, so as to keep the audience's attention on your content. This is brought to life by Alegreya, one of the 53 Fonts of the Decade selected by the Association Typographique Internationale (2011).
-* * *
+The theme requires the packages [tikz](https://ctan.org/pkg/pgf), [microtype](https://ctan.org/pkg/microtype), [makecell](https://ctan.org/pkg/makecell), [Alegreya](https://ctan.org/pkg/alegreya), [cancel](https://ctan.org/pkg/cancel), [euler](https://ctan.org/pkg/euler), and [fontawesome5](https://ctan.org/pkg/fontawesome5) to be installed on your computer. These are included in common LaTeX distributions, such as [MiKTeX](https://ctan.org/pkg/miktex) and [TeXLive](https://ctan.org/pkg/texlive).
## Demo
The files `demo.tex` and `demo.pdf` demonstrate the main features of the theme.
-![](https://github.com/piazzai/arguelles/blob/master/demo/images/demo-1.jpg)
-![](https://github.com/piazzai/arguelles/blob/master/demo/images/demo-2.jpg)
-![](https://github.com/piazzai/arguelles/blob/master/demo/images/demo-3.jpg)
-![](https://github.com/piazzai/arguelles/blob/master/demo/images/demo-4.jpg)
-![](https://github.com/piazzai/arguelles/blob/master/demo/images/demo-5.jpg)
-![](https://github.com/piazzai/arguelles/blob/master/demo/images/demo-6.jpg)
+![](https://github.com/piazzai/arguelles/blob/master/demo/demo-arguelles.gif)
## Installation
-The theme is hosted on CTAN and should soon become available through common LaTeX distributions. It can also be installed manually by cloning the repository in the `$HOME/texmf/tex/latex` folder, which is automatically searched by LaTeX. If you do not have this folder, you can [create one](https://www.ias.edu/math/computing/faq/local-latex-style-files).
+Arguelles is [hosted on CTAN](https://ctan.org/pkg/beamertheme-arguelles) and distributed as part of MikTex and TeXLive. It can also be installed manually by cloning this repository in your `$HOME/texmf/tex/latex` folder, which is automatically searched by LaTeX. If you do not have this folder, you can [create one](https://www.ias.edu/math/computing/faq/local-latex-style-files).
## Customization
-It is possible to change parts of the theme by altering the `*.sty` files. There are five such files:
+It is possible to change parts of the theme by altering the style files. There are five such files:
- `beamercolortheme*.sty` sets the colors;
- `beamerfonttheme*.sty` sets font styles and weights;
@@ -58,13 +49,13 @@ There are also two more colors, [fern](https://encycolorpedia.com/4f7942) and [c
\setbeamercolor*{alerted text}{fg=corsa}
```
-Change `corsa` to another color and you are set. Similar changes can be made to tweak the color of normal text, the background, or any other element of the layout. Naturally, you can also define your own colors.
+Change `corsa` to some other color and you are set. Similar changes can be made to tweak the color of normal text, the background, or any other element of the layout. Of course, you can also define your own colors.
### Font weights
-It is also possible to change font styles and weights. Alegreya is a comprehensive family and comes with a variety of weights, as does its sister family Alegreya Sans. In addition to the usual bold set by `\bfseries`, Alegreya also comes in medium, extra bold, and black. Alegreya Sans further comes in light and thin. These weights are set by commands like `\AlegreyaExtraBold` or `\AlegreyaSansThin` (see the [Alegreya package](https://www.ctan.org/pkg/alegreya) for more details), and can be combined with `\scshape` or `\itshape` to produce a variety of effects.
+It is possible to change font styles and weights. Alegreya is a comprehensive family and comes with a variety of weights, as does its sister family Alegreya Sans. In addition to the usual bold set by `\bfseries`, Alegreya comes in medium, extra bold, and black. Alegreya Sans further comes in light and thin. These weights are set by commands like `\AlegreyaExtraBold` or `\AlegreyaSansThin` (see the [Alegreya README](https://mirrors.dotsrc.org/ctan/fonts/alegreya/README) for more details), and can be combined with `\scshape` or `\itshape` to produce a variety of effects.
-The file `beamerfonttheme*.sty` sets the type for various elements of the layout. For example, the appearance of frame titles is determined by the following line of code:
+The file `beamerfonttheme*.sty` sets the type for various elements of the layout. For example, the appearance of frame titles is determined by the following command:
```tex
\setbeamerfont{frame title}{size=\Large}
@@ -72,13 +63,13 @@ The file `beamerfonttheme*.sty` sets the type for various elements of the layout
If you wanted to give frame titles a little bit more weight, you could write `{series=\AlegreyaMedium,size=\Large}`. If you wanted to make them slightly larger, you could change `\Large` to `\LARGE`.
-By default, the theme uses serif type for most text and reserves sans-serif type for the presentation title, formatted in black weight, and any URL. It is possible to alter this behavior by modifying `beamerfonttheme*.sty`. For example, the appearance of the presentation title is given by:
+By default, the theme uses serif type for most text and reserves sans-serif type for the presentation title, formatted in black weight, and URLs. It is possible to alter this behavior by modifying `beamerfonttheme*.sty`. For example, the appearance of the presentation title is determined by:
```tex
\setbeamerfont{title}{series=\AlegreyaSansBlack,size=\LARGE}
```
-Changing `\AlegreyaSansBlack` to `\AlegreyaBlack` makes the title serif like any other text. Deleting `\usefonttheme{serif}` near the top of the file, instead, makes sans-serif type the new default for all text. Changing `\urlstyle{sf}` to `\urlstyle{same}` makes URLs appear just like normal text, and deleting the line altogether resets them to true type.
+Changing `\AlegreyaSansBlack` to `\AlegreyaBlack` in this command makes the title serif like any other text. Deleting `\usefonttheme{serif}` near the top of the style file makes sans-serif type the new default for all text. Changing `\urlstyle{sf}` to `\urlstyle{same}` makes URLs appear like normal text, and deleting the line altogether resets them to true type.
### Figures
@@ -90,3 +81,7 @@ Both old-style and lining figures are also available in a monospaced version, wh
\RequirePackage[osf,tf]{Alegreya}
\RequirePackage[osf,tf]{AlegreyaSans}
```
+
+## Bugs
+
+If you find any problem using this package, please [create an issue](https://github.com/piazzai/arguelles/issues).
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/VERSION b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/VERSION
index 45a1b3f445..43ba882c9f 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/VERSION
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/VERSION
@@ -1 +1 @@
-1.1.2
+v1.2.1 2022-03-09
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamercolorthemeArguelles.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamercolorthemeArguelles.sty
index c524a62e5b..98b14cb428 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamercolorthemeArguelles.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamercolorthemeArguelles.sty
@@ -1,4 +1,4 @@
-% Argüelles v1.1.2 (2022-03-01)
+% arguelles v1.2.1
% Copyright (c) 2020 Michele Piazzai. Contact: michele.piazzai@uc3m.es
% This work is released under the MIT License and is free to use, copy, modify,
% merge, publish, distribute, sublicense, and/or sell. See LICENSE for details.
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerfontthemeArguelles.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerfontthemeArguelles.sty
index f0ebdbee4c..c82ca05cec 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerfontthemeArguelles.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerfontthemeArguelles.sty
@@ -1,4 +1,4 @@
-% Argüelles v1.1.2 (2022-03-01)
+% arguelles v1.2.1
% Copyright (c) 2020 Michele Piazzai. Contact: michele.piazzai@uc3m.es
% This work is released under the MIT License and is free to use, copy, modify,
% merge, publish, distribute, sublicense, and/or sell. See LICENSE for details.
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerinnerthemeArguelles.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerinnerthemeArguelles.sty
index 2942da8c17..097ecf69be 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerinnerthemeArguelles.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerinnerthemeArguelles.sty
@@ -1,4 +1,4 @@
-% Argüelles v1.1.2 (2022-03-01)
+% arguelles v1.2.1
% Copyright (c) 2020 Michele Piazzai. Contact: michele.piazzai@uc3m.es
% This work is released under the MIT License and is free to use, copy, modify,
% merge, publish, distribute, sublicense, and/or sell. See LICENSE for details.
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerouterthemeArguelles.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerouterthemeArguelles.sty
index a1b721448a..639ea67740 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerouterthemeArguelles.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerouterthemeArguelles.sty
@@ -1,4 +1,4 @@
-% Argüelles v1.1.2 (2022-03-01)
+% arguelles v1.2.1
% Copyright (c) 2020 Michele Piazzai. Contact: michele.piazzai@uc3m.es
% This work is released under the MIT License and is free to use, copy, modify,
% merge, publish, distribute, sublicense, and/or sell. See LICENSE for details.
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerthemeArguelles.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerthemeArguelles.sty
index a3aeb452c9..9799af623d 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerthemeArguelles.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/beamerthemeArguelles.sty
@@ -1,4 +1,4 @@
-% Argüelles v1.1.2 (2022-03-01)
+% arguelles v1.2.1
% Copyright (c) 2020 Michele Piazzai. Contact: michele.piazzai@uc3m.es
% This work is released under the MIT License and is free to use, copy, modify,
% merge, publish, distribute, sublicense, and/or sell. See LICENSE for details.
@@ -8,7 +8,7 @@
% Requirements
\RequirePackage{tikz}
\RequirePackage{microtype}
-\RequirePackage{fontawesome}
+\RequirePackage{fontawesome5}
\RequirePackage[osf]{Alegreya}
\RequirePackage[osf]{AlegreyaSans}
\RequirePackage{euler}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.gif b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.gif
new file mode 100644
index 0000000000..b480114c1a
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.gif
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.pdf
index 2601b13b5f..bc21e23070 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo.pdf
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.tex
index 2aa2624a5a..ff971bd798 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo.tex
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/demo-arguelles.tex
@@ -1,4 +1,4 @@
-% Argüelles v1.1.2 (2022-03-01)
+% arguelles v1.2.0
% Copyright (c) 2020 Michele Piazzai. Contact: michele.piazzai@uc3m.es
% This work is released under the MIT License and is free to use, copy, modify,
% merge, publish, distribute, sublicense, and/or sell. See LICENSE for details.
@@ -9,7 +9,7 @@
\usetheme{Arguelles}
-\title{Argüelles}
+\title{Arguelles}
\subtitle{Simple, typographic beamer theme}
\date{}
\author{Place Holder}
@@ -82,7 +82,7 @@
\end{table}
\vfill
\begin{alert}{Alert!}
- A plain frame will appear in the navigation bar unless it is the first frame or it is placed after \texttt{\textbackslash ThankYou}.
+ A plain frame does not show the progress bar but it still appears in the progress bar of other frames unless it is placed after \texttt{\textbackslash ThankYou}.
\end{alert}
\end{frame}
@@ -96,7 +96,8 @@
In combination with \textit{plain},\par
it makes a nice thank-you slide!
\vfill\scalebox{4}{\faGithub}\par\bigskip
- \url{https://github.com/piazzai/arguelles}
+ \url{https://github.com/piazzai/arguelles} \\
+ \url{https://ctan.org/pkg/beamertheme-arguelles}
\end{frame}
\end{document}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-1.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-1.jpg
deleted file mode 100644
index 49a4d35d1f..0000000000
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-1.jpg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-2.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-2.jpg
deleted file mode 100644
index 1e4a75d782..0000000000
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-2.jpg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-3.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-3.jpg
deleted file mode 100644
index 1b322d11b5..0000000000
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-3.jpg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-4.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-4.jpg
deleted file mode 100644
index 2d63f066d9..0000000000
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-4.jpg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-5.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-5.jpg
deleted file mode 100644
index 5559c0b9c3..0000000000
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-5.jpg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-6.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-6.jpg
deleted file mode 100644
index 08af35c8d5..0000000000
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-arguelles/demo/images/demo-6.jpg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/create-theorem/create-theorem-doc.pdf b/macros/latex/contrib/create-theorem/create-theorem-doc.pdf
index 5ec3992fbe..c61567791b 100644
--- a/macros/latex/contrib/create-theorem/create-theorem-doc.pdf
+++ b/macros/latex/contrib/create-theorem/create-theorem-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/create-theorem/create-theorem-doc.tex b/macros/latex/contrib/create-theorem/create-theorem-doc.tex
index ef84ddfca5..3a726e50e1 100644
--- a/macros/latex/contrib/create-theorem/create-theorem-doc.tex
+++ b/macros/latex/contrib/create-theorem/create-theorem-doc.tex
@@ -85,7 +85,7 @@
\begin{document}
-\def\PackageVersion{2022/03/10}
+\def\PackageVersion{2022/03/11}
\title{\createtheorempackage{}\\\smallskip\itshape Initializing theorem-like environments with multilingual support}
\author{Jinwen XU}
@@ -287,7 +287,7 @@ Supported keys are:
\end{center}
\begin{tip}
- The names for the following environments have been preset: \texttt{assertion}, \texttt{assumption}, \texttt{axiom}, \texttt{conclusion}, \texttt{conjecture}, \texttt{convention}, \texttt{corollary}, \texttt{definition}, \texttt{example}, \texttt{exercise}, \texttt{fact}, \texttt{hypothesis}, \texttt{lemma}, \texttt{notation}, \texttt{observation}, \texttt{postulate}, \texttt{problem}, \texttt{property}, \texttt{proposition}, \texttt{question}, \texttt{remark} and \texttt{theorem}. If you are fine with the preset names, then you don't need to specify the key ``\commandoption{name}'' while creating them, otherwise you shall have to use the package option ``\packageoption{no preset names}'' to disable the presets and then define your own ones.
+ The names for the following environments have been preset: \texttt{assertion}, \texttt{assumption}, \texttt{axiom}, \texttt{conclusion}, \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{postulate}, \texttt{problem}, \texttt{property}, \texttt{proposition}, \texttt{question}, \texttt{remark} and \texttt{theorem}. If you are fine with the preset names, then you don't need to specify the key ``\commandoption{name}'' while creating them, otherwise you shall have to use the package option ``\packageoption{no preset names}'' to disable the presets and then define your own ones.
\end{tip}
\medskip
@@ -440,7 +440,7 @@ In each case, the two environments \texttt{idea} and \texttt{idea*} share the sa
\item There may be inaccuracies in the translation of those preset names.
\end{itemize}
-\medskip
+% \medskip
If you run into any issues or have ideas for improvement, feel free to discuss on:
\begin{center}
\url{https://github.com/Jinwen-XU/create-theorem/issues}
diff --git a/macros/latex/contrib/create-theorem/create-theorem.sty b/macros/latex/contrib/create-theorem/create-theorem.sty
index b7439ea466..b0371749b8 100644
--- a/macros/latex/contrib/create-theorem/create-theorem.sty
+++ b/macros/latex/contrib/create-theorem/create-theorem.sty
@@ -13,7 +13,7 @@
\RequirePackage{l3keys2e}
\ProvidesExplPackage
{create-theorem}
- {2022/03/10} {}
+ {2022/03/11} {}
{Initializing theorem-like environments with multilingual support}
\keys_define:nn { create-theorem }
@@ -199,8 +199,8 @@
{
\tl_if_blank:eTF { #3 }
{
- \tl_gset:cn { g_crthm_name_ #7 ref_article_singular_ #1 _ #2 _tl } { \crefthemark{ \skip_horizontal:n { -1ex } } }
- \tl_gset:cn { g_crthm_name_ #7 ref_article_plural_ #1 _ #2 _tl } { \crefthemark{ \skip_horizontal:n { -1ex } } }
+ \tl_gset:cn { g_crthm_name_ #7 ref_article_singular_ #1 _ #2 _tl } { \crefthemark{ \skip_horizontal:n { -.5ex } } }
+ \tl_gset:cn { g_crthm_name_ #7 ref_article_plural_ #1 _ #2 _tl } { \crefthemark{ \skip_horizontal:n { -.5ex } } }
}
{
\tl_gset:cn { g_crthm_name_ #7 ref_article_singular_ #1 _ #2 _tl } { \crefthemark { #3 } }
@@ -1699,6 +1699,91 @@
}
}
+\NameTheorem { definition-proposition }
+ {
+ , heading = {
+ , english = Definition-Proposition
+ , french = Définition-Proposition
+ , ngerman = Definition-Proposition
+ , italian = Definizione-Proposizione
+ , portuguese = Definição-Proposição
+ , brazilian = Definição-Proposição
+ , spanish = Definición-Proposición
+ , schinese = 定义-命题
+ , tchinese = 定義-命題
+ , japanese = 定義-命題
+ , russian = Определение-Предложение
+ }
+ , crefname = {
+ , english = {definition-proposition}{definition-propositions}
+ , french = [la]{définition-proposition}[les]{définition-propositions}
+ , ngerman = {Definition-Proposition}{Definitionen-Propositionen}
+ , italian = [la]{definizione-proposizione}[le]{definizioni-proposte}
+ , portuguese = [a]{definição-proposição}[as]{definições-proposições}
+ , brazilian = [a]{definição-proposição}[as]{definições-proposições}
+ , spanish = [la]{definición-proposición}[las]{definiciones-proposiciones}
+ , schinese = {定义-命题}{定义-命题}
+ , tchinese = {定義-命題}{定義-命題}
+ , japanese = {定義-命題}{定義-命題}
+ , russian = {определение-предложение}{определения-предложения}
+ }
+ , Crefname = {
+ , english = {Definition-proposition}{Definition-propositions}
+ , french = [La]{définition-proposition}[Les]{définition-propositions}
+ , ngerman = {Definition-Proposition}{Definitionen-Propositionen}
+ , italian = [La]{definizione-proposizione}[Le]{definizioni-proposte}
+ , portuguese = [A]{definição-proposição}[As]{definições-proposições}
+ , brazilian = [A]{definição-proposição}[As]{definições-proposições}
+ , spanish = [La]{definición-proposición}[Las]{definiciones-proposiciones}
+ , schinese = {定义-命题}{定义-命题}
+ , tchinese = {定義-命題}{定義-命題}
+ , japanese = {定義-命題}{定義-命題}
+ , russian = {Определение-предложение}{Определения-предложения}
+ }
+ }
+
+\NameTheorem { definition-theorem }
+ {
+ , heading = {
+ , english = Definition-Theorem
+ , french = Définition-Théorème
+ , ngerman = Definition-Satz
+ , italian = Definizione-Teorema
+ , portuguese = Definição-Teorema
+ , brazilian = Definição-Teorema
+ , spanish = Definición-Teorema
+ , schinese = 定义-定理
+ , tchinese = 定義-定理
+ , japanese = 定義-定理
+ , russian = Определение-Теорема
+ }
+ , crefname = {
+ , english = {definition-theorem}{definition-theorems}
+ , french = [la]{définition-théorème}[les]{définition-théorèmes}
+ , ngerman = {Definition-Satz}{Definitionen-Sätze}
+ , italian = [la]{definizione-teorema}[le]{definizioni-teoremi}
+ , portuguese = [a]{definição-teorema}[as]{definições-teoremas}
+ , brazilian = [a]{definição-teorema}[as]{definições-teoremas}
+ , spanish = [la]{definición-teorema}[las]{definiciones-teoremas}
+ , schinese = {定义-定理}{定义-定理}
+ , tchinese = {定義-定理}{定義-定理}
+ , japanese = {定義-定理}{定義-定理}
+ , russian = {определение-теорема}{определения-теоремы}
+ }
+ , Crefname = {
+ , english = {Definition-theorem}{Definition-theorems}
+ , french = [La]{définition-théorème}[Les]{définition-théorèmes}
+ , ngerman = {Definition-Satz}{Definitionen-Sätze}
+ , italian = [La]{definizione-teorema}[Le]{definizioni-teoremi}
+ , portuguese = [A]{definição-teorema}[As]{definições-teoremas}
+ , brazilian = [A]{definição-teorema}[As]{definições-teoremas}
+ , spanish = [La]{definición-teorema}[Las]{definiciones-teoremas}
+ , schinese = {定义-定理}{定义-定理}
+ , tchinese = {定義-定理}{定義-定理}
+ , japanese = {定義-定理}{定義-定理}
+ , russian = {Определение-теорема}{Определения-теоремы}
+ }
+ }
\endinput
%%
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index cb9c5ee12e..15185e97b7 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}{2022/03/10}{1.643}
+\ProvidesExplClass{easybook}{2022/03/11}{1.645}
{Easily typesetting Chinese theses or books}
\bool_set_false:N \l__eb_compile_draft_bool
@@ -303,7 +303,7 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e,etoolbox}
-\ProvidesExplPackage{easybase}{2022/03/10}{1.643}
+\ProvidesExplPackage{easybase}{2022/03/11}{1.645}
{Easily typesetting Chinese theses or books}
\cs_generate_variant:Nn \dim_set:Nn { NV }
@@ -324,19 +324,16 @@
\seq_set_from_clist:Nn \l_tmpa_seq {#1}
\seq_map_inline:Nn \l_tmpa_seq {#2}
}
-\cs_new_protected:Npn \eb_char_patch_cmd:wnn #1#2#3
+\cs_new_protected:Npn \eb_char_patch_cmd:Nnn #1#2#3
{
\ExplSyntaxOn\makeatletter
- \eb_patch_cmd:wnn {#1} {#2} {#3}
+ \eb_patch_cmd:Nnn {#1} {#2} {#3}
\ExplSyntaxOff\makeatother
}
-\cs_new_protected:Npn \eb_patch_cmd:wnn #1#2#3
+\cs_new_protected:Npn \eb_patch_cmd:Nnn #1#2#3
{
- \eb_seq_map_inline:nn {#1}
- {
- \ctex_patch_cmd_once:NnnnTF ##1 { } {#2} {#3}
- { } { \ctex_patch_failure:N ##1 }
- }
+ \ctex_patch_cmd_once:NnnnTF #1 { } {#2} {#3}
+ { } { \ctex_patch_failure:N #1 }
}
\cs_new_protected:Npn \eb_preto_cmd:nn #1#2
{ \AddToHook{cmd/#1/before}{#2} }
@@ -507,7 +504,6 @@
pdfpages+multicol+
fancyhdr+titletoc+caption+
tabularray+
- setspace+
listings
}
\cs_new_protected:Npn \eb_package_date_check:nn #1#2
@@ -876,10 +872,10 @@
{
fnfirstindent .dim_set:N = \fnfirstindent,
fnfirstindent .initial:n = 0.8em,
- fnparskip .skip_set:N = \fnparskip,
- fnparskip .initial:n = 0ex plus .1ex,
fnafterindent .tl_set:N = \fnafterindent,
fnafterindent .initial:n = 2em,
+ fnparskip .skip_set:N = \fnparskip,
+ fnparskip .initial:n = 0ex plus .1ex,
fnpara-form .tl_set:N = \l__eb_fnpara_format_tl,
fntext-pos .tl_set:N = \l__eb_fntext_position_tl,
fntext-pos .initial:n = super,
@@ -932,7 +928,7 @@
\eb_fnpara_if_pos_bottom:
}
\cs_new_protected:Npn \setspread #1 { \linespread{#1}\selectfont }
-\cs_new:Npn \eb@footmisc@ifvoid #1#2#3 { \ifvoid #1#2\else #3\fi }
+\cs_new:Npn \eb@ifvoid #1#2#3 { \ifvoid #1#2\else #3\fi }
\cs_new_protected:Npn \eb_fnpara_if_pos_bottom:
{
\bool_if:NT \l__eb_fnpara_bottom_bool
@@ -943,24 +939,25 @@
\cs_set:Npn \@makecol
{
\setbox\@outputbox\box\@cclv
+ \let\@elt\relax
\xdef\@freelist{\@freelist\@midlist}
\global\let\@midlist\@empty
\@combinefloats
- \eb@footmisc@ifvoid\footins{}
+ \eb@ifvoid\footins{}
{
\setbox\@outputbox\vbox
- \bgroup
- \boxmaxdepth\@maxdepth
- \unvbox\@outputbox
- \vfill\relax
- \vskip\skip\footins
- \color@begingroup
- \normalcolor\footnoterule
- \unvbox\footins
- \color@endgroup
- \egroup
+ {
+ \boxmaxdepth\@maxdepth
+ \unvbox\@outputbox
+ \vfill\relax
+ \vskip\skip\footins
+ \color@begingroup
+ \normalcolor\footnoterule
+ \unvbox\footins
+ \color@endgroup
+ }
}
- \eb@footmisc@ifvoid\@kludgeins
+ \eb@ifvoid\@kludgeins
{\@makespecialcolbox}
{
\setbox\@outputbox\vbox to\@colht
@@ -1035,17 +1032,21 @@
\tl_if_eq:NnT \l__eb_footnote_value_tl { hang } { \par }
\group_end:
}
-\eb_patch_cmd:wnn { \@footnotetext,\@mpfootnotetext }
- { \reset@font }
+\eb_seq_map_inline:nn { \@footnotetext,\@mpfootnotetext }
{
- \setspread{\fp_use:N \l__eb_spread_footnote_fp}
- \tl_use:N \l__eb_subfont_footnote_tl
+ \eb_patch_cmd:Nnn #1
+ { \reset@font }
+ {
+ \setspread{\fp_use:N \l__eb_spread_footnote_fp}
+ \tl_use:N \l__eb_subfont_footnote_tl
+ }
}
\cs_set_eq:NN \eb@@makefntext \@makefntext
\cs_set_eq:NN \eb@@footnotetext \@footnotetext
\ctex_at_end_package:nn { footmisc }
{
\eb_package_date_check:nn { footmisc } { 2022/02/10 }
+ \boolfalse{FN@setspace}
\ifbool{FN@para}{}
{
\cs_set_eq:NN \@makefntext \eb@@makefntext
@@ -1055,12 +1056,7 @@
{
bool {FN@hangfoot} or
bool {FN@perpage} or
- bool {FN@robust} or
- (
- notbool {FN@abovefloats} and
- bool {FN@fixskip} and
- test {\ifnumcomp{\FN@bottomcases}{=}{1}}
- )
+ bool {FN@robust}
}
{\msg_warning:nn { easybase } { footmisc }}{}
}
@@ -1626,7 +1622,6 @@
\ctex_at_end_package:nn { imakeidx }
{
- \makeindex
\RenewDocumentCommand{\printindex}{st+od()}
{
\group_begin:
@@ -1657,7 +1652,7 @@
\ctex_assign_heading_name:nn { biappendix } {#1}
\int_compare:nNnTF { \c@chapter } > { 0 }
{
- \eb_char_patch_cmd:wnn \CTEX@addbitocline
+ \eb_char_patch_cmd:Nnn \CTEX@addbitocline
{
\def\CTEX@prechapter{\CTEX@prebichapter}
\def\CTEX@thechapter{\CTEX@bichapter@number}
@@ -1944,7 +1939,7 @@
spacebelow = 0ex plus .1ex,
headindent = 0em,
within = \bool_if:NT \l__eb_class_mode_book_bool { chapter },
- headpunct = {},
+ headpunct = :,
headfont = \color{ctex@emph}\sffamily,
bodyfont = \normalfont,
postheadspace = 1em
@@ -1979,14 +1974,17 @@
aligned,alignedat,gathered,multlined,lgathered,rgathered
}
{ \setspread{\fp_use:N \l__eb_spread_math_fp} }
-\eb_patch_cmd:wnn
+\eb_seq_map_inline:nn
{ \start@gather,\start@align,\start@multline }
- { \collect@body }
{
- \setspread{\fp_use:N \l__eb_spread_math_fp}
- \collect@body
+ \eb_patch_cmd:Nnn #1
+ { \collect@body }
+ {
+ \setspread{\fp_use:N \l__eb_spread_math_fp}
+ \collect@body
+ }
}
-\eb_patch_cmd:wnn \gather@split
+\eb_patch_cmd:Nnn \gather@split
{ \spread@equation }
{
\setspread{\fp_use:N \l__eb_spread_math_fp}
@@ -2325,7 +2323,7 @@
}
%</package>
%<*tcolorbox>
-\ProvidesExplFile{eb-tcolorbox.cfg}{2022/03/10}{1.643}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2022/03/11}{1.645}
{Customization of tcolorbox for easybook}
\cs_set_protected:Npn \addtotcbstyle #1#2
diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf
index 38e91e5c54..0ef1b36ef4 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 495bca8f59..b1eb6b71b7 100644
--- a/macros/latex/contrib/easybook/easybook.tex
+++ b/macros/latex/contrib/easybook/easybook.tex
@@ -21,8 +21,8 @@
name = easybook,
color-scheme = blue,
title = EASYBOOK使用手册,
- version = v1.644,
- date = 2022/03/10,
+ version = v1.645,
+ date = 2022/03/11,
authors = 瞿毅,
info = 简便地排版中文学位论文或书籍,
email = q1jx@foxmail.com,
@@ -104,7 +104,7 @@
\endgroup
\IfBooleanF{#1}{\cnltx@checkdefault{\hfill\newline}}
}
-\newnote{\newtag}[1][New]{\textcolor{red}{\ding{70}\ #1}}
+\newnote{\newtag}[1][New]{\textcolor{red}{\fbox{#1}}}
% Use a separate module margin marker to prevent overlap
\newcommand{\smodule}{\cnltx@module@text{}}
\newcommand{\noitemsep}{\setlength{\itemsep}{0ex}}
@@ -233,8 +233,8 @@
amsthm & bicaption & ctex & caption & chemformula \\
enumitem & etoolbox & fancyhdr & geometry & hyperref \\
imakeidx & listings & marginnote & mathtools & multicol \\
- pifont & pdfpages & siunitx & spbmark & setspace \\
- thmtools & tcolorbox & titletoc & tabularray & ulem
+ pifont & pdfpages & siunitx & spbmark & thmtools \\
+ tcolorbox & titletoc & tabularray & ulem &
}
\section{文档类选项}
@@ -475,7 +475,7 @@
\keychoice{fntnumwith}{part,chapter,page}\Default{chapter}
使脚注跟随编号的计数器名。默认跟随章计数器,即开启新的一章时脚注编号从1开始。
\keychoice{uppercase}{all,first,none,none*}\Default{all}
- 使用 \cs*{rightmark} 和 \cs*{leftmark} 等标题标记命令获取标题内容用于页眉页脚时其中英文的大小写类型。\code{all} 为标题标记中的英文字母全部大写。\code{first} 为标记以英文起始时仅第一个字母大写。\code{none} 不改变标记中英文字母的大小写形式,变体 \code{none*} 则强制标记的字母均为小写形式。
+ 使用 \cs{rightmark} 和 \cs{leftmark} 等标题标记命令获取标题内容用于页眉页脚时其中英文的大小写类型。\code{all} 为标题标记中的英文字母全部大写。\code{first} 为标记以英文起始时仅第一个字母大写。\code{none} 不改变标记中英文字母的大小写形式,变体 \code{none*} 则强制标记的字母均为小写形式。
\kvsplit{brackets}{左括号,右括号}\Default{\Marg{(,)}}
设置行间公式编号标签的括号及格式,以英文逗号分隔,分别代表左右括号。\meta{左括号} 可以是带有一个参数的命令,用于接受编号和 \meta{右括号}。将标签括号设置为方括号,并使用无衬线字体:
\begin{ctexexam}
@@ -802,7 +802,7 @@
每个脚注首段的首行缩进(选项 \option*{hang} 为整体缩进),等于长度 \cs{fnfirstindent} 的值。
\keyval{fnafterindent}{刚性长度}\Default{2em}
每个脚注第二段及之后段落的首行缩进,等于长度 \cs{fnafterindent} 的值。
- \keyval{fnparskip}{弹性长度}\Default{0ex}
+ \keyval{fnparskip}{弹性长度}\Default{0ex plus .1ex}
不同脚注的段落间距,等于长度 \cs{fnparskip} 的值。
\keychoice{fntext-pos}{normal,super}\Default{super}
设置脚注内容标记的位置,正常文本或是上标形式。
@@ -1012,9 +1012,9 @@
\subsection{列表}
\begin{commands}
- \command*{setlist}[\sarg\splitoarg{列表类型,级别}\marg{键值列表}]
- 列表宏包 \pkg*{enumitem} 为系统预置的三个列表环境提供了灵活的标签以及间距控制,这是设置列表环境的通用接口命令。带有星号参数的命令在原有格式上补充。\meta{列表类型} 是排序列表 \code{enumerate}、常规列表 \code{itemize} 和主题列表 \code{description} 三个基本类型,也可以是 \cs*{newlist} 新建的定理环境,若不指定则设置所有列表类型的格式。若不指定 \meta{级别} 则设置所有列表级别的格式。
- \command*{newlist}[\marg{列表名}\marg{列表类型}\marg{最大级别}]
+ \command{setlist}[\sarg\splitoarg{列表类型,级别}\marg{键值列表}]
+ 列表宏包 \pkg*{enumitem} 为系统预置的三个列表环境提供了灵活的标签以及间距控制,这是设置列表环境的通用接口命令。带有星号参数的命令在原有格式上补充。\meta{列表类型} 是排序列表 \code{enumerate}、常规列表 \code{itemize} 和主题列表 \code{description} 三个基本类型,也可以是 \cs{newlist} 新建的定理环境,若不指定则设置所有列表类型的格式。若不指定 \meta{级别} 则设置所有列表级别的格式。
+ \command{newlist}[\marg{列表名}\marg{列表类型}\marg{最大级别}]
克隆基本的 \meta{列表类型} 在其基础上新建一个名为 \meta{列表名} 的列表环境。不要将 \meta{最大级别} 设置过大以避免创建过多的计数器和相关宏。
\begin{ctexexam}
\setlist{} % 清除所有列表共享的格式
@@ -1043,7 +1043,7 @@
\subsection{悬挂缩进}
\begin{commands}
\command{hangpara}[\marg{缩进长度}\marg{缩进开始行数}]
- 悬挂缩进命令 \cs{hangpara} 使其后的一个段落保持悬挂缩进,参数与 \env{hangparas} 环境相同,不过只有一个段落。\meta{缩进长度} 可以是带单位的数值或由文本长度测定命令 \cs*{widthof} 提供。
+ 悬挂缩进命令 \cs{hangpara} 使其后的一个段落保持悬挂缩进,参数与 \env{hangparas} 环境相同,不过只有一个段落。\meta{缩进长度} 可以是带单位的数值或由文本长度测定命令 \cs{widthof} 提供。
\end{commands}
\begin{environments}
@@ -1134,14 +1134,14 @@
\subsection{物理量}
\begin{commands}
- \command*{num}[\oarg{键值列表}\marg{数字}]
- \pkg*{siunitx} 宏包的 \cs*{num} 命令可以输出以科学计数法表示的数值。
- \command*{unit}[\oarg{键值列表}\marg{单位}]
- 单位格式化命令 \cs*{unit} 包含文字元素(例如字母或数字)时,使用 \Marg{.} 和 \code{\~{}} 放置在单元乘积中间,并使用 \code{\_} 和 \code{\^{}} 正确放置指定的下标和上标。格式化方法可在数学和文本模式下使用。
- \command*{qty}[\oarg{键值列表}\marg{数字}\oarg{前缀}\marg{单位}]
- 命令 \cs*{qty} 可用来输出带有单位的量。
- \command*{qtyrange}[\oarg{键值列表}\marg{起始数字}\marg{结束数字}\marg{单位}]
- 命令 \cs*{qtyrange} 可以输出带有范围和单位的量。
+ \command{num}[\oarg{键值列表}\marg{数字}]
+ \pkg*{siunitx} 宏包的 \cs{num} 命令可以输出以科学计数法表示的数值。
+ \command{unit}[\oarg{键值列表}\marg{单位}]
+ 单位格式化命令 \cs{unit} 包含文字元素(例如字母或数字)时,使用 \Marg{.} 和 \code{\~{}} 放置在单元乘积中间,并使用 \code{\_} 和 \code{\^{}} 正确放置指定的下标和上标。格式化方法可在数学和文本模式下使用。
+ \command{qty}[\oarg{键值列表}\marg{数字}\oarg{前缀}\marg{单位}]
+ 命令 \cs{qty} 可用来输出带有单位的量。
+ \command{qtyrange}[\oarg{键值列表}\marg{起始数字}\marg{结束数字}\marg{单位}]
+ 命令 \cs{qtyrange} 可以输出带有范围和单位的量。
\begin{ctexexam}
\numproduct{-21x3e5}
\unit{mL~min^{-1}}
@@ -1150,6 +1150,16 @@
\end{ctexexam}
\end{commands}
+\subsection{化学式}
+\begin{commands}
+ \command{ch}[\oarg{键值列表}\marg{化学式}]
+ 除了以普通公式的方式,化学式还可用 \pkg*{chemformula} 实现。无机化学式使用 \cs{ch} 命令书写。化合物表达式中的原子数不需要加下标符号,化学计量数与表达式间隔一个空格。
+ \begin{ctexexam}
+ \ch{[Cu(NH3)4]^2+}
+ \ch{Cu2S + 2 O2 - 2 e^- == 2 Cu^2+ + SO^{2-}_4}
+ \end{ctexexam}
+\end{commands}
+
\subsection{计数器}
\begin{commands}\noitemsep
\command{newcounter}[\marg{计数器}\oarg{父计数器}]\default{}
@@ -1187,7 +1197,7 @@
\subsection{图表题注}
\begin{commands}
- \command*{captionsetup}[\oarg{条目名}\marg{键值列表}]
+ \command{captionsetup}[\oarg{条目名}\marg{键值列表}]
这是 \pkg*{caption} 宏包的接口命令,\meta{键值列表} 提供多个选项更改图表题注的格式。题注主要由三部分组成:标题标签即图表名与题注编号的组合,标题文本本身通常是内容的简短描述,以及将文本与标签分开的题注分隔符。可以在导言区设置整体格式,也可以在正文使用局部更改格式。
\end{commands}
@@ -1198,11 +1208,28 @@
题注命令 \cs{caption} 用于在图表上下方插入题注,需要在浮动环境 \env*{figure} 和 \env*{table} 中使用。在浮动环境外可以使用 \cs{captionof} 命令,第一个参数指定条目名。可以搭配 \pkg*{newfloat} 宏包创建更多类型的浮动环境并设置相应题注。\cs{bicaption} 命令可以实现中英文双语题注,需要在导言区载入 \pkg*{bicaption} 宏包,具体用法见说明文档。
\end{commands}
-\subsection{化学式}
-\begin{commands}\noitemsep
- \command*{ch}[\oarg{键值列表}\marg{化学式}]\default{}
- \command*{chemfig}[\oarg{键值列表}\marg{化学式}]
- 除了以普通公式的方式,化学式还可用 \pkg*{chemformula} 实现,无机化学式使用 \cs*{ch} 命令书写。有机化学式推荐在导言区载入 \pkg*{chemfig} 宏包,使用 \cs*{chemfig} 命令完成。
+\subsection{索引}
+\begin{commands}
+ \command{indexsetup}[\marg{键值列表}]
+ \pkg*{imakeidx} 宏包增强了索引的功能。这是它的的接口命令,用于设置索引表的整体格式。
+ \command*{index}[\oarg{索引名}\marg{标签}]
+ 索引标签命令 \cs*{index} 的 \meta{索引名} 与索引输出命令 \cs{printindex} 一致,可以存在多个索引表。
+ \command*{makeindex}[\oarg{键值列表}]
+ 使用 \cs*{makeindex} 命令开启索引收集。这个命令可以重复使用打印多个索引表,以不同的 \meta{索引名} 作为区分,如果仅打印一个索引表就没必要再使用。
+ \command{printindex}[\sarg\oarg{键值列表}]
+ 现在索引表生成命令 \cs{printindex} 被重新定义。\meta{键值列表} 中的选项与\ref{sec:document command} 其它目录命令相同,但是原本接口命令 \cs{indexsetup} 的部分选项失效。
+ \begin{options}
+ \keyval{name}{索引名}
+ 指定输出名为 \meta{索引名} 的索引表,如果只使用一个索引表则默认为项目文件名不需要指定。
+ \end{options}
+\end{commands}
+
+\subsection{边注}
+\begin{commands}
+ \command{marginnote}[\oarg{左文本}\marg{右文本}\oarg{垂直偏移}]
+ 边注命令用于在两侧页边空白添加标注。如果只给定了 \meta{右文本},那么边注在奇偶数页文字相同。如果同时给定了 \meta{左文本},则偶数页使用 \meta{左文本} 的文字。
+ \command{reversemarginpar}
+ 边注位置设置命令,用于将边注排版到与默认边空位置相反的边空中。
\end{commands}
\subsection{公式符号对照}
@@ -1212,8 +1239,8 @@
\begin{ctexexam}
\seteqcomp{intro = 上式中}
\begin{eqcomp}[width = 1.5em]
- \symb{Ab}[$\to$] 符号说明1
- \symb{C}[---] 符号说明2
+ \symb{Ab}[$\to$] 符号说明
+ \symb{C}[---] 符号说明
\end{eqcomp}
\end{ctexexam}
\end{environments}
@@ -1247,45 +1274,17 @@
\end{options}
\end{commands}
-\subsection{索引}
-\begin{commands}
- \command*{indexsetup}[\marg{键值列表}]
- \pkg*{imakeidx} 宏包增强了索引的功能。这是它的的接口命令,用于设置索引表的整体格式。
- \command*{index}[\oarg{索引名}\marg{标签}]
- 索引标签命令 \cs*{index} 的 \meta{索引名} 与索引输出命令 \cs{printindex} 一致,可以存在多个索引表。
- \command*{makeindex}[\oarg{键值列表}]
- 使用 \cs*{makeindex} 命令开启索引收集。这个命令可以重复使用打印多个索引表,以不同的 \meta{索引名} 作为区分,如果仅打印一个索引表就没必要再使用。
- \command{printindex}[\sarg\oarg{键值列表}]
- 现在索引表生成命令 \cs{printindex} 被重新定义。\meta{键值列表} 中的选项与\ref{sec:document command} 其它目录命令相同,但是原本接口命令 \cs*{indexsetup} 的部分选项失效。
- \begin{options}
- \keyval{name}{索引名}
- 指定输出名为 \meta{索引名} 的索引表,如果只使用一个索引表则默认为项目文件名不需要指定。
- \end{options}
-\end{commands}
-
-\subsection{边注}
-\begin{commands}
- \command{marginnote}[\oarg{左文本}\marg{右文本}\oarg{垂直偏移}]
- 命令 \cs{marginnote} 可以生成简单的边注,如果只给定了 \meta{右文本},那么边注在奇偶数页文字相同。如果同时给定了 \meta{左文本},则偶数页使用 \meta{左文本} 的文字。
-\end{commands}
-
\subsection{插入文档}
\begin{commands}
- \command*{includepdf}[\oarg{键值列表}\marg{文档名}]
+ \command{includepdf}[\oarg{键值列表}\marg{文档名}]
该命令由文档宏包 \pkg*{pdfpages} 提供。可以将其它 \code{pdf} 文档插入当前文档,比如插入其它软件制作的封面。\meta{键值列表} 可以指定插入页数、逻辑页和横向页面等,详情查看宏包文档。
\end{commands}
-\subsection{指定行距的段落}
-\begin{environments}
- \environment*{spacing}[\marg{浮点数}]
- 该环境由行距宏包 \pkg*{setspace} 提供。可以指定环境内段落的行距,使用 \meta{浮点数} 控制行距倍数。
-\end{environments}
-
\subsection{下划线}
\begin{commands}\noitemsep
- \command*{uline}[\marg{下划直线}]\default{}
- \command*{uuline}[\marg{下划双直线}]\default{}
- \command*{uwave}[\marg{下划波浪线}]
+ \command{uline}[\marg{下划直线}]\default{}
+ \command{uuline}[\marg{下划双直线}]\default{}
+ \command{uwave}[\marg{下划波浪线}]
\pkg*{ulem} 宏包提供了多种下划线命令,可以重新定义 \cs*{ULthickness} 命令控制下划线的粗细。下划线的深度由 \cs*{ULdepth} 控制,默认值 \cs*{maxdimen} 是一个允许深度根据当前字体变化的特殊标志,当然也可以使用 \cs*{setlength} 设定为指定深度。
\end{commands}
diff --git a/macros/latex/contrib/jmsdelim/README.md b/macros/latex/contrib/jmsdelim/README.md
new file mode 100644
index 0000000000..dfdeff2ab3
--- /dev/null
+++ b/macros/latex/contrib/jmsdelim/README.md
@@ -0,0 +1,35 @@
+The `jmsdelim` package
+======================
+
+A package for compositional delimiter sizing.
+
+The following files are included:
+- `jmsdelim.dtx` : the doctrip source for the package and documentation
+- `jmsdelim.ins` : the generation script for producing `ebproof-rules.sty`
+
+The package requires `expl3` (the LaTeX3 programming environment) which
+provides many useful programming tools.
+
+To build the documenation, run `l3build doc`.
+
+
+License
+-------
+
+Copyright 2022 Jonathan Sterling <jon@jonmsterling.com>
+
+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 “maintained”.
+
+The Current Maintainer of this work is Jonathan Sterling.
+
+This work consists of the file `jmsdelim.dtx`.
+
+
diff --git a/macros/latex/contrib/jmsdelim/jmsdelim.dtx b/macros/latex/contrib/jmsdelim/jmsdelim.dtx
new file mode 100644
index 0000000000..868070471e
--- /dev/null
+++ b/macros/latex/contrib/jmsdelim/jmsdelim.dtx
@@ -0,0 +1,693 @@
+% \iffalse meta-comment
+%
+%% File: jmsdelim.dtx Copyright (C) 2020 Jonathan Sterling
+%%
+%% It may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License (LPPL), either version 1.3c of this
+%% license or (at your option) any later version. The latest version
+%% of this license is in the file
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% -------------------------------------------------------------------------
+%
+%<*driver>
+\documentclass[cs-f]{l3doc}
+\usepackage{jmsdelim}
+\usepackage{mlmodern}
+\usepackage{mleftright}
+\usepackage[capitalize]{cleveref}
+\usepackage[protrusion=true,expansion=true,tracking=false]{microtype}
+\microtypecontext{spacing=nonfrench}
+
+\usepackage{xcolor}
+\usepackage{zi4}
+\definecolor{Matterhorn}{RGB}{77,77,77}
+\definecolor{RedDevil}{RGB}{134,1,17}
+\definecolor{RegalBlue}{RGB}{3,69,117}
+\usepackage[backend=biber,natbib=true, doi=true, citestyle=alphabetic, backref=true, style=alphabetic, maxnames=1000]{biblatex}
+\hypersetup{breaklinks=true,colorlinks=true,linkcolor=RedDevil,urlcolor=RegalBlue, citecolor=RegalBlue!70}
+\addbibresource{refs.bib}
+\setlength\parindent{0pt}
+\setlength\parskip{.5em}
+\renewcommand\bfdefault{b}
+%
+\let\oldmeta\meta
+\renewcommand\meta[1]{\texttt{\oldmeta{#1}}}
+%
+% ripped from ebproof
+\NewDocumentEnvironment{example}{}{%
+ \VerbatimEnvironment
+ \begin{VerbatimOut}{example.tex}%
+}{%
+ \end{VerbatimOut}
+ \begin{center}
+ \begin{minipage}{.4\textwidth}
+ \input{example.tex}
+ \end{minipage}%
+ \begin{minipage}{.6\textwidth}
+ \small\VerbatimInput[gobble=0]{example.tex}
+ \end{minipage}%
+ \end{center}
+}
+\NewDocumentEnvironment{wide-example}{}{%
+ \VerbatimEnvironment
+ \begin{VerbatimOut}{example.tex}%
+}{%
+ \end{VerbatimOut}
+ \input{example.tex}
+%
+ \small\VerbatimInput[gobble=0]{example.tex}
+}
+%
+\begin{document}
+ \DocInput{\jobname.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \title{The \pkg{jmsdelim} package}
+%
+% \author{Jonathan Sterling}
+%
+% \date{September 14, 2019}
+%
+% \maketitle
+%
+% \begin{documentation}
+%
+% \section{Overview}
+%
+% Sizing delimiters using \cs{left} and \cs{right} should be outlawed! The results are nearly always unaesthetic, primarily because the correct size of a mathematical delimiter is a typesetting consideration which does \emph{not} emanate from the physical size of the interior.
+%
+% Correctly sizing delimiters is very difficult, particularly in well-architected documents: a correctly engineered mathematical document will include macros for all operations, and these macros necessarily will include delimiters (such as parentheses). However, the correct size for the delimiter cannot be chosen ahead of time, because it will depend on the arguments; two options are available:
+%
+% \begin{enumerate}
+% \item Provide optional arguments to each notation macro for choosing delimiter sizes. This is nearly intractable to do in practice.
+% \item Ignore delimiter sizes.
+% \end{enumerate}
+%
+% With \pkg{jmsdelim} we offer an alternative: the correct delimiter sizes can be set at the \emph{leaf nodes} of a mathematical expression, and magically bubble upward through the delimiters.
+%
+%
+% \section{Document interface}
+%
+% \begin{function}{\DelimMin}
+% \begin{syntax}
+% \cs{DelimMin}\marg{intexpr_{min}}
+% \end{syntax}
+%
+% This sets the minimum delimiter size to \meta{intexpr_{min}} outside the current location; delimiter sizes are
+% represented as natural numbers, with \verb|0| the smallest size.
+% \end{function}
+%
+% \cs{DelimMin} is the work-horse of \pkg{jmsdelim}; let us consider an example of what one might do prior to adopting \pkg{jmsdelim}. Suppose we have defined a macro \cs{Psh} for the free co-completion, following the notation of the French school, and we wish to parenthesize an instance of it:
+% \begin{example}
+% \NewDocumentCommand\Cat{}{\mathbf{Cat}}
+% \NewDocumentCommand\Psh{m}{\widehat{#1}}
+% \NewDocumentCommand\Hom{mmm}{
+% \operatorname{Hom}_{#1}(#2,#3)
+% }
+% \[ \Hom{\Cat}{1}{\Psh{\mathbb{C}}} \]
+% \end{example}
+%
+% One might have tried to get a better result by using \cs{left} and \cs{right}:
+% \begin{example}
+% \NewDocumentCommand\Cat{}{\mathbf{Cat}}
+% \NewDocumentCommand\Psh{m}{\widehat{#1}}
+% \NewDocumentCommand\HomX{mmm}{
+% \operatorname{Hom}_{#1}\left(#2,#3\right)
+% }
+% \NewDocumentCommand\Hom{mmm}{
+% \operatorname{Hom}_{#1}\mleft(#2,#3\mright)
+% }
+% \[ \Hom{\Cat}{1}{\Psh{\mathbb{C}}} \]
+% \[ \HomX{\Cat}{1}{\Psh{\mathbb{C}}} \]
+% \end{example}
+%
+% The above is appallingly worse: the height of the hat does not in any way determine the correct size for the delimiter! The solution using \pkg{jmsdelim} is quite simple, however: first, we change \cs{Hom} to call \cs{DelimPrn}, and then we use \cs{DelimMin} within the \cs{Psh} notation.
+% \begin{example}
+% \NewDocumentCommand\Cat{}{\mathbf{Cat}}
+% \NewDocumentCommand\Psh{m}{\DelimMin{1}\widehat{#1}}
+% \NewDocumentCommand\Hom{mmm}{
+% \operatorname{Hom}_{#1}\DelimPrn{#2,#3}
+% }
+% \[ \Hom{\Cat}{1}{\Psh{\mathbb{C}}} \]
+% \end{example}
+%
+% \paragraph{Behavior under subscripts}
+% By default, delimiter sizes are capped under subscripts and superscripts because the alternative is unaesthetic. For instance, consider the following somewhat contrived examples:
+% \begin{example}
+% \NewDocumentCommand\Sum{mm}{%
+% \DelimMin{1}{\textstyle\sum}_{#1}{#2}%
+% }
+% \[
+% \int_{\DelimPrn{\Sum{i}{a_i}}}
+% \int_{\DelimPrn{\DelimMin{4}\Sum{i}{a_i}}}
+% \]
+% \end{example}
+%
+% Because the emitted delimiter size under a subscript does \emph{not} determine the actual amount of space used, it is in most cases not correct for this delimiter size to have an effect on its non-subscript context. For this reason, judicious use of the \cs{DelimProtect} command is recommended in the case of subscripts.
+%
+%
+%
+% \subsection{Basic Delimiter commands}
+%
+% Like \pkg{mleftright}~\citep{oberdick:mleftright}, \pkg{jmsdelim} ensures the correct amount of space on the outside of the delimiters using \cs{mathopen} and \cs{mathclose}.
+%
+% \begin{function}{\DelimSurround}
+% \begin{syntax}
+% \cs{DelimSurround}\marg{left}\marg{right}\marg{body}
+% \end{syntax}
+% Surrounds \meta{body} with appropriately sized \meta{left} and \meta{right} delimiters respectively.
+% \begin{example}
+% \NewDocumentCommand\Sum{mm}{%
+% \DelimMin{1}{\textstyle\sum}_{#1}{#2}%
+% }
+% \[\DelimSurround{\vert}{\vert}{\Sum{i}{b_i}}\]
+% \end{example}
+% \end{function}
+%
+% \begin{function}{\DelimBetween}
+% \begin{syntax}
+% \cs{DelimSurround}\marg{sep}\marg{lbody}\marg{rbody}
+% \end{syntax}
+% Places an appropriately sized \meta{sep} between \meta{lbody} and \meta{rbody}.
+% \begin{example}
+% \NewDocumentCommand\Sum{mm}{%
+% \DelimMin{1}{\textstyle\sum}_{#1}{#2}%
+% }
+% \[\DelimBetween{\Vert}{a}{\Sum{i}{b_i}}\]
+% \end{example}
+% \end{function}
+%
+% \begin{function}{\DelimBetweenSurround}
+% \begin{syntax}
+% \cs{DelimSurround}\marg{left}\marg{sep}\marg{right}\marg{lbody}\marg{rbody}
+% \end{syntax}
+% Places an appropriately sized \meta{sep} between \meta{lbody} and \meta{rbody}, surrounding the result by \meta{left} and \meta{right} respectively.
+% \begin{example}
+% \NewDocumentCommand\Sum{mm}{%
+% \DelimMin{1}{\textstyle\sum}_{#1}{#2}%
+% }
+% \[
+% \DelimBetweenSurround{\lbrace}{\vert}{\rbrace}{
+% \Sum{i}{a\cdot b_i}
+% }{a\in A}
+% \]
+% \end{example}
+% \end{function}
+%
+% \begin{function}{\DelimProtect}
+% \begin{syntax}
+% \cs{DelimProtect}\marg{body}
+% \end{syntax}
+% Executes \meta{body} in a sandbox, preventing its state updates from bubbling outward; this is useful in case of subscripts and superscripts.
+% The following command demonstrates incorrect sizing in the presence of a high delimiter size within a subscript:
+% \begin{example}
+% \NewDocumentCommand\Sum{mm}{%
+% \DelimMin{1}{\textstyle\sum}_{#1}{#2}%
+% }
+% \[
+% \DelimPrn{\Sum{\DelimPrn{\DelimMin{4}\Sum{i}{a_i}}}{F}}
+% \]
+% \end{example}
+%
+% Using a combination of \cs{DelimProtect} and \cs{DelimMin}, the formatting can be corrected locally.
+% \begin{example}
+% \NewDocumentCommand\Sum{mm}{%
+% \DelimMin{1}{\textstyle\sum}_{\DelimProtect{#1}}{#2}%
+% }
+% \[
+% \DelimPrn{
+% \DelimMin{2}
+% \Sum{\DelimPrn{\DelimMin{4}\Sum{i}{a_i}}}{F}
+% }
+% \]
+% \end{example}
+% \end{function}
+%
+% \subsection{Derived delimiter commands}
+%
+% \begin{function}{\DelimPrn}
+% \begin{syntax}
+% \cs{DelimPrn}\marg{body}
+% \end{syntax}
+% Surrounds \meta{body} in parentheses.
+% \end{function}
+%
+% \begin{function}{\DelimBrk}
+% \begin{syntax}
+% \cs{DelimBrk}\marg{body}
+% \end{syntax}
+% Surrounds \meta{body} in square brackets.
+% \end{function}
+%
+% \begin{function}{\DelimBrc}
+% \begin{syntax}
+% \cs{DelimBrc}\marg{body}
+% \end{syntax}
+% Surrounds \meta{body} in curly braces.
+% \end{function}
+%
+% \begin{function}{\DelimGl}
+% \begin{syntax}
+% \cs{DelimGl}\marg{body}
+% \end{syntax}
+% Surrounds \meta{body} in angle brackets.
+% \end{function}
+%
+% \begin{function}{\DelimVrt}
+% \begin{syntax}
+% \cs{DelimVrt}\marg{body}
+% \end{syntax}
+% Surrounds \meta{body} in vertical brackets.
+% \end{function}
+%
+% \begin{function}{\DelimBbrk}
+% \begin{syntax}
+% \cs{DelimBbrk}\marg{body}
+% \end{syntax}
+% Surrounds \meta{body} in Scott brackets (requires \cs{llbracket}, \cs{rrbracket} to be defined).
+% \end{function}
+%
+% \begin{function}{\DelimVvrt}
+% \begin{syntax}
+% \cs{DelimVvrt}\marg{body}
+% \end{syntax}
+% Surrounds \meta{body} in double vertical bars.
+% \end{function}
+%
+%
+% \subsection{Configuration and options}\label{sec:options}
+% \begin{function}{\DelimSetup}
+% \begin{syntax}
+% \cs{DelimSetup}\marg{options}
+% \end{syntax}
+% \pkg{jmsdelim} can be customized along a few axes.
+% \end{function}
+%
+% \begin{variable}{size commands}
+% The option \cmd{size commands} is a comma-separated list which contains a list of sizing commands for delimiters, from smallest to largest. By default, the standard \cs{big}, \cs{Big}, \cs{bigg}, \cs{Bigg} sequence is replaced by custom versions that behave differently in script size. This behavior can be overridden as follows:
+% \begin{verbatim}
+% \DelimSetup{
+% size commands = {\relax,\big,\Big,\bigg,\Bigg}
+% }
+% \end{verbatim}
+% \end{variable}
+%
+%
+%
+% \section{Interface for macro authors}
+%
+% The internals of \pkg{jmsdelim} are implemented in \pkg{expl3}.
+%
+% \begin{function}{jmsdelim_scope:nn}
+% \begin{syntax}
+% "jmsdelim_scope:nn" \Arg{pre} \Arg{post}
+% \end{syntax}
+% This is the fundamental control structure for authors of custom delimiting commands; \meta{pre} is a block of code that renders things to temporary boxes, and \Arg{post} is code that \emph{uses} these boxes, placing them relative to some delimiters. The function of \cs{jmsdelim_scope:nn} is to watch for the delimiter size updates induced by \meta{pre}, and set the delimiter size commands correctly before executing \meta{post}. Both \meta{pre} and \meta{post} are to be executed in the same block level.
+% \end{function}
+%
+% \begin{function}{jmsdelim_hbox_set:Nn}
+% \begin{syntax}
+% "jmsdelim_hbox_set:Nn" \Arg{box} \Arg{contents}
+% \end{syntax}
+% This command is meant to be used inside the \meta{pre} block of \cs{jmsdelim_scope:nn}; it typesets \meta{contents} in the box named by \meta{box}, correctly propagating the math style.
+% \end{function}
+%
+% \begin{function}{jmsdelim_size_cmd:}
+% \begin{syntax}
+% "jmsdelim_size_cmd:"
+% \end{syntax}
+% This command is meant to be used inside the \meta{post} block of \cs{jmsdelim_scope:nn} to set the size of a given delimiter; it behaves like \cs{big}, etc.
+% \end{function}
+%
+% \begin{function}{jmsdelim_surround:nnn}
+% \begin{syntax}
+% "jmsdelim_surround:nnn" \Arg{left} \Arg{right} \Arg{body}
+% \end{syntax}
+% This routine surrounds \meta{body} with the delimiters \meta{left} and \meta{right} of the appropriate size respectively.
+% \end{function}
+%
+% \begin{function}{jmsdelim_between:nnn}
+% \begin{syntax}
+% "jmsdelim_between:nnn" \Arg{sep} \Arg{lbody} \Arg{rbody}
+% \end{syntax}
+% This routine separates \meta{lbody} and \meta{rbody} with a separator \meta{sep} of the appropriate size.
+% \end{function}
+%
+% \begin{function}{jmsdelim_between:nnnnn}
+% \begin{syntax}
+% "jmsdelim_between:nnnnn" \Arg{left} \Arg{sep} \Arg{right} \Arg{lbody} \Arg{rbody}
+% \end{syntax}
+% This routine separates \meta{lbody} and \meta{rbody} with a separator \meta{sep} of the appropriate size, and surrounds the result by \meta{left} and \meta{right} respectively of the same size.
+% \end{function}
+%
+% \begin{function}{jmsdelim_protect:n}
+% \begin{syntax}
+% "jmsdelim_protect:n" \Arg{body}
+% \end{syntax}
+% Executes \meta{body} in a sandbox, preventing its state updates from bubbling upward.
+% \end{function}
+% \end{documentation}
+%
+% \begin{implementation}
+%
+% \section{\pkg{jmsdelim} implementation}
+% \label{sec:jmsdelim:implementation}
+%
+%
+% \begin{macrocode}
+%<*package>
+\RequirePackage{expl3}
+\RequirePackage{l3keys2e}
+\RequirePackage{xparse}
+\RequirePackage{ifluatex}
+\RequirePackage{scalerel}
+\ProvidesExplPackage {jmsdelim} {2022/03/11} {0.2.0}
+ {Compositional delimiter sizing}
+%<@@=jmsdelim>
+% \end{macrocode}
+%
+% We first declare the options for the \pkg{jmsdelim} module, together with their default valeus.
+%
+% \begin{macrocode}
+\keys_define:nn { jmsdelim } {
+ size~commands .clist_set:N = \l@@_size_cmds,
+}
+\keys_set:nn { jmsdelim } {
+ size~commands = {relax,jmsdelim_big:n,jmsdelim_Big:n,jmsdelim_bigg:n,jmsdelim_Bigg:n},
+}
+
+\cs_new:Npn \jmsdelim_big:n #1 {
+ {\mathchoice{\big #1} {\big #1}{\big #1}{#1}}
+}
+
+\cs_new:Npn \jmsdelim_Big:n #1 {
+ {\mathchoice{\Big #1} {\Big #1}{\big #1}{#1}}
+}
+
+\cs_new:Npn \jmsdelim_bigg:n #1 {
+ {\mathchoice{\bigg #1} {\bigg #1}{\big #1}{#1}}
+}
+
+\cs_new:Npn \jmsdelim_Bigg:n #1 {
+ {\mathchoice{\Bigg #1} {\Bigg #1}{\big #1}{#1}}
+}
+% \end{macrocode}
+%
+% Then, we set up the internal state that will be used by \pkg{jmsdelim}.
+% \begin{macrocode}
+\int_new:N \g@@_size
+\int_new:N \g@@_size_up
+\int_gset:Nn \g@@_size {0}
+\int_gset:Nn \g@@_size_up {0}
+% \end{macrocode}
+%
+% \subsection{Internals}
+%
+% \begin{macro}{\@@_clist_item:Nn}
+% A version of \cs{clist_item:Nn} that takes the last item when the index is out of bounds.
+% \begin{macrocode}
+\cs_new:Npn \@@_clist_item:Nn #1 #2 {
+ \clist_item:Nn #1 {
+ \int_min:nn { #2 } {\clist_count:N #1}
+ }
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{@@_setup_sizes:}
+% \begin{macrocode}
+\cs_new:Npn \@@_setup_sizes: {
+ \int_gset:Nn \g@@_size {
+ \int_max:nn \g@@_size \g@@_size_up
+ }
+
+ \cs_set_eq:Nc \jmsdelim_size_cmd: {
+ \@@_clist_item:Nn \l@@_size_cmds {
+ \g@@_size + 1
+ }
+ }
+}
+% \end{macrocode}
+% \end{macro}
+
+%
+% \subsubsection{Preservation of math styles}
+% It is fairly complicated and inefficient to preserve math styles across boxes. There is an appropriate way to do so in Lua\LaTeX, which we use conditionally if available; otherwise, we make use of \cs{ThisStyle} and \cs{SavedStyle} from \pkg{scalerel}~\citep{segletes:scalerel}, which are more inefficient. In fact, it becomes impossible to use \pkg{jmsdelim} in PDF\LaTeX{} when the nesting is sufficiently deep, whereas there is no corresponding blowup in Lua\LaTeX. The \cs{ignoremathstyle} and \cs{discernmathstyle} macros from \pkg{scalerel} can be used to turn off the inefficient preservation of math styles locally, such as in the case where no subscripts are used.
+
+% \begin{macro}{@@_luatex_save_mathstyle:N}
+% \begin{macrocode}
+\cs_new:Npn \@@_luatex_save_mathstyle:N #1 {
+ \ifcase \mathstyle
+ \cs_set_eq:NN #1 \displaystyle
+ \or
+ \cs_set_eq:NN #1 \crampeddisplaystyle
+ \or
+ \cs_set_eq:NN #1 \textstyle
+ \or
+ \cs_set_eq:NN #1 \crampedtextstyle
+ \or
+ \cs_set_eq:NN #1 \scriptstyle
+ \or
+ \cs_set_eq:NN #1 \crampedscriptstyle
+ \or
+ \cs_set_eq:NN #1 \scriptscriptstyle
+ \or
+ \cs_set_eq:NN #1 \crampedscriptscriptstyle
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{@@_restore_mathstyle:n}
+% \begin{macrocode}
+\cs_new:Npn \@@_restore_mathstyle: {
+ \SavedStyle
+}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{@@_save_mathstyle:n}
+% \begin{macrocode}
+\cs_new:Npn \@@_save_mathstyle:n #1 {
+ \ifluatex
+ \@@_luatex_save_mathstyle:N \@@_restore_mathstyle:
+ #1
+ \else
+ \ThisStyle{#1}
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Public interface for macro authors}
+%
+% \begin{macro}{jmsdelim_scope:nn}
+% \begin{macrocode}
+\cs_new:Npn \jmsdelim_scope:nn #1 #2 {
+ \group_begin:
+ \int_set:Nn \l_tmpa_int \g@@_size_up
+ \int_gset:Nn \g@@_size_up 0
+ \int_gset:Nn \g@@_size 0
+ \group_begin:
+ \@@_save_mathstyle:n {
+ #1
+ \@@_setup_sizes:
+ #2
+ }
+ \group_end:
+ \int_gset:Nn \g@@_size_up {\int_max:nn \g@@_size_up \l_tmpa_int}
+ \group_end:
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{jmsdelim_hbox_set:Nn}
+% \begin{macrocode}
+\cs_new:Npn \jmsdelim_hbox_set:Nn #1 #2 {
+ \mode_if_math:TF
+ { \hbox_set:Nn #1 {$\m@th\@@_restore_mathstyle: #2$} }
+ { \hbox_set:Nn #1 { #2 } }
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{jmsdelim_surround:nnn}
+% \begin{macrocode}
+\cs_new:Npn \jmsdelim_surround:nnn #1 #2 #3 {
+ \jmsdelim_scope:nn {
+ \jmsdelim_hbox_set:Nn \l_tmpa_box {#3}
+ }{
+ \mathopen\jmsdelim_size_cmd: {#1}
+ \box_use:N \l_tmpa_box
+ \mathclose\jmsdelim_size_cmd: {#2}
+ }
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{jmsdelim_protect:n}
+% \begin{macrocode}
+\cs_new:Npn \jmsdelim_protect:n #1 {
+ \group_begin:
+ \int_set:Nn \l_tmpa_int \g@@_size_up
+ \int_set:Nn \l_tmpb_int \g@@_size
+ \group_begin: #1 \group_end:
+ \int_gset:Nn \g@@_size_up \l_tmpa_int
+ \int_gset:Nn \g@@_size \l_tmpb_int
+ \group_end:
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{jmsdelim_between:nnn}
+% \begin{macrocode}
+\cs_new:Npn \jmsdelim_between:nnn #1 #2 #3 {
+ \jmsdelim_scope:nn {
+ \jmsdelim_hbox_set:Nn \l_tmpa_box {#2}
+ \jmsdelim_hbox_set:Nn \l_tmpb_box {#3}
+ }{
+ \box_use:N \l_tmpa_box
+ \mathrel{\jmsdelim_size_cmd: {#1}}
+ \box_use:N \l_tmpb_box
+ }
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{jmsdelim_between:nnnnn}
+% \begin{macrocode}
+\cs_new:Npn \jmsdelim_between:nnnnn #1 #2 #3 #4 #5 {
+ \jmsdelim_scope:nn {
+ \jmsdelim_hbox_set:Nn \l_tmpa_box {#4}
+ \jmsdelim_hbox_set:Nn \l_tmpb_box {#5}
+ }{
+ \mathopen\jmsdelim_size_cmd: {#1}
+ \box_use:N \l_tmpa_box
+ \mathrel{\jmsdelim_size_cmd: {#2}}
+ \box_use:N \l_tmpb_box
+ \mathclose\jmsdelim_size_cmd: {#3}
+ }
+}
+% \end{macrocode}
+% \end{macro}
+
+% \subsection{Document interace}
+
+
+% \begin{macro}{DelimMin}
+% \begin{macrocode}
+\NewDocumentCommand\DelimMin{m}{
+ \int_gset:Nn \g@@_size_up {\int_max:nn \g@@_size_up {#1}}
+}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{DelimSurround}
+% \begin{macrocode}
+\NewDocumentCommand\DelimSurround{mmm}{
+ \jmsdelim_surround:nnn {#1} {#2} {#3}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{DelimBetween}
+% \begin{macrocode}
+\NewDocumentCommand\DelimBetween{mmm}{
+ \jmsdelim_between:nnn {#1} {#2} {#3}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{DelimBetweenSurround}
+% \begin{macrocode}
+\NewDocumentCommand\DelimBetweenSurround{mmmmm}{
+ \jmsdelim_between:nnnnn {#1} {#2} {#3} {#4} {#5}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{DelimProtect}
+% \begin{macrocode}
+\NewDocumentCommand\DelimProtect{m}{
+ \jmsdelim_protect:n {#1}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{DelimPrn}
+% \begin{macrocode}
+\NewDocumentCommand\DelimPrn{m}{
+ \jmsdelim_surround:nnn {(} {)} {#1}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{DelimBrk}
+% \begin{macrocode}
+\NewDocumentCommand\DelimBrk{m}{
+ \jmsdelim_surround:nnn {[} {]} {#1}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{DelimBrc}
+% \begin{macrocode}
+\NewDocumentCommand\DelimBrc{m}{
+ \jmsdelim_surround:nnn {\lbrace} {\rbrace} {#1}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{DelimBbrk}
+% \begin{macrocode}
+\NewDocumentCommand\DelimBbrk{m}{
+ \jmsdelim_surround:nnn {\llbracket} {\rrbracket} {#1}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{DelimGl}
+% \begin{macrocode}
+\NewDocumentCommand\DelimGl{m}{
+ \jmsdelim_surround:nnn {\langle} {\rangle} {#1}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{DelimVrt}
+% \begin{macrocode}
+\NewDocumentCommand\DelimVrt{m}{
+ \jmsdelim_surround:nnn {\lvert} {\rvert} {#1}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{DelimVvrt}
+% \begin{macrocode}
+\NewDocumentCommand\DelimVvrt{m}{
+ \jmsdelim_surround:nnn {\lVert} {\rVert} {#1}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\ProcessKeysPackageOptions {jmsdelim}
+% \end{macrocode}
+%
+%\iffalse meta-comment
+%</package>
+%\fi
+%
+% \end{implementation}
+%
+% \printbibliography
+% \PrintIndex
+%
+\endinput
+%
+% end of file
diff --git a/macros/latex/contrib/jmsdelim/jmsdelim.ins b/macros/latex/contrib/jmsdelim/jmsdelim.ins
new file mode 100644
index 0000000000..77bc0a4529
--- /dev/null
+++ b/macros/latex/contrib/jmsdelim/jmsdelim.ins
@@ -0,0 +1,15 @@
+%% Copyright (C) 2019 by Jonathan Sterling
+%%
+%% This file may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3 of this license or (at
+%% your option) any later version. The latest version of this license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3 or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+
+\input l3docstrip.tex
+\keepsilent \askforoverwritefalse
+\generate{\file{jmsdelim.sty}{\from{jmsdelim.dtx}{package}}}
+\endbatchfile
diff --git a/macros/latex/contrib/jmsdelim/jmsdelim.pdf b/macros/latex/contrib/jmsdelim/jmsdelim.pdf
new file mode 100644
index 0000000000..0199f3b2bb
--- /dev/null
+++ b/macros/latex/contrib/jmsdelim/jmsdelim.pdf
Binary files differ
diff --git a/macros/latex/contrib/jmsdelim/refs.bib b/macros/latex/contrib/jmsdelim/refs.bib
new file mode 100644
index 0000000000..13c0e80f20
--- /dev/null
+++ b/macros/latex/contrib/jmsdelim/refs.bib
@@ -0,0 +1,13 @@
+@misc{oberdick:mleftright,
+ author = {Oberdick, Heiko},
+ date = {2016-05-16},
+ title = {The {\ttfamily mleftright} package},
+ url = {https://ctan.org/pkg/mleftright}
+}
+
+@misc{segletes:scalerel,
+ title = {{\ttfamily scalerel} -- Constrained scaling and stretching of objects},
+ author = {Segletes, Steven B.},
+ date = {2016-12-29},
+ url = {https://ctan.org/pkg/scalerel}
+}
diff --git a/macros/latex/contrib/matapli/README.md b/macros/latex/contrib/matapli/README.md
index 27f34ab2cd..5b3113fcfc 100644
--- a/macros/latex/contrib/matapli/README.md
+++ b/macros/latex/contrib/matapli/README.md
@@ -2,11 +2,11 @@
matapli --- class for the French journal "MATAPLI" of the SMAI,
website: [http://smai.emath.fr/spip.php?article27](http://smai.emath.fr/spip.php?article27)
-version 1.0.0 dated 2021/01/20
+version 1.2.0 dated 2022/03/11
## License
-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 may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c of this license or (at your option) any later version. The latest version of this license is in http://www.latex-project.org/lppl.txt and version 1.3c or later is part of all distributions of LaTeX version 2005/12/01 or later.
diff --git a/macros/latex/contrib/matapli/doc/examples/modeleauteur/modele.pdf b/macros/latex/contrib/matapli/doc/examples/modeleauteur/modele.pdf
index 2bc1f4f568..0dd1753a2a 100644
--- a/macros/latex/contrib/matapli/doc/examples/modeleauteur/modele.pdf
+++ b/macros/latex/contrib/matapli/doc/examples/modeleauteur/modele.pdf
Binary files differ
diff --git a/macros/latex/contrib/matapli/doc/matapli-doc.fdb_latexmk b/macros/latex/contrib/matapli/doc/matapli-doc.fdb_latexmk
deleted file mode 100644
index 652dea93c5..0000000000
--- a/macros/latex/contrib/matapli/doc/matapli-doc.fdb_latexmk
+++ /dev/null
@@ -1,310 +0,0 @@
-# Fdb version 3
-["biber matapli-doc"] 1616421158 "matapli-doc.bcf" "matapli-doc.bbl" "matapli-doc" 1616421914
- "bibliomatapli.bib" 1616421155 850 aa3eadcb8538dc161b420a7f323e5635 ""
- "matapli-doc.bcf" 1616421913 107062 014a52080e6a1afb62e3f058365a9b26 "lualatex"
- (generated)
- "matapli-doc.bbl"
- "matapli-doc.blg"
-["lualatex"] 1616421908 "matapli-doc.tex" "matapli-doc.pdf" "matapli-doc" 1616421914
- "/home/mc/.local/share/fonts/Monaco.ttf" 1481486888 53361 8dbba50b8796bd02e1061ca5e4c42f90 ""
- "/home/mc/.texlive2020/texmf-var/fonts/map/pdftex/updmap/pdftex.map" 1604325614 5020205 a71f86a00d155ed4fc65d06be19ffb0e ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/kurier-bold.luc" 1611070870 248858 ef6e7d3c3b855c01156b733390f82ea2 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/kurier-bolditalic.luc" 1611070869 245010 d27d9bd1c22ab49923f74df5ead96523 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/kurier-italic.luc" 1611070870 250584 feb57ff216c2e14f96e3f69e9c2044d1 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/kurier-regular.luc" 1611070869 248089 b45c61dfbe216f5d97ca96ea5adf8f76 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinuskeyboard-regular.luc" 1614978297 34232 e81572bdf40faea8a8d49e9ce10a9666 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusmath-regular.luc" 1614978292 525661 18af4dd045886955cdcd5b63b92847a0 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusmono-regular.luc" 1614978291 72604 602999e7b2fa45d59e0f4245dd355cd8 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinussans-bold.luc" 1614978291 293286 d30307d030d27c03ee49668c0ff0ef85 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinussans-italic.luc" 1614978291 286966 51c5239b09fc7fc44698605daadf8f09 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinussans-regular.luc" 1614978290 289079 abb66ebed7202c9875f1d087237dfecb ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserif-bold.luc" 1614978288 298814 41d8b6b7abe853235895c224985d4dec ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserif-bolditalic.luc" 1614978288 241609 bd96db1c2aea6a197e660055eea2d668 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserif-italic.luc" 1614978288 290399 f5fc4f12273808d99cff37955d5f7e1f ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserif-regular.luc" 1614978287 319416 95941d06f8e1aca13da416f5e678be25 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserif-semibold.luc" 1614978289 298139 07e516f139b61eeebf95dc7903b4624c ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserif-semibolditalic.luc" 1614978289 270847 85ff421df016d4174c5df80eb5cd1716 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserifdisplay-regular.luc" 1614978298 283412 8faacaa0aeb4458d69875e80fb5e4050 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserifinitials-regular.luc" 1614978298 11386 eff6bf85eda97173de956fcb0410ebcd ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/lmroman10-bold.luc" 1611053136 124231 42d328c8e3dd664332c1bc8b79507e69 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/lmroman10-regular.luc" 1611051955 123160 10fc8433e3bdd9df9e1ddd9c5e88ccf0 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/monaco.luc" 1611070870 26029 0b5ee0f0848cdc55c3fd1224f0436f84 ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/names/luaotfload-lookup-cache.luc" 1616421055 11963 17763f62383d731809b9e9c1393dd4ef ""
- "/home/mc/.texlive2020/texmf-var/luatex-cache/generic/names/luaotfload-names.luc" 1615841161 1521588 cbb7ae0591047e3119a4be7ab843f18d ""
- "/usr/local/texlive/2020/texmf-dist/fonts/opentype/nowacki/kurier/Kurier-Bold.otf" 1283981149 152340 b2bf65895b22cb94f788b7dcd022fd49 ""
- "/usr/local/texlive/2020/texmf-dist/fonts/opentype/nowacki/kurier/Kurier-BoldItalic.otf" 1283981149 152468 a1f5ca7521c2ffdcbc6abdeeb6180f4e ""
- "/usr/local/texlive/2020/texmf-dist/fonts/opentype/public/libertinus-fonts/LibertinusMath-Regular.otf" 1614349376 522244 f4f19ab2865bd73c223acb18639e792f ""
- "/usr/local/texlive/2020/texmf-dist/fonts/opentype/public/libertinus-fonts/LibertinusSerif-Bold.otf" 1614349376 279844 1cdf519b1955e1f98376aa1b12db72cc ""
- "/usr/local/texlive/2020/texmf-dist/fonts/opentype/public/libertinus-fonts/LibertinusSerif-BoldItalic.otf" 1614349376 238532 0d93ac3d38db48521b59c814bd11a9a4 ""
- "/usr/local/texlive/2020/texmf-dist/fonts/opentype/public/libertinus-fonts/LibertinusSerif-Italic.otf" 1614349376 318424 5d94bf5d3d613797f4e35766ddcc9a4c ""
- "/usr/local/texlive/2020/texmf-dist/fonts/opentype/public/libertinus-fonts/LibertinusSerif-Regular.otf" 1614349376 298384 725257cba9bd90c2dcd248a6eb58dc81 ""
- "/usr/local/texlive/2020/texmf-dist/fonts/tfm/public/cm/cmmi10.tfm" 1136768653 1528 abec98dbc43e172678c11b3b9031252a ""
- "/usr/local/texlive/2020/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm" 1136768653 1524 4414a8315f39513458b80dfc63bff03a ""
- "/usr/local/texlive/2020/texmf-dist/fonts/tfm/public/cm/cmmi6.tfm" 1136768653 1512 f21f83efb36853c0b70002322c1ab3ad ""
- "/usr/local/texlive/2020/texmf-dist/fonts/tfm/public/cm/cmmi7.tfm" 1136768653 1528 e2423ae06dc7dee599cceb79d1c9dc32 ""
- "/usr/local/texlive/2020/texmf-dist/fonts/tfm/public/cm/cmmi8.tfm" 1136768653 1520 eccf95517727cb11801f4f1aee3a21b4 ""
- "/usr/local/texlive/2020/texmf-dist/tex/context/base/mkii/supp-pdf.mkii" 1461363279 71627 94eb9990bed73c364d7f53f960cc8c5b ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/babel-french/french.ldf" 1602274830 67704 4c1daff3b397362294827ad011863ee0 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/babel-french/frenchb.lua" 1602274830 11015 821dd6e3947e678591ac2e54e09b1d37 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/babel/babel.def" 1614787532 117589 2d318e23058f24400b0b9b50ab4a6d32 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/babel/babel.sty" 1614787532 37894 d95431b65ed49cf1c2ca82b0d0682343 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/babel/luababel.def" 1614787532 55088 49430472d81666ea53d8fdef26d6276d ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty" 1576625341 40635 c40361e206be584d448876bba8a64a3b ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/bitset/bitset.sty" 1576016050 33961 6b5c75130e435b2bfdb9f480a09a39f9 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/etexcmds/etexcmds.sty" 1576625273 7734 b98cbb34c81f667027c1e3ebdbfce34b ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty" 1576625223 8371 9d55b8bd010bc717624922fb3477d92e ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/hyph-utf8/loadhyph/loadhyph-fr.tex" 1585259975 1204 7c98871bf49bd5cabf11311db2c995c4 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/hyph-utf8/patterns/quote/hyph-quote-fr.tex" 1463215544 768 932fb2de51061ce3b014d22fad1d7ffe ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/hyph-utf8/patterns/tex/hyph-fr.tex" 1554502952 30353 4479446a11e1366b5a18e408bfbc3c19 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/iftex/ifluatex.sty" 1572645307 492 1994775aa15b0d1289725a0b1bbc2d4c ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/iftex/iftex.sty" 1583617216 6501 4011d89d9621e0b0901138815ba5ff29 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/iftex/ifxetex.sty" 1572645307 488 4565444a3e75e59cb2702dc42e18f482 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/infwarerr/infwarerr.sty" 1575499628 8356 7bbb2c2373aa810be568c29e333da8ed ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/intcalc/intcalc.sty" 1576625065 31769 002a487f55041f8e805cfbf6385ffd97 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty" 1576878844 5412 d5a2436094cd7be85769db90f29250a6 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty" 1576624944 13807 952b0226d4efca026f0e19dd266dcc22 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty" 1600895880 17859 4409f8f50cd365c68e684407e5350b1b ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/oberdiek/pdfcol.sty" 1577834137 9610 e6a49e3e1565f75e68811ac72c53ff0c ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pdfescape/pdfescape.sty" 1576015897 19007 15924f7228aca6c6d184b115f4baa231 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.lua" 1593380077 9447 5e9f52f1871707a5d27dea360afbe4cb ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty" 1593379760 20089 80423eac55aa175305d35b49e04fe23b ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex" 1601326656 992 855ff26741653ab54814101ca36e153c ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex" 1601326656 43820 1fef971b75380574ab35a0d37fd92608 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex" 1601326656 19324 f4e4c6403dd0f1605fd20ed22fa79dea ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex" 1601326656 6038 ccb406740cc3f03bbfb58ad504fe8c27 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex" 1601326656 6944 e12f8f7a7364ddf66f93ba30fb3a3742 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex" 1601326656 4883 42daaf41e27c3735286e23e48d2d7af9 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex" 1601326656 2544 8c06d2a7f0f469616ac9e13db6d2f842 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex" 1601326656 44195 5e390c414de027626ca5e2df888fa68d ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex" 1601326656 17311 2ef6b2e29e2fc6a2fc8d6d652176e257 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex" 1601326656 21302 788a79944eb22192a4929e46963a3067 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex" 1601326656 9690 01feb7cde25d4293ef36eef45123eb80 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex" 1601326656 33335 dd1fa4814d4e51f18be97d88bf0da60c ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex" 1601326656 2965 4c2b1f4e0826925746439038172e5d6f ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex" 1601326656 5196 2cc249e0ee7e03da5f5f6589257b1e5b ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex" 1601326656 20726 d4c8db1e2e53b72721d29916314a22ea ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex" 1601326656 35249 abd4adf948f960299a4b3d27c5dddf46 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex" 1601326656 21989 fdc867d05d228316de137a9fc5ec3bbe ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex" 1601326656 8893 e851de2175338fdf7c17f3e091d94618 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex" 1608933718 11518 738408f795261b70ce8dd47459171309 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex" 1609106292 188275 555994923a0cb0c4aff9710e303272bb ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex" 1601326656 32995 ac577023e12c0e4bd8aa420b2e852d1a ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfint.code.tex" 1557692582 3063 8c415c68a0f3394e45cfeca0b65f6ee6 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex" 1601326656 521 8e224a7af69b7fee4451d1bf76b46654 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex" 1601326656 13391 84d29568c13bdce4133ab4a214711112 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex" 1601326656 104935 184ed87524e76d4957860df4ce0cd1c3 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex" 1601326656 10165 cec5fa73d49da442e56efc2d605ef154 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex" 1601326656 28178 41c17713108e0795aac6fef3d275fbca ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex" 1601326656 9989 c55967bf45126ff9b061fa2ca0c4694f ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex" 1601326656 3865 ac538ab80c5cf82b345016e474786549 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex" 1557692582 3177 27d85c44fbfe09ff3b2cf2879e3ea434 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex" 1601326656 10925 139ac69ce3e9a1892add56d0b818cf97 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex" 1608933718 7854 4176998eeefd8745ac6d2d4bd9c98451 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex" 1601326656 3379 781797a101f647bab82741a99944a229 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex" 1601326656 92405 f515f31275db273f97b9d8f52e1b0736 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex" 1601326656 37376 11cd75aac3da1c1b152b2848f30adc14 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex" 1601326656 8471 c2883569d03f69e8e1cabfef4999cfd7 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex" 1601326656 21201 08d231a2386e2b61d64641c50dc15abd ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex" 1601326656 16121 346f9013d34804439f7436ff6786cef7 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex" 1606168878 43260 c5ced91ac9ecf66ab0674d57bda14c1f ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/pgf.revision.tex" 1609106292 465 311958b39a263956b78fd69c4bc8a85c ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg" 1601326656 926 2963ea0dcf6cc6c0a770b69ec46a477b ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def" 1601326656 5546 f3f24d7898386cb7daac70bdd2c4d6dc ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-luatex.def" 1606168878 13244 6674e4de0678d77c2d7465acc4ea20d7 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex" 1601326656 60544 7aef020a49f066dc86a26e7719af2a98 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex" 1601326656 1896 b8e0ca0ac371d74c0ca05583f6313c91 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex" 1601326656 7778 53c8b5623d80238f6a20aa1df1868e63 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex" 1606168878 23997 a4bed72405fa644418bea7eac2887006 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex" 1606168878 36938 2b5b0039ae51cc081ebb25d84b8a3408 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex" 1601326656 37431 9abe862035de1b29c7a677f3205e3d9f ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex" 1601326656 4494 af17fb7efeafe423710479858e42fa7e ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.tex" 1601326656 7251 fb18c67117e09c64de82267e12cd8aa4 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex" 1601326656 28579 1cdb9cf41947e1e5889d97a41f9bb448 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def" 1606168878 6860 2503857fc7e280acd60acdfa6c8c90c4 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/stringenc/stringenc.sty" 1575152242 21514 b7557edcee22835ef6b03ede1802dad4 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/CaseFolding.txt" 1584044743 82810 5f9103a43f1de6931ccd535dc2d04777 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/PropList.txt" 1584044743 126063 09a6b8a9bf45d76e1051f087476c584a ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/ScriptExtensions.txt" 1584044743 21036 0498414f4b3ea003decdfbdc05d5eee4 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/Scripts.txt" 1584044743 175811 5f82197ad754fd20cee117a97732d384 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/SpecialCasing.txt" 1584044743 16830 681d4e1ebc39c3362fbd6c293070a8ea ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/UnicodeData.txt" 1584044743 1851767 85879f1976cc8eb739ee5585a93938e2 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/WordBreakProperty.txt" 1603745856 103240 40f00b28bda4ea42f0d09ea1cf5a646a ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty" 1576624663 7008 f92eaa0a3872ed622bbf538217cd2ab7 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/xkeyval/xkeyval.tex" 1605910342 19231 3cbf682090baecad8e17a66b7a271ed1 ""
- "/usr/local/texlive/2020/texmf-dist/tex/generic/xkeyval/xkvutils.tex" 1605910342 7677 cf3e6aa6a8d444f55327f61df80bfa0c ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsbsy.sty" 1523134290 2211 ca7ce284ab93c8eecdc6029dc5ccbd73 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsgen.sty" 1523134290 4161 7f6eb9092061a11f87d08ed13515b48d ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsmath.sty" 1601675358 87353 2c21ff5f2e32e1bf714e600924d810db ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsopn.sty" 1523134290 4116 32e6abd27229755a83a8b7f18e583890 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amstext.sty" 1523134290 2432 8ff93b1137020e8f21930562a874ae66 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/auxhook/auxhook.sty" 1576625391 3935 57aa3c3e203a5c2effb4d2bd2efbc323 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/base/atbegshi-ltx.sty" 1609451599 2973 00085839f5881178c538db5970d3c38e ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/base/atveryend-ltx.sty" 1610149055 2596 b3a02e33035865e9f0457e064d436fb8 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/base/fix-cm.sty" 1580683321 14742 0d173bd349a3411c545b594a97fb0700 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/base/fontenc.sty" 1601675358 4947 8cb7717f0cc771eca0fda15160c7fee9 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/base/ifthen.sty" 1580683321 5159 892429808d9e0e2b3548aaefd9a06ed0 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/base/ltluatex.lua" 1601675358 19071 5eca6644e86be740ddc21c18c9b79330 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/base/textcomp.sty" 1581112666 2821 2c0928feafd5527387e29a1af774d030 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/base/ts1enc.def" 1580683321 7764 996679026d0382957cdad45a528f4fa8 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/bbx/numeric.bbx" 1609451401 1818 9ed166ac0a9204a8ebe450ca09db5dde ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/bbx/standard.bbx" 1609451401 25680 409c3f3d570418bc545e8065bebd0688 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/biblatex.cfg" 1342308459 69 249fa6df04d948e51b6d5c67bea30c42 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/biblatex.def" 1609451401 91946 e09bee3cd84fdc4250d6c8ee794f6a70 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/biblatex.sty" 1609451401 506356 ad896deba0d157daf8e7a259dbff05c8 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/blx-case-expl3.sty" 1609451401 8433 72f8188742e7214b7068f345cd0287ac ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/blx-compat.def" 1609451401 13379 ae6b07c49ed3315284c100c6d2572fab ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/blx-dm.def" 1609451401 32359 780383f3a2aaa99ffa09ced7a3363e81 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/blx-unicode.def" 1609451401 3786 1f89d14780f0ad89ab94652b37f4e9b8 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/cbx/numeric.cbx" 1510525977 4578 2d37f6a8c72f47aacef79870545a713d ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/lbx/french.lbx" 1609451401 34452 9eac1852cf5b9814d771334eebfeaee0 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/bookmark/bkm-pdftex.def" 1604871679 8609 8ac7db65d9617618cf703bd16c1bd0b8 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/bookmark/bookmark.sty" 1604871679 18237 5cbdfe9ef383a557f780a0a1f45cdb1c ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/carlisle/scalefnt.sty" 1137109962 1360 df2086bf924b14b72d6121fe9502fcdb ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/enumitem/enumitem.sty" 1561238569 51697 f8f08183cd2080d9d18a41432d651dfb ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/environ/environ.sty" 1399239813 4378 f429f0da968c278653359293040a8f52 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty" 1579991033 13886 d1306dcf79a944f6988e688c1785f9ce ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/eso-pic/eso-pic.sty" 1602711807 11772 8d0db0794e6aeb45348f60bbe3a3e093 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/etoolbox/etoolbox.sty" 1601931149 46845 3b58f70c6e861a13d927bff09d35ecbc ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty" 1611267390 43232 77215847fb982a414a0d843125e271d4 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty" 1582325645 151809 9b29a813bdecad31db825cd830187121 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/fontspec/fontspec.cfg" 1532898934 549 c4adac819276241fea8eb79c5ab7b99e ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/fontspec/fontspec.lua" 1582325645 3021 d32bd2298bedcca160fe737883f3615e ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/fontspec/fontspec.sty" 1582325645 1655 a1ec6f2670a260de25415d37e9c60e97 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/graphics-cfg/color.cfg" 1459978653 1213 620bba36b25224fa9b7e1ccb4ecb76fd ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/graphics-cfg/graphics.cfg" 1465944070 1224 978390e9c2234eab29404bc21b268d1e ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/graphics-def/luatex.def" 1601931164 19052 d9eaaf91d2a0b7bc9d7f373ebd8346f3 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/graphics/graphics.sty" 1601675358 18272 a8c6a275b34ab6717ceeb8fa04b104e2 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/graphics/graphicx.sty" 1601675358 7919 20fdfdd783821971c55bc8ee918cbe63 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/graphics/keyval.sty" 1580683321 2590 e3b24ff953e5b58d924f163d25380312 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/graphics/lscape.sty" 1601675358 1757 1eb057df64f13cee0efe9d12f933a1e9 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/graphics/trig.sty" 1580683321 3976 d7fa7d81d2870d509d25b17d0245e735 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/hycolor/hycolor.sty" 1580250785 17914 4c28a13fc3d975e6e81c9bea1d697276 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/hluatex.def" 1614468400 50811 c3fdee4a073620a647093b5fb5d37547 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/hyperref-langpatches.def" 1614468400 1777 31eee4f3f5c138e44a4e16abfcaefa41 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/hyperref.sty" 1614468400 230839 177eac084bda18ae827a77792a17292e ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/nameref.sty" 1614468400 13242 133e617c5eebffdd05e421624022b267 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/pd1enc.def" 1614468400 14132 3a8b7a8250bdb5871e322188be7c9ff6 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/puenc.def" 1614468400 117004 7c05c6dde5b2b6a14f97dd4137739212 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty" 1525197427 318 019510c713feab56160631df4423d2aa ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrartcl.cls" 1601242066 232890 6dce6e5bd50b0eb46858f4e0a15f6bbf ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrbase.sty" 1601242066 95060 8380c93cbe27347269875ef45d11e14b ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrkbase.sty" 1601242066 21853 9e6272db95e3fde57b1effa42b4ce855 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrlfile-hook.sty" 1601242066 9923 31d3db16e68a7aaf1a332070e86b06e8 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrlfile.sty" 1601242066 2962 f87bece18d386f62887914a9e1742548 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrlogo.sty" 1601242066 1954 c76cd0d2e16cfbd0b8ed1fac0f88e87e ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrsize11pt.clo" 1601242066 6383 4147a8128f986702d8952d5da6421109 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/tocbasic.sty" 1601242066 106047 3c92bee4025534d1b56f29872b3fb03b ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/typearea.sty" 1601242066 55995 23fad029cff0dc77d57f6d5c6722cff1 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/kvoptions/kvoptions.sty" 1602274869 22521 d2fceb764a442a2001d257ef11db7618 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/l3backend/l3backend-luatex.def" 1614677732 27535 f5cb7a8e54b60941b7c7fa8469436788 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/l3kernel/expl3.lua" 1612304173 11443 3672c95ea895d2ba29caa9da5ca5973a ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/l3kernel/expl3.sty" 1613686676 6208 7497703c7e95fb22a69d3ed6f9024046 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty" 1615555296 4614 3d280c6851211796f3b4f2310e7af080 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/xparse/xparse-2020-10-01.sty" 1615555310 6195 8bc989fdf3bb45de5ab646a95bf3352b ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/xparse/xparse-generic.tex" 1615555310 80141 dd4859747b9d959c1acfee24fd462951 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/xparse/xparse.sty" 1615555310 6289 682e18a28ebd34b27d72772c8a4cedcb ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg" 1279039959 678 4792914a8f45be57bb98413425e4c7af ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/latexconfig/lualatexquotejobname.lua" 1308175312 1031 977f79ff10b802fc398926378bec58e9 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty" 1575499565 5766 13a9e8766c47f30327caf893ece86ac8 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/libertinus-otf/libertinus-otf.sty" 1610486378 25454 9223cad53d6f39308274b08f3c5ebf81 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/listings/listings.cfg" 1585170648 1830 e31effa752c61538383451ae21332364 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/listings/listings.sty" 1585170648 80964 64e57373f36316e4a09b517cbf1aba2e ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang1.sty" 1585170648 204271 bae5b2d457283e99567249c1990510be ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang2.sty" 1585170648 93649 5c560d0867c5758cf33716b703b23a26 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang3.sty" 1585170648 90075 280a31c119f13eac0a3dfaff2137635b ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstmisc.sty" 1585170648 77022 ee25ce086f4a79d8cf73bac6f94c02a5 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/logreq/logreq.def" 1284153563 1620 fb1c32b818f2058eca187e5c41dfae77 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/logreq/logreq.sty" 1284153563 6187 b27afc771af565d3a9ff1ca7d16d0d46 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/metalogo/metalogo.sty" 1275236382 7002 8fdf43c505e48e13c2cea042a8a8671c ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/pdflscape/pdflscape.sty" 1575674318 6575 25396d208d8f2b9395d06ef315d5886c ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/pdfpages/pdfpages.sty" 1615069272 54497 58ccf247b8e81d55ca6f10c5082d335f ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/pdfpages/ppluatex.def" 1615069272 5892 c2eabab521447179380378cdb8a3616a ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty" 1601326656 1090 bae35ef70b3168089ef166db3e66f5b2 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty" 1601326656 410 615550c46f918fcbee37641b02a862d9 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty" 1601326656 21013 f4ff83d25bb56552493b030f27c075ae ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty" 1601326656 989 c49c8ae06d96f8b15869da7428047b1e ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty" 1601326656 339 c2e180022e3afdb99c7d0ea5ce469b7d ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/pgf/math/pgfmath.sty" 1601326656 306 c56a323ca5bf9242f54474ced10fca71 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty" 1601326656 443 8c872229db56122037e86bcda49e14f3 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/pgf/utilities/pgffor.sty" 1601326656 348 ee405e64380c11319f0e249fed57e6c5 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty" 1601326656 274 5ae372b7df79135d240456a1c6f2cf9a ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty" 1601326656 325 f9f16d12354225b7dd52a3321f085955 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/refcount/refcount.sty" 1576624809 9878 9e94e8fa600d95f9c7731bb21dfb67a4 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty" 1575674187 9715 b051d5b493d9fe5f4bc251462d039e5f ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex" 1602274907 34121 8ec71356b5c5efc54bb16a3fd3d265e0 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/tcolorbox/tcblistings.code.tex" 1602274907 3412 221e4e73ca8c0497cd6c2a6d563999e5 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/tcolorbox/tcblistingscore.code.tex" 1602274907 13911 286a270d53cccbc2b629d274ec1e1c66 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/tcolorbox/tcbprocessing.code.tex" 1602274907 2564 186e777e0a25c7b3232dbf26454d3d7b ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty" 1602274907 87902 ee89fc2f39c9b113b38f3050b23a3c2e ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/tools/calc.sty" 1580683321 10216 5efd55f2010055e7b7875afd6a75be82 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/tools/multicol.sty" 1580683321 31532 04852e45d7c17cb384689d2f83b628d3 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/tools/shellesc.sty" 1580683321 4120 d1680a5ff60d0aea9c327e07c030f4e9 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/tools/verbatim.sty" 1601675358 7393 0d25b7703252c0e57705583c6e9127ec ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/tools/xspace.sty" 1580683321 4546 3e6071704acf4f66392376b7b66ae02c ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/trimspaces/trimspaces.sty" 1253232110 1380 971a51b00a14503ddf754cab24c3f209 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/unicode-math/unicode-math-luatex.sty" 1580422878 135753 2bb19d77b4dadf52bda2f85c0f8b9e38 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/unicode-math/unicode-math-table.tex" 1550269384 241265 52e61157376139e230f2a9ef4be9503f ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/unicode-math/unicode-math.sty" 1580422878 1474 aba4cc64ac109084e74e3e749fbcd54e ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/url/url.sty" 1388531844 12796 8edb7d69a20b857904dd0ea757c14ec9 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/xargs/xargs.sty" 1206401857 12403 a11204384274e5980f17ec9564088fa4 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/xcolor/xcolor.sty" 1463002160 55589 34128738f682d033422ca125f82e5d62 ""
- "/usr/local/texlive/2020/texmf-dist/tex/latex/xkeyval/xkeyval.sty" 1605910342 4902 efb3d66683a2da2a232f71e3a571a899 ""
- "/usr/local/texlive/2020/texmf-dist/tex/lualatex/lualatex-math/lualatex-math.lua" 1601846097 1313 28342dc97f216f8150c33beea0e9a41c ""
- "/usr/local/texlive/2020/texmf-dist/tex/lualatex/lualatex-math/lualatex-math.sty" 1601846097 7875 b41b8a7eb9f0f95b146e05415cae7c14 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/lualibs/lualibs-basic-merged.lua" 1609451617 131468 fd1313508308a0eb9829063570435aca ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/lualibs/lualibs-basic.lua" 1609451617 2717 538b28c781d9675abf8ea106134f6a32 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/lualibs/lualibs-compat.lua" 1367794330 603 398583cb619d20952d67edcedae41608 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/lualibs/lualibs-extended-merged.lua" 1609451617 110513 18927093f376db6f759633b1df9ca47d ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/lualibs/lualibs-extended.lua" 1609451617 4858 1d0213aca5cd664173ccbc672f7cfe2f ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/lualibs/lualibs.lua" 1609451617 3779 b5f9573f0df8b6653bae489078a3417b ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/fontloader-2021-01-07.lua" 1610835910 863258 ef54bfa34416e2c85fa48d3195c67fd2 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/fontloader-basics-gen.lua" 1599167189 12745 4bc43036e9796fccb0b8869f4b05bf2e ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-auxiliary.lua" 1610835910 32597 8e427ec79ced91d9fc6fbcece159d042 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-case.lua" 1609451516 6809 6c20d5dc2b2b4227f873e7df0fd25316 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-colors.lua" 1610835910 15954 7c201914c79310d9e79e75dfc7ee982b ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-configuration.lua" 1610835910 31151 589ca99522479a0929d6824bafa36f63 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-database.lua" 1610835910 134863 4a0f9f3b500df0d8a8234a0954065e46 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-embolden.lua" 1610835910 1004 5506419bc583d450f252542b1105d6ce ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-fallback.lua" 1610835910 4047 a3c8c048b14a304d3352871014ef1343 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-features.lua" 1610835910 29002 33fdd06674606d043599dc4ea9b2a56b ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-harf-define.lua" 1610835910 13468 1c9a663bb7bfa650b93dcf01d5450675 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-harf-plug.lua" 1610835910 41599 8fdc1ba513a6026546b883259e559c7e ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-init.lua" 1610835910 19547 e3b832a9efc91c977044383640835069 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-letterspace.lua" 1610835910 18645 1a518a55f6663ce13866416a5b94d6a4 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-loaders.lua" 1610835910 8840 d169564522ac7194e7410d8263cd1b31 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-log.lua" 1610835910 11323 809e4afac4e070b619512461a6fedd90 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-main.lua" 1609451516 275 b19c9cc34cf1d676c39f872cfb41aef6 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-multiscript.lua" 1610835910 15068 db7b6c7791b4b909d12234620ff7973d ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-notdef.lua" 1610835910 12224 26fed1a76150718e05c8c56b1983ebdd ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-parsers.lua" 1610835910 30999 dba42cb2f6bbfa13b9a56d0e4a2b2f44 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-resolvers.lua" 1610835910 10984 b387d9435738f7ce8cf1e6af86b565a6 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-scripts.lua" 1610835910 2506 2b924be852e17191e651faf5a2097e12 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-status.lua" 1610835910 6317 de8b416497205d269b31674daef0f48b ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-suppress.lua" 1610835910 2582 b07873bfeb7764f9b5b440cd6b170f63 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-szss.lua" 1610835910 6259 2413a2be98181fe77f7e110369194769 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-tounicode.lua" 1610835910 7528 e07e112222777070250fbc980b2e6b85 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-unicode.lua" 1610835910 7589 1d7fd6ab63640cb6c8e2091ac5a57915 ""
- "/usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload.lua" 1610835910 13788 c3df7754a82557bc3e50d0714ad8a67c ""
- "/usr/local/texlive/2020/texmf-var/tex/generic/config/language.dat" 1614974467 6621 0fac58620b70b79052771f04af663c13 ""
- "/usr/local/texlive/2020/texmf-var/web2c/luahbtex/lualatex.fmt" 1615906650 3325925 70ca792b3e31ddabecd385ff645a3972 ""
- "examples/couverture/couvertureModele.pdf" 1616419774 1173370 6f61c7b3a9b3a6f102b7ac62f216b8c7 ""
- "examples/modeleauteur/modele.pdf" 1616419827 1662982 2e3a8f65879df1b32bbb41e98ad197f7 ""
- "fond-doc.pdf" 1316964411 1309 210d7ac56417b4147880eaa5b23fff9a ""
- "matapli-doc.aux" 1616421913 25865 1464450fb9193c2f44628b3c97549168 "lualatex"
- "matapli-doc.bbl" 1616421159 5673 74ab530e175811934466283b50d2758b "biber matapli-doc"
- "matapli-doc.listing" 1616421913 149 2a7694c8d7071021da19ce673018b4fd "lualatex"
- "matapli-doc.out" 1616421912 0 d41d8cd98f00b204e9800998ecf8427e "lualatex"
- "matapli-doc.run.xml" 1616421913 2391 76b260fb0ced5cd688f1afc4120a523d "lualatex"
- "matapli-doc.tex" 1616421900 23941 23e574dcbf1dc8075e48ba7ca2ae34ef ""
- "matapli-doc.toc" 1616421913 5366 2023f97578692f30053d3601bb8e1c18 "lualatex"
- "matapli-title.pdf" 1608154596 4681 4b5026864dd6bbc082c118a0ca61a6d8 ""
- "mataplidoc.cls" 1611086777 6520 30e3922255be2c3d930a356f7243ed00 ""
- (generated)
- "matapli-doc.bcf"
- "matapli-doc.run.xml"
- "matapli-doc.listing"
- "matapli-doc.toc"
- "matapli-doc.aux"
- "matapli-doc.log"
- "matapli-doc.pdf"
- "matapli-doc.out"
diff --git a/macros/latex/contrib/matapli/doc/matapli-doc.fls b/macros/latex/contrib/matapli/doc/matapli-doc.fls
deleted file mode 100644
index 221037e11f..0000000000
--- a/macros/latex/contrib/matapli/doc/matapli-doc.fls
+++ /dev/null
@@ -1,742 +0,0 @@
-PWD /home/mc/MesDocuments/dauphine/matapli/matapli/doc
-INPUT /usr/local/texlive/2020/texmf-var/web2c/luahbtex/lualatex.fmt
-INPUT ./matapli-doc.tex
-OUTPUT matapli-doc.log
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/latexconfig/lualatexquotejobname.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/ltluatex.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-main.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-init.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/lualibs/lualibs.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/lualibs/lualibs-basic.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/lualibs/lualibs-basic-merged.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/lualibs/lualibs-compat.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/lualibs/lualibs-extended.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/lualibs/lualibs-extended-merged.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-log.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/fontloader-basics-gen.lua
-OUTPUT /home/mc/.texlive2020/texmf-var/m_t_x_t_e_s_t.tmp
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-parsers.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-configuration.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-status.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/fontloader-2021-01-07.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-fallback.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-multiscript.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-scripts.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/ScriptExtensions.txt
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/Scripts.txt
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-loaders.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-database.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-unicode.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/CaseFolding.txt
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/UnicodeData.txt
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/UnicodeData.txt
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/PropList.txt
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/WordBreakProperty.txt
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/SpecialCasing.txt
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-colors.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-resolvers.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-features.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-harf-define.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-harf-plug.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-letterspace.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-embolden.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-notdef.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/UnicodeData.txt
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/PropList.txt
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-suppress.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-szss.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-auxiliary.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-tounicode.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/luatex/luaotfload/luaotfload-case.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3kernel/expl3.lua
-INPUT ./mataplidoc.cls
-INPUT ./mataplidoc.cls
-INPUT ./mataplidoc.cls
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrartcl.cls
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrartcl.cls
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrartcl.cls
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrkbase.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrkbase.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrkbase.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrbase.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrbase.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrbase.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrlfile.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrlfile.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrlfile.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrlfile-hook.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrlfile-hook.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrlfile-hook.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrlogo.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrlogo.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrlogo.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/keyval.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/keyval.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/keyval.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/tocbasic.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/tocbasic.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/tocbasic.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrsize11pt.clo
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/scrsize11pt.clo
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/names/luaotfload-names.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/lmroman10-regular.luc
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/typearea.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/typearea.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/koma-script/typearea.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/fontspec/fontspec.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/fontspec/fontspec.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/fontspec/fontspec.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3kernel/expl3.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3kernel/expl3.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3kernel/expl3.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3backend/l3backend-luatex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3backend/l3backend-luatex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3backend/l3backend-luatex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/xparse/xparse-2020-10-01.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/xparse/xparse-2020-10-01.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/xparse/xparse-2020-10-01.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/xparse/xparse-generic.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/fontspec/fontspec.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/fontenc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/fontenc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/fontenc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/fontspec/fontspec.cfg
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/fontspec/fontspec.cfg
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/lmroman10-bold.luc
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/xcolor/xcolor.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/xcolor/xcolor.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/xcolor/xcolor.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics-cfg/color.cfg
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics-cfg/color.cfg
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics-def/luatex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics-def/luatex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/metalogo/metalogo.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/metalogo/metalogo.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/metalogo/metalogo.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/graphicx.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/graphicx.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/graphicx.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/graphics.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/graphics.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/graphics.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/trig.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/trig.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/trig.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/iftex/ifxetex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/iftex/ifxetex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/iftex/ifxetex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/iftex/iftex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/iftex/iftex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/iftex/iftex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/xspace.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/xspace.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/xspace.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/xargs/xargs.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/xargs/xargs.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/xargs/xargs.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/xkeyval/xkeyval.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/xkeyval/xkeyval.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/xkeyval/xkeyval.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/xkeyval/xkeyval.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/xkeyval/xkvutils.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/babel/babel.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/babel/babel.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/babel/babel.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/babel/babel.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/babel/luababel.def
-INPUT /usr/local/texlive/2020/texmf-var/tex/generic/config/language.dat
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/babel/luababel.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/babel-french/french.ldf
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/babel-french/french.ldf
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/babel-french/frenchb.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/hyph-utf8/loadhyph/loadhyph-fr.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/hyph-utf8/patterns/tex/hyph-fr.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/hyph-utf8/patterns/quote/hyph-quote-fr.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/carlisle/scalefnt.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/carlisle/scalefnt.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/carlisle/scalefnt.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/enumitem/enumitem.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/enumitem/enumitem.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/enumitem/enumitem.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/biblatex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/biblatex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/biblatex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/infwarerr/infwarerr.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/infwarerr/infwarerr.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/infwarerr/infwarerr.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/etoolbox/etoolbox.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/etoolbox/etoolbox.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/etoolbox/etoolbox.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/kvoptions/kvoptions.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/kvoptions/kvoptions.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/kvoptions/kvoptions.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/logreq/logreq.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/logreq/logreq.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/logreq/logreq.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/logreq/logreq.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/logreq/logreq.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/ifthen.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/ifthen.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/ifthen.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/url/url.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/url/url.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/url/url.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/blx-dm.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/blx-dm.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/blx-unicode.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/blx-unicode.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/unicode-data/UnicodeData.txt
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/blx-compat.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/blx-compat.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/biblatex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/biblatex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/bbx/numeric.bbx
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/bbx/numeric.bbx
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/bbx/standard.bbx
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/bbx/standard.bbx
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/cbx/numeric.cbx
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/cbx/numeric.cbx
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/biblatex.cfg
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/biblatex.cfg
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/pgf.revision.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/pgf.revision.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-luatex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-luatex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfint.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/verbatim.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/verbatim.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/verbatim.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/environ/environ.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/environ/environ.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/environ/environ.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/trimspaces/trimspaces.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/trimspaces/trimspaces.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/trimspaces/trimspaces.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/utilities/pgffor.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/utilities/pgffor.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/utilities/pgffor.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/math/pgfmath.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/math/pgfmath.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pgf/math/pgfmath.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/hyperref.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/hyperref.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/hyperref.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pdfescape/pdfescape.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pdfescape/pdfescape.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pdfescape/pdfescape.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hycolor/hycolor.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hycolor/hycolor.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hycolor/hycolor.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/auxhook/auxhook.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/auxhook/auxhook.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/auxhook/auxhook.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/pd1enc.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/pd1enc.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/hyperref-langpatches.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/hyperref-langpatches.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/intcalc/intcalc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/intcalc/intcalc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/intcalc/intcalc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/etexcmds/etexcmds.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/etexcmds/etexcmds.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/etexcmds/etexcmds.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/puenc.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/puenc.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/bitset/bitset.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/bitset/bitset.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/bitset/bitset.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/atbegshi-ltx.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/atbegshi-ltx.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/atbegshi-ltx.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/hluatex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/hluatex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/stringenc/stringenc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/stringenc/stringenc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/stringenc/stringenc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/atveryend-ltx.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/atveryend-ltx.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/atveryend-ltx.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/libertinus-otf/libertinus-otf.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/libertinus-otf/libertinus-otf.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/libertinus-otf/libertinus-otf.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/iftex/ifluatex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/iftex/ifluatex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/iftex/ifluatex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/textcomp.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/textcomp.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/textcomp.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/unicode-math/unicode-math.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/unicode-math/unicode-math.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/unicode-math/unicode-math.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/unicode-math/unicode-math-luatex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/unicode-math/unicode-math-luatex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/unicode-math/unicode-math-luatex.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/fix-cm.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/fix-cm.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/fix-cm.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/ts1enc.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/ts1enc.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsmath.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsmath.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsmath.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amstext.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amstext.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amstext.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsgen.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsgen.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsgen.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsbsy.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsbsy.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsbsy.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsopn.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsopn.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsopn.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/lualatex/lualatex-math/lualatex-math.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/lualatex/lualatex-math/lualatex-math.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/lualatex/lualatex-math/lualatex-math.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/lualatex/lualatex-math/lualatex-math.lua
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/unicode-math/unicode-math-table.tex
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserif-regular.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserif-bold.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserif-italic.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserif-bolditalic.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserif-semibold.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserif-semibolditalic.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinussans-regular.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinussans-bold.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinussans-italic.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusmono-regular.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusmath-regular.luc
-INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/public/cm/cmmi10.tfm
-INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/public/cm/cmmi8.tfm
-INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/public/cm/cmmi6.tfm
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinuskeyboard-regular.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserifdisplay-regular.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/libertinusserifinitials-regular.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/names/luaotfload-lookup-cache.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/kurier-regular.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/kurier-bolditalic.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/kurier-bold.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/kurier-italic.luc
-INPUT /home/mc/.texlive2020/texmf-var/luatex-cache/generic/fonts/otl/monaco.luc
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tcolorbox/tcblistings.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/listings.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/listings.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/listings.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstmisc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstmisc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/listings.cfg
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/listings.cfg
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tcolorbox/tcblistingscore.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tcolorbox/tcbprocessing.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/shellesc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/shellesc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/shellesc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/oberdiek/pdfcol.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/oberdiek/pdfcol.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/oberdiek/pdfcol.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang1.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang1.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang2.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang2.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang3.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang3.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang1.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang1.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang2.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang2.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang3.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang3.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang1.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang1.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang2.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang2.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang3.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang3.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstmisc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstmisc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/multicol.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/multicol.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/multicol.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pdfpages/pdfpages.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pdfpages/pdfpages.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pdfpages/pdfpages.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/calc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/calc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/calc.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/eso-pic/eso-pic.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/eso-pic/eso-pic.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/eso-pic/eso-pic.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pdfpages/ppluatex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pdfpages/ppluatex.def
-INPUT ./matapli-doc.aux
-INPUT ./matapli-doc.aux
-OUTPUT matapli-doc.aux
-INPUT /usr/local/texlive/2020/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
-INPUT /usr/local/texlive/2020/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/lbx/french.lbx
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/lbx/french.lbx
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/blx-case-expl3.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/blx-case-expl3.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/biblatex/blx-case-expl3.sty
-OUTPUT matapli-doc.bcf
-INPUT ./matapli-doc.bbl
-INPUT ./matapli-doc.bbl
-INPUT ./matapli-doc.bbl
-INPUT ./matapli-doc.bbl
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/nameref.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/nameref.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/nameref.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/refcount/refcount.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/refcount/refcount.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/refcount/refcount.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty
-INPUT ./matapli-doc.out
-INPUT ./matapli-doc.out
-INPUT ./matapli-doc.out
-INPUT ./matapli-doc.out
-INPUT ./matapli-doc.out
-OUTPUT matapli-doc.out
-OUTPUT matapli-doc.pdf
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/bookmark/bookmark.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/bookmark/bookmark.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/bookmark/bookmark.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/bookmark/bkm-pdftex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/bookmark/bkm-pdftex.def
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pdflscape/pdflscape.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pdflscape/pdflscape.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pdflscape/pdflscape.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/lscape.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/lscape.sty
-INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/lscape.sty
-INPUT ./fond-doc.pdf
-INPUT ./fond-doc.pdf
-INPUT ./fond-doc.pdf
-INPUT ./matapli-title.pdf
-INPUT ./matapli-title.pdf
-INPUT ./matapli-title.pdf
-INPUT /home/mc/.texlive2020/texmf-var/fonts/map/pdftex/updmap/pdftex.map
-INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm
-INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/public/cm/cmmi10.tfm
-INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/public/cm/cmmi7.tfm
-INPUT ./matapli-doc.toc
-INPUT ./matapli-doc.toc
-OUTPUT matapli-doc.toc
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-OUTPUT matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./matapli-doc.listing
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/modeleauteur/modele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./examples/couverture/couvertureModele.pdf
-INPUT ./matapli-doc.aux
-INPUT ./matapli-doc.out
-INPUT ./matapli-doc.run.xml
-OUTPUT matapli-doc.run.xml
diff --git a/macros/latex/contrib/matapli/doc/matapli-doc.pdf b/macros/latex/contrib/matapli/doc/matapli-doc.pdf
index 1463d0cca5..0493c0cc1d 100644
--- a/macros/latex/contrib/matapli/doc/matapli-doc.pdf
+++ b/macros/latex/contrib/matapli/doc/matapli-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/matapli/doc/matapli-doc.tex b/macros/latex/contrib/matapli/doc/matapli-doc.tex
index 54ce37f851..d3f5ad080d 100644
--- a/macros/latex/contrib/matapli/doc/matapli-doc.tex
+++ b/macros/latex/contrib/matapli/doc/matapli-doc.tex
@@ -3,11 +3,11 @@
%%
%% -----------------------------------------------------------------------------
%% MATAPLI --- SMAI bundle of classes for the French journal "MATAPLI",
-%% version 1.0.0
+%% version 1.2.0
%%
%% author : Maxime Chupin
%% E-mail: chupin@ceremade.dauphine.fr
-%% Released under the LaTeX Project Public License v1.3 or later
+%% Released under the LaTeX Project Public License v1.3c or later
%% See http://www.latex-project.org/lppl.txt
%% -----------------------------------------------------------------------------
@@ -42,7 +42,7 @@
}
\vfill
\begin{center}
- Version 1.1, 22 mars 2021 \\
+ Version 1.2, 11 mars 2022 \\
\url{https://plmlab.math.cnrs.fr/mchupin/matapli}
\end{center}
%% == Page de garde ====================================================
diff --git a/macros/latex/contrib/matapli/tex/matapli.cls b/macros/latex/contrib/matapli/tex/matapli.cls
index f8e6e5b910..998da278ec 100644
--- a/macros/latex/contrib/matapli/tex/matapli.cls
+++ b/macros/latex/contrib/matapli/tex/matapli.cls
@@ -3,7 +3,7 @@
%%
%% -----------------------------------------------------------------------------
%% MATAPLI --- SMAI class for the French SMAI journal "MATAPLI",
-%% version 1.0.0
+%% version 1.2.0
%%
%% E-mail: chupin@ceremade.dauphine.fr
%% Released under the LaTeX Project Public License v1.3c or later
@@ -17,8 +17,8 @@
% on lance la syntax LaTeX3
\ExplSyntaxOn
\ProvidesExplClass{matapli}
-{2021/03/22}
-{1.1}
+{2022/03/11}
+{1.2}
{SMAI class for the French jornal MATAPLI}
% classe de base
@@ -471,6 +471,8 @@ unicode]{hyperref}
% pour générer la liste des auteurs et généré le cas échéant (s'il y a
% une minibio) des encarts avec la description des auteur·e·s.
\NewDocumentCommand\printauthors { o } {
+ % on veut aligner les encart pour les auteurs et autrices en bas de page.
+ ~\vfill
\tl_clear:N \l__matapli_auteurs_name_tl
\seq_clear:N \l__matapli_names_seq
\cs_generate_variant:Nn \regex_split:nnN {nVN}
@@ -544,14 +546,16 @@ unicode]{hyperref}
\tl_if_empty:NTF{\l__matapli_auteur_email_tl}{}{\textbf{Email~:}~\url{\tl_item:Nn \g__matapli_auteurs_email_list_tl {##1}}\par}
\tl_set:Nx \l__matapli_auteur_webpage_tl {\tl_item:Nn \g__matapli_auteurs_webpage_list_tl {##1}}
- \tl_if_empty:NTF{\l__matapli_auteur_webpage_tl}{}{\textbf{Site web~:}~\url{\tl_item:Nn \g__matapli_auteurs_webpage_list_tl {##1}}}
+ \tl_if_empty:NTF{\l__matapli_auteur_webpage_tl}{}{\textbf{Site~web~:}~\url{\tl_item:Nn \g__matapli_auteurs_webpage_list_tl {##1}}}
\end{tabularx}
}
\end{matapli@auteur}
}
+
} % fin boucle auteurs
+ \clearpage % on change de page avant
\iow_now:Nn \g_auxfile_iow {\end{matapliauteurtitre}}
\iow_close:N \g_auxfile_iow
\tl_clear:N \g__matapli_auteurs_first_last_names_list_tl
@@ -597,7 +601,6 @@ unicode]{hyperref}
% environnement interne de formattage de la présentation des auteur·e·s
\newenvironment{matapli@auteur}[1]{%
- ~\vfill
\setlength{\logowidth}{17pt}
\tcbset{%
arc=0pt,outer arc=0pt,colback=gray!10!white,colframe=gray!80!white,
@@ -607,7 +610,7 @@ unicode]{hyperref}
\begin{tcolorbox}[title={\large\bfseries #1}]%
\small
}%
- {\end{tcolorbox}\medskip\clearpage}
+ {\end{tcolorbox}\medskip}
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.pdf b/macros/latex/contrib/nicematrix/nicematrix-french.pdf
index 2c086429fa..bfccc07f4e 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.pdf
Binary files differ
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.tex b/macros/latex/contrib/nicematrix/nicematrix-french.tex
index e4f2286cf9..4e76c71235 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.tex
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.tex
@@ -1244,7 +1244,7 @@ qui sera créée par \pkg{nicematrix} et que l'utilisateur pourra utiliser pour
tracer des filets horizontaux (de manière similaire à |\hline|) ;
\item la clé |letter| prend en argument une lettre\footnote{Les lettres
- suivantes ne sont pas autorisées : \verb+lcrpmbVX:|()[]!@<>+} qui pourra être
+ suivantes ne sont pas autorisées : \verb+lcrpmbVX|()[]!@<>+} qui pourra être
utilisée par l'utilisateur dans le préambule d'un environnement à préambule
(comme |{NiceTabular}|) pour spécifier un filet vertical.
\end{itemize}
@@ -3323,9 +3323,9 @@ l'extension \pkg{xcolor} et elle n'est pas parfaitement compatible avec
L'extension \pkg{nicematrix} propose aussi une commande |\tabularnote| qui
permet de spécifier des notes qui seront composées à la fin du tableau avec une
longueur de ligne égale à la largeur du tableau (hors éventuelles colonnes
-extérieures). Sans surprise, cette commande n'est disponible que dans les
-environnements sans délimiteurs, c'est-à-dire |{NiceTabular}|, |{NiceArray}| et
-|{NiceMatrix}|.
+extérieures spécifiées par |first-col| et |last-col|). Sans surprise, cette
+commande n'est disponible que dans les environnements sans délimiteurs,
+c'est-à-dire |{NiceTabular}|, |{NiceArray}| et |{NiceMatrix}|.
En fait, cette commande n'est disponible que si l'extension \pkg{enumitem} a été
chargée (avant ou après \pkg{nicematrix}). Les notes sont en effet composées en
@@ -3467,6 +3467,7 @@ disponibles dans |\NiceMatrixOptions|. Ces clés ont un nom préfixé par |notes
\item |notes/enumitem-keys|
\item |notes/enumitem-keys-para|
\item |notes/code-before|
+\item |notes/detect-duplicates|
\end{itemize}
Pour la commmodité, il est aussi possible de fixer ces clés dans
|\NiceMatrixOptions| via une clé |notes| qui prend en argument une liste de
@@ -3601,6 +3602,14 @@ Si on souhaite, par exemple, que les notes soient composées en gris et en
\end{Verbatim}
On peut aussi mettre dans cette clé |\raggedright| ou |\RaggedRight| (cette
dernière est une commande de \pkg{ragged2e}).
+
+\item \colorbox{yellow!50}{\textbf{Nouveau 6.8}}\enskip À partir de la version
+6.8, les doublons dans les notes de tableau sont détectés par défaut: lorsque
+plusieurs commandes |\tabularnote| sont utilisées avec le même argument, une
+seule note est insérée en fin de tableau (mais tous les labels sont marqués). Il
+est possible de désactiver cette fonctionnalité avec la clé
+|notes/detect-duplicates| (sa valeur initiale est |true|).
+
\end{itemize}
diff --git a/macros/latex/contrib/nicematrix/nicematrix.dtx b/macros/latex/contrib/nicematrix/nicematrix.dtx
index a1196bba16..74e7b7c98f 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.dtx
+++ b/macros/latex/contrib/nicematrix/nicematrix.dtx
@@ -15,8 +15,8 @@
%
% \fi
% \iffalse
-\def\myfileversion{6.7}
-\def\myfiledate{2022/03/02}
+\def\myfileversion{6.8}
+\def\myfiledate{2022/03/11}
%
%
%<*batchfile>
@@ -1225,10 +1225,6 @@ version 2005/12/01 or later.
% 11 & 12 & 13 & 14 & 15
% \end{NiceArray}\right)$
%
-% \bigskip
-% It's possible to change in \pkg{nicematrix} the letter used to specify a
-% vertical dotted line with the option |letter-for-dotted-lines| available in
-% |\NiceMatrixOptions|.
%
% \bigskip
% \emph{Remark}: In the package \pkg{array} (on which the package
@@ -1254,7 +1250,7 @@ version 2005/12/01 or later.
% user in order to draw horizontal rules (similarly to |\hline|);
%
% \item the key |letter| takes in as argument a letter\footnote{The following
-% letters are forbidden: \verb+lcrpmbVX:|()[]!@<>+} that the user will use in
+% letters are forbidden: \verb+lcrpmbVX|()[]!@<>+} that the user will use in
% the preamble of an environment with preamble (such as |{NiceTabular}| in order
% to specify a vertical rule.
% \end{itemize}
@@ -3279,12 +3275,12 @@ version 2005/12/01 or later.
%
% \subsection{The notes of tabular}
%
-% The package \pkg{nicematrix} also provides a command |\tabularnote| which gives
-% the ability to specify notes that will be composed at the end of the array
-% with a width of line equal to the width of the array (excepted the potential
-% exterior columns). With no surprise, that command is available only in the
-% environments without delimiters, that is to say |{NiceTabular}|, |{NiceArray}|
-% and |{NiceMatrix}|.
+% The package \pkg{nicematrix} also provides a command |\tabularnote| which
+% gives the ability to specify notes that will be composed at the end of the
+% array with a width of line equal to the width of the array (excepted the
+% potential exterior columns specified by |first-col| and |last-col|). With no
+% surprise, that command is available only in the environments without
+% delimiters, that is to say |{NiceTabular}|, |{NiceArray}| and |{NiceMatrix}|.
%
% In fact, this command is available only if the extension \pkg{enumitem} has
% been loaded (before or after \pkg{nicematrix}). Indeed, the notes are composed
@@ -3552,6 +3548,13 @@ version 2005/12/01 or later.
% \end{Verbatim}
% It's also possible to add |\raggedright| or |\RaggedRight| in that key (|\RaggedRight|
% is a command of \pkg{ragged2e}).
+%
+% \item \colorbox{yellow!50}{\textbf{New 6.8}}\enskip Since the version 6.8, the
+% duplicates in the notes of a tabular are detected by default: if several
+% commands |\tabularnote| are used in a tabular with the same argument, only one
+% note is inserted at the end of the tabular (but all the labels are composed,
+% of course). It's possible to de-activate that feature with the key
+% |notes/detect-duplicates| (whose initial value is |true|).
% \end{itemize}
%
%
@@ -5691,6 +5694,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_error:n { \msg_error:nn { nicematrix } }
\cs_new_protected:Npn \@@_error:nn { \msg_error:nnn { nicematrix } }
+\cs_generate_variant:Nn \@@_error:nn { n x }
\cs_new_protected:Npn \@@_error:nnn { \msg_error:nnnn { nicematrix } }
\cs_new_protected:Npn \@@_fatal:n { \msg_fatal:nn { nicematrix } }
\cs_new_protected:Npn \@@_fatal:nn { \msg_fatal:nnn { nicematrix } }
@@ -5707,30 +5711,34 @@ version 2005/12/01 or later.
% \bigskip
% \subsection*{Technical definitions}
%
+% \begin{macrocode}
+\tl_new:N \l_@@_argspec_tl
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_generate_variant:Nn \seq_gset_split:Nnn { N V n }
+\cs_generate_variant:Nn \keys_define:nn { n x }
+% \end{macrocode}
+%
% \medskip
% \begin{macrocode}
-\bool_new:N \c_@@_arydshln_loaded_bool
-\bool_new:N \c_@@_booktabs_loaded_bool
-\bool_new:N \c_@@_enumitem_loaded_bool
-\bool_new:N \c_@@_tabularx_loaded_bool
-\bool_new:N \c_@@_tikz_loaded_bool
-\bool_new:N \c_@@_varwidth_loaded_bool
\hook_gput_code:nnn { begindocument } { . }
{
\@ifpackageloaded { varwidth }
- { \bool_set_true:N \c_@@_varwidth_loaded_bool }
- { }
+ { \bool_const:Nn \c_@@_varwidth_loaded_bool { \c_true_bool } }
+ { \bool_const:Nn \c_@@_varwidth_loaded_bool { \c_false_bool } }
\@ifpackageloaded { arydshln }
- { \bool_set_true:N \c_@@_arydshln_loaded_bool }
- { }
+ { \bool_const:Nn \c_@@_arydshln_loaded_bool { \c_true_bool } }
+ { \bool_const:Nn \c_@@_arydshln_loaded_bool { \c_false_bool } }
\@ifpackageloaded { booktabs }
- { \bool_set_true:N \c_@@_booktabs_loaded_bool }
- { }
+ { \bool_const:Nn \c_@@_booktabs_loaded_bool { \c_true_bool } }
+ { \bool_const:Nn \c_@@_booktabs_loaded_bool { \c_false_bool } }
\@ifpackageloaded { enumitem }
- { \bool_set_true:N \c_@@_enumitem_loaded_bool }
- { }
+ { \bool_const:Nn \c_@@_enumitem_loaded_bool { \c_true_bool } }
+ { \bool_const:Nn \c_@@_enumitem_loaded_bool { \c_false_bool } }
\@ifpackageloaded { tabularx }
- { \bool_set_true:N \c_@@_tabularx_loaded_bool }
+ { \bool_const:Nn \c_@@_tabularx_loaded_bool { \c_true_bool } }
+ { \bool_const:Nn \c_@@_tabularx_loaded_bool { \c_false_bool } }
{ }
\@ifpackageloaded { tikz }
{
@@ -5748,11 +5756,12 @@ version 2005/12/01 or later.
% |\AtBeginDocument| the correct version of some commands. The tokens
% |\exp_not:N| are mandatory.
% \begin{macrocode}
- \bool_set_true:N \c_@@_tikz_loaded_bool
+ \bool_const:Nn \c_@@_tikz_loaded_bool \c_true_bool
\tl_const:Nn \c_@@_pgfortikzpicture_tl { \exp_not:N \tikzpicture }
\tl_const:Nn \c_@@_endpgfortikzpicture_tl { \exp_not:N \endtikzpicture }
}
{
+ \bool_const:Nn \c_@@_tikz_loaded_bool \c_false_bool
\tl_const:Nn \c_@@_pgfortikzpicture_tl { \exp_not:N \pgfpicture }
\tl_const:Nn \c_@@_endpgfortikzpicture_tl { \exp_not:N \endpgfpicture }
}
@@ -5761,22 +5770,25 @@ version 2005/12/01 or later.
%
% We test whether the current class is \cls{revtex4-1} (deprecated) or
% \cls{revtex4-2} because these classes redefines |\array| (of \pkg{array}) in a
-% way incompatible with our programmation. At the date January 2021, the current
+% way incompatible with our programmation. At the date January 2022, the current
% version \cls{revtex4-2} is 4.2e (compatible with \pkg{booktabs}).
%
% \begin{macrocode}
-\bool_new:N \c_@@_revtex_bool
\@ifclassloaded { revtex4-1 }
- { \bool_set_true:N \c_@@_revtex_bool }
- { }
-\@ifclassloaded { revtex4-2 }
- { \bool_set_true:N \c_@@_revtex_bool }
- { }
+ { \bool_const:Nn \c_@@_revtex_bool \c_true_bool }
+ {
+ \@ifclassloaded { revtex4-2 }
+ { \bool_const:Nn \c_@@_revtex_bool \c_true_bool }
+ {
% \end{macrocode}
% Maybe one of the previous classes will be loaded inside another class... We
% try to detect that situation.
% \begin{macrocode}
-\cs_if_exist:NT \rvtx@ifformat@geq { \bool_set_true:N \c_@@_revtex_bool }
+ \cs_if_exist:NT \rvtx@ifformat@geq
+ { \bool_const:Nn \c_@@_revtex_bool \c_true_bool }
+ { \bool_const:Nn \c_@@_revtex_bool \c_false_bool }
+ }
+ }
% \end{macrocode}
%
% \bigskip
@@ -5871,11 +5883,11 @@ version 2005/12/01 or later.
% We have to know whether \pkg{colortbl} is loaded in particular for the
% redefinition of |\everycr|.
% \begin{macrocode}
-\bool_new:N \c_@@_colortbl_loaded_bool
+\bool_new:N \l_@@_colortbl_loaded_bool
\hook_gput_code:nnn { begindocument } { . }
{
\@ifpackageloaded { colortbl }
- { \bool_set_true:N \c_@@_colortbl_loaded_bool }
+ { \bool_set_true:N \l_@@_colortbl_loaded_bool }
{
% \end{macrocode}
% The command |\CT@arc@| is a command of \pkg{colortbl} which sets the color of
@@ -6037,11 +6049,11 @@ version 2005/12/01 or later.
% We want to know whether the package \pkg{siunitx} is loaded and, if it is
% loaded, we redefine the |S| columns of \pkg{siunitx}.
% \begin{macrocode}
-\bool_new:N \c_@@_siunitx_loaded_bool
+\bool_new:N \l_@@_siunitx_loaded_bool
\hook_gput_code:nnn { begindocument } { . }
{
\@ifpackageloaded { siunitx }
- { \bool_set_true:N \c_@@_siunitx_loaded_bool }
+ { \bool_set_true:N \l_@@_siunitx_loaded_bool }
{ }
}
% \end{macrocode}
@@ -6054,7 +6066,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\hook_gput_code:nnn { begindocument } { . }
{
- \bool_if:nTF { ! \c_@@_siunitx_loaded_bool }
+ \bool_if:nTF { ! \l_@@_siunitx_loaded_bool }
{ \cs_set_eq:NN \@@_renew_NC@rewrite@S: \prg_do_nothing: }
{
\cs_new_protected:Npn \@@_renew_NC@rewrite@S:
@@ -6209,6 +6221,13 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
+% The following key corresponds to the key |notes/detect_duplicates|.
+% \begin{macrocode}
+\bool_new:N \l_@@_notes_detect_duplicates_bool
+\bool_set_true:N \l_@@_notes_detect_duplicates_bool
+% \end{macrocode}
+%
+% \bigskip
% If the user uses |{NiceArray}| or |{NiceTabular}| the flag
% |\l_@@_NiceArray_bool| will be raised.
% \begin{macrocode}
@@ -6277,7 +6296,7 @@ version 2005/12/01 or later.
% |vlism| stands for \emph{vertical lines in sub-matrices}.
% \begin{macrocode}
\tl_new:N \l_@@_letter_vlism_tl
-% \end{macrocode}
+% \end{macrocode}
%
% The list of the columns where vertical lines in sub-matrices (vlism) must be
% drawn. Of course, the actual value of this sequence will be known after the
@@ -6305,7 +6324,8 @@ version 2005/12/01 or later.
% \emph{environment} whether we are in a command of \pkg{nicematrix} or in an
% environment of \pkg{nicematrix}. The default value is \emph{environment}.
% \begin{macrocode}
-\tl_set:Nn \g_@@_com_or_env_str { environment }
+\tl_new:N \g_@@_com_or_env_str
+\tl_gset:Nn \g_@@_com_or_env_str { environment }
% \end{macrocode}
%
% \bigskip
@@ -6356,11 +6376,18 @@ version 2005/12/01 or later.
\int_new:N \l_@@_old_iRow_int
\int_new:N \l_@@_old_jCol_int
% \end{macrocode}
-%
% The TeX counters |\c@iRow| and |\c@jCol| will be created in the beginning of
% |{NiceArrayWithDelims}| (if they don't exist previously).
%
% \bigskip
+% The following sequence will contain the names (without backslash) of the
+% commands created by |custom-line| (commands used by the final user in order to
+% draw horizontal rules).
+% \begin{macrocode}
+\seq_new:N \l_@@_custom_line_commands_seq
+% \end{macrocode}
+%
+% \bigskip
% The following token list corresponds to the key |rules/color| available
% in the environments.
% \begin{macrocode}
@@ -6833,13 +6860,18 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
-% The following counter will be used to count the number of successive tabular
-% notes such as in
-% |\tabularnote{Note 1}\tabularnote{Note 2}\tabularnote{Note 3}|.
-% In the tabular, the labels of those nodes are composed as a comma
-% separated list (e.g. \textsuperscript{\textit{a},\textit{b},\textit{c}}).
% \begin{macrocode}
-\int_new:N \l_@@_number_of_notes_int
+\seq_new:N \l_@@_notes_labels_seq
+% \end{macrocode}
+%
+% \bigskip
+% \begin{macrocode}
+\newcounter{nicematrix_draft}
+\cs_new_protected:Npn \@@_notes_format:n #1
+ {
+ \setcounter { nicematrix_draft } { #1 }
+ \@@_notes_style:n { nicematrix_draft }
+ }
% \end{macrocode}
%
% \bigskip
@@ -6933,18 +6965,33 @@ version 2005/12/01 or later.
{ \@@_error:n { tabularnote~forbidden } }
{
% \end{macrocode}
-% |\l_@@_number_of_notes_int| is used to count the number of successive tabular
-% notes such as in
-% |\tabularnote{Note 1}\tabularnote{Note 2}\tabularnote{Note 3}|.
-% We will have to compose the labels of theses notes as a comma separated list
-% (e.g. \textsuperscript{\emph{a},\emph{b},\emph{c}}).
-% \begin{macrocode}
- \int_incr:N \l_@@_number_of_notes_int
-% \end{macrocode}
-% We expand the content of the note at the point of use of
-% |\tabularnote| as does |\footnote|.
+% You have to see whether the argument of |\tabularnote| has yet been used as
+% argument of another |\tabularnote| in the same tabular. In that case, there
+% will be only one note (for both commands |\tabularnote|) at the end of the
+% tabular. We search the argument of our command |\tabularnote| in the
+% |\g_@@_tabularnotes_seq|. The position in the sequence will be stored in
+% |\l_tmpa_int| (0 if the text is not in the sequence yet).
% \begin{macrocode}
- \seq_gput_right:Nn \g_@@_tabularnotes_seq { #1 }
+ \int_zero:N \l_tmpa_int
+ \bool_if:NT \l_@@_notes_detect_duplicates_bool
+ {
+ \seq_map_indexed_inline:Nn \g_@@_tabularnotes_seq
+ {
+ \tl_if_eq:nnT { #1 } { ##2 }
+ { \int_set:Nn \l_tmpa_int { ##1 } \seq_map_break: }
+ }
+ }
+ \int_compare:nNnTF \l_tmpa_int = 0
+ {
+ \stepcounter { tabularnote }
+ \seq_put_right:Nx \l_@@_notes_labels_seq
+ { \@@_notes_format:n { \int_use:c { c @ tabularnote } } }
+ \seq_gput_right:Nn \g_@@_tabularnotes_seq { #1 }
+ }
+ {
+ \seq_put_right:Nx \l_@@_notes_labels_seq
+ { \@@_notes_format:n { \int_use:N \l_tmpa_int } }
+ }
\peek_meaning:NF \tabularnote
{
% \end{macrocode}
@@ -6962,14 +7009,8 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_notes_label_in_tabular:n
{
- \stepcounter { tabularnote }
- \@@_notes_style:n { tabularnote }
- \prg_replicate:nn { \l_@@_number_of_notes_int - 1 }
- {
- ,
- \stepcounter { tabularnote }
- \@@_notes_style:n { tabularnote }
- }
+ \seq_use:Nnnn
+ \l_@@_notes_labels_seq { , } { , } { , }
}
}
% \end{macrocode}
@@ -6979,7 +7020,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\addtocounter { tabularnote } { -1 }
\refstepcounter { tabularnote }
- \int_zero:N \l_@@_number_of_notes_int
+ \seq_clear:N \l_@@_notes_labels_seq
\hbox_overlap_right:n { \box_use:N \l_tmpa_box }
% \end{macrocode}
% If the command |\tabularnote| is used exactly at the end of the cell, the
@@ -7564,6 +7605,8 @@ version 2005/12/01 or later.
}
} ,
enumitem-keys-para .value_required:n = true ,
+ detect-duplicates .bool_set:N = \l_@@_notes_detect_duplicates_bool ,
+ detect-duplicates .default:n = true ,
unknown .code:n = \@@_error:n { Unknown~key~for~notes }
}
% \end{macrocode}
@@ -7684,14 +7727,16 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
-% By default, the specifier used in the preamble of the array (for example in
-% |{pNiceArray}|) to draw a vertical dotted line between two columns is the
-% colon ``|:|''. However, it's possible to change this letter with
-% |letter-for-dotted-lines| and, by the way, the letter ``|:|'' will remain free
-% for other packages (for example \pkg{arydshln}).
+% The key |letter-for-dotted-lines| is now obsolete. You will delete it in a
+% future version.
% \begin{macrocode}
letter-for-dotted-lines .code:n =
{
+ \@@_error:n { letter-for-dotted-lines }
+ \group_begin:
+ \globaldefs = 1
+ \@@_msg_redirect_name:nn { letter-for-dotted-lines } { none }
+ \group_end:
\tl_if_single_token:nTF { #1 }
{ \str_set:Nx \l_@@_letter_for_dotted_lines_str { #1 } }
{ \@@_error:n { One~letter~allowed } }
@@ -7707,9 +7752,10 @@ version 2005/12/01 or later.
% \end{macrocode}
%
%
+% The following string will initially be empty. It will be set by the key
+% 'letter-for-dotted-lines'.
% \begin{macrocode}
\str_new:N \l_@@_letter_for_dotted_lines_str
-\str_set_eq:NN \l_@@_letter_for_dotted_lines_str \c_colon_str
% \end{macrocode}
%
% \bigskip
@@ -8447,7 +8493,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_set_nopar:Npn \ialign
{
- \bool_if:NTF \c_@@_colortbl_loaded_bool
+ \bool_if:NTF \l_@@_colortbl_loaded_bool
{
\CT@everycr
{
@@ -8509,7 +8555,6 @@ version 2005/12/01 or later.
\cs_set_eq:NN \Vdots \@@_Vdots
\cs_set_eq:NN \Ddots \@@_Ddots
\cs_set_eq:NN \Iddots \@@_Iddots
- \cs_set_eq:NN \hdottedline \@@_hdottedline:
\cs_set_eq:NN \Hline \@@_Hline:
\cs_set_eq:NN \Hspace \@@_Hspace:
\cs_set_eq:NN \Hdotsfor \@@_Hdotsfor:
@@ -8522,6 +8567,8 @@ version 2005/12/01 or later.
\cs_set_eq:NN \diagbox \@@_diagbox:nn
\cs_set_eq:NN \NotEmpty \@@_NotEmpty:
\cs_set_eq:NN \RowStyle \@@_RowStyle:n
+ \seq_map_inline:Nn \l_@@_custom_line_commands_seq
+ { \cs_set_eq:cc { ##1 } { nicematrix - ##1 } }
\bool_if:NT \l_@@_colortbl_like_bool \@@_colortbl_like:
\bool_if:NT \l_@@_renew_dots_bool \@@_renew_dots:
% \end{macrocode}
@@ -8629,12 +8676,12 @@ version 2005/12/01 or later.
{
\bool_set_true:N \l_@@_last_row_without_value_bool
\bool_if:NT \g_@@_aux_found_bool
- { \int_set:Nn \l_@@_last_row_int { \seq_item:Nn \c_@@_size_seq 3 } }
+ { \int_set:Nn \l_@@_last_row_int { \seq_item:Nn \g_@@_size_seq 3 } }
}
\int_compare:nNnT \l_@@_last_col_int = { -1 }
{
\bool_if:NT \g_@@_aux_found_bool
- { \int_set:Nn \l_@@_last_col_int { \seq_item:Nn \c_@@_size_seq 6 } }
+ { \int_set:Nn \l_@@_last_col_int { \seq_item:Nn \g_@@_size_seq 6 } }
}
% \end{macrocode}
%
@@ -8777,10 +8824,10 @@ version 2005/12/01 or later.
% (with potentially a last exterior row) and |\g_@@_col_total_int| is the number
% of the last column (with potentially a last exterior column).
% \begin{macrocode}
- \int_set:Nn \c@iRow { \seq_item:Nn \c_@@_size_seq 2 }
- \int_set:Nn \c@jCol { \seq_item:Nn \c_@@_size_seq 5 }
- \int_set_eq:NN \g_@@_row_total_int { \seq_item:Nn \c_@@_size_seq 3 }
- \int_set_eq:NN \g_@@_col_total_int { \seq_item:Nn \c_@@_size_seq 6 }
+ \int_set:Nn \c@iRow { \seq_item:Nn \g_@@_size_seq 2 }
+ \int_set:Nn \c@jCol { \seq_item:Nn \g_@@_size_seq 5 }
+ \int_set_eq:NN \g_@@_row_total_int { \seq_item:Nn \g_@@_size_seq 3 }
+ \int_set_eq:NN \g_@@_col_total_int { \seq_item:Nn \g_@@_size_seq 6 }
% \end{macrocode}
%
%
@@ -9684,7 +9731,8 @@ version 2005/12/01 or later.
{
\str_case_e:nnF { #1 }
{
- \l_@@_letter_for_dotted_lines_str { \@@_patch_preamble_xii:n #1 }
+ \l_@@_letter_for_dotted_lines_str
+ { \@@_patch_preamble_xii:n #1 }
\l_@@_letter_vlism_tl
{
\seq_gput_right:Nx \g_@@_cols_vlism_seq
@@ -9693,15 +9741,6 @@ version 2005/12/01 or later.
{ \exp_not:N ! { \skip_horizontal:N \arrayrulewidth } }
\@@_patch_preamble:n
}
- { : }
- {
- \bool_if:NTF \c_@@_arydshln_loaded_bool
- {
- \tl_gput_right:Nn \g_@@_preamble_tl { : }
- \@@_patch_preamble:n
- }
- { \@@_fatal:n { colon~without~arydshln } }
- }
}
% \end{macrocode}
% Now the case of a letter set by the final user for a customized rule. Such
@@ -9724,6 +9763,7 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
+%
% \bigskip
% Now, we will list all the auxiliary functions for the different types of
% entries in the preamble of the array.
@@ -10340,8 +10380,7 @@ version 2005/12/01 or later.
\keys_set:nV { WithArrows / X-column } \l_tmpa_tl
\int_compare:nNnT \l_@@_weight_int < 0
{
- \exp_args:Nnx \@@_error:nn { negative~weight }
- { \int_use:N \l_@@_weight_int }
+ \@@_error:nx { negative~weight } { \int_use:N \l_@@_weight_int }
\int_set:Nn \l_@@_weight_int { - \l_@@_weight_int }
}
\int_gadd:Nn \g_@@_total_X_weight_int \l_@@_weight_int
@@ -11086,7 +11125,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\seq_gclear_new:N \g_@@_rows_seq
\tl_set_rescan:Nno \l_@@_end_of_row_tl { } \l_@@_end_of_row_tl
- \exp_args:NNV \seq_gset_split:Nnn \g_@@_rows_seq \l_@@_end_of_row_tl { #1 }
+ \seq_gset_split:NVn \g_@@_rows_seq \l_@@_end_of_row_tl { #1 }
% \end{macrocode}
% If the environment uses the option |last-row| without value (i.e. without
% saying the number of the rows), we have now the opportunity to know that
@@ -11105,7 +11144,7 @@ version 2005/12/01 or later.
% exit the first cell of the array.
% \begin{macrocode}
\seq_gpop_left:NN \g_@@_rows_seq \l_tmpa_tl
- \exp_args:NV \@@_line_with_light_syntax_i:n \l_tmpa_tl
+ \@@_line_with_light_syntax_i:V \l_tmpa_tl
\seq_map_function:NN \g_@@_rows_seq \@@_line_with_light_syntax:n
\@@_create_col_nodes:
\endarray
@@ -11126,8 +11165,10 @@ version 2005/12/01 or later.
\l_tmpa_tl
\seq_map_inline:Nn \g_@@_cells_seq { & ##1 }
}
+\cs_generate_variant:Nn \@@_line_with_light_syntax_i:n { V }
% \end{macrocode}
%
+%
% \bigskip
% The following command is used by the code which detects whether the
% environment is empty (we raise a fatal error in this case: it's only a
@@ -11622,6 +11663,7 @@ version 2005/12/01 or later.
{ > \@@_cell_begin:w #2 < \@@_cell_end: }
}
}
+\cs_generate_variant:Nn \@@_begin_of_NiceMatrix:nn { n e }
% \end{macrocode}
%
% \begin{macrocode}
@@ -11632,7 +11674,7 @@ version 2005/12/01 or later.
\str_gset:Nn \g_@@_name_env_str { #1 NiceMatrix }
\tl_set:Nn \l_@@_type_of_col_tl c
\keys_set:nn { NiceMatrix / NiceMatrix } { ##1 }
- \exp_args:Nne \@@_begin_of_NiceMatrix:nn { #1 } \l_@@_type_of_col_tl
+ \@@_begin_of_NiceMatrix:ne { #1 } \l_@@_type_of_col_tl
}
{ \use:c { end #1 NiceArray } }
}
@@ -11688,8 +11730,7 @@ version 2005/12/01 or later.
% definition of that columns in \pkg{tabularx} (this would result in an error in
% |{NiceTabularX}|).
% \begin{macrocode}
- \bool_if:NT \c_@@_tabularx_loaded_bool
- { \newcolumntype { X } { \@@_X } }
+ \bool_if:NT \c_@@_tabularx_loaded_bool { \newcolumntype { X } { \@@_X } }
\str_gset:Nn \g_@@_name_env_str { NiceTabularX }
\dim_zero_new:N \l_@@_width_dim
\dim_set:Nn \l_@@_width_dim { #1 }
@@ -11754,7 +11795,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\tl_gput_right:Nx \g_@@_aux_tl
{
- \seq_gset_from_clist:Nn \exp_not:N \c_@@_size_seq
+ \seq_gset_from_clist:Nn \exp_not:N \g_@@_size_seq
{
\int_use:N \l_@@_first_row_int ,
\int_use:N \c@iRow ,
@@ -13086,7 +13127,7 @@ version 2005/12/01 or later.
\cs_new_protected:Npn \@@_draw_unstandard_dotted_line:
{
\begin { scope }
- \exp_args:No \@@_draw_unstandard_dotted_line:n
+ \@@_draw_unstandard_dotted_line:o
{ \l_@@_xdots_line_style_tl , \l_@@_xdots_color_tl }
}
% \end{macrocode}
@@ -13103,6 +13144,7 @@ version 2005/12/01 or later.
\l_@@_xdots_up_tl
\l_@@_xdots_down_tl
}
+\cs_generate_variant:Nn \@@_draw_unstandard_dotted_line:n { o }
% \end{macrocode}
%
% \begin{macrocode}
@@ -14657,8 +14699,8 @@ version 2005/12/01 or later.
% from a list of pairs \textsl{key=value} of a definition of a customized rule
% (with the key |custom-line| of |\NiceMatrixOptions|).
% \begin{macrocode}
- letter .code:n = \prg_do_nothing: ,
- command .code:n = \prg_do_nothing:
+ % letter .code:n = \prg_do_nothing: ,
+ % command .code:n = \prg_do_nothing:
}
% \end{macrocode}
%
@@ -14809,8 +14851,13 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_vline_ii:
{
- \bool_set_false:N \l_@@_dotted_bool
- \keys_set:nV { NiceMatrix / RulesBis } \l_@@_other_keys_tl
+ \bool_set_false:N \l_@@_dotted_boo
+% \end{macrocode}
+% We use |\keys_set_known:nV| and not |\keys_set:nV| because there may be the
+% keys |letter| and |command| in the list (these keys are present if the rule
+% comes from a customized line (created by |custom-line|).
+% \begin{macrocode}
+ \keys_set_known:nV { NiceMatrix / RulesBis } \l_@@_other_keys_tl
\bool_if:NTF \l_@@_dotted_bool
\@@_vline_iv:
{
@@ -15059,7 +15106,12 @@ version 2005/12/01 or later.
\cs_new_protected:Npn \@@_hline_ii:
{
\bool_set_false:N \l_@@_dotted_bool
- \keys_set:nV { NiceMatrix / RulesBis } \l_@@_other_keys_tl
+% \end{macrocode}
+% We use |\keys_set_known:nV| and not |\keys_set:nV| because there may be the
+% keys |letter| and |command| in the list (these keys are present if the rule
+% comes from a customized line (created by |custom-line|).
+% \begin{macrocode}
+ \keys_set_known:nV { NiceMatrix / RulesBis } \l_@@_other_keys_tl
\bool_if:NTF \l_@@_dotted_bool
\@@_hline_iv:
{
@@ -15323,7 +15375,7 @@ version 2005/12/01 or later.
%
% \medskip
% The following command will create the customized rule (it is executed when the
-% final user uses the key |custom-line| in |\NiceMatrixOptions|).
+% final user uses the key |custom-line|, for example in |\NiceMatrixOptions|).
% \begin{macrocode}
\cs_new_protected:Npn \@@_custom_line:n #1
{
@@ -15380,7 +15432,12 @@ version 2005/12/01 or later.
\c_@@_forbidden_letters_str \l_@@_letter_str
{ \@@_error:n { Forbidden~letter } }
{
- \exp_args:Nnx \keys_define:nn { NiceMatrix / ColumnTypes }
+% \end{macrocode}
+% The final user can, locally, redefine a letter of column type. That's
+% compatible with the use of |\keys_define:nn|: the definition is local and may
+% overwrite a previous definition.
+% \begin{macrocode}
+ \keys_define:nx { NiceMatrix / ColumnTypes }
{
\l_@@_letter_str .code:n =
{ \@@_custom_line_i:n { \exp_not:n { #1 } } }
@@ -15404,16 +15461,14 @@ version 2005/12/01 or later.
+ \doublerulesep * ( \l_@@_tmpc_int - 1 )
}
}
- \exp_args:NnV \@@_define_h_custom_line:nn
- { #1 }
- \l_@@_rule_width_dim
+ \@@_define_h_custom_line:nV { #1 } \l_@@_rule_width_dim
}
}
}
% \end{macrocode}
%
% \begin{macrocode}
-\str_const:Nn \c_@@_forbidden_letters_str { lcrpmbVX:|()[]!@<> }
+\str_const:Nn \c_@@_forbidden_letters_str { lcrpmbVX|()[]!@<> }
% \end{macrocode}
%
% \medskip
@@ -15449,6 +15504,7 @@ version 2005/12/01 or later.
width .code:n = \dim_set:Nn \l_@@_rule_width_dim { #1 }
\bool_set_true:N \l_tmpb_bool ,
width .value_required:n = true ,
+ unknown .code:n = \@@_error:n { Unknown~key~for~custom-line }
}
% \end{macrocode}
%
@@ -15464,7 +15520,7 @@ version 2005/12/01 or later.
% We use |\cs_set:cpn| and not |\cs_new:cpn| because we want a local definition.
% Moreover, the command must \emph{not} be protected since it begins with |\noalign|.
% \begin{macrocode}
- \cs_set:cpn \l_@@_command_str
+ \cs_set:cpn { nicematrix - \l_@@_command_str }
{
\noalign
{
@@ -15473,7 +15529,9 @@ version 2005/12/01 or later.
{ \@@_hline:n { #1 , position = \int_eval:n { \c@iRow + 1 } } }
}
}
+ \seq_put_left:NV \l_@@_custom_line_commands_seq \l_@@_command_str
}
+\cs_generate_variant:Nn \@@_define_h_custom_line:nn { n V }
% \end{macrocode}
%
% The flag |\l_tmpa_bool| means that the key 'tikz' have been used. When the key
@@ -15500,6 +15558,9 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
+% \begin{macrocode}
+\@@_custom_line:n { letter = : , command = hdottedline , dotted }
+% \end{macrocode}
%
% \subsubsection*{The key hvlines}
%
@@ -18728,6 +18789,7 @@ version 2005/12/01 or later.
}
{
The~available~keys~are~(in~alphabetic~order):~
+ allow-letter-for-dotted-lines,~
footnote,~
footnotehyper,~
renew-dots,~and
@@ -18747,6 +18809,14 @@ version 2005/12/01 or later.
transparent .value_forbidden:n = true,
footnote .bool_set:N = \c_@@_footnote_bool ,
footnotehyper .bool_set:N = \c_@@_footnotehyper_bool ,
+ allow-letter-for-dotted-lines .code:n =
+ {
+ \group_begin:
+ \globaldefs = 1
+ \@@_msg_redirect_name:nn { letter-for-dotted-lines } { none }
+ \group_end:
+ } ,
+ allow-letter-for-dotted-lines .value_forbidden:n = true ,
unknown .code:n = \@@_error:n { Unknown~key~for~package }
}
\ProcessKeysOptions { NiceMatrix / Package }
@@ -18823,13 +18893,13 @@ version 2005/12/01 or later.
%
%
% \begin{macrocode}
-\seq_new:N \c_@@_types_of_matrix_seq
-\seq_set_from_clist:Nn \c_@@_types_of_matrix_seq
+\seq_new:N \g_@@_types_of_matrix_seq
+\seq_gset_from_clist:Nn \g_@@_types_of_matrix_seq
{
NiceMatrix ,
pNiceMatrix , bNiceMatrix , vNiceMatrix, BNiceMatrix, VNiceMatrix
}
-\seq_set_map_x:NNn \c_@@_types_of_matrix_seq \c_@@_types_of_matrix_seq
+\seq_gset_map_x:NNn \g_@@_types_of_matrix_seq \g_@@_types_of_matrix_seq
{ \tl_to_str:n { #1 } }
% \end{macrocode}
%
@@ -18842,7 +18912,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_error_too_much_cols:
{
- \seq_if_in:NVTF \c_@@_types_of_matrix_seq \g_@@_name_env_str
+ \seq_if_in:NVTF \g_@@_types_of_matrix_seq \g_@@_name_env_str
{
\int_compare:nNnTF \l_@@_last_col_int = { -2 }
{ \@@_fatal:n { too~much~cols~for~matrix } }
@@ -18994,6 +19064,25 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \begin{macrocode}
+\@@_msg_new:nnn { Unknown~key~for~custom-line }
+ {
+ The~key~'\l_keys_key_str'~is~unknown~in~a~'custom-line'.~
+ If~you~go~on,~it~will~be~ignored. \\
+ For~a~list~of~the~available~keys,~type~H~<return>.
+ }
+ {
+ The~available~keys~are~(in~alphabetic~order):~
+ color,~
+ command,~
+ dotted,~
+ letter,~
+ multiplicity,~
+ sep-color,~
+ tikz,~and~width.
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
\@@_msg_new:nn { Unknown~key~for~xdots }
{
As~for~now,~there~is~only~three~keys~available~here:~'color',~'line-style'~
@@ -19117,11 +19206,23 @@ version 2005/12/01 or later.
Your~use~of~'custom-line'~is~no-op~since~you~don't~have~used~the~
key~'letter'~(for~a~letter~for~vertical~rules)~nor~the~key~'command'~
(to~draw~horizontal~rules).\\
- However,~you~can~go~on.
+ However,~you~can~go~on.
}
% \end{macrocode}
%
% \begin{macrocode}
+\@@_msg_new:nn { letter-for-dotted-lines }
+ {
+ The~key~'letter-for-dotted-lines'~is~now~obsolete~(you~should~
+ use~'custom-line'~instead).~However,~you~can~go~on~for~this~time.~
+ If~you~don't~want~to~see~that~message~again,~you~should~
+ load~'nicematrix'~with~the~key~'allow-letter-for-dotted-lines'.~
+ However,~'letter-for-dotted-lines'~will~be~deleted~in~a~future~
+ version~of~'nicematrix'.
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
\@@_msg_new:nn { Forbidden~letter }
{
You~can't~use~the~letter~'\l_@@_letter_str'~for~a~customized~line.\\
@@ -19495,6 +19596,7 @@ version 2005/12/01 or later.
bottomrule,~
code-after,~
code-before,~
+ detect-duplicates,~
enumitem-keys,~
enumitem-keys-para,~
para,~
@@ -19556,7 +19658,6 @@ version 2005/12/01 or later.
last-col,~
last-row,~
left-margin,~
- letter-for-dotted-lines,~
light-syntax,~
notes~(several~subkeys),~
nullify-dots,~
@@ -20336,6 +20437,13 @@ version 2005/12/01 or later.
%
% Key |tikz| in the key |borders| of a command |\Block|
%
+% \subsection*{Changes between version 6.7 and 6.8}
+%
+% In the notes of a tabular (with the command |\tabularnote|), the duplicates
+% are now detected: when several commands |\tabularnote| are used with the same
+% argument, only one note is created at the end of the tabular (but all the
+% labels are present, of course).
+%
% \PrintIndex
%
% \tableofcontents
diff --git a/macros/latex/contrib/nicematrix/nicematrix.pdf b/macros/latex/contrib/nicematrix/nicematrix.pdf
index 2bac20ae75..3629b4506a 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix.pdf
Binary files differ
diff --git a/macros/latex/contrib/projlib/ProjLib.dtx b/macros/latex/contrib/projlib/ProjLib.dtx
new file mode 100644
index 0000000000..39ba3ccd03
--- /dev/null
+++ b/macros/latex/contrib/projlib/ProjLib.dtx
@@ -0,0 +1,4569 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2021-2022 by Jinwen XU
+% ------------------------------------
+%
+% This file may be distributed and/or modified under the conditions of the LaTeX
+% Project Public License, either version 1.3c of this license or (at your option)
+% any later version. The latest version of this license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% \fi
+%
+%<*driver>
+\ProvidesFile{ProjLib.dtx}
+%</driver>
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\RequirePackage{l3keys2e}
+%
+%<*ProjLib>
+\ProvidesExplPackage
+ {ProjLib}
+ {2022/03/11} {}
+ {Collective interface of the ProjLib toolkit}
+%</ProjLib>
+%
+%<*projlib-author>
+\ProvidesExplPackage
+ {projlib-author}
+ {2022/03/11} {}
+ {Enhanced author information block}
+%</projlib-author>
+%
+%<*projlib-datetime>
+\ProvidesExplPackage
+ {projlib-datetime}
+ {2022/03/11} {}
+ {Convert numeric date-time string to natural language}
+%</projlib-datetime>
+%
+%<*projlib-draft>
+\ProvidesExplPackage
+ {projlib-draft}
+ {2022/03/11} {}
+ {Useful commands during draft stage}
+%</projlib-draft>
+%
+%<*projlib-font>
+\ProvidesExplPackage
+ {projlib-font}
+ {2022/03/11} {}
+ {Font selection and configuration}
+%</projlib-font>
+%
+%<*projlib-language>
+\ProvidesExplPackage
+ {projlib-language}
+ {2022/03/11} {}
+ {Multi-language configuration}
+%</projlib-language>
+%
+%<*projlib-logo>
+\ProvidesExplPackage
+ {projlib-logo}
+ {2022/03/11} {}
+ {The ProjLib logo}
+%</projlib-logo>
+%
+%<*projlib-math>
+\ProvidesExplPackage
+ {projlib-math}
+ {2022/03/11} {}
+ {Efficient math setup}
+%</projlib-math>
+%
+%<*projlib-paper>
+\ProvidesExplPackage
+ {projlib-paper}
+ {2022/03/11} {}
+ {Configuration of the paper style}
+%</projlib-paper>
+%
+%<*projlib-theorem>
+\ProvidesExplPackage
+ {projlib-theorem}
+ {2022/03/11} {}
+ {Configuration of theorem-like environments}
+%</projlib-theorem>
+
+%<*ProjLib>
+\keys_define:nn { ProjLib }
+ {
+ , author .bool_set:N = \l__projlib_main_author_bool
+ , author .initial:n = { false }
+ , author-block .bool_set:N = \l__projlib_main_author_bool
+ , author~block .bool_set:N = \l__projlib_main_author_bool
+ , author block .bool_set:N = \l__projlib_main_author_bool
+ , ams-fashion .bool_set:N = \l__projlib_main_amsfashion_bool
+ , ams-fashion .initial:n = { false }
+ , ams~fashion .bool_set:N = \l__projlib_main_amsfashion_bool
+ , ams fashion .bool_set:N = \l__projlib_main_amsfashion_bool
+ , unknown .code:n = {
+ \PassOptionsToPackage { \CurrentOption } { projlib-language }
+ \PassOptionsToPackage { \CurrentOption } { projlib-author }
+ \PassOptionsToPackage { \CurrentOption } { projlib-datetime }
+ \PassOptionsToPackage { \CurrentOption } { projlib-draft }
+ \PassOptionsToPackage { \CurrentOption } { projlib-font }
+ \PassOptionsToPackage { \CurrentOption } { projlib-logo }
+ \PassOptionsToPackage { \CurrentOption } { projlib-math }
+ \PassOptionsToPackage { \CurrentOption } { projlib-paper }
+ \PassOptionsToPackage { \CurrentOption } { projlib-theorem }
+ }
+ }
+\ProcessKeysOptions { ProjLib }
+
+\bool_if:NT \l__projlib_main_amsfashion_bool
+ {
+ \bool_set_true:N \l__projlib_main_author_bool
+ \PassOptionsToPackage { amsfashion } { projlib-author }
+ }
+
+\RequirePackage { projlib-language }
+
+\bool_if:NT \l__projlib_main_author_bool
+ {
+ \RequirePackage { projlib-author }
+ }
+\RequirePackage { projlib-datetime }
+\RequirePackage { projlib-draft }
+\RequirePackage { projlib-font }
+\RequirePackage { projlib-logo }
+\RequirePackage { projlib-math }
+\RequirePackage { projlib-paper }
+
+\RequirePackage { projlib-theorem }
+%</ProjLib>
+%
+%<*projlib-author>
+\keys_define:nn { projlib-author }
+ {
+ , ams-fashion .bool_set:N = \l__projlib_author_amsfashion_bool
+ , ams-fashion .initial:n = { false }
+ , ams~fashion .bool_set:N = \l__projlib_author_amsfashion_bool
+ , ams fashion .bool_set:N = \l__projlib_author_amsfashion_bool
+ , unknown .code:n = {}
+ }
+\ProcessKeysOptions { projlib-author }
+
+\cs_if_exist:NT \subjclass { \endinput }
+
+\tl_new:N \g__projlib_author_font_author_tl
+\tl_new:N \g__projlib_author_font_address_tl
+\tl_new:N \g__projlib_author_font_curraddr_tl
+\tl_new:N \g__projlib_author_font_email_tl
+
+\tl_gset:Nn \g__projlib_author_font_author_tl { \normalsize \normalfont \scshape }
+\tl_gset:Nn \g__projlib_author_font_address_tl { \small \normalfont \itshape }
+\tl_gset:Nn \g__projlib_author_font_curraddr_tl { \small \normalfont \itshape }
+\tl_gset:Nn \g__projlib_author_font_email_tl { \small \normalfont \ttfamily }
+
+\dim_new:N \g__projlib_author_length_innersep_dim
+\dim_new:N \g__projlib_author_length_sep_dim
+\dim_new:N \g__projlib_author_length_aftersep_dim
+
+\dim_set:Nn \g__projlib_author_length_innersep_dim { 0.3 \baselineskip }
+\dim_set:Nn \g__projlib_author_length_sep_dim { 0.5 \baselineskip }
+\dim_set:Nn \g__projlib_author_length_aftersep_dim { 0.3 \baselineskip }
+
+
+\bool_new:N \g__projlib_author_affil_already_exist_bool
+
+\NewCommandCopy \projlib_author_backup_author:w \author
+\RenewDocumentCommand \author { m }
+ {
+ \hook_gput_code:nnn { cmd/@author/after } { projlib-author }
+ {
+ \phantom {A} \\[-\baselineskip]
+ \skip_vertical:n { \g__projlib_author_length_sep_dim }
+ { \g__projlib_author_font_author_tl #1 }
+ \bool_set_false:N \g__projlib_author_affil_already_exist_bool
+ \\ \phantom {}
+ }
+ }
+
+\ProvideDocumentCommand \address { m }
+ {
+ \hook_gput_code:nnn { cmd/@author/after } { projlib-author }
+ {
+ \phantom {A} \\[-\baselineskip]
+ \bool_if:NF \g__projlib_author_affil_already_exist_bool
+ {
+ \skip_vertical:n { \g__projlib_author_length_innersep_dim }
+ }
+ \bool_set_true:N \g__projlib_author_affil_already_exist_bool
+ { \g__projlib_author_font_address_tl #1 }
+ \\ \phantom {}
+ }
+ }
+
+\ProvideDocumentCommand \curraddr { m }
+ {
+ \hook_gput_code:nnn { cmd/@author/after } { projlib-author }
+ {
+ \phantom {A} \\[-\baselineskip]
+ \bool_if:NF \g__projlib_author_affil_already_exist_bool
+ {
+ \skip_vertical:n { \g__projlib_author_length_innersep_dim }
+ }
+ \bool_set_true:N \g__projlib_author_affil_already_exist_bool
+ { \g__projlib_author_font_curraddr_tl #1 }
+ \\ \phantom {}
+ }
+ }
+
+\ProvideDocumentCommand \email { m }
+ {
+ \hook_gput_code:nnn { cmd/@author/after } { projlib-author }
+ {
+ \phantom {A} \\[-\baselineskip]
+ \bool_if:NF \g__projlib_author_affil_already_exist_bool
+ {
+ \skip_vertical:n { \g__projlib_author_length_innersep_dim }
+ }
+ \bool_set_true:N \g__projlib_author_affil_already_exist_bool
+ { \g__projlib_author_font_email_tl #1 }
+ \\ \phantom {}
+ }
+ }
+
+\RequirePackage { regexpatch }
+
+\xpatchcmd { \@maketitle } { \begin{tabular}[t]{c} } {} {
+ \xpatchcmd { \@maketitle } { \end{tabular} } {} {} {}
+} {}
+
+\tl_set:cn {@author} {}
+
+\hook_gput_code:nnn { cmd/@maketitle/before } { projlib-author }
+ {
+ \hook_gput_code:nnn { cmd/@author/before } { projlib-author }
+ {
+ \skip_vertical:n { - \g__projlib_author_length_sep_dim }
+ }
+ \hook_gput_code:nnn { cmd/@author/after } { projlib-author }
+ {
+ \skip_vertical:n { - \baselineskip }
+ \bool_if:NT \g__projlib_author_affil_already_exist_bool
+ {
+ \skip_vertical:n { \g__projlib_author_length_aftersep_dim }
+ }
+ }
+ }
+
+\bool_if:NT \l__projlib_author_amsfashion_bool
+ {
+ \RequirePackage{ projlib-language }
+
+ \tl_new:N \g_projlib_author_keywordsname_style_tl
+ \tl_gset:Nn \g_projlib_author_keywordsname_style_tl {}
+
+ \projlib_langauge_define_multilingual_text:Nn \keywordsname
+ {
+ EN = \textsc{Key~words~and~phrases} ,
+ FR = \textsc{Mots~et~phrases~clés} ,
+ DE = \textsc{Schlüsselwörter~und~Phrasen} ,
+ IT = \textsc{Parole~e~frasi~chiave} ,
+ PT = \textsc{Palavras~e~frases~chave} ,
+ BR = \textsc{Palavras~e~frases~chave} ,
+ ES = \textsc{Palabras~y~frases~clave} ,
+ CN = 关键词 ,
+ TC = 關鍵詞 ,
+ JP = キーワード ,
+ RU = Ключевые~слова~и~фразы ,
+ }
+
+ \tl_new:N \g__projlib_author_keywords_tl
+ \NewDocumentCommand \keywords { m }
+ {
+ \tl_gset:Nn \g__projlib_author_keywords_tl { #1 }
+ }
+
+ \tl_new:N \g__projlib_author_dedicatory_tl
+ \NewDocumentCommand \dedicatory { m }
+ {
+ \tl_gset:Nn \g__projlib_author_dedicatory_tl { #1 }
+ }
+
+ \hook_gput_code:nnn { begindocument/before } { projlib-author }
+ {
+ \NewCommandCopy \projlib_author_backup_footnotemark: \footnotemark
+ \tl_gset:Nn \footnotemark {}
+
+ \NewCommandCopy \projlib_author_backup_thanks:w \thanks
+ \cs_undefine:N \thanks
+
+ % measure the width of "*"
+ \hbox_set:Nn \l_tmpa_box { * }
+ \dim_const:Nn \c__projlib_author_length_width_of_asterisk_dim { \box_wd:N \l_tmpa_box }
+
+ \cs_new_nopar:Nn \projlib_author_pre_thanks:n
+ {
+ \projlib_author_backup_thanks:w
+ {
+ \skip_horizontal:n { - \c__projlib_author_length_width_of_asterisk_dim }
+ #1
+ }
+ }
+
+ \NewDocumentCommand \thanks { m }
+ {
+ \tl_if_blank:nF { #1 }
+ {
+ \hook_gput_code:nnn { cmd/@title/after } { projlib-author }
+ {
+ \projlib_author_pre_thanks:n { #1 }
+ }
+ }
+ }
+
+ \NewCommandCopy \projlib_author_backup_my_author:w \author
+ \RenewDocumentCommand \author { m }
+ {
+ \projlib_author_backup_my_author:w
+ {
+ \RenewCommandCopy \footnotemark \projlib_author_backup_footnotemark:
+ \RenewCommandCopy \thanks \projlib_author_backup_thanks:w
+ #1
+ \cs_undefine:N \footnotemark
+ }
+ }
+ }
+
+ \NewCommandCopy \projlib_author_backup_abstract: \abstract
+ \NewCommandCopy \projlib_author_backup_endabstract: \endabstract
+ \cs_undefine:N \abstract
+ \cs_undefine:N \endabstract
+
+ \bool_new:N \g__projlib_author_already_maketitle_bool
+ \bool_gset_false:N \g__projlib_author_already_maketitle_bool
+ \bool_new:N \g__projlib_author_abstract_before_maketitle_bool
+ \bool_gset_false:N \g__projlib_author_abstract_before_maketitle_bool
+
+ \msg_redirect_name:nnn { scontents } { unsupported-verbatim } { info }
+ \RequirePackage{ scontents }
+ \newenvsc{abstract}[store-env=projlib-author-abstract,print-env=false]
+
+ \hook_gput_code:nnn { env/abstract/after } { projlib-author }
+ {
+ \bool_if:NTF \g__projlib_author_already_maketitle_bool
+ {
+ \projlib_author_backup_abstract:
+ \getstored{projlib-author-abstract}
+ \projlib_author_backup_endabstract:
+ }
+ {
+ \bool_gset_true:N \g__projlib_author_abstract_before_maketitle_bool
+ }
+ }
+
+ \hook_gput_code:nnn { begindocument/before } { projlib-author }
+ {
+ \makeatletter
+ \xpatchcmd { \@maketitle } { \@date }
+ {
+ \tl_if_blank:eTF { \@date } { \skip_vertical:n { -2 \baselineskip } } { \@date }
+ \tl_if_blank:eF { \g__projlib_author_dedicatory_tl }
+ {
+ \tl_if_blank:eT { \@date } { \skip_vertical:n { 2 \baselineskip } }
+ \par
+ \skip_vertical:n { -\parskip }
+ \skip_vertical:n { \baselineskip }
+ \textit{ \g__projlib_author_dedicatory_tl }
+ \tl_if_blank:eT { \@date }
+ {
+ \skip_vertical:n { -\parskip }
+ \skip_vertical:n { \dim_eval:n { -1.7 \baselineskip } }
+ }
+ }
+ } {} {}
+ \makeatother
+
+ \hook_gput_code:nnn { cmd/maketitle/before } { projlib-author }
+ {
+ \tl_if_blank:eF { \g__projlib_author_keywords_tl }
+ {
+ \projlib_author_pre_thanks:n
+ {
+ \group_begin:
+ \g_projlib_author_keywordsname_style_tl
+ \keywordsname .
+ \group_end:
+ \c_space_tl
+ \g__projlib_author_keywords_tl
+ }
+ }
+ }
+
+ \hook_gput_code:nnn { cmd/maketitle/after } { projlib-author }
+ {
+ \bool_if:NT \g__projlib_author_abstract_before_maketitle_bool
+ {
+ \projlib_author_backup_abstract:
+ \getstored{projlib-author-abstract}
+ \projlib_author_backup_endabstract:
+ }
+ \cs_undefine:N \address
+ \cs_undefine:N \curraddr
+ \cs_undefine:N \email
+ \cs_undefine:N \dedicatory
+ \cs_undefine:N \keywords
+ \bool_gset_true:N \g__projlib_author_already_maketitle_bool
+ }
+ }
+
+ \tl_new:N \l_projlib_author_subjclassname_tl
+ \tl_new:N \l_projlib_author_subjclass_tl
+ \msg_new:nnn { projlib-author }
+ { unknown-msc-edition }
+ { Unknown~edition~(#1)~of~Mathematics~Subject~Classification;~using~'2020' }
+ \NewDocumentCommand \subjclass { O{2020} m }
+ {
+ \tl_set:Nn \l_projlib_author_subjclass_tl { #2 }
+ \tl_if_exist:cTF { subjclassname_#1 }
+ {
+ \tl_set:Nn \l_projlib_author_subjclassname_tl { \tl_use:c { subjclassname_#1 } }
+ }
+ {
+ \msg_warning:nnn { projlib-author } { unknown-msc-edition } { #1 }
+ \tl_set:Nn \l_projlib_author_subjclassname_tl { \tl_use:c { subjclassname_2020 } }
+ }
+ \projlib_author_pre_thanks:n
+ {
+ \textit{ \l_projlib_author_subjclassname_tl . }
+ \enspace
+ \l_projlib_author_subjclass_tl .
+ }
+ }
+ \tl_const:cn { subjclassname_1991 } { \textup{1991}~Mathematics~Subject~Classification }
+ \tl_const:cn { subjclassname_2000 } { \textup{2000}~Mathematics~Subject~Classification }
+ \tl_const:cn { subjclassname_2010 } { \textup{2010}~Mathematics~Subject~Classification }
+ \tl_const:cn { subjclassname_2020 } { \textup{2020}~Mathematics~Subject~Classification }
+ }
+%</projlib-author>
+%
+%<*projlib-datetime>
+\tl_new:N \g__projlib_datetime_input_format_tl
+\tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day }
+
+\keys_define:nn { projlib-datetime }
+ {
+ , plain .bool_set:N = \l__projlib_datetime_plain_bool
+ , plain .initial:n = { false }
+ , year-month-day .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
+ , month-day-year .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { month-day-year } }
+ , day-month-year .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
+ , year-month .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
+ , month-day .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
+ , month-year .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
+ , day-month .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
+ , unknown .code:n = {}
+ }
+\ProcessKeysOptions { projlib-datetime }
+
+\bool_if:NT \l__projlib_datetime_plain_bool
+ {
+ \hook_gput_code:nnn { begindocument/before } { projlib-datetime }
+ {
+ \cs_set:Nn \projlib_datetime_text_superscript:n { #1 }
+ }
+ }
+
+\tl_new:N \l__projlib_datetime_output_format_tl
+\keys_define:nn { projlib-datetime-command }
+ {
+ , year-month-day .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
+ , month-day-year .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { month-day-year } }
+ , day-month-year .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
+ , year-month .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
+ , month-day .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
+ , month-year .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
+ , day-month .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
+ , only-year-month .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-year-month } }
+ , only-month-day .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-month-day } }
+ , only-year .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-year } }
+ , only-month .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-month } }
+ , only-day .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-day } }
+ , unknown .code:n = {}
+ }
+
+\msg_new:nnnn { projlib-datetime }
+ { non-supported-date-format }
+ { The~date~format~"#1"~is~not~supported. }
+ { The~only~formats~available~are~"year-month-day",~ "month-day-year"~and~"day-month-year". }
+
+\cs_new:Nn \projlib_datetime_set_input_format:n
+ {
+ \str_case:nnF { #1 }
+ {
+ { year-month-day } { \tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
+ { month-day-year } { \tl_gset:Nn \g__projlib_datetime_input_format_tl { month-day-year } }
+ { day-month-year } { \tl_gset:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
+ }
+ {
+ \msg_error:nnn { projlib-datetime } { non-supported-date-format } { #1 }
+ }
+ }
+
+\NewDocumentCommand \ProjLibSetDatetimeInputFormat { m }
+ {
+ \projlib_datetime_set_input_format:n { #1 }
+ }
+
+
+\seq_new:N \l__projlib_datetime_date_seq
+
+\cs_new_protected:Nn \projlib_datetime_text_superscript:n
+ {
+ \group_begin:
+ \small
+ \textsuperscript { #1 }
+ \group_end:
+ }
+
+
+\cs_new:Nn \__projlib_datetime_today:n
+ {
+ \str_case_e:nnF { \l__projlib_datetime_output_format_tl }
+ {
+ { only-year-month }
+ {
+ \cs_if_exist_use:c { projlib_datetime_display_year_month #1 _ \languagename :nn }
+ { \int_use:N \c_sys_year_int }
+ { \int_use:N \c_sys_month_int }
+ }
+ { only-month-day }
+ {
+ \cs_if_exist_use:c { projlib_datetime_display_month_day #1 _ \languagename :nn }
+ { \int_use:N \c_sys_month_int }
+ { \int_use:N \c_sys_day_int }
+ }
+ { only-year }
+ {
+ \cs_if_exist_use:cT { projlib_datetime_display_year #1 _ \languagename :n }
+ {
+ { \int_use:N \c_sys_year_int }
+ }
+ }
+ { only-month }
+ {
+ \cs_if_exist_use:cT { projlib_datetime_display_month #1 _ \languagename :n }
+ {
+ { \int_use:N \c_sys_month_int }
+ }
+ }
+ { only-day }
+ {
+ \cs_if_exist_use:cT { projlib_datetime_display_day #1 _ \languagename :n }
+ {
+ { \int_use:N \c_sys_day_int }
+ }
+ }
+ }
+ {
+ \cs_if_exist_use:c { projlib_datetime_display_year_month_day #1 _ \languagename :nnn }
+ { \int_use:N \c_sys_year_int }
+ { \int_use:N \c_sys_month_int }
+ { \int_use:N \c_sys_day_int }
+ }
+ }
+
+\NewDocumentCommand \ProjLibtoday { O{} }
+ {
+ \group_begin:
+ \keys_set:nn { projlib-datetime-command } { #1 }
+ \__projlib_datetime_today:n {}
+ \group_end:
+ }
+
+\NewDocumentCommand \ProjLibToday { O{} }
+ {
+ \group_begin:
+ \keys_set:nn { projlib-datetime-command } { #1 }
+ \__projlib_datetime_today:n { _uppercase }
+ \group_end:
+ }
+
+
+\cs_new_protected:Nn \projlib_datetime_display_year_month_day:n
+ {
+ \__projlib_datetime_display_year_month_day:en { #1 } {}
+ }
+
+\cs_new_protected:Nn \projlib_datetime_display_year_month_day_uppercase:n
+ {
+ \__projlib_datetime_display_year_month_day:en { #1 } { _uppercase }
+ }
+
+\cs_new_protected:Nn \__projlib_datetime_display_year_month_day:nn
+ {
+ \regex_match:nnTF { \A \d{4}-\d{1,2}-\d{1,2} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_year_month_day #2 _ \languagename :nnn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % year
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % month
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } } % day
+ }
+ {
+ \regex_match:nnTF { \A \d{4}-\d{1,2} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_year_month #2 _ \languagename :nn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % year
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % month
+ }
+ {
+ \regex_match:nnTF { \A \d{1,2}-\d{1,2} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_month_day #2 _ \languagename :nn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % day
+ }
+ {
+ #1
+ }
+ }
+ }
+ }
+\cs_generate_variant:Nn \__projlib_datetime_display_year_month_day:nn { en }
+
+
+\cs_new_protected:Nn \projlib_datetime_display_month_day_year:n
+{
+ \__projlib_datetime_display_month_day_year:en { #1 } {}
+}
+
+\cs_new_protected:Nn \projlib_datetime_display_month_day_year_uppercase:n
+{
+ \__projlib_datetime_display_month_day_year:en { #1 } { _uppercase }
+}
+
+\cs_new_protected:Nn \__projlib_datetime_display_month_day_year:nn
+{
+ \regex_match:nnTF { \A \d{1,2}-\d{1,2}-\d{4} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_month_day_year #2 _ \languagename :nnn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } } % year
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % day
+ }
+ {
+ \regex_match:nnTF { \A \d{1,2}-\d{4} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_year_month #2 _ \languagename :nn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % year
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month
+ }
+ {
+ \regex_match:nnTF { \A \d{1,2}-\d{1,2} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_month_day #2 _ \languagename :nn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % day
+ }
+ {
+ #1
+ }
+ }
+ }
+}
+\cs_generate_variant:Nn \__projlib_datetime_display_month_day_year:nn { en }
+
+
+\cs_new_protected:Nn \projlib_datetime_display_day_month_year:n
+{
+ \__projlib_datetime_display_day_month_year:en { #1 } {}
+}
+
+\cs_new_protected:Nn \projlib_datetime_display_day_month_year_uppercase:n
+{
+ \__projlib_datetime_display_day_month_year:en { #1 } { _uppercase }
+}
+
+\cs_new_protected:Nn \__projlib_datetime_display_day_month_year:nn
+{
+ \regex_match:nnTF { \A \d{1,2}-\d{1,2}-\d{4} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_day_month_year #2 _ \languagename :nnn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } } % year
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % month
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % day
+ }
+ {
+ \regex_match:nnTF { \A \d{1,2}-\d{4} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_year_month #2 _ \languagename :nn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % year
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month
+ }
+ {
+ \regex_match:nnTF { \A \d{1,2}-\d{1,2} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_month_day #2 _ \languagename :nn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % month
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % day
+ }
+ {
+ #1
+ }
+ }
+ }
+}
+\cs_generate_variant:Nn \__projlib_datetime_display_day_month_year:nn { en }
+
+
+\cs_new_protected:Nn \__projlib_datetime_date_parse_year_month_day:n
+ {
+ \regex_match:nnTF { \A \d{4}-\d{1,2}(|-\d{1,2}) \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ }
+ {
+ \regex_match:nnT { \A \d{1,2}-\d{1,2} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \seq_put_left:Nn \l__projlib_datetime_date_seq {}
+ }
+ }
+ }
+
+\cs_new_protected:Nn \__projlib_datetime_date_parse_month_day_year:n
+ {
+ \regex_match:nnTF { \A \d{1,2}(|-\d{1,2})-\d{4} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \seq_pop_right:NN \l__projlib_datetime_date_seq \l_tmpa_tl
+ \seq_put_left:NV \l__projlib_datetime_date_seq \l_tmpa_tl
+ }
+ {
+ \regex_match:nnT { \A \d{1,2}-\d{1,2} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \seq_put_left:Nn \l__projlib_datetime_date_seq {}
+ }
+ }
+ }
+
+\cs_new_protected:Nn \__projlib_datetime_date_parse_day_month_year:n
+ {
+ \regex_match:nnTF { \A \d{1,2}(|-\d{1,2})-\d{4} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \seq_reverse:N \l__projlib_datetime_date_seq
+ }
+ {
+ \regex_match:nnT { \A \d{1,2}-\d{1,2} \Z } { #1 }
+ {
+ \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
+ \seq_reverse:N \l__projlib_datetime_date_seq
+ \seq_put_left:Nn \l__projlib_datetime_date_seq {}
+ }
+ }
+ }
+
+\cs_new:Nn \__projlib_datetime_input_format_to_str:
+ {
+ \str_case_e:nn { \g__projlib_datetime_input_format_tl }
+ {
+ { year-month-day } { year_month_day }
+ { month-day-year } { month_day_year }
+ { day-month-year } { day_month_year }
+ }
+ }
+
+\cs_new_protected:Nn \__projlib_datetime_display_date_according_to_format:nn
+ {
+ \cs_if_exist_use:c { __projlib_datetime_date_parse_ \__projlib_datetime_input_format_to_str: :n } { #1 }
+ \str_case_e:nnF { \l__projlib_datetime_output_format_tl }
+ {
+ { only-year-month }
+ {
+ \cs_if_exist_use:c { projlib_datetime_display_year_month #2 _ \languagename :nn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } }
+ }
+ { only-month-day }
+ {
+ \cs_if_exist_use:c { projlib_datetime_display_month_day #2 _ \languagename :nn }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } }
+ }
+ { only-year }
+ {
+ \cs_if_exist_use:c { projlib_datetime_display_year #2 _ \languagename :n }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } }
+ }
+ { only-month }
+ {
+ \cs_if_exist_use:c { projlib_datetime_display_month #2 _ \languagename :n }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } }
+ }
+ { only-day }
+ {
+ \cs_if_exist_use:c { projlib_datetime_display_day #2 _ \languagename :n }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } }
+ }
+ }
+ {
+ \cs_if_exist_use:c { projlib_datetime_display_ \__projlib_datetime_input_format_to_str: #2 :n } { #1 }
+ }
+ }
+
+\NewDocumentCommand \ProjLibdate { O{} m O{} }
+ {
+ \group_begin:
+ \tl_if_blank:eF { #1 } { \keys_set:nn { projlib-datetime-command } { #1 } }
+ \tl_if_blank:eF { #3 } { \keys_set:nn { projlib-datetime-command } { #3 } }
+ \tl_set:Nx \l_tmpa_tl { #2 }
+ \regex_replace_all:nnN { \D } { - } \l_tmpa_tl
+ \exp_args:Ne \__projlib_datetime_display_date_according_to_format:nn { \l_tmpa_tl } {}
+ \group_end:
+ }
+
+ \NewDocumentCommand \ProjLibDate { O{} m O{} }
+ {
+ \group_begin:
+ \tl_if_blank:eF { #1 } { \keys_set:nn { projlib-datetime-command } { #1 } }
+ \tl_if_blank:eF { #3 } { \keys_set:nn { projlib-datetime-command } { #3 } }
+ \tl_set:Nx \l_tmpa_tl { #2 }
+ \regex_replace_all:nnN { \D } { - } \l_tmpa_tl
+ \exp_args:Ne \__projlib_datetime_display_date_according_to_format:nn { \l_tmpa_tl } { _uppercase }
+ \group_end:
+ }
+
+\ProvideDocumentCommand \Thedate {} { \ProjLibdate }
+\ProvideDocumentCommand \TheDate {} { \ProjLibDate }
+
+
+\int_new:N \l__projlib_datetime_day_of_week_day_int
+\int_new:N \l__projlib_datetime_day_of_week_month_int
+\int_new:N \l__projlib_datetime_day_of_week_year_int
+\int_new:N \l__projlib_datetime_day_of_week_century_int
+\int_new:N \l__projlib_datetime_day_of_week_result_int
+\cs_new:Nn \__projlib_datetime_calculate_day_of_week_with_year_month_day:nnn
+ {
+ \int_set:Nn \l__projlib_datetime_day_of_week_day_int { #3 }
+ \int_compare:nNnTF { #2 } < { 3 }
+ {
+ \int_set:Nn \l__projlib_datetime_day_of_week_year_int { \int_eval:n { #1 - 1 } }
+ }
+ {
+ \int_set:Nn \l__projlib_datetime_day_of_week_year_int { #1 }
+ }
+ \int_set:Nn \l__projlib_datetime_day_of_week_century_int { \int_eval:n { \l__projlib_datetime_day_of_week_year_int / 100 } }
+ \int_set:Nn \l__projlib_datetime_day_of_week_year_int { \int_mod:nn { \l__projlib_datetime_day_of_week_year_int } { 100 } }
+ \int_set:Nn \l__projlib_datetime_day_of_week_month_int
+ {
+ \int_case:nnF { #2 }
+ {
+ { 1 } { 0 }
+ { 2 } { 3 }
+ { 3 } { 2 }
+ { 4 } { 5 }
+ { 5 } { 0 }
+ { 6 } { 3 }
+ { 7 } { 5 }
+ { 8 } { 1 }
+ { 9 } { 4 }
+ { 10 } { 6 }
+ { 11 } { 2 }
+ { 12 } { 4 }
+ } { 0 }
+ }
+ \int_set:Nn \l__projlib_datetime_day_of_week_result_int
+ {
+ \int_eval:n
+ {
+ \l__projlib_datetime_day_of_week_day_int
+ + \l__projlib_datetime_day_of_week_month_int
+ +\l__projlib_datetime_day_of_week_year_int
+ + \int_div_truncate:nn { \l__projlib_datetime_day_of_week_year_int } { 4 }
+ + \int_div_truncate:nn { \l__projlib_datetime_day_of_week_century_int } { 4 }
+ - 2 * \l__projlib_datetime_day_of_week_century_int
+ }
+ }
+ \int_set:Nn \l__projlib_datetime_day_of_week_result_int
+ {
+ \int_mod:nn { \l__projlib_datetime_day_of_week_result_int } { 7 }
+ }
+ \int_compare:nNnT { \l__projlib_datetime_day_of_week_result_int } < { 1 }
+ {
+ \int_set:Nn \l__projlib_datetime_day_of_week_result_int
+ {
+ \int_eval:n { \l__projlib_datetime_day_of_week_result_int + 7 }
+ }
+ }
+ }
+
+
+\cs_new_protected:Nn \projlib_datetime_display_week:n
+ {
+ \__projlib_datetime_display_week_according_to_format:en { #1 } {}
+ }
+
+\cs_new_protected:Nn \projlib_datetime_display_week_uppercase:n
+ {
+ \__projlib_datetime_display_week_according_to_format:en { #1 } { _uppercase }
+ }
+
+\cs_new_protected:Nn \__projlib_datetime_display_week_according_to_format:nn
+ {
+ \projlib_datetime_calculate_week_according_to_format:n { #1 }
+ \cs_if_exist_use:c { projlib_datetime_display_week #2 _ \languagename :n } { \l__projlib_datetime_day_of_week_result_int }
+ }
+\cs_generate_variant:Nn \__projlib_datetime_display_week_according_to_format:nn { en }
+
+
+\cs_new_protected:Nn \projlib_datetime_calculate_week_according_to_format:n
+ {
+ \cs_if_exist_use:c { __projlib_datetime_date_parse_ \__projlib_datetime_input_format_to_str: :n } { #1 }
+ \__projlib_datetime_calculate_day_of_week_with_year_month_day:nnn
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } }
+ { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } }
+ }
+
+
+% For each language, there are 7 groups of functions:
+% 1) \projlib_datetime_display_year_month_day_<languagename>:nnn
+% \projlib_datetime_display_year_month_day_uppercase_<languagename>:nnn
+% 2) \projlib_datetime_display_year_month_<languagename>:nn
+% \projlib_datetime_display_year_month_uppercase_<languagename>:nn
+% 3) \projlib_datetime_display_month_day_<languagename>:nn
+% \projlib_datetime_display_month_day_uppercase_<languagename>:nn
+% 4) \projlib_datetime_display_year_<languagename>:n
+% \projlib_datetime_display_year_uppercase_<languagename>:n
+% 5) \projlib_datetime_display_month_<languagename>:n
+% \projlib_datetime_display_month_uppercase_<languagename>:n
+% 6) \projlib_datetime_display_day_<languagename>:n
+% \projlib_datetime_display_day_uppercase_<languagename>:n
+% 7) \projlib_datetime_display_week_<languagename>:n
+% \projlib_datetime_display_week_uppercase_<languagename>:n
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_english:nnn
+ {
+ \projlib_datetime_display_month_day_english:nn { #2 } { #3 }
+ ,\nobreakspace
+ \projlib_datetime_display_year_english:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_english:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_english:nnn
+ {
+ \projlib_datetime_display_month_day_uppercase_english:nn { #2 } { #3 }
+ ,\nobreakspace
+ \projlib_datetime_display_year_english:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_english:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_english:nn
+ {
+ \projlib_datetime_display_month_english:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_english:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_english:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_english:nn
+ {
+ \projlib_datetime_display_month_uppercase_english:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_english:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_english:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_english:nn
+ {
+ \projlib_datetime_display_month_english:n { #1 }
+ \nobreakspace
+ \projlib_datetime_display_day_english:n { #2 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_english:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_english:nn
+ {
+ \projlib_datetime_display_month_uppercase_english:n { #1 }
+ \nobreakspace
+ \projlib_datetime_display_day_english:n { #2 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_english:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_english:n { #1 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_english:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_month_english:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { January }
+ { 2 } { February }
+ { 3 } { March }
+ { 4 } { April }
+ { 5 } { May }
+ { 6 } { June }
+ { 7 } { July }
+ { 8 } { August }
+ { 9 } { September }
+ { 10 } { October }
+ { 11 } { November }
+ { 12 } { December }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_month_uppercase_english:n
+ {
+ \projlib_datetime_display_month_english:n { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_day_english:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_english:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_english:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Monday }
+ { 2 } { Tuesday }
+ { 3 } { Wednesday }
+ { 4 } { Thursday }
+ { 5 } { Friday }
+ { 6 } { Saturday }
+ { 7 } { Sunday }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_english:n
+ {
+ \projlib_datetime_display_week_english:n { #1 }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_french:nnn
+ {
+ \projlib_datetime_display_month_day_french:nn { #2 } { #3 }
+ \nobreakspace
+ \projlib_datetime_display_year_french:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_french:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_french:nnn
+ {
+ \projlib_datetime_display_month_day_uppercase_french:nn { #2 } { #3 }
+ \nobreakspace
+ \projlib_datetime_display_year_french:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_french:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_french:nn
+ {
+ \projlib_datetime_display_month_french:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_french:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_french:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_french:nn
+ {
+ \projlib_datetime_display_month_uppercase_french:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_french:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_french:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_french:nn
+ {
+ \projlib_datetime_display_day_french:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_month_french:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_french:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_french:nn
+ {
+ \projlib_datetime_display_month_day_french:nn { #1 } { #2 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_french:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_french:n { #1 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_french:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_month_french:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { janvier }
+ { 2 } { février }
+ { 3 } { mars }
+ { 4 } { avril }
+ { 5 } { mai }
+ { 6 } { juin }
+ { 7 } { juillet }
+ { 8 } { août }
+ { 9 } { septembre }
+ { 10 } { octobre }
+ { 11 } { novembre }
+ { 12 } { décembre }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_month_uppercase_french:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Janvier }
+ { 2 } { Février }
+ { 3 } { Mars }
+ { 4 } { Avril }
+ { 5 } { Mai }
+ { 6 } { Juin }
+ { 7 } { Juillet }
+ { 8 } { Août }
+ { 9 } { Septembre }
+ { 10 } { Octobre }
+ { 11 } { Novembre }
+ { 12 } { Décembre }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_day_french:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { 1 \projlib_datetime_text_superscript:n { er } }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_day_uppercase_french:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { 1 \projlib_datetime_text_superscript:n { er } }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_french:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { lundi }
+ { 2 } { mardi }
+ { 3 } { mercredi }
+ { 4 } { jeudi }
+ { 5 } { vendredi }
+ { 6 } { samedi }
+ { 7 } { dimanche }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_french:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Lundi }
+ { 2 } { Mardi }
+ { 3 } { Mercredi }
+ { 4 } { Jeudi }
+ { 5 } { Vendredi }
+ { 6 } { Samedi }
+ { 7 } { Dimanche }
+ } { ??? }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_ngerman:nnn
+ {
+ \projlib_datetime_display_month_day_ngerman:nn { #2 } { #3 }
+ \nobreakspace
+ \projlib_datetime_display_year_ngerman:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_ngerman:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_ngerman:nnn
+ {
+ \projlib_datetime_display_month_day_uppercase_ngerman:nn { #2 } { #3 }
+ \nobreakspace
+ \projlib_datetime_display_year_ngerman:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_ngerman:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_ngerman:nn
+ {
+ \projlib_datetime_display_month_ngerman:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_ngerman:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_ngerman:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_ngerman:nn
+ {
+ \projlib_datetime_display_month_uppercase_ngerman:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_ngerman:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_ngerman:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_ngerman:nn
+ {
+ \projlib_datetime_display_day_ngerman:n { #2 }
+ .\nobreakspace
+ \projlib_datetime_display_month_ngerman:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_ngerman:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_ngerman:nn
+ {
+ \projlib_datetime_display_month_day_ngerman:nn { #1 } { #2 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_ngerman:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_ngerman:n { #1 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_ngerman:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_month_ngerman:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Januar }
+ { 2 } { Februar }
+ { 3 } { März }
+ { 4 } { April }
+ { 5 } { Mai }
+ { 6 } { Juni }
+ { 7 } { Juli }
+ { 8 } { August }
+ { 9 } { September }
+ { 10 } { Oktober }
+ { 11 } { November }
+ { 12 } { Dezember }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_month_uppercase_ngerman:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Januar }
+ { 2 } { Februar }
+ { 3 } { März }
+ { 4 } { April }
+ { 5 } { Mai }
+ { 6 } { Juni }
+ { 7 } { Juli }
+ { 8 } { August }
+ { 9 } { September }
+ { 10 } { Oktober }
+ { 11 } { November }
+ { 12 } { Dezember }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_day_ngerman:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_ngerman:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_ngerman:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Montag }
+ { 2 } { Dienstag }
+ { 3 } { Mittwoch }
+ { 4 } { Donnerstag }
+ { 5 } { Freitag }
+ { 6 } { Samstag }
+ { 7 } { Sonntag }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_ngerman:n
+ {
+ \projlib_datetime_display_week_ngerman:n { #1 }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_italian:nnn
+ {
+ \projlib_datetime_display_month_day_italian:nn { #2 } { #3 }
+ \nobreakspace
+ \projlib_datetime_display_year_italian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_italian:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_italian:nnn
+ {
+ \projlib_datetime_display_month_day_uppercase_italian:nn { #2 } { #3 }
+ \nobreakspace
+ \projlib_datetime_display_year_italian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_italian:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_italian:nn
+ {
+ \projlib_datetime_display_month_italian:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_italian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_italian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_italian:nn
+ {
+ \projlib_datetime_display_month_uppercase_italian:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_italian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_italian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_italian:nn
+ {
+ \projlib_datetime_display_day_italian:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_month_italian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_italian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_italian:nn
+ {
+ \projlib_datetime_display_month_day_italian:nn { #1 } { #2 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_italian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_italian:n { #1 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_italian:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_month_italian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { gennaio }
+ { 2 } { febbraio }
+ { 3 } { marzo }
+ { 4 } { aprile }
+ { 5 } { maggio }
+ { 6 } { giugno }
+ { 7 } { luglio }
+ { 8 } { agosto }
+ { 9 } { settembre }
+ { 10 } { ottobre }
+ { 11 } { novembre }
+ { 12 } { dicembre }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_month_uppercase_italian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Gennaio }
+ { 2 } { Febbraio }
+ { 3 } { Marzo }
+ { 4 } { Aprile }
+ { 5 } { Maggio }
+ { 6 } { Giugno }
+ { 7 } { Luglio }
+ { 8 } { Agosto }
+ { 9 } { Settembre }
+ { 10 } { Ottobre }
+ { 11 } { Novembre }
+ { 12 } { Dicembre }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_day_italian:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_italian:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_italian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { lunedì }
+ { 2 } { martedì }
+ { 3 } { mercoledì }
+ { 4 } { giovedì }
+ { 5 } { venerdì }
+ { 6 } { sabato }
+ { 7 } { domenica }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_italian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Lunedì }
+ { 2 } { Martedì }
+ { 3 } { Mercoledì }
+ { 4 } { Giovedì }
+ { 5 } { Venerdì }
+ { 6 } { Sabato }
+ { 7 } { Domenica }
+ } { ??? }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_portuguese:nnn
+ {
+ \projlib_datetime_display_month_day_portuguese:nn { #2 } { #3 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_year_portuguese:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_portuguese:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_portuguese:nnn
+ {
+ \projlib_datetime_display_month_day_uppercase_portuguese:nn { #2 } { #3 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_year_portuguese:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_portuguese:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_portuguese:nn
+ {
+ \projlib_datetime_display_month_portuguese:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_portuguese:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_portuguese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_portuguese:nn
+ {
+ \projlib_datetime_display_month_uppercase_portuguese:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_portuguese:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_portuguese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_portuguese:nn
+ {
+ \projlib_datetime_display_day_portuguese:n { #2 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_month_uppercase_portuguese:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_portuguese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_portuguese:nn
+ {
+ \projlib_datetime_display_month_day_portuguese:nn { #1 } { #2 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_portuguese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_portuguese:n { #1 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_portuguese:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_month_portuguese:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { janeiro }
+ { 2 } { fevereiro }
+ { 3 } { março }
+ { 4 } { abril }
+ { 5 } { maio }
+ { 6 } { junho }
+ { 7 } { julho }
+ { 8 } { agosto }
+ { 9 } { setembro }
+ { 10 } { outubro }
+ { 11 } { novembro }
+ { 12 } { dezembro }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_month_uppercase_portuguese:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Janeiro }
+ { 2 } { Fevereiro }
+ { 3 } { Março }
+ { 4 } { Abril }
+ { 5 } { Maio }
+ { 6 } { Junho }
+ { 7 } { Julho }
+ { 8 } { Agosto }
+ { 9 } { Setembro }
+ { 10 } { Outubro }
+ { 11 } { Novembro }
+ { 12 } { Dezembro }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_day_portuguese:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_portuguese:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_portuguese:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { segunda-feira }
+ { 2 } { terça-feira }
+ { 3 } { quarta-feira }
+ { 4 } { quinta-feira }
+ { 5 } { sexta-feira }
+ { 6 } { sábado }
+ { 7 } { domingo }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_portuguese:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Segunda-feira }
+ { 2 } { Terça-feira }
+ { 3 } { Quarta-feira }
+ { 4 } { Quinta-feira }
+ { 5 } { Sexta-feira }
+ { 6 } { Sábado }
+ { 7 } { Domingo }
+ } { ??? }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_brazilian:nnn
+ {
+ \projlib_datetime_display_month_day_brazilian:nn { #2 } { #3 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_year_brazilian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_brazilian:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_brazilian:nnn
+ {
+ \projlib_datetime_display_month_day_uppercase_brazilian:nn { #2 } { #3 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_year_brazilian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_brazilian:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_brazilian:nn
+ {
+ \projlib_datetime_display_month_brazilian:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_brazilian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_brazilian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_brazilian:nn
+ {
+ \projlib_datetime_display_month_uppercase_brazilian:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_brazilian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_brazilian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_brazilian:nn
+ {
+ \projlib_datetime_display_day_brazilian:n { #2 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_month_uppercase_brazilian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_brazilian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_brazilian:nn
+ {
+ \projlib_datetime_display_month_day_brazilian:nn { #1 } { #2 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_brazilian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_brazilian:n { #1 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_brazilian:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_month_brazilian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { janeiro }
+ { 2 } { fevereiro }
+ { 3 } { março }
+ { 4 } { abril }
+ { 5 } { maio }
+ { 6 } { junho }
+ { 7 } { julho }
+ { 8 } { agosto }
+ { 9 } { setembro }
+ { 10 } { outubro }
+ { 11 } { novembro }
+ { 12 } { dezembro }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_month_uppercase_brazilian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Janeiro }
+ { 2 } { Fevereiro }
+ { 3 } { Março }
+ { 4 } { Abril }
+ { 5 } { Maio }
+ { 6 } { Junho }
+ { 7 } { Julho }
+ { 8 } { Agosto }
+ { 9 } { Setembro }
+ { 10 } { Outubro }
+ { 11 } { Novembro }
+ { 12 } { Dezembro }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_day_brazilian:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_brazilian:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_brazilian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { segunda-feira }
+ { 2 } { terça-feira }
+ { 3 } { quarta-feira }
+ { 4 } { quinta-feira }
+ { 5 } { sexta-feira }
+ { 6 } { sábado }
+ { 7 } { domingo }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_brazilian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Segunda-feira }
+ { 2 } { Terça-feira }
+ { 3 } { Quarta-feira }
+ { 4 } { Quinta-feira }
+ { 5 } { Sexta-feira }
+ { 6 } { Sábado }
+ { 7 } { Domingo }
+ } { ??? }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_spanish:nnn
+ {
+ \projlib_datetime_display_month_day_spanish:nn { #2 } { #3 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_year_spanish:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_spanish:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_spanish:nnn
+ {
+ \projlib_datetime_display_month_day_uppercase_spanish:nn { #2 } { #3 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_year_spanish:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_spanish:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_spanish:nn
+ {
+ \projlib_datetime_display_month_spanish:n { #2 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_year_spanish:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_spanish:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_spanish:nn
+ {
+ \projlib_datetime_display_month_uppercase_spanish:n { #2 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_year_spanish:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_spanish:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_spanish:nn
+ {
+ \projlib_datetime_display_day_spanish:n { #2 }
+ \nobreakspace de \nobreakspace
+ \projlib_datetime_display_month_spanish:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_spanish:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_spanish:nn
+ {
+ \projlib_datetime_display_month_day_spanish:nn { #1 } { #2 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_spanish:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_spanish:n { #1 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_spanish:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_month_spanish:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { enero }
+ { 2 } { febrero }
+ { 3 } { marzo }
+ { 4 } { abril }
+ { 5 } { mayo }
+ { 6 } { junio }
+ { 7 } { julio }
+ { 8 } { agosto }
+ { 9 } { septiembre }
+ { 10 } { octubre }
+ { 11 } { noviembre }
+ { 12 } { diciembre }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_month_uppercase_spanish:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Enero }
+ { 2 } { Febrero }
+ { 3 } { Marzo }
+ { 4 } { Abril }
+ { 5 } { Mayo }
+ { 6 } { Junio }
+ { 7 } { Julio }
+ { 8 } { Agosto }
+ { 9 } { Septiembre }
+ { 10 } { Octubre }
+ { 11 } { Noviembre }
+ { 12 } { Diciembre }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_day_spanish:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_spanish:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_spanish:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { lunes }
+ { 2 } { martes }
+ { 3 } { miércoles }
+ { 4 } { jueves }
+ { 5 } { viernes }
+ { 6 } { sábado }
+ { 7 } { domingo }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_spanish:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Lunes }
+ { 2 } { Martes }
+ { 3 } { Miércoles }
+ { 4 } { Jueves }
+ { 5 } { Viernes }
+ { 6 } { Sábado }
+ { 7 } { Domingo }
+ } { ??? }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_schinese:nnn
+ {
+ #1 年 #2 月 #3 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_schinese:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_schinese:nnn
+ {
+ #1 年 #2 月 #3 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_schinese:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_schinese:nn
+ {
+ #1 年 #2 月
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_schinese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_schinese:nn
+ {
+ #1 年 #2 月
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_schinese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_schinese:nn
+ {
+ #1 月 #2 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_schinese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_schinese:nn
+ {
+ #1 月 #2 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_schinese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_schinese:n { #1 年 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_schinese:n { #1 年 }
+\cs_new:Nn \projlib_datetime_display_month_schinese:n { #1 月 }
+\cs_new:Nn \projlib_datetime_display_month_uppercase_schinese:n { #1 月 }
+\cs_new:Nn \projlib_datetime_display_day_schinese:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_schinese:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_schinese:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { 星期一 }
+ { 2 } { 星期二 }
+ { 3 } { 星期三 }
+ { 4 } { 星期四 }
+ { 5 } { 星期五 }
+ { 6 } { 星期六 }
+ { 7 } { 星期日 }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_schinese:n
+ {
+ \projlib_datetime_display_week_schinese:n { #1 }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_tchinese:nnn
+ {
+ #1 年 #2 月 #3 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_tchinese:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_tchinese:nnn
+ {
+ #1 年 #2 月 #3 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_tchinese:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_tchinese:nn
+ {
+ #1 年 #2 月
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_tchinese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_tchinese:nn
+ {
+ #1 年 #2 月
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_tchinese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_tchinese:nn
+ {
+ #1 月 #2 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_tchinese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_tchinese:nn
+ {
+ #1 月 #2 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_tchinese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_tchinese:n { #1 年 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_tchinese:n { #1 年 }
+\cs_new:Nn \projlib_datetime_display_month_tchinese:n { #1 月 }
+\cs_new:Nn \projlib_datetime_display_month_uppercase_tchinese:n { #1 月 }
+\cs_new:Nn \projlib_datetime_display_day_tchinese:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_tchinese:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_tchinese:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { 星期一 }
+ { 2 } { 星期二 }
+ { 3 } { 星期三 }
+ { 4 } { 星期四 }
+ { 5 } { 星期五 }
+ { 6 } { 星期六 }
+ { 7 } { 星期日 }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_tchinese:n
+ {
+ \projlib_datetime_display_week_tchinese:n { #1 }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_japanese:nnn
+ {
+ #1 年 #2 月 #3 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_japanese:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_japanese:nnn
+ {
+ #1 年 #2 月 #3 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_japanese:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_japanese:nn
+ {
+ #1 年 #2 月
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_japanese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_japanese:nn
+ {
+ #1 年 #2 月
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_japanese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_japanese:nn
+ {
+ #1 月 #2 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_japanese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_japanese:nn
+ {
+ #1 月 #2 日
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_japanese:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_japanese:n { #1 年 }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_japanese:n { #1 年 }
+\cs_new:Nn \projlib_datetime_display_month_japanese:n { #1 月 }
+\cs_new:Nn \projlib_datetime_display_month_uppercase_japanese:n { #1 月 }
+\cs_new:Nn \projlib_datetime_display_day_japanese:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_japanese:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_japanese:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { 月曜日 }
+ { 2 } { 火曜日 }
+ { 3 } { 水曜日 }
+ { 4 } { 木曜日 }
+ { 5 } { 金曜日 }
+ { 6 } { 土曜日 }
+ { 7 } { 日曜日 }
+ } { ??? }
+ }
+
+\cs_new:Nn \projlib_datetime_display_week_uppercase_japanese:n
+ {
+ \projlib_datetime_display_week_japanese:n { #1 }
+ }
+
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_russian:nnn
+ {
+ \projlib_datetime_display_month_day_russian:nn { #2 } { #3 }
+ \nobreakspace
+ \projlib_datetime_display_year_russian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_russian:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_russian:nnn
+ {
+ \projlib_datetime_display_month_day_uppercase_russian:nn { #2 } { #3 }
+ \nobreakspace
+ \projlib_datetime_display_year_russian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_russian:nnn { VVV, eee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_russian:nn
+ {
+ \projlib_datetime_display_month_russian:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_russian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_russian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_month_uppercase_russian:nn
+ {
+ \projlib_datetime_display_month_uppercase_russian:n { #2 }
+ \nobreakspace
+ \projlib_datetime_display_year_russian:n { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_russian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_russian:nn
+ {
+ \projlib_datetime_display_day_russian:n { #2 }
+ \nobreakspace
+ \int_case:nnF { #1 }
+ {
+ { 1 } { января }
+ { 2 } { февраля }
+ { 3 } { марта }
+ { 4 } { апреля }
+ { 5 } { мая }
+ { 6 } { июня }
+ { 7 } { июля }
+ { 8 } { августа }
+ { 9 } { сентября }
+ { 10 } { октября }
+ { 11 } { ноября }
+ { 12 } { декабря }
+ } { #1 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_russian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_month_day_uppercase_russian:nn
+ {
+ \projlib_datetime_display_month_day_russian:nn { #1 } { #2 }
+ }
+\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_russian:nn { VV, ee }
+
+\cs_new:Nn \projlib_datetime_display_year_russian:n { #1 ~ г. }
+\cs_new:Nn \projlib_datetime_display_year_uppercase_russian:n { #1 ~ г. }
+
+\cs_new:Nn \projlib_datetime_display_month_russian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { январь }
+ { 2 } { февраль }
+ { 3 } { март }
+ { 4 } { апрель }
+ { 5 } { май }
+ { 6 } { июнь }
+ { 7 } { июль }
+ { 8 } { август }
+ { 9 } { сентябрь }
+ { 10 } { октябрь }
+ { 11 } { ноябрь }
+ { 12 } { декабрь }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_month_uppercase_russian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Январь }
+ { 2 } { Февраль }
+ { 3 } { Март }
+ { 4 } { Апрель }
+ { 5 } { Май }
+ { 6 } { Июнь }
+ { 7 } { Июль }
+ { 8 } { Август }
+ { 9 } { Сентябрь }
+ { 10 } { Октябрь }
+ { 11 } { Ноябрь }
+ { 12 } { Декабрь }
+ } { #1 }
+ }
+
+\cs_new:Nn \projlib_datetime_display_day_russian:n { #1 }
+\cs_new:Nn \projlib_datetime_display_day_uppercase_russian:n { #1 }
+
+\cs_new:Nn \projlib_datetime_display_week_russian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { понедельник }
+ { 2 } { вторник }
+ { 3 } { среда }
+ { 4 } { четверг }
+ { 5 } { пятница }
+ { 6 } { суббота }
+ { 7 } { воскресенье }
+ } { ??? }
+ }
+\cs_new:Nn \projlib_datetime_display_week_uppercase_russian:n
+ {
+ \int_case:nnF { #1 }
+ {
+ { 1 } { Понедельник }
+ { 2 } { Вторник }
+ { 3 } { Среда }
+ { 4 } { Четверг }
+ { 5 } { Пятница }
+ { 6 } { Суббота }
+ { 7 } { Воскресенье }
+ } { ??? }
+ }
+%</projlib-datetime>
+%
+%<*projlib-draft>
+\keys_define:nn { projlib-draft }
+ {
+ , draft .bool_set:N = \l__projlib_draft_fast_bool
+ , draft .initial:n = { false }
+ , fast .bool_set:N = \l__projlib_draft_fast_bool
+ , unknown .code:n = {}
+ }
+\ProcessKeysOptions { projlib-draft }
+
+\RequirePackage { projlib-language }
+\RequirePackage { xcolor }
+
+\bool_if:NTF \l__projlib_draft_fast_bool
+ {
+ \NewDocumentCommand \projlib_draft_plain_box { O{-paper} m }
+ {
+ \group_begin:
+ \color { #1 }
+ \dim_set:Nn \fboxsep { 1.5pt }
+ \dim_set:Nn \fboxrule { 1.5pt }
+ \fbox { #2 }
+ \group_end:
+ }
+ }
+ {
+ \PassOptionsToPackage { many } { tcolorbox }
+ \RequirePackage { tcolorbox }
+ \NewTCBox \projlib_draft_plain_box { O{-paper} }
+ {
+ enhanced~jigsaw, breakable,
+ on~line, arc = 1.2pt, outer~arc = 1pt,
+ colframe = #1, colupper = #1, opacityback = 0,
+ boxsep = 1pt, boxrule = 1.2pt,
+ left = 1pt, right = 1pt, top = 0pt, bottom = 0pt,
+ }
+ }
+
+\projlib_langauge_define_multilingual_text:Nn \__dnf_text
+ {
+ EN = To\ be\ finished ,
+ FR = Pas\ encore\ fini ,
+ DE = Nicht\ beendet ,
+ IT = Per\ essere\ finito ,
+ PT = Não\ terminou ,
+ BR = Não\ terminou ,
+ ES = Estar\ terminado ,
+ CN = 这里尚未完成 ,
+ TC = 這裡尚未完成 ,
+ JP = 終わってない ,
+ RU = Не\ закончен ,
+ }
+
+\projlib_langauge_define_multilingual_text:Nn \__dnf_report_text
+ {
+ EN = { Below\ is\ a\ list\ of\ outstanding\ items,
+ \ followed\ by\ the\ corresponding\ page\ numbers. } ,
+ FR = { Voici\ la\ liste\ des\ éléments\ en\ suspens,
+ \ suivie\ des\ numéros\ de\ page\ correspondants. } ,
+ DE = { Unten\ ist\ eine\ Liste\ der\ ausstehenden\ Posten,
+ \ gefolgt\ von\ den\ entsprechenden\ Seitenzahlen. } ,
+ IT = { Qui\ sotto\ c'è\ una\ lista\ di\ voci\ in\ sospeso,
+ \ seguita\ dai\ numeri\ di\ pagina\ corrispondenti. } ,
+ PT = { Abaixo\ está\ uma\ lista\ de\ itens\ pendentes,
+ \ seguida\ dos\ números\ de\ página\ correspondentes. } ,
+ BR = { Abaixo\ está\ uma\ lista\ de\ itens\ pendentes,
+ \ seguida\ dos\ números\ de\ página\ correspondentes. } ,
+ ES = { Aquí está\ la\ lista\ de\ elementos\ pendientes,
+ \ seguida\ de\ los\ números\ de\ página\ correspondientes. } ,
+ CN = { 以下是未完成事项列表,括号内注明了对应的页码。 } ,
+ TC = { 以下是未完成事項的列表,括號內註明了對應頁碼。 } ,
+ JP = { 以下は、未解決の項目とそれに対応するページ番号の一覧です。 } ,
+ RU = { Ниже\ приведен\ список\ невыполненных\ пунктов
+ \ с\ соответствующими\ номерами\ страниц\ в\ скобках. } ,
+ }
+
+\tl_new:c { __dnf_font }
+\tl_gset:cn { __dnf_font } { \normalfont \ttfamily \bfseries \small }
+
+\definecolor { __dnf_color } { RGB } { 21, 122, 20 }
+
+\newcounter { __dnf_counter }
+
+\tl_new:N \g__projlib_draft_dnf_report_tl
+
+\NewDocumentCommand \dnf { d<> }
+ {
+ \noindent
+ \projlib_draft_plain_box [ __dnf_color ]
+ {
+ \stepcounter { __dnf_counter }
+ \__dnf_font
+ \__dnf_text
+ \c_space_tl
+ \# \the__dnf_counter
+ \IfNoValueF { #1 } { \, : ~ #1 }
+ \tl_gput_right:Nx \g__projlib_draft_dnf_report_tl
+ {
+ \# \,
+ \int_value:w \the__dnf_counter
+ \c_space_tl \c_space_tl
+ $\langle$
+ \skip_horizontal:n { 0.1em }
+ \cs_if_exist:cTF { hyperlink }
+ {
+ \exp_not:N \hyperlink { page.\thepage } { \thepage }
+ }
+ {
+ \thepage
+ }
+ \skip_horizontal:n { 0.1em }
+ $\rangle$
+ \c_space_tl
+ \IfNoValueF { #1 } { : ~ #1 }
+ \\
+ }
+ }
+ }
+
+\hook_gput_code:nnn { enddocument } { projlib-draft }
+ {
+ \tl_if_blank:VF \g__projlib_draft_dnf_report_tl
+ {
+ \clearpage \noindent
+ \color { __dnf_color }
+ \__dnf_font
+ \__dnf_report_text \\[0.75\baselineskip]
+ \g__projlib_draft_dnf_report_tl
+ }
+ }
+%</projlib-draft>
+%
+%<*projlib-font>
+\keys_define:nn { projlib-font }
+ {
+ , useosf .bool_set:N = \l__projlib_font_useosf_bool
+ , useosf .initial:n = { false }
+ , old-style-figures.bool_set:N = \l__projlib_font_useosf_bool
+ , old~style~figures.bool_set:N = \l__projlib_font_useosf_bool
+ , old style figures.bool_set:N = \l__projlib_font_useosf_bool
+ , lmodern .bool_set:N = \l__projlib_font_lmodern_bool
+ , lmodern .initial:n = { false }
+ , latin-modern .bool_set:N = \l__projlib_font_lmodern_bool
+ , latin~modern .bool_set:N = \l__projlib_font_lmodern_bool
+ , latin modern .bool_set:N = \l__projlib_font_lmodern_bool
+ , palatino .bool_set:N = \l__projlib_font_palatino_bool
+ , palatino .initial:n = { false }
+ , times .bool_set:N = \l__projlib_font_times_bool
+ , times .initial:n = { false }
+ , garamond .bool_set:N = \l__projlib_font_garamond_bool
+ , garamond .initial:n = { false }
+ , noto .bool_set:N = \l__projlib_font_noto_bool
+ , noto .initial:n = { false }
+ , biolinum .bool_set:N = \l__projlib_font_biolinum_bool
+ , biolinum .initial:n = { false }
+ , unknown .code:n = {}
+ }
+\ProcessKeysOptions { projlib-font }
+
+\bool_new:N \g_projlib_font_already_set_bool
+\bool_gset_false:N \g_projlib_font_already_set_bool
+
+\RequirePackage { setspace }
+
+\cs_new:Nn \projlib_font_set_linespacing_latin:n
+ {
+ \cs_if_exist:NTF \projlib_language_set_linespacing_latin:n
+ {
+ \projlib_language_set_linespacing_latin:n { #1 }
+ }
+ {
+ #1
+ }
+ }
+
+\bool_if:NT \l__projlib_font_lmodern_bool
+ {
+ \RequirePackage { amssymb }
+ \bool_if:NTF \l__projlib_font_useosf_bool
+ {
+ \RequirePackage { cfr-lm }
+ }
+ {
+ \RequirePackage { lmodern }
+ }
+ \projlib_font_set_linespacing_latin:n { \setstretch { 1.00 } }
+ \bool_gset_true:N \g_projlib_font_already_set_bool
+ }
+
+\bool_if:NT \l__projlib_font_palatino_bool
+ {
+ \sys_if_engine_pdftex:TF
+ {
+ \RequirePackage { mathpazo }
+ \PassOptionsToPackage { defaultsups } { newpxtext }
+ \RequirePackage { newpxtext }
+ \cs_undefine:c { openbox }
+ \bool_if:NT \l__projlib_font_useosf_bool { \useosf }
+ }
+ {
+ \PassOptionsToPackage { warnings-off = { mathtools-colon, mathtools-overbracket } } { unicode-math }
+ \RequirePackage { unicode-math }
+ \defaultfontfeatures{ Scale=MatchLowercase, Ligatures=TeX }
+ \bool_if:NTF \l__projlib_font_useosf_bool
+ {
+ \setmainfont { TeXGyrePagellaX-Regular.otf }
+ [
+ BoldFont = TeXGyrePagellaX-Bold.otf ,
+ ItalicFont = TeXGyrePagellaX-Italic.otf ,
+ BoldItalicFont = TeXGyrePagellaX-BoldItalic.otf,
+ Numbers = OldStyle ]
+ }
+ {
+ \setmainfont { TeXGyrePagellaX-Regular.otf }
+ [
+ BoldFont = TeXGyrePagellaX-Bold.otf ,
+ ItalicFont = TeXGyrePagellaX-Italic.otf ,
+ BoldItalicFont = TeXGyrePagellaX-BoldItalic.otf,
+ ]
+ }
+ \setmathfont { texgyrepagella-math.otf }
+ }
+ \projlib_font_set_linespacing_latin:n { \setstretch { 1.07 } }
+ \bool_gset_true:N \g_projlib_font_already_set_bool
+ }
+
+\bool_if:NT \l__projlib_font_times_bool
+ {
+ \sys_if_engine_pdftex:TF
+ {
+ \PassOptionsToPackage { defaultsups } { newtxtext }
+ \RequirePackage { newtxtext }
+ \RequirePackage { newtxmath }
+ \cs_undefine:c { openbox }
+ \bool_if:NT \l__projlib_font_useosf_bool { \useosf }
+ }
+ {
+ \PassOptionsToPackage { warnings-off = { mathtools-colon, mathtools-overbracket } } { unicode-math }
+ \RequirePackage { unicode-math }
+ \defaultfontfeatures{ Scale=MatchLowercase, Ligatures=TeX }
+ \bool_if:NTF \l__projlib_font_useosf_bool
+ {
+ \setmainfont { TeXGyreTermesX-Regular.otf }
+ [
+ BoldFont = TeXGyreTermesX-Bold.otf ,
+ ItalicFont = TeXGyreTermesX-Italic.otf ,
+ BoldItalicFont = TeXGyreTermesX-BoldItalic.otf,
+ Numbers = OldStyle ]
+ }
+ {
+ \setmainfont { TeXGyreTermesX-Regular.otf }
+ [
+ BoldFont = TeXGyreTermesX-Bold.otf ,
+ ItalicFont = TeXGyreTermesX-Italic.otf ,
+ BoldItalicFont = TeXGyreTermesX-BoldItalic.otf,
+ ]
+ }
+ \setmathfont { texgyretermes-math.otf }
+ }
+ \projlib_font_set_linespacing_latin:n { \setstretch { 1.00 } }
+ \bool_gset_true:N \g_projlib_font_already_set_bool
+ }
+
+\bool_if:NT \l__projlib_font_garamond_bool
+ {
+ \bool_if:NF \l__projlib_font_useosf_bool
+ {
+ \PassOptionsToPackage { lining } { ebgaramond }
+ }
+ \RequirePackage [ cmintegrals, cmbraces ] { newtxmath }
+ \cs_undefine:c { openbox }
+ \RequirePackage { ebgaramond-maths }
+ \RequirePackage { ebgaramond }
+ \cs_undefine:c { Bbbk }
+ \projlib_font_set_linespacing_latin:n { \setstretch { 1.00 } }
+ \bool_gset_true:N \g_projlib_font_already_set_bool
+ }
+
+\bool_if:NT \l__projlib_font_noto_bool
+ {
+ \bool_if:NT \l__projlib_font_useosf_bool
+ {
+ \PassOptionsToPackage { oldstyle } { notomath }
+ }
+ \RequirePackage { anyfontsize }
+ \RequirePackage { notomath }
+ \cs_undefine:c { Bbbk }
+ \projlib_font_set_linespacing_latin:n { \setstretch { 1.00 } }
+ \bool_gset_true:N \g_projlib_font_already_set_bool
+ }
+
+\bool_if:NT \l__projlib_font_biolinum_bool
+ {
+ \RequirePackage [ OT1 ] { eulervm }
+ \sys_if_engine_pdftex:TF
+ {
+ \bool_if:NT \l__projlib_font_useosf_bool
+ {
+ \PassOptionsToPackage { osf } { biolinum }
+ }
+ \RequirePackage { biolinum }
+ \tl_gset:Nn \familydefault { \biolinum@family }
+ }
+ {
+ \PassOptionsToPackage { no-math } { fontspec }
+ \RequirePackage { fontspec }
+ \bool_if:NTF \l__projlib_font_useosf_bool
+ {
+ \setmainfont { LinBiolinum_R.otf } [
+ BoldFont = LinBiolinum_RB.otf ,
+ ItalicFont = LinBiolinum_RI.otf ,
+ BoldItalicFont = LinBiolinum_RBO.otf ,
+ Numbers = OldStyle , ]
+ }
+ {
+ \setmainfont { LinBiolinum_R.otf } [
+ BoldFont = LinBiolinum_RB.otf ,
+ ItalicFont = LinBiolinum_RI.otf ,
+ BoldItalicFont = LinBiolinum_RBO.otf , ]
+ }
+ }
+ \projlib_font_set_linespacing_latin:n { \setstretch { 1.05 } }
+ \RequirePackage [ italic, defaultmathsizes ] { mathastext }
+ \bool_gset_true:N \g_projlib_font_already_set_bool
+ }
+
+\PassOptionsToPackage { verbose = silent } { microtype }
+\RequirePackage { microtype }
+%</projlib-font>
+%
+%<*projlib-language>
+\clist_const:Nn \c__projlib_language_supported_clist
+ {
+ english ,
+ french ,
+ ngerman ,
+ italian ,
+ portuguese ,
+ brazilian ,
+ spanish ,
+ schinese ,
+ tchinese ,
+ japanese ,
+ russian ,
+ }
+
+\clist_new:N \g__projlib_language_babel_option_clist
+
+\str_new:N \g__projlib_language_main_str
+
+\bool_new:N \g__projlib_language_enabled_all_bool
+\bool_gset_true:N \g__projlib_language_enabled_all_bool
+
+\clist_map_inline:Nn \c__projlib_language_supported_clist
+ {
+ \bool_new:c { g__projlib_language_enabled_ #1 _bool }
+ \bool_gset_false:c { g__projlib_language_enabled_ #1 _bool }
+ }
+
+\cs_new:Nn \projlib_language_set_option_no_babel:n
+ {
+ \bool_gset_false:N \g__projlib_language_enabled_all_bool
+ \bool_gset_true:c { g__projlib_language_enabled_ #1 _bool }
+ \str_if_empty:NT \g__projlib_language_main_str
+ {
+ \str_gset:Nn \g__projlib_language_main_str { #1 }
+ }
+ }
+\cs_new:Nn \projlib_language_set_option:n
+ {
+ \projlib_language_set_option_no_babel:n { #1 }
+ \clist_gput_left:Nn \g__projlib_language_babel_option_clist { #1 }
+ }
+
+\keys_define:nn { projlib-language }
+ {
+ , EN .meta:n = { english }
+ , english .code:n = { \projlib_language_set_option:n { english } }
+ , English .meta:n = { english }
+ , FR .meta:n = { french }
+ , french .code:n = { \projlib_language_set_option:n { french } }
+ , French .meta:n = { french }
+ , DE .meta:n = { ngerman }
+ , german .meta:n = { ngerman }
+ , ngerman .code:n = { \projlib_language_set_option:n { ngerman } }
+ , German .meta:n = { ngerman }
+ , IT .meta:n = { italian }
+ , italian .code:n = { \projlib_language_set_option:n { italian } }
+ , Italian .meta:n = { italian }
+ , PT .meta:n = { portuguese }
+ , portuguese .code:n = { \projlib_language_set_option:n { portuguese } }
+ , Portuguese .meta:n = { portuguese }
+ , BR .meta:n = { brazilian }
+ , brazilian .code:n = { \projlib_language_set_option:n { brazilian } }
+ , Brazilian .meta:n = { brazilian }
+ , ES .meta:n = { spanish }
+ , spanish .code:n = { \clist_gput_left:Nn \g__projlib_language_babel_option_clist { es-notilde, es-noquoting }
+ \projlib_language_set_option:n { spanish } }
+ , Spanish .meta:n = { spanish }
+ , CN .meta:n = { schinese }
+ , chinese .meta:n = { schinese }
+ , schinese .code:n = { \projlib_language_set_option_no_babel:n { schinese } }
+ , simplified-chinese .meta:n = { schinese }
+ , simplified~chinese .meta:n = { schinese }
+ , simplified chinese .meta:n = { schinese }
+ , Chinese .meta:n = { schinese }
+ , SChinese .meta:n = { schinese }
+ , Simplified-Chinese .meta:n = { schinese }
+ , Simplified~Chinese .meta:n = { schinese }
+ , Simplified Chinese .meta:n = { schinese }
+ , TC .meta:n = { tchinese }
+ , tchinese .code:n = { \projlib_language_set_option_no_babel:n { tchinese } }
+ , traditional-chinese .meta:n = { tchinese }
+ , traditional~chinese .meta:n = { tchinese }
+ , traditional chinese .meta:n = { tchinese }
+ , TChinese .meta:n = { tchinese }
+ , Traditional-Chinese .meta:n = { tchinese }
+ , Traditional~Chinese .meta:n = { tchinese }
+ , Traditional Chinese .meta:n = { tchinese }
+ , JP .meta:n = { japanese }
+ , japanese .code:n = { \projlib_language_set_option:n { japanese } }
+ , Japanese .meta:n = { japanese }
+ , RU .meta:n = { russian }
+ , russian .code:n = { \projlib_language_set_option:n { russian } }
+ , Russian .meta:n = { russian }
+ , unknown .code:n = {}
+ }
+\ProcessKeysOptions { projlib-language }
+
+\cs_new_protected:Nn \projlib_language_clear_global_option:n
+ {
+ \clist_remove_all:cn { @classoptionslist } { #1 }
+ }
+
+\projlib_language_clear_global_option:n { chinese }
+\projlib_language_clear_global_option:n { Chinese }
+
+\clist_gput_right:Nn \g__projlib_language_babel_option_clist { shorthands = off }
+
+\str_if_empty:NT \g__projlib_language_main_str
+ {
+ \str_gset:Nn \g__projlib_language_main_str { english }
+ }
+
+\bool_if:NT \g__projlib_language_enabled_all_bool
+ {
+ \clist_map_inline:Nn \c__projlib_language_supported_clist
+ {
+ \bool_gset_true:c { g__projlib_language_enabled_ #1 _bool }
+ }
+ }
+
+
+\cs_new:Nn \projlib_language_str_to_languagename:n
+ {
+ \str_case_e:nnF { \str_foldcase:n { #1 } }
+ {
+ { all } { common }
+ { common } { common }
+ { cn } { schinese }
+ { chinese } { schinese }
+ { schinese } { schinese }
+ { simplifiedchinese } { schinese }
+ { simplified-chinese } { schinese }
+ { tc } { tchinese }
+ { tchinese } { tchinese }
+ { traditionalchinese } { tchinese }
+ { traditional-chinese} { tchinese }
+ { jp } { japanese }
+ { japanese } { japanese }
+ { en } { english }
+ { english } { english }
+ { fr } { french }
+ { french } { french }
+ { de } { ngerman }
+ { german } { ngerman }
+ { ngerman } { ngerman }
+ { it } { italian }
+ { italian } { italian }
+ { pt } { portuguese }
+ { portuguese } { portuguese }
+ { br } { brazilian }
+ { brazilian } { brazilian }
+ { es } { spanish }
+ { spanish } { spanish }
+ { ru } { russian }
+ { russian } { russian }
+ }
+ { #1 }
+ }
+
+\cs_new:Nn \projlib_language_str_to_languagetype:n
+ {
+ \str_case_e:nn { \str_foldcase:n { #1 } }
+ {
+ { cn } { cjk }
+ { chinese } { cjk }
+ { schinese } { cjk }
+ { simplifiedchinese } { cjk }
+ { simplified-chinese } { cjk }
+ { tc } { cjk }
+ { tchinese } { cjk }
+ { traditionalchinese } { cjk }
+ { traditional-chinese} { cjk }
+ { jp } { cjk }
+ { japanese } { cjk }
+ { en } { latin }
+ { english } { latin }
+ { fr } { latin }
+ { french } { latin }
+ { de } { latin }
+ { german } { latin }
+ { ngerman } { latin }
+ { it } { latin }
+ { italian } { latin }
+ { pt } { latin }
+ { portuguese } { latin }
+ { br } { latin }
+ { brazilian } { latin }
+ { es } { latin }
+ { spanish } { latin }
+ { ru } { latin }
+ { russian } { latin }
+ }
+ }
+
+\sys_if_engine_pdftex:T
+ {
+ \RequirePackage [T1] { fontenc }
+ }
+
+\bool_if:NTF \g__projlib_language_enabled_all_bool
+ {
+ \sys_if_engine_pdftex:F
+ {
+ \PassOptionsToPackage { japanese, russian } { babel }
+ }
+ \PassOptionsToPackage { italian, portuguese, brazilian, spanish, es-notilde, es-noquoting, ngerman, french, english, shorthands = off } { babel }
+ }
+ {
+ \PassOptionsToPackage { \g__projlib_language_babel_option_clist } { babel }
+ }
+
+\PassOptionsToPackage { italian, brazilian, spanish, ngerman, french, english } { cleveref }
+\RequirePackage { babel }
+
+
+\bool_if:NT \g__projlib_language_enabled_french_bool
+ {
+ \frenchsetup { PartNameFull = false }
+ }
+
+\bool_if:NT \g__projlib_language_enabled_portuguese_bool
+ {
+ \NewCommandCopy \__projlib_language_babel_ord: \ord
+ \cs_undefine:N \ord
+ \hook_gput_code:nnn { begindocument } { projlib-language }
+ {
+ \cs_if_exist:NT \ord
+ {
+ \NewCommandCopy \__projlib_language_user_ord: \ord
+ \cs_set_protected:Npn \ord
+ {
+ \mode_if_math:TF
+ { \__projlib_language_user_ord: }
+ { \__projlib_language_babel_ord: }
+ }
+ }
+ }
+ }
+
+\babelprovide { schinese }
+\babelprovide { tchinese }
+
+
+\NewCommandCopy \projlib_language_backup_today:n \today
+
+\tl_new:N \g_projlib_language_settings_common_tl
+\clist_map_inline:Nn \c__projlib_language_supported_clist
+ {
+ \tl_new:c { g_projlib_language_settings_ #1 _tl }
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_common_tl
+ {
+ \cs_if_exist:NT \ProjLibToday
+ {
+ \RenewCommandCopy \today \ProjLibToday
+ }
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_schinese_tl
+ {
+ \g_projlib_language_settings_common_tl
+ \tl_gset:Nn \languagename { schinese }
+ \tl_gset:cn { abstractname } { 摘要 }
+ \tl_gset:cn { proofname } { 证明 }
+ \tl_gset:cn { contentsname } { 目录 }
+ \tl_gset:cn { listfigurename } { 插图 }
+ \tl_gset:cn { listtablename } { 表格 }
+ \tl_gset:cn { figurename } { 图 }
+ \tl_gset:cn { tablename } { 表 }
+ \tl_gset:cn { indexname } { 索引 }
+ \tl_gset:cn { appendixname } { 附录 }
+ \tl_gset:cn { refname } { 参考文献 }
+ \tl_gset:cn { bibname } { 参考文献 }
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_tchinese_tl
+ {
+ \g_projlib_language_settings_common_tl
+ \tl_gset:Nn \languagename { tchinese }
+ \tl_gset:cn { abstractname } { 摘要 }
+ \tl_gset:cn { proofname } { 證明 }
+ \tl_gset:cn { contentsname } { 目錄 }
+ \tl_gset:cn { listfigurename } { 插圖 }
+ \tl_gset:cn { listtablename } { 表格 }
+ \tl_gset:cn { figurename } { 圖 }
+ \tl_gset:cn { tablename } { 表 }
+ \tl_gset:cn { indexname } { 索引 }
+ \tl_gset:cn { appendixname } { 附錄 }
+ \tl_gset:cn { refname } { 參考文獻 }
+ \tl_gset:cn { bibname } { 參考文獻 }
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_japanese_tl
+ {
+ \selectlanguage { japanese }
+ \g_projlib_language_settings_common_tl
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_english_tl
+ {
+ \selectlanguage { english }
+ \g_projlib_language_settings_common_tl
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_french_tl
+ {
+ \selectlanguage { french }
+ \g_projlib_language_settings_common_tl
+ \tl_gset:cn { frenchpartname } { Partie }
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_ngerman_tl
+ {
+ \selectlanguage { ngerman }
+ \g_projlib_language_settings_common_tl
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_italian_tl
+ {
+ \selectlanguage { italian }
+ \g_projlib_language_settings_common_tl
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_portuguese_tl
+ {
+ \selectlanguage { portuguese }
+ \g_projlib_language_settings_common_tl
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_brazilian_tl
+ {
+ \selectlanguage { brazilian }
+ \g_projlib_language_settings_common_tl
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_spanish_tl
+ {
+ \selectlanguage { spanish }
+ \g_projlib_language_settings_common_tl
+ }
+
+\tl_gput_right:Nn \g_projlib_language_settings_russian_tl
+ {
+ \selectlanguage { russian }
+ \g_projlib_language_settings_common_tl
+ }
+
+\NewDocumentCommand \AddLanguageSetting { O{} m }
+ {
+ \tl_if_empty:nTF { #1 }
+ {
+ \tl_gput_right:Nn \g_projlib_language_settings_common_tl { #2 }
+ }
+ {
+ \tl_gput_right:cn { g_projlib_language_settings_ \projlib_language_str_to_languagename:n { #1 } _tl } { #2 }
+ }
+ }
+
+
+\RequirePackage { setspace }
+
+\tl_new:N \g_projlib_language_linespacing_latin_tl
+\tl_new:N \g_projlib_language_linespacing_cjk_tl
+
+\tl_gset:Nn \g_projlib_language_linespacing_latin_tl
+ {
+ \setstretch { 1.00 }
+ }
+\tl_gset:Nn \g_projlib_language_linespacing_cjk_tl
+ {
+ \onehalfspacing
+ }
+
+\cs_new:Nn \projlib_language_set_linespacing_latin:n
+ {
+ \tl_gset:Nn \g_projlib_language_linespacing_latin_tl { #1 }
+ }
+\cs_new:Nn \projlib_language_set_linespacing_cjk:n
+ {
+ \tl_gset:Nn \g_projlib_language_linespacing_cjk_tl { #1 }
+ }
+
+\tl_new:N \g_projlib_language_parindent_latin_tl
+\tl_new:N \g_projlib_language_parindent_cjk_tl
+
+\@ifclassloaded{beamer}
+ {
+ \tl_gset:Nn \g_projlib_language_parindent_latin_tl
+ {
+ \dim_set:Nn \parindent { 0em }
+ }
+ \tl_gset:Nn \g_projlib_language_parindent_cjk_tl
+ {
+ \dim_set:Nn \parindent { 0em }
+ }
+ }
+ {
+ \tl_gset:Nn \g_projlib_language_parindent_latin_tl
+ {
+ \dim_set:Nn \parindent { 1.5em }
+ }
+ \tl_gset:Nn \g_projlib_language_parindent_cjk_tl
+ {
+ \dim_set:Nn \parindent { 2em }
+ }
+ }
+
+\hook_gput_code:nnn { begindocument } { projlib-language }
+ {
+ \@ifpackageloaded{parskip}
+ {
+ \tl_gset:Nn \g_projlib_language_parindent_latin_tl
+ {
+ \dim_set:Nn \parindent { 0em }
+ }
+ \tl_gset:Nn \g_projlib_language_parindent_cjk_tl
+ {
+ \dim_set:Nn \parindent { 0em }
+ }
+ } {}
+ }
+
+\cs_new:Nn \projlib_language_set_parindent_latin:n
+ {
+ \tl_gset:Nn \g_projlib_language_parindent_latin_tl { #1 }
+ }
+\cs_new:Nn \projlib_language_set_parindent_cjk:n
+ {
+ \tl_gset:Nn \g_projlib_language_parindent_cjk_tl { #1 }
+ }
+
+\NewDocumentCommand \ProjLibLanguageSet { m m m }
+ % #1 = the thing to set
+ % #2 = language or type
+ % #3 = the setting
+ {
+ \use:c { projlib_language_set_ #1 _ #2 :n } { #3 }
+ }
+
+
+\cs_new:Nn \projlib_language_use_language_pure:n
+ {
+ \tl_use:c { g_projlib_language_settings_ \projlib_language_str_to_languagename:n { #1 } _tl }
+ }
+\cs_generate_variant:Nn \projlib_language_use_language_pure:n { e }
+
+\cs_new:Nn \projlib_language_use_language:n
+ {
+ \projlib_language_use_language_pure:n { #1 }
+ \tl_use:c { g_projlib_language_linespacing_ \projlib_language_str_to_languagetype:n { #1 } _tl }
+ \tl_use:c { g_projlib_language_parindent_ \projlib_language_str_to_languagetype:n { #1 } _tl }
+ }
+\cs_generate_variant:Nn \projlib_language_use_language:n { e }
+
+\NewDocumentCommand \UseLanguage { m }
+ {
+ \hook_gput_code:nnn { begindocument } { projlib-language }
+ {
+ \projlib_language_use_language:e { #1 }
+ }
+ }
+\NewDocumentCommand \UseOtherLanguage { m m }
+ {
+ \group_begin:
+ \projlib_language_use_language_pure:e { #1 }
+ #2
+ \group_end:
+ }
+
+\UseLanguage { \g__projlib_language_main_str }
+
+
+\cs_new:Nn \projlib_langauge_define_multilingual_text:Nn
+ { % #1 = command name (with backslash)
+ % #2 = key-value name configuration
+ \keyval_parse:nnn
+ {}
+ { \__projlib_langauge_define_multilingual_text_do:nnn { \cs_to_str:N #1 } }
+ { #2 }
+ \tl_gset:Nn #1
+ {
+ \tl_use:c { \cs_to_str:N #1 _projlib_language_text_ \languagename }
+ }
+ }
+\cs_generate_variant:Nn \projlib_langauge_define_multilingual_text:Nn { cn }
+
+\cs_new:Nn \__projlib_langauge_define_multilingual_text_do:nnn
+ { % #1 = command name
+ % #2 = language name
+ % #3 = the text
+ \exp_args:Ne \tl_gset:cn { #1 _projlib_language_text_ \projlib_language_str_to_languagename:n { #2 } } { #3 }
+ }
+
+\NewDocumentCommand \DefineMultilingualText { m m }
+ % #1 = command name
+ % #2 = key-value name configuration
+ {
+ \projlib_langauge_define_multilingual_text:Nn #1 { #2 }
+ }
+%</projlib-language>
+%
+%<*projlib-logo>
+\keys_define:nn { projlib-logo }
+ {
+ , draft .bool_set:N = \l__projlib_logo_fast_bool
+ , draft .initial:n = { false }
+ , fast .bool_set:N = \l__projlib_logo_fast_bool
+ , unknown .code:n = {}
+ }
+\ProcessKeysOptions { projlib-logo }
+
+\bool_if:NT \l__projlib_logo_fast_bool
+ {
+ \DeclareRobustCommand * \ProjLib
+ {
+ \group_begin:
+ \normalfont ProjLib
+ \group_end:
+ }
+ \endinput
+ }
+
+\cs_if_exist:cTF { fontspec }
+ {
+ \newfontface \__projlib_logo_font: { LinBiolinum_R.otf }
+ }
+ {
+ \RequirePackage [T1] { fontenc }
+ \cs_gset:Nn \__projlib_logo_font:
+ { \fontfamily { LinuxBiolinumT-TLF } \selectfont }
+ }
+
+\tl_new:N \g__projlib_logo_sigma_j_tl
+\tl_gset:Nn \g__projlib_logo_sigma_j_tl
+ {
+ \vbox:n
+ {
+ \offinterlineskip
+ \hbox_overlap_center:n
+ {
+ \skip_horizontal:n { 0.75ex }
+ \hbox_set:Nn \l_tmpa_box { \usefont{U}{zeur}{b}{n} \symbol{"06} }
+ \box_rotate:Nn \l_tmpa_box { -10 }
+ \box_scale:Nnn \l_tmpa_box {.4} {.4}
+ \box_use:N \l_tmpa_box
+ }
+ \skip_vertical:n { 0.15ex }
+ \hbox:n { \j }
+ }
+ }
+
+% \RequirePackage { xcolor }
+% \cs_new_protected:Nn \projlib_logo_generic:n
+% {
+% \group_begin:
+% \normalfont
+% \__projlib_logo_font:
+% \textcolor { blue!55!cyan } { P }
+% \textcolor { blue!45!cyan } { r }
+% \textcolor { blue!30!cyan } { o }
+% \textcolor { green!70!black!70 } { #1 }
+% \textcolor { red!20!yellow } { L }
+% \textcolor { red!40!yellow } { i }
+% \textcolor { red!55!yellow } { b }
+% \group_end:
+% }
+\cs_new_protected:Nn \projlib_logo_generic:n
+ {
+ \group_begin:
+ \normalfont
+ \__projlib_logo_font:
+ \color_group_begin:
+ \color_select:n { blue!60!cyan } { P }
+ \color_select:n { blue!45!cyan } { r }
+ \color_select:n { blue!30!cyan } { o }
+ \color_select:n { green!70!black!70 } { #1 }
+ \color_select:n { red!20!yellow } { L }
+ \color_select:n { red!40!yellow } { i }
+ \color_select:n { red!60!yellow } { b }
+ \color_group_end:
+ \group_end:
+ }
+
+\DeclareRobustCommand * \ProjLib
+ {
+ \projlib_logo_generic:n { \g__projlib_logo_sigma_j_tl }
+ }
+\DeclareRobustCommand * \ProjLibText
+ {
+ \projlib_logo_generic:n { j }
+ }
+%</projlib-logo>
+%
+%<*projlib-math>
+\keys_define:nn { projlib-math }
+ {
+ , unknown .code:n = {}
+ }
+\ProcessKeysOptions { projlib-math }
+
+\RequirePackage { mathtools }
+\RequirePackage { mathrsfs }
+\PassOptionsToPackage { warnings-off = { mathtools-colon, mathtools-overbracket } } { unicode-math }
+\@ifpackageloaded { unicode-math } {} { \RequirePackage { amssymb } }
+
+
+\msg_new:nnn { projlib-math }
+ { operator-not-define }
+ { The~math~operator~"\iow_char:N \\#1"~cannot~be~defined,~a~command~with~the~same~name~has~already~existed. }
+
+\keys_define:nn { projlib-math-operator }
+ {
+ , style .tl_set:N = \l__projlib_math_operator_style_tl
+ , unknown .code:n = {}
+ }
+
+\cs_new_protected:Nn \projlib_math_define_operator:nnn
+ % #1 = bool for star or empty
+ % #2 = list of operators
+ % #3 = the option
+ {
+ \tl_clear:N \l__projlib_math_operator_style_tl
+ \keys_set:nn { projlib-math-operator } { #3 }
+ \clist_map_inline:nn { #2 }
+ {
+ \str_if_in:nnTF { ##1 } { = }
+ {
+ \seq_set_split:Nnn \l_tmpa_seq { = } { ##1 }
+ \__projlib_math_define_operator:nee { #1 } { \seq_item:Nn \l_tmpa_seq { 1 } } { \seq_item:Nn \l_tmpa_seq { 2 } }
+ }
+ {
+ \__projlib_math_define_operator:nee { #1 } { ##1 } { ##1 }
+ }
+ }
+ }
+
+\cs_new_protected:Nn \__projlib_math_define_operator:nnn
+ % #1 = bool for star or empty
+ % #2 = the operator
+ % #3 = the content
+ {
+ \cs_if_exist:cTF { #2 }
+ {
+ \msg_warning:nnn { projlib-math } { operator-not-define } { #2 }
+ }
+ {
+ \bool_if:NTF #1
+ {
+ \exp_args:Nnf \use:n
+ { \exp_args:Nnc \use:n { \DeclareMathOperator* } { #2 } }
+ }
+ {
+ \exp_args:Nnf \use:n
+ { \exp_args:Nc \DeclareMathOperator { #2 } }
+ }
+ % This is the f-argument of \exp_args:Nnf :
+ {
+ \exp_args:NnV \use:nn
+ { \exp_stop_f: }
+ { \l__projlib_math_operator_style_tl } { #3 }
+ }
+ }
+ }
+\cs_generate_variant:Nn \__projlib_math_define_operator:nnn { nee }
+
+\NewDocumentCommand \DefineOperator { s O{} m O{} }
+ {
+ \tl_if_blank:nTF { #2 }
+ {
+ \projlib_math_define_operator:nnn { #1 } { #3 } { #4 }
+ }
+ {
+ \projlib_math_define_operator:nnn { #1 } { #3 } { #2 }
+ }
+ }
+
+
+\msg_new:nnn { projlib-math }
+ { shortcut-not-define }
+ { The~shortcut~"\iow_char:N \\#1"~cannot~be~defined,~a~command~with~the~same~name~has~already~existed. }
+
+\msg_new:nnn { projlib-math }
+ { shortcut-type-not-define }
+ { The~shortcut~type~"#1"~is~not~available,~a~command~with~the~same~name~has~already~existed. }
+
+\keys_define:nn { projlib-math-shortcut }
+ {
+ , prefix .clist_set:N = \l__projlib_math_shortcut_prefix_clist
+ , type .tl_set:N = \l__projlib_math_shortcut_type_tl
+ , style .tl_set:N = \l__projlib_math_shortcut_style_tl
+ , unknown .code:n = {}
+ }
+
+\cs_new_protected:Nn \projlib_math_define_shortcut:nnn
+ % #1 = bool for star or empty
+ % (currently the starred version is the same as normal version)
+ % #2 = list of shortcuts
+ % #3 = the option
+ {
+ \clist_clear:N \l__projlib_math_shortcut_prefix_clist
+ \tl_clear:N \l__projlib_math_shortcut_type_tl
+ \tl_clear:N \l__projlib_math_shortcut_style_tl
+ \keys_set:nn { projlib-math-shortcut } { #3 }
+ \tl_if_empty:NF \l__projlib_math_shortcut_type_tl
+ {
+ \cs_if_exist:cTF { \l__projlib_math_shortcut_type_tl }
+ {
+ \exp_args:Nne \use:n
+ { \msg_warning:nnn { projlib-math } { shortcut-type-not-define } }
+ { \l__projlib_math_shortcut_type_tl }
+ }
+ {
+ \exp_args:Nno \use:n
+ {
+ \exp_args:Nc \NewDocumentCommand { \l__projlib_math_shortcut_type_tl } { m }
+ }
+ {
+ \l__projlib_math_shortcut_style_tl { ##1 }
+ }
+ }
+ }
+ \clist_map_inline:nn { #2 }
+ {
+ \str_if_in:nnTF { ##1 } { = }
+ {
+ \seq_set_split:Nnn \l_tmpa_seq { = } { ##1 }
+ \clist_if_empty:NTF \l__projlib_math_shortcut_prefix_clist
+ {
+ \__projlib_math_define_shortcut:ee { \seq_item:Nn \l_tmpa_seq { 1 } } { \seq_item:Nn \l_tmpa_seq { 2 } }
+ }
+ {
+ \clist_map_inline:Nn \l__projlib_math_shortcut_prefix_clist
+ {
+ \__projlib_math_define_shortcut:ee { ####1 \seq_item:Nn \l_tmpa_seq { 1 } } { \seq_item:Nn \l_tmpa_seq { 2 } }
+ }
+ }
+ }
+ {
+ \clist_if_empty:NTF \l__projlib_math_shortcut_prefix_clist
+ {
+ \__projlib_math_define_shortcut:ee { ##1 } { ##1 }
+ }
+ {
+ \clist_map_inline:Nn \l__projlib_math_shortcut_prefix_clist
+ {
+ \__projlib_math_define_shortcut:ee { ####1 ##1 } { ##1 }
+ }
+ }
+ }
+ }
+ }
+
+\cs_new_protected:Nn \__projlib_math_define_shortcut:nn
+ % #1 = command name
+ % #2 = the content
+ {
+ \cs_if_exist:cTF { #1 }
+ {
+ \msg_warning:nnn { projlib-math } { shortcut-type-not-define } { #1 }
+ }
+ {
+ \exp_args:Nno \use:n
+ { \exp_args:Nc \NewDocumentCommand { #1 } {} }
+ { \l__projlib_math_shortcut_style_tl { #2 } }
+ }
+ }
+\cs_generate_variant:Nn \__projlib_math_define_shortcut:nn { ee }
+
+\NewDocumentCommand \DefineShortcut { s O{} m O{} }
+ {
+ \tl_if_blank:nTF { #2 }
+ {
+ \projlib_math_define_shortcut:nnn { #1 } { #3 } { #4 }
+ }
+ {
+ \projlib_math_define_shortcut:nnn { #1 } { #3 } { #2 }
+ }
+ }
+%</projlib-math>
+%
+%<*projlib-paper>
+\keys_define:nn { projlib-paper }
+ {
+ , preview-mode .bool_set:N = \l__projlib_paper_preview_bool
+ , preview-mode .initial:n = { false }
+ , paper-style .tl_set:N = \l__projlib_paper_paperstyle_tl
+ , paper-style .initial:n = { normal }
+ , paper-style .value_required:n = true
+ , paper~style .tl_set:N = \l__projlib_paper_paperstyle_tl
+ , paper style .tl_set:N = \l__projlib_paper_paperstyle_tl
+ , yellow-paper .meta:n = { paperstyle = yellow }
+ , yellow~paper .meta:n = { paperstyle = yellow }
+ , yellow paper .meta:n = { paperstyle = yellow }
+ , parchment-paper .meta:n = { paperstyle = parchment }
+ , parchment~paper .meta:n = { paperstyle = parchment }
+ , parchment paper .meta:n = { paperstyle = parchment }
+ , green-paper .meta:n = { paperstyle = green }
+ , green~paper .meta:n = { paperstyle = green }
+ , green paper .meta:n = { paperstyle = green }
+ , light-gray-paper .meta:n = { paperstyle = lightgray }
+ , light~gray~paper .meta:n = { paperstyle = lightgray }
+ , light gray-paper .meta:n = { paperstyle = lightgray }
+ , light gray~paper .meta:n = { paperstyle = lightgray }
+ , light gray paper .meta:n = { paperstyle = lightgray }
+ , gray-paper .meta:n = { paperstyle = gray }
+ , gray~paper .meta:n = { paperstyle = gray }
+ , gray paper .meta:n = { paperstyle = gray }
+ , nord-paper .meta:n = { paperstyle = nord }
+ , nord~paper .meta:n = { paperstyle = nord }
+ , nord paper .meta:n = { paperstyle = nord }
+ , dark-paper .meta:n = { paperstyle = dark }
+ , dark~paper .meta:n = { paperstyle = dark }
+ , dark paper .meta:n = { paperstyle = dark }
+ , unknown .code:n = {}
+ }
+\ProcessKeysOptions { projlib-paper }
+
+\cs_new:Nn \projlib_paper_preview_disable:
+ {
+ \bool_set_false:c { l__projlib_paper_preview_bool }
+ }
+
+\hook_gput_code:nnn { begindocument/before } { projlib-paper }
+ {
+ \bool_if:NT \l__projlib_paper_preview_bool
+ {
+ \dim_set:Nn \paperwidth
+ {
+ \dim_eval:n { \textwidth * 21 / 20 }
+ }
+ \dim_set:Nn \paperheight
+ {
+ \dim_eval:n { ( \textheight + \headheight + \headsep + \footskip ) * 21 / 20 }
+ }
+ \dim_set:Nn \oddsidemargin
+ {
+ \dim_eval:n { ( \paperwidth - \textwidth ) / 2 - 1in }
+ }
+ \dim_set:Nn \evensidemargin
+ {
+ \dim_eval:n { ( \paperwidth - \textwidth ) / 2 - 1in }
+ }
+ \dim_set:Nn \topmargin
+ {
+ \dim_eval:n { ( \paperheight - \textheight - \headheight - \headsep - \footskip ) / 2 - 1in }
+ }
+ }
+ }
+
+\RequirePackage { xcolor }
+
+\definecolor { paper } { RGB } { 255, 255, 255 }
+\definecolor { main-text } { RGB } { 0, 0, 0 }
+
+\str_case_e:nn { \l__projlib_paper_paperstyle_tl }
+ {
+ { yellow } { \definecolor { paper } { RGB } { 247, 246, 233 } }
+ { parchment } { \definecolor { paper } { RGB } { 224, 204, 160 } }
+ { green } { \definecolor { paper } { RGB } { 207, 231, 207 } }
+ { lightgray } { \definecolor { paper } { RGB } { 236, 239, 244 }
+ \definecolor { main-text } { RGB } { 37, 41, 46 } }
+ { light-gray } { \definecolor { paper } { RGB } { 236, 239, 244 }
+ \definecolor { main-text } { RGB } { 37, 41, 46 } }
+ { gray } { \definecolor { paper } { RGB } { 127, 130, 136 }
+ \definecolor { main-text } { RGB } { 236, 239, 244 } }
+ { nord } { \definecolor { paper } { RGB } { 46, 52, 64 }
+ \definecolor { main-text } { RGB } { 214, 220, 230 } }
+ { dark } { \definecolor { paper } { RGB } { 28, 29, 33 }
+ \definecolor { main-text } { RGB } { 210, 213, 217 } }
+ }
+
+\cs_new:Nn \projlib_paper_set_page_color:n
+ {
+ \pagecolor { #1 }
+ }
+\cs_new:Nn \projlib_paper_set_text_color:n
+ {
+ \color { #1 }
+ \cs_gset_eq:cc { default@color } { current@color }
+ }
+
+\projlib_paper_set_page_color:n { paper }
+\projlib_paper_set_text_color:n { main-text }
+
+\hook_gput_code:nnn { begindocument/before } { projlib-paper }
+ {
+ \cs_if_exist:NT \tcbset
+ { \tcbset { colupper = main-text, collower = main-text } }
+ }
+%</projlib-paper>
+%
+%<*projlib-theorem>
+\keys_define:nn { projlib-theorem }
+ {
+ , no-theorems .bool_set:N = \l__projlib_theorem_no_theorems_bool
+ , no-theorems .initial:n = { false }
+ , no~theorems .bool_set:N = \l__projlib_theorem_no_theorems_bool
+ , no theorems .bool_set:N = \l__projlib_theorem_no_theorems_bool
+ , nothms .bool_set:N = \l__projlib_theorem_no_theorems_bool
+ , no-theorem-numbering .bool_set:N = \l__projlib_theorem_no_theorem_numbering_bool
+ , no-theorem-numbering .initial:n = { false }
+ , no~theorem~numbering .bool_set:N = \l__projlib_theorem_no_theorem_numbering_bool
+ , no theorem numbering .bool_set:N = \l__projlib_theorem_no_theorem_numbering_bool
+ , nothmnum .bool_set:N = \l__projlib_theorem_no_theorem_numbering_bool
+ , theorem-numbering .tl_set:N = \l__projlib_theorem_theorem_numbering_tl
+ , theorem-numbering .default:n = { * }
+ , theorem~numbering .tl_set:N = \l__projlib_theorem_theorem_numbering_tl
+ , theorem~numbering .default:n = { * }
+ , theorem numbering .tl_set:N = \l__projlib_theorem_theorem_numbering_tl
+ , theorem numbering .default:n = { * }
+ , thmnum .tl_set:N = \l__projlib_theorem_theorem_numbering_tl
+ , thmnum .default:n = { * }
+ , complex-name .bool_set:N = \l__projlib_theorem_complexname_bool
+ , complex-name .initial:n = { true }
+ , complex~name .bool_set:N = \l__projlib_theorem_complexname_bool
+ , complex name .bool_set:N = \l__projlib_theorem_complexname_bool
+ , simple-name .bool_set_inverse:N = \l__projlib_theorem_complexname_bool
+ , simple~name .bool_set_inverse:N = \l__projlib_theorem_complexname_bool
+ , simple name .bool_set_inverse:N = \l__projlib_theorem_complexname_bool
+ , no-preset-names .bool_set_inverse:N = \l__projlib_theorem_presetname_bool
+ , no-preset-names .initial:n = { false }
+ , no~preset~names .bool_set_inverse:N = \l__projlib_theorem_presetname_bool
+ , no preset names .bool_set_inverse:N = \l__projlib_theorem_presetname_bool
+ , unknown .code:n = { \PassOptionsToPackage { \CurrentOption } { create-theorem } }
+ }
+\ProcessKeysOptions { projlib-theorem }
+
+\clist_const:Nn \c_projlib_theorem_supported_clist
+ {
+ assertion ,
+ assumption ,
+ axiom ,
+ conclusion ,
+ conjecture ,
+ convention ,
+ corollary ,
+ definition ,
+ example ,
+ exercise ,
+ fact ,
+ hypothesis ,
+ lemma ,
+ notation ,
+ observation ,
+ postulate ,
+ problem ,
+ property ,
+ proposition ,
+ question ,
+ remark ,
+ theorem ,
+ definition-proposition ,
+ definition-theorem ,
+ }
+
+\@ifclassloaded { beamer }
+ {
+ \RequirePackage { silence }
+ \WarningFilter { cleveref } { hyperref~package~loaded~with~implicit=false~option }
+ \bool_set_true:N \l__projlib_theorem_no_theorem_numbering_bool
+ \bool_if:NF \l__projlib_theorem_no_theorems_bool
+ {
+ \cs_undefine:c { theorem }
+ \cs_undefine:c { lemma }
+ \cs_undefine:c { corollary }
+ \cs_undefine:c { definition }
+ \cs_undefine:c { fact }
+ \cs_undefine:c { example }
+ \cs_undefine:c { problem }
+ }
+ } {}
+
+\RequirePackage { projlib-language }
+
+% \bool_if:NF \l__projlib_theorem_complexname_bool
+% {
+% \PassOptionsToPackage { no preset names } { create-theorem }
+% }
+
+\RequirePackage { amsthm }
+\RequirePackage { create-theorem }
+
+
+\bool_if:NF \l__projlib_theorem_no_theorems_bool
+ {
+ \bool_if:NTF \l__projlib_theorem_no_theorem_numbering_bool
+ {
+ \exp_args:Nv \CreateTheorem { c_projlib_theorem_supported_clist } { numberless }
+ }
+ {
+ \tl_if_blank:eTF \l__projlib_theorem_theorem_numbering_tl
+ {
+ \cs_if_exist:cTF { c@chapter }
+ { % with \chapter
+ \CreateTheorem {theorem} { parent counter = chapter }
+ }
+ { % without \chapter
+ \CreateTheorem {theorem} { parent counter = section }
+ }
+ }
+ {
+ \tl_if_eq:NnTF \l__projlib_theorem_theorem_numbering_tl { * }
+ {
+ \CreateTheorem {theorem} { }
+ }
+ {
+ \CreateTheorem {theorem} { parent counter = \l__projlib_theorem_theorem_numbering_tl }
+ }
+ }
+
+ \exp_args:Nv \CreateTheorem { c_projlib_theorem_supported_clist } { shared counter = theorem, quiet }
+ }
+ }
+
+
+\AddLanguageSetting [ schinese ]
+ {
+ \crefname { equation } { 式 } { 式 }
+ \crefname { figure } { 图 } { 图 }
+ \crefname { table } { 表 } { 表 }
+ \crefname { appendix } { 附录 } { 附录 }
+ \Crefname { equation } { 式 } { 式 }
+ \Crefname { figure } { 图 } { 图 }
+ \Crefname { table } { 表 } { 表 }
+ \Crefname { appendix } { 附录 } { 附录 }
+ \tl_gset:Nn { \crefpairconjunction } { 、 }
+ \tl_gset:Nn { \crefmiddleconjunction } { 、 }
+ \tl_gset:Nn { \creflastconjunction } { \nobreakspace 和 \nobreakspace }
+ \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace 和 \nobreakspace }
+ \tl_gset:Nn { \crefmiddlegroupconjunction } { 、 }
+ \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace 以及 \nobreakspace }
+ \tl_gset:Nn { \crefrangeconjunction } { ~ }
+ }
+
+\AddLanguageSetting [ tchinese ]
+ {
+ \crefname { equation } { 式 } { 式 }
+ \crefname { figure } { 圖 } { 圖 }
+ \crefname { table } { 表 } { 表 }
+ \crefname { appendix } { 附錄 } { 附錄 }
+ \Crefname { equation } { 式 } { 式 }
+ \Crefname { figure } { 圖 } { 圖 }
+ \Crefname { table } { 表 } { 表 }
+ \Crefname { appendix } { 附錄 } { 附錄 }
+ \tl_gset:Nn { \crefpairconjunction } { 、 }
+ \tl_gset:Nn { \crefmiddleconjunction } { 、 }
+ \tl_gset:Nn { \creflastconjunction } { \nobreakspace 與 \nobreakspace }
+ \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace 與 \nobreakspace }
+ \tl_gset:Nn { \crefmiddlegroupconjunction } { 、 }
+ \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace 以及 \nobreakspace }
+ \tl_gset:Nn { \crefrangeconjunction } { ~ }
+ }
+
+\AddLanguageSetting [ japanese ]
+ {
+ \crefname { equation } { 式 } { 式 }
+ \crefname { figure } { 図 } { 図 }
+ \crefname { table } { 表 } { 表 }
+ \Crefname { appendix } { 付録 } { 付録 }
+ \Crefname { equation } { 式 } { 式 }
+ \Crefname { figure } { 図 } { 図 }
+ \Crefname { table } { 表 } { 表 }
+ \Crefname { appendix } { 付録 } { 付録 }
+ \tl_gset:Nn { \crefpairconjunction } { \nobreakspace と \nobreakspace }
+ \tl_gset:Nn { \crefmiddleconjunction } { \nobreakspace と \nobreakspace }
+ \tl_gset:Nn { \creflastconjunction } { \nobreakspace と \nobreakspace }
+ \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace と \nobreakspace }
+ \tl_gset:Nn { \crefmiddlegroupconjunction } { \nobreakspace と \nobreakspace }
+ \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace 及び \nobreakspace }
+ \tl_gset:Nn { \crefrangeconjunction } { ~ }
+ }
+
+\AddLanguageSetting [ russian ]
+ {
+ \crefname { equation } { уравнение } { уравнения }
+ \crefname { figure } { рис. } { рис. }
+ \crefname { table } { таблица } { таблицы }
+ \crefname { appendix } { приложение } { приложения }
+ \Crefname { equation } { Уравнение } { Уравнения }
+ \Crefname { figure } { Рис. } { Рис. }
+ \Crefname { table } { Таблица } { Таблицы }
+ \Crefname { appendix } { Приложение } { Приложения }
+ \tl_gset:Nn { \crefpairconjunction } { \nobreakspace и \nobreakspace }
+ \tl_gset:Nn { \crefmiddleconjunction } { , \nobreakspace }
+ \tl_gset:Nn { \creflastconjunction } { \nobreakspace и \nobreakspace }
+ \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace и \nobreakspace }
+ \tl_gset:Nn { \crefmiddlegroupconjunction } { , \nobreakspace }
+ \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace и \nobreakspace }
+ \tl_gset:Nn { \crefrangeconjunction } { \nobreakspace \textasciitilde \nobreakspace }
+ }
+
+\AddLanguageSetting [ portuguese ]
+ {
+ \crefname { equation } { eq. } { eqs. }
+ \crefname { figure } { fig. } { figs. }
+ \crefname { table } { tabela } { tabelas }
+ \crefname { appendix } { apêndice } { apêndices }
+ \Crefname { equation } { Eq. } { Eqs. }
+ \Crefname { figure } { Fig. } { Figs. }
+ \Crefname { table } { Tabela } { Tabelas }
+ \Crefname { appendix } { Apêndice } { Apêndices }
+ \tl_gset:Nn { \crefpairconjunction } { \nobreakspace e \nobreakspace }
+ \tl_gset:Nn { \crefmiddleconjunction } { , \nobreakspace }
+ \tl_gset:Nn { \creflastconjunction } { \nobreakspace e \nobreakspace }
+ \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace e \nobreakspace }
+ \tl_gset:Nn { \crefmiddlegroupconjunction } { , \nobreakspace }
+ \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace e \nobreakspace }
+ \tl_gset:Nn { \crefrangeconjunction } { \nobreakspace a \nobreakspace }
+ }
+
+
+\bool_if:NF \l__projlib_theorem_presetname_bool { \endinput }
+\bool_if:NT \l__projlib_theorem_complexname_bool { \endinput }
+
+
+\NameTheorem { assertion }
+ {
+ , heading = {
+ , english = Assertion
+ , french = Assertion
+ , ngerman = Behauptung
+ , italian = Asserzione
+ , portuguese = Asserção
+ , brazilian = Asserção
+ , spanish = Aserción
+ , schinese = 断言
+ , tchinese = 斷言
+ , japanese = アサーション
+ , russian = Утверждение
+ }
+ , crefname = {
+ , english = {Assertion}{Assertion}
+ , french = [l']{Assertion}[les]{Assertion}
+ , ngerman = {Behauptung}{Behauptung}
+ , italian = [l']{Asserzione}[le]{Asserzione}
+ , portuguese = [a]{Asserção}[as]{Asserção}
+ , brazilian = [a]{Asserção}[as]{Asserção}
+ , spanish = [la]{Aserción}[las]{Aserción}
+ , schinese = {断言}{断言}
+ , tchinese = {斷言}{斷言}
+ , japanese = {アサーション}{アサーション}
+ , russian = {Утверждение}{Утверждение}
+ }
+ , Crefname = {
+ , english = {Assertion}{Assertion}
+ , french = [L']{Assertion}[Les]{Assertion}
+ , ngerman = {Behauptung}{Behauptung}
+ , italian = [L']{Asserzione}[Le]{Asserzione}
+ , portuguese = [A]{Asserção}[As]{Asserção}
+ , brazilian = [A]{Asserção}[As]{Asserção}
+ , spanish = [La]{Aserción}[Las]{Aserción}
+ , schinese = {断言}{断言}
+ , tchinese = {斷言}{斷言}
+ , japanese = {アサーション}{アサーション}
+ , russian = {Утверждение}{Утверждение}
+ }
+ }
+
+\NameTheorem { assumption }
+ {
+ , heading = {
+ , english = Assumption
+ , french = Supposition
+ , ngerman = Annahme
+ , italian = Supposizione
+ , portuguese = Suposição
+ , brazilian = Suposição
+ , spanish = Suposición
+ , schinese = 假定
+ , tchinese = 假定
+ , japanese = 仮定
+ , russian = Предположение
+ }
+ , crefname = {
+ , english = {Assumption}{Assumption}
+ , french = [la]{Supposition}[les]{Supposition}
+ , ngerman = {Annahme}{Annahme}
+ , italian = [la]{Supposizione}[le]{Supposizione}
+ , portuguese = [a]{Suposição}[as]{Suposição}
+ , brazilian = [a]{Suposição}[as]{Suposição}
+ , spanish = [la]{Suposición}[las]{Suposición}
+ , schinese = {假定}{假定}
+ , tchinese = {假定}{假定}
+ , japanese = {仮定}{仮定}
+ , russian = {Предположение}{Предположение}
+ }
+ , Crefname = {
+ , english = {Assumption}{Assumption}
+ , french = [La]{Supposition}[Les]{Supposition}
+ , ngerman = {Annahme}{Annahme}
+ , italian = [la]{Supposizione}[le]{Supposizione}
+ , portuguese = [A]{Suposição}[As]{Suposição}
+ , brazilian = [A]{Suposição}[As]{Suposição}
+ , spanish = [La]{Suposición}[Las]{Suposición}
+ , schinese = {假定}{假定}
+ , tchinese = {假定}{假定}
+ , japanese = {仮定}{仮定}
+ , russian = {Предположение}{Предположение}
+ }
+ }
+
+\NameTheorem { axiom }
+ {
+ , heading = {
+ , english = Axiom
+ , french = Axiome
+ , ngerman = Axiom
+ , italian = Assioma
+ , portuguese = Axioma
+ , brazilian = Axioma
+ , spanish = Axioma
+ , schinese = 公理
+ , tchinese = 公理
+ , japanese = 公理
+ , russian = Аксиома
+ }
+ , crefname = {
+ , english = {Axiom}{Axiom}
+ , french = [l']{Axiome}[les]{Axiome}
+ , ngerman = {Axiom}{Axiom}
+ , italian = [l']{Assioma}[gli]{Assioma}
+ , portuguese = [o]{Axioma}[os]{Axioma}
+ , brazilian = [o]{Axioma}[os]{Axioma}
+ , spanish = [el]{Axioma}[los]{Axioma}
+ , schinese = {公理}{公理}
+ , tchinese = {公理}{公理}
+ , japanese = {公理}{公理}
+ , russian = {Аксиома}{Аксиома}
+ }
+ , Crefname = {
+ , english = {Axiom}{Axiom}
+ , french = [L']{Axiome}[Les]{Axiome}
+ , ngerman = {Axiom}{Axiom}
+ , italian = [L']{Assioma}[Gli]{Assioma}
+ , portuguese = [O]{Axioma}[Os]{Axioma}
+ , brazilian = [O]{Axioma}[Os]{Axioma}
+ , spanish = [El]{Axioma}[Los]{Axioma}
+ , schinese = {公理}{公理}
+ , tchinese = {公理}{公理}
+ , japanese = {公理}{公理}
+ , russian = {Аксиома}{Аксиома}
+ }
+ }
+
+\NameTheorem { conclusion }
+ {
+ , heading = {
+ , english = Conclusion
+ , french = Conclusion
+ , ngerman = Schlussfolgerung
+ , italian = Conclusione
+ , portuguese = Conclusão
+ , brazilian = Conclusão
+ , spanish = Conclusión
+ , schinese = 结论
+ , tchinese = 結論
+ , japanese = 結論
+ , russian = Вывод
+ }
+ , crefname = {
+ , english = {Conclusion}{Conclusion}
+ , french = [la]{Conclusion}[Les]{Conclusion}
+ , ngerman = {Schlussfolgerung}{Schlussfolgerung}
+ , italian = [la]{Conclusione}[le]{Conclusione}
+ , portuguese = [a]{Conclusão}[as]{Conclusão}
+ , brazilian = [a]{Conclusão}[as]{Conclusão}
+ , spanish = [la]{Conclusión}[las]{Conclusión}
+ , schinese = {结论}{结论}
+ , tchinese = {結論}{結論}
+ , japanese = {結論}{結論}
+ , russian = {Вывод}{Вывод}
+ }
+ , Crefname = {
+ , english = {Conclusion}{Conclusion}
+ , french = [La]{Conclusion}[Les]{Conclusion}
+ , ngerman = {Schlussfolgerung}{Schlussfolgerung}
+ , italian = [La]{Conclusione}[Le]{Conclusione}
+ , portuguese = [A]{Conclusão}[As]{Conclusão}
+ , brazilian = [A]{Conclusão}[As]{Conclusão}
+ , spanish = [La]{Conclusión}[Las]{Conclusión}
+ , schinese = {结论}{结论}
+ , tchinese = {結論}{結論}
+ , japanese = {結論}{結論}
+ , russian = {Вывод}{Вывод}
+ }
+ }
+
+\NameTheorem { conjecture }
+ {
+ , heading = {
+ , english = Conjecture
+ , french = Conjecture
+ , ngerman = Vermutung
+ , italian = Congettura
+ , portuguese = Conjetura
+ , brazilian = Conjectura
+ , spanish = Conjetura
+ , schinese = 猜想
+ , tchinese = 猜想
+ , japanese = 予想
+ , russian = Гипотеза
+ }
+ , crefname = {
+ , english = {Conjecture}{Conjecture}
+ , french = [la]{Conjecture}[les]{Conjecture}
+ , ngerman = {Vermutung}{Vermutung}
+ , italian = [la]{Congettura}[le]{Congettura}
+ , portuguese = [a]{Conjetura}[as]{Conjetura}
+ , brazilian = [a]{Conjectura}[as]{Conjectura}
+ , spanish = [la]{Conjetura}[las]{Conjetura}
+ , schinese = {猜想}{猜想}
+ , tchinese = {猜想}{猜想}
+ , japanese = {予想}{予想}
+ , russian = {Гипотеза}{Гипотеза}
+ }
+ , Crefname = {
+ , english = {Conjecture}{Conjecture}
+ , french = [La]{Conjecture}[Les]{Conjecture}
+ , ngerman = {Vermutung}{Vermutung}
+ , italian = [La]{Congettura}[Le]{Congettura}
+ , portuguese = [A]{Conjetura}[As]{Conjetura}
+ , brazilian = [A]{Conjectura}[As]{Conjectura}
+ , spanish = [La]{Conjetura}[Las]{Conjetura}
+ , schinese = {猜想}{猜想}
+ , tchinese = {猜想}{猜想}
+ , japanese = {予想}{予想}
+ , russian = {Гипотеза}{Гипотеза}
+ }
+ }
+
+\NameTheorem { convention }
+ {
+ , heading = {
+ , english = Convention
+ , french = Convention
+ , ngerman = Konvention
+ , italian = Convenzione
+ , portuguese = Convenção
+ , brazilian = Convenção
+ , spanish = Convención
+ , schinese = 约定
+ , tchinese = 約定
+ , japanese = 慣例
+ , russian = Конвенция
+ }
+ , crefname = {
+ , english = {Convention}{Convention}
+ , french = [la]{Convention}[les]{Convention}
+ , ngerman = {Konvention}{Konvention}
+ , italian = [la]{Convenzione}[le]{Convenzione}
+ , portuguese = [a]{Convenção}[as]{Convenção}
+ , brazilian = [a]{Convenção}[as]{Convenção}
+ , spanish = [la]{Convención}[las]{Convención}
+ , schinese = {约定}{约定}
+ , tchinese = {約定}{約定}
+ , japanese = {慣例}{慣例}
+ , russian = {Конвенция}{Конвенция}
+ }
+ , Crefname = {
+ , english = {Convention}{Convention}
+ , french = [La]{Convention}[Les]{Convention}
+ , ngerman = {Konvention}{Konvention}
+ , italian = [La]{Convenzione}[Le]{Convenzione}
+ , portuguese = [A]{Convenção}[As]{Convenção}
+ , brazilian = [A]{Convenção}[As]{Convenção}
+ , spanish = [La]{Convención}[Las]{Convención}
+ , schinese = {约定}{约定}
+ , tchinese = {約定}{約定}
+ , japanese = {慣例}{慣例}
+ , russian = {Конвенция}{Конвенция}
+ }
+ }
+
+\NameTheorem { corollary }
+ {
+ , heading = {
+ , english = Corollary
+ , french = Corollaire
+ , ngerman = Korollar
+ , italian = Corollario
+ , portuguese = Corolário
+ , brazilian = Corolário
+ , spanish = Corolario
+ , schinese = 推论
+ , tchinese = 推論
+ , japanese = 系
+ , russian = Следствие
+ }
+ , crefname = {
+ , english = {Corollary}{Corollary}
+ , french = [le]{Corollaire}[les]{Corollaire}
+ , ngerman = {Korollar}{Korollar}
+ , italian = [il]{Corollario}[i]{Corollario}
+ , portuguese = [o]{Corolário}[os]{Corolário}
+ , brazilian = [o]{Corolário}[os]{Corolário}
+ , spanish = [el]{Corolario}[los]{Corolario}
+ , schinese = {推论}{推论}
+ , tchinese = {推論}{推論}
+ , japanese = {系}{系}
+ , russian = {Следствие}{Следствие}
+ }
+ , Crefname = {
+ , english = {Corollary}{Corollary}
+ , french = [Le]{Corollaire}[Les]{Corollaire}
+ , ngerman = {Korollar}{Korollar}
+ , italian = [Il]{Corollario}[I]{Corollario}
+ , portuguese = [O]{Corolário}[Os]{Corolário}
+ , brazilian = [O]{Corolário}[Os]{Corolário}
+ , spanish = [El]{Corolario}[Los]{Corolario}
+ , schinese = {推论}{推论}
+ , tchinese = {推論}{推論}
+ , japanese = {系}{系}
+ , russian = {Следствие}{Следствие}
+ }
+ }
+
+\NameTheorem { definition }
+ {
+ , heading = {
+ , english = Definition
+ , french = Définition
+ , ngerman = Definition
+ , italian = Definizione
+ , portuguese = Definição
+ , brazilian = Definição
+ , spanish = Definición
+ , schinese = 定义
+ , tchinese = 定義
+ , japanese = 定義
+ , russian = Определение
+ }
+ , crefname = {
+ , english = {Definition}{Definition}
+ , french = [la]{Définition}[les]{Définition}
+ , ngerman = {Definition}{Definition}
+ , italian = [la]{Definizione}[le]{Definizione}
+ , portuguese = [a]{Definição}[as]{Definição}
+ , brazilian = [a]{Definição}[as]{Definição}
+ , spanish = [la]{Definición}[las]{Definición}
+ , schinese = {定义}{定义}
+ , tchinese = {定義}{定義}
+ , japanese = {定義}{定義}
+ , russian = {Определение}{Определение}
+ }
+ , Crefname = {
+ , english = {Definition}{Definition}
+ , french = [La]{Définition}[Les]{Définition}
+ , ngerman = {Definition}{Definition}
+ , italian = [La]{Definizione}[Le]{Definizione}
+ , portuguese = [A]{Definição}[As]{Definição}
+ , brazilian = [A]{Definição}[As]{Definição}
+ , spanish = [La]{Definición}[Las]{Definición}
+ , schinese = {定义}{定义}
+ , tchinese = {定義}{定義}
+ , japanese = {定義}{定義}
+ , russian = {Определение}{Определение}
+ }
+ }
+
+\NameTheorem { example }
+ {
+ , heading = {
+ , english = Example
+ , french = Exemple
+ , ngerman = Beispiel
+ , italian = Esempio
+ , portuguese = Exemplo
+ , brazilian = Exemplo
+ , spanish = Ejemplo
+ , schinese = 例
+ , tchinese = 例
+ , japanese = 例
+ , russian = Пример
+ }
+ , crefname = {
+ , english = {Example}{Example}
+ , french = [l']{Example}[les]{Example}
+ , ngerman = {Beispiel}{Beispiel}
+ , italian = [l']{Esempio}[gli]{Esempio}
+ , portuguese = [o]{Exemplo}[os]{Exemplo}
+ , brazilian = [o]{Exemplo}[os]{Exemplo}
+ , spanish = [el]{Ejemplo}[los]{Ejemplo}
+ , schinese = {例}{例}
+ , tchinese = {例}{例}
+ , japanese = {例}{例}
+ , russian = {Пример}{Пример}
+ }
+ , Crefname = {
+ , english = {Example}{Example}
+ , french = [L']{Example}[Les]{Example}
+ , ngerman = {Beispiel}{Beispiel}
+ , italian = [L']{Esempio}[Gli]{Esempio}
+ , portuguese = [O]{Exemplo}[Os]{Exemplo}
+ , brazilian = [O]{Exemplo}[Os]{Exemplo}
+ , spanish = [El]{Ejemplo}[Los]{Ejemplo}
+ , schinese = {例}{例}
+ , tchinese = {例}{例}
+ , japanese = {例}{例}
+ , russian = {Пример}{Пример}
+ }
+ }
+
+\NameTheorem { exercise }
+ {
+ , heading = {
+ , english = Exercise
+ , french = Exercice
+ , ngerman = Übung
+ , italian = Esercizio
+ , portuguese = Exercício
+ , brazilian = Exercício
+ , spanish = Ejercicio
+ , schinese = 练习
+ , tchinese = 練習
+ , japanese = 練習
+ , russian = Упражнение
+ }
+ , crefname = {
+ , english = {Exercise}{Exercise}
+ , french = [l']{Exercice}[les]{Exercice}
+ , ngerman = {Übung}{Übung}
+ , italian = [l']{Esercizio}[gli]{Esercizio}
+ , portuguese = [o]{Exercício}[os]{Exercício}
+ , brazilian = [o]{Exercício}[os]{Exercício}
+ , spanish = [el]{Ejercicio}[los]{Ejercicio}
+ , schinese = {练习}{练习}
+ , tchinese = {練習}{練習}
+ , japanese = {練習}{練習}
+ , russian = {Упражнение}{Упражнение}
+ }
+ , Crefname = {
+ , english = {Exercise}{Exercise}
+ , french = [L']{Exercice}[Les]{Exercice}
+ , ngerman = {Übung}{Übung}
+ , italian = [L']{Esercizio}[Gli]{Esercizio}
+ , portuguese = [O]{Exercício}[Os]{Exercício}
+ , brazilian = [O]{Exercício}[Os]{Exercício}
+ , spanish = [El]{Ejercicio}[Los]{Ejercicio}
+ , schinese = {练习}{练习}
+ , tchinese = {練習}{練習}
+ , japanese = {練習}{練習}
+ , russian = {Упражнение}{Упражнение}
+ }
+ }
+
+\NameTheorem { fact }
+ {
+ , heading = {
+ , english = Fact
+ , french = Fait
+ , ngerman = Fakt
+ , italian = Fatto
+ , portuguese = Facto
+ , brazilian = Fato
+ , spanish = Hecho
+ , schinese = 事实
+ , tchinese = 事實
+ , japanese = 事実
+ , russian = Факт
+ }
+ , crefname = {
+ , english = {Fact}{Fact}
+ , french = [le]{Fait}[les]{Fait}
+ , ngerman = {Fakt}{Fakt}
+ , italian = [il]{Fatto}[i]{Fatto}
+ , portuguese = [o]{Facto}[os]{Facto}
+ , brazilian = [o]{Fato}[os]{Fato}
+ , spanish = [el]{Hecho}[los]{Hecho}
+ , schinese = {事实}{事实}
+ , tchinese = {事實}{事實}
+ , japanese = {事実}{事実}
+ , russian = {Факт}{Факт}
+ }
+ , Crefname = {
+ , english = {Fact}{Fact}
+ , french = [Le]{Fait}[Les]{Fait}
+ , ngerman = {Fakt}{Fakt}
+ , italian = [Il]{Fatto}[I]{Fatto}
+ , portuguese = [O]{Facto}[Os]{Facto}
+ , brazilian = [O]{Fato}[Os]{Fato}
+ , spanish = [El]{Hecho}[Los]{Hecho}
+ , schinese = {事实}{事实}
+ , tchinese = {事實}{事實}
+ , japanese = {事実}{事実}
+ , russian = {Факт}{Факт}
+ }
+ }
+
+\NameTheorem { hypothesis }
+ {
+ , heading = {
+ , english = Hypothesis
+ , french = Hypothèse
+ , ngerman = Hypothese
+ , italian = Ipotesi
+ , portuguese = Hipótese
+ , brazilian = Hipótese
+ , spanish = Hipótesis
+ , schinese = 假设
+ , tchinese = 假設
+ , japanese = 仮設
+ , russian = Гипотеза
+ }
+ , crefname = {
+ , english = {Hypothesis}{Hypothesis}
+ , french = [l']{Hypothèse}[les]{Hypothèse}
+ , ngerman = {Hypothese}{Hypothese}
+ , italian = [l']{Ipotesi}[le]{Ipotesi}
+ , portuguese = [a]{Hipótese}[as]{Hipótese}
+ , brazilian = [a]{Hipótese}[as]{Hipótese}
+ , spanish = [la]{Hipótesis}[las]{Hipótesis}
+ , schinese = {假设}{假设}
+ , tchinese = {假設}{假設}
+ , japanese = {仮設}{仮設}
+ , russian = {Гипотеза}{Гипотеза}
+ }
+ , Crefname = {
+ , english = {Hypothesis}{Hypothesis}
+ , french = [L']{Hypothèse}[Les]{Hypothèse}
+ , ngerman = {Hypothese}{Hypothese}
+ , italian = [L']{Ipotesi}[Le]{Ipotesi}
+ , portuguese = [A]{Hipótese}[As]{Hipótese}
+ , brazilian = [A]{Hipótese}[As]{Hipótese}
+ , spanish = [La]{Hipótesis}[Las]{Hipótesis}
+ , schinese = {假设}{假设}
+ , tchinese = {假設}{假設}
+ , japanese = {仮設}{仮設}
+ , russian = {Гипотеза}{Гипотеза}
+ }
+ }
+
+\NameTheorem { lemma }
+ {
+ , heading = {
+ , english = Lemma
+ , french = Lemme
+ , ngerman = Lemma
+ , italian = Lemma
+ , portuguese = Lema
+ , brazilian = Lema
+ , spanish = Lema
+ , schinese = 引理
+ , tchinese = 引理
+ , japanese = 補題
+ , russian = Лемма
+ }
+ , crefname = {
+ , english = {Lemma}{Lemma}
+ , french = [le]{Lemme}[les]{Lemme}
+ , ngerman = {Lemma}{Lemma}
+ , italian = [il]{Lemma}[i]{Lemma}
+ , portuguese = [o]{Lema}[os]{Lema}
+ , brazilian = [o]{Lema}[os]{Lema}
+ , spanish = [el]{Lema}[las]{Lema}
+ , schinese = {引理}{引理}
+ , tchinese = {引理}{引理}
+ , japanese = {補題}{補題}
+ , russian = {Лемма}{Лемма}
+ }
+ , Crefname = {
+ , english = {Lemma}{Lemma}
+ , french = [Le]{Lemme}[Les]{Lemme}
+ , ngerman = {Lemma}{Lemma}
+ , italian = [Il]{Lemma}[I]{Lemma}
+ , portuguese = [O]{Lema}[Os]{Lema}
+ , brazilian = [O]{Lema}[Os]{Lema}
+ , spanish = [el]{Lema}[las]{Lema}
+ , schinese = {引理}{引理}
+ , tchinese = {引理}{引理}
+ , japanese = {補題}{補題}
+ , russian = {Лемма}{Лемма}
+ }
+ }
+
+\NameTheorem { notation }
+ {
+ , heading = {
+ , english = Notation
+ , french = Notation
+ , ngerman = Notation
+ , italian = Notazione
+ , portuguese = Notação
+ , brazilian = Notação
+ , spanish = Notación
+ , schinese = 记号
+ , tchinese = 記號
+ , japanese = 記法
+ , russian = Нотация
+ }
+ , crefname = {
+ , english = {Notation}{Notation}
+ , french = [la]{Notation}[les]{Notation}
+ , ngerman = {Notation}{Notation}
+ , italian = [la]{Notazione}[le]{Notazione}
+ , portuguese = [a]{Notação}[as]{Notação}
+ , brazilian = [a]{Notação}[as]{Notação}
+ , spanish = [la]{Notación}[las]{Notación}
+ , schinese = {记号}{记号}
+ , tchinese = {記號}{記號}
+ , japanese = {記法}{記法}
+ , russian = {Нотация}{Нотация}
+ }
+ , Crefname = {
+ , english = {Notation}{Notation}
+ , french = [La]{Notation}[Les]{Notation}
+ , ngerman = {Notation}{Notation}
+ , italian = [La]{Notazione}[Le]{Notazione}
+ , portuguese = [A]{Notação}[As]{Notação}
+ , brazilian = [A]{Notação}[As]{Notação}
+ , spanish = [La]{Notación}[Las]{Notación}
+ , schinese = {记号}{记号}
+ , tchinese = {記號}{記號}
+ , japanese = {記法}{記法}
+ , russian = {Нотация}{Нотация}
+ }
+ }
+
+\NameTheorem { observation }
+ {
+ , heading = {
+ , english = Observation
+ , french = Observation
+ , ngerman = Beobachtung
+ , italian = Osservazione
+ , portuguese = Observação
+ , brazilian = Observação
+ , spanish = Observación
+ , schinese = 观察
+ , tchinese = 觀察
+ , japanese = 観察
+ , russian = Наблюдение
+ }
+ , crefname = {
+ , english = {Observation}{Observation}
+ , french = [la]{Observation}[les]{Observation}
+ , ngerman = {Beobachtung}{Beobachtung}
+ , italian = [l']{Osservazione}[le]{Osservazione}
+ , portuguese = [a]{Observação}[as]{Observação}
+ , brazilian = [a]{Observação}[as]{Observação}
+ , spanish = [la]{Observación}[las]{Observación}
+ , schinese = {观察}{观察}
+ , tchinese = {觀察}{觀察}
+ , japanese = {観察}{観察}
+ , russian = {Наблюдение}{Наблюдение}
+ }
+ , Crefname = {
+ , english = {Observation}{Observation}
+ , french = [La]{Observation}[Les]{Observation}
+ , ngerman = {Beobachtung}{Beobachtung}
+ , italian = [L']{Osservazione}[Le]{Osservazione}
+ , portuguese = [A]{Observação}[As]{Observação}
+ , brazilian = [A]{Observação}[As]{Observação}
+ , spanish = [La]{Observación}[Las]{Observación}
+ , schinese = {观察}{观察}
+ , tchinese = {觀察}{觀察}
+ , japanese = {観察}{観察}
+ , russian = {Наблюдение}{Наблюдение}
+ }
+ }
+
+\NameTheorem { postulate }
+ {
+ , heading = {
+ , english = Postulate
+ , french = Postulat
+ , ngerman = Postulat
+ , italian = Postulato
+ , portuguese = Postulado
+ , brazilian = Postulado
+ , spanish = Postulado
+ , schinese = 公设
+ , tchinese = 公設
+ , japanese = 公準
+ , russian = Постулат
+ }
+ , crefname = {
+ , english = {Postulate}{Postulate}
+ , french = [le]{Postulat}[les]{Postulat}
+ , ngerman = {Postulat}{Postulat}
+ , italian = [il]{Postulato}[i]{Postulato}
+ , portuguese = [o]{Postulado}[os]{Postulado}
+ , brazilian = [o]{Postulado}[os]{Postulado}
+ , spanish = [el]{Postulado}[los]{Postulado}
+ , schinese = {公设}{公设}
+ , tchinese = {公設}{公設}
+ , japanese = {公準}{公準}
+ , russian = {Постулат}{Постулат}
+ }
+ , Crefname = {
+ , english = {Postulate}{Postulate}
+ , french = [Le]{Postulat}[Les]{Postulat}
+ , ngerman = {Postulat}{Postulat}
+ , italian = [Il]{Postulato}[I]{Postulato}
+ , portuguese = [O]{Postulado}[Os]{Postulado}
+ , brazilian = [O]{Postulado}[Os]{Postulado}
+ , spanish = [El]{Postulado}[Los]{Postulado}
+ , schinese = {公设}{公设}
+ , tchinese = {公設}{公設}
+ , japanese = {公準}{公準}
+ , russian = {Постулат}{Постулат}
+ }
+ }
+
+\NameTheorem { problem }
+ {
+ , heading = {
+ , english = Problem
+ , french = Problème
+ , ngerman = Problem
+ , italian = Problema
+ , portuguese = Problema
+ , brazilian = Problema
+ , spanish = Problema
+ , schinese = 问题
+ , tchinese = 問題
+ , japanese = 問題
+ , russian = Проблема
+ }
+ , crefname = {
+ , english = {Problem}{Problem}
+ , french = [le]{Problème}[les]{Problème}
+ , ngerman = {Problem}{Problem}
+ , italian = [il]{Problema}[i]{Problema}
+ , portuguese = [o]{Problema}[os]{Problema}
+ , brazilian = [o]{Problema}[os]{Problema}
+ , spanish = [el]{Problema}[los]{Problema}
+ , schinese = {问题}{问题}
+ , tchinese = {問題}{問題}
+ , japanese = {問題}{問題}
+ , russian = {Проблема}{Проблема}
+ }
+ , Crefname = {
+ , english = {Problem}{Problem}
+ , french = [Le]{Problème}[Les]{Problème}
+ , ngerman = {Problem}{Problem}
+ , italian = [Il]{Problema}[I]{Problema}
+ , portuguese = [O]{Problema}[Os]{Problema}
+ , brazilian = [O]{Problema}[Os]{Problema}
+ , spanish = [El]{Problema}[Los]{Problema}
+ , schinese = {问题}{问题}
+ , tchinese = {問題}{問題}
+ , japanese = {問題}{問題}
+ , russian = {Проблема}{Проблема}
+ }
+ }
+
+\NameTheorem { property }
+ {
+ , heading = {
+ , english = Property
+ , french = Propriété
+ , ngerman = Eigenschaft
+ , italian = Proprietà
+ , portuguese = Propriedade
+ , brazilian = Propriedade
+ , spanish = Propiedad
+ , schinese = 性质
+ , tchinese = 性質
+ , japanese = 性質
+ , russian = Имущество
+ }
+ , crefname = {
+ , english = {Property}{Property}
+ , french = [la]{Propriété}[les]{Propriété}
+ , ngerman = {Eigenschaft}{Eigenschaft}
+ , italian = [la]{Proprietà}[le]{Proprietà}
+ , portuguese = [a]{Propriedade}[as]{Propriedade}
+ , brazilian = [a]{Propriedade}[as]{Propriedade}
+ , spanish = [la]{Propiedad}[las]{Propiedad}
+ , schinese = {性质}{性质}
+ , tchinese = {性質}{性質}
+ , japanese = {性質}{性質}
+ , russian = {Имущество}{Имущество}
+ }
+ , Crefname = {
+ , english = {Property}{Property}
+ , french = [La]{Propriété}[Les]{Propriété}
+ , ngerman = {Eigenschaft}{Eigenschaft}
+ , italian = [La]{Proprietà}[Le]{Proprietà}
+ , portuguese = [A]{Propriedade}[As]{Propriedade}
+ , brazilian = [A]{Propriedade}[As]{Propriedade}
+ , spanish = [La]{Propiedad}[Las]{Propiedad}
+ , schinese = {性质}{性质}
+ , tchinese = {性質}{性質}
+ , japanese = {性質}{性質}
+ , russian = {Имущество}{Имущество}
+ }
+ }
+
+\NameTheorem { proposition }
+ {
+ , heading = {
+ , english = Proposition
+ , french = Proposition
+ , ngerman = Proposition
+ , italian = Proposizione
+ , portuguese = Proposição
+ , brazilian = Proposição
+ , spanish = Proposición
+ , schinese = 命题
+ , tchinese = 命題
+ , japanese = 命題
+ , russian = Предложение
+ }
+ , crefname = {
+ , english = {Proposition}{Proposition}
+ , french = [la]{Proposition}[les]{Proposition}
+ , ngerman = {Proposition}{Proposition}
+ , italian = [la]{Proposizione}[le]{Proposizione}
+ , portuguese = [a]{Proposição}[as]{Proposição}
+ , brazilian = [a]{Proposição}[as]{Proposição}
+ , spanish = [la]{Proposición}[las]{Proposición}
+ , schinese = {命题}{命题}
+ , tchinese = {命題}{命題}
+ , japanese = {命題}{命題}
+ , russian = {Предложение}{Предложение}
+ }
+ , Crefname = {
+ , english = {Proposition}{Proposition}
+ , french = [La]{Proposition}[Les]{Proposition}
+ , ngerman = {Proposition}{Proposition}
+ , italian = [La]{Proposizione}[Le]{Proposizione}
+ , portuguese = [A]{Proposição}[As]{Proposição}
+ , brazilian = [A]{Proposição}[As]{Proposição}
+ , spanish = [La]{Proposición}[Las]{Proposición}
+ , schinese = {命题}{命题}
+ , tchinese = {命題}{命題}
+ , japanese = {命題}{命題}
+ , russian = {Предложение}{Предложение}
+ }
+ }
+
+\NameTheorem { question }
+ {
+ , heading = {
+ , english = Question
+ , french = Question
+ , ngerman = Frage
+ , italian = Domanda
+ , portuguese = Pergunta
+ , brazilian = Pergunta
+ , spanish = Pregunta
+ , schinese = 问题
+ , tchinese = 問題
+ , japanese = 問題
+ , russian = Вопрос
+ }
+ , crefname = {
+ , english = {Question}{Question}
+ , french = [la]{Question}[les]{Question}
+ , ngerman = {Frage}{Frage}
+ , italian = [la]{Domanda}[le]{Domanda}
+ , portuguese = [a]{Pergunta}[as]{Pergunta}
+ , brazilian = [a]{Pergunta}[as]{Pergunta}
+ , spanish = [la]{Pregunta}[las]{Pregunta}
+ , schinese = {问题}{问题}
+ , tchinese = {問題}{問題}
+ , japanese = {問題}{問題}
+ , russian = {Вопрос}{Вопрос}
+ }
+ , Crefname = {
+ , english = {Question}{Question}
+ , french = [La]{Question}[Les]{Question}
+ , ngerman = {Frage}{Frage}
+ , italian = [La]{Domanda}[Le]{Domanda}
+ , portuguese = [A]{Pergunta}[As]{Pergunta}
+ , brazilian = [A]{Pergunta}[As]{Pergunta}
+ , spanish = [La]{Pregunta}[Las]{Pregunta}
+ , schinese = {问题}{问题}
+ , tchinese = {問題}{問題}
+ , japanese = {問題}{問題}
+ , russian = {Вопрос}{Вопрос}
+ }
+ }
+
+\NameTheorem { remark }
+ {
+ , heading = {
+ , english = Remark
+ , french = Remarque
+ , ngerman = Bemerkung
+ , italian = Commento
+ , portuguese = Comentário
+ , brazilian = Comentário
+ , spanish = Comentario
+ , schinese = 备注
+ , tchinese = 備註
+ , japanese = 注釈
+ , russian = Замечание
+ }
+ , crefname = {
+ , english = {Remark}{Remark}
+ , french = [la]{Remarque}[les]{Remarque}
+ , ngerman = {Bemerkung}{Bemerkung}
+ , italian = [il]{Commento}[i]{Commento}
+ , portuguese = [o]{Comentário}[os]{Comentário}
+ , brazilian = [o]{Comentário}[os]{Comentário}
+ , spanish = [el]{Comentario}[los]{Comentario}
+ , schinese = {备注}{备注}
+ , tchinese = {備註}{備註}
+ , japanese = {注釈}{注釈}
+ , russian = {Замечание}{Замечание}
+ }
+ , Crefname = {
+ , english = {Remark}{Remark}
+ , french = [La]{Remarque}[Les]{Remarque}
+ , ngerman = {Bemerkung}{Bemerkung}
+ , italian = [Il]{Commento}[I]{Commento}
+ , portuguese = [O]{Comentário}[Os]{Comentário}
+ , brazilian = [O]{Comentário}[Os]{Comentário}
+ , spanish = [El]{Comentario}[Los]{Comentario}
+ , schinese = {备注}{备注}
+ , tchinese = {備註}{備註}
+ , japanese = {注釈}{注釈}
+ , russian = {Замечание}{Замечание}
+ }
+ }
+
+\NameTheorem { theorem }
+ {
+ , heading = {
+ , english = Theorem
+ , french = Théorème
+ , ngerman = Satz
+ , italian = Teorema
+ , portuguese = Teorema
+ , brazilian = Teorema
+ , spanish = Teorema
+ , schinese = 定理
+ , tchinese = 定理
+ , japanese = 定理
+ , russian = Теорема
+ }
+ , crefname = {
+ , english = {Theorem}{Theorem}
+ , french = [le]{Théorème}[les]{Théorème}
+ , ngerman = {Satz}{Satz}
+ , italian = [il]{Teorema}[i]{Teorema}
+ , portuguese = [o]{Teorema}[os]{Teorema}
+ , brazilian = [o]{Teorema}[os]{Teorema}
+ , spanish = [el]{Teorema}[los]{Teorema}
+ , schinese = {定理}{定理}
+ , tchinese = {定理}{定理}
+ , japanese = {定理}{定理}
+ , russian = {Теорема}{Теорема}
+ }
+ , Crefname = {
+ , english = {Theorem}{Theorem}
+ , french = [Le]{Théorème}[Les]{Théorème}
+ , ngerman = {Satz}{Satz}
+ , italian = [Il]{Teorema}[I]{Teorema}
+ , portuguese = [O]{Teorema}[Os]{Teorema}
+ , brazilian = [O]{Teorema}[Os]{Teorema}
+ , spanish = [El]{Teorema}[Los]{Teorema}
+ , schinese = {定理}{定理}
+ , tchinese = {定理}{定理}
+ , japanese = {定理}{定理}
+ , russian = {Теорема}{Теорема}
+ }
+ }
+
+\NameTheorem { definition-proposition }
+ {
+ , heading = {
+ , english = Definition-Proposition
+ , french = Définition-Proposition
+ , ngerman = Definition-Proposition
+ , italian = Definizione-Proposizione
+ , portuguese = Definição-Proposição
+ , brazilian = Definição-Proposição
+ , spanish = Definición-Proposición
+ , schinese = 定义-命题
+ , tchinese = 定義-命題
+ , japanese = 定義-命題
+ , russian = Определение-Предложение
+ }
+ , crefname = {
+ , english = {Definition-Proposition}{Definition-Proposition}
+ , french = [la]{Définition-Proposition}[les]{Définition-Proposition}
+ , ngerman = {Definition-Proposition}{Definition-Proposition}
+ , italian = [la]{Definizione-Proposizione}[le]{Definizione-Proposizione}
+ , portuguese = [a]{Definição-Proposição}[as]{Definição-Proposição}
+ , brazilian = [a]{Definição-Proposição}[as]{Definição-Proposição}
+ , spanish = [la]{Definición-Proposición}[las]{Definición-Proposición}
+ , schinese = {定义-命题}{定义-命题}
+ , tchinese = {定義-命題}{定義-命題}
+ , japanese = {定義-命題}{定義-命題}
+ , russian = {Определение-Предложение}{Определение-Предложение}
+ }
+ , Crefname = {
+ , english = {Definition-Proposition}{Definition-Proposition}
+ , french = [La]{Définition-Proposition}[Les]{Définition-Proposition}
+ , ngerman = {Definition-Proposition}{Definition-Proposition}
+ , italian = [La]{Definizione-Proposizione}[Le]{Definizione-Proposizione}
+ , portuguese = [A]{Definição-Proposição}[As]{Definição-Proposição}
+ , brazilian = [A]{Definição-Proposição}[As]{Definição-Proposição}
+ , spanish = [La]{Definición-Proposición}[Las]{Definición-Proposición}
+ , schinese = {定义-命题}{定义-命题}
+ , tchinese = {定義-命題}{定義-命題}
+ , japanese = {定義-命題}{定義-命題}
+ , russian = {Определение-Предложение}{Определение-Предложение}
+ }
+ }
+
+\NameTheorem { definition-theorem }
+ {
+ , heading = {
+ , english = Definition-Theorem
+ , french = Définition-Théorème
+ , ngerman = Definition-Satz
+ , italian = Definizione-Teorema
+ , portuguese = Definição-Teorema
+ , brazilian = Definição-Teorema
+ , spanish = Definición-Teorema
+ , schinese = 定义-定理
+ , tchinese = 定義-定理
+ , japanese = 定義-定理
+ , russian = Определение-Теорема
+ }
+ , crefname = {
+ , english = {Definition-Theorem}{Definition-Theorem}
+ , french = [la]{Définition-Théorème}[les]{Définition-Théorème}
+ , ngerman = {Definition-Satz}{Definition-Satz}
+ , italian = [la]{Definizione-Teorema}[le]{Definizione-Teorema}
+ , portuguese = [a]{Definição-Teorema}[as]{Definição-Teorema}
+ , brazilian = [a]{Definição-Teorema}[as]{Definição-Teorema}
+ , spanish = [la]{Definición-Teorema}[las]{Definición-Teorema}
+ , schinese = {定义-定理}{定义-定理}
+ , tchinese = {定義-定理}{定義-定理}
+ , japanese = {定義-定理}{定義-定理}
+ , russian = {Определение-Теорема}{Определение-Теорема}
+ }
+ , Crefname = {
+ , english = {Definition-Theorem}{Definition-Theorem}
+ , french = [La]{Définition-Théorème}[Les]{Définition-Théorème}
+ , ngerman = {Definition-Satz}{Definition-Satz}
+ , italian = [La]{Definizione-Teorema}[Le]{Definizione-Teorema}
+ , portuguese = [A]{Definição-Teorema}[As]{Definição-Teorema}
+ , brazilian = [A]{Definição-Teorema}[As]{Definição-Teorema}
+ , spanish = [La]{Definición-Teorema}[Las]{Definición-Teorema}
+ , schinese = {定义-定理}{定义-定理}
+ , tchinese = {定義-定理}{定義-定理}
+ , japanese = {定義-定理}{定義-定理}
+ , russian = {Определение-Теорема}{Определение-Теорема}
+ }
+ }
+%</projlib-theorem>
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/projlib/ProjLib.ins b/macros/latex/contrib/projlib/ProjLib.ins
new file mode 100644
index 0000000000..ca73cff446
--- /dev/null
+++ b/macros/latex/contrib/projlib/ProjLib.ins
@@ -0,0 +1,74 @@
+%%
+%% Copyright (C) 2021-2022 by Jinwen XU
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.3c of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+
+\input docstrip.tex
+\keepsilent
+\askforoverwritefalse
+
+\begingroup
+\catcode`\^^M=\active%
+\obeyspaces%
+\gdef\copyright{%
+\ds@heading% This is file... generated with the docstrip utility.
+
+Copyright (C) 2021-2022 by Jinwen XU
+
+This is part of the ProjLib Toolkit.
+}%
+\gdef\lppllicense{%
+
+This work may be distributed and/or modified under the conditions of the
+LaTeX Project Public License, either version 1.3c of this license or (at
+your option) any later version. The latest version of this license is in
+
+ http://www.latex-project.org/lppl.txt
+
+and version 1.3c or later is part of all distributions of LaTeX version
+2005/12/01 or later.
+}%
+\endgroup
+
+\def\mypreamble{\copyright\lppllicense}
+\usepreamble\mypreamble
+
+\generate{\file{ProjLib.sty}{\from{ProjLib.dtx}{ProjLib}}}
+\generate{\file{projlib-author.sty}{\from{ProjLib.dtx}{projlib-author}}}
+\generate{\file{projlib-datetime.sty}{\from{ProjLib.dtx}{projlib-datetime}}}
+\generate{\file{projlib-draft.sty}{\from{ProjLib.dtx}{projlib-draft}}}
+\generate{\file{projlib-font.sty}{\from{ProjLib.dtx}{projlib-font}}}
+\generate{\file{projlib-language.sty}{\from{ProjLib.dtx}{projlib-language}}}
+\generate{\file{projlib-logo.sty}{\from{ProjLib.dtx}{projlib-logo}}}
+\generate{\file{projlib-math.sty}{\from{ProjLib.dtx}{projlib-math}}}
+\generate{\file{projlib-paper.sty}{\from{ProjLib.dtx}{projlib-paper}}}
+\generate{\file{projlib-theorem.sty}{\from{ProjLib.dtx}{projlib-theorem}}}
+
+\obeyspaces
+\Msg{*************************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the following *}
+\Msg{* files into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* ProjLib.sty *}
+\Msg{* projlib-author.sty *}
+\Msg{* projlib-datetime.sty *}
+\Msg{* projlib-draft.sty *}
+\Msg{* projlib-font.sty *}
+\Msg{* projlib-language.sty *}
+\Msg{* projlib-logo.sty *}
+\Msg{* projlib-math.sty *}
+\Msg{* projlib-paper.sty *}
+\Msg{* projlib-theorem.sty *}
+\Msg{* *}
+\Msg{* Happy TeXing! *}
+\Msg{* *}
+\Msg{*************************************************************}
+
+\endbatchfile
diff --git a/macros/latex/contrib/projlib/ProjLib.sty b/macros/latex/contrib/projlib/ProjLib.sty
deleted file mode 100644
index 0e0cdd3666..0000000000
--- a/macros/latex/contrib/projlib/ProjLib.sty
+++ /dev/null
@@ -1,38 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-\RequirePackage{l3keys2e}
-\ProvidesExplPackage
- {ProjLib}
- {2022/03/09} {}
- {Collective interface of the ProjLib toolkit}
-
-\keys_define:nn { ProjLib }
- {
- , unknown .code:n = {
- \PassOptionsToPackage { \CurrentOption } { projlib-language }
- \PassOptionsToPackage { \CurrentOption } { projlib-author }
- \PassOptionsToPackage { \CurrentOption } { projlib-datetime }
- \PassOptionsToPackage { \CurrentOption } { projlib-draft }
- \PassOptionsToPackage { \CurrentOption } { projlib-font }
- \PassOptionsToPackage { \CurrentOption } { projlib-logo }
- \PassOptionsToPackage { \CurrentOption } { projlib-math }
- \PassOptionsToPackage { \CurrentOption } { projlib-paper }
- \PassOptionsToPackage { \CurrentOption } { projlib-theorem }
- }
- }
-\ProcessKeysOptions { ProjLib }
-
-\RequirePackage { projlib-language }
-
-\RequirePackage { projlib-author }
-\RequirePackage { projlib-datetime }
-\RequirePackage { projlib-draft }
-\RequirePackage { projlib-font }
-\RequirePackage { projlib-logo }
-\RequirePackage { projlib-math }
-\RequirePackage { projlib-paper }
-
-\RequirePackage { projlib-theorem }
-
-\endinput
-%%
-%% End of file `ProjLib.sty'.
diff --git a/macros/latex/contrib/projlib/README.md b/macros/latex/contrib/projlib/README.md
index 3b5a6fbcf8..b36f8f2437 100644
--- a/macros/latex/contrib/projlib/README.md
+++ b/macros/latex/contrib/projlib/README.md
@@ -2,9 +2,9 @@
# ProjLib Toolkit
-The bundle is dated 2022/03/09
+The bundle is dated 2022/03/11.
-Old modules are still dated 2021/12/16 and will *not* be modified. When all the new modules are finished, old files shall be removed from this bundle.
+Old modules are still dated 2021/12/16 and will *not* be modified. **When all the new modules and the corresponding documentations are finished, old files shall be removed from this bundle.**
## **Important note**
@@ -25,7 +25,7 @@ The new modules are:
When all these modules are finished, the documentation will be updated accordingly.
-Below are the old README.
+Below is the content of the old README.
---
diff --git a/macros/latex/contrib/projlib/projlib-author.sty b/macros/latex/contrib/projlib/projlib-author.sty
deleted file mode 100644
index 2ad44ff6a3..0000000000
--- a/macros/latex/contrib/projlib/projlib-author.sty
+++ /dev/null
@@ -1,313 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-\RequirePackage{l3keys2e}
-\ProvidesExplPackage
- {projlib-author}
- {2022/03/09} {}
- {Enhanced author information block}
-
-\keys_define:nn { projlib-author }
- {
- , ams-fashion .bool_set:N = \l__projlib_author_amsfashion_bool
- , ams-fashion .initial:n = { false }
- , ams~fashion .bool_set:N = \l__projlib_author_amsfashion_bool
- , ams fashion .bool_set:N = \l__projlib_author_amsfashion_bool
- , unknown .code:n = {}
- }
-\ProcessKeysOptions { projlib-author }
-
-\cs_if_exist:NT \subjclass { \endinput }
-
-\tl_new:N \g__projlib_author_font_author_tl
-\tl_new:N \g__projlib_author_font_address_tl
-\tl_new:N \g__projlib_author_font_curraddr_tl
-\tl_new:N \g__projlib_author_font_email_tl
-
-\tl_gset:Nn \g__projlib_author_font_author_tl { \normalsize \normalfont \scshape }
-\tl_gset:Nn \g__projlib_author_font_address_tl { \small \normalfont \itshape }
-\tl_gset:Nn \g__projlib_author_font_curraddr_tl { \small \normalfont \itshape }
-\tl_gset:Nn \g__projlib_author_font_email_tl { \small \normalfont \ttfamily }
-
-\dim_new:N \g__projlib_author_length_innersep_dim
-\dim_new:N \g__projlib_author_length_sep_dim
-\dim_new:N \g__projlib_author_length_aftersep_dim
-
-\dim_set:Nn \g__projlib_author_length_innersep_dim { 0.3 \baselineskip }
-\dim_set:Nn \g__projlib_author_length_sep_dim { 0.5 \baselineskip }
-\dim_set:Nn \g__projlib_author_length_aftersep_dim { 0.3 \baselineskip }
-
-
-\bool_new:N \g__projlib_author_affil_already_exist_bool
-
-\NewCommandCopy \projlib_author_backup_author:w \author
-\RenewDocumentCommand \author { m }
- {
- \hook_gput_code:nnn { cmd/@author/after } { projlib-author }
- {
- \phantom {A} \\[-\baselineskip]
- \skip_vertical:n { \g__projlib_author_length_sep_dim }
- { \g__projlib_author_font_author_tl #1 }
- \bool_set_false:N \g__projlib_author_affil_already_exist_bool
- \\ \phantom {}
- }
- }
-
-\ProvideDocumentCommand \address { m }
- {
- \hook_gput_code:nnn { cmd/@author/after } { projlib-author }
- {
- \phantom {A} \\[-\baselineskip]
- \bool_if:NF \g__projlib_author_affil_already_exist_bool
- {
- \skip_vertical:n { \g__projlib_author_length_innersep_dim }
- }
- \bool_set_true:N \g__projlib_author_affil_already_exist_bool
- { \g__projlib_author_font_address_tl #1 }
- \\ \phantom {}
- }
- }
-
-\ProvideDocumentCommand \curraddr { m }
- {
- \hook_gput_code:nnn { cmd/@author/after } { projlib-author }
- {
- \phantom {A} \\[-\baselineskip]
- \bool_if:NF \g__projlib_author_affil_already_exist_bool
- {
- \skip_vertical:n { \g__projlib_author_length_innersep_dim }
- }
- \bool_set_true:N \g__projlib_author_affil_already_exist_bool
- { \g__projlib_author_font_curraddr_tl #1 }
- \\ \phantom {}
- }
- }
-
-\ProvideDocumentCommand \email { m }
- {
- \hook_gput_code:nnn { cmd/@author/after } { projlib-author }
- {
- \phantom {A} \\[-\baselineskip]
- \bool_if:NF \g__projlib_author_affil_already_exist_bool
- {
- \skip_vertical:n { \g__projlib_author_length_innersep_dim }
- }
- \bool_set_true:N \g__projlib_author_affil_already_exist_bool
- { \g__projlib_author_font_email_tl #1 }
- \\ \phantom {}
- }
- }
-
-\RequirePackage { regexpatch }
-
-\xpatchcmd { \@maketitle } { \begin{tabular}[t]{c} } {} {} { \FAIL }
-\xpatchcmd { \@maketitle } { \end{tabular} } {} {} { \FAIL }
-
-\tl_set:cn {@author} {}
-
-\hook_gput_code:nnn { cmd/@maketitle/before } { projlib-author }
- {
- \hook_gput_code:nnn { cmd/@author/before } { projlib-author }
- {
- \skip_vertical:n { - \g__projlib_author_length_sep_dim }
- }
- \hook_gput_code:nnn { cmd/@author/after } { projlib-author }
- {
- \skip_vertical:n { - \baselineskip }
- \bool_if:NT \g__projlib_author_affil_already_exist_bool
- {
- \skip_vertical:n { \g__projlib_author_length_aftersep_dim }
- }
- }
- }
-
-\bool_if:NT \l__projlib_author_amsfashion_bool
- {
- \RequirePackage{ projlib-language }
-
- \tl_new:N \g_projlib_author_keywordsname_style_tl
- \tl_gset:Nn \g_projlib_author_keywordsname_style_tl {}
-
- \projlib_langauge_define_multilingual_text:Nn \keywordsname
- {
- EN = \textsc{Key~words~and~phrases} ,
- FR = \textsc{Mots~et~phrases~clés} ,
- DE = \textsc{Schlüsselwörter~und~Phrasen} ,
- IT = \textsc{Parole~e~frasi~chiave} ,
- PT = \textsc{Palavras~e~frases~chave} ,
- BR = \textsc{Palavras~e~frases~chave} ,
- ES = \textsc{Palabras~y~frases~clave} ,
- CN = 关键词 ,
- TC = 關鍵詞 ,
- JP = キーワード ,
- RU = Ключевые~слова~и~фразы ,
- }
-
- \tl_new:N \g__projlib_author_keywords_tl
- \NewDocumentCommand \keywords { m }
- {
- \tl_gset:Nn \g__projlib_author_keywords_tl { #1 }
- }
-
- \tl_new:N \g__projlib_author_dedicatory_tl
- \NewDocumentCommand \dedicatory { m }
- {
- \tl_gset:Nn \g__projlib_author_dedicatory_tl { #1 }
- }
-
- \hook_gput_code:nnn { begindocument/before } { projlib-author }
- {
- \NewCommandCopy \projlib_author_backup_footnotemark: \footnotemark
- \tl_gset:Nn \footnotemark {}
-
- \NewCommandCopy \projlib_author_backup_thanks:w \thanks
- \cs_undefine:N \thanks
-
- % measure the width of "*"
- \hbox_set:Nn \l_tmpa_box { * }
- \dim_const:Nn \c__projlib_author_length_width_of_asterisk_dim { \box_wd:N \l_tmpa_box }
-
- \cs_new_nopar:Nn \projlib_author_pre_thanks:n
- {
- \projlib_author_backup_thanks:w
- {
- \skip_horizontal:n { - \c__projlib_author_length_width_of_asterisk_dim }
- #1
- }
- }
-
- \NewDocumentCommand \thanks { m }
- {
- \tl_if_blank:eF { #1 }
- {
- \hook_gput_code:nnn { cmd/@title/after } { projlib-author }
- {
- \projlib_author_pre_thanks:n { #1 }
- }
- }
- }
-
- \NewCommandCopy \projlib_author_backup_my_author:w \author
- \RenewDocumentCommand \author { m }
- {
- \projlib_author_backup_my_author:w
- {
- \RenewCommandCopy \footnotemark \projlib_author_backup_footnotemark:
- \RenewCommandCopy \thanks \projlib_author_backup_thanks:w
- #1
- \cs_undefine:N \footnotemark
- }
- }
- }
-
- \NewCommandCopy \projlib_author_backup_abstract: \abstract
- \NewCommandCopy \projlib_author_backup_endabstract: \endabstract
- \cs_undefine:N \abstract
- \cs_undefine:N \endabstract
-
- \bool_new:N \g__projlib_author_already_maketitle_bool
- \bool_gset_false:N \g__projlib_author_already_maketitle_bool
- \bool_new:N \g__projlib_author_abstract_before_maketitle_bool
- \bool_gset_false:N \g__projlib_author_abstract_before_maketitle_bool
-
- \RequirePackage{ scontents }
- \newenvsc{abstract}[store-env=projlib-author-abstract,print-env=false]
-
- \hook_gput_code:nnn { env/abstract/after } { projlib-author }
- {
- \bool_if:NTF \g__projlib_author_already_maketitle_bool
- {
- \projlib_author_backup_abstract:
- \getstored{projlib-author-abstract}
- \projlib_author_backup_endabstract:
- }
- {
- \bool_gset_true:N \g__projlib_author_abstract_before_maketitle_bool
- }
- }
-
- \hook_gput_code:nnn { begindocument/before } { projlib-author }
- {
- \makeatletter
- \xpatchcmd { \@maketitle } { \@date }
- {
- \tl_if_blank:eTF { \@date } { \skip_vertical:n { -2 \baselineskip } } { \@date }
- \tl_if_blank:eF { \g__projlib_author_dedicatory_tl }
- {
- \tl_if_blank:eT { \@date } { \skip_vertical:n { 2 \baselineskip } }
- \par
- \skip_vertical:n { -\parskip }
- \skip_vertical:n { \baselineskip }
- \textit{ \g__projlib_author_dedicatory_tl }
- \tl_if_blank:eT { \@date }
- {
- \skip_vertical:n { -\parskip }
- \skip_vertical:n { \dim_eval:n { -1.7 \baselineskip } }
- }
- }
- } {} { \FAIL }
- \makeatother
-
- \hook_gput_code:nnn { cmd/maketitle/before } { projlib-author }
- {
- \tl_if_blank:eF { \g__projlib_author_keywords_tl }
- {
- \projlib_author_pre_thanks:n
- {
- \group_begin:
- \g_projlib_author_keywordsname_style_tl
- \keywordsname .
- \group_end:
- \c_space_tl
- \g__projlib_author_keywords_tl
- }
- }
- }
-
- \hook_gput_code:nnn { cmd/maketitle/after } { projlib-author }
- {
- \bool_if:NT \g__projlib_author_abstract_before_maketitle_bool
- {
- \projlib_author_backup_abstract:
- \getstored{projlib-author-abstract}
- \projlib_author_backup_endabstract:
- }
- \cs_undefine:N \address
- \cs_undefine:N \curraddr
- \cs_undefine:N \email
- \cs_undefine:N \dedicatory
- \cs_undefine:N \keywords
- \bool_gset_true:N \g__projlib_author_already_maketitle_bool
- }
- }
-
- \tl_new:N \l_projlib_author_subjclassname_tl
- \tl_new:N \l_projlib_author_subjclass_tl
- \msg_new:nnn { projlib-author }
- { unknown-msc-edition }
- { Unknown~edition~(#1)~of~Mathematics~Subject~Classification;~using~'2020' }
- \NewDocumentCommand \subjclass { O{2020} m }
- {
- \tl_set:Nn \l_projlib_author_subjclass_tl { #2 }
- \tl_if_exist:cTF { subjclassname_#1 }
- {
- \tl_set:Nn \l_projlib_author_subjclassname_tl { \tl_use:c { subjclassname_#1 } }
- }
- {
- \msg_warning:nnn { projlib-author } { unknown-msc-edition } { #1 }
- \tl_set:Nn \l_projlib_author_subjclassname_tl { \tl_use:c { subjclassname_2020 } }
- }
- \projlib_author_pre_thanks:n
- {
- \textit{ \l_projlib_author_subjclassname_tl . }
- \enspace
- \l_projlib_author_subjclass_tl .
- }
- }
- \tl_const:cn { subjclassname_1991 } { \textup{1991}~Mathematics~Subject~Classification }
- \tl_const:cn { subjclassname_2000 } { \textup{2000}~Mathematics~Subject~Classification }
- \tl_const:cn { subjclassname_2010 } { \textup{2010}~Mathematics~Subject~Classification }
- \tl_const:cn { subjclassname_2020 } { \textup{2020}~Mathematics~Subject~Classification }
- }
-
-\endinput
-%%
-%% End of file `projlib-author.sty'.
diff --git a/macros/latex/contrib/projlib/projlib-datetime.sty b/macros/latex/contrib/projlib/projlib-datetime.sty
deleted file mode 100644
index 07c1473171..0000000000
--- a/macros/latex/contrib/projlib/projlib-datetime.sty
+++ /dev/null
@@ -1,1649 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-\RequirePackage{l3keys2e}
-\ProvidesExplPackage
- {projlib-datetime}
- {2022/03/03} {}
- {Convert numeric date-time string to natural language}
-
-\tl_new:N \g__projlib_datetime_input_format_tl
-\tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day }
-
-\keys_define:nn { projlib-datetime }
- {
- , plain .bool_set:N = \l__projlib_datetime_plain_bool
- , plain .initial:n = { false }
- , year-month-day .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
- , month-day-year .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { month-day-year } }
- , day-month-year .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
- , year-month .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
- , month-day .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
- , month-year .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
- , day-month .code:n = { \tl_gset:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
- , unknown .code:n = {}
- }
-\ProcessKeysOptions { projlib-datetime }
-
-\bool_if:NT \l__projlib_datetime_plain_bool
- {
- \hook_gput_code:nnn { begindocument/before } { projlib-datetime }
- {
- \cs_set:Nn \projlib_datetime_text_superscript:n { #1 }
- }
- }
-
-\tl_new:N \l__projlib_datetime_output_format_tl
-\keys_define:nn { projlib-datetime-command }
- {
- , year-month-day .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
- , month-day-year .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { month-day-year } }
- , day-month-year .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
- , year-month .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
- , month-day .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
- , month-year .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
- , day-month .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
- , only-year-month .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-year-month } }
- , only-month-day .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-month-day } }
- , only-year .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-year } }
- , only-month .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-month } }
- , only-day .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-day } }
- , unknown .code:n = {}
- }
-
-\msg_new:nnnn { projlib-datetime }
- { non-supported-date-format }
- { The~date~format~"#1"~is~not~supported. }
- { The~only~formats~available~are~"year-month-day",~ "month-day-year"~and~"day-month-year". }
-
-\cs_new:Nn \projlib_datetime_set_input_format:n
- {
- \str_case:nnF { #1 }
- {
- { year-month-day } { \tl_gset:Nn \g__projlib_datetime_input_format_tl { year-month-day } }
- { month-day-year } { \tl_gset:Nn \g__projlib_datetime_input_format_tl { month-day-year } }
- { day-month-year } { \tl_gset:Nn \g__projlib_datetime_input_format_tl { day-month-year } }
- }
- {
- \msg_error:nnn { projlib-datetime } { non-supported-date-format } { #1 }
- }
- }
-
-\NewDocumentCommand \ProjLibSetDatetimeInputFormat { m }
- {
- \projlib_datetime_set_input_format:n { #1 }
- }
-
-
-\seq_new:N \l__projlib_datetime_date_seq
-
-\cs_new_protected:Nn \projlib_datetime_text_superscript:n
- {
- \group_begin:
- \small
- \textsuperscript { #1 }
- \group_end:
- }
-
-
-\cs_new:Nn \__projlib_datetime_today:n
- {
- \str_case_e:nnF { \l__projlib_datetime_output_format_tl }
- {
- { only-year-month }
- {
- \cs_if_exist_use:c { projlib_datetime_display_year_month #1 _ \languagename :nn }
- { \int_use:N \c_sys_year_int }
- { \int_use:N \c_sys_month_int }
- }
- { only-month-day }
- {
- \cs_if_exist_use:c { projlib_datetime_display_month_day #1 _ \languagename :nn }
- { \int_use:N \c_sys_month_int }
- { \int_use:N \c_sys_day_int }
- }
- { only-year }
- {
- \cs_if_exist_use:cT { projlib_datetime_display_year #1 _ \languagename :n }
- {
- { \int_use:N \c_sys_year_int }
- }
- }
- { only-month }
- {
- \cs_if_exist_use:cT { projlib_datetime_display_month #1 _ \languagename :n }
- {
- { \int_use:N \c_sys_month_int }
- }
- }
- { only-day }
- {
- \cs_if_exist_use:cT { projlib_datetime_display_day #1 _ \languagename :n }
- {
- { \int_use:N \c_sys_day_int }
- }
- }
- }
- {
- \cs_if_exist_use:c { projlib_datetime_display_year_month_day #1 _ \languagename :nnn }
- { \int_use:N \c_sys_year_int }
- { \int_use:N \c_sys_month_int }
- { \int_use:N \c_sys_day_int }
- }
- }
-
-\NewDocumentCommand \ProjLibtoday { O{} }
- {
- \group_begin:
- \keys_set:nn { projlib-datetime-command } { #1 }
- \__projlib_datetime_today:n {}
- \group_end:
- }
-
-\NewDocumentCommand \ProjLibToday { O{} }
- {
- \group_begin:
- \keys_set:nn { projlib-datetime-command } { #1 }
- \__projlib_datetime_today:n { _uppercase }
- \group_end:
- }
-
-\ProvideDocumentCommand \Thedate {} { \ProjLibdate }
-\ProvideDocumentCommand \TheDate {} { \ProjLibDate }
-
-
-\cs_new_protected:Nn \projlib_datetime_display_year_month_day:n
- {
- \__projlib_datetime_display_year_month_day:en { #1 } {}
- }
-
-\cs_new_protected:Nn \projlib_datetime_display_year_month_day_uppercase:n
- {
- \__projlib_datetime_display_year_month_day:en { #1 } { _uppercase }
- }
-
-\cs_new_protected:Nn \__projlib_datetime_display_year_month_day:nn
- {
- \regex_match:nnTF { \A \d{4}-\d{1,2}-\d{1,2} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \cs_if_exist_use:c { projlib_datetime_display_year_month_day #2 _ \languagename :nnn }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % year
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % month
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } } % day
- }
- {
- \regex_match:nnTF { \A \d{4}-\d{1,2} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \cs_if_exist_use:c { projlib_datetime_display_year_month #2 _ \languagename :nn }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % year
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % month
- }
- {
- \regex_match:nnTF { \A \d{1,2}-\d{1,2} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \cs_if_exist_use:c { projlib_datetime_display_month_day #2 _ \languagename :nn }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % day
- }
- {
- #1
- }
- }
- }
- }
-\cs_generate_variant:Nn \__projlib_datetime_display_year_month_day:nn { en }
-
-
-\cs_new_protected:Nn \projlib_datetime_display_month_day_year:n
-{
- \__projlib_datetime_display_month_day_year:en { #1 } {}
-}
-
-\cs_new_protected:Nn \projlib_datetime_display_month_day_year_uppercase:n
-{
- \__projlib_datetime_display_month_day_year:en { #1 } { _uppercase }
-}
-
-\cs_new_protected:Nn \__projlib_datetime_display_month_day_year:nn
-{
- \regex_match:nnTF { \A \d{1,2}-\d{1,2}-\d{4} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \cs_if_exist_use:c { projlib_datetime_display_month_day_year #2 _ \languagename :nnn }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } } % year
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % day
- }
- {
- \regex_match:nnTF { \A \d{1,2}-\d{4} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \cs_if_exist_use:c { projlib_datetime_display_year_month #2 _ \languagename :nn }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % year
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month
- }
- {
- \regex_match:nnTF { \A \d{1,2}-\d{1,2} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \cs_if_exist_use:c { projlib_datetime_display_month_day #2 _ \languagename :nn }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % day
- }
- {
- #1
- }
- }
- }
-}
-\cs_generate_variant:Nn \__projlib_datetime_display_month_day_year:nn { en }
-
-
-\cs_new_protected:Nn \projlib_datetime_display_day_month_year:n
-{
- \__projlib_datetime_display_day_month_year:en { #1 } {}
-}
-
-\cs_new_protected:Nn \projlib_datetime_display_day_month_year_uppercase:n
-{
- \__projlib_datetime_display_day_month_year:en { #1 } { _uppercase }
-}
-
-\cs_new_protected:Nn \__projlib_datetime_display_day_month_year:nn
-{
- \regex_match:nnTF { \A \d{1,2}-\d{1,2}-\d{4} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \cs_if_exist_use:c { projlib_datetime_display_day_month_year #2 _ \languagename :nnn }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } } % year
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % month
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % day
- }
- {
- \regex_match:nnTF { \A \d{1,2}-\d{4} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \cs_if_exist_use:c { projlib_datetime_display_year_month #2 _ \languagename :nn }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % year
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % month
- }
- {
- \regex_match:nnTF { \A \d{1,2}-\d{1,2} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \cs_if_exist_use:c { projlib_datetime_display_month_day #2 _ \languagename :nn }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } } % month
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } } % day
- }
- {
- #1
- }
- }
- }
-}
-\cs_generate_variant:Nn \__projlib_datetime_display_day_month_year:nn { en }
-
-
-\cs_new_protected:Nn \__projlib_datetime_date_parse_year_month_day:n
- {
- \regex_match:nnTF { \A \d{4}-\d{1,2}(|-\d{1,2}) \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- }
- {
- \regex_match:nnT { \A \d{1,2}-\d{1,2} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \seq_put_left:Nn \l__projlib_datetime_date_seq {}
- }
- }
- }
-
-\cs_new_protected:Nn \__projlib_datetime_date_parse_month_day_year:n
- {
- \regex_match:nnTF { \A \d{1,2}(|-\d{1,2})-\d{4} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \seq_pop_right:NN \l__projlib_datetime_date_seq \l_tmpa_tl
- \seq_put_left:NV \l__projlib_datetime_date_seq \l_tmpa_tl
- }
- {
- \regex_match:nnT { \A \d{1,2}-\d{1,2} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \seq_put_left:Nn \l__projlib_datetime_date_seq {}
- }
- }
- }
-
-\cs_new_protected:Nn \__projlib_datetime_date_parse_day_month_year:n
- {
- \regex_match:nnTF { \A \d{1,2}(|-\d{1,2})-\d{4} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \seq_reverse:N \l__projlib_datetime_date_seq
- }
- {
- \regex_match:nnT { \A \d{1,2}-\d{1,2} \Z } { #1 }
- {
- \seq_set_split:Nnn \l__projlib_datetime_date_seq { - } { #1 }
- \seq_reverse:N \l__projlib_datetime_date_seq
- \seq_put_left:Nn \l__projlib_datetime_date_seq {}
- }
- }
- }
-
-\cs_new:Nn \__projlib_datetime_input_format_to_str:
- {
- \str_case_e:nn { \g__projlib_datetime_input_format_tl }
- {
- { year-month-day } { year_month_day }
- { month-day-year } { month_day_year }
- { day-month-year } { day_month_year }
- }
- }
-
-\cs_new_protected:Nn \__projlib_datetime_display_date_according_to_format:nn
- {
- \cs_if_exist_use:c { __projlib_datetime_date_parse_ \__projlib_datetime_input_format_to_str: :n } { #1 }
- \str_case_e:nnF { \l__projlib_datetime_output_format_tl }
- {
- { only-year-month }
- {
- \cs_if_exist_use:c { projlib_datetime_display_year_month #2 _ \languagename :nn }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } }
- }
- { only-month-day }
- {
- \cs_if_exist_use:c { projlib_datetime_display_month_day #2 _ \languagename :nn }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } }
- }
- { only-year }
- {
- \cs_if_exist_use:c { projlib_datetime_display_year #2 _ \languagename :n }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } }
- }
- { only-month }
- {
- \cs_if_exist_use:c { projlib_datetime_display_month #2 _ \languagename :n }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } }
- }
- { only-day }
- {
- \cs_if_exist_use:c { projlib_datetime_display_day #2 _ \languagename :n }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } }
- }
- }
- {
- \cs_if_exist_use:c { projlib_datetime_display_ \__projlib_datetime_input_format_to_str: #2 :n } { #1 }
- }
- }
-
-\NewDocumentCommand \ProjLibdate { O{} m }
- {
- \group_begin:
- \keys_set:nn { projlib-datetime-command } { #1 }
- \tl_set:Nn \l_tmpa_tl { #2 }
- \regex_replace_all:nnN { \D } { - } \l_tmpa_tl
- \__projlib_datetime_display_date_according_to_format:nn { \l_tmpa_tl } {}
- \group_end:
- }
-
-\NewDocumentCommand \ProjLibDate { O{} m }
- {
- \group_begin:
- \keys_set:nn { projlib-datetime-command } { #1 }
- \tl_set:Nn \l_tmpa_tl { #2 }
- \regex_replace_all:nnN { \D } { - } \l_tmpa_tl
- \__projlib_datetime_display_date_according_to_format:nn { \l_tmpa_tl } { _uppercase }
- \group_end:
- }
-
-
-\int_new:N \l__projlib_datetime_day_of_week_day_int
-\int_new:N \l__projlib_datetime_day_of_week_month_int
-\int_new:N \l__projlib_datetime_day_of_week_year_int
-\int_new:N \l__projlib_datetime_day_of_week_century_int
-\int_new:N \l__projlib_datetime_day_of_week_result_int
-\cs_new:Nn \__projlib_datetime_calculate_day_of_week_with_year_month_day:nnn
- {
- \int_set:Nn \l__projlib_datetime_day_of_week_day_int { #3 }
- \int_compare:nNnTF { #2 } < { 3 }
- {
- \int_set:Nn \l__projlib_datetime_day_of_week_year_int { \int_eval:n { #1 - 1 } }
- }
- {
- \int_set:Nn \l__projlib_datetime_day_of_week_year_int { #1 }
- }
- \int_set:Nn \l__projlib_datetime_day_of_week_century_int { \int_eval:n { \l__projlib_datetime_day_of_week_year_int / 100 } }
- \int_set:Nn \l__projlib_datetime_day_of_week_year_int { \int_mod:nn { \l__projlib_datetime_day_of_week_year_int } { 100 } }
- \int_set:Nn \l__projlib_datetime_day_of_week_month_int
- {
- \int_case:nnF { #2 }
- {
- { 1 } { 0 }
- { 2 } { 3 }
- { 3 } { 2 }
- { 4 } { 5 }
- { 5 } { 0 }
- { 6 } { 3 }
- { 7 } { 5 }
- { 8 } { 1 }
- { 9 } { 4 }
- { 10 } { 6 }
- { 11 } { 2 }
- { 12 } { 4 }
- } { 0 }
- }
- \int_set:Nn \l__projlib_datetime_day_of_week_result_int
- {
- \int_eval:n
- {
- \l__projlib_datetime_day_of_week_day_int
- + \l__projlib_datetime_day_of_week_month_int
- +\l__projlib_datetime_day_of_week_year_int
- + \int_div_truncate:nn { \l__projlib_datetime_day_of_week_year_int } { 4 }
- + \int_div_truncate:nn { \l__projlib_datetime_day_of_week_century_int } { 4 }
- - 2 * \l__projlib_datetime_day_of_week_century_int
- }
- }
- \int_set:Nn \l__projlib_datetime_day_of_week_result_int
- {
- \int_mod:nn { \l__projlib_datetime_day_of_week_result_int } { 7 }
- }
- \int_compare:nNnT { \l__projlib_datetime_day_of_week_result_int } < { 1 }
- {
- \int_set:Nn \l__projlib_datetime_day_of_week_result_int
- {
- \int_eval:n { \l__projlib_datetime_day_of_week_result_int + 7 }
- }
- }
- }
-
-
-\cs_new_protected:Nn \projlib_datetime_display_week:n
- {
- \__projlib_datetime_display_week_according_to_format:en { #1 } {}
- }
-
-\cs_new_protected:Nn \projlib_datetime_display_week_uppercase:n
- {
- \__projlib_datetime_display_week_according_to_format:en { #1 } { _uppercase }
- }
-
-\cs_new_protected:Nn \__projlib_datetime_display_week_according_to_format:nn
- {
- \projlib_datetime_calculate_week_according_to_format:n { #1 }
- \cs_if_exist_use:c { projlib_datetime_display_week #2 _ \languagename :n } { \l__projlib_datetime_day_of_week_result_int }
- }
-\cs_generate_variant:Nn \__projlib_datetime_display_week_according_to_format:nn { en }
-
-
-\cs_new_protected:Nn \projlib_datetime_calculate_week_according_to_format:n
- {
- \cs_if_exist_use:c { __projlib_datetime_date_parse_ \__projlib_datetime_input_format_to_str: :n } { #1 }
- \__projlib_datetime_calculate_day_of_week_with_year_month_day:nnn
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 1 } } }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 2 } } }
- { \int_eval:n { \seq_item:Nn \l__projlib_datetime_date_seq { 3 } } }
- }
-
-
-% For each language, there are 7 groups of functions:
-% 1) \projlib_datetime_display_year_month_day_<languagename>:nnn
-% \projlib_datetime_display_year_month_day_uppercase_<languagename>:nnn
-% 2) \projlib_datetime_display_year_month_<languagename>:nn
-% \projlib_datetime_display_year_month_uppercase_<languagename>:nn
-% 3) \projlib_datetime_display_month_day_<languagename>:nn
-% \projlib_datetime_display_month_day_uppercase_<languagename>:nn
-% 4) \projlib_datetime_display_year_<languagename>:n
-% \projlib_datetime_display_year_uppercase_<languagename>:n
-% 5) \projlib_datetime_display_month_<languagename>:n
-% \projlib_datetime_display_month_uppercase_<languagename>:n
-% 6) \projlib_datetime_display_day_<languagename>:n
-% \projlib_datetime_display_day_uppercase_<languagename>:n
-% 7) \projlib_datetime_display_week_<languagename>:n
-% \projlib_datetime_display_week_uppercase_<languagename>:n
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_english:nnn
- {
- \projlib_datetime_display_month_day_english:nn { #2 } { #3 }
- ,\nobreakspace
- \projlib_datetime_display_year_english:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_english:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_english:nnn
- {
- \projlib_datetime_display_month_day_uppercase_english:nn { #2 } { #3 }
- ,\nobreakspace
- \projlib_datetime_display_year_english:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_english:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_english:nn
- {
- \projlib_datetime_display_month_english:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_english:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_english:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_uppercase_english:nn
- {
- \projlib_datetime_display_month_uppercase_english:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_english:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_english:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_english:nn
- {
- \projlib_datetime_display_month_english:n { #1 }
- \nobreakspace
- \projlib_datetime_display_day_english:n { #2 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_english:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_uppercase_english:nn
- {
- \projlib_datetime_display_month_uppercase_english:n { #1 }
- \nobreakspace
- \projlib_datetime_display_day_english:n { #2 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_english:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_english:n { #1 }
-\cs_new:Nn \projlib_datetime_display_year_uppercase_english:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_month_english:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { January }
- { 2 } { February }
- { 3 } { March }
- { 4 } { April }
- { 5 } { May }
- { 6 } { June }
- { 7 } { July }
- { 8 } { August }
- { 9 } { September }
- { 10 } { October }
- { 11 } { November }
- { 12 } { December }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_month_uppercase_english:n
- {
- \projlib_datetime_display_month_english:n { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_day_english:n { #1 }
-\cs_new:Nn \projlib_datetime_display_day_uppercase_english:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_week_english:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Monday }
- { 2 } { Tuesday }
- { 3 } { Wednesday }
- { 4 } { Thursday }
- { 5 } { Friday }
- { 6 } { Saturday }
- { 7 } { Sunday }
- } { ??? }
- }
-
-\cs_new:Nn \projlib_datetime_display_week_uppercase_english:n
- {
- \projlib_datetime_display_week_english:n { #1 }
- }
-
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_french:nnn
- {
- \projlib_datetime_display_month_day_french:nn { #2 } { #3 }
- \nobreakspace
- \projlib_datetime_display_year_french:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_french:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_french:nnn
- {
- \projlib_datetime_display_month_day_uppercase_french:nn { #2 } { #3 }
- \nobreakspace
- \projlib_datetime_display_year_french:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_french:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_french:nn
- {
- \projlib_datetime_display_month_french:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_french:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_french:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_uppercase_french:nn
- {
- \projlib_datetime_display_month_uppercase_french:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_french:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_french:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_french:nn
- {
- \projlib_datetime_display_day_french:n { #2 }
- \nobreakspace
- \projlib_datetime_display_month_french:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_french:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_uppercase_french:nn
- {
- \projlib_datetime_display_month_day_french:nn { #1 } { #2 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_french:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_french:n { #1 }
-\cs_new:Nn \projlib_datetime_display_year_uppercase_french:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_month_french:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { janvier }
- { 2 } { février }
- { 3 } { mars }
- { 4 } { avril }
- { 5 } { mai }
- { 6 } { juin }
- { 7 } { juillet }
- { 8 } { août }
- { 9 } { septembre }
- { 10 } { octobre }
- { 11 } { novembre }
- { 12 } { décembre }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_month_uppercase_french:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Janvier }
- { 2 } { Février }
- { 3 } { Mars }
- { 4 } { Avril }
- { 5 } { Mai }
- { 6 } { Juin }
- { 7 } { Juillet }
- { 8 } { Août }
- { 9 } { Septembre }
- { 10 } { Octobre }
- { 11 } { Novembre }
- { 12 } { Décembre }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_day_french:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { 1 \projlib_datetime_text_superscript:n { er } }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_day_uppercase_french:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { 1 \projlib_datetime_text_superscript:n { er } }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_week_french:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { lundi }
- { 2 } { mardi }
- { 3 } { mercredi }
- { 4 } { jeudi }
- { 5 } { vendredi }
- { 6 } { samedi }
- { 7 } { dimanche }
- } { ??? }
- }
-
-\cs_new:Nn \projlib_datetime_display_week_uppercase_french:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Lundi }
- { 2 } { Mardi }
- { 3 } { Mercredi }
- { 4 } { Jeudi }
- { 5 } { Vendredi }
- { 6 } { Samedi }
- { 7 } { Dimanche }
- } { ??? }
- }
-
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_ngerman:nnn
- {
- \projlib_datetime_display_month_day_ngerman:nn { #2 } { #3 }
- \nobreakspace
- \projlib_datetime_display_year_ngerman:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_ngerman:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_ngerman:nnn
- {
- \projlib_datetime_display_month_day_uppercase_ngerman:nn { #2 } { #3 }
- \nobreakspace
- \projlib_datetime_display_year_ngerman:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_ngerman:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_ngerman:nn
- {
- \projlib_datetime_display_month_ngerman:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_ngerman:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_ngerman:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_uppercase_ngerman:nn
- {
- \projlib_datetime_display_month_uppercase_ngerman:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_ngerman:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_ngerman:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_ngerman:nn
- {
- \projlib_datetime_display_day_ngerman:n { #2 }
- .\nobreakspace
- \projlib_datetime_display_month_ngerman:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_ngerman:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_uppercase_ngerman:nn
- {
- \projlib_datetime_display_month_day_ngerman:nn { #1 } { #2 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_ngerman:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_ngerman:n { #1 }
-\cs_new:Nn \projlib_datetime_display_year_uppercase_ngerman:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_month_ngerman:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Januar }
- { 2 } { Februar }
- { 3 } { März }
- { 4 } { April }
- { 5 } { Mai }
- { 6 } { Juni }
- { 7 } { Juli }
- { 8 } { August }
- { 9 } { September }
- { 10 } { Oktober }
- { 11 } { November }
- { 12 } { Dezember }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_month_uppercase_ngerman:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Januar }
- { 2 } { Februar }
- { 3 } { März }
- { 4 } { April }
- { 5 } { Mai }
- { 6 } { Juni }
- { 7 } { Juli }
- { 8 } { August }
- { 9 } { September }
- { 10 } { Oktober }
- { 11 } { November }
- { 12 } { Dezember }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_day_ngerman:n { #1 }
-\cs_new:Nn \projlib_datetime_display_day_uppercase_ngerman:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_week_ngerman:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Montag }
- { 2 } { Dienstag }
- { 3 } { Mittwoch }
- { 4 } { Donnerstag }
- { 5 } { Freitag }
- { 6 } { Samstag }
- { 7 } { Sonntag }
- } { ??? }
- }
-
-\cs_new:Nn \projlib_datetime_display_week_uppercase_ngerman:n
- {
- \projlib_datetime_display_week_ngerman:n { #1 }
- }
-
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_italian:nnn
- {
- \projlib_datetime_display_month_day_italian:nn { #2 } { #3 }
- \nobreakspace
- \projlib_datetime_display_year_italian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_italian:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_italian:nnn
- {
- \projlib_datetime_display_month_day_uppercase_italian:nn { #2 } { #3 }
- \nobreakspace
- \projlib_datetime_display_year_italian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_italian:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_italian:nn
- {
- \projlib_datetime_display_month_italian:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_italian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_italian:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_uppercase_italian:nn
- {
- \projlib_datetime_display_month_uppercase_italian:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_italian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_italian:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_italian:nn
- {
- \projlib_datetime_display_day_italian:n { #2 }
- \nobreakspace
- \projlib_datetime_display_month_italian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_italian:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_uppercase_italian:nn
- {
- \projlib_datetime_display_month_day_italian:nn { #1 } { #2 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_italian:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_italian:n { #1 }
-\cs_new:Nn \projlib_datetime_display_year_uppercase_italian:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_month_italian:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { gennaio }
- { 2 } { febbraio }
- { 3 } { marzo }
- { 4 } { aprile }
- { 5 } { maggio }
- { 6 } { giugno }
- { 7 } { luglio }
- { 8 } { agosto }
- { 9 } { settembre }
- { 10 } { ottobre }
- { 11 } { novembre }
- { 12 } { dicembre }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_month_uppercase_italian:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Gennaio }
- { 2 } { Febbraio }
- { 3 } { Marzo }
- { 4 } { Aprile }
- { 5 } { Maggio }
- { 6 } { Giugno }
- { 7 } { Luglio }
- { 8 } { Agosto }
- { 9 } { Settembre }
- { 10 } { Ottobre }
- { 11 } { Novembre }
- { 12 } { Dicembre }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_day_italian:n { #1 }
-\cs_new:Nn \projlib_datetime_display_day_uppercase_italian:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_week_italian:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { lunedì }
- { 2 } { martedì }
- { 3 } { mercoledì }
- { 4 } { giovedì }
- { 5 } { venerdì }
- { 6 } { sabato }
- { 7 } { domenica }
- } { ??? }
- }
-
-\cs_new:Nn \projlib_datetime_display_week_uppercase_italian:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Lunedì }
- { 2 } { Martedì }
- { 3 } { Mercoledì }
- { 4 } { Giovedì }
- { 5 } { Venerdì }
- { 6 } { Sabato }
- { 7 } { Domenica }
- } { ??? }
- }
-
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_portuguese:nnn
- {
- \projlib_datetime_display_month_day_portuguese:nn { #2 } { #3 }
- \nobreakspace de \nobreakspace
- \projlib_datetime_display_year_portuguese:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_portuguese:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_portuguese:nnn
- {
- \projlib_datetime_display_month_day_uppercase_portuguese:nn { #2 } { #3 }
- \nobreakspace de \nobreakspace
- \projlib_datetime_display_year_portuguese:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_portuguese:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_portuguese:nn
- {
- \projlib_datetime_display_month_portuguese:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_portuguese:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_portuguese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_uppercase_portuguese:nn
- {
- \projlib_datetime_display_month_uppercase_portuguese:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_portuguese:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_portuguese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_portuguese:nn
- {
- \projlib_datetime_display_day_portuguese:n { #2 }
- \nobreakspace de \nobreakspace
- \projlib_datetime_display_month_uppercase_portuguese:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_portuguese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_uppercase_portuguese:nn
- {
- \projlib_datetime_display_month_day_portuguese:nn { #1 } { #2 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_portuguese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_portuguese:n { #1 }
-\cs_new:Nn \projlib_datetime_display_year_uppercase_portuguese:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_month_portuguese:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { janeiro }
- { 2 } { fevereiro }
- { 3 } { março }
- { 4 } { abril }
- { 5 } { maio }
- { 6 } { junho }
- { 7 } { julho }
- { 8 } { agosto }
- { 9 } { setembro }
- { 10 } { outubro }
- { 11 } { novembro }
- { 12 } { dezembro }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_month_uppercase_portuguese:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Janeiro }
- { 2 } { Fevereiro }
- { 3 } { Março }
- { 4 } { Abril }
- { 5 } { Maio }
- { 6 } { Junho }
- { 7 } { Julho }
- { 8 } { Agosto }
- { 9 } { Setembro }
- { 10 } { Outubro }
- { 11 } { Novembro }
- { 12 } { Dezembro }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_day_portuguese:n { #1 }
-\cs_new:Nn \projlib_datetime_display_day_uppercase_portuguese:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_week_portuguese:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { segunda-feira }
- { 2 } { terça-feira }
- { 3 } { quarta-feira }
- { 4 } { quinta-feira }
- { 5 } { sexta-feira }
- { 6 } { sábado }
- { 7 } { domingo }
- } { ??? }
- }
-
-\cs_new:Nn \projlib_datetime_display_week_uppercase_portuguese:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Segunda-feira }
- { 2 } { Terça-feira }
- { 3 } { Quarta-feira }
- { 4 } { Quinta-feira }
- { 5 } { Sexta-feira }
- { 6 } { Sábado }
- { 7 } { Domingo }
- } { ??? }
- }
-
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_brazilian:nnn
- {
- \projlib_datetime_display_month_day_brazilian:nn { #2 } { #3 }
- \nobreakspace de \nobreakspace
- \projlib_datetime_display_year_brazilian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_brazilian:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_brazilian:nnn
- {
- \projlib_datetime_display_month_day_uppercase_brazilian:nn { #2 } { #3 }
- \nobreakspace de \nobreakspace
- \projlib_datetime_display_year_brazilian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_brazilian:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_brazilian:nn
- {
- \projlib_datetime_display_month_brazilian:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_brazilian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_brazilian:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_uppercase_brazilian:nn
- {
- \projlib_datetime_display_month_uppercase_brazilian:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_brazilian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_brazilian:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_brazilian:nn
- {
- \projlib_datetime_display_day_brazilian:n { #2 }
- \nobreakspace de \nobreakspace
- \projlib_datetime_display_month_uppercase_brazilian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_brazilian:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_uppercase_brazilian:nn
- {
- \projlib_datetime_display_month_day_brazilian:nn { #1 } { #2 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_brazilian:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_brazilian:n { #1 }
-\cs_new:Nn \projlib_datetime_display_year_uppercase_brazilian:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_month_brazilian:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { janeiro }
- { 2 } { fevereiro }
- { 3 } { março }
- { 4 } { abril }
- { 5 } { maio }
- { 6 } { junho }
- { 7 } { julho }
- { 8 } { agosto }
- { 9 } { setembro }
- { 10 } { outubro }
- { 11 } { novembro }
- { 12 } { dezembro }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_month_uppercase_brazilian:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Janeiro }
- { 2 } { Fevereiro }
- { 3 } { Março }
- { 4 } { Abril }
- { 5 } { Maio }
- { 6 } { Junho }
- { 7 } { Julho }
- { 8 } { Agosto }
- { 9 } { Setembro }
- { 10 } { Outubro }
- { 11 } { Novembro }
- { 12 } { Dezembro }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_day_brazilian:n { #1 }
-\cs_new:Nn \projlib_datetime_display_day_uppercase_brazilian:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_week_brazilian:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { segunda-feira }
- { 2 } { terça-feira }
- { 3 } { quarta-feira }
- { 4 } { quinta-feira }
- { 5 } { sexta-feira }
- { 6 } { sábado }
- { 7 } { domingo }
- } { ??? }
- }
-
-\cs_new:Nn \projlib_datetime_display_week_uppercase_brazilian:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Segunda-feira }
- { 2 } { Terça-feira }
- { 3 } { Quarta-feira }
- { 4 } { Quinta-feira }
- { 5 } { Sexta-feira }
- { 6 } { Sábado }
- { 7 } { Domingo }
- } { ??? }
- }
-
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_spanish:nnn
- {
- \projlib_datetime_display_month_day_spanish:nn { #2 } { #3 }
- \nobreakspace de \nobreakspace
- \projlib_datetime_display_year_spanish:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_spanish:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_spanish:nnn
- {
- \projlib_datetime_display_month_day_uppercase_spanish:nn { #2 } { #3 }
- \nobreakspace de \nobreakspace
- \projlib_datetime_display_year_spanish:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_spanish:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_spanish:nn
- {
- \projlib_datetime_display_month_spanish:n { #2 }
- \nobreakspace de \nobreakspace
- \projlib_datetime_display_year_spanish:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_spanish:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_uppercase_spanish:nn
- {
- \projlib_datetime_display_month_uppercase_spanish:n { #2 }
- \nobreakspace de \nobreakspace
- \projlib_datetime_display_year_spanish:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_spanish:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_spanish:nn
- {
- \projlib_datetime_display_day_spanish:n { #2 }
- \nobreakspace de \nobreakspace
- \projlib_datetime_display_month_spanish:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_spanish:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_uppercase_spanish:nn
- {
- \projlib_datetime_display_month_day_spanish:nn { #1 } { #2 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_spanish:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_spanish:n { #1 }
-\cs_new:Nn \projlib_datetime_display_year_uppercase_spanish:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_month_spanish:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { enero }
- { 2 } { febrero }
- { 3 } { marzo }
- { 4 } { abril }
- { 5 } { mayo }
- { 6 } { junio }
- { 7 } { julio }
- { 8 } { agosto }
- { 9 } { septiembre }
- { 10 } { octubre }
- { 11 } { noviembre }
- { 12 } { diciembre }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_month_uppercase_spanish:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Enero }
- { 2 } { Febrero }
- { 3 } { Marzo }
- { 4 } { Abril }
- { 5 } { Mayo }
- { 6 } { Junio }
- { 7 } { Julio }
- { 8 } { Agosto }
- { 9 } { Septiembre }
- { 10 } { Octubre }
- { 11 } { Noviembre }
- { 12 } { Diciembre }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_day_spanish:n { #1 }
-\cs_new:Nn \projlib_datetime_display_day_uppercase_spanish:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_week_spanish:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { lunes }
- { 2 } { martes }
- { 3 } { miércoles }
- { 4 } { jueves }
- { 5 } { viernes }
- { 6 } { sábado }
- { 7 } { domingo }
- } { ??? }
- }
-
-\cs_new:Nn \projlib_datetime_display_week_uppercase_spanish:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Lunes }
- { 2 } { Martes }
- { 3 } { Miércoles }
- { 4 } { Jueves }
- { 5 } { Viernes }
- { 6 } { Sábado }
- { 7 } { Domingo }
- } { ??? }
- }
-
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_schinese:nnn
- {
- #1 年 #2 月 #3 日
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_schinese:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_schinese:nnn
- {
- #1 年 #2 月 #3 日
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_schinese:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_schinese:nn
- {
- #1 年 #2 月
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_schinese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_uppercase_schinese:nn
- {
- #1 年 #2 月
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_schinese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_schinese:nn
- {
- #1 月 #2 日
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_schinese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_uppercase_schinese:nn
- {
- #1 月 #2 日
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_schinese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_schinese:n { #1 年 }
-\cs_new:Nn \projlib_datetime_display_year_uppercase_schinese:n { #1 年 }
-\cs_new:Nn \projlib_datetime_display_month_schinese:n { #1 月 }
-\cs_new:Nn \projlib_datetime_display_month_uppercase_schinese:n { #1 月 }
-\cs_new:Nn \projlib_datetime_display_day_schinese:n { #1 }
-\cs_new:Nn \projlib_datetime_display_day_uppercase_schinese:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_week_schinese:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { 星期一 }
- { 2 } { 星期二 }
- { 3 } { 星期三 }
- { 4 } { 星期四 }
- { 5 } { 星期五 }
- { 6 } { 星期六 }
- { 7 } { 星期日 }
- } { ??? }
- }
-
-\cs_new:Nn \projlib_datetime_display_week_uppercase_schinese:n
- {
- \projlib_datetime_display_week_schinese:n { #1 }
- }
-
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_tchinese:nnn
- {
- #1 年 #2 月 #3 日
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_tchinese:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_tchinese:nnn
- {
- #1 年 #2 月 #3 日
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_tchinese:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_tchinese:nn
- {
- #1 年 #2 月
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_tchinese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_uppercase_tchinese:nn
- {
- #1 年 #2 月
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_tchinese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_tchinese:nn
- {
- #1 月 #2 日
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_tchinese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_uppercase_tchinese:nn
- {
- #1 月 #2 日
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_tchinese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_tchinese:n { #1 年 }
-\cs_new:Nn \projlib_datetime_display_year_uppercase_tchinese:n { #1 年 }
-\cs_new:Nn \projlib_datetime_display_month_tchinese:n { #1 月 }
-\cs_new:Nn \projlib_datetime_display_month_uppercase_tchinese:n { #1 月 }
-\cs_new:Nn \projlib_datetime_display_day_tchinese:n { #1 }
-\cs_new:Nn \projlib_datetime_display_day_uppercase_tchinese:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_week_tchinese:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { 星期一 }
- { 2 } { 星期二 }
- { 3 } { 星期三 }
- { 4 } { 星期四 }
- { 5 } { 星期五 }
- { 6 } { 星期六 }
- { 7 } { 星期日 }
- } { ??? }
- }
-
-\cs_new:Nn \projlib_datetime_display_week_uppercase_tchinese:n
- {
- \projlib_datetime_display_week_tchinese:n { #1 }
- }
-
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_japanese:nnn
- {
- #1 年 #2 月 #3 日
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_japanese:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_japanese:nnn
- {
- #1 年 #2 月 #3 日
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_japanese:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_japanese:nn
- {
- #1 年 #2 月
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_japanese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_uppercase_japanese:nn
- {
- #1 年 #2 月
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_japanese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_japanese:nn
- {
- #1 月 #2 日
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_japanese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_uppercase_japanese:nn
- {
- #1 月 #2 日
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_japanese:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_japanese:n { #1 年 }
-\cs_new:Nn \projlib_datetime_display_year_uppercase_japanese:n { #1 年 }
-\cs_new:Nn \projlib_datetime_display_month_japanese:n { #1 月 }
-\cs_new:Nn \projlib_datetime_display_month_uppercase_japanese:n { #1 月 }
-\cs_new:Nn \projlib_datetime_display_day_japanese:n { #1 }
-\cs_new:Nn \projlib_datetime_display_day_uppercase_japanese:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_week_japanese:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { 月曜日 }
- { 2 } { 火曜日 }
- { 3 } { 水曜日 }
- { 4 } { 木曜日 }
- { 5 } { 金曜日 }
- { 6 } { 土曜日 }
- { 7 } { 日曜日 }
- } { ??? }
- }
-
-\cs_new:Nn \projlib_datetime_display_week_uppercase_japanese:n
- {
- \projlib_datetime_display_week_japanese:n { #1 }
- }
-
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_russian:nnn
- {
- \projlib_datetime_display_month_day_russian:nn { #2 } { #3 }
- \nobreakspace
- \projlib_datetime_display_year_russian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_russian:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_day_uppercase_russian:nnn
- {
- \projlib_datetime_display_month_day_uppercase_russian:nn { #2 } { #3 }
- \nobreakspace
- \projlib_datetime_display_year_russian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_day_uppercase_russian:nnn { VVV, eee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_russian:nn
- {
- \projlib_datetime_display_month_russian:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_russian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_russian:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_month_uppercase_russian:nn
- {
- \projlib_datetime_display_month_uppercase_russian:n { #2 }
- \nobreakspace
- \projlib_datetime_display_year_russian:n { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_year_month_uppercase_russian:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_russian:nn
- {
- \projlib_datetime_display_day_russian:n { #2 }
- \nobreakspace
- \int_case:nnF { #1 }
- {
- { 1 } { января }
- { 2 } { февраля }
- { 3 } { марта }
- { 4 } { апреля }
- { 5 } { мая }
- { 6 } { июня }
- { 7 } { июля }
- { 8 } { августа }
- { 9 } { сентября }
- { 10 } { октября }
- { 11 } { ноября }
- { 12 } { декабря }
- } { #1 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_russian:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_month_day_uppercase_russian:nn
- {
- \projlib_datetime_display_month_day_russian:nn { #1 } { #2 }
- }
-\cs_generate_variant:Nn \projlib_datetime_display_month_day_uppercase_russian:nn { VV, ee }
-
-\cs_new:Nn \projlib_datetime_display_year_russian:n { #1 ~ г. }
-\cs_new:Nn \projlib_datetime_display_year_uppercase_russian:n { #1 ~ г. }
-
-\cs_new:Nn \projlib_datetime_display_month_russian:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { январь }
- { 2 } { февраль }
- { 3 } { март }
- { 4 } { апрель }
- { 5 } { май }
- { 6 } { июнь }
- { 7 } { июль }
- { 8 } { август }
- { 9 } { сентябрь }
- { 10 } { октябрь }
- { 11 } { ноябрь }
- { 12 } { декабрь }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_month_uppercase_russian:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Январь }
- { 2 } { Февраль }
- { 3 } { Март }
- { 4 } { Апрель }
- { 5 } { Май }
- { 6 } { Июнь }
- { 7 } { Июль }
- { 8 } { Август }
- { 9 } { Сентябрь }
- { 10 } { Октябрь }
- { 11 } { Ноябрь }
- { 12 } { Декабрь }
- } { #1 }
- }
-
-\cs_new:Nn \projlib_datetime_display_day_russian:n { #1 }
-\cs_new:Nn \projlib_datetime_display_day_uppercase_russian:n { #1 }
-
-\cs_new:Nn \projlib_datetime_display_week_russian:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { понедельник }
- { 2 } { вторник }
- { 3 } { среда }
- { 4 } { четверг }
- { 5 } { пятница }
- { 6 } { суббота }
- { 7 } { воскресенье }
- } { ??? }
- }
-\cs_new:Nn \projlib_datetime_display_week_uppercase_russian:n
- {
- \int_case:nnF { #1 }
- {
- { 1 } { Понедельник }
- { 2 } { Вторник }
- { 3 } { Среда }
- { 4 } { Четверг }
- { 5 } { Пятница }
- { 6 } { Суббота }
- { 7 } { Воскресенье }
- } { ??? }
- }
-
-\endinput
-%%
-%% End of file `projlib-datetime.sty'.
diff --git a/macros/latex/contrib/projlib/projlib-draft.sty b/macros/latex/contrib/projlib/projlib-draft.sty
deleted file mode 100644
index 6c7fe818c7..0000000000
--- a/macros/latex/contrib/projlib/projlib-draft.sty
+++ /dev/null
@@ -1,140 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-\RequirePackage{l3keys2e}
-\ProvidesExplPackage
- {projlib-draft}
- {2022/02/24} {}
- {Useful commands during draft stage}
-
-\keys_define:nn { projlib-draft }
- {
- , draft .bool_set:N = \l__projlib_draft_fast_bool
- , draft .initial:n = { false }
- , fast .bool_set:N = \l__projlib_draft_fast_bool
- , unknown .code:n = {}
- }
-\ProcessKeysOptions { projlib-draft }
-
-\RequirePackage { projlib-language }
-\RequirePackage { xcolor }
-
-\bool_if:NTF \l__projlib_draft_fast_bool
- {
- \NewDocumentCommand \projlib_draft_plain_box { O{-paper} m }
- {
- \group_begin:
- \color { #1 }
- \dim_set:Nn \fboxsep { 1.5pt }
- \dim_set:Nn \fboxrule { 1.5pt }
- \fbox { #2 }
- \group_end:
- }
- }
- {
- \PassOptionsToPackage { many } { tcolorbox }
- \RequirePackage { tcolorbox }
- \NewTCBox \projlib_draft_plain_box { O{-paper} }
- {
- enhanced~jigsaw, breakable,
- on~line, arc = 1.2pt, outer~arc = 1pt,
- colframe = #1, colupper = #1, opacityback = 0,
- boxsep = 1pt, boxrule = 1.2pt,
- left = 1pt, right = 1pt, top = 0pt, bottom = 0pt,
- }
- }
-
-\projlib_langauge_define_multilingual_text:Nn \__dnf_text
- {
- EN = To\ be\ finished ,
- FR = Pas\ encore\ fini ,
- DE = Nicht\ beendet ,
- IT = Per\ essere\ finito ,
- PT = Não\ terminou ,
- BR = Não\ terminou ,
- ES = Estar\ terminado ,
- CN = 这里尚未完成 ,
- TC = 這裡尚未完成 ,
- JP = 終わってない ,
- RU = Не\ закончен ,
- }
-
-\projlib_langauge_define_multilingual_text:Nn \__dnf_report_text
- {
- EN = { Below\ is\ a\ list\ of\ outstanding\ items,
- \ followed\ by\ the\ corresponding\ page\ numbers. } ,
- FR = { Voici\ la\ liste\ des\ éléments\ en\ suspens,
- \ suivie\ des\ numéros\ de\ page\ correspondants. } ,
- DE = { Unten\ ist\ eine\ Liste\ der\ ausstehenden\ Posten,
- \ gefolgt\ von\ den\ entsprechenden\ Seitenzahlen. } ,
- IT = { Qui\ sotto\ c'è\ una\ lista\ di\ voci\ in\ sospeso,
- \ seguita\ dai\ numeri\ di\ pagina\ corrispondenti. } ,
- PT = { Abaixo\ está\ uma\ lista\ de\ itens\ pendentes,
- \ seguida\ dos\ números\ de\ página\ correspondentes. } ,
- BR = { Abaixo\ está\ uma\ lista\ de\ itens\ pendentes,
- \ seguida\ dos\ números\ de\ página\ correspondentes. } ,
- ES = { Aquí está\ la\ lista\ de\ elementos\ pendientes,
- \ seguida\ de\ los\ números\ de\ página\ correspondientes. } ,
- CN = { 以下是未完成事项列表,括号内注明了对应的页码。 } ,
- TC = { 以下是未完成事項的列表,括號內註明了對應頁碼。 } ,
- JP = { 以下は、未解決の項目とそれに対応するページ番号の一覧です。 } ,
- RU = { Ниже\ приведен\ список\ невыполненных\ пунктов
- \ с\ соответствующими\ номерами\ страниц\ в\ скобках. } ,
- }
-
-\tl_new:c { __dnf_font }
-\tl_gset:cn { __dnf_font } { \normalfont \ttfamily \bfseries \small }
-
-\definecolor { __dnf_color } { RGB } { 21, 122, 20 }
-
-\newcounter { __dnf_counter }
-
-\tl_new:N \g__projlib_draft_dnf_report_tl
-
-\NewDocumentCommand \dnf { d<> }
- {
- \noindent
- \projlib_draft_plain_box [ __dnf_color ]
- {
- \stepcounter { __dnf_counter }
- \__dnf_font
- \__dnf_text
- \c_space_tl
- \# \the__dnf_counter
- \IfNoValueF { #1 } { \, : ~ #1 }
- \tl_gput_right:Nx \g__projlib_draft_dnf_report_tl
- {
- \# \,
- \int_value:w \the__dnf_counter
- \c_space_tl \c_space_tl
- $\langle$
- \skip_horizontal:n { 0.1em }
- \cs_if_exist:cTF { hyperlink }
- {
- \exp_not:N \hyperlink { page.\thepage } { \thepage }
- }
- {
- \thepage
- }
- \skip_horizontal:n { 0.1em }
- $\rangle$
- \c_space_tl
- \IfNoValueF { #1 } { : ~ #1 }
- \\
- }
- }
- }
-
-\hook_gput_code:nnn { enddocument } { projlib-draft }
- {
- \tl_if_blank:VF \g__projlib_draft_dnf_report_tl
- {
- \clearpage \noindent
- \color { __dnf_color }
- \__dnf_font
- \__dnf_report_text \\[0.75\baselineskip]
- \g__projlib_draft_dnf_report_tl
- }
- }
-
-\endinput
-%%
-%% End of file `projlib-draft.sty'.
diff --git a/macros/latex/contrib/projlib/projlib-font.sty b/macros/latex/contrib/projlib/projlib-font.sty
deleted file mode 100644
index c308c1c66d..0000000000
--- a/macros/latex/contrib/projlib/projlib-font.sty
+++ /dev/null
@@ -1,144 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-\RequirePackage{l3keys2e}
-\ProvidesExplPackage
- {projlib-font}
- {2022/03/01} {}
- {Font selection and configuration}
-
-\keys_define:nn { projlib-font }
- {
- , useosf .bool_set:N = \l__projlib_font_useosf_bool
- , useosf .initial:n = { false }
- , old-style-figures.bool_set:N = \l__projlib_font_useosf_bool
- , old~style~figures.bool_set:N = \l__projlib_font_useosf_bool
- , old style figures.bool_set:N = \l__projlib_font_useosf_bool
- , lmodern .bool_set:N = \l__projlib_font_lmodern_bool
- , lmodern .initial:n = { false }
- , latin-modern .bool_set:N = \l__projlib_font_lmodern_bool
- , latin~modern .bool_set:N = \l__projlib_font_lmodern_bool
- , latin modern .bool_set:N = \l__projlib_font_lmodern_bool
- , palatino .bool_set:N = \l__projlib_font_palatino_bool
- , palatino .initial:n = { false }
- , times .bool_set:N = \l__projlib_font_times_bool
- , times .initial:n = { false }
- , garamond .bool_set:N = \l__projlib_font_garamond_bool
- , garamond .initial:n = { false }
- , noto .bool_set:N = \l__projlib_font_noto_bool
- , noto .initial:n = { false }
- , biolinum .bool_set:N = \l__projlib_font_biolinum_bool
- , biolinum .initial:n = { false }
- , unknown .code:n = {}
- }
-\ProcessKeysOptions { projlib-font }
-
-\RequirePackage { setspace }
-
-\cs_new:Nn \projlib_font_set_linespacing_latin:n
- {
- \cs_if_exist:NTF \projlib_language_set_linespacing_latin:n
- {
- \projlib_language_set_linespacing_latin:n { #1 }
- }
- {
- #1
- }
- }
-
-\bool_if:NT \l__projlib_font_lmodern_bool
- {
- \RequirePackage { amssymb }
- \bool_if:NTF \l__projlib_font_useosf_bool
- {
- \RequirePackage { cfr-lm }
- }
- {
- \RequirePackage { lmodern }
- }
- \projlib_font_set_linespacing_latin:n { \setstretch { 1.00 } }
- }
-
-\bool_if:NT \l__projlib_font_palatino_bool
- {
- \RequirePackage { mathpazo }
- \PassOptionsToPackage { defaultsups } { newpxtext }
- \RequirePackage { newpxtext }
- \cs_undefine:c { openbox }
- \projlib_font_set_linespacing_latin:n { \setstretch { 1.07 } }
- \bool_if:NT \l__projlib_font_useosf_bool { \useosf }
- }
-
-\bool_if:NT \l__projlib_font_times_bool
- {
- \PassOptionsToPackage { defaultsups } { newtxtext }
- \RequirePackage { newtxtext }
- \RequirePackage { newtxmath }
- \cs_undefine:c { openbox }
- \projlib_font_set_linespacing_latin:n { \setstretch { 1.00 } }
- \bool_if:NT \l__projlib_font_useosf_bool { \useosf }
- }
-
-\bool_if:NT \l__projlib_font_garamond_bool
- {
- \bool_if:NF \l__projlib_font_useosf_bool
- {
- \PassOptionsToPackage { lining } { ebgaramond }
- }
- \RequirePackage [ cmintegrals, cmbraces ] { newtxmath }
- \cs_undefine:c { openbox }
- \RequirePackage { ebgaramond-maths }
- \RequirePackage { ebgaramond }
- \projlib_font_set_linespacing_latin:n { \setstretch { 1.00 } }
- }
-
-\bool_if:NT \l__projlib_font_noto_bool
- {
- \bool_if:NT \l__projlib_font_useosf_bool
- {
- \PassOptionsToPackage { oldstyle } { notomath }
- }
- \RequirePackage { anyfontsize }
- \RequirePackage { notomath }
- \projlib_font_set_linespacing_latin:n { \setstretch { 1.00 } }
- }
-
-\bool_if:NT \l__projlib_font_biolinum_bool
- {
- \RequirePackage [ OT1 ] { eulervm }
- \sys_if_engine_pdftex:TF
- {
- \bool_if:NT \l__projlib_font_useosf_bool
- {
- \PassOptionsToPackage { osf } { biolinum }
- }
- \RequirePackage { biolinum }
- \tl_gset:Nn \familydefault { \biolinum@family }
- }
- {
- \PassOptionsToPackage { no-math } { fontspec }
- \RequirePackage { fontspec }
- \bool_if:NTF \l__projlib_font_useosf_bool
- {
- \setmainfont { LinBiolinum_R.otf } [
- BoldFont = LinBiolinum_RB.otf ,
- ItalicFont = LinBiolinum_RI.otf ,
- BoldItalicFont = LinBiolinum_RBO.otf ,
- Numbers = OldStyle , ]
- }
- {
- \setmainfont { LinBiolinum_R.otf } [
- BoldFont = LinBiolinum_RB.otf ,
- ItalicFont = LinBiolinum_RI.otf ,
- BoldItalicFont = LinBiolinum_RBO.otf , ]
- }
- }
- \projlib_font_set_linespacing_latin:n { \setstretch { 1.05 } }
- \RequirePackage [ italic, defaultmathsizes ] { mathastext }
- }
-
-\RequirePackage { silence }
-\WarningFilter { microtype } { Unable }
-\RequirePackage { microtype }
-
-\endinput
-%%
-%% End of file `projlib-font.sty'.
diff --git a/macros/latex/contrib/projlib/projlib-language.sty b/macros/latex/contrib/projlib/projlib-language.sty
deleted file mode 100644
index 4a67c6a018..0000000000
--- a/macros/latex/contrib/projlib/projlib-language.sty
+++ /dev/null
@@ -1,512 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-\RequirePackage{l3keys2e}
-\ProvidesExplPackage
- {projlib-language}
- {2022/03/09} {}
- {Multi-language configuration}
-
-\clist_const:Nn \c__projlib_language_supported_clist
- {
- english ,
- french ,
- ngerman ,
- italian ,
- portuguese ,
- brazilian ,
- spanish ,
- schinese ,
- tchinese ,
- japanese ,
- russian ,
- }
-
-\clist_new:N \g__projlib_language_babel_option_clist
-
-\str_new:N \g__projlib_language_main_str
-
-\bool_new:N \g__projlib_language_enabled_all_bool
-\bool_gset_true:N \g__projlib_language_enabled_all_bool
-
-\clist_map_inline:Nn \c__projlib_language_supported_clist
- {
- \bool_new:c { g__projlib_language_enabled_ #1 _bool }
- \bool_gset_false:c { g__projlib_language_enabled_ #1 _bool }
- }
-
-\cs_new:Nn \projlib_language_set_option_no_babel:n
- {
- \bool_gset_false:N \g__projlib_language_enabled_all_bool
- \bool_gset_true:c { g__projlib_language_enabled_ #1 _bool }
- \str_if_empty:NT \g__projlib_language_main_str
- {
- \str_gset:Nn \g__projlib_language_main_str { #1 }
- }
- }
-\cs_new:Nn \projlib_language_set_option:n
- {
- \projlib_language_set_option_no_babel:n { #1 }
- \clist_gput_left:Nn \g__projlib_language_babel_option_clist { #1 }
- }
-
-\keys_define:nn { projlib-language }
- {
- , EN .meta:n = { english }
- , english .code:n = { \projlib_language_set_option:n { english } }
- , English .meta:n = { english }
- , FR .meta:n = { french }
- , french .code:n = { \projlib_language_set_option:n { french } }
- , French .meta:n = { french }
- , DE .meta:n = { ngerman }
- , german .meta:n = { ngerman }
- , ngerman .code:n = { \projlib_language_set_option:n { ngerman } }
- , German .meta:n = { ngerman }
- , IT .meta:n = { italian }
- , italian .code:n = { \projlib_language_set_option:n { italian } }
- , Italian .meta:n = { italian }
- , PT .meta:n = { portuguese }
- , portuguese .code:n = { \projlib_language_set_option:n { portuguese } }
- , Portuguese .meta:n = { portuguese }
- , BR .meta:n = { brazilian }
- , brazilian .code:n = { \projlib_language_set_option:n { brazilian } }
- , Brazilian .meta:n = { brazilian }
- , ES .meta:n = { spanish }
- , spanish .code:n = { \clist_gput_left:Nn \g__projlib_language_babel_option_clist { es-notilde, es-noquoting }
- \projlib_language_set_option:n { spanish } }
- , Spanish .meta:n = { spanish }
- , CN .meta:n = { schinese }
- , chinese .meta:n = { schinese }
- , schinese .code:n = { \projlib_language_set_option_no_babel:n { schinese } }
- , simplified-chinese .meta:n = { schinese }
- , simplified~chinese .meta:n = { schinese }
- , simplified chinese .meta:n = { schinese }
- , Chinese .meta:n = { schinese }
- , SChinese .meta:n = { schinese }
- , Simplified-Chinese .meta:n = { schinese }
- , Simplified~Chinese .meta:n = { schinese }
- , Simplified Chinese .meta:n = { schinese }
- , TC .meta:n = { tchinese }
- , tchinese .code:n = { \projlib_language_set_option_no_babel:n { tchinese } }
- , traditional-chinese .meta:n = { tchinese }
- , traditional~chinese .meta:n = { tchinese }
- , traditional chinese .meta:n = { tchinese }
- , TChinese .meta:n = { tchinese }
- , Traditional-Chinese .meta:n = { tchinese }
- , Traditional~Chinese .meta:n = { tchinese }
- , Traditional Chinese .meta:n = { tchinese }
- , JP .meta:n = { japanese }
- , japanese .code:n = { \projlib_language_set_option:n { japanese } }
- , Japanese .meta:n = { japanese }
- , RU .meta:n = { russian }
- , russian .code:n = { \projlib_language_set_option:n { russian } }
- , Russian .meta:n = { russian }
- , unknown .code:n = {}
- }
-\ProcessKeysOptions { projlib-language }
-
-\cs_new_protected:Nn \projlib_language_clear_global_option:n
- {
- \clist_remove_all:cn { @classoptionslist } { #1 }
- }
-
-\projlib_language_clear_global_option:n { chinese }
-\projlib_language_clear_global_option:n { Chinese }
-
-\clist_gput_right:Nn \g__projlib_language_babel_option_clist { shorthands = off }
-
-\str_if_empty:NT \g__projlib_language_main_str
- {
- \str_gset:Nn \g__projlib_language_main_str { english }
- }
-
-\bool_if:NT \g__projlib_language_enabled_all_bool
- {
- \clist_map_inline:Nn \c__projlib_language_supported_clist
- {
- \bool_gset_true:c { g__projlib_language_enabled_ #1 _bool }
- }
- }
-
-
-\cs_new:Nn \projlib_language_str_to_languagename:n
- {
- \str_case_e:nnF { \str_foldcase:n { #1 } }
- {
- { all } { common }
- { common } { common }
- { cn } { schinese }
- { chinese } { schinese }
- { schinese } { schinese }
- { simplifiedchinese } { schinese }
- { simplified-chinese } { schinese }
- { tc } { tchinese }
- { tchinese } { tchinese }
- { traditionalchinese } { tchinese }
- { traditional-chinese} { tchinese }
- { jp } { japanese }
- { japanese } { japanese }
- { en } { english }
- { english } { english }
- { fr } { french }
- { french } { french }
- { de } { ngerman }
- { german } { ngerman }
- { ngerman } { ngerman }
- { it } { italian }
- { italian } { italian }
- { pt } { portuguese }
- { portuguese } { portuguese }
- { br } { brazilian }
- { brazilian } { brazilian }
- { es } { spanish }
- { spanish } { spanish }
- { ru } { russian }
- { russian } { russian }
- }
- { #1 }
- }
-
-\cs_new:Nn \projlib_language_str_to_languagetype:n
- {
- \str_case_e:nn { \str_foldcase:n { #1 } }
- {
- { cn } { cjk }
- { chinese } { cjk }
- { schinese } { cjk }
- { simplifiedchinese } { cjk }
- { simplified-chinese } { cjk }
- { tc } { cjk }
- { tchinese } { cjk }
- { traditionalchinese } { cjk }
- { traditional-chinese} { cjk }
- { jp } { cjk }
- { japanese } { cjk }
- { en } { latin }
- { english } { latin }
- { fr } { latin }
- { french } { latin }
- { de } { latin }
- { german } { latin }
- { ngerman } { latin }
- { it } { latin }
- { italian } { latin }
- { pt } { latin }
- { portuguese } { latin }
- { br } { latin }
- { brazilian } { latin }
- { es } { latin }
- { spanish } { latin }
- { ru } { latin }
- { russian } { latin }
- }
- }
-
-\sys_if_engine_pdftex:T
- {
- \RequirePackage [T1] { fontenc }
- }
-
-\bool_if:NTF \g__projlib_language_enabled_all_bool
- {
- \sys_if_engine_pdftex:F
- {
- \PassOptionsToPackage { japanese, russian } { babel }
- }
- \PassOptionsToPackage { italian, portuguese, brazilian, spanish, es-notilde, es-noquoting, ngerman, french, english, shorthands = off } { babel }
- }
- {
- \PassOptionsToPackage { \g__projlib_language_babel_option_clist } { babel }
- }
-
-\PassOptionsToPackage { italian, brazilian, spanish, ngerman, french, english } { cleveref }
-\RequirePackage { babel }
-
-
-\bool_if:NT \g__projlib_language_enabled_french_bool
- {
- \frenchsetup { PartNameFull = false }
- }
-
-\bool_if:NT \g__projlib_language_enabled_portuguese_bool
- {
- \NewCommandCopy \__projlib_language_babel_ord: \ord
- \cs_undefine:N \ord
- \hook_gput_code:nnn { begindocument } { projlib-language }
- {
- \cs_if_exist:NT \ord
- {
- \NewCommandCopy \__projlib_language_user_ord: \ord
- \cs_set_protected:Npn \ord
- {
- \mode_if_math:TF
- { \__projlib_language_user_ord: }
- { \__projlib_language_babel_ord: }
- }
- }
- }
- }
-
-\babelprovide { schinese }
-\babelprovide { tchinese }
-
-
-\NewCommandCopy \projlib_language_backup_today:n \today
-
-\tl_new:N \g_projlib_language_settings_common_tl
-\clist_map_inline:Nn \c__projlib_language_supported_clist
- {
- \tl_new:c { g_projlib_language_settings_ #1 _tl }
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_common_tl
- {
- \cs_if_exist:NT \ProjLibToday
- {
- \RenewCommandCopy \today \ProjLibToday
- }
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_schinese_tl
- {
- \g_projlib_language_settings_common_tl
- \tl_gset:Nn \languagename { schinese }
- \tl_gset:cn { abstractname } { 摘要 }
- \tl_gset:cn { proofname } { 证明 }
- \tl_gset:cn { contentsname } { 目录 }
- \tl_gset:cn { listfigurename } { 插图 }
- \tl_gset:cn { listtablename } { 表格 }
- \tl_gset:cn { figurename } { 图 }
- \tl_gset:cn { tablename } { 表 }
- \tl_gset:cn { indexname } { 索引 }
- \tl_gset:cn { appendixname } { 附录 }
- \tl_gset:cn { refname } { 参考文献 }
- \tl_gset:cn { bibname } { 参考文献 }
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_tchinese_tl
- {
- \g_projlib_language_settings_common_tl
- \tl_gset:Nn \languagename { tchinese }
- \tl_gset:cn { abstractname } { 摘要 }
- \tl_gset:cn { proofname } { 證明 }
- \tl_gset:cn { contentsname } { 目錄 }
- \tl_gset:cn { listfigurename } { 插圖 }
- \tl_gset:cn { listtablename } { 表格 }
- \tl_gset:cn { figurename } { 圖 }
- \tl_gset:cn { tablename } { 表 }
- \tl_gset:cn { indexname } { 索引 }
- \tl_gset:cn { appendixname } { 附錄 }
- \tl_gset:cn { refname } { 參考文獻 }
- \tl_gset:cn { bibname } { 參考文獻 }
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_japanese_tl
- {
- \selectlanguage { japanese }
- \g_projlib_language_settings_common_tl
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_english_tl
- {
- \selectlanguage { english }
- \g_projlib_language_settings_common_tl
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_french_tl
- {
- \selectlanguage { french }
- \g_projlib_language_settings_common_tl
- \tl_gset:cn { frenchpartname } { Partie }
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_ngerman_tl
- {
- \selectlanguage { ngerman }
- \g_projlib_language_settings_common_tl
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_italian_tl
- {
- \selectlanguage { italian }
- \g_projlib_language_settings_common_tl
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_portuguese_tl
- {
- \selectlanguage { portuguese }
- \g_projlib_language_settings_common_tl
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_brazilian_tl
- {
- \selectlanguage { brazilian }
- \g_projlib_language_settings_common_tl
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_spanish_tl
- {
- \selectlanguage { spanish }
- \g_projlib_language_settings_common_tl
- }
-
-\tl_gput_right:Nn \g_projlib_language_settings_russian_tl
- {
- \selectlanguage { russian }
- \g_projlib_language_settings_common_tl
- }
-
-\NewDocumentCommand \AddLanguageSetting { O{} m }
- {
- \IfNoValueTF { #1 }
- {
- \tl_gput_right:Nn \g_projlib_language_settings_common_tl { #2 }
- }
- {
- \tl_gput_right:cn { g_projlib_language_settings_ \projlib_language_str_to_languagename:n { #1 } _tl } { #2 }
- }
- }
-
-
-\RequirePackage { setspace }
-
-\tl_new:N \g_projlib_language_linespacing_latin_tl
-\tl_new:N \g_projlib_language_linespacing_cjk_tl
-
-\tl_gset:Nn \g_projlib_language_linespacing_latin_tl
- {
- \setstretch { 1.00 }
- }
-\tl_gset:Nn \g_projlib_language_linespacing_cjk_tl
- {
- \onehalfspacing
- }
-
-\cs_new:Nn \projlib_language_set_linespacing_latin:n
- {
- \tl_gset:Nn \g_projlib_language_linespacing_latin_tl { #1 }
- }
-\cs_new:Nn \projlib_language_set_linespacing_cjk:n
- {
- \tl_gset:Nn \g_projlib_language_linespacing_cjk_tl { #1 }
- }
-
-\tl_new:N \g_projlib_language_parindent_latin_tl
-\tl_new:N \g_projlib_language_parindent_cjk_tl
-
-\@ifclassloaded{beamer}
- {
- \tl_gset:Nn \g_projlib_language_parindent_latin_tl
- {
- \dim_set:Nn \parindent { 0em }
- }
- \tl_gset:Nn \g_projlib_language_parindent_cjk_tl
- {
- \dim_set:Nn \parindent { 0em }
- }
- }
- {
- \tl_gset:Nn \g_projlib_language_parindent_latin_tl
- {
- \dim_set:Nn \parindent { 1.5em }
- }
- \tl_gset:Nn \g_projlib_language_parindent_cjk_tl
- {
- \dim_set:Nn \parindent { 2em }
- }
- }
-
-\hook_gput_code:nnn { begindocument } { projlib-language }
- {
- \@ifpackageloaded{parskip}
- {
- \tl_gset:Nn \g_projlib_language_parindent_latin_tl
- {
- \dim_set:Nn \parindent { 0em }
- }
- \tl_gset:Nn \g_projlib_language_parindent_cjk_tl
- {
- \dim_set:Nn \parindent { 0em }
- }
- } {}
- }
-
-\cs_new:Nn \projlib_language_set_parindent_latin:n
- {
- \tl_gset:Nn \g_projlib_language_parindent_latin_tl { #1 }
- }
-\cs_new:Nn \projlib_language_set_parindent_cjk:n
- {
- \tl_gset:Nn \g_projlib_language_parindent_cjk_tl { #1 }
- }
-
-\NewDocumentCommand \ProjLibLanguageSet { m m m }
- % #1 = the thing to set
- % #2 = language or type
- % #3 = the setting
- {
- \use:c { projlib_language_set_ #1 _ #2 :n } { #3 }
- }
-
-
-\cs_new:Nn \projlib_language_use_language_pure:n
- {
- \tl_use:c { g_projlib_language_settings_ \projlib_language_str_to_languagename:n { #1 } _tl }
- }
-\cs_generate_variant:Nn \projlib_language_use_language_pure:n { e }
-
-\cs_new:Nn \projlib_language_use_language:n
- {
- \projlib_language_use_language_pure:n { #1 }
- \tl_use:c { g_projlib_language_linespacing_ \projlib_language_str_to_languagetype:n { #1 } _tl }
- \tl_use:c { g_projlib_language_parindent_ \projlib_language_str_to_languagetype:n { #1 } _tl }
- }
-\cs_generate_variant:Nn \projlib_language_use_language:n { e }
-
-\NewDocumentCommand \UseLanguage { m }
- {
- \hook_gput_code:nnn { begindocument } { projlib-language }
- {
- \projlib_language_use_language:e { #1 }
- }
- }
-\NewDocumentCommand \UseOtherLanguage { m m }
- {
- \group_begin:
- \projlib_language_use_language_pure:e { #1 }
- #2
- \group_end:
- }
-
-\UseLanguage { \g__projlib_language_main_str }
-
-
-\cs_new:Nn \projlib_langauge_define_multilingual_text:Nn
- { % #1 = command name (with backslash)
- % #2 = key-value name configuration
- \keyval_parse:nnn
- {}
- { \__projlib_langauge_define_multilingual_text_do:nnn { \cs_to_str:N #1 } }
- { #2 }
- \tl_gset:Nn #1
- {
- \tl_use:c { \cs_to_str:N #1 _projlib_language_text_ \languagename }
- }
- }
-\cs_generate_variant:Nn \projlib_langauge_define_multilingual_text:Nn { cn }
-
-\cs_new:Nn \__projlib_langauge_define_multilingual_text_do:nnn
- { % #1 = command name
- % #2 = language name
- % #3 = the text
- \exp_args:Ne \tl_gset:cn { #1 _projlib_language_text_ \projlib_language_str_to_languagename:n { #2 } } { #3 }
- }
-
-\NewDocumentCommand \DefineMultilingualText { m m }
- % #1 = command name
- % #2 = key-value name configuration
- {
- \projlib_langauge_define_multilingual_text:Nn #1 { #2 }
- }
-
-\endinput
-%%
-%% End of file `projlib-language.sty'.
diff --git a/macros/latex/contrib/projlib/projlib-logo.sty b/macros/latex/contrib/projlib/projlib-logo.sty
deleted file mode 100644
index d9ffb5c1ed..0000000000
--- a/macros/latex/contrib/projlib/projlib-logo.sty
+++ /dev/null
@@ -1,100 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-\RequirePackage{l3keys2e}
-\ProvidesExplPackage
- {projlib-logo}
- {2022/02/24} {}
- {The ProjLib logo}
-
-\keys_define:nn { projlib-logo }
- {
- , draft .bool_set:N = \l__projlib_logo_fast_bool
- , draft .initial:n = { false }
- , fast .bool_set:N = \l__projlib_logo_fast_bool
- , unknown .code:n = {}
- }
-\ProcessKeysOptions { projlib-logo }
-
-\bool_if:NT \l__projlib_logo_fast_bool
- {
- \DeclareRobustCommand * \ProjLib
- {
- \group_begin:
- \normalfont ProjLib
- \group_end:
- }
- \endinput
- }
-
-\cs_if_exist:cTF { fontspec }
- {
- \newfontface \__projlib_logo_font: { LinBiolinum_R.otf }
- }
- {
- \RequirePackage [T1] { fontenc }
- \cs_gset:Nn \__projlib_logo_font:
- { \fontfamily { LinuxBiolinumT-TLF } \selectfont }
- }
-
-\tl_new:N \g__projlib_logo_sigma_j_tl
-\tl_gset:Nn \g__projlib_logo_sigma_j_tl
- {
- \vbox:n
- {
- \offinterlineskip
- \hbox_overlap_center:n
- {
- \skip_horizontal:n { 0.75ex }
- \hbox_set:Nn \l_tmpa_box { \usefont{U}{zeur}{b}{n} \symbol{"06} }
- \box_rotate:Nn \l_tmpa_box { -10 }
- \box_scale:Nnn \l_tmpa_box {.4} {.4}
- \box_use:N \l_tmpa_box
- }
- \skip_vertical:n { 0.15ex }
- \hbox:n { \j }
- }
- }
-
-% \RequirePackage { xcolor }
-% \cs_new_protected:Nn \projlib_logo_generic:n
-% {
-% \group_begin:
-% \normalfont
-% \__projlib_logo_font:
-% \textcolor { blue!55!cyan } { P }
-% \textcolor { blue!45!cyan } { r }
-% \textcolor { blue!30!cyan } { o }
-% \textcolor { green!70!black!70 } { #1 }
-% \textcolor { red!20!yellow } { L }
-% \textcolor { red!40!yellow } { i }
-% \textcolor { red!55!yellow } { b }
-% \group_end:
-% }
-\cs_new_protected:Nn \projlib_logo_generic:n
- {
- \group_begin:
- \normalfont
- \__projlib_logo_font:
- \color_group_begin:
- \color_select:n { blue!60!cyan } { P }
- \color_select:n { blue!45!cyan } { r }
- \color_select:n { blue!30!cyan } { o }
- \color_select:n { green!70!black!70 } { #1 }
- \color_select:n { red!20!yellow } { L }
- \color_select:n { red!40!yellow } { i }
- \color_select:n { red!60!yellow } { b }
- \color_group_end:
- \group_end:
- }
-
-\DeclareRobustCommand * \ProjLib
- {
- \projlib_logo_generic:n { \g__projlib_logo_sigma_j_tl }
- }
-\DeclareRobustCommand * \ProjLibText
- {
- \projlib_logo_generic:n { j }
- }
-
-\endinput
-%%
-%% End of file `projlib-logo.sty'.
diff --git a/macros/latex/contrib/projlib/projlib-math.sty b/macros/latex/contrib/projlib/projlib-math.sty
deleted file mode 100644
index 977a428003..0000000000
--- a/macros/latex/contrib/projlib/projlib-math.sty
+++ /dev/null
@@ -1,234 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-\RequirePackage{l3keys2e}
-\ProvidesExplPackage
- {projlib-math}
- {2022/02/26} {}
- {Efficient math setup}
-
-\keys_define:nn { projlib-math }
- {
- , unknown .code:n = {}
- }
-\ProcessKeysOptions { projlib-math }
-
-\RequirePackage { mathtools }
-\RequirePackage { mathrsfs }
-\PassOptionsToPackage { warnings-off = { mathtools-colon, mathtools-overbracket } } { unicode-math }
-\@ifpackageloaded { unicode-math } {} { \RequirePackage { amssymb } }
-
-
-\msg_new:nnn { projlib-math }
- { operator-not-define }
- { The~math~operator~"\iow_char:N \\#1"~cannot~be~defined,~a~command~with~the~same~name~has~already~existed. }
-
-\keys_define:nn { projlib-math-operator }
- {
- , style .tl_set:N = \l__projlib_math_operator_style_tl
- , unknown .code:n = {}
- }
-
-\cs_new_protected:Nn \projlib_math_define_operator:nnn
- % #1 = bool for star or empty
- % #2 = list of operators
- % #3 = the option
- {
- \tl_clear:N \l__projlib_math_operator_style_tl
- \keys_set:nn { projlib-math-operator } { #3 }
- \clist_map_inline:nn { #2 }
- {
- \str_if_in:nnTF { ##1 } { = }
- {
- \seq_set_split:Nnn \l_tmpa_seq { = } { ##1 }
- \__projlib_math_define_operator:nee { #1 } { \seq_item:Nn \l_tmpa_seq { 1 } } { \seq_item:Nn \l_tmpa_seq { 2 } }
- }
- {
- \__projlib_math_define_operator:nee { #1 } { ##1 } { ##1 }
- }
- }
- }
-
-\cs_new_protected:Nn \__projlib_math_define_operator:nnn
- % #1 = bool for star or empty
- % #2 = the operator
- % #3 = the content
- {
- \cs_if_exist:cTF { #2 }
- {
- \msg_warning:nnn { projlib-math } { operator-not-define } { #2 }
- }
- {
- \bool_if:NTF #1
- {
- \exp_args:Nnf \use:n
- { \exp_args:Nnc \use:n { \DeclareMathOperator* } { #2 } }
- }
- {
- \exp_args:Nnf \use:n
- { \exp_args:Nc \DeclareMathOperator { #2 } }
- }
- % This is the f-argument of \exp_args:Nnf :
- {
- \exp_args:NnV \use:nn
- { \exp_stop_f: }
- { \l__projlib_math_operator_style_tl } { #3 }
- }
- }
- }
-\cs_generate_variant:Nn \__projlib_math_define_operator:nnn { nee }
-
-\NewDocumentCommand \DefineOperator { s O{} m O{} }
- {
- \tl_if_blank:nTF { #2 }
- {
- \projlib_math_define_operator:nnn { #1 } { #3 } { #4 }
- }
- {
- \projlib_math_define_operator:nnn { #1 } { #3 } { #2 }
- }
- }
-
-
-\msg_new:nnn { projlib-math }
- { shortcut-not-define }
- { The~shortcut~"\iow_char:N \\#1"~cannot~be~defined,~a~command~with~the~same~name~has~already~existed. }
-
-\msg_new:nnn { projlib-math }
- { shortcut-type-not-define }
- { The~shortcut~type~"#1"~is~not~available,~a~command~with~the~same~name~has~already~existed. }
-
-\keys_define:nn { projlib-math-shortcut }
- {
- , prefix .clist_set:N = \l__projlib_math_shortcut_prefix_clist
- , type .tl_set:N = \l__projlib_math_shortcut_type_tl
- , style .tl_set:N = \l__projlib_math_shortcut_style_tl
- , unknown .code:n = {}
- }
-
-\cs_new_protected:Nn \projlib_math_define_shortcut:nnn
- % #1 = bool for star or empty
- % (currently the starred version is the same as normal version)
- % #2 = list of shortcuts
- % #3 = the option
- {
- \clist_clear:N \l__projlib_math_shortcut_prefix_clist
- \tl_clear:N \l__projlib_math_shortcut_type_tl
- \tl_clear:N \l__projlib_math_shortcut_style_tl
- \keys_set:nn { projlib-math-shortcut } { #3 }
- \tl_if_empty:NF \l__projlib_math_shortcut_type_tl
- {
- \cs_if_exist:cTF { \l__projlib_math_shortcut_type_tl }
- {
- \exp_args:Nne \use:n
- { \msg_warning:nnn { projlib-math } { shortcut-type-not-define } }
- { \l__projlib_math_shortcut_type_tl }
- }
- {
- \exp_args:Nno \use:n
- {
- \exp_args:Nc \NewDocumentCommand { \l__projlib_math_shortcut_type_tl } { m }
- }
- {
- \l__projlib_math_shortcut_style_tl { ##1 }
- }
- }
- }
- \clist_map_inline:nn { #2 }
- {
- \str_if_in:nnTF { ##1 } { = }
- {
- \seq_set_split:Nnn \l_tmpa_seq { = } { ##1 }
- \clist_if_empty:NTF \l__projlib_math_shortcut_prefix_clist
- {
- \__projlib_math_define_shortcut:ee { \seq_item:Nn \l_tmpa_seq { 1 } } { \seq_item:Nn \l_tmpa_seq { 2 } }
- }
- {
- \clist_map_inline:Nn \l__projlib_math_shortcut_prefix_clist
- {
- \__projlib_math_define_shortcut:ee { ####1 \seq_item:Nn \l_tmpa_seq { 1 } } { \seq_item:Nn \l_tmpa_seq { 2 } }
- }
- }
- }
- {
- \clist_if_empty:NTF \l__projlib_math_shortcut_prefix_clist
- {
- \__projlib_math_define_shortcut:ee { ##1 } { ##1 }
- }
- {
- \clist_map_inline:Nn \l__projlib_math_shortcut_prefix_clist
- {
- \__projlib_math_define_shortcut:ee { ####1 ##1 } { ##1 }
- }
- }
- }
- }
- }
-
-\cs_new_protected:Nn \__projlib_math_define_shortcut:nn
- % #1 = command name
- % #2 = the content
- {
- \cs_if_exist:cTF { #1 }
- {
- \msg_warning:nnn { projlib-math } { shortcut-type-not-define } { #1 }
- }
- {
- \exp_args:Nno \use:n
- { \exp_args:Nc \NewDocumentCommand { #1 } {} }
- { \l__projlib_math_shortcut_style_tl { #2 } }
- }
- }
-\cs_generate_variant:Nn \__projlib_math_define_shortcut:nn { ee }
-
-\NewDocumentCommand \DefineShortcut { s O{} m O{} }
- {
- \tl_if_blank:nTF { #2 }
- {
- \projlib_math_define_shortcut:nnn { #1 } { #3 } { #4 }
- }
- {
- \projlib_math_define_shortcut:nnn { #1 } { #3 } { #2 }
- }
- }
-
-%===============================
-% -- Some possible operators --
-%===============================
-% \DefineOperator { ord, card, car, disc } [ style = \mathsf ]
-% \DefineOperator { id, Id, Ker, Image = Im } [ style = \mathsf ]
-% \DefineOperator { Orb, Stab, Fix } [ style = \mathsf ]
-% \DefineOperator { Hom, Aut, End, Mat } [ style = \mathsf ]
-% \DefineOperator { Spec, Spm, Ann } [ style = \mathsf ]
-% \DefineOperator*{ Lim, Max, Min } [ style = \mathsf ]
-
-%===============================
-% -- Some possible shortcuts --
-%===============================
-% \DefineShortcut [ type = category, style = \mathbf ]
-% {
-% Set, Grp, Ring, Top
-% }
-% \DefineShortcut [ style = \mathbb ]
-% {
-% N, Z, Q, R, C, F, A
-% }
-% \DefineShortcut [ prefix = bb, style = \mathbb ]
-% {
-% A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z
-% }
-% \DefineShortcut [ prefix = { mf, frak }, style = \mathfrak ]
-% {
-% A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z,
-% a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z
-% }
-% \DefineShortcut [ prefix = { mc, cal }, style = \mathcal ]
-% {
-% A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z
-% }
-% \DefineShortcut [ prefix = { ms, scr }, style = \mathscr ]
-% {
-% A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z
-% }
-
-\endinput
-%%
-%% End of file `projlib-math.sty'.
diff --git a/macros/latex/contrib/projlib/projlib-paper.sty b/macros/latex/contrib/projlib/projlib-paper.sty
deleted file mode 100644
index bb13bbe00a..0000000000
--- a/macros/latex/contrib/projlib/projlib-paper.sty
+++ /dev/null
@@ -1,119 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-\RequirePackage{l3keys2e}
-\ProvidesExplPackage
- {projlib-paper}
- {2022/03/09} {}
- {Configuration of the paper style}
-
-\keys_define:nn { projlib-paper }
- {
- , preview-mode .bool_set:N = \l__projlib_paper_preview_bool
- , preview-mode .initial:n = { false }
- , paper-style .tl_set:N = \l__projlib_paper_paperstyle_tl
- , paper-style .initial:n = { normal }
- , paper-style .value_required:n = true
- , paper~style .tl_set:N = \l__projlib_paper_paperstyle_tl
- , paper style .tl_set:N = \l__projlib_paper_paperstyle_tl
- , yellow-paper .meta:n = { paperstyle = yellow }
- , yellow~paper .meta:n = { paperstyle = yellow }
- , yellow paper .meta:n = { paperstyle = yellow }
- , parchment-paper .meta:n = { paperstyle = parchment }
- , parchment~paper .meta:n = { paperstyle = parchment }
- , parchment paper .meta:n = { paperstyle = parchment }
- , green-paper .meta:n = { paperstyle = green }
- , green~paper .meta:n = { paperstyle = green }
- , green paper .meta:n = { paperstyle = green }
- , light-gray-paper .meta:n = { paperstyle = lightgray }
- , light~gray~paper .meta:n = { paperstyle = lightgray }
- , light gray-paper .meta:n = { paperstyle = lightgray }
- , light gray~paper .meta:n = { paperstyle = lightgray }
- , light gray paper .meta:n = { paperstyle = lightgray }
- , gray-paper .meta:n = { paperstyle = gray }
- , gray~paper .meta:n = { paperstyle = gray }
- , gray paper .meta:n = { paperstyle = gray }
- , nord-paper .meta:n = { paperstyle = nord }
- , nord~paper .meta:n = { paperstyle = nord }
- , nord paper .meta:n = { paperstyle = nord }
- , dark-paper .meta:n = { paperstyle = dark }
- , dark~paper .meta:n = { paperstyle = dark }
- , dark paper .meta:n = { paperstyle = dark }
- , unknown .code:n = {}
- }
-\ProcessKeysOptions { projlib-paper }
-
-\cs_new:Nn \projlib_paper_preview_disable:
- {
- \bool_set_false:c { l__projlib_paper_preview_bool }
- }
-
-\hook_gput_code:nnn { begindocument/before } { projlib-paper }
- {
- \bool_if:NT \l__projlib_paper_preview_bool
- {
- \dim_set:Nn \paperwidth
- {
- \dim_eval:n { \textwidth * 21 / 20 }
- }
- \dim_set:Nn \paperheight
- {
- \dim_eval:n { ( \textheight + \headheight + \headsep + \footskip ) * 21 / 20 }
- }
- \dim_set:Nn \oddsidemargin
- {
- \dim_eval:n { ( \paperwidth - \textwidth ) / 2 - 1in }
- }
- \dim_set:Nn \evensidemargin
- {
- \dim_eval:n { ( \paperwidth - \textwidth ) / 2 - 1in }
- }
- \dim_set:Nn \topmargin
- {
- \dim_eval:n { ( \paperheight - \textheight - \headheight - \headsep - \footskip ) / 2 - 1in }
- }
- }
- }
-
-\RequirePackage { xcolor }
-
-\definecolor { paper } { RGB } { 255, 255, 255 }
-\definecolor { main-text } { RGB } { 0, 0, 0 }
-
-\str_case_e:nn { \l__projlib_paper_paperstyle_tl }
- {
- { yellow } { \definecolor { paper } { RGB } { 247, 246, 233 } }
- { parchment } { \definecolor { paper } { RGB } { 224, 204, 160 } }
- { green } { \definecolor { paper } { RGB } { 207, 231, 207 } }
- { lightgray } { \definecolor { paper } { RGB } { 236, 239, 244 }
- \definecolor { main-text } { RGB } { 37, 41, 46 } }
- { light-gray } { \definecolor { paper } { RGB } { 236, 239, 244 }
- \definecolor { main-text } { RGB } { 37, 41, 46 } }
- { gray } { \definecolor { paper } { RGB } { 127, 130, 136 }
- \definecolor { main-text } { RGB } { 236, 239, 244 } }
- { nord } { \definecolor { paper } { RGB } { 46, 52, 64 }
- \definecolor { main-text } { RGB } { 214, 220, 230 } }
- { dark } { \definecolor { paper } { RGB } { 28, 29, 33 }
- \definecolor { main-text } { RGB } { 210, 213, 217 } }
- }
-
-\cs_new:Nn \projlib_paper_set_page_color:n
- {
- \pagecolor { #1 }
- }
-\cs_new:Nn \projlib_paper_set_text_color:n
- {
- \color { #1 }
- \cs_gset_eq:cc { default@color } { current@color }
- }
-
-\projlib_paper_set_page_color:n { paper }
-\projlib_paper_set_text_color:n { main-text }
-
-\hook_gput_code:nnn { begindocument/before } { projlib-paper }
- {
- \cs_if_exist:NT \tcbset
- { \tcbset { colupper = main-text, collower = main-text } }
- }
-
-\endinput
-%%
-%% End of file `projlib-paper.sty'.
diff --git a/macros/latex/contrib/projlib/projlib-theorem.sty b/macros/latex/contrib/projlib/projlib-theorem.sty
deleted file mode 100644
index 092ca2f0ea..0000000000
--- a/macros/latex/contrib/projlib/projlib-theorem.sty
+++ /dev/null
@@ -1,1184 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}[2020-10-01]
-\RequirePackage{l3keys2e}
-\ProvidesExplPackage
- {projlib-theorem}
- {2022/03/09} {}
- {Configuration of theorem-like environments}
-
-\keys_define:nn { projlib-theorem }
- {
- , no-theorems .bool_set:N = \l__projlib_theorem_no_theorems_bool
- , no-theorems .initial:n = { false }
- , no~theorems .bool_set:N = \l__projlib_theorem_no_theorems_bool
- , no theorems .bool_set:N = \l__projlib_theorem_no_theorems_bool
- , nothms .bool_set:N = \l__projlib_theorem_no_theorems_bool
- , no-theorem-numbering .bool_set:N = \l__projlib_theorem_no_theorem_numbering_bool
- , no-theorem-numbering .initial:n = { false }
- , no~theorem~numbering .bool_set:N = \l__projlib_theorem_no_theorem_numbering_bool
- , no theorem numbering .bool_set:N = \l__projlib_theorem_no_theorem_numbering_bool
- , nothmnum .bool_set:N = \l__projlib_theorem_no_theorem_numbering_bool
- , theorem-numbering .tl_set:N = \l__projlib_theorem_theorem_numbering_tl
- , theorem-numbering .default:n = { * }
- , theorem~numbering .tl_set:N = \l__projlib_theorem_theorem_numbering_tl
- , theorem~numbering .default:n = { * }
- , theorem numbering .tl_set:N = \l__projlib_theorem_theorem_numbering_tl
- , theorem numbering .default:n = { * }
- , thmnum .tl_set:N = \l__projlib_theorem_theorem_numbering_tl
- , thmnum .default:n = { * }
- , complex-name .bool_set:N = \l__projlib_theorem_complexname_bool
- , complex-name .initial:n = { true }
- , complex~name .bool_set:N = \l__projlib_theorem_complexname_bool
- , complex name .bool_set:N = \l__projlib_theorem_complexname_bool
- , simple-name .bool_set:N = \l__projlib_theorem_simplename_bool
- , simple-name .initial:n = { false }
- , simple~name .bool_set:N = \l__projlib_theorem_simplename_bool
- , simple name .bool_set:N = \l__projlib_theorem_simplename_bool
- , no-preset-names .bool_set_inverse:N = \l__projlib_theorem_presetname_bool
- , no-preset-names .initial:n = { false }
- , no~preset~names .bool_set_inverse:N = \l__projlib_theorem_presetname_bool
- , no preset names .bool_set_inverse:N = \l__projlib_theorem_presetname_bool
- , unknown .code:n = { \PassOptionsToPackage { \CurrentOption } { create-theorem } }
- }
-\ProcessKeysOptions { projlib-theorem }
-
-\clist_const:Nn \c__projlib_theorem_supported_clist
- {
- assertion ,
- assumption ,
- axiom ,
- conclusion ,
- conjecture ,
- convention ,
- corollary ,
- definition ,
- example ,
- exercise ,
- fact ,
- hypothesis ,
- lemma ,
- notation ,
- observation ,
- postulate ,
- problem ,
- property ,
- proposition ,
- question ,
- remark ,
- theorem ,
- }
-
-\@ifclassloaded { beamer }
- {
- \RequirePackage { silence }
- \WarningFilter { cleveref } { hyperref~package~loaded~with~implicit=false~option }
- \bool_set_true:N \l__projlib_theorem_no_theorem_numbering_bool
- \bool_if:NF \l__projlib_theorem_no_theorems_bool
- {
- \cs_undefine:c { theorem }
- \cs_undefine:c { lemma }
- \cs_undefine:c { corollary }
- \cs_undefine:c { definition }
- \cs_undefine:c { fact }
- \cs_undefine:c { example }
- \cs_undefine:c { problem }
- }
- } {}
-
-\RequirePackage { projlib-language }
-
-\bool_if:NF \l__projlib_theorem_complexname_bool
- {
- \PassOptionsToPackage { no preset names } { create-theorem }
- }
-
-\RequirePackage { amsthm }
-\RequirePackage { create-theorem }
-
-
-\bool_if:NF \l__projlib_theorem_no_theorems_bool
- {
- \bool_if:NTF \l__projlib_theorem_no_theorem_numbering_bool
- {
- \exp_args:Nv \CreateTheorem { c__projlib_theorem_supported_clist } { numberless }
- }
- {
- \tl_if_blank:eTF \l__projlib_theorem_theorem_numbering_tl
- {
- \cs_if_exist:cTF { c@chapter }
- { % with \chapter
- \CreateTheorem {theorem} { parent counter = chapter }
- }
- { % without \chapter
- \CreateTheorem {theorem} { parent counter = section }
- }
- }
- {
- \tl_if_eq:NnTF \l__projlib_theorem_theorem_numbering_tl { * }
- {
- \CreateTheorem {theorem} { }
- }
- {
- \CreateTheorem {theorem} { parent counter = \l__projlib_theorem_theorem_numbering_tl }
- }
- }
-
- \exp_args:Nv \CreateTheorem { c__projlib_theorem_supported_clist } { shared counter = theorem, quiet }
- }
- }
-
-
-\AddLanguageSetting [ schinese ]
- {
- \crefname { equation } { 式 } { 式 }
- \crefname { figure } { 图 } { 图 }
- \crefname { table } { 表 } { 表 }
- \crefname { appendix } { 附录 } { 附录 }
- \Crefname { equation } { 式 } { 式 }
- \Crefname { figure } { 图 } { 图 }
- \Crefname { table } { 表 } { 表 }
- \Crefname { appendix } { 附录 } { 附录 }
- \tl_gset:Nn { \crefpairconjunction } { 、 }
- \tl_gset:Nn { \crefmiddleconjunction } { 、 }
- \tl_gset:Nn { \creflastconjunction } { \nobreakspace 和 \nobreakspace }
- \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace 和 \nobreakspace }
- \tl_gset:Nn { \crefmiddlegroupconjunction } { 、 }
- \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace 以及 \nobreakspace }
- \tl_gset:Nn { \crefrangeconjunction } { ~ }
- }
-
-\AddLanguageSetting [ tchinese ]
- {
- \crefname { equation } { 式 } { 式 }
- \crefname { figure } { 圖 } { 圖 }
- \crefname { table } { 表 } { 表 }
- \crefname { appendix } { 附錄 } { 附錄 }
- \Crefname { equation } { 式 } { 式 }
- \Crefname { figure } { 圖 } { 圖 }
- \Crefname { table } { 表 } { 表 }
- \Crefname { appendix } { 附錄 } { 附錄 }
- \tl_gset:Nn { \crefpairconjunction } { 、 }
- \tl_gset:Nn { \crefmiddleconjunction } { 、 }
- \tl_gset:Nn { \creflastconjunction } { \nobreakspace 與 \nobreakspace }
- \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace 與 \nobreakspace }
- \tl_gset:Nn { \crefmiddlegroupconjunction } { 、 }
- \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace 以及 \nobreakspace }
- \tl_gset:Nn { \crefrangeconjunction } { ~ }
- }
-
-\AddLanguageSetting [ japanese ]
- {
- \crefname { equation } { 式 } { 式 }
- \crefname { figure } { 図 } { 図 }
- \crefname { table } { 表 } { 表 }
- \Crefname { appendix } { 付録 } { 付録 }
- \Crefname { equation } { 式 } { 式 }
- \Crefname { figure } { 図 } { 図 }
- \Crefname { table } { 表 } { 表 }
- \Crefname { appendix } { 付録 } { 付録 }
- \tl_gset:Nn { \crefpairconjunction } { \nobreakspace と \nobreakspace }
- \tl_gset:Nn { \crefmiddleconjunction } { \nobreakspace と \nobreakspace }
- \tl_gset:Nn { \creflastconjunction } { \nobreakspace と \nobreakspace }
- \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace と \nobreakspace }
- \tl_gset:Nn { \crefmiddlegroupconjunction } { \nobreakspace と \nobreakspace }
- \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace 及び \nobreakspace }
- \tl_gset:Nn { \crefrangeconjunction } { ~ }
- }
-
-\AddLanguageSetting [ russian ]
- {
- \crefname { equation } { уравнение } { уравнения }
- \crefname { figure } { рис. } { рис. }
- \crefname { table } { таблица } { таблицы }
- \crefname { appendix } { приложение } { приложения }
- \Crefname { equation } { Уравнение } { Уравнения }
- \Crefname { figure } { Рис. } { Рис. }
- \Crefname { table } { Таблица } { Таблицы }
- \Crefname { appendix } { Приложение } { Приложения }
- \tl_gset:Nn { \crefpairconjunction } { \nobreakspace и \nobreakspace }
- \tl_gset:Nn { \crefmiddleconjunction } { , \nobreakspace }
- \tl_gset:Nn { \creflastconjunction } { \nobreakspace и \nobreakspace }
- \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace и \nobreakspace }
- \tl_gset:Nn { \crefmiddlegroupconjunction } { , \nobreakspace }
- \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace и \nobreakspace }
- \tl_gset:Nn { \crefrangeconjunction } { \nobreakspace \textasciitilde \nobreakspace }
- }
-
-\AddLanguageSetting [ portuguese ]
- {
- \crefname { equation } { eq. } { eqs. }
- \crefname { figure } { fig. } { figs. }
- \crefname { table } { tabela } { tabelas }
- \crefname { appendix } { apêndice } { apêndices }
- \Crefname { equation } { Eq. } { Eqs. }
- \Crefname { figure } { Fig. } { Figs. }
- \Crefname { table } { Tabela } { Tabelas }
- \Crefname { appendix } { Apêndice } { Apêndices }
- \tl_gset:Nn { \crefpairconjunction } { \nobreakspace e \nobreakspace }
- \tl_gset:Nn { \crefmiddleconjunction } { , \nobreakspace }
- \tl_gset:Nn { \creflastconjunction } { \nobreakspace e \nobreakspace }
- \tl_gset:Nn { \crefpairgroupconjunction } { \nobreakspace e \nobreakspace }
- \tl_gset:Nn { \crefmiddlegroupconjunction } { , \nobreakspace }
- \tl_gset:Nn { \creflastgroupconjunction } { \nobreakspace e \nobreakspace }
- \tl_gset:Nn { \crefrangeconjunction } { \nobreakspace a \nobreakspace }
- }
-
-
-\bool_if:NF \l__projlib_theorem_presetname_bool { \endinput }
-\bool_if:NT \l__projlib_theorem_complexname_bool { \endinput }
-
-
-\NameTheorem { assertion }
- {
- , heading = {
- , english = Assertion
- , french = Assertion
- , ngerman = Behauptung
- , italian = Asserzione
- , portuguese = Asserção
- , brazilian = Asserção
- , spanish = Aserción
- , schinese = 断言
- , tchinese = 斷言
- , japanese = アサーション
- , russian = Утверждение
- }
- , crefname = {
- , english = {Assertion}{Assertion}
- , french = [l']{Assertion}[les]{Assertion}
- , ngerman = {Behauptung}{Behauptung}
- , italian = [l']{Asserzione}[le]{Asserzione}
- , portuguese = [a]{Asserção}[as]{Asserção}
- , brazilian = [a]{Asserção}[as]{Asserção}
- , spanish = [la]{Aserción}[las]{Aserción}
- , schinese = {断言}{断言}
- , tchinese = {斷言}{斷言}
- , japanese = {アサーション}{アサーション}
- , russian = {Утверждение}{Утверждение}
- }
- , Crefname = {
- , english = {Assertion}{Assertion}
- , french = [L']{Assertion}[Les]{Assertion}
- , ngerman = {Behauptung}{Behauptung}
- , italian = [L']{Asserzione}[Le]{Asserzione}
- , portuguese = [A]{Asserção}[As]{Asserção}
- , brazilian = [A]{Asserção}[As]{Asserção}
- , spanish = [La]{Aserción}[Las]{Aserción}
- , schinese = {断言}{断言}
- , tchinese = {斷言}{斷言}
- , japanese = {アサーション}{アサーション}
- , russian = {Утверждение}{Утверждение}
- }
- }
-
-\NameTheorem { assumption }
- {
- , heading = {
- , english = Assumption
- , french = Supposition
- , ngerman = Annahme
- , italian = Supposizione
- , portuguese = Suposição
- , brazilian = Suposição
- , spanish = Suposición
- , schinese = 假定
- , tchinese = 假定
- , japanese = 仮定
- , russian = Предположение
- }
- , crefname = {
- , english = {Assumption}{Assumption}
- , french = [la]{Supposition}[les]{Supposition}
- , ngerman = {Annahme}{Annahme}
- , italian = [la]{Supposizione}[le]{Supposizione}
- , portuguese = [a]{Suposição}[as]{Suposição}
- , brazilian = [a]{Suposição}[as]{Suposição}
- , spanish = [la]{Suposición}[las]{Suposición}
- , schinese = {假定}{假定}
- , tchinese = {假定}{假定}
- , japanese = {仮定}{仮定}
- , russian = {Предположение}{Предположение}
- }
- , Crefname = {
- , english = {Assumption}{Assumption}
- , french = [La]{Supposition}[Les]{Supposition}
- , ngerman = {Annahme}{Annahme}
- , italian = [la]{Supposizione}[le]{Supposizione}
- , portuguese = [A]{Suposição}[As]{Suposição}
- , brazilian = [A]{Suposição}[As]{Suposição}
- , spanish = [La]{Suposición}[Las]{Suposición}
- , schinese = {假定}{假定}
- , tchinese = {假定}{假定}
- , japanese = {仮定}{仮定}
- , russian = {Предположение}{Предположение}
- }
- }
-
-\NameTheorem { axiom }
- {
- , heading = {
- , english = Axiom
- , french = Axiome
- , ngerman = Axiom
- , italian = Assioma
- , portuguese = Axioma
- , brazilian = Axioma
- , spanish = Axioma
- , schinese = 公理
- , tchinese = 公理
- , japanese = 公理
- , russian = Аксиома
- }
- , crefname = {
- , english = {Axiom}{Axiom}
- , french = [l']{Axiome}[les]{Axiome}
- , ngerman = {Axiom}{Axiom}
- , italian = [l']{Assioma}[gli]{Assioma}
- , portuguese = [o]{Axioma}[os]{Axioma}
- , brazilian = [o]{Axioma}[os]{Axioma}
- , spanish = [el]{Axioma}[los]{Axioma}
- , schinese = {公理}{公理}
- , tchinese = {公理}{公理}
- , japanese = {公理}{公理}
- , russian = {Аксиома}{Аксиома}
- }
- , Crefname = {
- , english = {Axiom}{Axiom}
- , french = [L']{Axiome}[Les]{Axiome}
- , ngerman = {Axiom}{Axiom}
- , italian = [L']{Assioma}[Gli]{Assioma}
- , portuguese = [O]{Axioma}[Os]{Axioma}
- , brazilian = [O]{Axioma}[Os]{Axioma}
- , spanish = [El]{Axioma}[Los]{Axioma}
- , schinese = {公理}{公理}
- , tchinese = {公理}{公理}
- , japanese = {公理}{公理}
- , russian = {Аксиома}{Аксиома}
- }
- }
-
-\NameTheorem { conclusion }
- {
- , heading = {
- , english = Conclusion
- , french = Conclusion
- , ngerman = Schlussfolgerung
- , italian = Conclusione
- , portuguese = Conclusão
- , brazilian = Conclusão
- , spanish = Conclusión
- , schinese = 结论
- , tchinese = 結論
- , japanese = 結論
- , russian = Вывод
- }
- , crefname = {
- , english = {Conclusion}{Conclusion}
- , french = [la]{Conclusion}[Les]{Conclusion}
- , ngerman = {Schlussfolgerung}{Schlussfolgerung}
- , italian = [la]{Conclusione}[le]{Conclusione}
- , portuguese = [a]{Conclusão}[as]{Conclusão}
- , brazilian = [a]{Conclusão}[as]{Conclusão}
- , spanish = [la]{Conclusión}[las]{Conclusión}
- , schinese = {结论}{结论}
- , tchinese = {結論}{結論}
- , japanese = {結論}{結論}
- , russian = {Вывод}{Вывод}
- }
- , Crefname = {
- , english = {Conclusion}{Conclusion}
- , french = [La]{Conclusion}[Les]{Conclusion}
- , ngerman = {Schlussfolgerung}{Schlussfolgerung}
- , italian = [La]{Conclusione}[Le]{Conclusione}
- , portuguese = [A]{Conclusão}[As]{Conclusão}
- , brazilian = [A]{Conclusão}[As]{Conclusão}
- , spanish = [La]{Conclusión}[Las]{Conclusión}
- , schinese = {结论}{结论}
- , tchinese = {結論}{結論}
- , japanese = {結論}{結論}
- , russian = {Вывод}{Вывод}
- }
- }
-
-\NameTheorem { conjecture }
- {
- , heading = {
- , english = Conjecture
- , french = Conjecture
- , ngerman = Vermutung
- , italian = Congettura
- , portuguese = Conjetura
- , brazilian = Conjectura
- , spanish = Conjetura
- , schinese = 猜想
- , tchinese = 猜想
- , japanese = 予想
- , russian = Гипотеза
- }
- , crefname = {
- , english = {Conjecture}{Conjecture}
- , french = [la]{Conjecture}[les]{Conjecture}
- , ngerman = {Vermutung}{Vermutung}
- , italian = [la]{Congettura}[le]{Congettura}
- , portuguese = [a]{Conjetura}[as]{Conjetura}
- , brazilian = [a]{Conjectura}[as]{Conjectura}
- , spanish = [la]{Conjetura}[las]{Conjetura}
- , schinese = {猜想}{猜想}
- , tchinese = {猜想}{猜想}
- , japanese = {予想}{予想}
- , russian = {Гипотеза}{Гипотеза}
- }
- , Crefname = {
- , english = {Conjecture}{Conjecture}
- , french = [La]{Conjecture}[Les]{Conjecture}
- , ngerman = {Vermutung}{Vermutung}
- , italian = [La]{Congettura}[Le]{Congettura}
- , portuguese = [A]{Conjetura}[As]{Conjetura}
- , brazilian = [A]{Conjectura}[As]{Conjectura}
- , spanish = [La]{Conjetura}[Las]{Conjetura}
- , schinese = {猜想}{猜想}
- , tchinese = {猜想}{猜想}
- , japanese = {予想}{予想}
- , russian = {Гипотеза}{Гипотеза}
- }
- }
-
-\NameTheorem { convention }
- {
- , heading = {
- , english = Convention
- , french = Convention
- , ngerman = Konvention
- , italian = Convenzione
- , portuguese = Convenção
- , brazilian = Convenção
- , spanish = Convención
- , schinese = 约定
- , tchinese = 約定
- , japanese = 慣例
- , russian = Конвенция
- }
- , crefname = {
- , english = {Convention}{Convention}
- , french = [la]{Convention}[les]{Convention}
- , ngerman = {Konvention}{Konvention}
- , italian = [la]{Convenzione}[le]{Convenzione}
- , portuguese = [a]{Convenção}[as]{Convenção}
- , brazilian = [a]{Convenção}[as]{Convenção}
- , spanish = [la]{Convención}[las]{Convención}
- , schinese = {约定}{约定}
- , tchinese = {約定}{約定}
- , japanese = {慣例}{慣例}
- , russian = {Конвенция}{Конвенция}
- }
- , Crefname = {
- , english = {Convention}{Convention}
- , french = [La]{Convention}[Les]{Convention}
- , ngerman = {Konvention}{Konvention}
- , italian = [La]{Convenzione}[Le]{Convenzione}
- , portuguese = [A]{Convenção}[As]{Convenção}
- , brazilian = [A]{Convenção}[As]{Convenção}
- , spanish = [La]{Convención}[Las]{Convención}
- , schinese = {约定}{约定}
- , tchinese = {約定}{約定}
- , japanese = {慣例}{慣例}
- , russian = {Конвенция}{Конвенция}
- }
- }
-
-\NameTheorem { corollary }
- {
- , heading = {
- , english = Corollary
- , french = Corollaire
- , ngerman = Korollar
- , italian = Corollario
- , portuguese = Corolário
- , brazilian = Corolário
- , spanish = Corolario
- , schinese = 推论
- , tchinese = 推論
- , japanese = 系
- , russian = Следствие
- }
- , crefname = {
- , english = {Corollary}{Corollary}
- , french = [le]{Corollaire}[les]{Corollaire}
- , ngerman = {Korollar}{Korollar}
- , italian = [il]{Corollario}[i]{Corollario}
- , portuguese = [o]{Corolário}[os]{Corolário}
- , brazilian = [o]{Corolário}[os]{Corolário}
- , spanish = [el]{Corolario}[los]{Corolario}
- , schinese = {推论}{推论}
- , tchinese = {推論}{推論}
- , japanese = {系}{系}
- , russian = {Следствие}{Следствие}
- }
- , Crefname = {
- , english = {Corollary}{Corollary}
- , french = [Le]{Corollaire}[Les]{Corollaire}
- , ngerman = {Korollar}{Korollar}
- , italian = [Il]{Corollario}[I]{Corollario}
- , portuguese = [O]{Corolário}[Os]{Corolário}
- , brazilian = [O]{Corolário}[Os]{Corolário}
- , spanish = [El]{Corolario}[Los]{Corolario}
- , schinese = {推论}{推论}
- , tchinese = {推論}{推論}
- , japanese = {系}{系}
- , russian = {Следствие}{Следствие}
- }
- }
-
-\NameTheorem { definition }
- {
- , heading = {
- , english = Definition
- , french = Définition
- , ngerman = Definition
- , italian = Definizione
- , portuguese = Definição
- , brazilian = Definição
- , spanish = Definición
- , schinese = 定义
- , tchinese = 定義
- , japanese = 定義
- , russian = Определение
- }
- , crefname = {
- , english = {Definition}{Definition}
- , french = [la]{Définition}[les]{Définition}
- , ngerman = {Definition}{Definition}
- , italian = [la]{Definizione}[le]{Definizione}
- , portuguese = [a]{Definição}[as]{Definição}
- , brazilian = [a]{Definição}[as]{Definição}
- , spanish = [la]{Definición}[las]{Definición}
- , schinese = {定义}{定义}
- , tchinese = {定義}{定義}
- , japanese = {定義}{定義}
- , russian = {Определение}{Определение}
- }
- , Crefname = {
- , english = {Definition}{Definition}
- , french = [La]{Définition}[Les]{Définition}
- , ngerman = {Definition}{Definition}
- , italian = [La]{Definizione}[Le]{Definizione}
- , portuguese = [A]{Definição}[As]{Definição}
- , brazilian = [A]{Definição}[As]{Definição}
- , spanish = [La]{Definición}[Las]{Definición}
- , schinese = {定义}{定义}
- , tchinese = {定義}{定義}
- , japanese = {定義}{定義}
- , russian = {Определение}{Определение}
- }
- }
-
-\NameTheorem { example }
- {
- , heading = {
- , english = Example
- , french = Exemple
- , ngerman = Beispiel
- , italian = Esempio
- , portuguese = Exemplo
- , brazilian = Exemplo
- , spanish = Ejemplo
- , schinese = 例
- , tchinese = 例
- , japanese = 例
- , russian = Пример
- }
- , crefname = {
- , english = {Example}{Example}
- , french = [l']{Example}[les]{Example}
- , ngerman = {Beispiel}{Beispiel}
- , italian = [l']{Esempio}[gli]{Esempio}
- , portuguese = [o]{Exemplo}[os]{Exemplo}
- , brazilian = [o]{Exemplo}[os]{Exemplo}
- , spanish = [el]{Ejemplo}[los]{Ejemplo}
- , schinese = {例}{例}
- , tchinese = {例}{例}
- , japanese = {例}{例}
- , russian = {Пример}{Пример}
- }
- , Crefname = {
- , english = {Example}{Example}
- , french = [L']{Example}[Les]{Example}
- , ngerman = {Beispiel}{Beispiel}
- , italian = [L']{Esempio}[Gli]{Esempio}
- , portuguese = [O]{Exemplo}[Os]{Exemplo}
- , brazilian = [O]{Exemplo}[Os]{Exemplo}
- , spanish = [El]{Ejemplo}[Los]{Ejemplo}
- , schinese = {例}{例}
- , tchinese = {例}{例}
- , japanese = {例}{例}
- , russian = {Пример}{Пример}
- }
- }
-
-\NameTheorem { exercise }
- {
- , heading = {
- , english = Exercise
- , french = Exercice
- , ngerman = Übung
- , italian = Esercizio
- , portuguese = Exercício
- , brazilian = Exercício
- , spanish = Ejercicio
- , schinese = 练习
- , tchinese = 練習
- , japanese = 練習
- , russian = Упражнение
- }
- , crefname = {
- , english = {Exercise}{Exercise}
- , french = [l']{Exercice}[les]{Exercice}
- , ngerman = {Übung}{Übung}
- , italian = [l']{Esercizio}[gli]{Esercizio}
- , portuguese = [o]{Exercício}[os]{Exercício}
- , brazilian = [o]{Exercício}[os]{Exercício}
- , spanish = [el]{Ejercicio}[los]{Ejercicio}
- , schinese = {练习}{练习}
- , tchinese = {練習}{練習}
- , japanese = {練習}{練習}
- , russian = {Упражнение}{Упражнение}
- }
- , Crefname = {
- , english = {Exercise}{Exercise}
- , french = [L']{Exercice}[Les]{Exercice}
- , ngerman = {Übung}{Übung}
- , italian = [L']{Esercizio}[Gli]{Esercizio}
- , portuguese = [O]{Exercício}[Os]{Exercício}
- , brazilian = [O]{Exercício}[Os]{Exercício}
- , spanish = [El]{Ejercicio}[Los]{Ejercicio}
- , schinese = {练习}{练习}
- , tchinese = {練習}{練習}
- , japanese = {練習}{練習}
- , russian = {Упражнение}{Упражнение}
- }
- }
-
-\NameTheorem { fact }
- {
- , heading = {
- , english = Fact
- , french = Fait
- , ngerman = Fakt
- , italian = Fatto
- , portuguese = Facto
- , brazilian = Fato
- , spanish = Hecho
- , schinese = 事实
- , tchinese = 事實
- , japanese = 事実
- , russian = Факт
- }
- , crefname = {
- , english = {Fact}{Fact}
- , french = [le]{Fait}[les]{Fait}
- , ngerman = {Fakt}{Fakt}
- , italian = [il]{Fatto}[i]{Fatto}
- , portuguese = [o]{Facto}[os]{Facto}
- , brazilian = [o]{Fato}[os]{Fato}
- , spanish = [el]{Hecho}[los]{Hecho}
- , schinese = {事实}{事实}
- , tchinese = {事實}{事實}
- , japanese = {事実}{事実}
- , russian = {Факт}{Факт}
- }
- , Crefname = {
- , english = {Fact}{Fact}
- , french = [Le]{Fait}[Les]{Fait}
- , ngerman = {Fakt}{Fakt}
- , italian = [Il]{Fatto}[I]{Fatto}
- , portuguese = [O]{Facto}[Os]{Facto}
- , brazilian = [O]{Fato}[Os]{Fato}
- , spanish = [El]{Hecho}[Los]{Hecho}
- , schinese = {事实}{事实}
- , tchinese = {事實}{事實}
- , japanese = {事実}{事実}
- , russian = {Факт}{Факт}
- }
- }
-
-\NameTheorem { hypothesis }
- {
- , heading = {
- , english = Hypothesis
- , french = Hypothèse
- , ngerman = Hypothese
- , italian = Ipotesi
- , portuguese = Hipótese
- , brazilian = Hipótese
- , spanish = Hipótesis
- , schinese = 假设
- , tchinese = 假設
- , japanese = 仮設
- , russian = Гипотеза
- }
- , crefname = {
- , english = {Hypothesis}{Hypothesis}
- , french = [l']{Hypothèse}[les]{Hypothèse}
- , ngerman = {Hypothese}{Hypothese}
- , italian = [l']{Ipotesi}[le]{Ipotesi}
- , portuguese = [a]{Hipótese}[as]{Hipótese}
- , brazilian = [a]{Hipótese}[as]{Hipótese}
- , spanish = [la]{Hipótesis}[las]{Hipótesis}
- , schinese = {假设}{假设}
- , tchinese = {假設}{假設}
- , japanese = {仮設}{仮設}
- , russian = {Гипотеза}{Гипотеза}
- }
- , Crefname = {
- , english = {Hypothesis}{Hypothesis}
- , french = [L']{Hypothèse}[Les]{Hypothèse}
- , ngerman = {Hypothese}{Hypothese}
- , italian = [L']{Ipotesi}[Le]{Ipotesi}
- , portuguese = [A]{Hipótese}[As]{Hipótese}
- , brazilian = [A]{Hipótese}[As]{Hipótese}
- , spanish = [La]{Hipótesis}[Las]{Hipótesis}
- , schinese = {假设}{假设}
- , tchinese = {假設}{假設}
- , japanese = {仮設}{仮設}
- , russian = {Гипотеза}{Гипотеза}
- }
- }
-
-\NameTheorem { lemma }
- {
- , heading = {
- , english = Lemma
- , french = Lemme
- , ngerman = Lemma
- , italian = Lemma
- , portuguese = Lema
- , brazilian = Lema
- , spanish = Lema
- , schinese = 引理
- , tchinese = 引理
- , japanese = 補題
- , russian = Лемма
- }
- , crefname = {
- , english = {Lemma}{Lemma}
- , french = [le]{Lemme}[les]{Lemme}
- , ngerman = {Lemma}{Lemma}
- , italian = [il]{Lemma}[i]{Lemma}
- , portuguese = [o]{Lema}[os]{Lema}
- , brazilian = [o]{Lema}[os]{Lema}
- , spanish = [el]{Lema}[las]{Lema}
- , schinese = {引理}{引理}
- , tchinese = {引理}{引理}
- , japanese = {補題}{補題}
- , russian = {Лемма}{Лемма}
- }
- , Crefname = {
- , english = {Lemma}{Lemma}
- , french = [Le]{Lemme}[Les]{Lemme}
- , ngerman = {Lemma}{Lemma}
- , italian = [Il]{Lemma}[I]{Lemma}
- , portuguese = [O]{Lema}[Os]{Lema}
- , brazilian = [O]{Lema}[Os]{Lema}
- , spanish = [el]{Lema}[las]{Lema}
- , schinese = {引理}{引理}
- , tchinese = {引理}{引理}
- , japanese = {補題}{補題}
- , russian = {Лемма}{Лемма}
- }
- }
-
-\NameTheorem { notation }
- {
- , heading = {
- , english = Notation
- , french = Notation
- , ngerman = Notation
- , italian = Notazione
- , portuguese = Notação
- , brazilian = Notação
- , spanish = Notación
- , schinese = 记号
- , tchinese = 記號
- , japanese = 記法
- , russian = Нотация
- }
- , crefname = {
- , english = {Notation}{Notation}
- , french = [la]{Notation}[les]{Notation}
- , ngerman = {Notation}{Notation}
- , italian = [la]{Notazione}[le]{Notazione}
- , portuguese = [a]{Notação}[as]{Notação}
- , brazilian = [a]{Notação}[as]{Notação}
- , spanish = [la]{Notación}[las]{Notación}
- , schinese = {记号}{记号}
- , tchinese = {記號}{記號}
- , japanese = {記法}{記法}
- , russian = {Нотация}{Нотация}
- }
- , Crefname = {
- , english = {Notation}{Notation}
- , french = [La]{Notation}[Les]{Notation}
- , ngerman = {Notation}{Notation}
- , italian = [La]{Notazione}[Le]{Notazione}
- , portuguese = [A]{Notação}[As]{Notação}
- , brazilian = [A]{Notação}[As]{Notação}
- , spanish = [La]{Notación}[Las]{Notación}
- , schinese = {记号}{记号}
- , tchinese = {記號}{記號}
- , japanese = {記法}{記法}
- , russian = {Нотация}{Нотация}
- }
- }
-
-\NameTheorem { observation }
- {
- , heading = {
- , english = Observation
- , french = Observation
- , ngerman = Beobachtung
- , italian = Osservazione
- , portuguese = Observação
- , brazilian = Observação
- , spanish = Observación
- , schinese = 观察
- , tchinese = 觀察
- , japanese = 観察
- , russian = Наблюдение
- }
- , crefname = {
- , english = {Observation}{Observation}
- , french = [la]{Observation}[les]{Observation}
- , ngerman = {Beobachtung}{Beobachtung}
- , italian = [l']{Osservazione}[le]{Osservazione}
- , portuguese = [a]{Observação}[as]{Observação}
- , brazilian = [a]{Observação}[as]{Observação}
- , spanish = [la]{Observación}[las]{Observación}
- , schinese = {观察}{观察}
- , tchinese = {觀察}{觀察}
- , japanese = {観察}{観察}
- , russian = {Наблюдение}{Наблюдение}
- }
- , Crefname = {
- , english = {Observation}{Observation}
- , french = [La]{Observation}[Les]{Observation}
- , ngerman = {Beobachtung}{Beobachtung}
- , italian = [L']{Osservazione}[Le]{Osservazione}
- , portuguese = [A]{Observação}[As]{Observação}
- , brazilian = [A]{Observação}[As]{Observação}
- , spanish = [La]{Observación}[Las]{Observación}
- , schinese = {观察}{观察}
- , tchinese = {觀察}{觀察}
- , japanese = {観察}{観察}
- , russian = {Наблюдение}{Наблюдение}
- }
- }
-
-\NameTheorem { postulate }
- {
- , heading = {
- , english = Postulate
- , french = Postulat
- , ngerman = Postulat
- , italian = Postulato
- , portuguese = Postulado
- , brazilian = Postulado
- , spanish = Postulado
- , schinese = 公设
- , tchinese = 公設
- , japanese = 公準
- , russian = Постулат
- }
- , crefname = {
- , english = {Postulate}{Postulate}
- , french = [le]{Postulat}[les]{Postulat}
- , ngerman = {Postulat}{Postulat}
- , italian = [il]{Postulato}[i]{Postulato}
- , portuguese = [o]{Postulado}[os]{Postulado}
- , brazilian = [o]{Postulado}[os]{Postulado}
- , spanish = [el]{Postulado}[los]{Postulado}
- , schinese = {公设}{公设}
- , tchinese = {公設}{公設}
- , japanese = {公準}{公準}
- , russian = {Постулат}{Постулат}
- }
- , Crefname = {
- , english = {Postulate}{Postulate}
- , french = [Le]{Postulat}[Les]{Postulat}
- , ngerman = {Postulat}{Postulat}
- , italian = [Il]{Postulato}[I]{Postulato}
- , portuguese = [O]{Postulado}[Os]{Postulado}
- , brazilian = [O]{Postulado}[Os]{Postulado}
- , spanish = [El]{Postulado}[Los]{Postulado}
- , schinese = {公设}{公设}
- , tchinese = {公設}{公設}
- , japanese = {公準}{公準}
- , russian = {Постулат}{Постулат}
- }
- }
-
-\NameTheorem { problem }
- {
- , heading = {
- , english = Problem
- , french = Problème
- , ngerman = Problem
- , italian = Problema
- , portuguese = Problema
- , brazilian = Problema
- , spanish = Problema
- , schinese = 问题
- , tchinese = 問題
- , japanese = 問題
- , russian = Проблема
- }
- , crefname = {
- , english = {Problem}{Problem}
- , french = [le]{Problème}[les]{Problème}
- , ngerman = {Problem}{Problem}
- , italian = [il]{Problema}[i]{Problema}
- , portuguese = [o]{Problema}[os]{Problema}
- , brazilian = [o]{Problema}[os]{Problema}
- , spanish = [el]{Problema}[los]{Problema}
- , schinese = {问题}{问题}
- , tchinese = {問題}{問題}
- , japanese = {問題}{問題}
- , russian = {Проблема}{Проблема}
- }
- , Crefname = {
- , english = {Problem}{Problem}
- , french = [Le]{Problème}[Les]{Problème}
- , ngerman = {Problem}{Problem}
- , italian = [Il]{Problema}[I]{Problema}
- , portuguese = [O]{Problema}[Os]{Problema}
- , brazilian = [O]{Problema}[Os]{Problema}
- , spanish = [El]{Problema}[Los]{Problema}
- , schinese = {问题}{问题}
- , tchinese = {問題}{問題}
- , japanese = {問題}{問題}
- , russian = {Проблема}{Проблема}
- }
- }
-
-\NameTheorem { property }
- {
- , heading = {
- , english = Property
- , french = Propriété
- , ngerman = Eigenschaft
- , italian = Proprietà
- , portuguese = Propriedade
- , brazilian = Propriedade
- , spanish = Propiedad
- , schinese = 性质
- , tchinese = 性質
- , japanese = 性質
- , russian = Имущество
- }
- , crefname = {
- , english = {Property}{Property}
- , french = [la]{Propriété}[les]{Propriété}
- , ngerman = {Eigenschaft}{Eigenschaft}
- , italian = [la]{Proprietà}[le]{Proprietà}
- , portuguese = [a]{Propriedade}[as]{Propriedade}
- , brazilian = [a]{Propriedade}[as]{Propriedade}
- , spanish = [la]{Propiedad}[las]{Propiedad}
- , schinese = {性质}{性质}
- , tchinese = {性質}{性質}
- , japanese = {性質}{性質}
- , russian = {Имущество}{Имущество}
- }
- , Crefname = {
- , english = {Property}{Property}
- , french = [La]{Propriété}[Les]{Propriété}
- , ngerman = {Eigenschaft}{Eigenschaft}
- , italian = [La]{Proprietà}[Le]{Proprietà}
- , portuguese = [A]{Propriedade}[As]{Propriedade}
- , brazilian = [A]{Propriedade}[As]{Propriedade}
- , spanish = [La]{Propiedad}[Las]{Propiedad}
- , schinese = {性质}{性质}
- , tchinese = {性質}{性質}
- , japanese = {性質}{性質}
- , russian = {Имущество}{Имущество}
- }
- }
-
-\NameTheorem { proposition }
- {
- , heading = {
- , english = Proposition
- , french = Proposition
- , ngerman = Proposition
- , italian = Proposizione
- , portuguese = Proposição
- , brazilian = Proposição
- , spanish = Proposición
- , schinese = 命题
- , tchinese = 命題
- , japanese = 命題
- , russian = Предложение
- }
- , crefname = {
- , english = {Proposition}{Proposition}
- , french = [la]{Proposition}[les]{Proposition}
- , ngerman = {Proposition}{Proposition}
- , italian = [la]{Proposizione}[le]{Proposizione}
- , portuguese = [a]{Proposição}[as]{Proposição}
- , brazilian = [a]{Proposição}[as]{Proposição}
- , spanish = [la]{Proposición}[las]{Proposición}
- , schinese = {命题}{命题}
- , tchinese = {命題}{命題}
- , japanese = {命題}{命題}
- , russian = {Предложение}{Предложение}
- }
- , Crefname = {
- , english = {Proposition}{Proposition}
- , french = [La]{Proposition}[Les]{Proposition}
- , ngerman = {Proposition}{Proposition}
- , italian = [La]{Proposizione}[Le]{Proposizione}
- , portuguese = [A]{Proposição}[As]{Proposição}
- , brazilian = [A]{Proposição}[As]{Proposição}
- , spanish = [La]{Proposición}[Las]{Proposición}
- , schinese = {命题}{命题}
- , tchinese = {命題}{命題}
- , japanese = {命題}{命題}
- , russian = {Предложение}{Предложение}
- }
- }
-
-\NameTheorem { question }
- {
- , heading = {
- , english = Question
- , french = Question
- , ngerman = Frage
- , italian = Domanda
- , portuguese = Pergunta
- , brazilian = Pergunta
- , spanish = Pregunta
- , schinese = 问题
- , tchinese = 問題
- , japanese = 問題
- , russian = Вопрос
- }
- , crefname = {
- , english = {Question}{Question}
- , french = [la]{Question}[les]{Question}
- , ngerman = {Frage}{Frage}
- , italian = [la]{Domanda}[le]{Domanda}
- , portuguese = [a]{Pergunta}[as]{Pergunta}
- , brazilian = [a]{Pergunta}[as]{Pergunta}
- , spanish = [la]{Pregunta}[las]{Pregunta}
- , schinese = {问题}{问题}
- , tchinese = {問題}{問題}
- , japanese = {問題}{問題}
- , russian = {Вопрос}{Вопрос}
- }
- , Crefname = {
- , english = {Question}{Question}
- , french = [La]{Question}[Les]{Question}
- , ngerman = {Frage}{Frage}
- , italian = [La]{Domanda}[Le]{Domanda}
- , portuguese = [A]{Pergunta}[As]{Pergunta}
- , brazilian = [A]{Pergunta}[As]{Pergunta}
- , spanish = [La]{Pregunta}[Las]{Pregunta}
- , schinese = {问题}{问题}
- , tchinese = {問題}{問題}
- , japanese = {問題}{問題}
- , russian = {Вопрос}{Вопрос}
- }
- }
-
-\NameTheorem { remark }
- {
- , heading = {
- , english = Remark
- , french = Remarque
- , ngerman = Bemerkung
- , italian = Commento
- , portuguese = Comentário
- , brazilian = Comentário
- , spanish = Comentario
- , schinese = 备注
- , tchinese = 備註
- , japanese = 注釈
- , russian = Замечание
- }
- , crefname = {
- , english = {Remark}{Remark}
- , french = [la]{Remarque}[les]{Remarque}
- , ngerman = {Bemerkung}{Bemerkung}
- , italian = [il]{Commento}[i]{Commento}
- , portuguese = [o]{Comentário}[os]{Comentário}
- , brazilian = [o]{Comentário}[os]{Comentário}
- , spanish = [el]{Comentario}[los]{Comentario}
- , schinese = {备注}{备注}
- , tchinese = {備註}{備註}
- , japanese = {注釈}{注釈}
- , russian = {Замечание}{Замечание}
- }
- , Crefname = {
- , english = {Remark}{Remark}
- , french = [La]{Remarque}[Les]{Remarque}
- , ngerman = {Bemerkung}{Bemerkung}
- , italian = [Il]{Commento}[I]{Commento}
- , portuguese = [O]{Comentário}[Os]{Comentário}
- , brazilian = [O]{Comentário}[Os]{Comentário}
- , spanish = [El]{Comentario}[Los]{Comentario}
- , schinese = {备注}{备注}
- , tchinese = {備註}{備註}
- , japanese = {注釈}{注釈}
- , russian = {Замечание}{Замечание}
- }
- }
-
-\NameTheorem { theorem }
- {
- , heading = {
- , english = Theorem
- , french = Théorème
- , ngerman = Satz
- , italian = Teorema
- , portuguese = Teorema
- , brazilian = Teorema
- , spanish = Teorema
- , schinese = 定理
- , tchinese = 定理
- , japanese = 定理
- , russian = Теорема
- }
- , crefname = {
- , english = {Theorem}{Theorem}
- , french = [le]{Théorème}[les]{Théorème}
- , ngerman = {Satz}{Satz}
- , italian = [il]{Teorema}[i]{Teorema}
- , portuguese = [o]{Teorema}[os]{Teorema}
- , brazilian = [o]{Teorema}[os]{Teorema}
- , spanish = [el]{Teorema}[los]{Teorema}
- , schinese = {定理}{定理}
- , tchinese = {定理}{定理}
- , japanese = {定理}{定理}
- , russian = {Теорема}{Теорема}
- }
- , Crefname = {
- , english = {Theorem}{Theorem}
- , french = [Le]{Théorème}[Les]{Théorème}
- , ngerman = {Satz}{Satz}
- , italian = [Il]{Teorema}[I]{Teorema}
- , portuguese = [O]{Teorema}[Os]{Teorema}
- , brazilian = [O]{Teorema}[Os]{Teorema}
- , spanish = [El]{Teorema}[Los]{Teorema}
- , schinese = {定理}{定理}
- , tchinese = {定理}{定理}
- , japanese = {定理}{定理}
- , russian = {Теорема}{Теорема}
- }
- }
-
-\endinput
-%%
-%% End of file `projlib-theorem.sty'.
-
-
-接下来:
-1. ✅ 定义 \SetTheorem,用于处理编号和名称样式的问题
-2. ✅ 定义 complexname 与 simplename
-3. ✅ 给出定理类环境的初始化,注意 no-theorem 与 no-theorem-numbering 等选项
diff --git a/macros/luatex/generic/luatexja/README b/macros/luatex/generic/luatexja/README
index a7b65cee77..9789b3ab84 100644
--- a/macros/luatex/generic/luatexja/README
+++ b/macros/luatex/generic/luatexja/README
@@ -1,4 +1,4 @@
-The LuaTeX-ja Package 20220211.0
+The LuaTeX-ja Package 20220311.0
--------------------------------
Copyright (c) 2011--2022 The LuaTeX-ja project
License: modified BSD (see COPYING)
@@ -42,9 +42,9 @@ Installation
2. If you must/want to install manually:
a. Download the source archive from CTAN,
- or tagged as 20220211.0 in the Git repository by
+ or tagged as 20220311.0 in the Git repository by
<http://git.osdn.jp/view?p=luatex-ja/luatexja.git
- ;a=snapshot;h=refs/tags/20220211.0;sf=tgz>
+ ;a=snapshot;h=refs/tags/20220311.0;sf=tgz>
b. Extract the archive and process following three files by LuaLaTeX
to generate classes for Japanese typesetting:
@@ -93,4 +93,4 @@ Notes
This file and ltj-kinsoku.lua are not used anymore.
(Do not remove ltj-kinsoku.tex.)
-Last commit date: Fri Feb 11 07:50:08 2022 +0900
+Last commit date: Fri Mar 11 19:03:05 2022 +0900
diff --git a/macros/luatex/generic/luatexja/doc/luatexja-en.pdf b/macros/luatex/generic/luatexja/doc/luatexja-en.pdf
index 5ebcaab7e3..9b4b7e16ad 100644
--- a/macros/luatex/generic/luatexja/doc/luatexja-en.pdf
+++ b/macros/luatex/generic/luatexja/doc/luatexja-en.pdf
Binary files differ
diff --git a/macros/luatex/generic/luatexja/doc/luatexja-ja.pdf b/macros/luatex/generic/luatexja/doc/luatexja-ja.pdf
index 0014d5e0f2..0ecc2456f6 100644
--- a/macros/luatex/generic/luatexja/doc/luatexja-ja.pdf
+++ b/macros/luatex/generic/luatexja/doc/luatexja-ja.pdf
Binary files differ
diff --git a/macros/luatex/generic/luatexja/src/luatexja.sty b/macros/luatex/generic/luatexja/src/luatexja.sty
index 26ebad2832..f8c20af662 100644
--- a/macros/luatex/generic/luatexja/src/luatexja.sty
+++ b/macros/luatex/generic/luatexja/src/luatexja.sty
@@ -27,7 +27,7 @@
\newif\ifltj@disablejfam
%%%% VERSION
-\def\LuaTeXjaversion{20220211.0}
+\def\LuaTeXjaversion{20220311.0}
%% Check if LaTeX is used.
\begingroup\expandafter\expandafter\expandafter\endgroup
diff --git a/macros/luatex/generic/luatexja/src/patches/lltjp-footmisc.sty b/macros/luatex/generic/luatexja/src/patches/lltjp-footmisc.sty
index b838fd92fe..edde267d3c 100644
--- a/macros/luatex/generic/luatexja/src/patches/lltjp-footmisc.sty
+++ b/macros/luatex/generic/luatexja/src/patches/lltjp-footmisc.sty
@@ -3,9 +3,16 @@
%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjp-footmisc}[2021-03-25 Patch to footmisc for LuaTeX-ja]
-\RequirePackage{footmisc}
+\ProvidesPackage{lltjp-footmisc}[2022-02-19 Patch to footmisc for LuaTeX-ja]
+\@ifpackagelater{footmisc}{2022-02-10}{%% v6.0a or later
+ \patchcmd{\@makenormalcolbox}{\vskip -\@outputbox@depth\@textbottom}%
+ {\pltx@adjust@wd@outputbox\vskip -\@outputbox@depth\@textbottom}{}{}%
+ \let\ltj@next\endinput
+}{\let\ltj@next\relax}
+\ltj@next
+
+% old (v5.5)
\let \if@tempswa \ifFN@bottom
\ifFN@para \@tempswatrue \fi
\if@tempswa
diff --git a/macros/optex/README b/macros/optex/README
index bd8d5824e8..bb17d1359c 100644
--- a/macros/optex/README
+++ b/macros/optex/README
@@ -1,6 +1,9 @@
OpTeX: the LuaTeX format based on Plain TeX and OPmac
-Author: Petr Olsak, <petr@olsak.net>
+Author: Petr Olsak, <petr@olsak.net>
+
+Co-author: Michal Vlasák, <lahcim8@gmail.com>
+ (Lua code, colors by attributes, interface to tikz, minim)
This software is in public domain.
@@ -19,6 +22,16 @@ doc/ ... PDF version of the OpTeX documentation and sources.
History:
+<1.06> Mar. 2022:
+ \transparency selector using attributes implemented.
+ Interface to minim (minim-mp.opm, minim-pdf.opm) introduced.
+ Interface to TikZ (tikz.opm) improved.
+ PDF page resources: management by Lua code implemented.
+ Possibility of preloading no fonts to the format by \let\fontspreload=\relax.
+ hisyntax-lua.opm introduced.
+ plain-at.opm macros included to the format.
+ Language/hyphenations macros reimplemented, phrases file introduced.
+ Font selection: low level macros reimplemented, \fontsel introduced.
<1.05> Jan. 2022:
\_par used internally instead \par if \partokenname is available.
Extended format \ref[label]{text} and \pgref[label]{text} introduced.
diff --git a/macros/optex/base/alloc.opm b/macros/optex/base/alloc.opm
index 13252cae70..51bd257962 100644
--- a/macros/optex/base/alloc.opm
+++ b/macros/optex/base/alloc.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \newdimen {Allocators for registers <2021-02-15>} % preloaded in format
+\_codedecl \newdimen {Allocators for registers <2022-03-07>} % preloaded in format
\_doc -----------------------------
The limits are set first.
@@ -15,20 +15,22 @@
\_chardef\_mairead = 15
\_chardef\_maiwrite = 15
\_chardef\_maifam = 255
+\_chardef\_mailanguage = 16380 % In fact 16383, but we reserve next numbers for dummy patterns
\_doc -----------------------------
Each allocation macro needs its own counter.
\_cod -----------------------------
-\_countdef\_countalloc=10 \_countalloc=255
-\_countdef\_dimenalloc=11 \_dimenalloc=255
-\_countdef\_skipalloc=12 \_skipalloc=255
-\_countdef\_muskipalloc=13 \_muskipalloc=255
-\_countdef\_boxalloc=14 \_boxalloc=255
-\_countdef\_toksalloc=15 \_toksalloc=255
-\_countdef\_readalloc=16 \_readalloc=-1
-\_countdef\_writealloc=17 \_writealloc=-1
-\_countdef\_famalloc=18 \_famalloc=3
+\_countdef\_countalloc=10 \_countalloc=255
+\_countdef\_dimenalloc=11 \_dimenalloc=255
+\_countdef\_skipalloc=12 \_skipalloc=255
+\_countdef\_muskipalloc=13 \_muskipalloc=255
+\_countdef\_boxalloc=14 \_boxalloc=255
+\_countdef\_toksalloc=15 \_toksalloc=255
+\_countdef\_readalloc=16 \_readalloc=-1
+\_countdef\_writealloc=17 \_writealloc=0 % should be -1 but there is bug in new luatex
+\_countdef\_famalloc=18 \_famalloc=3
+\_countdef\_languagealloc=19 \_languagealloc=0
\_doc -----------------------------
The common allocation macro
@@ -51,7 +53,7 @@
\_doc -----------------------------
The allocation macros
\`\newcount`, \`\newdimen`, \`\newskip`, \`\newmuskip`, \`\newbox`,
- \`\newtoks`, \`\newread`, \`\newwrite` and \`\newfam`
+ \`\newtoks`, \`\newread`, \`\newwrite`, \`\newfam`, and \`\newlanguage`
are defined here.
\_cod -----------------------------
@@ -64,8 +66,10 @@
\_def\_newread #1{\_allocator #1{read}\_chardef}
\_def\_newwrite #1{\_allocator #1{write}\_chardef}
\_def\_newfam #1{\_allocator #1{fam}\_chardef}
+\_def\_newlanguage #1{\_allocator #1{language}\_chardef}
-\_public \newcount \newdimen \newskip \newmuskip \newbox \newtoks \newread \newwrite \newfam ;
+\_public \newcount \newdimen \newskip \newmuskip \newbox \newtoks
+ \newread \newwrite \newfam \newlanguage ;
\_doc -----------------------------
The \`\newinsert` macro is defined differently than others.
@@ -86,19 +90,25 @@
\_public \newinsert ;
\_doc -----------------------------
- Other allocation macros \`\newattribute` and \`\newcatcodetable`
+ Other allocation macros \`\newmarks`. \`\newattribute` and \`\newcatcodetable`
have their counter allocated by the `\newcount` macro.
+ \`\_noattr` is constant `-"7FFFFFFF`, i.e. unused attribute
\_cod -----------------------------
+\_newcount \_marksalloc \_marksalloc=0 % start at 1, 0 is \mark
+\_chardef\_maimarks=\_maicount
+\_def\_newmarks #1{\_allocator #1{marks}\_chardef}
+
\_newcount \_attributealloc \_attributealloc=0
-\_chardef\_maiattribute=\_maicount
+\_chardef\_maiattribute=\_numexpr\_maicount -1\_relax
+\_attributedef\_noattr \_maicount
\_def\_newattribute #1{\_allocator #1{attribute}\_attributedef}
\_newcount \_catcodetablealloc \_catcodetablealloc=10
\_chardef\_maicatcodetable=32767
\_def\_newcatcodetable #1{\_allocator #1{catcodetable}\_chardef}
-\_public \newattribute \newcatcodetable ;
+\_public \newmarks \newattribute \newcatcodetable ;
\_doc -----------------------------
We declare public and private versions of `\tmpnum` and `\tmpdim`
@@ -168,6 +178,8 @@ the array-like declarator of counters.
\_endinput
+2022-03-07 \_noattr allocated
+2022-02-19 \_newlanguage introduced
2021-02-15 \_advance -> \_incr, \_decr
2020-05-12 \newmath -> \newfam bug fixing
2020-01-23 released
diff --git a/macros/optex/base/bib-iso690.opm b/macros/optex/base/bib-iso690.opm
index 696084d8bb..5c39c6a6e5 100644
--- a/macros/optex/base/bib-iso690.opm
+++ b/macros/optex/base/bib-iso690.opm
@@ -1,6 +1,6 @@
% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \_undefined {BIB style (iso690) <2021-04-07>} % loaded on demand by \usebib
+\_codedecl \_undefined {BIB style (iso690) <2022-02-04>} % loaded on demand by \usebib
\_ifx\_optexbibstyle\_undefined \_errmessage
{This file can be read by: \_string\usebib/? (iso690) bibfiles command only}
@@ -122,7 +122,9 @@
\_CreateField {lang}
\_def\_setlang#1{\_ifx#1\_empty \_else
- \_ifcsname _mt:bib.and:#1\_endcsname \_language=\_csname _#1Patt\_endcsname \_relax
+ \_setbox0=\_vbox{\_langinput{#1}}%
+ \_ifcsname _mt:bib.and:#1\_endcsname
+ \_language=\_csname _#1Patt\_endcsname \_relax
\_else \_opwarning{No phrases for "#1" used by [\EntryKey] in .bib}%
\_fi\_fi
}
@@ -905,5 +907,6 @@ Other options in the option field are silently ignored.
\_endinput
+2022-02-04 ... \_langinput used in \_setlang
2021-04-07 ... \biboptions toks declaration moved, bug fixed.
2020-03-10 ... released
diff --git a/macros/optex/base/colors.opm b/macros/optex/base/colors.opm
index 6ef8fc9dcf..36afcb3862 100644
--- a/macros/optex/base/colors.opm
+++ b/macros/optex/base/colors.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \colordef {Colors <2021-07-16>} % preloaded in format
+\_codedecl \colordef {Colors <2022-03-07>} % preloaded in format
\_doc -----------------------------
The basic colors in CMYK
@@ -72,14 +72,11 @@
\_color:<attribute-value> ... expands to <data> <fill-op>
\_color-s:<attribute-value> ... expands to <data> <stroke-op>
\endtt
- The \`\_resetcolor` un-sets the color attribute, it means that default
- color (black) shall be used.
\_cod -----------------------------
\_newattribute \_colorattr
\_newcount \_colorcnt \_colorcnt=1 % allocations start at 1
\_protected\_def\_setcolor{\_colorprefix\_colorattr=\_translatecolor}
-\_def\_resetcolor{\_colorattr=-"7FFFFFFF }
\_def\_translatecolor#1#2#3{\_ifcsname _color::#1 #2\_endcsname\_lastnamedcs\_relax
\_else
\_colorcnt
@@ -108,6 +105,41 @@
\_localcolor
\_doc -----------------------------
+ The attribute \`\_transpattr` is allocated and set by the
+ \`\transparency``<number>` macro. If such level of the tranparency was
+ never used in the document then
+ \^`\addextgstate{tr<number>}`\code{\{<</ca X /CA X>>\}} is applied
+ (where `X` is `(255-<number>)/255`).
+ This information is used when shipout is processed (similarly as colors).
+ It means `/tr<number> gs` is inserted when the attribute is changed.\nl
+ \`\_resetattrs` resets the \^`\_colorattr` and \^`\_transpattr`
+ to their initial value `-"7FFFFFFF`.
+ \_cod -----------------------------
+
+\_newattribute\_transpattr
+\_def\_transparency {\_afterassignment\_transparencyA \_transpattr}
+\_def\_transparencyA{%
+ \_ifnum\_transpattr<1 \_transpattr=\_noattr \_fi
+ \_ifnum\_transpattr>255 \_opwarning{\_noexpand\transparency > 255 not allowed}%
+ \_transpattr=\_noattr
+ \_else
+ \_ifcsname _transp:\_the\_transpattr\_endcsname \_else
+ \_edef\_transpv{\_expr{(255-\_the\_transpattr)/255}}%
+ \_addextgstate{tr\_the\_transpattr}{<</ca \_transpv\_space /CA \_transpv>>}%
+ \_sxdef{_transp:\_the\_transpattr}{}%
+ \_ifcsname _transp:0\_endcsname \_else
+ \_addextgstate{tr0}{<</ca 1 /CA 1>>}%
+ \_sxdef{_transp:0}{}%
+ \_fi
+ \_fi
+ \_fi
+}
+\_def\_thetransparency{\_ifnum \_transpattr=-"7FFFFFFF 0\_else \_the\_transpattr \_fi}
+\_def\_resetattrs{\_colorattr=\_noattr \_transpattr=\_noattr}
+
+\_public \transparency \thetransparency ;
+
+ \_doc -----------------------------
We use Lua codes for RGB to CMYK or CMYK to RGB conversions and for
addition color components in the \^`\colordef` macro.
The \`\_rgbtocmyk` `<R> <G> <B> ;` expands to `<C> <M> <Y> <K>` and
@@ -411,6 +443,8 @@ and it is used in \^`\rgbcolordef` or if it is printed when \^`\onlyrgb` is decl
\_endinput
+2022-03-07 \_resetattrs instead \_resetcolor
+2022-03-05 \transparency added
2021-07-16 colors reimplemented, now they are based on attributes
2021-05-28 \rgbcmykmap introduced
2020-04-22 \replstring\tmpb{+ }{+}, {- }{-} added in \colordef, bug fixed
diff --git a/macros/optex/base/doc.opm b/macros/optex/base/doc.opm
index cb2b976e7c..82c6bde8c6 100644
--- a/macros/optex/base/doc.opm
+++ b/macros/optex/base/doc.opm
@@ -253,7 +253,7 @@
The \^`\printdoc` `<filename><space>` and \^`\printdoctail` `<filename><space>`
commands are defined after the file `doc.opm` is load by \^`\load`~`[doc]`.
-The `\printcoc` starts reading of given `<filename>` from the second line.
+The `\printdoc` starts reading of given `<filename>` from the second line.
The file is read in {\em the listing mode}.
The `\prindoctail` starts reading given `<filename>` from the
first occurrence of the `\_endcode`. The file is read
@@ -263,7 +263,7 @@ The {\em listing mode} prints the lines as a listing of a code. This mode is
finished when first {\visiblesp` \_doc`} occurs or first `\_endcode`
occurs. At least two spaces or one tab
character must precede before such `\_doc`. On the other
-hand, the `\_encode` must be at the left edge of the line without spaces.
+hand, the `\_endcode` must be at the left edge of the line without spaces.
If this rule is not met then the listing mode continues.
If the first line or the last line of the listing mode is empty then such
diff --git a/macros/optex/base/f-heros.opm b/macros/optex/base/f-heros.opm
index 2195774b88..e7055d84f8 100644
--- a/macros/optex/base/f-heros.opm
+++ b/macros/optex/base/f-heros.opm
@@ -237,6 +237,15 @@ See the font family file `f-lmfonts.opm` or `f-poltawski.opm` where you can find
the example of the optical sizes declaration including documentation about
it.
+Several fonts don't switch to the font features if the features are
+specified directly as documented above. You must add the `script=latn;`
+specification to the features string when using these fonts, see
+`f-baskerville.opm` for example. The reason: these fonts don't follow the
+OpenType specification and they don't set the `DFLT` script but only scripts
+with given names like `latn`. And the tables implementing all font features
+are included here. You can check the internals of the font by FontForge:
+View / Show~ATT / OpenType Tables / GSUB. Do you see the `DFLT` script here?
+
If you need to create a font family file with a non-Unicode font, you can do it.
The `\_fontnamegen` must expand to the name of TFM file in this case. But we
don't prefer such font family files, because they are usable only with
diff --git a/macros/optex/base/f-lmfonts.opm b/macros/optex/base/f-lmfonts.opm
index 5356680e9d..8fe1d34b95 100644
--- a/macros/optex/base/f-lmfonts.opm
+++ b/macros/optex/base/f-lmfonts.opm
@@ -106,8 +106,8 @@ Note: Text fonts support optical sizes, but LatinModern-Math only for scripts.^^
\_onlyif subfam=tt: {\_fvars r b isl bisl }}
\_moddef \caps {\_onlyif subfam=rm,tt: {\_fvars rc . ic . }}
-\_def \_tryloadtt {\_fontdef\_tentt{\_LMfonts \_addto\_fontfeatures{-tlig;}\_ttset \_rm}}
-\_private \LMfonts \ttset ; % used in \_tryloadtt
+%\_famvardef\tt{\_LMfonts \_addto\_fontfeatures{-tlig;}\_ttset \_rm}
+%\_private \LMfonts \ttset ; % used in \tt, % removed 2022-02-22
\_initfontfamily % new font family must be initialized
diff --git a/macros/optex/base/fonts-catalog.opm b/macros/optex/base/fonts-catalog.opm
index 3cd02e7b27..6576e5fb11 100644
--- a/macros/optex/base/fonts-catalog.opm
+++ b/macros/optex/base/fonts-catalog.opm
@@ -1,13 +1,13 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \_undefined {Font catalogue <2020-02-26>} % loaded on demand by \fontfam[catalog]
+\_codedecl \_undefined {Font catalogue <2022-02-22>} % loaded on demand by \fontfam[catalog]
\_tracinglostchars=1 % only to log file
\_initunifonts
\_begingroup
\_istoksempty\_catalogmathsample \_iftrue \_noloadmath \_fi
-\_font\_ttfixed=[LMMono10-Regular]\_relax
+\_global\_font\_ttfixed=[LMMono10-Regular]\_relax
\_fontlet\_smalltt=\_ttfixed at7pt
\_suppressfontnotfounderror=1
@@ -66,16 +66,16 @@
\_def\_wlog#1{\_nobreak\_smallskip
\_hbox to\_hsize{\_hskip25pt
- \_edef\_tmp{#1}\_replstring\_tmp{^^J}{\_par}%
+ \_edef\_tmp{#1}\_replstring\_tmp{^^J}{\_endgraf}%
\_smalltt \_noindent \_ea \string \_csname \_currfamily\_endcsname
\_vtop{\leftskip=1em \_baselineskip=9pt \_tmp \_par}\_hss
\_if\_relax\_the\_famfrom\_relax \_else from: \_the\_famfrom \_fi
}
}
-\_def\0#1{\_ifnum#1<10 0\_fi\_the#1}
-\_footline={\_hfil\_ttfixed\_the\_pageno\_hfil}
-\_headline={\_ttfixed Font Catalogue generated by \_OpTeX/ \_hfill \_the\_year-\0\_month-\0\_day}
+\_gdef\0#1{\_ifnum#1<10 0\_fi\_the#1}
+\_global\_footline={\_hfil\_ttfixed\_the\_pageno\_hfil}
+\_global\_headline={\_ttfixed Font Catalogue generated by \_OpTeX/ \_hfill \_the\_year-\0\_month-\0\_day}
\_parindent=0pt
\_ttfixed
@@ -131,6 +131,7 @@ as default for \OpTeX/) or in the file \code{fams-local.opm}. The second file
does not exist by default but users can create it. The syntax rules are
described in the \code{fams-ini.opm} file.
-
\_endcode % -------------------------------------
+2022-02-22 \_ttfixed, \footline set as global, bug fixed
+2020-02-26 released
diff --git a/macros/optex/base/fonts-opmac.opm b/macros/optex/base/fonts-opmac.opm
index 025df761a5..158f19299e 100644
--- a/macros/optex/base/fonts-opmac.opm
+++ b/macros/optex/base/fonts-opmac.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \typosize {Font managing macros from OPmac <2021-03-10>} % preloaded in format
+\_codedecl \typosize {Font managing macros from OPmac <2022-02-22>} % preloaded in format
\_doc -----------------------------
\`\typosize` `[<font-size>/<baselineskip>]` sets given parameters.
@@ -104,7 +104,7 @@
\_mainbaselineskip=\_baselineskip
\_mainfosize=\_optsize
\_topskip=\_mainfosize \_splittopskip=\_topskip
- \_ifmmode \_else \_bf \_it \_bi \_rm \_fi % load all basic variants of the family
+ \_ifmmode \_else \_rm \_fi % load and initialize \rm variant
\_ifnum \_mfontsrule>0 \_normalmath \_fi % load math fonts first
\_let \_setmainvalues =\_setmainvaluesL
}
@@ -191,8 +191,8 @@
\_let\it =\_bi \_let\rm =\_bf \_let\_normalmath=\_boldmath \_bf
\_runboldmath
\_ifx\_ncharrmA\_undefined \_protected\_addto\rm{\_fam0 }\_protected\_addto\it{\_fam1 }%
- \_else \_protected\_def\rm {\_tryloadbf \_tenbf \_inmath{\_rmvariables \_rmdigits}}%
- \_protected\_def\it {\_tryloadbi \_tenbi \_inmath{\_itvariables}}%
+ \_else \_protected\_def\rm {\_fmodbf \_fontsel \_marm}%
+ \_protected\_def\it {\_fmodbi \_fontsel \_mait}%
\_fi
}
\_def\_runboldmath{\_boldmath}
@@ -218,6 +218,7 @@
\_endcode % -------------------------------------
History:
+2022-02-22 \_setmainvalues: only \rm initialized
2021-03-10 \boldify corrected
2021-03-09 \mfontsrule and \_setmathfonts introduced
2020-12-12 \_rmfixed fixed
diff --git a/macros/optex/base/fonts-preload.opm b/macros/optex/base/fonts-preload.opm
index d56d5c0a78..8562da786c 100644
--- a/macros/optex/base/fonts-preload.opm
+++ b/macros/optex/base/fonts-preload.opm
@@ -1,24 +1,32 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \tenrm {Latin Modern fonts (EC) preloaded <2020-01-23>} % preloaded in format
+\_codedecl \tenrm {Latin Modern fonts (EC) preloaded <2022-02-12>} % preloaded in format
+
+\_ifx\fontspreload\_relax
+ \_let\_tenrm=\_nullfont \_let\_tenbf=\_nullfont \_let\_tenit=\_nullfont
+ \_let\_tenbi=\_nullfont \_let\_tentt=\_nullfont
+\_else
+ % Only few text fonts are preloaded:
+ % allow missing fonts during format generation
+ \_suppressfontnotfounderror=1
+ \_font\_tenrm=ec-lmr10 % roman text
+ \_font\_tenbf=ec-lmbx10 % boldface extended
+ \_font\_tenit=ec-lmri10 % text italic
+ \_font\_tenbi=ec-lmbxi10 % bold italic
+ \_font\_tentt=ec-lmtt10 % typewriter
+ \_suppressfontnotfounderror=0
+\_fi
-% Only few text fonts are preloaded:
-
-\_font\_tenrm=ec-lmr10 % roman text
-\_font\_tenbf=ec-lmbx10 % boldface extended
-\_font\_tenit=ec-lmri10 % text italic
-\_font\_tenbi=ec-lmbxi10 % bold italic
-\_font\_tentt=ec-lmtt10 % typewriter
\_tenrm
\_public \tenrm \tenbf \tenit \tenbi \tentt ;
\_endcode %---------------------------------------------------
-The format in lua\TeX/ can download only non-Unicode fonts. Latin Modern EC is
+The format in Lua\TeX/ can download only non-Unicode fonts. Latin Modern EC is
loaded here. These fonts are totally unusable in LuaTeX when languages with out
of ASCII or ISO-8859-1 alphabets are used (for example Czech). We load only
-a few 8bit fonts here especially for simple testing the format.
+a few 8bit fonts here especially for simple testing of the format.
But, if the user needs to do more serious work, he/she can
use `\fontfam` macro to load a selected font family of Unicode fonts.
@@ -34,3 +42,14 @@ are declared as `\public` here but only for backward compatibility. We don't
use them in the Font Selection System. But the protected versions of these
control sequences are used in the Font Selection System.
+If the `*.tfm` files are missing during format generation then the format is
+succesfully generated without any pre-loaded fonts. It doesn't matter if each
+document processed by \OpTeX/ declares Unicode fonts. You can create such
+fonts-less format anyway if you set \`\fontspreload` to `\relax` before
+`\input optex.ini`, i.e.:
+`luatex -ini '\let\fontspreload=\relax \input optex.ini'`
+
+\_endinput
+
+2022-02-12: \fontspreload added
+2020-01-23: released
diff --git a/macros/optex/base/fonts-resize.opm b/macros/optex/base/fonts-resize.opm
index 68ebf763db..e49303f377 100644
--- a/macros/optex/base/fonts-resize.opm
+++ b/macros/optex/base/fonts-resize.opm
@@ -1,11 +1,35 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \setfontsize {Font resizing macros <2021-05-02>} % preloaded in format
+\_codedecl \setfontsize {Font resizing macros <2022-02-22>} % preloaded in format
\_doc -----------------------------
- The \`\setfontsize` `{<sizespec>}` saves the `<sizespec>` to the \`\_sizespec` macro.
- The \`\_optsize` value is calculated from the `<sizespec>`.
- If the `<sizepec>` is in the `mag<number>` format then the contents of
+ \`\initunifonts` macro extends \LuaTeX's font capabilities,
+ in order to be able to load Unicode fonts. Unfortunately, this part of
+ \OpTeX/ depends on the `luaotfload` package, which adapts Con\TeX/t's generic
+ font loader for plain \TeX/ and \LaTeX. `luaotfload` uses Lua functions
+ from \LaTeX's `luatexbase` namespace, we provide our own replacements.
+ \^`\initunifonts` sets itself to relax because we don't want to do
+ this work twice.
+ \_cod -----------------------------
+
+\_def\_initunifonts {%
+ \_directlua{%
+ require('luaotfload-main')
+ luaotfload.main()
+ optex_hook_into_luaotfload()
+ }%
+ \_glet \_fmodtt=\_unifmodtt % use \_ttunifont for \tt
+ \_glet \_initunifonts=\_relax % we need not to do this work twice
+ \_glet \initunifonts=\_relax
+}
+\_public \initunifonts ;
+
+ \_doc -----------------------------
+ The \`\setfontsize` `{<size spec>}` saves the `<size spec>` to the \`\_sizespec` macro.
+ The \`\_optsize` value is calculated from the `<size spec>`.
+ If the <size spec> is in the format `scaled<factor>` then
+ `\_optsize` is set from \`\defaultoptsize`.
+ If the `<size spec>` is in the `mag<number>` format then the contents of
the `\_sizespec` macro is re-calculated to the `at<dimen>` format using
previous `\_optsize` value.
\par \goodbreak
@@ -18,7 +42,6 @@
\_def\_setfontsize #1{%
\_edef\_sizespec{#1}%
\_ea \_setoptsize \_sizespec\_relax
- \_reloading
}
\_def\_setoptsize {\_isnextchar a{\_setoptsizeA}
{\_isnextchar m{\_setoptsizeC}{\_setoptsizeB}}}
@@ -33,80 +56,84 @@
\_public \setfontsize \defaultoptsize ;
\_doc -----------------------------
+ The `\fontname` primitive returns the <font file name> optionally
+ followed by <size spec>. The \`\xfontname` macro expands to <font file name>
+ without <size spec>. We need to remove the part `<space>at<dimen>` from
+ `\fontname` output. The letters `at` have category 12.
+ \_cod -----------------------------
+
+\_edef\_stringat{\_string a\_string t}
+\_edef\_xfontname#1{\_unexpanded{\_ea\_xfontnameA\_fontname}#1 \_stringat\_relax}
+\_expanded{\_def\_noexpand\_xfontnameA#1 \_stringat#2\_relax}{#1}
+
+ \_doc -----------------------------
\`\fontlet` `<font switch A> <font switch B> <size spec>` does
\begtt \catcode`\<=13
- \font <font switch A> = <fontname> <sizespec>
+ \font <font switch A> = {<font file name>} <size spec>
\endtt
- The `<fontname>` is extracted using the primitive command `\_fontname <font switch B>`.
+ Note, that the `\_xfontname` output is converted due to optical size data using `\_optfn`.
\_cod -----------------------------
-\_def\_fontlet#1#2{\_ifx #2=\_ea\_fontlet \_ea#1\_else
- \_ea\_font\_ea#1\_ea\_rfontskipat\_fontname#2 \_relax\_space \_fi
-}
-\_public \fontlet ;
+\_def\_fontlet#1#2{\_ifx #2=\_ea\_fontlet \_ea#1\_else \_font #1{\_optfn{\_xfontname#2}}\_fi}
+\_public \xfontname \fontlet ;
\_doc -----------------------------
- \`\newcurrfontsize` `<size spec>` sets current font size to the `<size spec>`
- It is implemented by \^`\fontlet`.
- The font switch of the current font is extracted by `\_the\_font`.
- We must re-create the control sequence `\_the\_font` because
- its original meaning is set to \"inaccessible" by \TeX/ when `\font`
- primitive is started.
+ \`\newcurrfontsize` `<size spec>` does
+ \^`\fontlet` `<saved switch>=\font <size spec>\_relax <saved switch>`.
+ It changes the current font at the given <size spec>.
\nl
- \`\resizethefont` is implemented by `\newcurrfontsize` using data from
+ \`\resizethefont` is implemented by \^`\newcurrfontsize` using data from
the \^`\_sizespec` macro.
\_cod -----------------------------
\_def \_newcurrfontsize #1{% \newcurrfontsize{at25pt}
- \_edef\_tmp{\_ea\_csstring \_the\_font}%
- \_ea \_fontlet \_csname \_tmp\_ea\_endcsname \_the\_font \_space #1\_relax
- \_ea\_fontloaded \_csname \_tmp \_ea\_endcsname \_csname \_tmp\_endcsname
+ \_ea\_def \_ea\_tmp \_ea{\_csname \_ea\_csstring \_the\_font \_endcsname}%
+ \_ea\_fontlet \_tmp \_font #1\_relax
+ \_ea\_fontloaded \_tmp
+ \_tmp
}
\_protected\_def \_resizethefont{\_newcurrfontsize\_sizespec}
-
- \_public \newcurrfontsize \resizethefont ;
+\_public \newcurrfontsize \resizethefont ;
\_doc -----------------------------
The \`\_regtfm` `<font id> <optical size data>`
- saves the <optical size data> concerned to `<font id>`.
+ registers optical sizes data directly by the font file names.
+ This can be used for `tfm` files or OpenType files without
+ various font features. See also \`\_regoptsizes` in section~\ref[optsizes].
+ The `\_regtfm` command saves the <optical size data> concerned to the `<font id>`.
The `<optical size data>` is in the form as shown below in the code where
`\_regtfm` is used.
\nl
- The \`\_wichtfm` `<fontname>` expands to the `<fontname>` or to the corrected
- `<fontname>` read from the `<optical size data>`. It is used in the
- \^`\_rfontskipat` macro and it is used in \^`\fontlet` macro.
- It means that each `<fontname>` generated by the `\fontname` primitive in the
- `\fontlet` macro is processed by the `\_whichtfm`. The real `<fontname>` or
- corrected `<fontname>` (depending on the optical data does not exist or exist)
- is the output of the expansion before `\font` primitive takes this output
- as its parameter.
-
- The implementation detail: The `\_<font id>:reg` is defined as the
- `<optical size data>` and all control sequences `\_<fontname>:reg`
+ The \`\_optfn` `<fontname>` expands to the `<fontname>` or to the corrected
+ `<fontname>` read from the `<optical size data>` registered by `\_regtfm`.
+ It is used in the \^`\fontlet` macro.
+
+ The implementation detail: The `\_reg:<font id>` is defined as the
+ `<optical size data>` and all control sequences `\_reg:<fontname>`
from this data line have the same meaning because of the
- \`\_reversetfm` macro. The `\_whichtfm` expands this data line and apply
- \`\_dowhichtfm`. This macro selects the right result from the data line
+ \`\_reversetfm` macro. The `\_optfn` expands this data line and apply
+ \`\_runoptfn`. This macro selects the right result from the data line
by testing with the current `\_optsize` value.
\_cod -----------------------------
-\_def\_regtfm #1 0 #2 *{\_ea\_def \_csname _#1:reg\_endcsname{#2 16380 \_relax}%
+\_def\_regtfm #1 0 #2 *{\_ea\_def \_csname _reg:#1\_endcsname{#2 16380 \_relax}%
\_def\_tmpa{#1}\_reversetfm #2 * %
}
\_def\_reversetfm #1 #2 {% we need this data for \_setmathfamily
- \_ea\_let\_csname _#1:reg\_ea\_endcsname
- \_csname _\_tmpa:reg\_endcsname
+ \_ea\_let\_csname _reg:#1\_ea\_endcsname
+ \_csname _reg:\_tmpa\_endcsname
\_if*#2\_else \_ea\_reversetfm \_fi
}
-\_def\_whichtfm #1{%
- \_ifcsname _#1:reg\_endcsname
- \_ea\_ea\_ea \_dowhichtfm
- \_csname _#1:reg\_ea\_endcsname
+\_def\_optfn #1{%
+ \_ifcsname _reg:#1\_endcsname
+ \_ea\_ea\_ea \_runoptfn
+ \_csname _reg:#1\_ea\_endcsname
\_else
#1%
\_fi
}
-\_def\_dowhichtfm #1 #2 {%
- \_ifdim\_optsize<#2pt #1\_ea\_ignoretfm\_else \_ea\_dowhichtfm
+\_def\_runoptfn #1 #2 {%
+ \_ifdim\_optsize<#2pt #1\_ea\_ignoretfm\_else \_ea\_runoptfn
\_fi
}
\_def\_ignoretfm #1\_relax{}
@@ -116,24 +143,66 @@
\_cod -----------------------------
\_regtfm lmr 0 ec-lmr5 5.5 ec-lmr6 6.5 ec-lmr7 7.5 ec-lmr8 8.5 ec-lmr9 9.5
- ec-lmr10 11.1 ec-lmr12 15 ec-lmr17 *
+ ec-lmr10 11.1 ec-lmr12 15 ec-lmr17 *
\_regtfm lmbx 0 ec-lmbx5 5.5 ec-lmbx6 6.5 ec-lmbx7 7.5 ec-lmbx8 8.5 ec-lmbx9 9.5
- ec-lmbx10 11.1 ec-lmbx12 *
+ ec-lmbx10 11.1 ec-lmbx12 *
\_regtfm lmri 0 ec-lmri7 7.5 ec-lmri8 8.5 ec-lmri9 9.5 ec-lmri10 11.1 ec-lmri12 *
\_regtfm lmtt 0 ec-lmtt8 8.5 ec-lmtt9 9.5 ec-lmtt10 11.1 ec-lmtt12 *
\_endcode %---------------------------------------------------
-\sec[setfontsize] Scaling fonts in text mode (low-level macros)
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\sec[fontprimitive] Using `\font` primitive directly
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-This section describes single part of Font Selection System: resizing fonts
-to various sizes. This feature is available in both modes: TFM mode
-(initialized when format starts) and OTF mode (after \~`\fontfam` or
-\~`\initunifonts` is used).
+You can declare a new {\em font switch} by `\font` primitive:
+\begtt \catcode`\<=13
+\font \<font switch> = <font file name> <size spec>
+% for example:
+\font \tipa = tipa10 at12pt % the font tipa10 at 10pt is loaded
+% usage:
+{\tipa TEXT} % the TEXT is printed in the loaded font.
+\endtt
+The <size spec> can be empty or `at<dimen>` or `scaled<scale factor>`. The
+<font file name> must be terminated by space or surrounded in the braces.
+
+\OpTeX/ starts with `\font` primitive which is able to read only `tfm` files.
+i.e.\ the `<font file name>.tfm` (and additional data for glyphs)
+must be correctly installed in your system. If you want to load
+OpenType `otf` or `ttf` font files, use the declarator \^`\initunifonts`.
+This command adds additional features to the `\font` primitive which
+gives the extended syntax:
+\begtt \catcode`\<=13
+\font \<font switch> = {[<font file name>]:<font features>} <size spec>
+% or
+\font \<font switch> = {<font name>:<font features>} <size spec>
+\endtt
+where <font file name> is name of the OpenType font file without extension
+(extensions `.otf` or `.ttf` are assumed). The braces in the syntax
+are optional, use them when the <font file name> or <font name> includes spaces.
+The original syntax for `tfm` files is also available. Example:
+\begtt
+\initunifonts
+\font\crimson=[Crimson-Roman] at11pt % the font Crimson-Regular.otf is loaded
+\font\crimsonff=[Crimson-Roman]:+smcp;+onum at11pt % The same font is re-loaded
+ % with font features
+{\crimson Text 12345} % normal text in Crimson-Regular
+{\crimsonff Text 12345} % Crimson-Regular with small capitals and old digits
+\endtt
+\^`\initunifonts` loads the implementation of the `\font`
+primitive from `luaotfload` package. More information is available
+in the `luaotfload-latex.pdf` file.
+
+Note, that \^`\fontfam` does (among other things) \^`\initunifonts`
+internally. You need not to specify it if \^`\fontfam` is used.
+
+It seems that you must decide about final size of the font before it is
+loaded by the `\font` primitive. It is not exactly true; \OpTeX/ offers
+powerful possibility to resize the font already loaded on demand.
+See the example at the end of next subsection.
-\secc The `\setfontsize` macro
+
+\secc[setfontsize] The `\setfontsize` macro
The \^`\setfontsize` `{<size spec>}`
saves the information about `<size spec>`. This information is taken into
@@ -148,7 +217,7 @@ or `\resizethefont` is used. The `<size spec>` can be:
scaled in respect to the current size of the fonts given by the previous
\^`\setfontsize` command.
\enditems
-The initialization value in \OpTeX/ is given by `\setfontsize{at10pt}`.
+The initial value in \OpTeX/ is given by `\setfontsize{at10pt}`.
The \^`\resizethefont` resizes the currently selected font to the size given by previous
\^`\setfontsize`. For example
@@ -172,81 +241,88 @@ typography.
Text \smaller text \smaller text \smaller text.
\endtt
-\secc[fontprimitive] The `\font` primitive
-
-If you load a font directly by `\font` primitive and you want to
-create a size-dependent selector for such font then you can use
-\~`\resizethefont`:
-
-\begtt
-\font\tencomfortaa=Comfortaa-Regular-T1 at10pt
-\def\comfortaa{\tencomfortaa\resizethefont}
-
-\comfortaa The 10 pt text is here
-\setfontsize{at12pt}
-\comfortaa The 12 pt text is here
-\endtt
-%
-The example above uses the 8\,bit `tfm` font. You can use Unicode font too, of
-course. The \^`\fontfam` macro initializes the extended `\font` primitive
-features for \LuaTeX/ (see section \ref[exfont]).
-If you didn't use this command, you must initialize
-these features by the \^`\initunifonts` command explicitly, for example:
+The \^`\resizethefont` works with arbitrary current font, for example with the
+font loaded directly by `\font` primitive. For example:
\begtt
\initunifonts
-\font\tencyklop=[cyklop-regular] at10pt % the font cyklop-regular.otf is loaded
-\def\cyklop{\tencyklop\resizethefont}
+\font\tencrimson=[Crimson-Roman]:+onum % font Crimson-Regular at 10 pt is loaded
+\def\crimson{\tencrimson\resizethefont} % \crimson uses the font size on demand
-\cyklop The 10 pt text is here
+\crimson The 10 pt text is here.
\setfontsize{at12pt}
-\cyklop The 12 pt text is here
+\crimson The 12 pt text is here.
\endtt
+This is not only an academical example. The `\csrimson` command defined here
+behaves like variant selector in the Font Selection System (section~\ref[fontsystem]).
+It takes only information about size from the font context, but it is
+sufficient. You can use it in titles, footnotes, etc. The font size
+depending on surrounding size is automatically selected.
+
\secc[fontlet] The \code{\\fontlet} declarator
We have another command for scaling: \^`\fontlet` which can resize
arbitrary font given by its font switch.
-This font switch was declared by the
-`\font` primitive or the \~`\fontdef` macro.
-
\begtt \catcode`\<=13
- \fontlet \<newfont> = \<fontswitch> <sizespec>
+ \fontlet \<new font switch> = \<given font switch> <size spec>
example:
\fontlet \bigfont = \_tenbf at15pt
\endtt
+The `\<given font switch>` must be declared previously by `\font` or
+\^`\fontlet` or \~`\fontdef`. The `\<new font switch>` is declared as the
+same font at given <size spec>. The equal sign in the syntax is optional.
+You can declare `\<new font switch>` as the scaled current font by
+\begtt \catcode`\<=13
+\fontlet \<new font switch> = \font <size spec>
+\endtt
-The resulted `\bigfont` is the same as in the previous example where \~`\fontdef`
-was used. The advantage of \~`\fontdef` macro will be more clear when you load
-font families by `\fontfam` and you are using more font modifiers declared
-in such families.
-
-Summary: you can declare font switches:
-\begitems
-* by the `\font` primitive if you know the font file,
-* by the \^`\fontlet` command if you know the font switch and the size, or
-* by the \~`\fontdef` command if you know the variant and modifiers.
-\enditems
\secc Optical sizes
There are font families with more font files where almost the same font is
implemented in various design sizes: `cmr5`, `cmr6`, `cmr7`, `cmr8`, `cmr9`,
`cmr10`, `cmr12`, `cmr17` for example. This feature is called \"optical
-sizes". \OpTeX/ chooses a font with an optical size closest to desired size
-specified by the \^`\setfontsize`, when `at<dimen>` or `mag<coefficient>` is used.
-When `scaled<scale factor>` is used then optical size is chosen using the value
-of the `\defaultoptsize` register and such font is scaled by the specified
-`<scale factor>`. There is `\defaultoptsize=10pt` by default.
-
-Font collections with optical sizes must be registered by the
-\^`\_regtfm` for `tfm` files or \^`\_regoptsizes` for Unicode fonts.
-\OpTeX/ registers 8bit Latin Modern fonts in the format
-and OTF Latin Modern fonts in the `f-lmfonts.opm` file.
+sizes". Each design size is implemented in its individual font file and \OpTeX/ is
+able to choose right file if various optical sizes and corresponding file
+names are declared for the font by \^`\_regtfm` or \^`\_regoptsizes` command.
+The command \^`\setfontsize` sets the internal reuirements for
+optical size if the parameter is in the format `at<dimen>` or `mag<factor>`.
+Then the command \^`\resizethefont` or variant selectors try to choose
+the font suitable for the required optical size. For example
+\begtt
+\fontfam[lm]
+ The text is printed in font [lmroman10-regular] at 10 pt.
+\setfontsize{at13pt}\rm
+ Now in the text is printed in [lmroman12-regular] at 13 pt.
+\endtt
See also section~\ref[optsizes].
+
+\secc Font rendering
+
+If \^`\initunifonts` isn't declared then \OpTeX/ uses classical font
+renderer (like in `pdftex`). The extended font renderer implemented in the
+Luaotfload package is started after \^`\initunifonts`.
+
+The \OpTeX/ format uses `luatex` engine by default but
+you can initialize it by `luahbtex` engine too. Then the harfbuzz library is
+ready to use for font rendering as an alternative to built-in font renderer
+from Luaotfload. The harfbuzz library gives more features for rendering
+Indic and Arabic scripts. But it is not used as default, you need to specify
+`mode=harf` in the fontfeatures field when `\font` is used. Moreover, when
+`mode=harf` is used, then you must specify `script` too. For example
+
+\begtt
+\font\devafont=[NotoSansDevanagari-Regular]:mode=harf;script=dev2
+\endtt
+%
+If the `luahbtex` engine is not used then `mode=harf` is ignored. See
+Luaotfload documentation for more information.
+
\_endinput
+2022-02-22 Font Selection System reimplemented, \fontsel introduced
2021-05-02 better concept of doc, moving parts to fonts-select
2021-04-17 \_fontloaded, \_newfontloaded introduced
2020-04-17 \resizethefont introduced
diff --git a/macros/optex/base/fonts-select.opm b/macros/optex/base/fonts-select.opm
index d8d3982ba6..33d331150b 100644
--- a/macros/optex/base/fonts-select.opm
+++ b/macros/optex/base/fonts-select.opm
@@ -1,116 +1,72 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \fontfam {Fonts selection system <2021-09-24>} % preloaded in format
+\_codedecl \fontfam {Fonts selection system <2022-02-22>} % preloaded in format
\_doc -----------------------------
- The variant selectors \^`\rm`, \^`\bf`, \^`\it`, \^`\bi`, \^`\tt`
- are defined (roughly speaking) by
- \begtt \catcode`\<=13
- \def\<XX> {\_tryload<XX>\_ten<XX>}
- \endtt
- where <XX> is \"internal variant name" `rm` or `bf` or `it` or `bi` or `tt`.
- There are five \"internal font switchers" `\_tenrm`, `\_tenbf`, `\_tenit`,
- `\_tenbi` and `\_tentt`. They are used almost for all fonts selected by the Fonts
- Selection System. For example, `\_tenbf` is the switcher for bold variant of
- the current family in the current font context. The \^`\bf` macro is defined as
- `\_tryloadbf \_tenbf`. If the font context (font family, font size, features)
- is not changed, then `\_tryloadbf` is `\relax` and `\_tenbf` font switcher selects
- given font. If the font context is changed, then `\_tryloadbf` is re-defined (see
- \^`\_reloading` macro) to load new bold variant of the font using \^`\_resizefont`
- The loaded font is saved to `\_tenbf` switcher and `\_tryloadbf` returns
- back to the `\relax` meaning. So, `\bf` macro loads
- new font with current font context and then selects it by `\_tenbf`
- selector. The word \"ten" is used here
- only for historical reason; the font can be at arbitrary size.
- \nl
- The \`\_reloading` macro is run whenever font context is changed.
- It activates `\_tryload<XX>` for `<XX>` in `rm`, `bf`, `it` and `bi`.
- The \`\_loadf``{<XX>}\ten<XX>` is processed for this.
- \nl
- The \`\_tryloadtt` is implemented differently because we want to keep
- family independence for `\tt` macro, see section~\ref[tt].
- So, `\_tryloadtt` is defined constantly as \"loading `\tt` font" and it is
- not re-defined to `\relax`. On the other hand, `\_tryloadtt` is
- re-defined in the \^`\initunifonts` macro or when
- \~`\famvardef``\tt` is used.
+ The main principle of the Font Selection System is: run one or more
+ modifiers followed by \^`\fontsel`. Modifiers save data and \^`\fontsel`
+ selects the font considering saved data. Each basic variant selector
+ \`\rm`, \`\bf`, \`\it`, \`\bi`, and \`\tt` runs internal variant modifier
+ \`\_fmodrm`, \`\_fmodbf`, \`\_fmodit`, \`\_fmodbi` and \`\_fmodtt`.
+ These modifiers save their data to the \`\_famv` macro which is
+ `rm` or `bf` or `it` or `bi` or `tt`. The \`\currvar` selector
+ is \^`\fontsel` by default, but variant selectors declared by
+ \^`\famvardef` change it.
\_cod -----------------------------
-\_def\_reloading{\_loadf{rm}\_tenrm \_loadf{bf}\_tenbf \_loadf{it}\_tenit \_loadf{bi}\_tenbi}
-\_def\_loadf#1#2{\_sdef{_tryload#1}{\_ifmmode \_else \_resizefont{#1}#2\_fi}}
-\_def\_tryloadtt{\_resizefont{tt}\_tentt} % only in TFM mode
-
-\_let\_tryloadrm=\_relax
-\_let\_tryloadbf=\_relax
-\_let\_tryloadit=\_relax
-\_let\_tryloadbi=\_relax
-
- \_doc ----------------------------
- The Font Selection system allows to use \`\currvar`
- instead of an explicitly specified variant selector. The current variant
- is extracted from `\the\font` output which could be the `\_ten<XX>` control
- sequence. Then `\currvar` expands to `\_rm` or `\_it` etc.
- \_cod ----------------------------
-
-\_protected \_def \_currvar{\_cs{_currvar:\_ea \_csstring \_the\_font}}
-\_sdef{_currvar:_tenrm}{\_rm}
-\_sdef{_currvar:_tenbf}{\_bf}
-\_sdef{_currvar:_tenit}{\_it}
-\_sdef{_currvar:_tenbi}{\_bi}
-\_sdef{_currvar:_tentt}{\_tt}
-\_public \currvar ;
+\_def\_famv{rm} % default value
+\_protected\_def \_fmodrm {\_def\_famv{rm}}
+\_protected\_def \_fmodbf {\_def\_famv{bf}}
+\_protected\_def \_fmodit {\_def\_famv{it}}
+\_protected\_def \_fmodbi {\_def\_famv{bi}}
+\_protected\_def \_fmodtt {\_def\_famv{tt}}
+
+\_protected\_def \_rm {\_fmodrm \_fontsel \_marm}
+\_protected\_def \_bf {\_fmodbf \_fontsel \_mabf}
+\_protected\_def \_it {\_fmodit \_fontsel \_mait}
+\_protected\_def \_bi {\_fmodbi \_fontsel \_mabi}
+\_protected\_def \_tt {\_fmodtt \_fontsel \_matt}
+\_protected\_def \_currvar {\_fontsel} \_protected\_def \currvar{\_currvar}
+\_public \rm \bf \it \bi \tt ;
\_doc -----------------------------
- The \`\_resizefont` `{<variant-name>}\<font switch>` is the heart of the
- Fonts Selection System. It resizes the font given by the variant with
- respect to the current font context and sets a new <font-switch>.
- The <variant-name> is `rm` or `bf` or `it` or `bi` or `tt`.
- The new <font-switch> is declared (roughly speaking) by:
- \begtt \catcode`<=13
- \_font <font switch> = <fontname of>\_ten<variant-name> \_sizespec % in TFM mode
- \_font <font switch> = {\_fontnamegen} \_sizespec % in OTF mode
- \endtt
- The font is loaded by \`\_doresizefont``<font switch>`. This macro has
- meaning \`\_doresizetfmfont` in TFM mode (default in format) and it
- switches to \^`\_doresizeunifont` when \^`\initunifonts` is used.\nl
- The `<fontname of>` is generated by the `\fontname` \TeX/ primitive where
- \`\_rfontskipat` removes the `at<dimen>` part of the `\fontname` output.\nl
- The \`\_whatresize` is defined as `<variant-name>`.\nl
- The \^`\_fontloaded``<font switch>` is a macro which can be used for
- post-processing when a font is loaded.
+ The \`\fontsel` creates the <font switch> in the format `\_ten<famv>`
+ and loads the font associated to the <font switch>.
+ The loading is done by:
+ \begitems \style a
+ * `\letfont <font switch> = \savedswitch \_sizespec`
+ * `\font <font switch> = \fontnamegen \_sizespec`
+ \enditems
+ The a) variant is used when \~`\_fontnamegen` isn't defined, i.e.\
+ \^`\fontfam` wasn't used: only basic variant and \^`\_sizespec` is taken
+ into account. The b) variant is processed when \^`\fontfam` was used:
+ all data saved by all font modifiers are used during expansion of \^`\_fontnamegen`.\nl
+ After the font is loaded, final job is done by \`\_fontselA``<font-switch>`.
\_cod -----------------------------
-\_def\_resizefont#1#2{%
- \_edef\_whatresize{#1}\_doresizefont#2\_relax \_fontloaded #2%
- \_lastmagsize=\_zo
- \_if t\_ignoresecond#1\_else \_slet{_tryload#1}{_relax}\_fi
+\_protected\_def \_fontsel {%
+ \_ifx\_fontnamegen\_undefined % \fontfam was not used
+ \_ea\_let \_ea\_tmpf \_csname _ten\_famv\_endcsname
+ \_ea\_fontlet \_csname _ten\_xfamv\_endcsname \_tmpf \_sizespec
+ \_else % \fontfam is used
+ \_ea\_font \_csname _ten\_xfamv\_endcsname {\_fontnamegen}\_sizespec
+ \_fi \_relax
+ \_ea \_fontselA \_csname _ten\_xfamv\_endcsname
}
-\_def\_doresizetfmfont#1{\_logfont{#1}%
- \_ea\_font\_ea#1\_ea\_rfontskipat
- \_fontname \_cs{_ten\_whatresize} \_relax\_space \_sizespec \_relax
+\_def\_fontselA #1{%
+ \_protected\_def \_currvar {\_fontsel}% default value of \_currvar
+ \_logfont #1% font selecting should be logged.
+ \_setwsp #1% wordspace setting
+ \_fontloaded #1% initial settings if font is loaded firstly
+ #1% select the font
}
-\_let\_doresizefont=\_doresizetfmfont
-\_def\_logfont#1{} % default is no logging of used fonts
+\_def \_logfont #1{}
+\_def \_xfamv {\_famv}
-\_def\_rfontskipat#1{\_ifx#1"\_ea\_rfskipatX \_else\_ea\_rfskipatN\_ea#1\_fi}
-\_def\_rfskipatX #1" #2\_relax{"\_whichtfm{#1}"}
-\_def\_rfskipatN #1 #2\_relax{\_whichtfm{#1}}
+\_public \fontsel ;
\_doc -----------------------------
- \`\_doresizeunifont``<font-switch>` implements the OTF mode of
- loading fonts \^`\_doresizefont`.
- There is a fallback to TFM mode if \^`\_fontnamegen` is not defined.\nl
- The \^`\_fontnamegen` expands to the font name/file:font-features
- depending on the current font context.
- \_cod -----------------------------
-
-\_def\_doresizeunifont #1{\_logfont{#1}%
- \_ifx\_fontnamegen\_undefined \_doresizetfmfont#1\_else
- \_font#1={\_fontnamegen} \_sizespec \_relax \_setwsp#1\_relax
- \_fi
-}
-
- \_doc -----------------------------
- If a font is loaded by \^`\_resizefont` or \^`\resizethefont` then the
+ If a font is loaded by macros \^`\fontsel` or \^`\resizethefont` then the
\`\_fontloaded``<font switch>` is called immediately after it. If the font
is loaded first then its `\skewchar` is equal to $-1$. We run
\`\_newfontloaded``<font switch>` and set `\skewchar=-2` in this case.
@@ -120,7 +76,7 @@
globally saved to the font (like `\fontdimen`). If it is used in math
typesetting then it is set to a positive value.\nl
The `\_newfontloaded` should be defined for micro-typographic configuration of
- fonts, for example. See
+ fonts, for example. The `mte.opm` package uses it. See also
\ulink[http://petr.olsak.net/optex/optex-tricks.html\#fontexpand]{\OpTeX/ trick 0058}.
\_cod -----------------------------
@@ -128,36 +84,32 @@
\_def\_newfontloaded #1{}
\_doc -----------------------------
- \`\initunifonts` macro extends \LuaTeX's font capabalities,
- in order to be able to load Unicode fonts. Unfortunately, this part of
- \OpTeX/ depends on the `luaotfload` package, which adapts Con\TeX/t's generic
- font loader for plain \TeX/ and \LaTeX. `luaotfload` uses Lua functions
- from \LaTeX's `luatexbase` namespace, we provide our own replacements.
- Moreover, `\initunifont` switches with
- the \^`\_doresizefont` macro to OTF mode which is represented by the
- macro \^`\_doresizeunifont`.
- Finally, \^`\initunifonts` sets itself to relax because we don't want to do
- this work twice.\nl
- \`\_ttunifont` is default font for `\tt` variant.
+ \`\_ttunifont` is default font for \^`\tt` variant when \^`\initunifonts` is declared.
User can re-define it or use \^`\famvardef``\tt`.
+ The \`\_unifmodtt` macro is used instead \^`\_fmodtt` after
+ \^`\initunifonts`. It ignores the loading part of the following \^`\fontsel`
+ and do loading itself.
\_cod -----------------------------
-\_def\_initunifonts {%
- \_directlua{%
- require('luaotfload-main')
- luaotfload.main()
- optex_hook_into_luaotfload()
- }%
- \_gdef\_rfskipatX ##1" ##2\_relax{"##1"}%
- \_global\_let \_doresizefont=\_doresizeunifont
- \_gdef\_tryloadtt {\_begingroup \_let\_fontnamegen\_ttunifont % \tt uses \_ttunifont
- \_resizefont{tt}\_tentt\_relax \_ea\_endgroup \_ea\_let \_ea\_tentt \_the\_tentt}%
- \_global\_let \_initunifonts=\_relax % we need not to do this work twice
- \_global\_let \initunifonts=\_relax
-}
\_def\_ttunifont{[lmmono10-regular]:\_fontfeatures-tlig;}
+\_def\_unifmodtt\_fontsel{% ignore following \_fontsel
+ \_ea\_font \_csname _ten\_ttfamv\_endcsname {\_ttunifont}\_sizespec \_relax
+ \_ea\_fontselA \_csname _ten\_ttfamv\_endcsname
+ \_def \_currvar{\_tt}%
+}
+\_def\_ttfamv{tt}
-\_public \initunifonts ;
+ \_doc ----------------------------
+ A large part of the Font Selection System was re-implemented in Feb. 2022.
+ We want to keep backward compatibility:
+ \_cod ----------------------------
+
+\_def \_tryloadrm\_tenrm {\_fmodrm \_fontsel}
+\_def \_tryloadbf\_tenbf {\_fmodbf \_fontsel}
+\_def \_tryloadit\_tenit {\_fmodit \_fontsel}
+\_def \_tryloadbi\_tenbi {\_fmodbi \_fontsel}
+\_def \_tryloadtt\_tentt {\_fmodtt \_fontsel}
+\_def \_reloading {}
\_doc -----------------------------
The \`\_famdecl` `[<Family Name>] \<Famselector> {<comment>} {<modifiers>} {<variants>} {<math>}`\nl
@@ -186,10 +138,10 @@
\_protected\_edef#2{\_def\_noexpand\_currfamily{\_csstring #2}\_unexpanded{#8\_resetfam}}%
\_ea \_let \_csname _f:\_currfamily:main.fam\_endcsname =#2%
\_fi
- \_else \_csname _f:\_csstring#2:main.fam\_endcsname \_reloading \_rm \_ea \_endinput \_fi
+ \_else \_csname _f:\_csstring#2:main.fam\_endcsname \_rm \_ea \_endinput \_fi
}
\_def\_initfontfamily{%
- \_csname _f:\_currfamily:main.fam\_endcsname \_reloading \_rm
+ \_csname _f:\_currfamily:main.fam\_endcsname \_rm
}
\_doc -----------------------------
@@ -225,7 +177,7 @@
\_sdef{_fvar:bi}{#4}%
\_ifx.#4\_slet{_fvar:bi}{_fvar:it}\_fi
}
-\_def\_currV{\_cs{_fvar:\_whatresize}}
+\_def\_currV{\_trycs{_fvar:\_famv}{rm}}
\_def\_V{ }
\_def \_fsetV #1 {\_fsetVa #1,=,}
\_def \_fsetVa #1=#2,{\_isempty{#1}\_iffalse
@@ -248,33 +200,31 @@
the warning. When the `\_currfamily` value is
changed then we can declare the same `\<modifier>` with a different meaning.
- When a user declares a prefixed variant of the `\<modifier>` then unprefixed
- modifier name is used in internal macros, this is the reason why we are using
- the \`\_remifirstunderscore``\_tmp` (where `\_tmp` expands to
- `_<something>` or to `<something>`. The `\_remifirstunderscore`
- redefines `\_tmp` in the way that it
- expands only to `<something>` without the first `_`.
-
\`\_setnewmeaning` `<cs-name>=\_tmpa <by-what>` does exactly `\_let <csname>=\_tmpa`
but warning is printed if <cs-name> is defined already and it is not a variant
selector or font modifier.
\`\_addtomodlist` `<font modifier>` adds given modifier to \`\_modlist`
- macro. This list is used after `\resetmod` when a new family is selected by
+ macro. This list is used after \^`\resetmod` when a new family is selected by
a family selector, see \`\_resetfam` macro.
This allows reinitializing the same current modifiers in the font context
after the family is changed.
\_cod -----------------------------
-\_def \_moddef #1#2{\_edef\_tmp{\_csstring#1}%
- \_sdef{_f:\_currfamily:\_tmp}{\_addtomodlist#1#2\_reloading}%
+\_def \_moddef #1#2{%
+ \_edef\_tmp{\_csstring#1}%
+ \_sdef{_f:\_currfamily:\_tmp}{\_addtomodlist#1#2}%
\_protected \_edef \_tmpa{\_noexpand\_famdepend\_noexpand#1{_f:\_noexpand\_currfamily:\_tmp}}%
\_setnewmeaning #1=\_tmpa \moddef
}
\_protected \_def\_resetmod {\_cs{_f:\_currfamily:resetmod}} % private variant of \resetmod
-\_def \_resetfam{\_def\_addtomodlist##1{}\_resetmod
+\_def \_resetfam{%
+ \_def\_addtomodlist##1{}\_resetmod
\_edef \_modlist{\_ea}\_modlist
\_let\_addtomodlist=\_addtomodlistb
+ \_ifcsname _f:\_currfamily:\_ea\_csstring \_currvar \_endcsname
+ \_else \_ea\_ifx\_currvar\_tt \_else \_def\_currvar{\_fontsel}\_fi
+ \_fi % corrected \_currvar in the new family
}
\_def \_currfamily{} % default current family is empty
\_def \_modlist{} % list of currently used modifiers
@@ -304,60 +254,39 @@
<font-switch>.
We want to declare <font-switch> in its real name directly by `\font` primitive in
order to save this name for reporting later (in overfull messages, for
- example). This is the reason why \^`\_loadf` is re-defined locally here.
- The <variant selector> used in <data> expands to `\_tryload<XX> \_ten<XX>`.
- The modified `\_tryload<XX>`
- removes `\_ten<XX>` and does `\_resizefont{<XX>}<font-swith><font-switch>`,
- i.e.\ a font is loaded using real `<font-switch>` name and then it is selected
- as the current font.
+ example). This is the reason why \`\_xfamv` and \`\_ttfamv` are re-defined locally here.
+ They have precedence when \^`\fontsel` constructs the <font switch> name.
\_cod -----------------------------
\_def\_fontdef #1#2{\_begingroup
- \_def\_loadf##1##2{\_sdef{_tryload##1}####1{\_resizefont{##1}#1#1}}%
- \_reloading \_let\_reloading=\_relax
- #2\_ea\_endgroup \_ea\_let \_ea#1\_the\_font
+ \_edef\_xfamv{\_csstring#1}\_let\_ttfamv\_xfamv #2%
+ \_ea\_endgroup\_ea \_let\_ea #1\_the\_font
}
\_public \fontdef ;
\_doc -----------------------------
- The \`\famvardef` `\<XX> {<data>}` does, roughly speaking:
+ The \`\famvardef` `\xxx {<data>}` does, roughly speaking:
\begtt \catcode`\<=13
- \def \<XX> {\fontdef\_ten<XX> {<data>}\_ten<XX>}
+ \def \xxx {{<data>\ea}\the\font \def\_currvar{\xxx}}
\endtt
- but the macro `\<XX>` is declared as family-dependent.
- So, the real \^`\famvardef` `\<XX> {<data>}`
- uses analogical trick like \^`\moddef` with
- the \^`\_famdepend` macro. The \^`\famvardef` loads
- the auxiliary \`\_famvardefA` `\<XX> \_ten<XX> \_tryload<XX> {<data>}`.
- It does:
- \begitems
- * `\def \_tryload:<currfam>:<XX> {`\^`\fontdef`` \_ten<XX> {<data>}}` loads font `\_ten<XX>`,
- * `\protected\def \<XX> {\_famdepend \<XX> {_f:<currfam>:<XX>}}`,
- * `\def \_f:<currfam>:<XX> {\_tryload:<currfam>:<XX>\_ten<XX>}` keeps family dependent definition,
- * `\def \_currvar:_ten<XX> {\<XX>}` in order to the \^`\currvar` macro work correctly.
- \enditems
- `\famvardef\tt` behaves somewhat differently: it doesn't re-define the
- `\tt` macro which is defined as `\_tryloadtt \_tentt` in sections~\ref[math-preload]
- and~\ref[unimath-codes]. It only re-defines the internal `\_tryloadtt` macro.
- Note, that you cannot use `\tt` inside `\famvardef\tt`. So, new `\tt`
- macro does not load \^`\_ttunifont` but uses font from a standard variant
- rm, bf, it or bi with given font context.
+ but the macro `\xxx` is declared as family-dependent.
+ It is analogically as in `\moddef`.
+ The `\xxx` is defined as `\_famdepend\xxx{_f:\_currfamily:xxx}`
+ and `\_f:<currfam>:xxx` is defined as mentioned.\nl
+ `\famvardef\tt` behaves somewhat differently: it defines internal version
+ `\_tt` (it is used in \^`\_ttfont` and \^`\_urlfont`) and set `\tt` to
+ the same meaning.
\_cod -----------------------------
-\_def\_famvardef#1{\_edef\_tmp{\_csstring#1}%
- \_ea\_famvardefA \_ea#1\_csname _ten\_tmp\_ea\_endcsname
- \_csname _tryload:\_currfamily:\_tmp\_endcsname
-}
-\_def\_famvardefA #1#2#3#4{% #1=\XX #2=\_tenXX #3=\_tryload:currfam:XX #4=data
- \_isinlist{.\_rm\_bf\_it\_bi\currvar\_currvar}#1\_iftrue
- \_opwarning{\_string\famvardef:
- You cannot re-declare standard variant selector \_string#1}%
- \_else
- \_def#3{\_fontdef#2{#4}}%
- \_protected\_edef\_tmpa{\_noexpand\_famdepend\_noexpand#1{_f:\_noexpand\_currfamily:\_tmp}}%
- \_ifx #1\_tt \_let\_tryloadtt=#3\_else \_setnewmeaning #1=\_tmpa \famvardef \_fi
- \_sdef{_f:\_currfamily:\_tmp}{#3#2}%
- \_sdef{_currvar:\_csstring#2}{#1}%
+\_def\_famvardef#1#2{%
+ \_sdef{_f:\_currfamily:\_csstring#1}%
+ {{\_edef\_xfamv{\_csstring#1}\_let\_ttfamv\_xfamv #2\_ea}\_the\_font \_def\_currvar{#1}}%
+ \_protected\_edef\_tmpa {%
+ \_noexpand\_famdepend\_noexpand#1{_f:\_noexpand\_currfamily:\_csstring#1}}%
+ \_ifx #1\tt
+ \_protected\_def\_tt{{\_def\_xfamv{tt}#2\_ea}\_the\_font \_def\_currvar{\_tt}}%
+ \_let\tt=\_tt
+ \_else \_setnewmeaning #1=\_tmpa \famvardef
\_fi
}
\_public \famvardef ;
@@ -472,7 +401,7 @@
\begitems
* \`\_defaultfontfeatures` -- used for each font,
* \`\_ffadded` -- features added by \^`\setff`,
- * \`\_ffcolor` -- features added by \^`\setfontcolor`,
+ * \`\_ffcolor` -- features added by \^`\setfontcolor` (this is obsolette)
* \`\_ffletterspace` -- features added by \^`\setletterspace`,
* \`\_ffwordspace` -- features added by \^`\setwordspace`.
\enditems
@@ -494,33 +423,31 @@
\_def \_setff #1{%
\_ifx^#1^\_def\_ffadded{}\_else \_edef\_ffadded{\_ffadded #1;}\_fi
- \_reloading
}
\_public \setff ;
\_doc -----------------------------
- The \`\setfontcolor` and \`\setletterspace` are macros based on the
- special font features provided by \LuaTeX/ (and by \XeTeX/ too but it is not
- our business). The \`\setwordspace` recalculates the `\fontdimen2,3,4`
+ \`\setletterspace` is based on the
+ special font features provided by `luaotfload` package.
+ The \`\setwordspace` recalculates the `\fontdimen2,3,4`
of the font using the \`\setwsp` macro which is used by the
- \^`\_doresizeunifont` macro. It activates a dummy font feature `+Ws` too in
+ \^`\_fontselA` macro. It activates a dummy font feature `+Ws` too in
order the font is reloded by the `\font` primitive (with independent
`\fontdimen` registers).
+ \`\setfontcolor` is kept here only for backward compatibility but not
+ recommended. Use real color switches and the \^`\transparency` instead.
\_cod -----------------------------
\_def \_setfontcolor #1{%
\_edef\_tmp{\_calculatefontcolor{#1}}%
\_ifx\_tmp\_empty \_def\_ffcolor{}\_else \_edef\_ffcolor{color=\_tmp;}\_fi
- \_reloading
}
\_def \_setletterspace #1{%
\_if^#1^\_def\_ffletterspace{}\_else \_edef\_ffletterspace{letterspace=#1;}\_fi
- \_reloading
}
\_def \_setwordspace #1{%
\_if^#1^\_def\_setwsp##1{}\_def\_ffwordspace{}%
\_else \_def\_setwsp{\_setwspA#1/}\_def\_ffwordspace{+Ws;}\_fi
- \_reloading
}
\_def\_setwsp #1{}
\_def\_setwspA #1{\_ifx/#1\_ea\_setwspB \_else\_afterfi{\_setwspC#1}\_fi}
@@ -576,7 +503,7 @@ was documented in the section~\ref[fontfam].
We distinguish between
\begitems
-* {\em font switchers}, they are declared by the `\font` primitive or by
+* {\em font switches}, they are declared by the `\font` primitive or by
\^`\fontlet` or \~`\fontdef` macros, they select given font.
* {\em variant selectors}, there are four basic variant selectors
\^`\rm`, \^`\bf`, \^`\it`, \^`\bi`, there is a special selector \^`\currvar`.
@@ -605,7 +532,7 @@ selection of real font when the variant selector is processed. It includes the
value of {\em current family}, current font size, and
more values stored by font modifiers.
-The {\em family context} is the current family value stored in the font
+The {\em family context} is the current family name stored in the font
context. The variant selectors declared by \~`\famvardef` and
font modifiers declared by \~`\moddef` are dependent on the {\em family context}.
They can have the same names but different behavior in different families.
@@ -653,7 +580,7 @@ It keeps the current variant and the font of such variant is
reloaded with respect to the current font context by the previously given family
selector and font modifiers.
-You can use the \^`\setfontsize` `{<sizespec>}` command in the same sense as
+You can use the \^`\setfontsize` `{<size spec>}` command in the same sense as
other font modifiers. It saves information about font size to the font
context. See section~\ref[setfontsize]. Example:
@@ -679,7 +606,7 @@ this and you are satisfied with 8bit math CM+AMS fonts preloaded in the
font family.
If you want to use your specially selected Unicode-math font then use
-\^`\loadmath` `{[<font_file>]}` or \^`\loadmath` `{<font_name>}` before first
+\^`\loadmath` `{[<font file>]}` or \^`\loadmath` `{<font name>}` before first
`\fontfam` is used.
@@ -707,7 +634,7 @@ family selectors and defined font macros doing something with fonts.
\begitems
* \"built-in" font modifiers are \^`\setfontsize` (see
section~\ref[setfontsize]), \~`\setff` (see section~\ref[setff]),
- \~`\setfontcolor`, \~`\setletterspace` and \~`\setwordspace`
+ \~`\setletterspace` and \~`\setwordspace`
(see section~\ref[specff]). They are independent of font family.
* Font modifiers declared by \~`\moddef` depend on the font family and they
are typically declared in font family files, see
@@ -831,7 +758,7 @@ from LatinModern font family is used.
The \^`\tt` variant selector is used in \OpTeX/ internal macros
\^`\_ttfont` (verbatim texts) and \^`\_urlfont` (printing URL's).
-You can redefine the behavior of `\tt` by \^`\famvardef`. For example:
+The behavior of \^`\tt` can be re-defined by \^`\famvardef`. For example:
\begtt
\fontfam[Cursor]
@@ -843,8 +770,8 @@ Test in Termes: {\tt text}. {\Heros\rm Test in Heros: {\tt text}}.
Test in URL \url{http://something.org}.
\endtt
%
-You can see that `\tt` stay family independent. This is a special feature only
-for `\tt` selector. New definition is used in \^`\_ttfont` and \^`\_urlfont` too.
+You can see that \^`\tt` stay family independent. This is a special feature only
+for \^`\tt` selector. New definitions of \^`\_ttfont` and \^`\_urlfont` are done too.
It is recommended to use `\setff{-liga;-tlig}` to suppress the
ligatures in typewriter fonts.
@@ -914,9 +841,8 @@ the font family), we have following font modifiers (independent of font
family):
\begtt \catcode`\<=13
-\setfontsize{<sizespec>} % sets the font size
+\setfontsize{<size spec>} % sets the font size
\setff{<font feature>} % adds the font feature
-\setfontcolor{<color>} % sets font color
\setletterspace{<number>} % sets letter spacing
\setwordspace{<scaling>} % modifies word spacing
\endtt
@@ -924,17 +850,6 @@ family):
The \^`\setfontsize` command is described in the section \ref[setfontsize].
The \^`\setff` command was described in previous subsection.
-\^`\setfontcolor` `{<color>}` specifies the color and the opacity of the text.
-The <color> parameter should be in the hexadecimal format of four bytes
-`<red><green><blue><opacity>`, for example `FF0080FF` means full red, zero
-green, half blue and full opacity. You can use names `red`, `green`, `blue`,
-`yellow`, `cyan`, `magenta`, `white`, `grey`, `lgrey` (without the backslash)
-instead of the hexadecimal specification.
-The empty parameter `<color>` means default black color.
-
-These colors of fonts are implemented using \LuaTeX/ internal font feature. This
-is different approach than using colors in section \ref[colors].
-
\^`\setletterspace` `{<number>}` specifies the letter spacing of the font. The
`<number>` is a decimal number without unit. The unit is supposed as 1/100 of
the font size. I.e. `2.5` means 0.25 pt when the font is at 10 pt size. The
@@ -981,36 +896,9 @@ with Unicode fonts loaded by \^`\fontfam`.
\printdoctail fams-ini.opm
-\secc[exfont] Notices about extension of `\font` primitive
-%---------------------------------------------------------
-
-Unicode fonts are loaded by extended `\font` primitive. This extension is
-not activated in \OpTeX/ by default, \^`\initunifonts` macro activates it.
-You need not use \^`\initunifonts` explicitly if \^`\fontfam` macro is
-used because \^`\fontfam` runs it internally.
-
-The \^`\initunifonts` loads the Lua code from the Luaotfload package which
-implements the `\font` primitive extension. See its
-documentation `luaotfload-latex.pdf` for information about
-all possibilities of extended `\font` primitive.
-
-The \OpTeX/ format is initialized by `luatex` engine by default but
-you can initialize it by `luahbtex` engine too. Then the harfbuzz library is
-ready to use for font rendering as an alternative to built-in font renderer
-from Luaotfload. The harfbuzz library gives more features for rendering
-Indic and Arabic scripts. But it is not used as default, you need to specify
-`mode=harf` in the fontfeatures field when `\font` is used. Moreover, when
-`mode=harf` is used, then you must specify `script` too. For example
-
-\begtt
-\font\devafont=[NotoSansDevanagari-Regular]:mode=harf;script=dev2
-\endtt
-%
-If the `luahbtex` engine is not used then `mode=harf` is ignored. See
-Luaotfload documentation for more information.
-
\endinput
+2022-02-22 Font Selection System reimplemented, \fontsel introduced
2021-09-24 \_unichars used in \initunifonts
2021-07-16 \initunifonts: optex_hook_into_luaotfload added.
2021-05-23 concept of \_fontfeatures macro re-implemented
diff --git a/macros/optex/base/graphics.opm b/macros/optex/base/graphics.opm
index 4c72528e48..b54b52c926 100644
--- a/macros/optex/base/graphics.opm
+++ b/macros/optex/base/graphics.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \inspic {Graphics <2021-07-16>} % preloaded in format
+\_codedecl \inspic {Graphics <2022-03-05>} % preloaded in format
\_doc -----------------------------
\`\inspic` accepts old syntax `\inspic <filename><space>`
@@ -233,6 +233,10 @@
filling color.\nl
The \`\_setflcolors` uses the \^`\_setcolor` macro to separate filling (non-stroking)
color and stroking color.
+ The \`\_coc` macro means \"create oval or circle" and it expands to
+ the stroking primitve `S` or filling primitive `f` or boh `B`. Only boundary
+ stroking is performed after `\fcolor=\relax`. You cannot combine
+ `\fcolor=\relax` with `\shadow=Y`.
\_cod -----------------------------
\_newdimen \_lwidth
@@ -273,7 +277,7 @@
\_doshadow\_oval
\_fi
\_pdfliteral{q \_bp{\_lwidth} w \_tmp
- \_oval{\_bp{\_wd0}}{\_bp{\_ht0+\_dp0}}{\_bp{\_roundness}} B Q}\_vss}%
+ \_oval{\_bp{\_wd0}}{\_bp{\_ht0+\_dp0}}{\_bp{\_roundness}} \_coc\_space Q}\_vss}%
\_ht0=\_dimexpr\_ht0+\_dimen1 \_relax \_dp0=\_dimexpr\_dp0+\_dimen1 \_relax
\_box0
\_kern\_dimen0}%
@@ -302,7 +306,7 @@
\_doshadow\_circlet
\_fi
\_pdfliteral{q \_bp{\_lwidth} w \_tmp \_mv{\_bp{.5\_wd0}}{\_bp{(\_ht0-\_dp0)/2}}
- {\_circle{\_bp{\_dimen2}}{\_bp{\_dimen3}} B} Q}%
+ {\_circle{\_bp{\_dimen2}}{\_bp{\_dimen3}} \_coc} Q}%
\_ifdim\_dimen1=\_zo \_else
\_ht0=\_dimexpr \_ht0+\_dimen1 \_relax \_dp0=\_dimexpr \_dp0+\_dimen1 \_relax \_fi
\_box0
@@ -310,41 +314,31 @@
\_egroup % of \vbox\bgroup
}
\_def\_circlet#1#2#3{\_circle{#1}{#2}}
+\_def\_coc{\_ifx\_fcolorvalue\_relax S\_else \_ifdim\_lwidth=0pt f\_else B\_fi\_fi}
\_public \inoval \incircle \ratio \lwidth \fcolor \lcolor \shadow \overlapmargins ;
\_doc -----------------------------
Just before defining shadows, which require special graphics states, we
- define means for managing these graphics states. This is important, because
- otherwise our use of `\pdfpageresources` register might clash with other
- packages (TikZ) or even with our other usage (slides).
-
- The macro \`\addextgstate``<PDF name> <PDF dictionary>` shall be used for
- adding more graphics states. It must be used {\em after} `\dump`. First use
- of it detects PGF/TikZ and either uses its mechanism or defines our own. Our
- mechanism is very similar though -- use single `/ExtGState` dictionary for all
- pages (`\pdfpageresources` just points to it).
+ define means for managing these graphics states and other PDF page resources
+ (graphics states, patterns, shadings, etc.). Our mechanism, defined mostly
+ in Lua (see \ref[lua-pdf-resources], uses single dictionary for each PDF page
+ resource type (extgstate, etc.) for all pages (`\pdfpageresources` just
+ points to it).
+
+ The macro \`\addextgstate``{<PDF name>}{<PDF dictionary>}` is a use of that
+ general mechanism and shall be used for adding more graphics states. It must
+ be used {\em after} `\dump`. It's general variant defined in Lua is
+ \^`\_addpageresource` `{<resource type>}{<PDF name>}{<PDF dictionary>}`. You can
+ use `\pageresources` or \^`\_pageresources` if you need to insert resource
+ entries to manually created PDF XObjects.
\_cod -----------------------------
-\_def\_initpageresources{%
- \_glet\_initpageresources=\_relax
- \_ifcsname pgf@sys@addpdfresource@extgs@plain\_endcsname
- % TikZ loaded
- \_global\_slet{_addextgstate}{pgf@sys@addpdfresource@extgs@plain}%
- \_else
- % TikZ not loaded
- \_pdfobj reserveobjnum% not to be used in iniTeX
- \_xdef\_extgstatesobj{\_the\_pdflastobj}%
- \_expanded{\_global\_pdfpageresources={/ExtGState \_extgstatesobj\_space 0 R}}%
- \_global\_addto\_byehook{\_immediate\_pdfobj useobjnum\_extgstatesobj {<<\_extgstates>>}}%
- \_gdef\_extgstates{}%
- \_gdef\_addextgstate##1{\_xdef\_extgstates{\_extgstates\_space##1}}%
- \_fi
-}
-% first initialize page resources, then execute new meaning of itself
-\_def\_addextgstate#1{\_initpageresources \_addextgstate{#1}}
+\_def\_addextgstate{\_addpageresource{ExtGState}}
\_public \addextgstate ;
+\_def\pageresources{\_pageresources}
+\_def\addpageresource{\_addpageresource}
\_doc -----------------------------
A shadow effect is implemented here. The shadow is equal to the
@@ -362,8 +356,8 @@
\_def\_shadowb{1} % 2*shadowb = blurring area thickness
\_def\_insertshadowresources{%
- \_addextgstate{/op1 <</ca \_shadowdarknessA>>}%
- \_addextgstate{/op2 <</ca \_shadowdarknessB>>}%
+ \_addextgstate{op1}{<</ca \_shadowdarknessA>>}%
+ \_addextgstate{op2}{<</ca \_shadowdarknessB>>}%
\_glet\_insertshadowresources=\_relax
}
@@ -453,8 +447,9 @@ the \^`\transformbox{<transformation>}{\copy\mypic}`.
\_endinput
+2022-03-05: \_addextgstate, \pageresources, \addpageresources added
+2022-03-03: \_coc introduced
2021-07-16: \inoval, \incircle are more simple, using attribitecolor features
2021-03-19: \inkinspic: pictures in subdirectories, bug fixed
2020-12-21: \puttext: \box0 in goup, bugfix
2020-04-12: \_public \clipinoval \clipincircle ; added, bug fixed
-
diff --git a/macros/optex/base/hisyntax-lua.opm b/macros/optex/base/hisyntax-lua.opm
new file mode 100644
index 0000000000..f02bf03b0a
--- /dev/null
+++ b/macros/optex/base/hisyntax-lua.opm
@@ -0,0 +1,86 @@
+%% This is part of the OpTeX project, see http://petr.olsak.net/optex
+
+\_codedecl \_hisyntaxlua {Syntax highlighting for Lua sources <2021-06-29>}
+
+\_newtoks \_hisyntaxlua \_newtoks \_hicolorslua
+
+\_global\_hicolorslua={% colors for the Lua language
+ \_hicolor K \Red % Keywords
+ \_hicolor S \Magenta % Strings
+ \_hicolor C \Green % Comments
+ \_hicolor N \Cyan % Numbers
+ \_hicolor P \Blue % Preprocessor
+ \_hicolor O \Blue % Other tokens
+}
+\_global\_hisyntaxlua={%
+ \_the\_hicolorslua
+ \_let\c=\_relax \_let\e=\_relax \_let\o=\_relax
+ \_replfromto {--[}{--]} {\x C{--[#1--]}}% multi line comment --[...--]
+ \_replfromto {--}{^^J} {\z C{--#1}^^J}% single line comment --...
+ \_replthis {\_string\"} {{\_string\"}}% \" protected inside strings
+ \_replthis {\_string\'} {{\_string\'}}% \' protected inside strings
+ \_replfromto {"}{"} {\x S{"#1"}}% "..."
+ \_replfromto {'}{'} {\x S{'#1'}}% "..."
+ % missing: [[, [=[, [==[ strings, " ' in string of other kind
+ \_edef\_tmpa {{<<}{>>}{//}{==}{\_string~=}{<=}{>=}{::}{...}{..}%
+ +-*/\_pcent^\_csstring\#\_string&\_string~|%
+ <>=()]\_string{\_string}[];:,.}% other tokens
+ \_ea \_foreach \_tmpa
+ \_do {\_replthis{#1}{\n\o{#1}\n}}%
+ \_foreach % keywords
+ {and}{break}{do}{else}{elseif}{end}{false}{for}{function}{goto}%
+ {if}{in}{local}{nil}{not}{or}{repeat}{return}{then}{true}{until}{while}%
+ \_do {\_replthis{\n#1\n}{\z K{#1}}}%
+ \_replthis{.}{\n.\n} % numbers
+ \_foreach 0123456789
+ \_do {\_replfromto{\n#1}{\n}{\c#1##1\e}}%
+ \_replthis{\e.\c}{.}%
+ \_replthis{\e.\n}{.\e}%
+ \_replthis{\n.\c}{\c.}%
+ \_replthis{e\e\o+\c}{e+}\_replthis{e\e\o-\c}{e-}%
+ \_replthis{E\e\o+\c}{E+}\_replthis{E\e\o-\c}{E-}%
+ \_def\o#1{\z O{#1}}%
+ \_def\c#1\e{\z N{#1}}%
+}
+
+\_endcode %------------------------------------------------
+
+The list of keywords and special symbols comes from the Lua 5.3 Reference
+Manual\fnote{\url{https://www.lua.org/manual/5.3/manual.html\#3}}, otherwise
+this is mostly a port of `hisyntax-c.opm`.
+
+
+\begtt \hisyntax{lua}
+and break do else elseif end
+false for function goto if in
+local nil not or repeat return
+then true until while
+
+ + - * / % ^ #
+ & ~ | << >> //
+ == ~= <= >= < > =
+ ( ) { } [ ] ::
+ ; : , . .. ...
+
+a = 'alo\n123"'
+a = "alo\n123\""
+a = '\97lo\10\04923"'
+a = [[alo
+123"]]
+a = [==[
+alo
+123"]==]
+
+3 345 0xff 0xBEBADA
+
+3.0 3.1416 314.16e-2 0.31416E1 34e1
+0x0.1E 0xA23p-4 0X1.921FB54442D18P+1
+
+1+1 2+a
+
+
+--[ multi line
+comment
+--]
+print(1+1)
+\endtt
diff --git a/macros/optex/base/hyphen-lan.opm b/macros/optex/base/hyphen-lan.opm
deleted file mode 100644
index 7a6c790d1f..0000000000
--- a/macros/optex/base/hyphen-lan.opm
+++ /dev/null
@@ -1,252 +0,0 @@
-%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-
-\_codedecl \langlist {Initialization of hypenation patterns <2021-03-29>} % preloaded in format
-
- \_doc -----------------------------
- The <iso-code> means a shortcut of language name (mostly by ISO 639-1).
- The following control sequences are used for language switching:
- \begitems
- * `\_lan:<number>` expands to `<iso-code>` of the language.
- The <number> is an internal number of languages used as a value of
- `\language` register.
- * `\_ulan:<long-lang>` expands to `<iso-code>` too. This is transformation
- from long name of language (lowercase letters) to <iso-code>.
- * `\_<iso-code>Patt` (for example `\_csPatt`) is the language `<number>` declared by `\chardef`.
- * `\<iso-code>lang`
- (for example \`\enlang`, \`\cslang`, \`\sklang`, \`\delang`, \`\pllang`)
- is language selector. It exists in two states
- \begitems
- * Initialization state: when `\<iso-code>lang` is used first then it
- must load the patterns into memory using Lua code. If it is done then
- the `\<iso-code>lang` re-defines itself to the processing state.
- * Processing state: it only sets `\language=\_<iso-code>Patt`, i.e it
- selects the hyphenation patterns. It does a little more
- language-dependent work, as mentioned below.
- \enditems
- * `\_langspecific:<isocode>` is processed by `\<iso-code>lang` and it
- should include language-specific macros declared by the user or macro designer.
- \enditems
- The USenglish patters are preloaded first:
- \_cod -----------------------------
-
-\_chardef\_enPatt=0
-\_def\_pattlist{\_enPatt=0}
-\_def\_langlist{en(USenglish)}
-\_sdef{_lan:0}{en}
-\_sdef{_ulan:usenglish}{en}
-\_def\_enlang{\_uselang{en}\_enPatt23} % \lefthyph=2 \righthyph=3
-\_def\enlang{\_enlang}
-\_sdef{_langspecific:en}{\_nonfrenchspacing}
-
-\_lefthyphenmin=2 \_righthyphenmin=3 % disallow x- or -xx breaks
-\_input hyphen % en(USenglish) patterns from TeX82
-
- \_doc -----------------------------
- \`\_preplang` `<iso-code> <long-lang> <hyph-file-spec> <number> <pre-hyph><post-hyph>`
- prepares the\nl `\<iso-code>lang` to its initialization state. Roughly
- speaking, it does:
- \begtt \catcode`\<=13
- \chardef\_<iso-code>Patt = <number>
- \def\_lan:<number> {<iso-code>}
- \def\_ulan:<long-lang> {<iso-code>}
- \def\_<iso-code>lang {%
- \_loadpattrs <hyph-file-spec> <number> <long-lang> % loads patterns using Lua code
- \gdef\_<iso-code>lang {\_uselang{<iso-code>}\_<iso-code>Patt <pre-hyph><post-hyph>}
- \_<iso-code>lang % runs itself in processing state
- }
- \def\<iso-code>lang {\_<iso-code>lang} % public version \<iso-code>lang
- \endtt
- You can see that `\<iso-code>lang` runs \^`\_loadpattrs` and
- \^`\_uselang` first (in initialization state) and it runs
- only \^`\_uselang` when it is called again (in processing state).
- \_cod -----------------------------
-
-\_def\_preplang #1 #2 #3 #4 #5 {%
- \_ea\_chardef \_csname _#1Patt\_endcsname=#4
- \_sdef{_lan:#4}{#1}\_lowercase{\_sdef{_ulan:#2}}{#1}%
- \_def\_next{\_ea\_noexpand\_csname _#1lang\_endcsname}%
- \_ea\_edef \_csname _#1lang\_endcsname {%
- \_noexpand\_loadpattrs #3 #4 #2 % loads patterns
- \_gdef\_next{\_noexpand\_uselang{#1}\_csname _#1Patt\_endcsname #5}% re-defines itself
- \_next % runs itself in processing state
- }
- \_addto\_langlist{ #1(#2)}%
- \_sdef{#1lang\_ea}\_ea{\_csname _#1lang\_endcsname}% unprefixed \<isocode>lang
-}
-
- \_doc -----------------------------
- \`\_loadpattrs` `<hyph-file-spec> <number> <long-lang>`
- loads hyphenation patterns and hyphenation exceptions for given language
- and registers them as `\language=<number>`.
-
- The <hyph-file-spec> is a part of full file name wich is read:
- `hyph-<hyph-file-spec>.tex`. The patterns and hyphenation exceptions
- are saved here in UTF-8 encoding.
- The <hyph-file-spec> should be a list of individual <hyph-file-spec>'s
- separated by commas, see the language Serbian below for an example.
- \_cod -----------------------------
-
-\_def\_loadpattrs#1 #2 #3 {%
- \_wlog{Loading hyphenation #3: (#1) \_string\language=#2}%
- \_begingroup\_setbox0=\_vbox{% we don't want spaces in horizontal mode
- \_language=#2\_def\\{#3}%
- \_let\patterns=\_patterns \_let\hyphenation=\_hyphenation \_def\message##1{}%
- \_loadpattrsA #1,,%
- }\_endgroup
-}
-\_def\_loadpattrsA #1,{\_ifx,#1,\_else
- \_isfile {hyph-#1}\_iftrue \_opinput{hyph-#1}%
- \_else \_opwarning{No hyph. patterns #1 for \\, missing package?}%
- \_def\_opwarning##1{}\_fi
- \_ea \_loadpattrsA \_fi
-}
-
- \_doc -----------------------------
- \`\_uselang``{<iso-code>}\_<iso-code>Patt <pre-hyph><post-hyph>`\nl
- sets `\language`, `\lefthyphenmin`, `\righthyphenmin` and runs
- `\frenchspacing`. This default language-dependent settings
- should be re-declared by `\_langspecific:<iso-code>` which is run
- finally (it is `\relax` by default, only `\_langspecific:en` runs
- \^`\nonfrenchspacing`).
- \_cod -----------------------------
-
-\_def\_uselang#1#2#3#4{\_language=#2\_lefthyphenmin=#3\_righthyphenmin=#4\_relax
- \_frenchspacing % \nonfrenchspacing can be set in \cs{_langspecific:lan}
- \_cs{_langspecific:#1}%
-}
- \_doc -----------------------------
- The \`\uselanguage` `{<long-lang>}` is defined here
- (for compatibility with e-plain users).
- \_cod -----------------------------
-
-\_def\_uselanguage#1{\_lowercase{\_cs{_\_cs{_ulan:#1}lang}}}
-\_public \uselanguage ;
-
- \_doc -----------------------------
- The numbers for languages are declared as fixed constants (no
- auto-generated). This concept is inspired by CSplain.
- There are typical numbers of languages in CSplain: 5=Czech in IL2,
- 15=Czech in T1 and 115=Czech in Unicode. We keep these constants
- but we load only Unicode patterns (greater than 100), of course.
- \_cod -----------------------------
-
-\_preplang enus USenglishmax en-us 100 23
-\_preplang engb UKenglish en-gb 101 23
-\_preplang it Italian it 102 22
-\_preplang ia Interlingua ia 103 22
-\_preplang id Indonesian id 104 22
-
-\_preplang cs Czech cs 115 23
-\_preplang sk Slovak sk 116 23
-\_preplang de nGerman de-1996 121 22
-\_preplang fr French fr 122 22
-\_preplang pl Polish pl 123 22
-\_preplang cy Welsh cy 124 23
-\_preplang da Danish da 125 22
-\_preplang es Spanish es 126 22
-\_preplang sl Slovenian sl 128 22
-\_preplang fi Finnish fi 129 22
-\_preplang hu Hungarian hu 130 22
-\_preplang tr Turkish tr 131 22
-\_preplang et Estonian et 132 23
-\_preplang eu Basque eu 133 22
-\_preplang ga Irish ga 134 23
-\_preplang nb Bokmal nb 135 22
-\_preplang nn Nynorsk nn 136 22
-\_preplang nl Dutch nl 137 22
-\_preplang pt Portuguese pt 138 23
-\_preplang ro Romanian ro 139 22
-\_preplang hr Croatian hr 140 22
-\_preplang zh Pinyin zh-latn-pinyin 141 11
-\_preplang is Icelandic is 142 22
-\_preplang hsb Uppersorbian hsb 143 22
-\_preplang af Afrikaans af 144 12
-\_preplang gl Galician gl 145 22
-\_preplang kmr Kurmanji kmr 146 22
-\_preplang tk Turkmen tk 147 22
-\_preplang la Latin la 148 22
-\_preplang lac classicLatin la-x-classic 149 22
-\_preplang lal liturgicalLatin la-x-liturgic 150 22
-\_preplang elm monoGreek el-monoton 201 11
-\_preplang elp Greek el-polyton 202 11
-\_preplang grc ancientGreek grc 203 11
-\_preplang ca Catalan ca 204 22
-\_preplang cop Coptic cop 205 11
-\_preplang mn Mongolian mn-cyrl 206 22
-\_preplang sa Sanskrit sa 207 13
-\_preplang ru Russian ru 208 22
-\_preplang uk Ukrainian uk 209 22
-\_preplang hy Armenian hy 210 12
-\_preplang as Assamese as 211 11
-\_preplang hi Hindi hi 212 11
-\_preplang kn Kannada kn 213 11
-\_preplang lv Latvian lv 215 22
-\_preplang lt Lithuanian lt 216 22
-\_preplang ml Malayalam ml 217 11
-\_preplang mr Marathi mr 218 11
-\_preplang or Oriya or 219 11
-\_preplang pa Panjabi pa 220 11
-\_preplang ta Tamil ta 221 11
-\_preplang te Telugu te 222 11
-
-\_preplang be Belarusian be 223 22
-\_preplang bg Bulgarian bg 224 22
-\_preplang bn Bengali bn 225 11
-\_preplang cu churchslavonic cu 226 12
-\_preplang deo oldGerman de-1901 227 22
-\_preplang gsw swissGerman de-ch-1901 228 22
-\_preplang eo Esperanto eo 229 22
-\_preplang fur Friulan fur 230 22
-\_preplang gu Gujarati gu 231 11
-\_preplang ka Georgian ka 232 12
-\_preplang mk Macedonian mk 233 22
-\_preplang oc Occitan oc 234 22
-\_preplang pi Pali pi 235 12
-\_preplang pms Piedmontese pms 236 22
-\_preplang rm Romansh rm 237 22
-\_preplang sr Serbian sh-cyrl,sh-latn 238 22
-\_preplang sv Swedish sv 239 22
-\_preplang th Thai th 240 23
-\_preplang ethi Ethiopic mul-ethi 241 11
-\_preplang fis schoolFinnish fi-x-school 242 11
-
- \_doc -----------------------------
- The \`\langlist` includes names of all languages which are ready to load
- and use their hyphenation patterns. This list is printed to the terminal and
- to log at ini\TeX/ state here. It can be used when processing documents too.
- \_cod -----------------------------
-
-\_message{Language hyph.patterns ready to load: \_langlist.
- Use \_string\<shortname>lang to initialize language,
- \_string\cslang\_space for example}
-
-\_public \langlist ;
-
-\_endcode % ---------------------------------------------
-
-
-Maybe, you need to do more language-specific actions than just switching
-hyphenation patterns. For example, you need to load a specific font with a
-specific script used in the selected language, you can define macros for
-quotation marks depending on the language, etc.
-
-The example shows how to declare such language-specific things.
-
-\begtt
-\def\langset #1 #2{\sdef{_langspecific:#1}{#2}}
-
-\langset fr {... declare French quotation marks}
-\langset de {... declare German quotation marks}
-\langset gr {... switch to Greek fonts family}
-... etc.
-\endtt
-
-Note that you need not set language-specific phrases (like `\today`)
-by this code. Another concept is used for such tasks. See the
-section~\ref[langphrases] for more details.
-
-\_endinput
-
-2021-03-29 \_preplang schoolFinnish added
-2020-11-11 load patterns without lua code
-2020-03-10 released
diff --git a/macros/optex/base/keyval.opm b/macros/optex/base/keyval.opm
index b0462296b3..7d089ce6b1 100644
--- a/macros/optex/base/keyval.opm
+++ b/macros/optex/base/keyval.opm
@@ -4,7 +4,7 @@
\_doc ----------------------------
{\bf Implementation.}
- The \`\readkv` expands its parameter and does replace-strings in order to
+ The \`\readkv``<list>` expands its parameter and does replace-strings in order to
remove spaces around equal signs and after commas. Double commas are
removed. Then \`\_kvscan` reads the parameters list finished by the double
comma and saves values to `\_kv:<key>` macros.\nl
@@ -38,31 +38,30 @@ or
\myframe [frame-color=\Blue] {text2} % other parameters are default
\endtt
%
-You can define `\myframe` as follows:
+or simply `\myframe {text3}`. You can define `\myframe` as follows:
\begtt
\def\myframedefaults{% defaults:
frame-color=\Black, % color of frame rules
- text-color=\Black, % color ot text nside the frame
+ text-color=\Black, % color ot text inside the frame
rule-width=0.4pt, % width of rules used in the frame
margins=2pt, % space between text inside and rules.
}
\optdef\myframe [] #1{\bgroup
- \ea\addto\ea\myframedefaults\ea{\ea,\the\opt}%
- \readkv\myframedefaults
+ \readkv\myframedefaults \readkv{\the\opt}%
\rulewidth=\kv{rule-width}
\hhkern=\kv{margins}\vvkern=\kv{margins}\relax
\kv{frame-color}\frame{\kv{text-color}\strut #1}%
- \egroup}
+ \egroup
+}
\endtt
%
We recommend using \^`\optdef` for defining macros with optional parameters
written in `[]`. Then the optional parameters are saved in the \^`\opt` tokens
-register. First: we append the \^`\opt` (actual optional parameters) to
-`\myframedefault` by \^`\addto` macro.
-Second: we read the parameters by
-\^`\readkv{<pramaters list>}` macro.
-Third: the values can be used by expandable \^`\kv{<key>}` macro.
+register. First: we read default parameters by \^`\readkv\myframedefaults`
+and secondly the actual parameters are read by \^`\readkv{\the\opt}`.
+The last setting wins.
+Third: the values can be used by the expandable \^`\kv{<key>}` macro.
The \^`\kv{<key>}` returns `???` if such key is not declared.
You can use keys without values in the parameters list too, but with
diff --git a/macros/optex/base/lang-data.opm b/macros/optex/base/lang-data.opm
new file mode 100644
index 0000000000..8201976cb5
--- /dev/null
+++ b/macros/optex/base/lang-data.opm
@@ -0,0 +1,100 @@
+%% This is part of the OpTeX project, see http://petr.olsak.net/optex
+
+\_codedecl \_langdata {Language dependent data <2022-02-19>} % only en, cs preloaded in format
+
+\_langdata en {English} % -----------------------------------------------
+\_langw en Chapter Table Figure Subject
+\_langb en {, and } { et al.} { ed.} {cit.~} {Vol.~} {No.~} {pp.~} {~p.} {,~ed.} {,~eds.}
+ {Available from } {Available also from }
+ {Bachelor's Thesis} {Master's Thesis} {Ph.D. Thesis}
+\_monthw en January February March April May June
+ July August September October November December
+\_sdef{_mt:today:en}{\_mtext{m\_the\_month} \_the\_day, \_the\_year}
+\_quotationmarks en {“”‘’}
+
+\_let \_sortingdataen = \_sortingdatacs % it can be shared with Czech
+\_let \_ignoredcharsen = \_ignoredcharscs
+\_def \_compoundcharsen {}
+
+\_langdata cs {Czech} % ------------------------------------------------
+% Chapter Table Figure Subject
+\_langw cs Kapitola Tabulka Obrázek Věc
+% {, and } { et al.} { ed.} {cit.~} {Vol.~} {No.~} {pp.~} {~p.} {,~ed.} {,~eds.}
+% {Available from } {Available also from }
+% {Bachelor's Thesis} {Master's Thesis} {Ph.D. Thesis}
+\_langb cs { a } { a~kol.} { vyd.} {vid.~} {ročník~} {č.~} {s.~} {~s.} {,~editor} {,~editoři}
+ {Dostupné na } {Dostupné též na }
+ {Bakalářská práce} {Diplomová práce} {Disertační práce}
+% January February March April May June
+% July August September October November December
+\_monthw cs ledna února března dubna května června
+ července srpna září října listopadu prosince
+\_sdef{_mt:today:cs}{\_the\_day.~\_mtext{m\_the\_month} \_the\_year} % date format
+\_quotationmarks cs {„“‚‘}
+
+%\_def\_sortingdatacs {...} % all these macros are preloaded in the format,
+%\_def\_compoundcharscs {...} % see section 2.33 or file makeindex.tex.
+%\_def\_ignoredcharscs {...}
+
+\_langdata de {German} % ------------------------------------------------
+\_langw de Kapitel Tabelle Abbildung Betreff
+\_quotationmarks de {„“‚‘}
+% todo
+
+\_langdata it {Italian} % ------------------------------------------------
+\_langw it Capitolo Tabella Fig. Oggetto
+\_monthw it gennaio febbraio marzo aprile maggio giugno
+ luglio agosto settembre ottobre novembre dicembre
+\_quotationmarks it {“”«»}
+% todo
+
+\_langdata es {Spanish} % ------------------------------------------------
+\_langw es Capítulo Tabla Figura Sujeto
+\_quotationmarks es {“”«»}
+% todo
+
+\_langdata fr {French} % ------------------------------------------------
+\_langw fr Chapitre Tableau Figure Matière
+\_quotationmarks fr {“”«»}
+% toto
+
+\_langdata pl {Polish} % ------------------------------------------------
+\_langw pl Rozdział Tabela Ilustracja Temat
+\_quotationmarks pl {“”«»}
+% todo
+
+\_langdata el {Greek} % ------------------------------------------------
+\_langw el Κεφάλαιο Πίνακας Σχήμα θέμα
+\_quotationmarks el {“”«»}
+% todo
+
+\_langdata ru {Russian} % ------------------------------------------------
+\_langw ru Глава Таблица Рисунок Предмет
+\_quotationmarks ru {“”«»}
+% todo
+
+\_langdata sk {Slovak} % ------------------------------------------------
+\_langw sk Kapitola Tabuľka Obrázok Vec
+\_langb sk { a } { a~kol.} { vyd.} {vid.~} {ročník~} {č.~} {s.~} {~s.} {,~editor} {,~editori}
+ {Dostupné na } {Dostupné tiež na }
+ {Bakalárska práca} {Diplomová práca} {Dizertačná práca}
+\_monthw sk januára februára marca apríla mája júna
+ júla augusta septembra októbra novembra decembra
+\_sdef{_mt:today:sk}{\_the\_day.~\_mtext{m\_the\_month} \_the\_year} % date format
+\_quotationmarks sk {„“‚‘}
+
+\_let \_sortingdatask = \_sortingdatacs % it can be shared with Czech
+\_let \_compoundcharssk = \_compoundcharscs
+\_let \_ignoredcharssk = \_ignoredcharscs
+
+\_langdata pt {Portuguese} % ------------------------------------------------
+\_langw pt Capítulo Tabela Figura Assunto
+\_monthw pt janeiro fevereiro março abril maio junho julho agosto
+ setembro outubro novembro dezembro
+\_sdef{_mt:today:pt}{\_the\_day~de \_mtext{m\_the\_month}~ de \_the\_year}
+% todo
+
+\_endcode
+
+2022-02-19: concept finalized, but data still far of competness
+2022-02-04: released
diff --git a/macros/optex/base/lang-decl.opm b/macros/optex/base/lang-decl.opm
new file mode 100644
index 0000000000..87a13b88ce
--- /dev/null
+++ b/macros/optex/base/lang-decl.opm
@@ -0,0 +1,312 @@
+%% This is part of the OpTeX project, see http://petr.olsak.net/optex
+
+\_codedecl \langlist {Languages declaration <2022-02-19>} % preloaded in format
+
+ \_doc -----------------------------
+ \`\_preplang` `<lang-id> <LongName> <lang-tag> <hyph-tag> <lr-hyph>`
+ declares a new language. The parameters (separated by space) are
+ \begitems
+ * <lang-id>: language identifier. It should be derived from ISO 639-1 code
+ but additional letters can be eventually added because <lang-id> must be used
+ uniquely in the whole declaration list. The \^`\_preplang` macro creates
+ the language switch `\_<lang-id>lang` and defines also `\<lang-id>lang`
+ as a macro which expands to `\_<lang-id>lang`. For example, `\_preplang cs Czech ...`
+ creates `\_cslang` as the language switch and defines
+ `\def\cslang{\_cslang}`.
+ * <LongName>: full name of the language.
+ * <lang-tag>: language tag, which is used for setting language-dependent phrases
+ and sorting data. If a language have two or more hyphenation
+ patterns but a single phrases set, then we declare this language
+ more than once with the same <lang-tag> but different <lang-hyph>.
+ * <hyph-tag>: a part of the file name where the hyphenation patterns
+ are prepared in Unicode. The full file name is `hyph-<hyph-tag>.tex`.
+ If <hyph-tag> is `{}` then no hyphenation patterns are loaded.
+ * <lr-hyph>: two digits, they denote `\lefthyphenmin` and
+ `\righthyphenmin` values.
+ \enditems
+ \^`\_preplang` allocates a new internal number by \^`\newlanguage\_<lang-id>Patt`
+ which will be bound to the hyphenation patterns. But the patterns nor other language
+ data are not read at this moment. The `\_<lang-id>lang` is defined as \^`\_langinit`.
+ When the `\_<lang-id>lang` switch is used firstly in a document then the language is
+ initialized, i.e.\ hyphenation patterns and language-dependent data are read.
+ The `\_<lang-id>lang` is re-defined itself after such initialization.
+ \^`\_preplang` does also `\def\_ulan:<longname> {<lang-id>}`, this is needed
+ for the \^`\uselanguage` macro.
+ \_cod -----------------------------
+
+\_def\_preplang #1 #2 #3 #4 #5#6{% lang-id LongName lang-tag hyph-tag lr-hyph
+ \_ifcsname _#1lang\_endcsname \_else
+ \_ea\_newlanguage\_csname _#1Patt\_endcsname
+ \_xdef\_langlist{\_langlist\_space#1(#2)}%
+ \_fi
+ \_lowercase{\_sxdef{_ulan:#2}}{#1}%
+ \_slet{_#1lang}{_relax}%
+ \_sxdef {#1lang}{\_cs{_#1lang}}%
+ \_sxdef {_#1lang}{\_noexpand\_langinit \_cs{_#1lang}#1(#2)#3[#4]#5#6}%
+}
+ \_doc -----------------------------
+ The \^`\_preplang` macro adds `<lang-id>(<LongName>)` to the `\_langlist` macro
+ which is accessible by \`\langlist`. It can be used for reporting declared
+ languages.
+ \_cod -----------------------------
+
+\_def\langlist{\_langlist}
+\_def\_langlist{en(USEnglish)}
+
+ \_doc -----------------------------
+ All languages with hyphenation patterns provided by \TeX/live are
+ declared here. The language switches \`\cslang`, \`\sklang`,
+ \`\delang`, \`\pllang` and many others are declared.
+ You can declare more languages by \^`\_preplang` in your
+ document, if you want.\nl
+ The usage of \^`\_preplang` with <lang-id> already declared is allowed.
+ The language is re-declared in this case. This can be used in your document
+ before first usage of the `\<lang-id>lang` switch.
+ \_cod -----------------------------
+
+% lang-id LongName lang-tag hyph-tag lr-hyph
+\_preplang enus USenglishmax en en-us 23
+% Europe:
+\_preplang engb UKenglish en en-gb 23
+\_preplang be Belarusian be be 22
+\_preplang bg Bulgarian bg bg 22
+\_preplang ca Catalan ca ca 22
+\_preplang hr Croatian hr hr 22
+\_preplang cs Czech cs cs 23
+\_preplang da Danish da da 22
+\_preplang nl Dutch nl nl 22
+\_preplang et Estonian et et 23
+\_preplang fi Finnish fi fi 22
+\_preplang fis schoolFinnish fi fi-x-school 11
+\_preplang fr French fr fr 22
+\_preplang de nGerman de de-1996 22
+\_preplang deo oldGerman de de-1901 22
+\_preplang gsw swissGerman de de-ch-1901 22
+\_preplang elm monoGreek el el-monoton 11
+\_preplang elp Greek el el-polyton 11
+\_preplang grc ancientGreek grc grc 11
+\_preplang hu Hungarian hu hu 22
+\_preplang is Icelandic is is 22
+\_preplang ga Irish ga ga 23
+\_preplang it Italian it it 22
+\_preplang la Latin la la 22
+\_preplang lac classicLatin la la-x-classic 22
+\_preplang lal liturgicalLatin la la-x-liturgic 22
+\_preplang lv Latvian lv lv 22
+\_preplang lt Lithuanian lt lt 22
+\_preplang mk Macedonian mk mk 22
+\_preplang pl Polish pl pl 22
+\_preplang pt Portuguese pt pt 23
+\_preplang ro Romanian ro ro 22
+\_preplang rm Romansh rm rm 22
+\_preplang ru Russian ru ru 22
+\_preplang srl Serbian sr-latn sh-latn 22
+\_preplang src SerbianCyrl sr-cyrl sh-cyrl 22
+\_preplang sk Slovak sk sk 23
+\_preplang sl Slovenian sl sl 22
+\_preplang es Spanish es es 22
+\_preplang sv Swedish sv sv 22
+\_preplang uk Ukrainian uk uk 22
+\_preplang cy Welsh cy cy 23
+% Others:
+\_preplang af Afrikaans af af 12
+\_preplang hy Armenian hy hy 12
+\_preplang as Assamese as as 11
+\_preplang eu Basque eu eu 22
+\_preplang bn Bengali bn bn 11
+\_preplang nb Bokmal nb nb 22
+\_preplang cop Coptic cop cop 11
+\_preplang cu churchslavonic cu cu 12
+\_preplang eo Esperanto eo eo 22
+\_preplang ethi Ethiopic ethi mul-ethi 11
+\_preplang fur Friulan fur fur 22
+\_preplang gl Galician gl gl 22
+\_preplang ka Georgian ka ka 12
+\_preplang gu Gujarati gu gu 11
+\_preplang hi Hindi hi hi 11
+\_preplang id Indonesian id id 22
+\_preplang ia Interlingua ia ia 22
+\_preplang kn Kannada kn kn 11
+\_preplang kmr Kurmanji kmr kmr 22
+\_preplang ml Malayalam ml ml 11
+\_preplang mr Marathi mr mr 11
+\_preplang mn Mongolian mn mn-cyrl 22
+\_preplang nn Nynorsk nn nn 22
+\_preplang oc Occitan oc oc 22
+\_preplang or Oriya or or 11
+\_preplang pi Pali pi pi 12
+\_preplang pa Panjabi pa pa 11
+\_preplang pms Piedmontese pms pms 22
+\_preplang zh Pinyin zh zh-latn-pinyin 11
+\_preplang sa Sanskrit sa sa 13
+\_preplang ta Tamil ta ta 11
+\_preplang te Telugu te te 11
+\_preplang th Thai th th 23
+\_preplang tr Turkish tr tr 22
+\_preplang tk Turkmen tk tk 22
+\_preplang hsb Uppersorbian hsb hsb 22
+
+ \_doc -----------------------------
+ \`\_preplangmore` `<lang-id><space>{<text>}` declares more activities
+ of the language switch. The <text> is processed whenever
+ `\_<lang-id>lang` is invoked. If \^`\_preplangmore` is not declared
+ for given language then \`\_langdefault` is processed.\nl
+ You can implement selecting a required script for given language, for
+ example:
+ \begtt
+ \_preplangmore ru {\_frenchspacing \_setff{script=cyrl}\selectcyrlfont}
+ \_addto\_langdefaut {\_setff{}\selectlatnfont}
+ \endtt
+ The macros `\selectcyrlfont` and `\selectlatnfont` are not defined in
+ \OpTeX/. If you follow this example, you have to define them after your
+ decision what fonts will be used in your specific situation.
+ \_cod -----------------------------
+
+\_def\_preplangmore #1 #2{\_ea \_gdef \_csname _langspecific:#1\_endcsname{#2}}
+\_def\_langdefault{\_frenchspacing}
+
+\_preplangmore en {\_nonfrenchspacing}
+\_preplangmore enus {\_nonfrenchspacing}
+\_def\_langdefault {\_frenchspacing}
+
+ \_doc -----------------------------
+ The default `\language=0` is US-English with original hyphenation patterns
+ preloaded in the format (see the end of section~\ref[plain]).
+ We define `\_enlang` and \`\enlang` switches.
+ Note that if no language switch is used in the document then
+ `\language=0` and US-English patterns are used, but \^`\nonfrenchspacing`
+ isn't set.
+ \_cod -----------------------------
+
+\_chardef\_enPatt=0
+\_sdef{_lan:0}{en}
+\_sdef{_ulan:usenglish}{en}
+\_def\_enlang{\_uselang{en}\_enPatt23} % \lefthyph=2 \righthyph=3
+\_def\enlang{\_enlang}
+
+ \_doc -----------------------------
+ The list of declared languages are reported during format generation.
+ \_cod -----------------------------
+
+\_message{Declared languages: \_langlist.
+ Use \_string\<lang-id>lang to initialize language,
+ \_string\cslang\_space for example.}
+
+ \_doc -----------------------------
+ Each language switch `\_<lang-id>lang` defined by \^`\_preplang` has its initial state\nl
+ \`\_langinit` `\<switch> <lang-id>(<LongName>)<lang-tag>[<hyph-tag>]<lr-hyph>`.
+ The \^`\_langinit` macro does:
+ \begitems
+ * The internal language <number> is extracted from `\_the\_<lang-id>Patt`.
+ * `\def \_lan:<number> {<lang-tag>}` for mapping from `\language` number to the <lang-tag>.
+ * loads `hyph-<hyph-tag>.tex` file with hyphenation patterns when `\language=<number>`.
+ * loads the part of `lang-data.opm` file with language-dependent phrases
+ using \^`\_langinput`.
+ * `\def \_<lang-id>lang {\_uselang{<lang-id>}\_<lang-id>Patt <lr-hyph>}`,
+ i.e. the switch redefines itself for doing a \"normal job" when the
+ language switch is used repeatedly.
+ * Runs itself (i.e. `\_<lang-id>lang`) again for doing the \"normal job" firstly.
+ \enditems
+ \_cod -----------------------------
+
+\_def\_langinit #1#2(#3)#4[#5]#6#7{% \_switch lang-id(LongName)lang-tag[hyph-file]lr-hyph
+ \_sxdef{_lan:\_ea\_the\_csname _#2Patt\_endcsname}{#4}%
+ \_begingroup \_setbox0=\_vbox{% we don't want spaces in horizontal mode
+ \_setctable\_optexcatcodes
+ % loading patterns:
+ \_language=\cs{_#2Patt}\_relax
+ \_ifx^#5^\_else
+ \_wlog{Loading hyphenation for #3: \_string\language=\_the\_language\_space(#5)}%
+ \_let\patterns=\_patterns \_let\hyphenation=\_hyphenation \_def\message##1{}%
+ \_isfile {hyph-#5}\_iftrue \_input{hyph-#5}%
+ \_else \_opwarning{No hyph. patterns #5 for #3, missing package?}\_fi
+ \_fi
+ % loading language data:
+ \_langinput{#4}%
+ }\_endgroup
+ \xdef#1{\noexpand\_uselang{#2}\_csname _#2Patt\_endcsname #6#7}%
+ #1% do language switch
+}
+
+ \_doc -----------------------------
+ \`\_uselang``{<lang-id>}\_<lang-id>Patt <pre-hyph><post-hyph>`
+ is used as \"normal job" of the switch.
+ It sets `\language`, `\lefthyphenmin`, `\righthyphenmin`.
+ Finally, it runs data from \^`\_preplangmore` or runs \^`\_langdefault`.
+ \_cod -----------------------------
+
+\_def\_uselang#1#2#3#4{\_language=#2\_lefthyphenmin=#3\_righthyphenmin=#4\_relax
+ \_trycs{_langspecific:#1}{\_langdefault}%
+}
+
+ \_doc -----------------------------
+ The \`\uselanguage` `{<LongName>}` macro is defined here
+ (for compatibility with e-plain users). Its parameter is case insensitive.
+ \_cod -----------------------------
+
+\_def\_uselanguage#1{\_def\_tmp{#1}\_lowercase{\_cs{_\_trycs{_ulan:#1}{0x}lang}}}
+\_sdef{_0xlang}{\_opwarning{\_string\uselanguage{\_tmp}: Unknown language name, ignored}}
+\_public \uselanguage ;
+
+ \_doc -----------------------------
+ The \"language data" include declarations of
+ rules for sorting (see section~\ref[makeindex]),
+ language-dependent phrases and quotation marks (see section~\ref[langphrases]).
+ The language data are collected in the single `lang-data.opm` file.
+ Appropriate parts of this file is read by \^`\_langinput{<lang-tag>}`.
+ First few lines of the file looks like:
+ {\maxlines=47 \printdoc lang-data.opm }%
+ There are analogical declaration for more languages here. Unfortunately, this
+ file is far for completeness. I welcome you send me a part of declaration
+ for your language.
+
+ If your language is missing in this file then a warning is reported during
+ language initialization. You can create your private declaration in your
+ macros (analogical as in the `lang-data.opm` file
+ but without the \^`\_langdata` prefix).
+ Then you will want to remove the warning about missing data. This can be
+ done by \`\nolanginput``{<lang-tag>}` given before initialization of your
+ language.
+
+ The whole file `lang-data.opm` is not preloaded in the format because
+ I suppose a plenty languages here and I don't want to waste the \TeX/ memory
+ by these declarations. Each part of this file prefixed by
+ \`\_langdata` `<lang-tag> {<LongName>}` is read separately
+ when \`\_langinput``{<lang-tag>}` is used. And it is used
+ in the \^`\_langinit` macro (i.e.\ when the language is initialized),
+ so the appropriate part of this file is read automatically on demand.
+
+ If the part of the `lang-data.opm` concerned by <lang-tag> is read already
+ then `\_li:<lang-tag>` is set to `R` and we don't read this part of the file again.
+ \_cod -----------------------------
+
+\_def\_langinput #1{%
+ \_unless \_ifcsname _li:#1\_endcsname
+ \_bgroup
+ \_edef\_tmp{\_noexpand\_langdata #1 }\_everyeof\_ea{\_tmp{}}%
+ \_long \_ea\_def \_ea\_tmp \_ea##\_ea1\_tmp{\_readlangdata{#1}}%
+ \_globaldefs=1
+ \_ea\_tmp \_input{lang-data.opm}%
+ \_ea\_glet \_csname _li:#1\_endcsname R%
+ \_egroup
+ \_fi
+}
+\_def\_readlangdata #1#2{%
+ \_ifx^#2^\_opwarning{Missing data for language "#1" in lang-data.opm}%
+ \_else \_wlog{Reading data for the language #2 (#1)}%
+ \_fi
+}
+\_def\_langdata #1 #2{\_endinput}
+\_def\_nolanginput #1{\_ea\_glet \_csname _li:#1\_endcsname N}
+\_public \nolanginput ;
+
+ \_doc -----------------------------
+ Data of two preferred languages are preloaded in the format:
+ \_cod -----------------------------
+
+\_langinput{en} \_langinput{cs}
+
+\_endcode
+
+2022-02-19 \_langinput moved here
+2022-02-17 released, original file was hyphen-lan.opm
diff --git a/macros/optex/base/languages.opm b/macros/optex/base/languages.opm
index 26e0c62628..4ae66ef1f4 100644
--- a/macros/optex/base/languages.opm
+++ b/macros/optex/base/languages.opm
@@ -1,30 +1,30 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \_mtext {Languages <2021-05-23>} % preloaded in format
+\_codedecl \_mtext {Languages <2022-02-19>} % preloaded in format
\_doc -----------------------------
- Only four words are generated by \OpTeX/ macros: \"Chapter",
- \"Table", \"Figure" and \"Subject". These phrases can be generated depending
- on the current value of `\language` register, if you use \`\_mtext``{<phrase-id>}`,
+ Four words are generated by \OpTeX/ macros: \"Chapter",
+ \"Table", \"Figure" and \"Subject". These phrases are generated depending
+ on the current value of the `\language` register, if you use \`\_mtext``{<phrase-id>}`,
specially `\_mtext{chap}`, `\_mtext{t}`, `\_mtext{f}` or `\_mtext{subj}`.
If your macros generate more words then
- you can define such words by `\sdef{_mt:<phrase-id>:<lang>}` where
- `<phrase-id>` is a label for the declared word and `<lang>` is a language shortcut
- (iso code).
+ you can define such words by `\sdef{_mt:<phrase-id>:<lang-tag>}` where
+ `<phrase-id>` is a label for the declared word and `<lang-tag>` is a language shortcut
+ declared by \~`\_preplang`.
\_cod -----------------------------
\_def\_mtext#1{\_trycs{_mt:#1:\_trycs{_lan:\_the\_language}{en}}
{\_csname _mt:#1:en\_endcsname}}
-\_sdef{_mt:chap:en}{Chapter} \_sdef{_mt:chap:cs}{Kapitola} \_sdef{_mt:chap:sk}{Kapitola}
-\_sdef{_mt:t:en}{Table} \_sdef{_mt:t:cs}{Tabulka} \_sdef{_mt:t:sk}{Tabuľka}
-\_sdef{_mt:f:en}{Figure} \_sdef{_mt:f:cs}{Obrázek} \_sdef{_mt:f:sk}{Obrázok}
-\_sdef{_mt:subj:en}{Subject} \_sdef{_mt:subj:cs}{Věc} \_sdef{_mt:subj:sk}{Vec}
-
\_doc -----------------------------
- Using \`\_langw` `<lang> <chapter> <table> <figure> <subject>` you can
- declare these words more effectively:
- \maxlines=13
+ We can declare such language-dependent words by
+ \begtt
+ \_sdef{_mt:chap:en}{Chapter} \_sdef{_mt:chap:cs}{Kapitola}
+ \_sdef{_mt:t:en}{Table} \_sdef{_mt:t:cs}{Tabulka}
+ \endtt
+ etc. but we use more \"compact" macro
+ \`\_langw` `<lang-tag> <chapter> <table> <figure> <subject>`
+ for declaring them.
\_cod -----------------------------
\_def \_langw #1 #2 #3 #4 #5 {%
@@ -32,20 +32,29 @@
\_sdef{_mt:subj:#1}{#5}%
}
-\_langw en Chapter Table Figure Subject
-%--------------------------------------------------------------
-\_langw cs Kapitola Tabulka Obrázek Věc
-\_langw de Kapitel Tabelle Abbildung Betreff
-\_langw es Capítulo Tabla Figura Sujeto
-\_langw fr Chapitre Tableau Figure Matière
-\_langw it Capitolo Tabella Fig. Oggetto
-\_langw pl Rozdział Tabela Ilustracja Temat
-\_langw gr Κεφάλαιο Πίνακας Σχήμα θέμα
-\_langw ru Глава Таблица Рисунок Предмет
-\_langw sk Kapitola Tabuľka Obrázok Vec
+ \_doc -----------------------------
+ More phrases are auto-generated in bibliography references. They are declared by\nl
+ \`\_langb` `<lang-tag> {<and>} {<et-al>} {<ed>} {<cit>} {<vol>} {<no>} {<pp>} {<p>} {<ed>} {<eds>}`\nl
+ ` {<avail-from>} {<avali-to>} {<ba-thesis>} {<ma-thesis>} {<phd-thesis>}`.
+ It is used similar way as the \^`\_langw` above. Both these macros are used
+ in `lang-data.opm` file, see the end of section~\ref[langdecl].
+ \_cod -----------------------------
+
+\_def\_langb#1 #2#3#4#5#6#7#8#9{\_def\_mbib##1##2{\_sdef{_mt:bib.##2:#1}{##1}}%
+ \_mbib{#2}{and}\_mbib{#3}{etal}\_mbib{#4}{edition}\_mbib{#5}{citedate}\_mbib{#6}{volume}%
+ \_mbib{#7}{number}\_mbib{#8}{prepages}\_mbib{#9}{postpages}\_langbA}
+\_def\_langbA#1#2#3#4#5#6#7{\_mbib{#1}{editor}\_mbib{#2}{editors}\_mbib{#3}{available}%
+ \_mbib{#4}{availablealso}\_mbib{#5}{bachthesis}\_mbib{#6}{masthesis}\_mbib{#7}{phdthesis}}
\_doc -----------------------------
- You can add more words as you wish. For example \`\today` macro:
+ \`\today` macro needs auto-generated words for each name of the month.\nl
+ \`\_monthw` `<lang-tag> <January> <February> ... <December>` is used for
+ decaring them.\nl
+ The language-dependent format for printing date should be declared like
+ \begtt
+ \_sdef{_mt:today:en}{\_mtext{m\_the\_month} \_the\_day, \_the\_year}
+ \endtt
+ This example declares date format for English where <lang-tag> is `en`.
\_cod -----------------------------
\_def \_monthw #1 #2 #3 #4 #5 #6 #7 {%
@@ -57,21 +66,6 @@
\_sdef{_mt:m7:#1}{#2}\_sdef{_mt:m8:#1}{#3}\_sdef{_mt:m9:#1}{#4}%
\_sdef{_mt:m10:#1}{#5}\_sdef{_mt:m11:#1}{#6}\_sdef{_mt:m12:#1}{#7}%
}
-
-\_monthw en January February March April May June
- July August September October November December
-\_monthw cs ledna února března dubna května června
- července srpna září října listopadu prosince
-\_monthw sk januára februára marca apríla mája júna
- júla augusta septembra októbra novembra decembra
-\_monthw it gennaio febbraio marzo aprile maggio giugno
- luglio agosto settembre ottobre novembre dicembre
-
-
-\_sdef{_mt:today:en}{\_mtext{m\_the\_month} \_the\_day, \_the\_year}
-\_sdef{_mt:today:cs}{\_the\_day.~\_mtext{m\_the\_month} \_the\_year}
-\_slet{_mt:today:sk}{_mt:today:cs}
-
\_def\_today{\_mtext{today}}
\_public \today ;
@@ -86,24 +80,29 @@
User can declare quotes by \^`\quoteschars``<clqq><crqq><clq><crq>`, where
`<clqq>...<crqq>` are normal quotes and `<clq>...<crq>` are alternative quotes.
or use \`\altquotes` to swap between the meaning of these two types of quotes.
- \nl
- \`\enquotes`, \`\csquotes`, \`\dequotes`, \`\frquotes` etc. are defined here.
+ \`\enquotes`, \`\csquotes`, \`\frquotes`, \`\dequotes`, \`\skquotes` are defined here.
+ Languages in general provide the \`\quotes` declaration macro. It declares the
+ quotation marks depending on the actual selected language. For example,
+ `\eslang \quotes` declares Spanish language including its quotation marks
+ used for `\"<text>"` and `\'<text>'`. The language-dependent quotation
+ marks should be declared by \`\_quotationmarks` `<lang-tag> {<clqq><crqq><clq><crq>}`
+ in the `lang-data.opm` file.
\_cod -----------------------------
\_def \_enquotes {\_quoteschars “”‘’}
\_def \_csquotes {\_quoteschars „“‚‘}
\_def \_frquotes {\_quoteschars “”«»}
-\_let \_plquotes = \_frquotes
-\_let \_esquotes = \_frquotes
-\_let \_grquotes = \_frquotes
-\_let \_ruquotes = \_frquotes
-\_let \_itquotes = \_frquotes
-\_let \_skquotes = \_csquotes
\_let \_dequotes = \_csquotes
+\_let \_skquotes = \_csquotes
+
+\_def \_quotes {\_trycs{_qt:\_trycs{_lan:\_the\_language}{en}}{\_enquotes}}
+\_def \_quotationmarks #1 #2{\_sdef{_qt:#1}{\_quoteschars #2}}
+
+\_public \quotes \enquotes \csquotes \frquotes \dequotes \skquotes ;
\_doc -----------------------------
The \`\quoteschars``<lqq><rqq><lq><rq>` defines `\"` and `\"` as `\_qqA`
- in in normal mode and as expadable macros in outline mode.
+ in normal mode and as expadable macros in outline mode.
We want to well process the common cases: \code{\\"`&`"} or \code{\\"`\{`"}.
This is the reason why the quotes parameter is read in verbatim mode and retokenized
again by `\scantextokens`. We want to allow to quote the quotes mark
@@ -136,52 +135,12 @@
\_def\_activequotes{\_let\_actqq=\"\_adef"{\_actqq}\_let\_actq=\'\_adef'{\_actq}%
\_regmacro{}{}{\_adef"{\"}\_adef'{\'}}}
-\_public \quoteschars \activequotes \enquotes \csquotes \skquotes \frquotes \plquotes
- \esquotes \grquotes \ruquotes \itquotes \dequotes ;
-
- \_doc -----------------------------
- Bibliography references generated by \^`\usebib` uses more
- language-dependent phrases. They are declared here. We don't want to save
- all these phrases into the format, so the trick with {`\_endinput`}
- is used here. When \^`\usebib` is processed then the following part of the file
- `languages.opm` is read again.
-
- Only phrases of few languages are declared here now. If you want to declare
- phrases of your language, please create an \"issue" or a \"request" at
- \url{https://github.com/olsak/OpTeX} or send me an email with new
- phrases for your language (or language you know:). I am ready to put them here.
- Temporarily, you can put your definitions into `\bibtexhook` token list.
- \_cod -----------------------------
-
-\_endinput % don't save these \def's to the format
-
-\_def\_langb#1 #2#3#4#5#6#7#8#9{\_def\_mbib##1##2{\_sdef{_mt:bib.##2:#1}{##1}}%
- \_mbib{#2}{and}\_mbib{#3}{etal}\_mbib{#4}{edition}\_mbib{#5}{citedate}\_mbib{#6}{volume}%
- \_mbib{#7}{number}\_mbib{#8}{prepages}\_mbib{#9}{postpages}\_langbA}
-\_def\_langbA#1#2#3#4#5#6#7{\_mbib{#1}{editor}\_mbib{#2}{editors}\_mbib{#3}{available}%
- \_mbib{#4}{availablealso}\_mbib{#5}{bachthesis}\_mbib{#6}{masthesis}\_mbib{#7}{phdthesis}}
-
-\_langb en {, and } { et al.} { ed.} {cit.~} {Vol.~} {No.~} {pp.~} {~p.} {,~ed.} {,~eds.}
- {Available from } {Available also from }
- {Bachelor's Thesis} {Master's Thesis} {Ph.D. Thesis}
-%------------------------------------------------------------------------------------------
-\_langb cs { a } { a~kol.} { vyd.} {vid.~} {ročník~} {č.~} {s.~} {~s.} {,~editor} {,~editoři}
- {Dostupné na } {Dostupné též na }
- {Bakalářská práce} {Diplomová práce} {Disertační práce}
-\_langb sk { a } { a~kol.} { vyd.} {vid.~} {ročník~} {č.~} {s.~} {~s.} {,~editor} {,~editoři}
- {Dostupné na } {Dostupné tiež na }
- {Bakalárska práca} {Diplomová práca} {Dizertačná práca}
-
-% \_<lang>dateformat year/month/day\relax, for example: \_csdateformat 2020/05/21\relax
-% This is used in iso690 bib-style when the field "citedate" is used.
-
-\_def\_endateformat #1/#2/#3\relax{#1-#2-#3}
-% \_csdateformat 2020/05/21\relax -> \hbox{21. 5. 2020}
-\_def\_csdateformat #1/#2/#3\relax{\hbox{\_tmpnum=#3 \_the\_tmpnum. \_tmpnum=#2 \_the\_tmpnum. #1}}
-\_let\_skdateformat =\_csdateformat
+\_public \quoteschars \activequotes ;
\_endcode % -------------------------------------
+2022-02-19 \quotes, \_quotationmarks introduced
+2022-02-04 \_langinput, words-lan.opm introduced
2021-05-23 \_monthw: bug fix
2021-01-21 more robust quotes in outlines
2020-12-05 bib phrases moved here
diff --git a/macros/optex/base/makeindex.opm b/macros/optex/base/makeindex.opm
index 4de0d815fd..7e99859719 100644
--- a/macros/optex/base/makeindex.opm
+++ b/macros/optex/base/makeindex.opm
@@ -1,10 +1,12 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \makeindex {Makeindex and sorting <2021-02-15>} % preloaded in format
+\_codedecl \makeindex {Makeindex and sorting <2022-02-19>} % preloaded in format
\_doc -----------------------------
\^`\makeindex` implements sorting algorithm at \TeX/ macro-language level.
- You need not any external program.
+ You need not any external program. The sorting can be used for various
+ other applications, see an example in
+ \ulink[http://petr.olsak.net/optex/optex-tricks.html\#sort]{\OpTeX/ trick~0068}.
There are two passes in the sorting algorithm. The primary pass does not
distinguish between a group of letters (typically non-accented and
@@ -14,12 +16,14 @@
before acute before circumflex before ring. At less priority: lowercase
letters must be before uppercase letters.
- The \`\_sortingdata``<iso-code>` implements these rules for the language
- <iso-code>. The groups between commas are not distinguished in the first
+ The \`\_sortingdata``<lang-tag>` implements these rules for the language
+ given by <lang-tag>. The <lang-tag> is typicaly ISO 639-1 code of the language
+ and it is declared by \~`\_preplang` defined in section~\ref[langdecl].
+ The \`\_sortingdatacs` for Czech rules is defined below.
+ The groups between commas are not distinguished in the first
pass. The second pass distinguishes all characters mentioned in the
- `\_sortingdata<iso-code>` (commas are ignored). The order of letters
- in the `\_sortingdata<iso-code>` macro is significant for the sorting algorithm.
- The Czech rules (`cs`) are implemented here:
+ `\_sortingdata<lang-tag>` (commas are ignored). The order of letters
+ in the `\_sortingdata<lang-tag>` macro is significant for the sorting algorithm.
\_cod -----------------------------
\_def \_sortingdatacs {%
@@ -59,45 +63,34 @@
}
\_doc -----------------------------
- Characters ignored by the sorting algorithm are declared in \`\_ignoredchars``<iso-code>`.
- The compound characters (two or more characters interpreted as one
- character in the sorting algorithm) are mapped to single invisible characters
- in \`\_compoundchars``<iso-code>`. Czech rules declare ch or Ch or CH as
- a single letter sorted between H and I. See \`\_sortingdatacs` above where
- these declared characters are used.
-
- The characters declared in `\_ignoredchars` are ignored in the first pass
+ Characters to be ignored are declared in \`\_ignoredchars``<lang-tag>`.
+ See \`\_ignoredcharscs` for Czech rules. These characters are ignored in the first pass
without additional condition. All characters are taken into account in
- second pass: ASCII characters with code $\string<65$ are sorted first if they
- are not mentioned in the `\_sortingdata<iso-code>` macro.
+ the second pass: ASCII characters with code $\string<65$ are sorted first if they
+ are not mentioned in the \^`\_sortingdata``<lang-tag>` macro.
Others not mentioned characters have undefined behavior during sorting.
+
+ The compound characters (two or more characters interpreted as one
+ character in the sorting algorithm) are mapped to single invisible characters
+ in \`\_compoundchars``<lang-tag>`, see \`\_compoundcharscs` below for Czech rules,
+ where ch or Ch or CH are declared as a single letter sorted between H and I.
+ See \^`\_sortingdatacs` above where these declared characters are used.
\_cod -----------------------------
\_def \_ignoredcharscs {.,;?!:'"|()[]<>=+}
\_def \_compoundcharscs {ch:^^T Ch:^^U CH:^^V} % DZ etc. are sorted normally
\_doc -----------------------------
- Slovak sorting rules are the same as Czech. The macro `\_sortingdatacs`
- includes Slovak letters too. Compound characters are the same.
- English sorting rules can be defined by `\_sortingdatacs` too because
- English alphabet is a subset of the Czech and Slovak alphabets. Only
- difference: \`\_compoundcharsen` is empty in English rules.
-
You can declare these macros for more languages if you wish to use
`\makeindex` with sorting rules with respect to your language.
Note: if you need to map compound characters to a character, don't use
- `^^I` or `^^M` because these characters have very specific category codes.
- And use space to separate more mappings, like in \`\_compoundcharscs` above.
- \_cod -----------------------------
+ `^^I`, `^^J` or `^^M` because these characters have very specific category codes.
+ And use spaces to separate more mappings, like in \^`\_compoundcharscs` above.
+
+ If you create `\_sortingdata` etc. for your language, please, send them
+ to me. I am ready to add them to the file `lang-data.opm` in a new \OpTeX/ release.
+ See also section~\ref[langdecl].
-\_let \_sortingdatask = \_sortingdatacs
-\_let \_compoundcharssk = \_compoundcharscs
-\_let \_ignoredcharssk = \_ignoredcharscs
-\_let \_sortingdataen = \_sortingdatacs
-\_def \_compoundcharsen {}
-\_let \_ignoredcharsen = \_ignoredcharscs
-
- \_doc -----------------------------
Preparing to primary pass is implemented by the \`\_setprimarysorting` macro.
It is called from `\makeindex` macro and all processing of sorting is in a group.
\_cod -----------------------------
@@ -160,7 +153,7 @@
\_doc -----------------------------
Macro \`\_isAleB` `\,<string1> \,<string2>` returns the result of comparison
of given two strings to \`\_ifAleB` control sequence. Usage:
- `\isAleB \,<string1> \,<string2> \_ifAleB ... \_else ... \_fi`
+ `\_isAleB \,<string1> \,<string2> \_ifAleB ... \_else ... \_fi`
The converted strings (in respect of the data prepared for first pass)
must be saved as values of `\,<string1>` and `\,<string2>` macros.
The reason is speed: we don't want to convert them repeatedly in each
@@ -247,7 +240,7 @@
The current language (chosen for hyphenation patterns) is used for
sorting data. If the macro \`\_sortinglang`
- is defined as `<iso-code>` (for example `\def\sortinglang{de}`)
+ is defined as `<lang-tag>` (for example `\def\_sortinglang{de}` for German)
then this has precedence and current language is not used.
Moreover, if you specify \`\_asciisortingtrue` then ASCII
sorting will be processed and all language sorting data will be ignored.
@@ -457,6 +450,7 @@
\_endcode % -------------------------------------
+2022-02-19 \_sotringdataen etc. moved to lang-data.opm file
2021-02-15 \_expandafter -> \_ea
2021-02-01 secodary sorting: start from code 65
2020-04-21 \isempty \iffalse ... \fi added to \iindex
diff --git a/macros/optex/base/math-preload.opm b/macros/optex/base/math-preload.opm
index 0ec9abae2f..fde73e7e65 100644
--- a/macros/optex/base/math-preload.opm
+++ b/macros/optex/base/math-preload.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \normalmath {Math fonts CM + AMS preloaded <2020-05-06>} % preloaded in format
+\_codedecl \normalmath {Math fonts CM + AMS preloaded <2022-02-22>} % preloaded in format
\_doc ------------------------------
We have two math macros \`\normalmath` for the normal shape of all math
@@ -59,11 +59,11 @@
%\_chardef\_ttfam = 10
%\_chardef\_itfam = 11
-\_protected\_def \_rm {\_tryloadrm \_tenrm \_fam0 }
-\_protected\_def \_bf {\_tryloadbf \_tenbf \_fam\_bffam}
-\_protected\_def \_it {\_tryloadit \_tenit \_fam1 }
-\_protected\_def \_bi {\_tryloadbi \_tenbi \_fam\_bifam}
-\_protected\_def \_tt {\_tryloadtt \_tentt}
+\_protected\_def \_marm {\_fam0 }
+\_protected\_def \_mabf {\_fam\_bffam}
+\_protected\_def \_mait {\_fam1 }
+\_protected\_def \_mabi {\_fam\_bifam}
+\_protected\_def \_matt {}
\_protected\_def \_mit {\_fam1 }
\_protected\_def \_cal {\_fam2 }
@@ -71,7 +71,7 @@
\_protected\_def \_frak {\_fam7 } % fraktur
\_protected\_def \_script {\_fam6 } % more extensive script than \cal
-\_public \rm \bf \it \bi \tt \mit \cal \bbchar \frak \script ;
+\_public \mit \cal \bbchar \frak \script ;
\_doc -----------------------------
The optical sizes of Computer Modern fonts, AMS, and other fonts
@@ -149,9 +149,9 @@
\_def\_loadmathfamily #1 #2 {%
\_edef\_optsizesave{\_the\_optsize}%
- \_optsize=\_sizemtext \_font\_mF=\_whichtfm{#2} at\_optsize \_textfont#1=\_mF
- \_optsize=\_sizemscript \_font\_mF=\_whichtfm{#2} at\_optsize \_scriptfont#1=\_mF
- \_optsize=\_sizemsscript \_font\_mF=\_whichtfm{#2} at\_optsize \_scriptscriptfont#1=\_mF
+ \_optsize=\_sizemtext \_font\_mF=\_optfn{#2} at\_optsize \_textfont#1=\_mF
+ \_optsize=\_sizemscript \_font\_mF=\_optfn{#2} at\_optsize \_scriptfont#1=\_mF
+ \_optsize=\_sizemsscript \_font\_mF=\_optfn{#2} at\_optsize \_scriptscriptfont#1=\_mF
\_optsize=\_optsizesave \_ptmunit=\_ptunit
}
\_def\_setmathfamily #1 #2{\_let\_mF=#2%
@@ -198,7 +198,8 @@
\_cod -----------------------------
\_suppressfontnotfounderror=1
-\_setmathsizes[10/7/5]\_normalmath
+\_setmathsizes[10/7/5]
+\_ifx\fontspreload\_relax \_else \_normalmath \_fi
\_suppressfontnotfounderror=0
@@ -223,5 +224,6 @@ For example
\_endinput
+2022-02-22: \rm, \it, etc moved to fonts-select, \_marm, \_mait etc. introduced
2020-05-06: \itfam, \ttfam removed, (Unicode math preferred)
2020-04-14: \skewchar\fam6 added
diff --git a/macros/optex/base/math-unicode.opm b/macros/optex/base/math-unicode.opm
index eaa0e72fbf..a092d081c2 100644
--- a/macros/optex/base/math-unicode.opm
+++ b/macros/optex/base/math-unicode.opm
@@ -243,7 +243,7 @@ The \^`\loadmath` macro was succesfully tested on:
\printdoc math-unicode.opm
-\secc[unimath-codes] Macros and codes set when \code{\\loadmatfont} is processed
+\secc[unimath-codes] Macros and codes set when `\loadmath` is processed firstly
The file `unimath-codes.opm` is loaded when the \^`\loadmath` is used. The
macros here redefines globally all encoding dependent settings declared in
diff --git a/macros/optex/base/optex.ini b/macros/optex/base/optex.ini
index 4ccc482d8f..3323491b2c 100644
--- a/macros/optex/base/optex.ini
+++ b/macros/optex/base/optex.ini
@@ -21,7 +21,7 @@
% OpTeX version
-\def\optexversion{1.05 Jan.2022}
+\def\optexversion{1.06 Mar.2022}
\def\fmtname{OpTeX}
\let\fmtversion=\optexversion
@@ -39,7 +39,7 @@
% Basic .opm syntax:
\let\_endcode =\endinput
-\def \_codedecl #1#2{\message{#2^^J}}% information about .opm file
+\def \_codedecl #1#2{\immediate\write-1{#2}}% information about .opm file
\long\def\_doc#1\_cod#2 {} % skip documentation
% Initialization:
@@ -84,8 +84,8 @@
\input styles.opm % styles \report, \letter
\input logos.opm % standard logos
\input uni-lcuc.opm % Setting lccodes and uccodes for Unicode characters
-\input hyphen-lan.opm % initialization of hyphenation patterns
-\input languages.opm % languages
+\input languages.opm % Languages macros
+\input lang-decl.opm % Languages declaration
\input others.opm % miscellaneous
\_directlua{
diff --git a/macros/optex/base/optex.lua b/macros/optex/base/optex.lua
index 19eeb6328b..3bec088b60 100644
--- a/macros/optex/base/optex.lua
+++ b/macros/optex/base/optex.lua
@@ -2,6 +2,8 @@
-- The basic lua functions and declarations used in \OpTeX/ are here
+local fmt = string.format
+
-- \medskip\secc General^^M
--
-- Define namespace where some \OpTeX/ functions will be added.
@@ -49,9 +51,8 @@ end
-- Allocator for Lua functions ("pseudoprimitives"). It passes variadic
-- arguments (\"`...`") like `"global"` to `token.set_lua`.
local function_table = lua.get_functions_table()
-local luafnalloc = 0
function define_lua_command(csname, fn, ...)
- luafnalloc = luafnalloc + 1
+ local luafnalloc = #function_table + 1
token.set_lua(csname, luafnalloc, ...) -- WARNING: needs LuaTeX 1.08 (2019) or newer
function_table[luafnalloc] = fn
end
@@ -411,8 +412,74 @@ callback.add_to_callback("input_level_string", function(n)
return ""
end
end, "_tracingmacros")
+-- \medskip\secc[lua-pdf-resources] Management of PDF page resources^^M
+--
+-- Traditionally, pdf\TeX/ allowed managing PDF page resources (graphics
+-- states, patterns, shadings, etc.) using a single toks register,
+-- `\pdfpageresources`. This is insufficient due to the expected PDF object
+-- structer and also because many \"packages" want to add page resources and
+-- thus fight for the access to that register. We add a finer alternative,
+-- which allows adding different kinds of resources to a global page resources
+-- dictionary. Note that some resource types (fonts and XObjects) are already
+-- managed by \LuaTeX/ and shouldn't be added!
+--
+-- XObject forms can also use resources, but there are several ways to make
+-- \LuaTeX/ reference resources from forms. It is hence left up to the user to
+-- insert page resources managed by us, if they need them. For that, use
+-- `pdf.get_page_resources()`, or the below \TeX/ alternative for that.
+--
+local pdfdict_mt = {
+ __tostring = function(dict)
+ local out = {"<<"}
+ for k, v in pairs(dict) do
+ out[#out+1] = fmt("/%s %s", tostring(k), tostring(v))
+ end
+ out[#out+1] = ">>"
+ return table.concat(out, "\n")
+ end,
+}
+local function pdf_dict(t)
+ return setmetatable(t or {}, pdfdict_mt)
+end
+--
+local resource_dict_objects = {}
+local page_resources = {}
+function pdf.add_page_resource(type, name, value)
+ local resources = page_resources[type]
+ if not resources then
+ local obj = pdf.reserveobj()
+ pdf.setpageresources(fmt("%s /%s %d 0 R", pdf.get_page_resources(), type, obj))
+ resource_dict_objects[type] = obj
+ resources = pdf_dict()
+ page_resources[type] = resources
+ end
+ page_resources[type][name] = value
+end
+function pdf.get_page_resources()
+ return pdf.getpageresources() or ""
+end
+--
+-- New \"pseudo" primitives are introduced.
+-- \`\_addpageresource``{<type>}{<PDF name>}{<PDF dict>}` adds more reources
+-- of given resource <type> to our data structure.
+-- \`\_pageresources` expands to the saved <type>s and object numbers.
+define_lua_command("_addpageresource", function()
+ pdf.add_page_resource(token.scan_string(), token.scan_string(), token.scan_string())
+end)
+define_lua_command("_pageresources", function()
+ tex.print(pdf.get_page_resources())
+end)
+--
+-- We write the objects with resources to the PDF file in the `finish_pdffile`
+-- callback.
+callback.add_to_callback("finish_pdffile", function()
+ for type, dict in pairs(page_resources) do
+ local obj = resource_dict_objects[type]
+ pdf.immediateobj(obj, tostring(dict))
+ end
+end)
--
--- \medskip\secc[lua-colors] Handling of colors using attributes^^M
+-- \medskip\secc[lua-colors] Handling of colors and transparency using attributes^^M
--
-- Because \LuaTeX/ doesn't do anything with attributes, we have to add meaning
-- to them. We do this by intercepting \TeX/ just before it ships out a page and
@@ -447,10 +514,10 @@ local insertbefore = direct.insert_before
local copy = direct.copy
local traverse = direct.traverse
local one_bp = tex.sp("1bp")
-local string_format = string.format
--
-- The attribute for coloring is allocated in `colors.opm`
local color_attribute = registernumber("_colorattr")
+local transp_attribute = registernumber("_transpattr")
--
-- Now we define function which creates whatsit nodes with PDF literals. We do
-- this by creating a base literal, which we then copy and customize.
@@ -464,16 +531,17 @@ local function pdfliteral(str)
end
optex.directpdfliteral = pdfliteral
--
--- The function {\Red`colorize`}`(head, current, current_stroke)` goes through
--- a node list and injects PDF literals according to attributes.
+-- The function {\Red`colorize`}`(head, current, current_stroke, current_tr)`
+-- goes through a node list and injects PDF literals according to attributes.
-- Its arguments are the head of the list to be colored and the current color
--- for fills and strokes. It is a recursive function – nested
+-- for fills and strokes and the current trasparency attribute.
+-- It is a recursive function – nested
-- horizontal and vertical lists are handled in the same way. Only the
-- attributes of “content” nodes (glyphs, rules, etc.) matter. Users drawing
-- with PDF literals have to set color themselves.
--
--- Whatsit node with color setting PDF literal is injected only when a
--- different color is needed. Our injection does not care about boxing levels,
+-- Whatsit node with color setting PDF literal is injected only when a different
+-- color or transparency is needed. Our injection does not care about boxing levels,
-- but this isn't a problem, since PDF literal whatsits just instruct the
-- `\shipout` related procedures to emit the literal.
--
@@ -499,21 +567,13 @@ optex.directpdfliteral = pdfliteral
-- We use the `node.direct` way of working with nodes. This is less safe, and
-- certainly not idiomatic Lua, but faster and codewise more close to the way
-- \TeX/ works with nodes.
-local function is_color_needed(head, n, id, subtype) -- returns non-stroke, stroke color needed
+local function is_color_needed(head, n, id, subtype) -- returns fill, stroke color needed
if id == glyph_id then
return true, false
elseif id == glue_id then
n = getleader(n)
if n then
- id = getid(n)
- if id == hlist_id or id == vlist_id then
- -- leaders with hlist/vlist get single color
- return true, false
- else -- rule
- -- stretchy leaders with rules are tricky,
- -- just set both colors for safety
- return true, true
- end
+ return true, true
end
elseif id == rule_id then
local width, height, depth = getwhd(n)
@@ -530,45 +590,56 @@ local function is_color_needed(head, n, id, subtype) -- returns non-stroke, stro
return false, false
end
-local function colorize(head, current, current_stroke)
+local function colorize(head, current, current_stroke, current_tr)
for n, id, subtype in traverse(head) do
if id == hlist_id or id == vlist_id then
-- nested list, just recurse
local list = getlist(n)
- list, current, current_stroke = colorize(list, current, current_stroke)
+ list, current, current_stroke, current_tr =
+ colorize(list, current, current_stroke, current_tr)
setlist(n, list)
elseif id == disc_id then
-- at this point only no-break (replace) list is of any interest
local replace = getfield(n, "replace")
if replace then
- replace, current, current_stroke = colorize(replace, current, current_stroke)
+ replace, current, current_stroke, current_tr =
+ colorize(replace, current, current_stroke, current_tr)
setfield(n, "replace", replace)
end
else
- local nonstroke_needed, stroke_needed = is_color_needed(head, n, id, subtype)
+ local fill_needed, stroke_needed = is_color_needed(head, n, id, subtype)
local new = getattribute(n, color_attribute) or 0
- local newcolor = nil
- if current ~= new and nonstroke_needed then
- newcolor = token_getmacro("_color:"..new)
+ local newtr = getattribute(n, transp_attribute) or 0
+ local newliteral = nil
+ if current ~= new and fill_needed then
+ newliteral = token_getmacro("_color:"..new)
current = new
end
if current_stroke ~= new and stroke_needed then
local stroke_color = token_getmacro("_color-s:"..current)
if stroke_color then
- if newcolor then
- newcolor = string_format("%s %s", newcolor, stroke_color)
+ if newliteral then
+ newliteral = fmt("%s %s", newliteral, stroke_color)
else
- newcolor = stroke_color
+ newliteral = stroke_color
end
current_stroke = new
end
end
- if newcolor then
- head = insertbefore(head, n, pdfliteral(newcolor))
+ if newtr ~= current_tr and fill_needed then -- (fill_ or stroke_needed) = fill_neded
+ if newliteral ~= nil then
+ newliteral = fmt("%s /tr%d gs", newliteral, newtr)
+ else
+ newliteral = fmt("/tr%d gs", newtr)
+ end
+ current_tr = newtr
+ end
+ if newliteral then
+ head = insertbefore(head, n, pdfliteral(newliteral))
end
end
end
- return head, current, current_stroke
+ return head, current, current_stroke, current_tr
end
--
-- Colorization should be run just before shipout. We use our custom callback
@@ -578,7 +649,7 @@ callback.add_to_callback("pre_shipout_filter", function(list)
-- By setting initial color to -1 we force initial setting of color on
-- every page. This is useful for transparently supporting other default
-- colors than black (although it has a price for each normal document).
- local list = colorize(todirect(list), -1, -1)
+ local list = colorize(todirect(list), -1, -1, 0)
return tonode(list)
end, "_colors")
--
@@ -609,5 +680,7 @@ function optex_hook_into_luaotfload()
end
-- History:
+ -- 2022-03-07 transparency in the colorize() function, current_tr added
+ -- 2022-03-05 resources management added
-- 2021-07-16 support for colors via attributes added
-- 2020-11-11 optex.lua released
diff --git a/macros/optex/base/others.opm b/macros/optex/base/others.opm
index 0c9f4cae6a..3b5edcfa98 100644
--- a/macros/optex/base/others.opm
+++ b/macros/optex/base/others.opm
@@ -51,11 +51,29 @@
\let ^^a0=~
\_doc ----------------------------
- TikZ needs these funny control sequences.
+ Old macro packages need these funny control sequences.
+ We don't use them in new macros.
\_cod ----------------------------
-\_ea\_toksdef \_csname toks@\_endcsname=0
-\_ea\_let \_csname voidb@x\_endcsname=\_voidbox
+\_catcode`\@=11
+\_let\z@=\_zo \_let\z@skip=\_zoskip
+\_newdimen\p@ \p@=1pt
+\_toksdef\toks@=0
+\_let\voidb@x=\_voidbox
+\_chardef\@ne=1 \_chardef\tw@=2 \_chardef\thr@@=3 \_chardef\sixt@@n=16
+\_mathchardef\@m=1000 \_mathchardef\@M=10000 \_mathchardef\@MM=20000
+\_countdef\m@ne=22 \m@ne=-1
+\_chardef\@cclv=255 \_mathchardef\@cclvi=256
+\_skipdef\skip@=0
+\_dimendef\dimen@=0 \_dimendef\dimen@i=1
+\_dimendef\dimen@ii=2
+\_countdef\count@=255
+\_def\m@th{\_mathsurround\z@}
+\_def\o@lign{\_lineskiplimit\z@ \_oalign}
+\_def\n@space{\_nulldelimiterspace\z@ \m@th}
+\_newdimen\p@renwd \p@renwd=8.75pt
+\_def\alloc@#1#2#3#4#5{\_allocator#5{\_csstring#2}#3}
+\_catcode`\@=12
\_doc ----------------------------
We don't want to read `opmac.tex` unless `\input opmac` is specified.
diff --git a/macros/optex/base/output.opm b/macros/optex/base/output.opm
index ffe41c5387..c74d99d371 100644
--- a/macros/optex/base/output.opm
+++ b/macros/optex/base/output.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \nopagenumbers {Output routine <2021-07-16>} % preloaded in format
+\_codedecl \nopagenumbers {Output routine <2021-03-07>} % preloaded in format
\_doc -----------------------------
\`\_optexoutput` is the default output routine. You can create another...\nl
@@ -63,12 +63,13 @@
New is only \`\_backgroundbox`. It is `\vbox` with zero height with its
contents (from \^`\pgbackground`) extended down. It is shifted directly to the
left-upper corner of the paper.\nl
- The \^`\_resetcolor` used here means that all newly created texts in
- output routine (texts used in headline, footline) have default color.
+ The \^`\_resetattrs` used here means that all newly created texts in
+ output routine (texts used in headline, footline) have default color
+ and no transparency.
\_cod -----------------------------
\_def\_completepage{\_vbox{%
- \_resetcolor
+ \_resetattrs
\_istoksempty \_pgbackground
\_iffalse \_backgroundbox{\_the\_pgbackground}\_nointerlineskip \_fi
\_makeheadline
@@ -155,7 +156,7 @@
\_def \_opfootnote #1#2{\_insert\_footins\_bgroup
\_interlinepenalty=\_interfootnotelinepenalty
\_leftskip=\_zo \_rightskip=\_zo \_spaceskip=\_zo \_xspaceskip=\_zo \_relax
- \_resetcolor
+ \_resetattrs
#1\_relax % local settings used by \fnote macro
\_splittopskip=\_ht\_strutbox % top baseline for broken footnotes
\_splitmaxdepth=\_dp\_strutbox \_floatingpenalty=20000
@@ -186,7 +187,7 @@
\_skip\_topins=\_zoskip % no space added when a topinsert is present
\_count\_topins=1000 % magnification factor (1 to 1)
\_dimen\_topins=\_maxdimen % no limit per page
-\_def \_oins {\_par \_begingroup\_setbox0=\_vbox\_bgroup\_resetcolor} % start a \_vbox
+\_def \_oins {\_par \_begingroup\_setbox0=\_vbox\_bgroup\_resetattrs} % start a \_vbox
\_def \_endinsert {\_par\_egroup % finish the \_vbox
\_ifumid \_dimen0=\_ht0 \_advance\_dimen0 by\_dp0 \_advance\_dimen0 by\_baselineskip
\_advance\_dimen0 by\_pagetotal \_advance\_dimen0 by-\_pageshrink
@@ -257,6 +258,7 @@ The output routine \^`\_optexoutput` is similar as in plain \TeX. It does:
\_endinput
+2022-03-07 \_resetattrs instead \_resetcolor
2021-07-16 output routine supports colors via attributes
2021-02-25 \_draftbox improved
2021-02-15 \_advance -> \_decr
diff --git a/macros/optex/base/parameters.opm b/macros/optex/base/parameters.opm
index 5379617d6c..6e690e5214 100644
--- a/macros/optex/base/parameters.opm
+++ b/macros/optex/base/parameters.opm
@@ -58,7 +58,10 @@
\_doc -----------------------------
\secc Plain \TeX/ registers
- Allocate registers that are used just like in plain \TeX/.
+ Allocate registers that are used just like in plain \TeX/.\nl
+ \`\smallskipamount`, \`\medskipamount`, \`\bigskipamount`,
+ \`\normalbaselineskip`, \`\normallineskip`,\nl \`\normallineskiplimit`,
+ \`\jot`, \`\interdisplaylinepenalty`, \`\interfootnotelinepenalty`.
\_cod -----------------------------
% We also define special registers that function like parameters:
@@ -72,6 +75,15 @@
\_newcount\_interdisplaylinepenalty \_interdisplaylinepenalty=100
\_newcount\_interfootnotelinepenalty \_interfootnotelinepenalty=100
+\_public \smallskipamount \medskipamount \bigskipamount
+ \normalbaselineskip \normallineskip \normallineskiplimit
+ \jot \interdisplaylinepenalty \interfootnotelinepenalty ;
+
+ \_doc -----------------------------
+ Plain \TeX/ macros for setting parameters.
+ \`\normalbaselines`, \`\frenchspacing`, \`\nonfrenchspacing`.
+ \_cod -----------------------------
+
\_def\_normalbaselines{\_lineskip=\_normallineskip
\_baselineskip=\_normalbaselineskip \_lineskiplimit=\_normallineskiplimit}
@@ -80,10 +92,7 @@
\_def\_nonfrenchspacing{\_sfcode`\.=3000 \_sfcode`\?=3000 \_sfcode`\!=3000
\_sfcode`\:=2000 \_sfcode`\;=1500 \_sfcode`\,=1250 }
-\_public \normalbaselines \frenchspacing \nonfrenchspacing
- \smallskipamount \medskipamount \bigskipamount
- \normalbaselineskip \normallineskip \normallineskiplimit
- \jot \interdisplaylinepenalty \interfootnotelinepenalty ;
+\_public \normalbaselines \frenchspacing \nonfrenchspacing ;
\_doc -----------------------------
\secc Different settings than in plain \TeX/
@@ -91,9 +100,9 @@
Default \"baseline setting" is for 10\,pt fonts (like in plain \TeX/).
But `\typosize` and `\typoscale` macros re-declare it if another font size is used.
- The \`\nonfrenchspacing` is not set by default because
+ The \^`\nonfrenchspacing` is not set by default because
the author of \OpTeX/ is living in Europe.
- If you set `\enlang` hyphenation patterns then `\nonfrenchspacing`
+ If you set `\enlang` hyphenation patterns then \^`\nonfrenchspacing`
is set.
\_cod -----------------------------
diff --git a/macros/optex/base/plain-macros.opm b/macros/optex/base/plain-macros.opm
index 2f4d2da65c..6909abff09 100644
--- a/macros/optex/base/plain-macros.opm
+++ b/macros/optex/base/plain-macros.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \magstep {Macros from plain TeX <2021-09-24>} % preloaded in format
+\_codedecl \magstep {Macros from plain TeX <2022-02-19>} % preloaded in format
\_doc -----------------------------
The \`\dospecials` works like in plain TeX but does nothing with `_`.
@@ -356,8 +356,16 @@
\_def \_bye {\_par \_vfill \_supereject \_byehook \_end}
\_public \showhyphens \bye ;
+ \_doc -----------------------------
+ Plain \TeX/ reads `hyphen.tex` with patterns as `\language=0`. We do the same.
+ \_cod -----------------------------
+
+\_lefthyphenmin=2 \_righthyphenmin=3 % disallow x- or -xx breaks
+\_input hyphen % en(USenglish) patterns from TeX82
+
\_endcode % -------------------------------------
+2022-02-19 ... \input hyphen.tex moved here (format file is 80k smaller)
2021-09-24 ... \_unichars introduced
2021-04-09 ... \_public\showhyphens, bug fixed
2020-02-14 ... released
diff --git a/macros/optex/base/ref-file.opm b/macros/optex/base/ref-file.opm
index 95e960bc12..7f9c619009 100644
--- a/macros/optex/base/ref-file.opm
+++ b/macros/optex/base/ref-file.opm
@@ -59,6 +59,7 @@
\_gdef\_wref ##1##2{\_write\_reffile{\_bslash\_csstring##1##2}}%
\_immediate\_write\_reffile {\_pcent\_pcent\_space OpTeX <\_optexversion> - REF file}%
\_immediate\_wref \Xrefversion{{\_REFversion}}%
+ \_ifx\_refdecldata\_empty \_else \_refdeclwrite \_fi
\_gdef\_openref{}%
}
\_def\_ewref #1#2{\_edef\_ewrefA{#2}\_ea\_wref\_ea#1\_ea{\_ewrefA}}
@@ -88,7 +89,7 @@
You cannot define your own `.ref` macros before `.ref` file is read
because it is read in `\everyjob`. But you can define such macros by using
\`\refdecl``{<definitions of your ref macros>}`.
- This command immediately writes `<definitions of your ref macros>` to the
+ This command writes `<definitions of your ref macros>` to the
`.ref` file. Then the next lines written to the `.ref` file can include
your macros.
An example from CTUstyle2:
@@ -100,13 +101,23 @@
}
\endtt
We must read `<definitions of your ref macros>` while `#` has the catcode 12,
- because we don't want to duplicate each `#` in the `.ref` file.
+ because we don't want to duplicate each `#` in the `.ref` file.\nl
+ `\refdecl` appends its data to the \`\_refdecldata` macro. It is
+ pushed to the `.ref` file immediatelly only if the file is opened
+ already. Otherwise we are waiting to `\openref` because we don't want
+ to open the `.ref` file if it is unnecessary.
\_cod \_fin -----------------
-\_def\_refdecl{\_bgroup \_catcode`\#=12 \_refdeclA}
-\_def\_refdeclA #1{\egroup\_openref
- \_immediate\_write\_reffile {\_pcent\_space \_string \refdecl:}%
- \_immediate\_write\_reffile {\_detokenize{#1}}%
+\_def\_refdecldata{}
+\_def\_refdecl{\_bgroup \_catcode`\#=12 \_catcode`\\=12 \_catcode`\ =12 \_refdeclA}
+\_def\_refdeclA#1{\_egroup
+ \_ifx\_refdecldata\_empty\_else \_global\_addto\_refdecldata{^^J}\_fi
+ \_global\_addto\_refdecldata{#1}%
+ \_ifx\_openref\_empty \_refdeclwrite \_fi
+}
+\_def\_refdeclwrite{%
+ \_immediate\_write\_reffile{\_pcent\_space \_string\refdecl:^^J\_detokenize\_ea{\_refdecldata}}%
+ \_gdef\_refdecldata{}%
}
\_public \refdecl ;
diff --git a/macros/optex/base/references.opm b/macros/optex/base/references.opm
index 51b1b9591a..c26320b046 100644
--- a/macros/optex/base/references.opm
+++ b/macros/optex/base/references.opm
@@ -30,7 +30,7 @@
\_def\_Xlabel#1#2{\_sdef{_lab:#1}{#2}\_sxdef{_pgref:#1}{\_currpage}}
\_doc ----------------------------
- \`\label``[<label>]` saves the declared label to `\_lastlabel` and
+ \`\label``[<label>]` saves the declared label to \`\_lastlabel` and
\`\wlabel``{<text>}` uses the `\_lastlabel` and activates
`\_wref\_Xlabel{<label>}{<text>}`.
\_cod ----------------------------
diff --git a/macros/optex/base/slides.opm b/macros/optex/base/slides.opm
index 0fed12ac7f..4a006c38c1 100644
--- a/macros/optex/base/slides.opm
+++ b/macros/optex/base/slides.opm
@@ -1,6 +1,6 @@
% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \slideshow {Slides style for OpTeX <2021-04-22>} % loaded on demand by \slides
+\_codedecl \slideshow {Slides style for OpTeX <2022-03-08>} % loaded on demand by \slides
\_doc -----------------------------
Default margins and design is declared here.
@@ -56,14 +56,8 @@
For transparency we need to define special graphics states.
\_cod -----------------------------
-\_addextgstate{/Invisible <</ca 0 /CA 0>>}
-\_addextgstate {/Visible <</ca 1 /CA 1>>}
-
-\_def\_Invisible {\_pdfliteral{/Invisible gs}}
-\_def\_Visible {\_pdfliteral{/Visible gs}}
-\_def\_Transparent {\_Invisible \_aftergroup \_Visible}
-
-\_public \Invisible \Visible \Transparent ;
+\_def\_Transparent {\_transparency255 }
+\_public \Transparent ;
\_def\_use#1#2{\_ifnum\_layernum#1\_relax#2\_fi}
\_def\_pshow#1{\_use{=#1}\Red \_use{<#1}\_Transparent \_ignorespaces}
@@ -108,7 +102,7 @@
The `\bye` macro is redefined here as an alternative to `\pg.`.
\_cod -----------------------------
-\_def\_endslides{\_byehook \_end}
+\_def\_endslides{\_vfill \_supereject \_byehook \_end}
\_def\bye{\_pg.}
\_doc -----------------------------
@@ -298,6 +292,9 @@
The user manual of \OpTeX/ slides are in `op-slides.tex` file.
+2022-03-08 \Transparent re-defined, \Visible, \Invisible removed
+2022-03-05 \_addextgstate: new syntax used
+2022-03-03 \supereject in \_endslides before \_byehook added
2021-04-22 \adef* moved back, bug fixed in more-macros.opm
2021-04-21 \adef* removed from slides.opm, bug fixed
2021-04-19 \_byehook added to \_endslides.
diff --git a/macros/optex/base/table.opm b/macros/optex/base/table.opm
index d10e916bbe..fd66bd9ff5 100644
--- a/macros/optex/base/table.opm
+++ b/macros/optex/base/table.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \table {Basic macros for OpTeX <2021-08-04>} % preloaded in format
+\_codedecl \table {Basic macros for OpTeX <2022-02-25>} % preloaded in format
\_doc -----------------------------
The result of the \`\table``{<declaration>}{<data>}` macro is inserted into
@@ -225,9 +225,9 @@
We don't want vertical line after red A to be in red.
\_cod -----------------------------
-\_def\_tabdeclarec{\_the\_tabiteml{\_hfil##\_unsskip\_hfil}\_the\_tabitemr}
-\_def\_tabdeclarel{\_the\_tabiteml{\_relax##\_unsskip\_hfil}\_the\_tabitemr}
-\_def\_tabdeclarer{\_the\_tabiteml{\_hfil##\_unsskip}\_the\_tabitemr}
+\_def\_tabdeclarec{\_the\_tabiteml \_begingroup\_hfil##\_unsskip\_hfil\_endgroup \_the\_tabitemr}
+\_def\_tabdeclarel{\_the\_tabiteml \_begingroup ##\_unsskip\_hfil\_endgroup \_the\_tabitemr}
+\_def\_tabdeclarer{\_the\_tabiteml \_begingroup\_hfil##\_unsskip\_endgroup \_the\_tabitemr}
\_doc -----------------------------
The \`\_paramtabdeclarep``{<data>}` is invoked when `p{<data>}`
@@ -583,6 +583,7 @@ after the second one.
\_endinput
+2022-02-25 {}->\(begin|end)group in \_tabdeclare(l|r|c), bug when \tabitem(l|r)={$} fixed.
2021-08-04 \_patamtabdeclarep reimplemented.
2021-07-16 grouping based on colors via attributes.
2021-06-03 \scantextokens added to \_partabitem, bug fixed.
diff --git a/macros/optex/base/uni-lcuc.opm b/macros/optex/base/uni-lcuc.opm
index e56b3b9228..0cd8bfe6e5 100644
--- a/macros/optex/base/uni-lcuc.opm
+++ b/macros/optex/base/uni-lcuc.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_wterm{Setting lccodes and uccodes for Unicode characters <2021-04-07>} % preloaded in format.
+\_wlog{Setting lccodes and uccodes for Unicode characters <2021-04-07>} % preloaded in format.
\_isfile{UnicodeData.txt}\_iftrue
\_begingroup
diff --git a/macros/optex/base/unimath-codes.opm b/macros/optex/base/unimath-codes.opm
index ea40116ab8..ec0067890e 100644
--- a/macros/optex/base/unimath-codes.opm
+++ b/macros/optex/base/unimath-codes.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \_ncharrmA {Uni math codes <2022-01-06>} % preloaded on demand by \loadmath
+\_codedecl \_ncharrmA {Uni math codes <2022-02-22>} % preloaded on demand by \loadmath
\_doc -----------------------------
The control sequences for `\alpha`, `\beta` etc are redefined here.
@@ -108,18 +108,14 @@
\_protected\_def\_ttdigits {\_umathrange{0-9}71\_digitttO}
\_doc -----------------------------
- The \`\cal`, \`\bbchar`, \`\frak`, \`\script` and
- the \`\rm`, \`\bf`, \`\it`, \`\bi`, \`\tt` are defined here.
- Their \"8bit definitions" from the file `math-preload.opm`
- (section~\ref[math-preload]) are removed.\nl
+ The math alphabets \`\cal`, \`\bbchar`, \`\frak`, \`\script` are re-defined
+ here. The \`\_marm`, \`\_mabf`, \`\_mait`, \`\_mabi`, \`\_matt`
+ used in \^`\rm`, \^`\bf`, \^`\it`, \^`\bi` are re-defined too.\nl
You can redefine them again if you need different behavior (for example
you don't want to use sans serif bold in math). What to do:
- \begtt \advance\hsize by2em
- \_protected\_def\_bf
- {\_tryloadbf\_tenbf \_inmath{\_bfvariables\_bfgreek\_bfGreek\_bfdigits}}
- \_protected\_def\_bi
- {\_tryloadbi\_tenbi \_inmath{\_bivariables\_bigreek\_bfGreek\_bfdigits}}
- \_public \bf \bi ;
+ \begtt
+ \_protected\_def\_mabf {\_inmath{\_bfvariables\_bfgreek\_bfGreek\_bfdigits}}
+ \_protected\_def\_mabi {\_inmath{\_bivariables\_bigreek\_bfGreek\_bfdigits}}
\endtt
\`\_inmath` `{<cmds>}` applies `<cmds>` only in math mode.
\_cod -----------------------------
@@ -130,13 +126,11 @@
% For example, you need upright lowercase greek letters, you don't need
% \bf and \bi behave as sans serif in math, ...
-\_protected\_def\_rm {\_tryloadrm \_tenrm \_inmath{\_rmvariables \_rmdigits}}
-\_protected\_def\_it {\_tryloadit \_tenit \_inmath{\_itvariables \_itGreek}}
-\_protected\_def\_bf
- {\_tryloadbf \_tenbf \_inmath{\_bsansvariables \_bsansgreek \_bsansGreek \_bsansdigits}}
-\_protected\_def\_bi
- {\_tryloadbi \_tenbi \_inmath{\_bisansvariables \_bisansgreek \_bsansGreek \_bsansdigits}}
-\_protected\_def\_tt {\_tryloadtt \_tentt \_inmath{\_ttvariables \_ttdigits}}
+\_protected\_def\_marm {\_inmath{\_rmvariables \_rmdigits}}
+\_protected\_def\_mait {\_inmath{\_itvariables \_itGreek}}
+\_protected\_def\_mabf {\_inmath{\_bsansvariables \_bsansgreek \_bsansGreek \_bsansdigits}}
+\_protected\_def\_mabi {\_inmath{\_bisansvariables \_bisansgreek \_bsansGreek \_bsansdigits}}
+\_protected\_def\_matt {\_inmath{\_ttvariables \_ttdigits}}
\_protected\_def\_bbchar {\_bbvariables \_bbdigits}
\_protected\_def\_cal {\_calvariables}
\_protected\_def\_frak {\_frakvariables}
@@ -145,7 +139,7 @@
\_protected\_def\_script {\_rmvariables \_fam4 }
\_protected\_def\_mit {\_itvariables \_rmdigits \_itgreek \_rmGreek }
-\_public \rm \it \bf \bi \tt \bbchar \cal \frak \misans \mbisans \script \mit ;
+\_public \bbchar \cal \frak \misans \mbisans \script \mit ;
\_doc -----------------------------
Each Unicode slot carries information about math type. This is saved in
@@ -243,22 +237,34 @@
\_protected\_def \Vert {\_Udelimiter 0 1 "02016 }
\_protected\_def \Vvert {\_Udelimiter 0 1 "02980 }
-\_protected\_def \_overbrace #1{\mathop {\Umathaccent 7 1 "023DE{#1}}\limits}
-\_protected\_def \_underbrace #1{\mathop {\Umathaccent bottom 7 1 "023DF{#1}}\limits}
-\_protected\_def \_overparen #1{\mathop {\Umathaccent 7 1 "023DC{#1}}\limits}
-\_protected\_def \_underparen #1{\mathop {\Umathaccent bottom 7 1 "023DD{#1}}\limits}
-\_protected\_def \_overbracket #1{\mathop {\Umathaccent 7 1 "023B4{#1}}\limits}
-\_protected\_def \_underbracket #1{\mathop {\Umathaccent bottom 7 1 "023B5{#1}}\limits}
+\_protected\_def \_overbrace #1{\_mathop {\_Umathaccent 7 1 "023DE{#1}}\_limits}
+\_protected\_def \_underbrace #1{\_mathop {\_Umathaccent bottom 7 1 "023DF{#1}}\_limits}
+\_protected\_def \_overparen #1{\_mathop {\_Umathaccent 7 1 "023DC{#1}}\_limits}
+\_protected\_def \_underparen #1{\_mathop {\_Umathaccent bottom 7 1 "023DD{#1}}\_limits}
+\_protected\_def \_overbracket #1{\_mathop {\_Umathaccent 7 1 "023B4{#1}}\_limits}
+\_protected\_def \_underbracket #1{\_mathop {\_Umathaccent bottom 7 1 "023B5{#1}}\_limits}
\_public \overbrace \underbrace \overparen \underparen \overbracket \underbracket ;
-\_protected\def \widehat {\Umathaccent 7 1 "00302 }
-\_protected\def \widetilde {\Umathaccent 7 1 "00303 }
-\_protected\def \overleftharpoon {\Umathaccent 7 1 "020D0 }
-\_protected\def \overrightharpoon {\Umathaccent 7 1 "020D1 }
-\_protected\def \overleftarrow {\Umathaccent 7 1 "020D6 }
-\_protected\def \overrightarrow {\Umathaccent 7 1 "020D7 }
-\_protected\def \overleftrightarrow {\Umathaccent 7 1 "020E1 }
+\_protected\_def \widehat {\_Umathaccent 7 1 "00302 }
+\_protected\_def \widetilde {\_Umathaccent 7 1 "00303 }
+\_protected\_def \overleftharpoon {\_Umathaccent 7 1 "020D0 }
+\_protected\_def \overrightharpoon {\_Umathaccent 7 1 "020D1 }
+\_protected\_def \overleftarrow {\_Umathaccent 7 1 "020D6 }
+\_protected\_def \overrightarrow {\_Umathaccent 7 1 "020D7 }
+\_protected\_def \overleftrightarrow {\_Umathaccent 7 1 "020E1 }
+
+\_protected\_def \wideoverbar {\_Umathaccent 7 1 "00305 }
+\_protected\_def \widebreve {\_Umathaccent 7 1 "00306 }
+\_protected\_def \widecheck {\_Umathaccent 7 1 "0030C }
+\_protected\_def \wideutilde {\_Umathaccent bottom 7 1 "00330 }
+\_protected\_def \mathunderbar {\_Umathaccent bottom 7 1 "00332 }
+\_protected\_def \underleftrightarrow {\_Umathaccent bottom 7 1 "0034D }
+\_protected\_def \widebridgeabove {\_Umathaccent 7 1 "020E9 }
+\_protected\_def \underrightharpoondown {\_Umathaccent bottom 7 1 "020EC }
+\_protected\_def \underleftharpoondown {\_Umathaccent bottom 7 1 "020ED }
+\_protected\_def \underleftarrow {\_Umathaccent bottom 7 1 "020EE }
+\_protected\_def \underrightarrow {\_Umathaccent bottom 7 1 "020EF }
\_mathchardef\ldotp="612E
\_let\|=\Vert
@@ -443,6 +449,8 @@ for technical details about Unicode-math.
\_endinput
History:
+2022-02-22 \rm, \bf etc. moved to font-select, \_marm, \_mabf etc. introduced
+2022-02-08 several wide math accents added
2022-01-06 \varTheta corrected
2021-09-15 \square, \blacksquare defined
2021-04-25 \triangleright: typo fixed
diff --git a/macros/optex/base/unimath-table.opm b/macros/optex/base/unimath-table.opm
index 252c1fc26a..9c2556e303 100644
--- a/macros/optex/base/unimath-table.opm
+++ b/macros/optex/base/unimath-table.opm
@@ -165,7 +165,7 @@
\UnicodeMathSymbol{"020E4}{\enclosetriangle }{\mathord}{combining enclosing upward pointing triangle}%
\UnicodeMathSymbol{"020E7}{\annuity }{\mathaccent}{combining annuity symbol}%
\UnicodeMathSymbol{"020E8}{\threeunderdot }{\mathbotaccent}{combining triple underdot}%
-\UnicodeMathSymbol{"020E9}{\widebridgeabove }{\mathaccent}{combining wide bridge above}%
+\UnicodeMathSymbol{"020E9}{\widebridgeabove }{\mathaccentwide}{combining wide bridge above}%
\UnicodeMathSymbol{"020EC}{\underrightharpoondown }{\mathbotaccentwide}{combining rightwards harpoon with barb downwards}%
\UnicodeMathSymbol{"020ED}{\underleftharpoondown }{\mathbotaccentwide}{combining leftwards harpoon with barb downwards}%
\UnicodeMathSymbol{"020EE}{\underleftarrow }{\mathbotaccentwide}{combining left arrow below}%
diff --git a/macros/optex/base/usebib.opm b/macros/optex/base/usebib.opm
index 0b515fcfba..ab2f106811 100644
--- a/macros/optex/base/usebib.opm
+++ b/macros/optex/base/usebib.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \MakeReference {Reading bib databases <2021-04-30>} % loaded on demand by \usebib
+\_codedecl \MakeReference {Reading bib databases <2022-02-04>} % loaded on demand by \usebib
\_doc -----------------------------
Loading the `librarian.tex` macro package. See `texdoc librarian`
@@ -33,7 +33,6 @@
\_emergencystretch=.3\_hsize
\_def\_optexbibstyle{#2}%
\_setctable\_optexcatcodes
- \_ea \_skiptoendinput \_input languages.opm
\_input bib-#2.opm
\_the \_bibtexhook
\_ifcsname _mt:bib.and:\_cs{_lan:\_the\_language}\_endcsname \_else
@@ -55,7 +54,6 @@
\_egroup
\_fi
}
-\_long\_def\_skiptoendinput#1\_endinput{}
\_def\_readbibentry#1#{\_readbibentryA}
\_def\_readbibentryA#1{\_readbibentryB#1,,\_relax!.}
\_def\_readbibentryB#1#2,#3\_relax!.{\_addto\_citelist{\_citeI[#1#2]}}
@@ -367,6 +365,7 @@ character is sorted before `A`.
History:
--------
+2022-02-04 reading tail of languages.opm removed
2021-04-30 \RetrieveField declared as private, bug fixed.
2021-04-13 \bibpart implemented
2021-04-13 \_bibgl introduced (used by \slides)
diff --git a/macros/optex/base/verbatim.opm b/macros/optex/base/verbatim.opm
index e3d423691e..3c20ead1b6 100644
--- a/macros/optex/base/verbatim.opm
+++ b/macros/optex/base/verbatim.opm
@@ -1,6 +1,6 @@
%% This is part of the OpTeX project, see http://petr.olsak.net/optex
-\_codedecl \begtt {Verbatim <2021-04-18>} % preloaded in format
+\_codedecl \begtt {Verbatim <2022-02-22>} % preloaded in format
\_doc ----------------------------
The internal parameters
@@ -350,7 +350,7 @@
}
\_def\_testcommentchars #1\_iftrue{\_iffalse} % default value of \_testcommentchar
\_def\_printcomments{\_ttskip
- {\_catcodetable0 \_reloading \_rm \_everypar={}%
+ {\_catcodetable0 \_rm \_everypar={}%
\_noindent \_ignorespaces \_scantextokens\_ea{\_vcomments}\_par}%
\_ttskip
}
@@ -376,6 +376,7 @@
\_endinput
History:
+2022-02-22 ... \_reloading removed due to changes in font-select
2021-04-18 ... \_protrudechars=0 added
2021-04-07 ... \_savemathsb, \_restoremathsb introduced
2021-01-22 ... \activettchar changed to \verbchar
diff --git a/macros/optex/doc/optex-doc.pdf b/macros/optex/doc/optex-doc.pdf
index 85260e0fdc..00e43671f9 100644
--- a/macros/optex/doc/optex-doc.pdf
+++ b/macros/optex/doc/optex-doc.pdf
Binary files differ
diff --git a/macros/optex/doc/optex-doc.tex b/macros/optex/doc/optex-doc.tex
index 1c9af23aa9..daed675cd8 100644
--- a/macros/optex/doc/optex-doc.tex
+++ b/macros/optex/doc/optex-doc.tex
@@ -21,9 +21,9 @@
\tit Format Based on Plain \TeX/ and OPmac\fnotemark1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\hfill Version 1.05
+\hfill Version 1.06
-\centerline{\it Petr Olšák, 2020, 2021}
+\centerline{\it Petr Olšák, 2020, 2021, 2022}
\bigskip
\centerline{\url{http://petr.olsak.net/optex}}
diff --git a/macros/optex/doc/optex-math.tex b/macros/optex/doc/optex-math.tex
index 4c9d5dd01f..dbdd7800cf 100644
--- a/macros/optex/doc/optex-math.tex
+++ b/macros/optex/doc/optex-math.tex
@@ -576,6 +576,17 @@ There are more scalable accents in Unicode math fonts:
\x`\overleftrightarrow` $\overleftrightarrow{abc}$,
\x`\overleftharpoon` $\overleftharpoon{abc}$,
\x`\overrightharpoon` $\overrightharpoon{abc}$,
+\x`\wideoverbar` $\wideoverbar{abc}$,
+\x`\widebreve` $\widebreve{abc}$,
+\x`\widecheck` $\widecheck{abc}$,\nl
+\x`\wideutilde` $\wideutilde{abc}$,
+\x`\mathunderbar` $\mathunderbar{abc}$,
+\x`\underleftrightarrow` $\underleftrightarrow{abc}$,
+\x`\widebridgeabove` $\widebridgeabove{abc}$,\nl
+\x`\underrightharpoondown` $\underrightharpoondown{abc}$,
+\x`\underleftharpoondown` $\underleftharpoondown{abc}$,
+\x`\underleftarrow` $\underleftarrow{abc}$,\nl
+\x`\underrightarrow` $\underrightarrow{abc}$.
\secc Fixed math accents
@@ -703,19 +714,17 @@ previous listing of math alphabets and sets as default:
Moreover, it defines the alphabet selectors at user level (see section 1.3.3
of the \OpTeX/ manual). For example
\begtt \typosize[10/12]
-\def\rm {\_tryload\_tenrm \_inmath{\_rmavariables \_rmdigits}}
+\_def\_marm {\_inmath{\_rmavariables \_rmdigits}} % \_mamrm is used in \rm
\endtt
%
-The first part
-\new \OpTeX/
-`\_tryload\_tenrm` is applicable for text fonts and the
-`\_inmath` part is processed only in math mode and sets the math alphabets.
-You can see the file `unimath-codes.opm` where all user-level selectors are
+`\_inmath` runs it parameter only in math mode and sets the math alphabets.
+You can see the file `unimath-codes.opm` where all these selectors are
defined. You can redefine them. For example, \OpTeX/ defines `\bf` as a math
alphabet selector that selects sans serif bold in math. This is the common
-notation for vectors, tensors, and matrices. If you dislike this, then you can define:
+notation for vectors, tensors, and matrices. If you dislike this (maybe
+because plain \TeX/ has different defaults), then you can define:
\begtt \typosize[10/12]
-\def\bf {\_tryloadbf\_tenbf \_inmath{\_bfvariables\_bfdigits\_bfgreek\_bfGreek}}
+\_def\_mabf {\_inmath{\_bfvariables\_bfdigits\_bfgreek\_bfGreek}} % used in \bf
\endtt
diff --git a/macros/optex/doc/optex-techdoc.tex b/macros/optex/doc/optex-techdoc.tex
index 1748e9f3ea..5a51ba4d8a 100644
--- a/macros/optex/doc/optex-techdoc.tex
+++ b/macros/optex/doc/optex-techdoc.tex
@@ -117,7 +117,7 @@ The second bundle of \OpTeX/ macros is here.
\printdoctail keyval.opm
\printdoc keyval.opm
-\sec Plain \TeX/ macros
+\sec[plain] Plain \TeX/ macros
All macros from plain \TeX/ are rewritten here.
Differences are mentioned in the documentation below.
\printdoc plain-macros.opm
@@ -128,8 +128,8 @@ Differences are mentioned in the documentation below.
\printdoctail fonts-resize.opm
\secc[fresize] Implementation of resizing
-Only \"resizing" macros are implemented here. Other aspects of Font
-Selection System and their implementation are desribed in
+Only \"resizing" macros and \^`\initunifonts` are implemented here.
+Other aspects of Font Selection System and their implementation are desribed in
section~\ref[fselect].
\printdoc fonts-resize.opm
@@ -248,11 +248,12 @@ The `\margins` macro is documented in the section~\ref[marg].
\sec Multilingual support
\secc Lowercase, uppercase codes
\printdoctail uni-lcuc.opm
-\secc Hyphenations
-\printdoc hyphen-lan.opm
-\printdoctail hyphen-lan.opm
+%\printdoc hyphen-lan.opm
+%\printdoctail hyphen-lan.opm
\secc[langphrases] Multilingual phrases and quotation marks
\printdoc languages.opm
+\secc[langdecl] Languages declaration
+\printdoc lang-decl.opm
\sec[others] Other macros
Miscellaneous macros are here.
@@ -273,12 +274,6 @@ The allocations are declared in subsection~\ref[lua-alloc], calbacks are
implemented in subsection~\ref[callbacks] and handling with colors can be
found in the subsection~\ref[lua-colors].
-\newtoks \_hisyntaxlua
-\_hisyntaxlua={%
- \_hicolor C \Green
- \_replfromto {--}{^^J} {\z C{--#1}^^J}%
-}
-
{\everytt={\typosize[8/10]\_let\_printverbline=\_printcodeline \medskip}
\commentchars-- \def\docfile{optex.lua} \ttline=-1
\_def\_printcomments{\_medskip
diff --git a/macros/optex/doc/optex-userdoc.tex b/macros/optex/doc/optex-userdoc.tex
index 3fefc22657..3e623faa24 100644
--- a/macros/optex/doc/optex-userdoc.tex
+++ b/macros/optex/doc/optex-userdoc.tex
@@ -1343,7 +1343,7 @@ using this empty internal name.
\sec Graphics
%%%%%%%%%%%%%
-\secc Colors
+\secc Colors, transparency
%%%%%%%%%%%
\OpTeX/ provides a small number of color selectors:
@@ -1369,7 +1369,8 @@ or one grey component (using \^`\setgreycolor`). For example
\def \DarkGrey {\setgreycolor{.1}}
\endtt
-\new
+The color selectors work locally in groups like font selectors.
+
The command \^`\morecolors` reads more definitions of color selectors from
the \LaTeX/ file `x11nam.def`.
There are about 300 color names like
@@ -1377,10 +1378,6 @@ There are about 300 color names like
name, then the letters B, C, etc. are appended to the name in \OpTeX/. For example
`\Chocolate` is Chocolate1, `\ChocolateB` is Chocolate2 etc.
-\new
-The color selectors work locally in groups by default. See
-the technical documentation, section~\ref[colors] for more information.
-
The basic colors \^`\Blue`, \^`\Red`, \^`\Cyan`, \^`\Yellow` etc.\ are defined
with CMYK components using \^`\setcmykcolor`.
On the other hand, you can define a color with three
@@ -1397,7 +1394,6 @@ presentations). On the other hand, CMYK makes colors more true\fnote
using ICC profile for your printer.}
for printing.
-\new
You can define your color by a linear combination of previously defined colors using
\^`\colordef`. For example:
@@ -1435,6 +1431,14 @@ The `\coloron` macro can be defined as follows:
\coloron\Yellow\Brown{Brown text on yellow background}
\endtt
+The \^`\transparency``<number>` sets the transparency amount of following
+typesetting material until the current group is closed.
+The <number> must be in the range 0..255,
+zero means no transparency (solid objects), 255 means
+full transparency (invisible objects). You can see the effect when
+overlapping one object over another.
+
+
\secc Images
%%%%%%%%%%%
@@ -1613,12 +1617,12 @@ available in your \TeX/ system.
\new
Only USenglish patterns (original from Plain \TeX/) are preloaded.
Hyphenation patterns of all other languages are loaded on demand when you first use
-the `\<iso-code>lang` command in your document.
+the `\<lang-id>lang` command in your document.
For example \^`\delang` for German, \^`\cslang` for
-Czech, \^`\pllang` for Polish. The <iso-code> is a shortcut
+Czech, \^`\pllang` for Polish. The <lang-id> is a shortcut
of the language (mostly from ISO 639-1).
-You can list all available languages by \^`\langlist`
-macro. This macro prints now:
+You can list all available languages including their <lang-id>'s by the
+\^`\langlist` macro. It prints now:
\medskip
{\typosize[8.5/11.5]\emergencystretch=4em \hbadness=4000
@@ -1741,7 +1745,7 @@ macros if you need them. On the other hand, if your source document is structure
to more files (with individual chapters or sections), use simply the `\input` primitive.
The macro packages intended to \OpTeX/ have the name `*.opm`.
-The following packages are distributed as part of \OpTeX/:
+The list of packages supported by \OpTeX/ follows. Most of them are directly part of \OpTeX/:
\begitems
* `qrcode.opm` enables to create QR codes.
* `tikz.opm` does `\input tikz.tex`, i.e.\ loads Ti{\it k\/}Z. It adds \OpTeX/-specific code.
@@ -1749,7 +1753,9 @@ The following packages are distributed as part of \OpTeX/:
includes settings for microtypographic extensions (protrusions+expanding fonts).
* `vlna.opm` enables to protect of one-letter prepositions and more things automatically.
* `emoji.opm` defines `\emoji{<name>}` command for colored emoticons.
-* `plain-at.opm` defines the old names from plain \TeX/.
+* \ulink[https://github.com/vlasakm/optex-minim]{\tt minim-mp.opm} enables
+ `\directmetapost` using \ulink[https://ctan.org/pkg/minim-mp]{\tt minim-mp}
+ and \ulink[https://ctan.org/pkg/minim]{\tt minim} packages.
* \ulink[https://ctan.org/tex-archive/macros/luatex/optex/pdfextra/pdfextra-doc.pdf]{\tt pdfextra.opm}
allows the use of many extra features from PDF standard (by M. Vlasák).
\enditems
@@ -1956,10 +1962,10 @@ documentation.
All macros of Plain \TeX/ are re-written in \OpTeX/. Common macros should
work in the same sense as in original Plain \TeX. Internal control sequences
-like `\p@` or `\f@@t` are removed and mostly replaced by control sequences
-prefixed by `_` (like `\_this`). If you need to use the basic set of old Plain
-\TeX/ control sequences like `\p@` (for example you are reading an old macro file),
-use `\load[plain-at]`.
+like `\f@@t` are removed and mostly replaced by control sequences
+prefixed by `_` (like `\_this`). Only a basic set of old Plain
+\TeX/ control sequences like `\p@`, `\z@`, `\dimen@` are provided
+but not recommended for new macros.
All primitives and common macros have two
control sequences with the same meaning: in prefixed and unprefixed form.
diff --git a/macros/optex/pkg/minim-mp.opm b/macros/optex/pkg/minim-mp.opm
new file mode 100644
index 0000000000..72462d86c2
--- /dev/null
+++ b/macros/optex/pkg/minim-mp.opm
@@ -0,0 +1,16 @@
+% This is macro package used by OpTeX, see http://petr.olsak.net/optex
+% minim-mp.opm, Michal Vlasák <lahcim8@gmail.com>, 2022
+% see also https://github.com/vlasakm/optex-minim
+
+\_codedecl \_minimmp_used {Minim-PDF for \OpTeX/}
+\_namespace{minimmp}
+
+\_def\.used{}
+
+\_load[minim]
+
+\_input minim-mp
+
+\_endnamespace
+\_endcode
+
diff --git a/macros/optex/pkg/minim-pdf.opm b/macros/optex/pkg/minim-pdf.opm
new file mode 100644
index 0000000000..3c4c0c7331
--- /dev/null
+++ b/macros/optex/pkg/minim-pdf.opm
@@ -0,0 +1,96 @@
+% This is macro package used by OpTeX, see http://petr.olsak.net/optex
+% minim-pdf.opm, Michal Vlasák <lahcim8@gmail.com>, 2022
+% see also https://github.com/vlasakm/optex-minim
+
+\_codedecl \nohyphlang {Minim-PDF for \OpTeX/}
+\_namespace{minimpdf}
+
+ \_doc
+ Before loading `minim-pdf` we do a few preparations. Most importantly
+ adjusting core of minim, which is done in `minim.opm`.
+ \_cod
+
+\_load[minim]
+
+\_catcode`\@=11
+\_catcode`\:=11
+
+ \_doc
+ Minim hooks into language mechanism with standard \eTeX/
+ `\uselanguage@hook`. It can then translate language names (e.g
+ \"SwissGerman") into BCP 47 language identifiers (e.g. \"de-ch-1901", the
+ naming scheme of the `hyph-utf8` package) which are then embedded into
+ tagged PDFs. For simplicity, we use what \OpTeX/ calls \"lang-tag" (e.g.
+ \"de") which may not be precise enough (i.e. the right thing for Swiss
+ German would be \"de-ch") and may even be wrong(?).
+
+ When e.g. `\gswlang` (Swiss German) is used, `\uselang{gsw}\_gswPatt<...>`
+ is called in \OpTeX/. We use the fact, the there is mapping from language
+ register numbers (`\_gswPatt`) to \"lang-tag"s (\"de"). To avoid confusion
+ with any other language mappings, we prefix what we give to minim with `o:`.
+
+ We also don't incorporate the \eTeX/ `\uselanguage@hook`, but call minim's
+ callback directly, maybe it will cause less trouble with other packages
+ (since we don't pass standard names to the callback) and also gives a better
+ idea of what happens.
+ \_cod
+
+\_let\.uselang=\_uselang
+\_def\_uselang#1#2#3#4{%
+ \.uselang{#1}{#2}{#3}{#4}%
+ % just set this everytime, doesn't hurt
+ \setlanguagecode{o:#1}{\_cs{_lan:\_the#2}}%
+ \minim:uselanguagecallback{o:#1}%
+}
+
+ \_doc
+ If not detected, a few \"dummy" languages would be (in erroneous ways)
+ defined by minim: like \"nohyph" and \"undetermined". We define a few dummy
+ control sequences, to make minim not define them, since we define them
+ ourselves below. They are used in standard way, but their \"ISO codes" are weird:
+
+ \begtt
+ \nohyphlang
+ \nolanglang
+ \uncodedlang
+ \undeterminedlang
+ \endtt
+ \_cod
+
+\_let\lang@nohyph=\_empty
+\_let\lang@nolang=\_empty
+\_let\lang@uncoded=\_empty
+\_let\lang@undetermined=\_empty
+
+\_preplang nohyph nohyph und {} 11
+\_preplang nolang nolang und {} 11
+\_preplang uncoded uncoded und {} 11
+\_preplang undetermined undetermined und {} 11
+
+ \_doc
+ Now we actually load `minim-pdf`.
+ \_cod
+
+\_input minim-pdf
+
+ \_doc
+ Users aren't supposed to define custom languages in \OpTeX/, forbid that.
+ \_cod
+
+\_def\_tmp{\errmessage{don't use this command with OpTeX}}
+\_let\newnamedddialect=\_tmp
+\_let\newnameddllanguage=\_tmp
+
+ \_doc
+ Since a language may already be set (at least the default Knuth english),
+ then we need to tell minim about it, by reexecuting the language command
+ (like `\enlang`), thus calling into minim through the above mentioned hook.
+ \_cod
+
+% set the current language again to let minim know what it is
+\_cs{\_cs{_lan:\_the\_language}lang}
+
+
+% catcodes changes don't propage, since this file is loaded with \opinput
+\_endnamespace
+\_endcode
diff --git a/macros/optex/pkg/minim.opm b/macros/optex/pkg/minim.opm
new file mode 100644
index 0000000000..79298552d1
--- /dev/null
+++ b/macros/optex/pkg/minim.opm
@@ -0,0 +1,188 @@
+% This is used by OpTeX packages minim-mp, minim-pdf, see http://petr.olsak.net/optex
+% minim.opm, Michal Vlasák <lahcim8@gmail.com>, 2022
+% see also https://github.com/vlasakm/optex-minim
+
+\_def\_optexminim_version{0.1}
+\_codedecl \optexminim_loaded {Minim compatibility for \OpTeX/ (v\_optexminim_version)}
+
+ \_doc
+ When we want to use minim with \OpTeX/, we need to accomodate for their
+ differences. Particularly in allocations. Because of Esger Renkema's
+ graciousness, minim has been modified in ways that make it easier to
+ integrate with \OpTeX/. So even when the two formats normally disagree on a
+ lot of core things (allocations, callbacks) they can end up working together.
+
+ \OpTeX/ defines most allocation macros in `alloc.opm` and some Lua
+ allocation functions in `optex.lua`. Minim \"packages" are not standalone,
+ they all depend on core routines defined in `minim-alloc.tex` and
+ `minim-alloc.lua` respectively. Minim as a format preloads a stripped
+ version of `etex.src` so the Lua code makes some assumptions about that
+ (i.e. expects local allocators).
+
+ Both \OpTeX/ and minim want to make it possible to register more functions
+ for a single callback, by chaining their calls and `callback.register()`ing
+ only a proxy function. While minim stays close to the `callback` interface
+ from \LuaTeX/, \OpTeX/ is a subset of the \LaTeX/ `luatexbase` interface.
+ But minim now can work on top of ltluatex by using its functions instead of
+ `callback.register()`, so we don't have to do anything to support it in
+ \OpTeX/!
+
+ Firstly, because we only change what is defined by others, we actually need
+ a dummy macro for `\_codedecl`, to prevent loading this file more than once.
+ \_cod
+
+\_catcode`\@=11
+% dummy macro to signalize that we are loaded
+\_let\optexminim_loaded=\empty
+
+ \_doc
+ In general, there are four allocator types expected by minim:
+
+ \begitems
+ * Knuth allocators from `plain.tex` (like `\newcount`). These are already
+ defined by \OpTeX/. Although minim itself sets the old `\allocationnumber`
+ counter, which is not even defined in \OpTeX/.
+
+ * Global allocators from `etex.src` (like `\globcount`). These are not
+ defined by \OpTeX/, since they no longer make sense (\LuaTeX/ doesn't use
+ sparse arrays for registers). Minim defines them to be the classic Knuth
+ allocators if it doesn't find them on the TeX side, but expects them from
+ the Lua side.
+
+ * Local allocators from `etex.src` (like `\loccount`). Concept of local
+ allocators is completely missing in \OpTeX/. The semantics of local
+ allocation in Lua is weird too, so we try to avoid these, since minim also
+ doesn't define their Lua variants.
+
+ * \LuaTeX/ allocators from `ltluatex.tex` (like `\newattribute`). Subset of
+ these is in \OpTeX/ (only atributes, which are also allocatable in Lua, and
+ catcode tables). But minim tries to be compatible with \LaTeX/ and patches
+ its routines if it detects them.
+ \enditems
+
+ For defining \TeX/ commands implemented in Lua, \OpTeX/ has
+ `define_lua_command`, which actually does the allocation and definition at
+ the same time, and allows to do so only from Lua end.
+
+ Historically (in my opinion unfortunately) \LaTeX/ made the allocations of
+ these functions available from \TeX/ end, and the \"lua define" operation is
+ thus a two step process which involves synchronization with \TeX/.
+
+ `minim-alloc` actually defines a `luadef` function which is like
+ `define_lua_command`, but is backed by the minim allocator. To make this
+ work, we just need to set the \LaTeX/ register to the index of last
+ allocated function, since it allocates at counter plus one. Then minim will
+ start where \OpTeX/ stopped, and we will later define `define_lua_command`
+ to be just minim's `luadef`.
+
+ We tell the number of allocated function by going through the table of
+ actually used functions. This is not that robust, because while
+ `define_lua_command` allocates sequentially, the provided functions may be
+ `nil`, which breaks the code below.
+ \_cod
+
+\_newcount\allocationnumber
+
+% for synchronisation of allocated Lua functions
+\_ea\_newcount\_csname e@alloc@luafunction@count\_endcsname
+
+\directlua{
+ local function_table = lua.get_functions_table()
+ % minim allocates at count + 1 for "new" allocators, so this works
+ tex.setcount("global", "e@alloc@luafunction@count", \csstring\#function_table)
+}
+
+ \_doc
+ We also get PDF resources out of the way now. Minim is ready to use \OpTeX's
+ PDF resource management, but also has compatibility layer for PGF, which is
+ not needed in \OpTeX/. We prevent loading the problematic \TeX/ file.
+ \_cod
+
+\_let\minimpdfresourcesloaded=\_empty
+
+ \_doc
+ The preparations are over. We load `minim-alloc.tex`.
+ \_cod
+
+\input minim-alloc
+
+ \_doc
+ Both \LaTeX/ and the minim inspired catcode table allocators initialize the
+ catcode tables with `\initcatcodetable` (i.e. ini\TeX/ catcodes). \OpTeX/
+ merely allocates the registers. \LuaTeX/ doesn't allow to activate
+ unitialized catcode table, therefore activation with either
+ `\initcatcodetable` or `\savecatcodetable` is necessary before use. To
+ ensure compatibility with foreign macros, we also issue `\initcatcodetable`
+ on allocation in the public version of `\newcatcodetable`.
+ \_cod
+
+\_def\newcatcodetable#1{\_newcatcodetable#1\_initcatcodetable#1}
+
+ \_doc
+ By now, the Knuthian allocators are dealt with. \eTeX/ global and local
+ allocators are undefined, but the global ones are expected in minim's Lua
+ code with their hardcoded counter register numbers. This is unacceptable,
+ since in this range (`\count260` to `\count266`) \OpTeX/ has already made
+ allocations. Thus we need to replace these Lua functions with similar
+ definitions. For some, \OpTeX/ also has a different idea whether the counter
+ represent the last or next allocated register number, so we correct that as
+ well.
+
+ We also don't forget to actually set `define_lua_command` to be minim's
+ `luadef`.
+ \_cod
+
+\directlua{
+ local minimalloc = require("minim-alloc")
+
+ define_lua_command = minimalloc.luadef
+
+ % these are allocators already defined in OpTeX that we need to repair
+ local toreplace = {
+ "count",
+ "dimen",
+ "skip",
+ "muskip",
+ "box",
+ "toks",
+ "marks",
+ "attribute",
+ "catcodetable",
+ }
+
+ for _, alloc in ipairs(toreplace) do
+ local cache = {}
+ local countername = string.format("_\_pcent salloc", alloc)
+ minimalloc["new_"..alloc] = function(id)
+ local n = cache[id]
+ if not n then
+ n = tex.getcount(countername) + 1
+ tex.setcount("global", countername, n)
+ if id then
+ cache[id] = n
+ end
+ minimalloc.log(
+ "\_nbb\_pcent s\_pcent d : \_pcent s", alloc, n, id or "<unnamed>")
+ end
+ return n
+ end
+ end
+}
+
+ \_doc
+ We also need to do something about `minim-hooks.tex`, which hooks into
+ `\shipout`, but the default \OpTeX/ output routine (and perhaps also the
+ user ones) use `\_shipout`.
+
+ Minim also adds to `\everypar`, but that is fine.
+ \_cod
+
+\_let\shipout\_shipout
+
+\input minim-hooks
+
+\_catcode`\:=11
+\_let\_shipout\minim:shipout:new
+
+% catcodes changes don't propage, since this file is loaded with \opinput
+\_endcode
diff --git a/macros/optex/pkg/plain-at.opm b/macros/optex/pkg/plain-at.opm
index 3277d7b24e..47495d2f2f 100644
--- a/macros/optex/pkg/plain-at.opm
+++ b/macros/optex/pkg/plain-at.opm
@@ -2,6 +2,11 @@
\_codedecl \_undefined {Obscure @ names from plain TeX <2020-05-22>}
+\_opwarning{plain-at.opm is obsolete, ignored. @-names defined in the format}
+
+\_endcode
+
+% Old version of plain-at.opm follows:
\_setctable \_optexcatcodes
% PlainTeX obscure names:
\_catcode`\@=11
@@ -28,6 +33,7 @@
\_def\n@space{\_nulldelimiterspace\z@ \m@th}
\_newdimen\p@renwd \p@renwd=8.75pt
\_def\alloc@#1#2#3#4#5{\_allocator#5{\_csstring#2}#3}
+\_catcode`\@=12
\_restorectable
\_endcode
@@ -41,3 +47,6 @@ can load this file in such cases. For example:
\endtt
\_endinput
+
+2022-02-15: marked obsolete
+2020-12-20: released
diff --git a/macros/optex/pkg/tikz.opm b/macros/optex/pkg/tikz.opm
index da2657d5fc..84743a18b6 100644
--- a/macros/optex/pkg/tikz.opm
+++ b/macros/optex/pkg/tikz.opm
@@ -1,17 +1,88 @@
% This is macro package used by OpTeX, see http://petr.olsak.net/optex
-\_codedecl \tikzpicture {TikZ for OpTeX <2021-07-15>}
+\_codedecl \tikzpicture {TikZ for OpTeX <2022-02-11>}
+\_namespace{pgf}
+\_catcode`\@=11
\_doc
This package is \OpTeX/'s compatibility layer for PGF/TikZ. When users do
`\load[tikz]` they expect `tikz.tex` to be loaded, but this file gets loaded
instead. It does load `tikz.tex`, but also does fixups.
- First we load TikZ itself.
+ We want to change some definitions in `pgfutil-plain.def` and
+ `pgfsys-luatex.def`. We need to do that in right times, so we manually
+ emulate some files from PGF to ensure we do things in the correct order.
+ \_cod
+
+%tikz.tex
+% pgf.tex
+% pgfrcs.tex
+% pgfutil-common.tex
+% pgfutil-common-lists.tex
+% pgfutil-plain.tex
+% pgfrcs.code.tex
+% pgfcore.tex
+% pgfsys.tex
+% pgfsrcs.tex
+% pgfsys.code.tex
+% driver
+% pgfcore.code.tex
+% pgffor.tex
+% pgfrcs.tex
+% pgfkeys.code.tex
+% pgffor.code.tex
+% tikz.code.tex
+\def\pgfrcsincluded{}
+\input pgfutil-common.tex
+
+ \_doc
+ We load macros from `pgfutil-plain.def` because they are most
+ similar to macros we actually need. But there are several differences.
+ We don't want to load the output routine hack realized by
+ `\input atbegshi.sty\relax \AtBeginShipout{...}` in `pgfutil-plain.def`.
+ This is the reason why we re-define `\input` temporarily.
\_cod
-\_input tikz.tex
+\def\input#1\relax{}
+\def\AtBeginShipout#1{}
+\_input pgfutil-plain.def
+\let\input=\_input
+\let\AtBeginShipout=\_undefined
+\let\end=\_end
+
+ \_doc
+ More changes should be done for macros loaded from `pgfutil-plain.def`.
+ These changes follows.
+ \_cod
+
+% Writing to auxiliary files, customized
+
+\_let\pgfutil@aux@read@hook=\_relax
+\_def\pgfutil@writetoaux#1{}
+
+
+% Driver detection, customized
+
+\def\pgfsysdriver{pgfsys-luatex.def}
+
+
+% Font stuff, \_typosize to fixed sizes used, math fonts are scaled too
+
+\def\pgfutil@font@tiny{\_typosize[5/]}
+\def\pgfutil@font@scriptsize{\_typosize[7/]}
+\def\pgfutil@font@footnotesize{\_typosize[8/]}
+\def\pgfutil@font@small{\_typosize[9/]}
+\def\pgfutil@font@normalsize{\_typosize[10/]}
+\def\pgfutil@font@large{\_typosize[12/]}
+\def\pgfutil@font@Large{\_typosize[14.4/]}
+\def\pgfutil@font@huge{\_typosize[20.74/]}
+\def\pgfutil@font@Huge{\_typosize[24.88/]}
+
+\def\pgfutil@font@normalfont{\_rm}
+\def\pgfutil@font@itshape{\_it}
+\def\pgfutil@font@bfseries{\_bf}
+\def\pgfutil@selectfont{\_rm}
\_doc
PGF's `\pgfutil@everybye` hooks into `\end`, but normally \OpTeX/ uses the
@@ -19,9 +90,34 @@
hopefully be preserved by all \OpTeX/ macro writers.
\_cod
-\_addto\_byehook{\_the\_cs{pgfutil@everybye}}
+\_addto\_byehook{\_the\pgfutil@everybye}
\_doc
+ Make PGF/TikZ use our PDF resource management. Our functions expect split
+ key and value.
+ \_cod
+
+\_def\.kvsplit#1{\_ea\.kvsplitA\_expanded{#1}\_end}
+\_def\.kvsplitA#1/#2 #3\_end{{#2}{#3}}
+
+\_def\pgfutil@addpdfresource@extgs{\_addpageresource{ExtGState}\.kvsplit}
+\_def\pgfutil@addpdfresource@colorspaces{\_addpageresource{ColorSpace}\.kvsplit}
+\_def\pgfutil@addpdfresource@patterns{\_addpageresource{Pattern}\.kvsplit}
+\_let\pgfutil@setuppdfresources=\_relax
+\_let\pgf@sys@pdf@check@resources=\_relax
+\_def\pgf@sys@pdf@possible@resources{\_pageresources}
+
+\_input pgfrcs.code.tex
+\ProvidesPackageRCS{pgf.tex}
+\_input pgfcore.tex
+\usepgfmodule{shapes,plot}
+\_input pgffor.tex
+\_input tikz.code.tex
+
+ \_doc
+ More changes should be done for macros loaded from `pgfsys-luatex.def`.
+ These changes follows.
+
There is a general disagreement about the use/meaning of `\hoffset` and
`\voffset` -- \LaTeX/, the \LaTeX/ `crop`
package\fnote{\url{https://www.ctan.org/pkg/crop}}, TikZ, and \OpTeX/ all
@@ -34,6 +130,23 @@
$(0, 0)$).
\_cod
-\_sdef{pgf@sys@pdf@mark@pos@pgfpageorigin}{\pgfpointorigin}
+\_def\pgf@sys@pdf@mark@pos@pgfpageorigin{\pgfpointorigin}
+\_refdecl{%
+ \_def\.Xpgfsysmark#1#2#3{\_sdef{pgf@sys@pdf@mark@pos@#1}{\pgfqpoint{#2sp}{#3sp}}}%
+}
+
+\_def\pgfsys@markposition#1{%
+ \_openref
+ \_savepos
+ \_edef\.tmp{#1}%
+ \_ea\_wref\_ea\.Xpgfsysmark\_ea{\_ea{\.tmp}{\_the\_lastxpos}{\_the\_lastypos}}%
+}
+
+% don't worry about reseting catcodes - we are at the end of \opinput'ed file
+\_endnamespace
\_endcode
+
+History:
+2022-03-05 resources management re-implemented
+2021-07-15 released
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index 041c9d2aac..781f195f5c 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -48,6 +48,7 @@ $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,
@@ -142,6 +143,7 @@ $mirrors = {
},
'Poland' => {
'https://ctan.gust.org.pl/tex-archive/' => 1,
+ 'https://polish-mirror.evolution-host.com/ctan/' => 1,
'https://repo.skni.umcs.pl/ctan/' => 1,
'https://sunsite.icm.edu.pl/pub/CTAN/' => 1,
},
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index bbfa8cced1..a2da7b7732 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,11 +26,11 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2021
-depend revision/62577
+depend revision/62614
name 00texlive.image
category TLCore
-revision 62567
+revision 62606
shortdesc TeX Live files only in the source repository
longdesc The files here are not copied by the installer and containers
longdesc are not built for them; they exist only in the source
@@ -3791,7 +3791,6 @@ runfiles size=12540
tlpkg/tlpsrc/stanli.tlpsrc
tlpkg/tlpsrc/starfont.tlpsrc
tlpkg/tlpsrc/startex.tlpsrc
- tlpkg/tlpsrc/startlatex2e.tlpsrc
tlpkg/tlpsrc/statex.tlpsrc
tlpkg/tlpsrc/statex2.tlpsrc
tlpkg/tlpsrc/statistics.tlpsrc
@@ -4545,7 +4544,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 62542
+revision 62579
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
@@ -34215,7 +34214,7 @@ catalogue-topics presentation
name beamertheme-trigon
category Package
-revision 61020
+revision 62597
shortdesc A modern, elegant, and versatile theme for Beamer
relocated 1
longdesc This package provides a modern, elegant and versatile theme for
@@ -34235,11 +34234,11 @@ longdesc Most options from Metropolis have been ported to Trigon in
longdesc order to improve customization and ease-of-use. Trigon also
longdesc includes different styles and layouts for the main title page,
longdesc the section page and the default slide background.
-containersize 6060
-containerchecksum f5c1d49ffb30e06b7494d07fb8762e8eb9499f2960d0775b0067ab524817ce2a7092993438e8dfc4aa243ba057a545179b042762a2116c9afad73b65e53a7f15
-doccontainersize 578520
-doccontainerchecksum 763f9f0b3739995950dfee6e3d5c262c29781f9c1b0ae77f4dcda33022889a80091010b706b8cb3a52ac091ccad8abc2b7de510d7c3f78605a5fe19180b6fc33
-docfiles size=264
+containersize 6056
+containerchecksum b9c687e415f632bd0a491dfdce66edf1003530d00b5f335f0eb9c5a171fcc7d15f8550044907edcf0469bf00075276a373fcacbff8bce502577b1cc269c3f1e2
+doccontainersize 586384
+doccontainerchecksum 5c620091210abf7d027683a749427a31a4d4fc5fb2dd81bb06c7c0bb4036baf2e4ee250ccf53de074d2c14b5247f8c86b35084b9f59fc3f891ae57162eca7478
+docfiles size=263
RELOC/doc/latex/beamertheme-trigon/README.md details="Readme"
RELOC/doc/latex/beamertheme-trigon/frames.tex
RELOC/doc/latex/beamertheme-trigon/library.jpg
@@ -34248,8 +34247,8 @@ docfiles size=264
RELOC/doc/latex/beamertheme-trigon/trigon_full.pdf
RELOC/doc/latex/beamertheme-trigon/trigon_small.pdf
RELOC/doc/latex/beamertheme-trigon/trigontheme.pdf details="Package documentation"
-srccontainersize 14932
-srccontainerchecksum 406f580ac238dd70047fe1c2bf54fdd7579d37bceedd2da38a1f0b034c42937b9c7ab8402b19ccbb04b5fa056c134004d51daa2285e331a53cb6e2ffa2e55c16
+srccontainersize 15120
+srccontainerchecksum 6c1d2409f713e8a7bdc989b29920186f65ff4b67dbfe9280083d93160bba64299f6f35a8ab1eba32c0abbc850fc358b73d95ccb1a4bfc137fd402a732ec105cf
srcfiles size=21
RELOC/source/latex/beamertheme-trigon/Makefile
RELOC/source/latex/beamertheme-trigon/beamercolorthemetrigon.dtx
@@ -34270,7 +34269,7 @@ catalogue-contact-repository https://gitlab.com/thlamb/beamertheme-trigon
catalogue-ctan /macros/latex/contrib/beamer-contrib/themes/beamertheme-trigon
catalogue-license cc-by-sa-4
catalogue-topics presentation
-catalogue-version 0.6.2
+catalogue-version 0.6.3
name beamertheme-upenn-bc
category Package
@@ -68109,7 +68108,7 @@ containerchecksum 719c321173ca12660891080dae509080934f72d13a9417b2c40a22add963c7
name collection-langenglish
category Collection
-revision 62565
+revision 62606
shortdesc US and UK English
relocated 1
longdesc Support for, and documentation in, English.
@@ -68163,7 +68162,6 @@ depend pictexsum
depend plain-doc
depend short-math-guide
depend simplified-latex
-depend startlatex2e
depend svg-inkscape
depend tamethebeast
depend tds
@@ -68182,8 +68180,8 @@ depend visualfaq
depend webguide
depend xetexref
depend yet-another-guide-latex2e
-containersize 868
-containerchecksum 6dd9ee98b1397a6067f95a3cd9ff74265ac6f1f184511dfedc0f9c4c8e7311e48a242cf975566bcef108a77fdd75b85267a8cf2229e0328c4d04421549b42562
+containersize 864
+containerchecksum e42fa06f9a57ea2e267ddb692ad445307cf78eda9d1222e9e304d00e01ea6612bdfc93d012b3539b1f2574623efc0737e0b459c7cb2587479fd47b37174591df
name collection-langeuropean
category Collection
@@ -81920,7 +81918,7 @@ catalogue-version 0.1
name create-theorem
category Package
-revision 62402
+revision 62596
shortdesc Multilingual support for theorem-like environments
relocated 1
longdesc This package provides commands for naming and initializing
@@ -81928,16 +81926,16 @@ longdesc theorem-like environments. These commands have key-value based
longdesc interfaces and are especially useful in multilingual documents,
longdesc allowing the easy declaration of theorem-like environments that
longdesc can automatically adapt to the language settings.
-containersize 8028
-containerchecksum 9d60ffdad030ffa3cf5fb969a0755f37fb2db01db0e6f7e2201215724a9c0ddc7a2542496959dfd2411b20c2e29a97a50b903356db1773863c1c0519ac1afe4f
-doccontainersize 127428
-doccontainerchecksum 74783a38a1cbe972fe6bf1d553a4656b14b99840e98593e51e7d7ff1e89d3e805377a22c1fb0fccaa5edaf40cd180aeaf0fcc724157dee6e220148925577aa29
+containersize 8036
+containerchecksum 08251ee7ff43a2bd8a4db1d0cf3d781a74cc2ae4e688c6d545a615f26aa79872aa18a1830898f4ca73666d1505c6ed9e5a4a0c14a0e864c025e585941225c0d9
+doccontainersize 127496
+doccontainerchecksum f12e700ea60420288190485c9bde0b8aeb84f22a644b519542bc3ac087fbccf5cd538f453943517c27c36dd4122d85189401d12e35c4f533471b3d4334fe2270
docfiles size=41
RELOC/doc/latex/create-theorem/LICENSE
RELOC/doc/latex/create-theorem/README.md details="Readme"
RELOC/doc/latex/create-theorem/create-theorem-doc.pdf details="Package documentation"
RELOC/doc/latex/create-theorem/create-theorem-doc.tex
-runfiles size=18
+runfiles size=19
RELOC/tex/latex/create-theorem/create-theorem.sty
catalogue-also multilang
catalogue-contact-repository https://github.com/Jinwen-XU/create-theorem
@@ -96803,7 +96801,7 @@ catalogue-version 1.031
name dtk
category Package
-revision 61047
+revision 62608
shortdesc Document class for the journal of DANTE
relocated 1
longdesc The bundle provides a class and style file for typesetting "Die
@@ -96811,10 +96809,10 @@ longdesc TeXnische Komodie" -- the communications of the German TeX
longdesc Users Group DANTE e.V. The arrangement means that the class may
longdesc be used by article writers to typeset a single article, as well
longdesc as to produce the complete journal.
-containersize 16608
-containerchecksum 1b56e53aca93cbc91f5389d1185375e14f44403d0a540d782d1c63ec7a27f2abc9cf0387cf57e86a0022cbbdf39e7d979056b43a762004e636a8a3c6041d9abf
-doccontainersize 79408
-doccontainerchecksum 9b82f9832c0aa4b80f2e97913e1c25bed32f1e51461c77c64eb9683a4016d487e573d1b449e60e67566111f2ccdf56c6394e77d325e6e28b5f82d4dceea4fbd0
+containersize 16616
+containerchecksum 5a22a12a8cfd99c5be2c9380b755c39d60baf5764febdf1500f7ead7e220835b01487bbfa8666e2f9afa1b27e13e712025b9d94a3e1793f87b961f7ae12b09b2
+doccontainersize 78952
+doccontainerchecksum 1a12eb49d22be84617ff22234258a024147fa548d5f211509ac319195ae87b0f8374590b24148af65538e75276f93ccd1277c57c74c764cf18bef71d7674c5b4
docfiles size=28
RELOC/doc/latex/dtk/README.md details="Readme"
RELOC/doc/latex/dtk/doc/beispiel.bib
@@ -96841,7 +96839,7 @@ catalogue-contact-repository https://github.com/rolfn/dtk
catalogue-ctan /usergrps/dante/dtk
catalogue-license lppl1.3c
catalogue-topics journalpub class
-catalogue-version 2.08k
+catalogue-version 2.08l
name dtk-bibliography
category Package
@@ -100704,7 +100702,7 @@ catalogue-topics notes editorial
name easybook
category Package
-revision 62556
+revision 62599
shortdesc Easily typesetting Chinese theses or books
relocated 1
longdesc easybook is a pure academic template created based on the
@@ -100715,16 +100713,16 @@ longdesc providing multiple commands and interfaces allows users to
longdesc easily customize the thesis template. Its basic macro package
longdesc easybase can also be used with CTeX and standard document
longdesc classes.
-containersize 16568
-containerchecksum 8e84c2344f1c2ccb301502c8b402a924b584d958b0f828c9482aca2a4e090f55a86c9ba58c059127b76652d58a0a6b3cc7e78e6e8934e900507e47435f177cb9
-doccontainersize 614704
-doccontainerchecksum 3aecaf8cde9ee427a2d1120045641bece40a8eea6d3da138ead4326c3e3922554783bd855a3eec7e91a3d31f1ec90e6939bbdf446f16d61942f4212c5cc4b989
+containersize 16604
+containerchecksum dbee9d305facfd8d15924486cf0f8ab93f208f9fc4766cc38a6ba4d3961e2f79060e7b5b81364c4d70c9efa096b732cdc7922cbcf881e251fe73984c0011dca7
+doccontainersize 614880
+doccontainerchecksum 9b4e84e1e231695e7a011417a8b5091111c8c8d0b492385603f4c5ad897c48589041813fd171ec78cde80e3df1d4538992685caf3c829fe23b208c834ff542af
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 16472
-srccontainerchecksum 43dcf923c023ba1c4ff63cfcba35ebb96688e534473f27fbc33eab089c46da732a58031432f9c54d2df5c6a73b4be67a111b4ac5a5043fb7c4bd2aa134270c15
+srccontainersize 16516
+srccontainerchecksum c6478b64be5b55553f27873fb2019698ba7e145de7611bdd10142717acb01e0b58f9ac4d87ca75273ce6f915200fdaa6486f187f0c172f19e2c310a20665cc21
srcfiles size=20
RELOC/source/latex/easybook/easybook.dtx
RELOC/source/latex/easybook/easybook.ins
@@ -100737,7 +100735,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.643
+catalogue-version 1.644
name easyfig
category Package
@@ -249232,7 +249230,7 @@ catalogue-version 1.0b~4
name projlib
category Package
-revision 62251
+revision 62601
shortdesc A series of tools to simplify your workflow
relocated 1
longdesc ProjLib is a collection of tools to help you write LaTeX
@@ -249240,11 +249238,11 @@ longdesc documents. With the main package ProjLib loaded, you no longer
longdesc need to set up the theorem-like environments, nor to manually
longdesc configure the appropriate multilingual settings. In addition, a
longdesc series of auxiliary functionalities are introduced.
-containersize 16540
-containerchecksum 3094e2d197d505db35870a21aa795952fc4b5b4a775cbfd2084ac4e40ffbf51074b8c2fe8685bf3bd5f1ac4cc911d27f72184522b8c570f79133759735037063
-doccontainersize 692336
-doccontainerchecksum 741e6969aaec89f067e70d908507ba28676987770d2a1bc0ea34fa5c697d5d026c867f20a1283ed2d617321699c8b7608772846d7b68fbddcc2b57ba382cc01a
-docfiles size=241
+containersize 33020
+containerchecksum 6909bad2629ddd7d7b291897c9be4ec44a2dfb21a46d0678feb65dd6d8f4e8d60fdfa1fa44da5be9f9f9c899535e354b3bb6cc343e432a9fd0afe9abe9f33445
+doccontainersize 680020
+doccontainerchecksum 6ad15525881b7823ab6bfc55ecd150d99f25f1a3e2d8814af80c173cc404e0b7bee65f767af02dcec572902f9ef7b4f7b02267534325e6a90c78e5440726054c
+docfiles size=211
RELOC/doc/latex/projlib/LICENSE
RELOC/doc/latex/projlib/ProjLib-doc-cn.pdf details="Package documentation (Chinese)" language="zh"
RELOC/doc/latex/projlib/ProjLib-doc-cn.tex
@@ -249253,31 +249251,31 @@ docfiles size=241
RELOC/doc/latex/projlib/ProjLib-doc-fr.pdf details="Package documentation (French)" language="fr"
RELOC/doc/latex/projlib/ProjLib-doc-fr.tex
RELOC/doc/latex/projlib/README.md details="Readme"
- RELOC/doc/latex/projlib/new-modules/projlib-author.sty
- RELOC/doc/latex/projlib/new-modules/projlib-datetime.sty
- RELOC/doc/latex/projlib/new-modules/projlib-draft.sty
- RELOC/doc/latex/projlib/new-modules/projlib-font.sty
- RELOC/doc/latex/projlib/new-modules/projlib-language.sty
- RELOC/doc/latex/projlib/new-modules/projlib-logo.sty
- RELOC/doc/latex/projlib/new-modules/projlib-math.sty
- RELOC/doc/latex/projlib/new-modules/projlib-paper.sty
-srccontainersize 41260
-srccontainerchecksum 78613cc24aebdfe75198f9c3fe711b08d112cd1fa837961cb9bd7fc8b11aa497b1527238e769cf655b284a85e5baf2c5e49ff3ed19a23caa646d097f311460bc
-srcfiles size=60
+srccontainersize 22204
+srccontainerchecksum 2f845f73447496d15f5e4cf780ceec9217bfc129c2d51a964abc9d8083d0e24daba1e40d247afbd7865a579674c4480fce68a0ae1586bf540d6f1e182a916fc8
+srcfiles size=25
RELOC/source/latex/projlib/ProjLib-doc.dtx
RELOC/source/latex/projlib/ProjLib-doc.ins
- RELOC/source/latex/projlib/ProjLib.dtx
- RELOC/source/latex/projlib/ProjLib.ins
-runfiles size=35
- RELOC/tex/latex/projlib/PJLauthor.sty
- RELOC/tex/latex/projlib/PJLdate.sty
- RELOC/tex/latex/projlib/PJLdraft.sty
- RELOC/tex/latex/projlib/PJLlang.sty
- RELOC/tex/latex/projlib/PJLlogo.sty
- RELOC/tex/latex/projlib/PJLmath.sty
- RELOC/tex/latex/projlib/PJLpaper.sty
- RELOC/tex/latex/projlib/PJLthm.sty
+runfiles size=81
RELOC/tex/latex/projlib/ProjLib.sty
+ RELOC/tex/latex/projlib/old-modules/PJLauthor.sty
+ RELOC/tex/latex/projlib/old-modules/PJLdate.sty
+ RELOC/tex/latex/projlib/old-modules/PJLdraft.sty
+ RELOC/tex/latex/projlib/old-modules/PJLlang.sty
+ RELOC/tex/latex/projlib/old-modules/PJLlogo.sty
+ RELOC/tex/latex/projlib/old-modules/PJLmath.sty
+ RELOC/tex/latex/projlib/old-modules/PJLpaper.sty
+ RELOC/tex/latex/projlib/old-modules/PJLthm.sty
+ RELOC/tex/latex/projlib/old-modules/PJLtoolkit.sty
+ RELOC/tex/latex/projlib/projlib-author.sty
+ RELOC/tex/latex/projlib/projlib-datetime.sty
+ RELOC/tex/latex/projlib/projlib-draft.sty
+ RELOC/tex/latex/projlib/projlib-font.sty
+ RELOC/tex/latex/projlib/projlib-language.sty
+ RELOC/tex/latex/projlib/projlib-logo.sty
+ RELOC/tex/latex/projlib/projlib-math.sty
+ RELOC/tex/latex/projlib/projlib-paper.sty
+ RELOC/tex/latex/projlib/projlib-theorem.sty
catalogue-contact-repository https://github.com/Jinwen-XU/ProjLib
catalogue-ctan /macros/latex/contrib/projlib
catalogue-license lppl1.3c
@@ -280757,28 +280755,6 @@ catalogue-license pd
catalogue-topics format
catalogue-version 1.04
-name startlatex2e
-category Package
-revision 56809
-shortdesc A guide to getting started with LaTeX2e
-relocated 1
-longdesc "Getting Started with LaTeX2e" is a short document aimed at
-longdesc helping complete novices with LaTeX create a document, format
-longdesc the text, then compile it into PostScript or pdf format. It
-longdesc contains information on writing the preamble, formatting the
-longdesc text, creating tables and inserting figures.
-containersize 496
-containerchecksum e8946fbe61c9c52a3fe5cc7b6b4adfdd8a90312fc146f331f0dff774e819ed1a789ad047c2587816b7b8568f4a520b2c0600a4b39ff3586254bfb6f15db28b79
-doccontainersize 243844
-doccontainerchecksum 767c9defb727f206c8e2090a1501e8435bf77859b6546690c7a8d1cb6481ae4c576346449fe760423eaf126858e521b020404cbe84ab2f02c95f07e1af8f93c5
-docfiles size=83
- RELOC/doc/latex/startlatex2e/README details="Readme"
- RELOC/doc/latex/startlatex2e/StartLaTeX2e.pdf details="The document itself"
- RELOC/doc/latex/startlatex2e/StartLaTeX2e.tex
-catalogue-ctan /info/startlatex2e
-catalogue-license lppl1.3
-catalogue-topics tut-latex
-
name statex
category Package
revision 20306
@@ -300009,7 +299985,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 62542
+revision 62579
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.
@@ -300017,10 +299993,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 108824
-containerchecksum 71c56169c78194e6925a03c00f6ac095588dfd1595274209514a43a824cb23158a661ce9dff0d8a0849ea958328b159334b9c79c1565008b7e81dcec0906ceaa
-doccontainersize 404208
-doccontainerchecksum 1338a8aff6f2e89e9fbaf74692c3b93ff205090ce856b0fb903c7334ed944f8a1298eeb52f812f6b9da0f8f34ea10e14b4113d8f62e952ff441692db8aed3ec0
+containersize 108848
+containerchecksum dd8948952dc275ed04d12a263c219083fd610e8d866788d1b1d18bde27d51ab384e323dd95d6f1e138344c85d96e15e4635b9570fea6d35c493f9b4719078077
+doccontainersize 404252
+doccontainerchecksum e86f694f50da0d95b546550d5352ce5304ade9d1b244e799093e61731c9d4ac1f91dc9c461a0cc00a90171ed840b73358b056d6e1b0d2b0fe0e5ef4560ecb6be
docfiles size=503
doc.html
texmf-dist/doc/man/man1/fmtutil-sys.1
@@ -308152,21 +308128,21 @@ catalogue-version 1.5
name tiscreen
category Package
-revision 60551
+revision 62603
shortdesc Mimic the screen of older Texas Instruments calculators
relocated 1
longdesc This package mimics the screen of older Texas Instruments dot
longdesc matrix display calculators, specifically the TI-82 STATS. It
longdesc relies on the lcd and xcolor packages.
-containersize 1584
-containerchecksum 5f3506fbb5952be7477f9c29bedc6a1ef229753ad12b484e1c286c6211bb5fc62df69f9985b44740f12728e067c69140ac064d764ca034d1edae099f623413cd
-doccontainersize 152220
-doccontainerchecksum c964f4b02f2399bc1bab1753681442076099c2f7377facf62241afc13a2db877287692b3020ca39d9a56370b13a8148d45317a4643e1552b7a436dc87c2da0f0
-docfiles size=40
+containersize 3184
+containerchecksum d44cd64d7f73300fe7e86faab8121887d22465f6a8247413ac1d23f6e346d72ae91d212e41fb9a4f903a18e36f92b73cd2ef24cf0fec28825d243d1342e56c34
+doccontainersize 228136
+doccontainerchecksum 5588a22096422e30293f4c4b68faa1f340e5e842f046c625ebe0b0d7ed587706a55e199bcf21b5936d6c0aaaad52e10fa814bf648155fbffba5054447595ef14
+docfiles size=62
RELOC/doc/latex/tiscreen/README details="Readme"
RELOC/doc/latex/tiscreen/tiscreen-doc.pdf details="Package documentation"
RELOC/doc/latex/tiscreen/tiscreen-doc.tex
-runfiles size=1
+runfiles size=4
RELOC/tex/latex/tiscreen/tiscreen.sty
catalogue-contact-bugs https://github.com/T3SQ8/tiscreen/issues
catalogue-contact-repository https://github.com/T3SQ8/tiscreen
@@ -324292,16 +324268,16 @@ catalogue-topics format japanese
name uptex-fonts
category Package
-revision 54045
+revision 62593
shortdesc Fonts for use with upTeX
relocated 1
longdesc The bundle contains fonts (TFM and VF) for use with upTeX. This
longdesc is a redistribution derived from the upTeX distribution by
longdesc Takuji Tanaka.
-containersize 169608
-containerchecksum 600d47ed277ce4bc0ad0de219e307b2c4741229c0e02ad94f7dddb2f309309922fcfbc9de5e115d85ad45b53485ff844e70d5af8086f7a16980ac579795c2e7f
-doccontainersize 5168
-doccontainerchecksum 3c41c19b078bb5f66b8231025e39df2b7b9b959d3a4a45b04058f670d6a08e83bef50c889045aa55caddfe7ccb8a5c7582c43115b4749232490f999574fd0ec7
+containersize 182744
+containerchecksum 89fa503990e768f5125de1a3161c2b6e14cf7eeeccb81664dfff43cd097b59210988464c587a199202f0c4836fd598c6ff6db6e7d39ab36a3be41e9e14e1f6ea
+doccontainersize 5156
+doccontainerchecksum 2a6aa685c8b1636c37021a76dd40703744af62942aa3f36c4f33f6d2e5961cb96f5379056207d807bfe9bcfabb0265e9aaf64a84f9c80ebd084e2520ca4d31e2
docfiles size=6
RELOC/doc/fonts/uptex-fonts/LICENSE
RELOC/doc/fonts/uptex-fonts/README.md details="Readme"
@@ -340374,7 +340350,7 @@ catalogue-version 0.4
name xsavebox
category Package
-revision 54097
+revision 62605
shortdesc Saveboxes for repeating content without code replication, based on PDF Form XObjects
relocated 1
longdesc The package defines commands for saving content that can be
@@ -340388,24 +340364,24 @@ longdesc \usebox and the lrbox environment. All common TeX engines and
longdesc back-ends are supported: pdfLaTeX, LuaLaTeX LaTeX - dvips -
longdesc ps2pdf/Distiller (Xe)LaTeX - (x)dvipdfmx
containersize 4244
-containerchecksum bcfb1ea2043163f3ebba520235ebcf8a0cb69a4e167a439adb24f0582166f3e7a74072ba5ccfc5482948a6a423c6684dcee4dda7f0170f6eea2e86292087818a
-doccontainersize 368976
-doccontainerchecksum 0722ad2a511709f68254c97cce7eac6a2e0d5b452d146dcb9f264f385444d6f92021161378cfadd1c26442696e2fcee3cab7a720ce4a68463f4eccacb11639a0
-docfiles size=92
+containerchecksum a88e6345a40406e568673bffa319dca5bdd47ba4cb64051751966bdcf8ef048d5310a993a735d849ae6e9a2eccbd201bc1469d571f73b35fbde10c80704396b1
+doccontainersize 377388
+doccontainerchecksum 97baadd10cf6de0529af35dba2ed970b93f9ff02a5fa2f02bd018892900963c544bc3cfd5a1dd4e0af9ab492e051d23d5d9e24b5548f175c575b51adf12ba671
+docfiles size=95
RELOC/doc/latex/xsavebox/ChangeLog
RELOC/doc/latex/xsavebox/README
RELOC/doc/latex/xsavebox/xsavebox.pdf details="Package documentation"
-srccontainersize 4180
-srccontainerchecksum 6064e060001f189f8a58b5fe3de87d68366d48bea8c6b0ad8e41f32ef6eb0d87dd12662aa8ad27e89b8701c32822503f6bc830837f7c33ba46ef3a9db651fa48
+srccontainersize 4252
+srccontainerchecksum 924788ba1a0bf0287fb7a4b0828866a17185e1b61ed31b9c294bf79000ee4186a367ade34b64bcffca2d087b5cdc94d38dfcfdf79fa33652f792d09d7e9fc4a1
srcfiles size=3
RELOC/source/latex/xsavebox/xsavebox.tex
runfiles size=3
RELOC/tex/latex/xsavebox/xsavebox.sty
catalogue-contact-repository https://gitlab.com/agrahn/xsavebox
catalogue-ctan /macros/latex/contrib/xsavebox
-catalogue-license lppl1.3
-catalogue-topics boxing pdf-feat adobe-distiller
-catalogue-version 0.16
+catalogue-license lppl
+catalogue-topics boxing pdf-feat adobe-distiller expl3
+catalogue-version 0.17
name xsim
category Package
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index 1aceaa6f1d..203f6bbbbb 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-48d4cdb312eed864da2de4918e966331 texlive.tlpdb
+9969fa0f4b9d371c08d8ced788b2c7d1 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index 8e82ba7582..2e336e35ed 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-53f5c111aa812c8f3f5aa142d1836950be55464df7d0eee2480cff3bd1b7edc8de91015b5da58fdbead11112e215dc16814559f596924c014b0e07f5a10829c5 texlive.tlpdb
+561d9aea64bac75d965ec2b92f4339c5560e00b18daf62fe5620581f53b9d851008fe098ec332d230236e2ab4d983638f7438756a2390c8df026fb680d6e734b texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index b8f74b46c6..843b49172c 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-----
-iQEcBAEBCgAGBQJiKWMfAAoJEEzhh34ZQ4xw0hoH/0FgHsac9//njmiPvajXO6rF
-W7jQW2h3cU5iY5pleyHYUTT1KMV5fMPxFyu/YuzUgQs2bZ+WNqWejIG4Zbo6P937
-jJCkxHUwOSSHnZmOMd0+2mUNGcg8D3CLlbm3QBW7U4vvdMM0s9rWZX3CYMticbDU
-9h70OwMgnBbwMwFNPMLBujkSe95YNpVCHJ0TzBUTSZ/+VXPMU5hMgLHaRCvWgM3e
-3aTsRUAcZ5BMFMsbwk4i5E8E+8zErpySwnUaSefokqki942GsMfzSnJkLQr28uRf
-HuNkK/m1XM/78W7ODOm5B/3mxBw18eF5gOGjy+S7xQUizjfVTLsxg5RBk7ucGFQ=
-=o6S9
+iQEcBAEBCgAGBQJiKrSQAAoJEEzhh34ZQ4xwJHAH/2nrwDyRpeFIQKsSBYxpxlXf
+E9nJxp60NgOZFVxl1SqK2OVKtKIJQv9kUJw+Z1rRfApAO0BVF2BCoZc2XGawrne7
+aTg4JYetZGoNuw0orJAq3sibbCi+EEgpmBynt6bnEe1ASki/8MDfDTozD6A6eu/c
+3101wp7nEgoBmF4bGANdoC+FkV7bU0LLFI1t045skIHNUBmq8SEfAUCNpEVXz+C6
+jQD+rAMa60MpqdXYlxOmwUfy2Iex5GBV/G5A+PLVoKpHFpJ8coJk3Qw3ZdoCVPPq
+oqOrCdtUIx90sSqIYbcBSPGgmOD43wr/zVHQaSiPg2LwGis9UmThoCO5ukpFlIY=
+=mwjH
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index 176ed4ae14..87ca6dffd9 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/next/pr.ini b/systems/win32/miktex/tm/packages/next/pr.ini
index ce43f80cc8..6bf0b0b158 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=1646947074
+date=1647033456
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=673f71851b7ed69c3a577af23ff990f3
+lstdigest=4b4ed23a1b665aa5a8d6831cc473efb1
numpkg=5443
relstate=next
-version=8104
+version=8105
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: dI5W8ImwlVnO2EdLNX5VuOXz1ghIyocEH36/LZ14wyhUWD4rhIPEckrL/1RYGzs5tcFLfdyxlsr5L1bdG581ppwAO+ODrai32YfMT9lkLbGft4Z3w6DSqe/1wuEYIoZPZ88UrlBFnbb42APWVuZZ154PALxyNJUK3KGa1iEAYmE+EgVae+Pcjrt3ViwrmQlo7A3tR1GJEHP0a6XRXj439Mic2Ma7jnd5306ZxJXylGpDOA92vVyQTJRM4gB4cnDj8aKLNRAz9nlokZ1s/l1KtTfjbXx5ESOEukvK5r+2YiTf4yrbKmgBd3jtOwlRfhRxZQYVfUfru6XX1EoSc4pORw==
+;;;; signature/miktex: KQSUO4DXbijTrMJJNgliaD1oy7cwiRkV3ihqYuw+gkwHGPpB+YC5B4pVxuTq7HOlpX7KKXKA/ViGDw/84x+hKFUkyuPqnct+QJTWgJRy3a+HbKpkOUfqiogQTAdrPjg1+0o7P7T8tgZLxjNmKmL4AOGZPPukxntF8jq3xP4jyZHIn6ofCvLArXarW7p78wblHhENyhPOIfNE7RSfQnEyFrq7cWQpUR00QRJ8C4hCVPJ8gv2AMX1+rT9WSiffbxDycu7l2bkVJAW/m+ja6xOTM2oKi1g9v1UN4mxYho32ZYvacmyjkv6iIG6fYFxXj2cfYHWzgPSg4so0ROY2oh/81g==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/systems/win32/miktex/tm/packages/pr.ini b/systems/win32/miktex/tm/packages/pr.ini
index b5f4d77c6f..6f0d8eea32 100644
--- a/systems/win32/miktex/tm/packages/pr.ini
+++ b/systems/win32/miktex/tm/packages/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1646946697
+date=1647033088
lastupd=biblatex-gb7714-2015 biblatex-gb7714-2015__doc biblatex-gb7714-2015__source easybook easybook__doc easybook__source footmisc footmisc__doc footmisc__source latex-for-undergraduates latex-for-undergraduates__source lua-widow-control lua-widow-control__doc lua-widow-control__source pmx pmx__doc pmx__source robotarm robotarm__doc robotarm__source
-lstdigest=595a38e614e086757763f8b7fe0769b9
+lstdigest=9f4a4c98c5a19a2102cb87a255c1c517
numpkg=5441
relstate=stable
-version=8104
+version=8105
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: Zr2lwwhpjGP2aL9fIT7znulpVRITeIszkmCCe1sthSCZ1j1k4UnylAaGPw2J3kwUM/+J+0VuiEIE3sInjFxO/NDSUUqe4Khly/lqDjOF1GCgfuvB+3bL3UrCI4A5qlXbyMDVJnSPHu2ZL6mjZDO9HWrqp8a9Sh1h71roLYtonyZsOzWRetjN9KSZVvN+dPbEnJTE/EB6kmCZbzA6K15OnRu2ysWNQbuNRf3QVxYDtYmzUdv3PzR9l+x9cjyVHW9JbqJs0o0Uw4kVhS2d+t3Q5qIF467aNllM/sQ0lMDc6bFoVpwsUji27JQdFIYclm+bQzNIbV3nwGe3W02yD/vpUw==
+;;;; signature/miktex: t0QJJie/ALmbMfSk1uQp2QRoOeWLSVcC05ZTleAoIRcKrpZ3mN7nf7/Nl1+E7mU8hies4oLgQLflIwNzipIO/Y9FckmjPQFdw3H0xQNesuXEPFpJerzGfjD3omSyzwhDi7kIIx0Ivy0al2hsesLSWztJd6njW9IWqekiSmrgZOB+V6/udbrtiSHq0NvtsWsw9RyY9eDW1mn1CB7qX1iVqbvPDZ+gzvmr8+mw7OLGHotliuan1Dt/1W31XtVeI80Ub+rMxw0HWC3YVDpkdleosEabVJGKpxqSZ2om4+yuPhqbfAUajU/rryy+fouQhaPO/3eWtiYtJL12ZD+syDXohA==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/timestamp b/timestamp
index daab3fa3b5..fa66ea80d3 100644
--- a/timestamp
+++ b/timestamp
@@ -2,4 +2,4 @@
# The source CTAN of this site's material:
dante.ctan.org
# The year-month-day-hour-minute of this site's material:
-2022-03-11-02-02
+2022-03-12-02-02